@font-face{font-family:Vazirmatn;src:url('/fonts/Vazirmatn-Variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--sidebar-w:280px;--bg:#f4f7f6;--surface:#fff;--surface-2:#f8faf9;--ink:#14261f;--ink-2:#34483f;--muted:#718078;--line:#e2e9e5;--line-strong:#d4ded9;--brand:#0f513d;--brand-2:#197052;--brand-soft:#e5f2ed;--gold:#c28a2c;--gold-soft:#faf1de;--red:#b6423b;--red-soft:#fcebea;--blue:#336b81;--blue-soft:#e7f1f5;--radius:16px;--radius-sm:11px;--shadow-sm:0 1px 2px rgba(16,45,35,.04);--shadow:0 12px 34px rgba(16,45,35,.08);--focus:0 0 0 3px rgba(25,112,82,.14)}
*{box-sizing:border-box}html{direction:rtl;font-size:16px;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Vazirmatn,Tahoma,"Segoe UI",sans-serif;font-size:14px;line-height:1.75;text-align:right;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.eyebrow{display:block;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:0}.brand-lockup{display:flex;align-items:center;gap:12px;font-size:1rem;font-weight:850}.brand-mark{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;border-radius:12px;background:var(--brand);color:#fff;font-size:.78rem;font-weight:900}
.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(390px,.92fr) minmax(500px,1.08fr);background:var(--surface)}.login-brand{position:relative;display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;overflow:hidden;padding:44px clamp(34px,6vw,88px);background:linear-gradient(145deg,#0b3529,#102e25 58%,#173e32);color:#fff}.login-brand:before{position:absolute;inset:auto -180px -220px auto;width:560px;height:560px;border:1px solid rgba(221,180,101,.28);border-radius:50%;box-shadow:0 0 0 70px rgba(221,180,101,.045),0 0 0 140px rgba(221,180,101,.025);content:""}.login-brand .brand-mark{background:#d5a34c;color:#17291f}.login-copy,.login-metric{position:relative;z-index:1}.login-copy{max-width:610px}.login-copy .eyebrow{color:#e2b866}.login-copy h1{margin:15px 0 20px;font-size:clamp(2.5rem,4.8vw,5.3rem);font-weight:500;line-height:1.18;letter-spacing:-.035em}.login-copy p{max-width:520px;margin:0;color:#bfd0c8;font-size:1.02rem;line-height:2}.login-metric{display:flex;align-items:center;gap:30px}.login-metric div{display:flex;flex-direction:column;gap:2px}.login-metric .metric-rule{width:1px;height:44px;background:rgba(255,255,255,.18)}.metric-label{color:#9db2a9;font-size:.75rem}.login-panel{display:grid;place-items:center;padding:46px}.login-card{display:flex;width:min(100%,440px);flex-direction:column;gap:17px;padding:34px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(16,45,35,.1)}.login-card h2{margin:4px 0 2px;font-size:2rem;font-weight:750;line-height:1.35}.login-card p{margin:0;color:var(--muted)}
label{display:grid;gap:7px;color:var(--ink-2);font-size:.82rem;font-weight:700}input,select,textarea{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:9px 12px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}input:hover,select:hover,textarea:hover{border-color:#bdcbc4}input:focus,select:focus,textarea:focus{border-color:var(--brand-2);box-shadow:var(--focus)}textarea{min-height:104px;resize:vertical}input[type=email],input[type=password]{direction:ltr;text-align:left}.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:10px;padding:8px 15px;font-size:.81rem;font-weight:800;white-space:nowrap;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s}.button:hover{transform:translateY(-1px)}.button:focus-visible,.icon-button:focus-visible,.nav-item:focus-visible,.filter-chip:focus-visible{outline:none;box-shadow:var(--focus)}.button.primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;box-shadow:0 5px 14px rgba(15,81,61,.16)}.button.primary:hover{background:#0e5e45}.button.ghost{border-color:var(--line-strong);background:#fff;color:var(--ink-2)}.button.ghost:hover{border-color:#aebfb7;background:var(--surface-2)}.button.small{min-height:34px;border-radius:8px;padding:5px 10px;font-size:.73rem}.button.danger{border-color:#f1cac7;background:var(--red-soft);color:var(--red);box-shadow:none}.button.wide{width:100%;margin-top:3px}.divider{display:flex;align-items:center;gap:12px;color:#8c9992;font-size:.72rem}.divider:before,.divider:after{height:1px;flex:1;background:var(--line);content:""}.demo-accounts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.demo-account{display:flex;min-width:0;align-items:center;gap:9px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:9px;text-align:right;color:var(--ink)}.demo-account:hover{border-color:#abc0b6;background:#f9fbfa}.demo-role-icon{display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border-radius:9px;background:var(--gold-soft);color:#7a5416;font-weight:900}.demo-account>span:last-child{min-width:0}.demo-account strong,.demo-account span:last-child span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-account strong{font-size:.74rem}.demo-account span:last-child span{direction:ltr;color:var(--muted);font-size:.62rem;text-align:right}.login-hint{text-align:center;font-size:.72rem!important}
.app-shell{display:block;min-height:100vh}.sidebar{position:fixed;z-index:40;inset:0 0 0 auto;display:flex;width:var(--sidebar-w);height:100dvh;min-height:0;flex-direction:column;overflow:hidden;border-left:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#112e25,#10271f);color:#eef6f2;box-shadow:-8px 0 28px rgba(16,45,35,.07)}.sidebar-brand{height:78px;flex:0 0 78px;padding:0 22px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand .brand-mark{background:#d1a04b;color:#17291f}.project-switcher{display:flex;flex:0 0 auto;flex-direction:column;gap:2px;margin:16px 14px 12px;padding:12px 14px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.055);color:#fff;text-align:right;transition:.15s}.project-switcher:hover{border-color:rgba(213,163,76,.55);background:rgba(255,255,255,.085)}.project-switcher .eyebrow{color:#8da59b;font-size:.61rem}.project-switcher strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.project-switcher span:last-child{direction:ltr;color:#91a79d;font-size:.67rem;text-align:right}.main-nav{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow-x:hidden;overflow-y:auto;padding:4px 11px 12px;scrollbar-width:thin;scrollbar-color:#365348 transparent}.nav-item{position:relative;display:flex;min-height:43px;align-items:center;gap:11px;border:0;border-radius:10px;background:transparent;color:#aebfb7;padding:9px 12px;text-align:right;font-size:.79rem;font-weight:650;transition:.14s}.nav-item:hover{background:rgba(255,255,255,.065);color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(210,161,76,.2),rgba(210,161,76,.09));color:#fff}.nav-item.active:after{position:absolute;inset:9px auto 9px 0;width:3px;border-radius:4px;background:#d5a34c;content:""}.nav-icon{display:grid;width:23px;height:23px;flex:0 0 23px;place-items:center;color:#d8b269;font-size:.96rem}.sidebar-footer{display:grid;grid-template-columns:38px minmax(0,1fr) 34px;flex:0 0 auto;align-items:center;gap:10px;padding:15px 14px;border-top:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.08)}.avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;background:#2b5546;color:#fff;font-size:.68rem;font-weight:850}.user-meta{min-width:0}.user-meta strong,.user-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta strong{font-size:.75rem}.user-meta span{color:#8fa59a;font-size:.63rem}.icon-button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:9px;background:transparent;color:inherit;font-size:1.12rem}.icon-button:hover{background:rgba(255,255,255,.09)}.workspace{display:block;width:auto;min-width:0;min-height:100vh;margin-right:var(--sidebar-w)}.topbar{position:sticky;top:0;z-index:25;display:flex;min-height:78px;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(215,225,220,.9);background:rgba(244,247,246,.92);padding:12px clamp(20px,2.5vw,36px);backdrop-filter:blur(14px)}.topbar>div:first-of-type{min-width:0}.topbar h1{overflow:hidden;margin:1px 0 0;font-size:1.48rem;font-weight:770;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:16px}.data-date{color:var(--muted);font-size:.69rem;white-space:nowrap}.data-date strong{color:var(--ink)}.mobile-menu{display:none;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:1.2rem}.content{width:100%;max-width:1720px;margin:0 auto;padding:26px clamp(20px,2.5vw,36px) 54px;outline:none}
.notice{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;border:1px solid #ead6af;border-radius:12px;background:linear-gradient(90deg,#fcf5e8,#faf0dc);padding:12px 15px;color:#674b1d;font-size:.78rem}.notice strong{margin-left:4px}.notice.full{margin-bottom:9px}.grid{display:grid;gap:17px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card{position:relative;min-width:0;min-height:136px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s,border-color .18s}.summary-card:hover{transform:translateY(-2px);border-color:#d4dfda;box-shadow:var(--shadow)}.summary-card:after{position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent,var(--gold));content:""}.summary-label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.72rem;font-weight:700}.summary-icon{display:grid;width:31px;height:31px;flex:0 0 31px;place-items:center;border-radius:9px;background:var(--tint,var(--gold-soft));color:var(--accent,var(--ink));font-weight:900}.summary-value{display:block;direction:ltr;margin-top:18px;font-size:clamp(1.18rem,1.65vw,1.62rem);font-weight:790;line-height:1.5;text-align:right;unicode-bidi:isolate;white-space:nowrap}.summary-sub{display:block;margin-top:2px;color:var(--muted);font-size:.67rem}.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(290px,.8fr);margin-top:17px}.panel{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.panel-header{display:flex;min-height:67px;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}.panel-header>div{min-width:0}.panel-header h2{margin:0;font-size:.9rem;font-weight:780}.panel-header p{margin:2px 0 0;color:var(--muted);font-size:.67rem}.panel-body{padding:18px}.text-button{display:inline-flex;align-items:center;border:0;background:transparent;color:var(--brand-2);font-size:.72rem;font-weight:800;white-space:nowrap}.text-button:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px}.balance-list{display:grid;gap:15px}.balance-row{display:grid;grid-template-columns:minmax(135px,1.15fr) minmax(90px,.8fr) minmax(110px,.85fr);align-items:center;gap:13px}.partner-name{display:flex;min-width:0;align-items:center;gap:10px}.partner-name .avatar{background:#edf2ef;color:var(--ink)}.partner-name strong,.partner-name span{display:block}.partner-name strong{overflow:hidden;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.partner-name span{color:var(--muted);font-size:.63rem}.mini-progress{height:6px;overflow:hidden;border-radius:8px;background:#edf1ef}.mini-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c18b32,#e0b75f)}.amount-stack{text-align:left}.amount-stack strong,.amount-stack span{display:block}.amount-stack strong{direction:ltr;font-size:.75rem;unicode-bidi:isolate}.amount-stack span{color:var(--muted);font-size:.62rem}.balance-positive{color:var(--brand-2)!important}.balance-negative{color:var(--red)!important}.chart-list{display:flex;min-height:215px;align-items:flex-end;gap:12px;padding:15px 5px 4px}.chart-col{display:flex;min-width:0;flex:1;flex-direction:column;align-items:center;gap:7px}.chart-bar-wrap{display:flex;width:100%;height:150px;align-items:flex-end;justify-content:center}.chart-bar{width:min(46px,72%);min-height:5px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#d9aa52,#b97a1d)}.chart-col span{width:100%;overflow:hidden;color:var(--muted);font-size:.61rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}.section-gap{margin-top:17px}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#c7d3cd transparent}.data-table{direction:rtl;width:100%;min-width:780px;border-collapse:separate;border-spacing:0;font-size:.74rem}.data-table th{position:sticky;top:0;z-index:1;padding:10px 14px;border-bottom:1px solid var(--line);background:#f8faf9;color:#687970;font-size:.64rem;font-weight:800;text-align:right;white-space:nowrap}.data-table td{max-width:360px;padding:12px 14px;border-bottom:1px solid #edf1ef;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcfb}.cell-main{display:block;max-width:310px;overflow:hidden;font-weight:720;text-overflow:ellipsis;white-space:nowrap}.cell-sub{display:block;margin-top:1px;color:var(--muted);font-size:.63rem}.money{direction:ltr;font-variant-numeric:tabular-nums;font-weight:790;text-align:right;unicode-bidi:isolate;white-space:nowrap}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.62rem;font-weight:800;white-space:nowrap}.badge:before{width:5px;height:5px;margin-left:5px;border-radius:50%;background:currentColor;content:""}.badge.approved,.badge.valid,.badge.active{background:var(--brand-soft);color:var(--brand-2)}.badge.pending,.badge.draft,.badge.planning,.badge.on_hold{background:var(--gold-soft);color:#865c17}.badge.rejected,.badge.cancelled,.badge.void,.badge.terminated{background:var(--red-soft);color:var(--red)}.badge.completed,.badge.paid{background:var(--blue-soft);color:var(--blue)}.actions{display:flex;flex-wrap:wrap;gap:6px}.empty-state{padding:52px 20px;color:var(--muted);text-align:center}.empty-state strong{display:block;margin-bottom:2px;color:var(--ink)}
.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px}.page-intro h2{margin:0;font-size:1.25rem;font-weight:760;line-height:1.5}.page-intro p{margin:2px 0 0;color:var(--muted);font-size:.73rem}.filter-row{display:flex;max-width:100%;gap:7px;overflow-x:auto;padding-bottom:2px}.filter-chip{min-height:35px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;padding:6px 11px;color:var(--muted);font-size:.69rem;font-weight:750;white-space:nowrap}.filter-chip.active{border-color:var(--brand);background:var(--brand);color:#fff}.filter-input{min-width:210px;min-height:35px;padding:6px 10px}.ledger-hero{display:grid;grid-template-columns:1.15fr repeat(3,minmax(145px,.7fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--line);box-shadow:var(--shadow-sm)}.ledger-cell{min-width:0;background:#fff;padding:19px}.ledger-cell.primary{background:linear-gradient(145deg,#123d30,#0f513d);color:#fff}.ledger-cell span{display:block;color:var(--muted);font-size:.66rem}.ledger-cell.primary span{color:#aac1b7}.ledger-cell strong{display:block;direction:ltr;margin-top:7px;font-size:1.22rem;font-weight:790;text-align:right;unicode-bidi:isolate;white-space:nowrap}.ledger-cell.primary strong{font-size:1.48rem}.contract-card{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(115px,.6fr));gap:16px;align-items:center;padding:18px}.contract-title{min-width:0}.contract-title strong,.contract-title span{display:block}.contract-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-title span{margin-top:2px;color:var(--muted);font-size:.67rem}.contract-stat span,.contract-stat strong{display:block}.contract-stat span{color:var(--muted);font-size:.63rem}.contract-stat strong{direction:ltr;margin-top:2px;font-size:.77rem;text-align:right;unicode-bidi:isolate}.audit-line{display:flex;align-items:center;gap:9px}.audit-mark{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--gold)}.toast{position:fixed;right:auto;bottom:22px;left:22px;z-index:100;max-width:min(380px,calc(100vw - 32px));transform:translateY(18px);border-radius:11px;background:#102f25;color:#fff;padding:11px 15px;box-shadow:var(--shadow);font-size:.76rem;opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:translateY(0);opacity:1}.toast.error{background:var(--red)}
.dialog{width:min(700px,calc(100% - 30px));max-height:90dvh;border:0;border-radius:18px;padding:0;background:#fff;box-shadow:0 26px 90px rgba(9,33,24,.26)}.dialog::backdrop{background:rgba(9,28,21,.56);backdrop-filter:blur(3px)}.dialog-card{display:flex;max-height:90dvh;flex-direction:column;direction:rtl}.dialog-header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:15px;padding:18px 21px;border-bottom:1px solid var(--line)}.dialog-header h2{margin:1px 0 0;font-size:1.35rem;font-weight:760}.dialog-header .icon-button:hover{background:var(--surface-2)}.dialog-body{display:grid;grid-template-columns:1fr 1fr;gap:14px;overflow:auto;padding:20px 21px}.dialog-body .full{grid-column:1/-1}.dialog-footer{display:flex;flex:0 0 auto;justify-content:flex-start;gap:8px;padding:14px 21px;border-top:1px solid var(--line);background:#fafcfb}.dialog[open]{animation:pop .16s ease-out}@keyframes pop{from{transform:translateY(8px) scale(.99);opacity:0}}.project-choice{width:100%;text-align:right}
@media(max-width:1280px){:root{--sidebar-w:250px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.contract-card{grid-template-columns:minmax(180px,1.2fr) repeat(2,minmax(120px,.7fr))}.data-date{display:none}}
@media(max-width:960px){.ledger-hero{grid-template-columns:1fr 1fr}.ledger-cell.primary{grid-column:1/-1}.login-page{grid-template-columns:1fr 1fr}.login-brand{padding:38px}.login-copy h1{font-size:3rem}.login-panel{padding:30px}}
@media(max-width:860px){.app-shell{display:block}.sidebar{width:min(82vw,290px);transform:translateX(102%);transition:transform .2s ease,box-shadow .2s}.sidebar.open{transform:translateX(0);box-shadow:-18px 0 55px rgba(0,0,0,.28)}.workspace{width:100%;margin-right:0}.mobile-menu{display:grid;place-items:center}.topbar{min-height:70px;padding:10px 16px}.topbar-actions{gap:8px}.topbar-actions .button{width:42px;padding:0;font-size:0}.topbar-actions .button:before{font-size:1.15rem;content:"+"}.content{padding:20px 16px 44px}.page-intro{align-items:flex-start;flex-direction:column}.contract-card{grid-template-columns:1fr 1fr}.login-page{grid-template-columns:1fr}.login-brand{min-height:330px}.login-panel{padding:34px 22px}}
@media(max-width:600px){body{font-size:13px}.login-brand{min-height:285px;padding:26px}.login-copy h1{font-size:2.35rem}.login-copy p,.login-metric{display:none}.login-panel{padding:22px 14px}.login-card{padding:24px 20px;border-radius:17px}.demo-accounts{grid-template-columns:1fr}.topbar h1{font-size:1.2rem}.topbar .eyebrow{display:none}.summary-grid{grid-template-columns:1fr}.summary-card{min-height:124px}.ledger-hero{grid-template-columns:1fr}.ledger-cell.primary{grid-column:auto}.balance-row{grid-template-columns:1fr 1fr}.balance-row .mini-progress{display:none}.amount-stack{grid-column:2;text-align:left}.contract-card{grid-template-columns:1fr}.dialog{width:calc(100% - 16px);border-radius:14px}.dialog-body{grid-template-columns:1fr;padding:17px}.dialog-body .full{grid-column:auto}.dialog-header,.dialog-footer{padding-right:17px;padding-left:17px}.data-table{min-width:700px}.notice{align-items:flex-start;flex-direction:column}.toast{right:12px;bottom:12px;left:12px;max-width:none}}

/* Localized file picker */
label:has(input[type=file]){position:relative}
input[type=file]{cursor:pointer;color:transparent;padding:0;background:var(--surface-2)}
input[type=file]::file-selector-button{width:100%;height:42px;border:0;background:transparent;color:transparent;cursor:pointer}
label:has(input[type=file]):after{position:absolute;right:12px;bottom:9px;color:var(--brand-2);font-size:.74rem;font-weight:800;pointer-events:none;content:"انتخاب فایل یا رها کردن در این بخش"}

/* CSP-safe dynamic visualization classes */
.summary-card.tone-gold{--accent:#c28a2c;--tint:#faf1de}.summary-card.tone-green{--accent:#197052;--tint:#e5f2ed}.summary-card.tone-red{--accent:#b6423b;--tint:#fcebea}.summary-card.tone-blue{--accent:#336b81;--tint:#e7f1f5}
.w-0{width:0}.w-5{width:5%}.w-10{width:10%}.w-15{width:15%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-35{width:35%}.w-40{width:40%}.w-45{width:45%}.w-50{width:50%}.w-55{width:55%}.w-60{width:60%}.w-65{width:65%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-85{width:85%}.w-90{width:90%}.w-95{width:95%}.w-100{width:100%}
.h-5{height:5%}.h-10{height:10%}.h-15{height:15%}.h-20{height:20%}.h-25{height:25%}.h-30{height:30%}.h-35{height:35%}.h-40{height:40%}.h-45{height:45%}.h-50{height:50%}.h-55{height:55%}.h-60{height:60%}.h-65{height:65%}.h-70{height:70%}.h-75{height:75%}.h-80{height:80%}.h-85{height:85%}.h-90{height:90%}.h-95{height:95%}.h-100{height:100%}

/* Financial analytics and document centre */
.analytics-shell{overflow:hidden;border:1px solid #d7e3dd;border-radius:20px;background:linear-gradient(145deg,#f9fcfa,#f2f7f4);box-shadow:var(--shadow-sm)}.analytics-shell>.panel-header{border-bottom:0;padding-bottom:8px}.live-indicator{color:var(--brand-2);font-size:.68rem;font-weight:800}.analytics-cards{grid-template-columns:repeat(4,minmax(0,1fr));padding:8px 18px 18px}.analytics-cards article{display:grid;gap:5px;min-width:0;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.85);padding:14px}.analytics-cards span{color:var(--muted);font-size:.66rem}.analytics-cards strong{direction:ltr;overflow:hidden;font-size:1rem;text-align:right;text-overflow:ellipsis;white-space:nowrap}.analytics-grid{margin:0;padding:0 18px 18px}.chart-legend{display:flex!important;gap:13px;color:var(--muted);font-size:.63rem}.chart-legend span:before{display:inline-block;width:8px;height:8px;margin-left:5px;border-radius:2px;content:""}.expense-dot:before{background:var(--gold)}.deposit-dot:before{background:var(--brand-2)}.trend-chart{display:flex;min-height:240px;align-items:flex-end;gap:9px;padding:20px 18px 13px;overflow-x:auto}.trend-month{display:grid;min-width:54px;flex:1;gap:8px;text-align:center}.trend-bars{display:flex;height:170px;align-items:flex-end;justify-content:center;gap:4px}.trend-bar{width:16px;min-height:5px;border-radius:5px 5px 2px 2px}.expense-bar{background:linear-gradient(180deg,#e1b867,#b97a1d)}.deposit-bar{background:linear-gradient(180deg,#48a17f,#126246)}.trend-month small{direction:ltr;color:var(--muted);font-size:.58rem}.insight-list{display:grid;padding:6px 18px 16px}.insight-list>div{display:grid;gap:2px;padding:12px 0;border-bottom:1px solid var(--line)}.insight-list>div:last-child{border-bottom:0}.insight-list span{color:var(--muted);font-size:.65rem}.insight-list strong{font-size:.76rem}.compact-summary{margin-bottom:18px}.badge.due{background:var(--red-soft);color:var(--red)}
.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.document-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;padding:16px}.document-card>.actions{grid-column:1/-1;justify-content:flex-end}.document-preview{display:grid;width:92px;height:100px;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#edf3f0,#f8faf9);color:var(--brand);font-size:1.05rem;font-weight:900}.document-preview img,.file-thumb img{width:100%;height:100%;object-fit:cover}.document-info{min-width:0}.document-info h3{margin:8px 0 3px;font-size:.91rem}.document-info p{display:-webkit-box;overflow:hidden;margin:0;color:var(--muted);font-size:.67rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}.document-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;color:var(--muted);font-size:.61rem}.attachment-gallery{display:grid;gap:9px}.attachment-card,.version-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:9px}.file-thumb{display:grid;width:56px;height:50px;place-items:center;overflow:hidden;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-size:.69rem;font-weight:900}.attachment-card>div:nth-child(2),.version-row>span{min-width:0}.attachment-card strong,.version-row strong{display:block;overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.analytics-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.document-grid{grid-template-columns:1fr}}
@media(max-width:600px){.analytics-cards{grid-template-columns:1fr}.analytics-grid{padding:0 10px 10px}.trend-chart{padding-right:10px;padding-left:10px}.document-card{grid-template-columns:68px minmax(0,1fr);gap:11px}.document-preview{width:68px;height:78px}.attachment-card,.version-row{grid-template-columns:46px minmax(0,1fr)}.file-thumb{width:46px;height:44px}.attachment-card>.actions,.version-row>.button{grid-column:1/-1;justify-content:flex-end}}


/* Jalali calendar controls */
.jalali-date-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:6px;direction:rtl}.jalali-date-control input{direction:rtl;text-align:right}.jalali-calendar-button{display:grid;min-height:44px;place-items:center;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-2);color:var(--brand);font-size:1.05rem;font-weight:900}.jalali-calendar-button:hover,.jalali-calendar-button:focus-visible{border-color:var(--brand-2);background:var(--brand-soft);outline:none;box-shadow:var(--focus)}
.jalali-calendar-popover{position:fixed;z-index:2147483000;border:1px solid var(--line-strong);border-radius:14px;background:#fff;padding:12px;box-shadow:0 22px 60px rgba(9,33,24,.24);direction:rtl}.jalali-calendar-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:6px;margin-bottom:9px}.jalali-calendar-head strong{text-align:center;font-size:.83rem}.jalali-calendar-head button,.jalali-calendar-foot button{min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);font-weight:800}.jalali-calendar-head button:hover,.jalali-calendar-foot button:hover{border-color:var(--brand-2);background:var(--brand-soft)}.jalali-weekdays,.jalali-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.jalali-weekdays{margin-bottom:5px;color:var(--muted);font-size:.65rem;text-align:center}.jalali-weekdays span{padding:4px 0}.jalali-day{display:grid;min-width:0;min-height:34px;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--ink);font-size:.73rem}.jalali-day:not(.empty-day):hover,.jalali-day:not(.empty-day):focus-visible{background:var(--brand-soft);color:var(--brand);outline:none}.jalali-day.today{box-shadow:inset 0 0 0 1px var(--gold);color:#7a5416}.jalali-day.selected{background:var(--brand)!important;color:#fff!important;box-shadow:none}.jalali-day.empty-day{pointer-events:none}.jalali-calendar-foot{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.jalali-calendar-foot button{flex:1;font-size:.68rem}.category-table td:nth-child(2),.category-table td:nth-child(3){max-width:320px;white-space:normal}.category-table td:nth-child(2),.category-table td:nth-child(3){color:var(--ink-2);font-size:.72rem}
@media(max-width:600px){.jalali-calendar-popover{padding:10px}.jalali-day{min-height:32px}.category-table{min-width:780px}}

/* User-selectable appearance themes */
.theme-control{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.68rem;font-weight:750;white-space:nowrap}.theme-control select{width:auto;min-width:86px;min-height:36px;padding:5px 9px;border-radius:9px;background:var(--surface);color:var(--ink);font-size:.72rem}
html[data-theme="night"]{color-scheme:dark;--bg:#0f1714;--surface:#16211d;--surface-2:#1c2924;--ink:#edf6f1;--ink-2:#c7d7cf;--muted:#8ea299;--line:#293b33;--line-strong:#395047;--brand:#2f9a70;--brand-2:#4fbb8e;--brand-soft:#1f3b31;--gold:#d1a04b;--gold-soft:#3a2f1d;--red:#ee7a72;--red-soft:#3a211f;--blue:#6ca9c0;--blue-soft:#1c323b;--shadow-sm:0 1px 2px rgba(0,0,0,.18);--shadow:0 12px 34px rgba(0,0,0,.28);--focus:0 0 0 3px rgba(79,187,142,.2)}
html[data-theme="ocean"]{--bg:#f2f7fb;--surface:#fff;--surface-2:#f7fbfd;--ink:#173044;--ink-2:#365467;--muted:#738b9a;--line:#dbe7ee;--line-strong:#c8d9e3;--brand:#185f82;--brand-2:#247aa1;--brand-soft:#e2f0f7;--gold:#b98a34;--gold-soft:#f8f0df;--blue:#185f82;--blue-soft:#e2f0f7;--focus:0 0 0 3px rgba(36,122,161,.16)}
html[data-theme="sand"]{--bg:#f8f4ec;--surface:#fffdfa;--surface-2:#fbf6ee;--ink:#3b3127;--ink-2:#5e5144;--muted:#8a7c6e;--line:#eadfce;--line-strong:#dbcbb5;--brand:#765b38;--brand-2:#9b7447;--brand-soft:#f1e6d5;--gold:#b9802f;--gold-soft:#f8ecd6;--red:#b85348;--red-soft:#f8e9e5;--blue:#58788a;--blue-soft:#e9f0f2;--focus:0 0 0 3px rgba(155,116,71,.17)}
html[data-theme="night"] body,html[data-theme="night"] .login-panel{background:var(--bg)}
html[data-theme="night"] .topbar{border-bottom-color:var(--line);background:rgba(15,23,20,.94)}
html[data-theme="night"] .login-card,html[data-theme="night"] .panel,html[data-theme="night"] .summary-card,html[data-theme="night"] .dialog-card,html[data-theme="night"] input,html[data-theme="night"] select,html[data-theme="night"] textarea,html[data-theme="night"] .button.ghost,html[data-theme="night"] .mobile-menu,html[data-theme="night"] .demo-account,html[data-theme="night"] .jalali-calendar-popover,html[data-theme="night"] .jalali-calendar-head button,html[data-theme="night"] .jalali-calendar-foot button{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}
html[data-theme="night"] .demo-account:hover,html[data-theme="night"] .button.ghost:hover,html[data-theme="night"] .jalali-calendar-head button:hover,html[data-theme="night"] .jalali-calendar-foot button:hover{background:var(--surface-2)}
html[data-theme="night"] .document-preview,html[data-theme="night"] .file-thumb{background:var(--surface-2)}
html[data-theme="ocean"] .sidebar{background:linear-gradient(180deg,#12384c,#102f40)}
html[data-theme="ocean"] .topbar{background:rgba(242,247,251,.93)}
html[data-theme="sand"] .sidebar{background:linear-gradient(180deg,#493a2c,#392f25)}
html[data-theme="sand"] .topbar{background:rgba(248,244,236,.94)}
html[data-theme="ocean"] .login-brand{background:linear-gradient(145deg,#12384c,#174d66 58%,#1f617b)}
html[data-theme="sand"] .login-brand{background:linear-gradient(145deg,#493a2c,#5b4734 58%,#74583d)}
html[data-theme="night"] .login-brand{background:linear-gradient(145deg,#07100d,#101c17 58%,#16271f)}

/* Jalali year/month selectors */
.jalali-calendar-period{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(82px,.75fr);gap:6px;align-items:center}.jalali-calendar-period select{min-height:34px;padding:4px 7px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);font-size:.7rem;font-weight:800;text-align:center}.jalali-calendar-period select:focus{border-color:var(--brand-2);box-shadow:var(--focus)}
@media(max-width:860px){.theme-control span{display:none}.theme-control select{min-width:72px;max-width:82px}.topbar-actions{gap:6px}}
@media(max-width:420px){.theme-control select{min-width:64px;max-width:68px;padding-right:5px;padding-left:5px;font-size:.66rem}.jalali-calendar-period{grid-template-columns:1fr 78px}}


/* Project control: budget, schedule, change orders */
.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}.control-card{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:15px;box-shadow:var(--shadow-sm)}.control-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.control-card-head>div{min-width:0}.control-card h3{margin:5px 0 0;font-size:.88rem;line-height:1.6}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.metric-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid>div{min-width:0;border-radius:10px;background:var(--surface-2);padding:9px 10px}.metric-grid span{display:block;color:var(--muted);font-size:.61rem}.metric-grid strong{display:block;overflow:hidden;margin-top:2px;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.control-note{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:.68rem;line-height:1.9}.milestone-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;color:var(--muted);font-size:.63rem}.milestone-meta strong{color:var(--ink-2)}.progress-row{display:grid;gap:6px;margin-top:12px}.progress-row>div:first-child{display:flex;justify-content:space-between;color:var(--muted);font-size:.64rem}.progress-track{height:8px;overflow:hidden;border-radius:999px;background:var(--line)}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand-2))}.badge.in_progress{background:var(--blue-soft);color:var(--blue)}.badge.delayed{background:var(--red-soft);color:var(--red)}.badge.on_hold{background:var(--gold-soft);color:#815d20}.balance-positive{color:var(--brand-2)!important}.balance-negative{color:var(--red)!important}

/* Mobile verification hardening */
@media(max-width:860px){.table-wrap{overscroll-behavior-inline:contain}.panel-header{flex-wrap:wrap}.control-grid{grid-template-columns:1fr}.content{overflow-x:hidden}.filter-row{width:100%;scrollbar-width:thin}.dialog-card{max-height:calc(100dvh - 16px)}}
@media(max-width:600px){.topbar{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:8px}.topbar>div:first-of-type{min-width:0}.topbar h1{max-width:100%;font-size:1.05rem}.topbar-actions{min-width:0}.panel-header{align-items:flex-start}.panel-header>strong{width:100%;font-size:.72rem}.control-grid{padding:10px}.control-card{padding:12px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.milestone-meta{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}.dialog-footer{position:sticky;bottom:0;z-index:2}.dialog-footer .button{flex:1}.data-table{min-width:650px}.category-table{min-width:680px}.page-intro{gap:10px}.filter-input{min-width:180px}.jalali-calendar-popover{max-width:calc(100vw - 16px)}}
@media(max-width:380px){.theme-control select{min-width:58px;max-width:58px}.topbar{padding-right:10px;padding-left:10px}.content{padding-right:10px;padding-left:10px}.milestone-meta{grid-template-columns:1fr}.metric-grid,.metric-grid.compact{grid-template-columns:1fr}.control-card-head{gap:8px}.control-card-head .button{padding-right:8px;padding-left:8px}}

/* Commercial controls: procurement, cash flow, shareholder reporting */
.cashflow-list{display:grid;gap:10px;padding:16px}.cashflow-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px}.cashflow-item>div:first-child{display:grid;min-width:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px}.cashflow-item>div:first-child>span:last-child{grid-column:1/-1;color:var(--muted);font-size:.66rem}.cashflow-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px}.report-category-grid article{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px}.report-category-grid span{overflow:hidden;color:var(--muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.report-category-grid strong{font-size:.76rem;white-space:nowrap}.claim-table{min-width:1180px}.procurement-table{min-width:1050px}
@media(max-width:860px){.report-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cashflow-item{grid-template-columns:minmax(0,1fr) auto}.cashflow-item>.button{grid-column:1/-1;justify-self:end}}
@media(max-width:600px){.report-category-grid{grid-template-columns:1fr;padding:10px}.cashflow-list{padding:10px}.cashflow-item{grid-template-columns:1fr}.cashflow-item>.amount-stack{align-items:flex-start;text-align:right}.cashflow-item>.button{justify-self:stretch}.procurement-table{min-width:980px}.claim-table{min-width:1100px}}
@media print{.sidebar,.topbar,.page-intro .button,.mobile-menu{display:none!important}.workspace{margin:0!important}.content{max-width:none;padding:0}.panel,.summary-card{break-inside:avoid;box-shadow:none}.summary-grid{grid-template-columns:repeat(4,1fr)}body{background:#fff}}
.badge.requested{background:var(--gold-soft);color:#815d20}.badge.ordered{background:var(--blue-soft);color:var(--blue)}.badge.partially_received{background:var(--gold-soft);color:#815d20}.badge.received{background:var(--brand-soft);color:var(--brand)}.badge.confirmed{background:var(--blue-soft);color:var(--blue)}.badge.realized{background:var(--brand-soft);color:var(--brand)}
.login-checkbox{display:flex!important;align-items:center;gap:.6rem;flex-direction:row!important;font-size:.9rem}
.login-checkbox input{width:1rem;height:1rem;flex:none}
.user-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(2,minmax(140px,1fr));gap:1rem;padding:1.25rem}
.user-filters label{display:grid;gap:.4rem}
.user-filters input,.user-filters select{min-width:0}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.permission-grid label{display:grid;gap:.35rem}
.temporary-password{padding:1rem;border:1px dashed var(--line,#ccd5d3);border-radius:.75rem;background:var(--surface,#f6f8f7);font-size:1.3rem;font-weight:700;text-align:center;user-select:all;word-break:break-all}
@media(max-width:760px){.user-filters,.permission-grid{grid-template-columns:1fr}.user-filters{padding:.85rem}}

/* Administrator system settings */
.settings-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:16px;align-items:start}
.settings-nav{display:grid;gap:5px;padding:9px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}
.settings-nav button{min-height:42px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);text-align:right;padding:8px 12px;font:inherit;font-size:.76rem;font-weight:750;cursor:pointer}
.settings-nav button:hover,.settings-nav button.active{background:var(--brand-soft);color:var(--brand)}
.settings-panel{min-width:0;overflow:hidden}.settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px}
.settings-form label{display:grid;gap:7px;min-width:0;color:var(--ink-2);font-size:.75rem;font-weight:750}
.settings-form input:not([type=checkbox]),.settings-form textarea,.settings-form select{width:100%;min-width:0}
.settings-form .settings-check{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.settings-check input{width:17px;height:17px;flex:none}.settings-wide{grid-column:1/-1}.settings-logo{display:block;width:90px;height:90px;margin:10px 0;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.settings-panel .table-wrap{max-width:100%;overflow:auto}.settings-panel .data-table{min-width:690px}
@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.settings-nav{display:flex;overflow-x:auto;white-space:nowrap;scrollbar-width:thin}.settings-nav button{flex:none}}
@media(max-width:600px){.settings-form{grid-template-columns:1fr;padding:14px}.settings-wide{grid-column:auto}.settings-panel .data-table{min-width:740px}}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
.topbar-actions{position:relative}.notification-popover{position:absolute;top:calc(100% + 12px);left:0;z-index:100;width:min(330px,calc(100vw - 24px));max-height:380px;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);color:var(--ink);text-align:right}
.notification-popover.hidden{display:none}.notification-popover>strong{display:block;margin-bottom:8px}.notification-item{display:grid;gap:3px;padding:8px 0;border-top:1px solid var(--line);font-size:.74rem}.notification-item small{color:var(--muted);font-size:.65rem}
html.compact-tables .data-table th,html.compact-tables .data-table td{padding-top:7px;padding-bottom:7px}

/* Navigation and operational UX refresh */
.main-nav{padding:8px 10px 18px}.nav-section{display:grid;gap:3px;margin-bottom:10px}.nav-section-title{padding:8px 12px 4px;color:rgba(255,255,255,.5);font-size:.58rem;font-weight:800;letter-spacing:.04em}.nav-item{min-height:39px}.nav-item>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sync-status-button{display:flex;align-items:center;gap:6px;min-height:36px;padding:6px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:.66rem;cursor:pointer}.sync-status-button strong{display:grid;min-width:19px;height:19px;place-items:center;border-radius:50%;background:var(--surface-2)}#sync-status-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-2)}#sync-status-dot[data-state=offline],#sync-status-dot[data-state=failed]{background:var(--red)}#sync-status-dot[data-state=pending]{background:var(--gold)}#sync-status-dot[data-state=conflict]{background:#8b5cf6}
.operations-table{min-width:850px}.empty-compact{padding:22px;color:var(--muted);text-align:center}.alert-strip{margin:16px 0;padding:12px 16px;border:1px solid #ead9a8;border-radius:12px;background:var(--gold-soft);color:#6f5115;font-size:.76rem;line-height:1.9}
.dashboard-alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}.dashboard-alert-card{display:grid;gap:4px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink);text-align:right;font:inherit;cursor:pointer}.dashboard-alert-card:hover{border-color:var(--brand-2);transform:translateY(-1px)}.dashboard-alert-card span,.dashboard-alert-card small{color:var(--muted);font-size:.65rem}.dashboard-alert-card strong{font-size:1.05rem;color:var(--brand)}
.ops-file-list,.ops-comments{display:grid;gap:9px}.ops-file-list a{display:grid;gap:3px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);text-decoration:none}.ops-file-list small,.ops-comments small{display:block;color:var(--muted);font-size:.63rem}.ops-comments p{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.ops-comments strong{display:block;margin-bottom:4px}
.printable-report{display:grid;gap:12px;padding:4px}.printable-report h3{margin:0;font-size:1.05rem}.printable-report>p,.printable-report section p{white-space:pre-wrap;line-height:2}.printable-report section{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.report-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.report-facts span{padding:8px;border-radius:8px;background:var(--brand-soft);font-size:.7rem}
.handover-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:18px}.handover-flow>div{display:grid;justify-items:center;gap:8px;padding:14px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);text-align:center}.handover-flow>div>span{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:var(--line);font-weight:800}.handover-flow>div.done{border-color:var(--brand-2);background:var(--brand-soft)}.handover-flow>div.done>span{background:var(--brand-2);color:white}.handover-flow strong{font-size:.7rem;line-height:1.7}
.badge.synced{background:var(--brand-soft);color:var(--brand)}.badge.failed,.badge.conflict{background:var(--red-soft);color:var(--red)}.badge.ready_for_inspection{background:var(--blue-soft);color:var(--blue)}.badge.idle,.badge.maintenance{background:var(--gold-soft);color:#76551b}.badge.broken{background:var(--red-soft);color:var(--red)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--brand-2) 45%,transparent);outline-offset:2px}.button,.icon-button,.nav-item{touch-action:manipulation}
@media(max-width:860px){.handover-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.report-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.sync-status-button span:not(#sync-status-dot){display:none}}
@media(max-width:600px){.content{width:100%;max-width:100vw}.page-intro>.actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.page-intro>.actions .button{min-height:44px;white-space:normal}.button{min-height:42px}.icon-button{min-width:42px;min-height:42px}.dialog-body{grid-template-columns:1fr}.dialog-card{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.operations-table{min-width:760px}.handover-flow{grid-template-columns:1fr;padding:10px}.report-facts{grid-template-columns:1fr}.topbar-actions{max-width:55vw}.sync-status-button{padding:6px}.offline-notice{top:4px;inset-inline:6px}}

@media(max-width:600px){.dialog{max-width:calc(100vw - 16px)}.dialog-card{width:auto;max-width:none;min-width:0}.dialog-body,.dialog-body>*{min-width:0}.dialog-body input,.dialog-body select,.dialog-body textarea{width:100%;min-width:0;max-width:100%}}
@media(max-width:360px){.topbar-actions .theme-control{display:none}.topbar h1{font-size:.92rem}.content{padding:10px}.summary-grid{grid-template-columns:1fr 1fr}.summary-card{padding:11px}.summary-value{font-size:.92rem}}

/* Project financial accounts and ledger */
.account-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:16px}
.account-card{display:grid;align-content:start;gap:9px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.account-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.7rem}
.account-card h3{margin:0;font-size:.9rem}.account-card>strong{font-size:1.18rem;color:var(--brand);direction:ltr;text-align:right;font-variant-numeric:tabular-nums}
.account-card small{min-height:1.4em;color:var(--muted)}.account-card .actions{margin-top:4px;flex-wrap:wrap}
.financial-chart{display:flex;align-items:end;gap:9px;min-height:190px;overflow-x:auto;padding:20px 16px 8px;direction:ltr}
.financial-month{display:grid;justify-items:center;gap:7px;flex:1 0 42px;min-width:42px}.financial-month small{font-size:.64rem;color:var(--muted);white-space:nowrap}
.financial-bars{display:flex;align-items:end;justify-content:center;gap:3px;width:100%;height:150px;border-bottom:1px solid var(--line)}
.financial-bar{display:block;width:38%;min-height:3px;border-radius:5px 5px 0 0}.financial-bar.income{background:var(--brand-2)}.financial-bar.expense{background:var(--red)}
.financial-legend{display:flex;justify-content:center;gap:20px;padding:6px 12px 16px;color:var(--muted);font-size:.72rem}.financial-legend span:first-child{color:var(--brand-2)}.financial-legend span:last-child{color:var(--red)}
.financial-warning-list{display:grid;gap:7px;padding:0 16px 16px}.financial-warning-list p{margin:0;padding:10px 12px;border-radius:9px;background:var(--gold-soft);color:var(--ink-2);font-size:.75rem}
.ledger-filter{display:grid;grid-template-columns:repeat(5,minmax(115px,1fr)) auto;gap:9px;align-items:end;padding:16px}.ledger-filter label{display:grid;gap:5px;min-width:0;font-size:.7rem;color:var(--muted)}.ledger-filter input,.ledger-filter select{width:100%;min-width:0}.ledger-filter .button{min-height:42px}
.account-ledger-table{min-width:1050px}.account-ledger-table .money{direction:ltr;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.report-balance-summary{margin-bottom:17px}
.budget-analysis-table{min-width:1060px}.budget-analysis-table .money{white-space:nowrap;font-variant-numeric:tabular-nums}
.budget-meter{height:8px;min-width:85px;overflow:hidden;border-radius:20px;background:var(--line)}.budget-meter>span{display:block;height:100%;border-radius:inherit;background:var(--brand-2)}.budget-analysis-table small,.budget-chart small{display:block;margin-top:5px;color:var(--muted);font-size:.65rem;white-space:nowrap}
.budget-chart{display:grid;gap:17px}.budget-chart-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:.72rem}.budget-chart-label strong{direction:ltr;white-space:nowrap;font-variant-numeric:tabular-nums}
/* Field PWA and project risk controls */
.offline-notice{position:fixed;inset-inline:12px;top:8px;z-index:500;max-width:520px;margin:auto;padding:10px 16px;border-radius:12px;background:#fff0d0;color:#6c4c10;box-shadow:var(--shadow);font-size:.78rem;text-align:center}
.field-quick-actions{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.field-quick-actions .button{min-height:42px}
.field-list{display:grid;gap:8px;padding:14px 18px;color:var(--ink-2);font-size:.76rem}.field-list>div,.field-list>a{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink-2);text-decoration:none}.field-list small{display:block;color:var(--muted);font-size:.65rem}
.field-chart{display:grid;gap:10px;padding:18px}.field-chart>div{display:grid;grid-template-columns:minmax(100px,1fr) minmax(80px,3fr) 34px;gap:10px;align-items:center;font-size:.72rem}.field-chart>div>div{height:9px;overflow:hidden;border-radius:99px;background:var(--line)}.field-chart i{display:block;height:100%;border-radius:inherit;background:var(--brand-2)}.field-chart strong{text-align:left;font-variant-numeric:tabular-nums}
.field-chart progress{width:100%;height:9px;overflow:hidden;border:0;border-radius:99px;background:var(--line);accent-color:var(--brand-2)}.field-chart progress::-webkit-progress-bar{background:var(--line);border-radius:99px}.field-chart progress::-webkit-progress-value{background:var(--brand-2);border-radius:99px}.field-chart progress::-moz-progress-bar{background:var(--brand-2);border-radius:99px}
.field-list a:hover{border-color:var(--brand-2);color:var(--brand)}.data-table td small{display:block;color:var(--muted);font-size:.62rem}
@media(max-width:600px){.field-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.field-quick-actions .button{white-space:normal;line-height:1.5}.field-chart>div{grid-template-columns:minmax(80px,1fr) minmax(55px,2fr) 25px;gap:6px}.field-list{padding:10px}}
@media(max-width:1100px){.ledger-filter{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.account-card-grid{grid-template-columns:1fr;padding:10px}.ledger-filter{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}.ledger-filter .button{grid-column:1/-1}.financial-chart{min-height:150px}.financial-bars{height:120px}}
