/* سامانه مدیریت مجتمع — طراحی مینیمال، Mobile-first، راست‌به‌چپ
   فونت وزیرمتن به‌صورت غیرمسدودکننده در app.js بارگذاری می‌شود (اگر در دسترس نباشد Tahoma) */

:root{
  --bg:#F3F2EE; --surface:#FFFFFF; --surface-2:#F9F8F5; --ink:#1D2830; --ink-2:#3A4852; --muted:#66727B;
  --line:#E2DFD8; --line-2:#ECEAE4;
  --primary:#21615C; --primary-hover:#1A4F4B; --primary-soft:#E2EEEC; --focus:#2C6EA3;
  --ok:#2B7253; --ok-bg:#E4F0E9; --credit:#2A5F8C; --credit-bg:#E3ECF5; --soon:#835A0E; --soon-bg:#F8EED6;
  --late:#A0501F; --late-bg:#F9E6D9; --late2:#9A3636; --late2-bg:#F5E0E0; --pending:#52568F; --pending-bg:#E9E9F5;
  --shadow:0 1px 2px rgba(29,40,48,.05),0 8px 24px rgba(29,40,48,.06);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#E9E7E1;color:var(--ink);font-family:Vazirmatn,Tahoma,"Segoe UI",sans-serif;line-height:1.75;font-size:15px;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
img{max-width:100%}
.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}
.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.i.flip{transform:scaleX(-1)}
.i.go{color:var(--muted);width:16px;height:16px;margin-inline-start:auto}
.muted{color:var(--muted)} .small{font-size:13px} .center{text-align:center} .grow{flex:1;min-width:0}
.h1{font-size:24px;margin:2px 0 8px;font-weight:800} .h2{font-size:18px;margin:4px 0 8px;font-weight:800}
.link{color:var(--primary);font-weight:600;text-decoration:none;cursor:pointer}
.demo-bar{background:#835A0E;color:#fff;text-align:center;font-size:12.5px;padding:4px 10px}
.admin-bar{background:#1F2A31;color:#E8ECEE;font-size:12.5px;padding:5px 14px;display:flex;align-items:center;gap:6px}
.admin-bar a{color:#BFE3DE;margin-inline-start:auto;text-decoration:none}
.admin-bar .i{width:16px;height:16px}

/* قاب برنامه */
.app{max-width:560px;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column;box-shadow:0 0 0 1px rgba(0,0,0,.04),0 10px 40px rgba(0,0,0,.06)}
.appbar{position:sticky;top:0;z-index:10;background:rgba(243,242,238,.94);backdrop-filter:blur(8px);display:flex;align-items:center;gap:8px;padding:10px 14px;min-height:58px}
.appbar.sub{border-bottom:1px solid var(--line-2)}
.appbar h1{margin:0;font-size:17.5px;font-weight:800;line-height:1.4}
.appbar small{display:block;color:var(--muted);font-size:12.5px}
.back{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex:none;text-decoration:none}
.back:hover{background:var(--surface)}
main{flex:1;padding:6px 16px 28px;display:flex;flex-direction:column;gap:12px}
.tabbar{position:sticky;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line);padding:4px 4px calc(8px + env(safe-area-inset-bottom))}
.tab{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:11.5px;font-weight:600;color:var(--muted);text-decoration:none;padding:7px 0 4px;position:relative;min-height:54px}
.tab .i{width:23px;height:23px}
.tab.on{color:var(--primary)}
.tab.on::before{content:"";position:absolute;top:-5px;width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}
.is-admin .tab.on{color:#1F2A31} .is-admin .tab.on::before{background:#1F2A31}

/* صفحه ساده (ورود) */
body.bare{background:var(--bg)}
.bare-main{max-width:440px;margin:0 auto;padding:28px 16px 40px;display:flex;flex-direction:column;gap:12px}
.brand-top{text-align:center;margin:18px 0 10px}
.brand-top h1{font-size:19px;margin:8px 0 0;font-weight:800}
.mark{width:58px;height:58px;border-radius:18px;background:var(--primary);color:#fff;display:grid;place-items:center;margin:0 auto}
.mark .i{width:30px;height:30px}

/* اجزا */
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.pad{padding:16px}
.stack{display:flex;flex-direction:column;gap:12px}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;margin:12px 2px 0}
.sec-h h2{font-size:16px;margin:0;font-weight:800}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px 2px 11px;border-radius:999px;font-size:12.5px;font-weight:700;line-height:1.7;white-space:nowrap}
.chip .i{width:15px;height:15px;stroke-width:2.1}
.st-settled{background:var(--ok-bg);color:var(--ok)} .st-credit{background:var(--credit-bg);color:var(--credit)}
.st-soon,.st-due{background:var(--soon-bg);color:var(--soon)} .st-late{background:var(--late-bg);color:var(--late)}
.st-late2{background:var(--late2-bg);color:var(--late2)} .st-pending{background:var(--pending-bg);color:var(--pending)}
.st-neutral{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.st-due{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.tag{font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px;white-space:nowrap;display:inline-flex;align-items:center;gap:3px;background:var(--surface-2)}
.tag .i{width:12px;height:12px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:14px;min-height:48px;padding:10px 18px;font-weight:700;font-size:15.5px;cursor:pointer;text-decoration:none;text-align:center}
.btn-primary{background:var(--primary);color:#fff} .btn-primary:hover{background:var(--primary-hover)}
.btn-lg{min-height:58px;font-size:17.5px;border-radius:16px}
.btn-sm{min-height:36px;padding:4px 12px;font-size:13.5px;width:auto;border-radius:10px}
.btn-soft{background:var(--primary-soft);color:var(--primary)}
.btn-ghost{background:transparent;color:var(--primary);min-height:44px;font-weight:600}
.btn-line{background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-row{display:flex;gap:8px;flex-wrap:wrap} .btn-row .btn{flex:1;min-width:150px}
.amount{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.amount b{font-size:32px;font-weight:800;letter-spacing:-.5px;line-height:1.35}
.amount span{font-size:14.5px;color:var(--muted);font-weight:600}
.center-flex{justify-content:center}
.big-num{font-size:20px;font-weight:800}
.k{margin:0;font-size:13.5px;color:var(--muted)}
.lines{margin:12px 0 4px;border-top:1px dashed var(--line)}
.line{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:14.5px;text-decoration:none;color:inherit}
.line .lt{display:flex;align-items:center;gap:8px;min-width:0}
.line .lt small{display:block;color:var(--muted);font-size:12px;line-height:1.4}
.line .lv{font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:4px}
.line.neg .lv{color:var(--credit)}
.line.tot{border-bottom:0;font-weight:800;font-size:15.5px}
a.line:hover .lt span{color:var(--primary)}
.due{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px;padding:9px 12px;font-size:14px;margin-top:10px;text-decoration:none;color:inherit}
.due .i{color:var(--soon)}
.due em{font-style:normal;color:var(--muted);font-size:12.5px;margin-inline-start:auto;white-space:nowrap}
.msg{font-size:13.5px;color:var(--ink-2);background:var(--surface-2);border-radius:12px;padding:10px 12px;margin:10px 0 0}
.note{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line-2);border-radius:14px;padding:12px}
.note .i{color:var(--primary);margin-top:2px}
.note.warn{background:var(--soon-bg);border-color:transparent} .note.warn .i{color:var(--soon)}
.card .note{margin:12px 0}
.ic-box{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--surface-2);color:var(--ink-2)}
.ic-box.big{width:56px;height:56px;margin:0 auto 8px;border-radius:16px}
.banner{display:flex;gap:12px;align-items:center;padding:14px;text-decoration:none}
.banner.top{align-items:flex-start}
.banner.warn{border-color:var(--pending)}
.banner b{display:block;font-size:14.5px}
.banner p{margin:0;font-size:13px;color:var(--ink-2)}
.ok-big{display:flex;gap:12px;align-items:center;margin:12px 0 4px}
.ok-big .ic-box{width:50px;height:50px;border-radius:50%}
.ok-big .ic-box .i{width:26px;height:26px;stroke-width:2.4}
.ok-big b{display:block;font-size:17px} .ok-big small{color:var(--muted);font-size:13px}
.last-pay{font-size:13px;color:var(--muted);margin:12px 0 0;display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}
.last-pay .i{width:16px;height:16px;margin-top:3px}
.hello{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px}
.hello h2{font-size:18px;margin:0;font-weight:800}
.hello p{margin:0;color:var(--muted);font-size:13px}
.avatar{width:50px;height:50px;border-radius:14px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}
.unit-switch{display:flex;align-items:center;gap:8px;font-size:14px}
.unit-switch .input{width:auto;flex:1}
.flash{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;font-size:14px;font-weight:600}
.flash .i{margin-top:2px}
.flash-ok{background:var(--ok-bg);color:var(--ok)} .flash-error{background:var(--late2-bg);color:var(--late2)} .flash-info{background:var(--credit-bg);color:var(--credit)}

/* فرم‌ها */
.field{display:flex;flex-direction:column;gap:6px}
label{font-weight:600;font-size:14px;display:flex;flex-direction:column;gap:6px}
.input{width:100%;min-height:48px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);padding:8px 12px;font-size:15.5px;font-weight:500}
textarea.input{min-height:90px;resize:vertical}
.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.input[readonly]{background:var(--surface-2);color:var(--muted)}
.input-lg{min-height:58px;font-size:20px;font-weight:700}
.ltr-in{direction:ltr;text-align:left}
.otp-in{letter-spacing:8px;text-align:center}
.help{font-size:13px;color:var(--muted);margin:0;font-weight:500}
.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:500;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--primary);margin-top:3px;flex:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;align-items:end}
fieldset{border:0;padding:0;margin:0} legend{font-weight:700;font-size:14px;margin-bottom:6px}
.opt{flex-direction:row;align-items:center;gap:12px;padding:14px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;font-weight:700;font-size:15.5px;min-height:58px}
.opt input{width:22px;height:22px;accent-color:var(--primary);flex:none}
.opt:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.opt.small{min-height:48px;padding:10px;font-size:14px} .opt small{display:block;color:var(--muted);font-weight:500;font-size:12px}
.type-pick{display:grid;gap:8px}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.cats legend{grid-column:1/-1}
.cat-opt{flex-direction:row;align-items:center;gap:8px;padding:10px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;font-size:13.5px;min-height:48px}
.cat-opt input{position:absolute;opacity:0;pointer-events:none}
.cat-opt:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.cat-opt:has(input:focus-visible){outline:3px solid var(--focus)}
.seg-radio{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px}
.seg-radio label{flex:1;flex-direction:row;justify-content:center;cursor:pointer;margin:0}
.seg-radio input{position:absolute;opacity:0;pointer-events:none}
.seg-radio span{display:block;width:100%;text-align:center;padding:8px 4px;border-radius:9px;font-size:13px;color:var(--muted)}
.seg-radio input:checked+span{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.seg-radio input:focus-visible+span{outline:3px solid var(--focus)}
.camera{flex-direction:row;align-items:center;justify-content:center;gap:10px;border:2px dashed var(--primary);border-radius:16px;min-height:96px;color:var(--primary);background:var(--primary-soft);cursor:pointer;font-size:16px;position:relative}
.camera .i{width:30px;height:30px}
.camera input{position:absolute;inset:0;opacity:0;cursor:pointer}
.camera.has-file{border-style:solid}
.file-in{padding:10px}
.chips-row{display:flex;gap:6px;flex-wrap:wrap}
.search-row{display:flex;gap:8px} .search-row .btn{width:auto}
.period-pick{display:flex;gap:8px} .period-pick .input{flex:1}
.seg{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px}
.seg button{flex:1;white-space:nowrap;border:0;background:transparent;padding:7px 10px;border-radius:9px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;min-height:40px}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
details.card>summary{font-size:14.5px}
details[open].card>summary{margin-bottom:12px}
details.mini{position:relative}
details.mini>form{position:absolute;inset-inline-end:0;top:42px;z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;width:240px;box-shadow:var(--shadow)}

/* فهرست‌ها */
.list{padding:2px 14px}
.li{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-2);text-decoration:none;color:inherit}
.li:last-child{border-bottom:0}
.li.compact{padding:9px 0}
.li .body{flex:1;min-width:0}
.li .t{font-weight:700;font-size:14.5px;line-height:1.55}
.li .t a{text-decoration:none}
.li .s{color:var(--muted);font-size:12.5px;display:flex;flex-wrap:wrap;gap:3px 8px;align-items:center;margin-top:2px}
.li .v{font-weight:800;white-space:nowrap;font-size:14.5px;text-align:left}
.li .v small{display:block;font-weight:600;font-size:11px;color:var(--muted)}
.li-btn{width:100%;background:none;border:0;cursor:pointer;text-align:start}
.neg-t{color:var(--late)} .pos-t{color:var(--credit)}
.unit-l{font-weight:800;min-width:46px;font-size:14.5px}
.empty{text-align:center;color:var(--muted);padding:18px 8px;font-size:14px;margin:0}
.dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:10px 0 0;font-size:14px}
.dl dt{color:var(--muted)} .dl dd{margin:0;font-weight:600}
.dl.small{font-size:13px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.stat{background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px;padding:10px}
.stat small{display:block;color:var(--muted);font-size:12px}
.stat b{font-size:15px;font-weight:800;white-space:nowrap}
.stat.neg b{color:var(--late2)} .stat.pos b{color:var(--ok)}
.bar{display:block;height:10px;border-radius:6px;background:var(--line-2);overflow:hidden}
.bar i{display:block;height:100%;border-radius:6px;background:var(--primary)}
.progress{margin-top:12px} .progress .row{margin-bottom:6px}
.cat{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:13.5px;margin-bottom:10px}
.cat .bar{grid-column:1/-1;height:7px}
.res{margin-bottom:12px} .res .row{font-size:14px;margin-bottom:4px}
.res.win .bar i{background:var(--ok)}
.urows{padding:6px 10px}
.urow{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line-2);font-size:13.5px}
.urow:last-child{border-bottom:0}
.urow .u{font-weight:800}
.urow small{display:block;color:var(--muted);font-size:11.5px;line-height:1.5}
.urow .pbar{height:6px;margin-top:4px}
.urow.me{background:var(--primary-soft);border-radius:10px;border-bottom-color:transparent;padding-inline:8px}
.urow.total{font-weight:800}
.urow.flagged{background:var(--soon-bg);border-radius:10px}
.urow .flag{color:var(--soon);display:flex;gap:4px;align-items:center} .urow .flag .i{width:14px;height:14px}
.urow .amt{font-weight:800;white-space:nowrap;text-align:left}
.mine{background:var(--primary-soft);border-color:transparent}
.hash{font-family:ui-monospace,Consolas,monospace;font-size:12px;direction:ltr;unicode-bidi:isolate;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line-2);padding:1px 6px;border-radius:6px;white-space:nowrap}
.tl{list-style:none;margin:0;padding:0}
.tl li{position:relative;padding:0 18px 14px 0;font-size:13.5px}
.tl li::before{content:"";position:absolute;right:3px;top:9px;width:9px;height:9px;border-radius:50%;background:var(--primary)}
.tl li::after{content:"";position:absolute;right:7px;top:20px;bottom:0;width:1px;background:var(--line)}
.tl li:last-child::after{display:none}
.tl li.corr::before{background:var(--late)}
.tl b{display:block}
.gallery{display:grid;gap:10px}
.thumb{display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.thumb img{display:block;width:100%;height:auto;max-height:480px;object-fit:contain}
.card-no{font-size:22px;font-weight:800;letter-spacing:2px;margin:4px 0}
.body-text{font-size:14.5px;color:var(--ink-2);margin:8px 0}
.readings{display:flex;flex-direction:column;gap:6px}
.rd,.rd-h{display:grid;grid-template-columns:52px 1fr 1fr;gap:8px;align-items:center}
.rd-h{font-size:12.5px;color:var(--muted);font-weight:700}
.rd .u{font-weight:800}
.rd .input{min-height:44px}
.dash-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.qa{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 4px;background:var(--surface);border:1px solid var(--line);border-radius:16px;text-decoration:none;font-size:12.5px;font-weight:700;box-shadow:var(--shadow);text-align:center}
.qa .i{width:26px;height:26px;color:var(--primary)}
.qa .badge{position:absolute;top:6px;inset-inline-end:8px;background:var(--late);color:#fff;font-style:normal;font-size:11px;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 5px}

/* نمای ساختمان */
.building{min-height:120px}
.b-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.b-bar .seg{flex:1 1 100%}
.b-stage{background:linear-gradient(180deg,#EEF2F2,#F7F6F2);border:1px solid var(--line-2);border-radius:14px;overflow:hidden}
.b-ov{display:block;width:100%;height:auto}
.b-ov text,.b-plan text{font-family:Vazirmatn,Tahoma,sans-serif}
.b-ov .facade{fill:#ECE7DD}.b-ov .side{fill:#D2CABC}.b-ov .roof{fill:#F6F3EC;stroke:#D6CFC2;stroke-width:.8}
.b-ov .parapet{fill:#DED7CA}.b-ov .plinth{fill:#C9C0B0}.b-ov .door{fill:#8C8172}.b-ov .ground{fill:#E4E0D6}.b-ov .street{fill:#D9D5CB}
.b-ov .fl{stroke:#D6CFC2}.b-ov .sl{stroke:#C2B9AA}
.b-ov .blk{cursor:pointer;transition:opacity .25s}.b-ov .blk.dim{opacity:.45}
.b-ov .badge circle{fill:#fff;stroke:#D6CFC2}.b-ov .blk.on .badge circle{fill:var(--primary);stroke:var(--primary)}
.b-ov .badge text{font-size:14px;font-weight:800;fill:var(--ink-2)}.b-ov .blk.on .badge text{fill:#fff}
.b-ov .unit{cursor:pointer;outline:none}
.b-ov .cell{fill:#F8F6F1;stroke:#D4CDC0}.b-ov .glass{fill:#C7D7DB;opacity:.55}
.b-ov .ul{font-size:11px;font-weight:700;fill:var(--ink-2)}
.b-ov .unit.own .cell{fill:var(--primary-soft);stroke:var(--primary);stroke-width:1.6}.b-ov .unit.own .ul{fill:var(--primary)}
.b-ov .unit.sel .cell{stroke:var(--primary);stroke-width:2.6}
.b-ov .unit:focus-visible .cell{stroke:var(--focus);stroke-width:2.6}
.b-ov .gl{font-size:11px;fill:#8A8173;font-weight:600}
.b-floors{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.b-floors button{min-width:44px;min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-weight:700;cursor:pointer}
.b-floors button[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
.b-plan{display:block;width:100%;height:auto;background:var(--surface-2);border-radius:14px}
.b-plan .pc{fill:#fff;stroke:#D4CDC0;stroke-width:1.2}
.b-plan .pu{cursor:pointer;outline:none}
.b-plan .pu.own .pc{fill:var(--primary-soft);stroke:var(--primary)}
.b-plan .pu.sel .pc{stroke:var(--primary);stroke-width:2.8}
.b-plan .pu:focus-visible .pc{stroke:var(--focus);stroke-width:2.6}
.b-plan .out{fill:none;stroke:#9D9384;stroke-width:2.5}.b-plan .core{fill:#ECE8E0}
.b-plan .t1{font-size:17px;font-weight:800;fill:var(--ink)}.b-plan .t2{font-size:11.5px;fill:var(--muted)}.b-plan .t3{font-size:11px;fill:#8A8173;font-weight:600}
.b-plan .win{stroke:#8FB3BC;stroke-width:4;stroke-linecap:round}
.b-info{margin-top:12px}


/* پنل مدیریت — نقشه وضعیت واحدها */
.umap{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.umap-b{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px 6px;display:flex;flex-direction:column;gap:5px}
.umap-b>b{text-align:center;font-size:13px}
.umap-f{display:flex;gap:4px;align-items:stretch}
.umap-f small{width:14px;color:var(--muted);font-size:11px;display:grid;place-items:center;flex:none}
.umap-u{flex:1;min-width:0;border-radius:9px;padding:4px 2px;text-decoration:none;text-align:center;font-size:11.5px;font-weight:800;line-height:1.35;display:flex;flex-direction:column;align-items:center}
.umap-u i{font-style:normal;font-weight:600;font-size:10px}
.umap-u:focus-visible{outline:3px solid var(--focus)}
.chips-row.small .chip{font-size:11.5px}
.chips-row .btn-sm .i{width:16px;height:16px}
/* جدول صورت‌حساب و گزارش */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th,.tbl td{padding:7px 6px;border-bottom:1px solid var(--line-2);text-align:right;vertical-align:top}
.tbl th{color:var(--muted);font-weight:700;font-size:12px;white-space:nowrap}
.tbl td.n{text-align:left;white-space:nowrap;direction:ltr;unicode-bidi:isolate}
.tbl tfoot td{font-weight:800;border-top:2px solid var(--line)}
.print-head{display:none}
@media screen and (max-width:520px){
  .tbl.stack thead{display:none}
  .tbl.stack tr{display:grid;grid-template-columns:repeat(3,1fr);gap:2px 8px;padding:8px 0;border-bottom:1px solid var(--line-2)}
  .tbl.stack td{border:0;padding:0}
  .tbl.stack td:nth-child(1){grid-column:1/-1;color:var(--muted);font-size:12px}
  .tbl.stack td:nth-child(2){grid-column:1/-1;font-weight:600}
  .tbl.stack td.n{text-align:right;direction:rtl}
  .tbl.stack td.n::before{content:attr(data-l);display:block;color:var(--muted);font-size:11px;font-weight:500}
  .tbl.stack tfoot tr{border-top:2px solid var(--line)}
  .tbl.stack tfoot td:nth-child(1){display:none}
}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media print{
  main{padding:0}.no-print,form,details,.chips-row,.search-row{display:none!important}
  .print-head{display:block;margin-bottom:8px}.card{box-shadow:none;border-color:#ccc;break-inside:avoid}
  .tbl{font-size:11px}.tbl-wrap{overflow:visible}
}

@media (max-width:380px){ .umap{grid-template-columns:1fr} .amount b{font-size:28px} .stats{grid-template-columns:1fr 1fr} .dash-actions{grid-template-columns:repeat(2,1fr)} .grid2{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.tabbar,.appbar .back,.demo-bar,.admin-bar,.btn{display:none!important}.app{box-shadow:none;max-width:none}body{background:#fff}}
