/* draupr 20.1 — product design system (RTL-first) */
@font-face{font-family:Vazirmatn;src:url("../fonts/Vazirmatn-Regular.cdc140628f11.woff2") format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Vazirmatn;src:url("../fonts/Vazirmatn-Medium.dd2193b32cbe.woff2") format('woff2');font-weight:500 600;font-display:swap}@font-face{font-family:Vazirmatn;src:url("../fonts/Vazirmatn-Bold.7958481fe611.woff2") format('woff2');font-weight:700 800;font-display:swap}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Vazirmatn,Tahoma,sans-serif;font-size:14px;line-height:1.65}button,input,select,textarea{font:inherit}a{color:var(--brand);text-underline-offset:3px}a:hover{color:var(--brand-2)}:focus-visible{outline:3px solid rgba(37,99,235,.22);outline-offset:2px}.muted{color:var(--muted)}.small,small{font-size:12px}.nowrap{white-space:nowrap}.text-danger{color:var(--bad)!important}.text-warning{color:var(--warn)!important}
/* shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.app-sidebar{height:100vh;position:sticky;top:0;background:var(--nav);color:var(--border);display:flex;flex-direction:column;padding:14px 10px 10px;z-index:50}.brand-row{display:flex;align-items:center;gap:8px;padding:3px 8px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0;flex:1}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(145deg,var(--info),#6347e8);font:700 23px Georgia}.brand b,.brand small{display:block}.brand b{font-size:16px}.brand small{font-size:10.5px;color:#8da1b9;font-weight:400}.primary-nav{flex:1;overflow:auto;padding:9px 2px 14px;scrollbar-width:thin;scrollbar-color:#35445a transparent}.nav-cluster{padding:6px 0}.nav-cluster+.nav-cluster{border-top:1px solid rgba(255,255,255,.055)}.nav-label{display:block;padding:2px 10px 5px;color:#71839a;font-size:10px;font-weight:700}.nav-link{min-height:36px;display:flex;align-items:center;gap:9px;padding:6px 9px;margin:1px 0;border-radius:7px;color:#c7d2e1;text-decoration:none;font-size:13px}.nav-link i{width:19px;color:#7890ac;font-style:normal;text-align:center}.nav-link:hover{color:#fff;background:rgba(255,255,255,.055)}.nav-link.is-active{color:#fff;background:#263750;box-shadow:inset -3px 0 var(--brand)}.nav-link.is-active i{color:#8ab8ff}.nav-disclosure{border-top:1px solid rgba(255,255,255,.055);padding-top:5px}.nav-disclosure summary{list-style:none;cursor:pointer;color:#8fa1b8;padding:7px 10px;font-size:11.5px;font-weight:600}.nav-disclosure summary::-webkit-details-marker{display:none}.nav-disclosure summary:before{content:'+';display:inline-block;width:18px}.nav-disclosure[open] summary:before{content:'−'}.sidebar-user{border-top:1px solid rgba(255,255,255,.08);padding:11px 7px 2px;display:flex;align-items:center;gap:9px}.avatar{width:30px;height:30px;display:grid;place-items:center;background:#2a3d58;border-radius:50%;font-weight:700}.sidebar-user>span:nth-child(2){min-width:0;flex:1}.sidebar-user b,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user b{font-size:12.5px}.sidebar-user small{color:#8497ad;font-size:10.5px}.icon-btn{border:0;background:transparent;color:inherit;cursor:pointer;border-radius:7px;padding:5px 8px}.icon-btn:hover{background:rgba(127,143,166,.13)}.nav-close,.nav-trigger{display:none}.nav-scrim{display:none}.app-main{min-width:0}.app-topbar{height:68px;position:sticky;top:0;z-index:30;display:grid;grid-template-columns:minmax(190px,1fr) minmax(280px,520px) minmax(150px,1fr);align-items:center;gap:20px;padding:8px 28px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar-title{display:flex;align-items:center;gap:8px}.eyebrow{display:block;color:var(--subtle);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.topbar-title h1{margin:0;font-size:17px;line-height:1.35}.global-search{height:38px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-secondary)}.global-search:focus-within{border-color:#9bbcf7;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.global-search input{width:100%;min-width:0;border:0;outline:0;background:transparent}.global-search kbd{direction:ltr;border:1px solid var(--line-strong);background:#fff;border-radius:5px;padding:0 5px;color:var(--subtle);font:11px monospace}.today{justify-self:end}.today small,.today b{display:block}.today small{color:var(--subtle);font-size:9px}.today b{font-size:12.5px}.page-canvas{padding:24px 28px 48px}.page-content{width:100%;max-width:1480px;margin:auto;display:flex;flex-direction:column;gap:18px}.flash-stack{padding:14px 28px 0}.flash-stack>*{max-width:1480px;margin:0 auto 8px}
/* page composition */
.workspace-head,.page-header,.page-head,.page-intro,.toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.workspace-head h1,.page-header h1,.page-head h1,.container>h1{margin:0;font-size:22px}.workspace-head p,.page-header p,.page-lead{margin:4px 0 0;color:var(--muted)}.breadcrumb{display:flex;align-items:center;gap:7px;color:var(--subtle);font-size:12px}.breadcrumb a{text-decoration:none}.toolbar-actions,.form-actions,.field-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
/* surfaces */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:19px}.card-title,.card h2{margin:0 0 12px;font-size:15px}.card-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-header-row .card-title,.card-header-row h2{margin:0}.stat-card{min-height:122px;display:flex;flex-direction:column;justify-content:center}.stat-label{font-size:11.5px;color:var(--muted);font-weight:500}.stat-value{margin:5px 0;font-size:27px;font-weight:700;line-height:1.25;color:#1e293b}.stat-hint{font-size:11.5px;color:var(--muted)}.site-widget{border-inline-start:4px solid var(--brand)}.callout{background:var(--brand-soft);border-inline-start:4px solid var(--brand);box-shadow:none}.alert-card.alert-danger-border{border-inline-start:4px solid var(--bad)}.notes-box,.item-note{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.empty-state{text-align:center;padding:36px 20px;color:var(--muted)}details{border-radius:9px}details>summary{cursor:pointer;font-weight:600}
/* controls */
.btn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 13px;border:1px solid transparent;border-radius:8px;background:#fff;color:var(--text-secondary);text-decoration:none;font-weight:600;font-size:12.5px;cursor:pointer;transition:.14s ease}.btn:hover{transform:translateY(-1px);color:inherit}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-2);color:#fff}.btn-ghost{border-color:var(--line-strong);background:#fff}.btn-ghost:hover{background:var(--surface-secondary);border-color:#aeb8c5}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-success{background:var(--ok);color:#fff}.btn-sm{min-height:30px;padding:4px 9px;font-size:11.5px}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=search],input[type=file],select,textarea,.form-control{width:100%;min-height:39px;border:1px solid var(--line-strong);border-radius:8px;padding:7px 10px;background:#fff;color:var(--text);transition:.13s}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{outline:0;border-color:#86aef4;box-shadow:0 0 0 3px rgba(37,99,235,.11)}input[type=checkbox],input[type=radio]{width:17px;height:17px;accent-color:var(--brand)}.field,form>p{display:grid;gap:5px;margin:0 0 13px}.field>span,form>p>label,.form-group>label{font-size:11.5px;color:var(--muted);font-weight:600}.form-card{width:100%;max-width:920px}.form-card fieldset{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:0 0 14px}.form-card legend{padding:0 8px;color:var(--text-secondary);font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 15px}.field-span-2{grid-column:1/-1}.filter-bar,.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.filter-bar>*:not(button):not(a),.filters>*:not(button):not(a){width:auto;min-width:150px}.filter-q{flex:1!important;min-width:250px!important}.inline-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.checkbox-field{display:flex;align-items:center;gap:8px}.errorlist{list-style:none;margin:3px 0;padding:0;color:var(--bad);font-size:11.5px}
/* data */
.table-scroll{width:100%;overflow:auto;border-radius:9px}.table,table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}.table th,table th{padding:9px 11px;text-align:right;color:#667085;background:var(--surface-secondary);border-block:1px solid var(--line);font-size:11px;font-weight:700;white-space:nowrap}.table th:first-child,table th:first-child{border-start-start-radius:8px}.table th:last-child,table th:last-child{border-start-end-radius:8px}.table td,table td{padding:10px 11px;border-bottom:1px solid #edf0f3;vertical-align:middle}.table tbody tr:hover,table tbody tr:hover{background:#fafcff}.link-strong{color:#1f2937;text-decoration:none;font-weight:600}.badge{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border-radius:999px;padding:3px 8px;background:#eef2f6;color:var(--text-secondary);font-size:10.5px;font-weight:700}.badge-muted{color:var(--text-muted)}.badge-status.badge-draft{background:var(--surface-secondary)}.badge-status.badge-in_progress{background:var(--info-soft);color:var(--info-ink)}.badge-status.badge-submitted{background:#ede9fe;color:var(--ai-ink)}.badge-status.badge-won{background:var(--ok-soft);color:#067455}.badge-status.badge-lost{background:var(--bad-soft);color:#b4233c}.badge-status.badge-cancelled{background:var(--surface-secondary);color:var(--text-muted)}.badge-lg{font-size:12px;padding:5px 10px}.deadline{font-weight:600}.deadline-overdue,.urgency-overdue{color:var(--bad);font-weight:700}.deadline-critical,.urgency-critical{color:#c2410c;font-weight:700}.deadline-soon,.urgency-soon{color:var(--warn)}.pagination{display:flex;justify-content:center;align-items:center;gap:10px;padding-top:14px}.detail-list{margin:0}.detail-list>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px;padding:8px 0;border-bottom:1px solid var(--line)}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:var(--muted);font-size:11.5px}.detail-list dd{margin:0;font-weight:500}.progress,.progress-track{height:8px;background:#e8edf3;border-radius:999px;overflow:hidden}.progress>* ,.progress-track>*{height:100%;display:block;background:linear-gradient(90deg,var(--brand),#14a37f);border-radius:inherit}
/* feedback */
.alert{padding:10px 13px;border:1px solid transparent;border-radius:9px;font-size:12.5px}.alert-info{background:var(--brand-soft);border-color:var(--info-soft);color:#1e4f91}.alert-success{background:var(--ok-soft);border-color:#d1fae5;color:#06674f}.alert-warning{background:var(--warn-soft);border-color:#ffedd5;color:#8c4a06}.alert-error,.alert-danger{background:var(--bad-soft);border-color:#ffe4e6;color:#a93643}
/* auth */
.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 15%,#223c62,var(--text-main) 56%)}.auth-card{width:min(410px,calc(100vw - 28px));padding:30px;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.auth-brand{text-align:center;margin-bottom:22px}
/* specialty fallbacks */
.container{width:100%;display:flex;flex-direction:column;gap:16px}.traffic{display:inline-flex;align-items:center;gap:5px;font-weight:700}.traffic-green{color:var(--ok)}.traffic-yellow{color:var(--warn)}.traffic-red{color:var(--bad)}.status-block{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.source-card,.lesson-card{background:#fff;border:1px solid var(--line);border-inline-start:4px solid var(--violet);border-radius:10px;padding:15px;margin-bottom:12px}.agent-json{direction:ltr;text-align:left;background:#101827;color:#e7edf7;padding:13px;border-radius:9px;max-height:420px;overflow:auto}.rag-shell{max-width:1050px;margin:auto;display:grid;gap:15px}.rag-filters{display:grid;grid-template-columns:2fr 1fr;gap:12px}.answer-text{font-size:15px;line-height:2}.site-grid,.site-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.site-submit-bar{position:sticky;bottom:0;z-index:10;background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:10px;padding:9px;display:flex;justify-content:flex-end;gap:8px}.site-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.site-photo-grid img{width:100%;height:210px;object-fit:cover;border-radius:9px}
/* print */
@media print{.app-sidebar,.app-topbar,.toolbar,.btn,.pagination,.section-jump{display:none!important}.app-shell{display:block}.page-canvas{padding:0}.card{box-shadow:none}.page-content{max-width:none}}
/* responsive */
@media(max-width:1100px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.app-topbar{grid-template-columns:1fr minmax(260px,420px)}.today{display:none}}
@media(max-width:860px){body.nav-open{overflow:hidden}.app-shell{display:block}.app-sidebar{position:fixed;right:0;top:0;width:min(290px,88vw);transform:translateX(105%);transition:transform .2s;box-shadow:-20px 0 45px rgba(0,0,0,.28)}body.nav-open .app-sidebar{transform:none}.nav-scrim{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:45}body.nav-open .nav-scrim{display:block}.nav-close,.nav-trigger{display:inline-flex}.app-topbar{padding:8px 16px}.page-canvas{padding:18px 16px 38px}.flash-stack{padding:12px 16px 0}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.site-grid,.site-row{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.app-topbar{height:auto;min-height:66px;grid-template-columns:1fr}.global-search{display:none}.topbar-title h1{font-size:15px}.page-canvas{padding:14px 10px 32px}.card{padding:14px;border-radius:11px}.workspace-head,.page-header,.page-head{align-items:stretch}.toolbar-actions>.btn{flex:1}.filter-bar,.filters{align-items:stretch}.filter-bar>*,.filters>*{width:100%!important}.form-grid,.rag-filters,.site-grid,.site-row{grid-template-columns:1fr}.field-span-2{grid-column:auto}.detail-list>div{grid-template-columns:1fr;gap:2px}.stat-card{min-height:100px}.stat-value{font-size:23px}}

/* workflow components */
.section-kicker{display:block;color:var(--brand);font-size:10px;font-weight:700;margin-bottom:2px}.stat-link{text-decoration:none;color:inherit}.stat-link:hover{border-color:#b7cced;box-shadow:0 8px 24px rgba(37,99,235,.08)}.section-jump{position:sticky;top:78px;z-index:20;display:flex;gap:5px;padding:6px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:9px}.section-jump a{flex:1;text-align:center;padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--text-secondary);font-size:11.5px;font-weight:700}.section-jump a:hover{background:var(--brand-soft);color:var(--brand)}.envelope-section{padding:0;overflow:visible;scroll-margin-top:130px}.envelope-section>.card-header-row{padding:16px 18px;margin:0;border-bottom:1px solid var(--line)}.envelope-list{display:grid}.envelope-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;padding:15px 18px;border-bottom:1px solid var(--line);border-inline-start:3px solid var(--border-strong)}.envelope-row:last-child{border-bottom:0}.envelope-row.status-done{border-inline-start-color:var(--ok);background:#fdfffe}.envelope-row.status-in_progress{border-inline-start-color:var(--info)}.envelope-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.item-code{direction:ltr;display:inline-flex;padding:2px 6px;background:var(--surface-secondary);border-radius:5px;color:var(--text-muted);font:600 10px monospace}.badge.required{background:var(--warn-soft);color:var(--warn)}.envelope-copy p{margin:4px 0}.file-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:11.5px}.file-line a{padding:3px 7px;border:1px solid var(--info-soft);background:var(--brand-soft);border-radius:6px;text-decoration:none}.row-actions{display:flex;align-items:flex-start;gap:6px}.row-actions form{margin:0}.editor-pop>summary{list-style:none}.editor-pop>summary::-webkit-details-marker{display:none}.editor-pop[open]{position:static}.editor-panel{position:absolute;z-index:5;right:18px;left:18px;top:58px;padding:14px;background:#fff;border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 16px 40px rgba(15,23,42,.15)}.envelope-row:has(.editor-pop[open]){padding-bottom:245px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.check-grid label{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid var(--line);background:var(--panel-2);border-radius:8px}.list-stack{display:grid}.list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 2px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.list-row:last-child{border-bottom:0}.list-row span{display:grid}.list-row small{color:var(--muted)}
@media(max-width:700px){.section-jump{overflow:auto}.section-jump a{min-width:80px}.envelope-row{grid-template-columns:1fr;padding:13px}.row-actions{justify-content:flex-start}.editor-panel{right:13px;left:13px;top:100px}.envelope-row:has(.editor-pop[open]){padding-bottom:410px}.check-grid{grid-template-columns:1fr}}

/* 20.1.1 workflow refinement */
.stat-value.compact{font-size:17px;line-height:1.55}.disclosure-card{margin-top:12px;border:1px solid var(--line);background:var(--panel-2)}.disclosure-card>summary{padding:10px 12px;list-style:none;color:var(--text-secondary)}.disclosure-card>summary::-webkit-details-marker{display:none}.disclosure-card>summary:before{content:'+';display:inline-grid;place-items:center;width:20px;height:20px;margin-inline-end:7px;border-radius:5px;background:#e9eef5}.disclosure-card[open]>summary:before{content:'−'}.panel-form{padding:13px;border-top:1px solid var(--line);background:#fff}.split-actions{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line)}.decision-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.decision-bar h2,.decision-bar p{margin:0}.aging-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.aging-grid>span{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.aging-grid small{color:var(--muted)}.aging-grid b{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{display:grid;gap:5px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.stat span{font-size:11px;color:var(--muted)}.stat strong{font-size:15px}.handover-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:16px;align-items:start}.handover-main,.handover-side{display:grid;gap:16px}.handover-side{position:sticky;top:86px}.checklist-stack{display:grid}.checklist-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.checklist-row:last-child{border-bottom:0}.check-toggle{width:30px;height:30px;border:1px solid var(--line-strong);border-radius:50%;background:#fff;color:var(--muted);cursor:pointer}.check-toggle.done{background:var(--ok);border-color:var(--ok);color:#fff}.checklist-row span{display:grid}.checklist-row small{color:var(--muted)}.snag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.snag-card{padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2)}.snag-card>div{display:flex;justify-content:space-between;gap:8px}.snag-card p{margin:8px 0}.snag-card img{width:100%;height:150px;object-fit:cover;border-radius:7px}.lesson-stack{display:grid;gap:9px}.lesson-stack article,.proposal-row{padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.lesson-stack article b{display:block;margin-top:6px}.lesson-stack article p,.proposal-row p{margin:5px 0;color:var(--muted)}.proposal-row{margin-bottom:8px}.proposal-row small,.proposal-row b{display:block}.danger-zone{border-color:#fecdd3;background:#fffafb}
@media(max-width:1050px){.stats{grid-template-columns:repeat(3,1fr)}.aging-grid{grid-template-columns:repeat(3,1fr)}.handover-layout{grid-template-columns:1fr}.handover-side{position:static}}
@media(max-width:700px){.decision-bar{align-items:stretch;flex-direction:column}.aging-grid,.stats,.snag-grid{grid-template-columns:1fr}.split-actions{flex-direction:column}.split-actions>*{width:100%}}

/* 20.2 — journey/site components (dead skin removed in 20.26.0) */
.daily-workspace-head{position:relative;padding:8px 4px}.daily-workspace-head:before{content:'';position:absolute;z-index:-1;inset:-24px -28px -30px;background:linear-gradient(110deg,rgba(91,92,226,.07),rgba(14,165,233,.04) 58%,transparent);border-radius:0 0 32px 32px}.daily-workspace-head h1{font-size:25px;margin-top:6px;background:linear-gradient(90deg,#252944,var(--primary));background-clip:text;color:transparent}.daily-progress-card{width:210px;padding:13px 15px;border:1px solid rgba(91,92,226,.18);border-radius:15px;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(238,239,255,.9));box-shadow:0 10px 30px rgba(91,92,226,.11)}.daily-progress-card>span{font-size:11px;color:var(--muted)}.daily-progress-card>strong{float:left;color:var(--brand)}.daily-progress-card .progress-track{clear:both;margin-top:10px;height:7px}.daily-progress-card .progress-track i{width:0;transition:width .35s ease;background:linear-gradient(90deg,#7c5cff,#22b8cf)}
.form-journey{position:sticky;top:77px;z-index:22;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:7px;border:1px solid rgba(220,225,237,.9);border-radius:16px;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);box-shadow:0 10px 28px rgba(42,52,86,.07)}.form-journey a{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 5px;border-radius:10px;text-decoration:none;color:var(--text-muted);font-size:11px;font-weight:700;transition:.18s}.form-journey a:hover,.form-journey a.is-current{color:var(--brand);background:var(--brand-soft);transform:translateY(-1px)}.form-journey i{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#eef1f7;color:#7b8497;font-style:normal}.form-journey a:hover i,.form-journey a.is-current i{background:linear-gradient(135deg,#6d6eeb,#4c9ce8);color:#fff;box-shadow:0 4px 10px rgba(91,92,226,.23)}
.site-daily-form{display:grid;gap:18px}.site-section{position:relative;overflow:hidden;padding:0;scroll-margin-top:145px}.site-section:before{content:'';position:absolute;top:0;right:0;bottom:0;width:5px;background:var(--section-color,var(--brand))}.site-section:after{content:'';position:absolute;width:170px;height:170px;left:-85px;top:-95px;border-radius:50%;background:var(--section-glow,rgba(91,92,226,.055));pointer-events:none}.site-section--main{--section-color:var(--primary);--section-glow:rgba(91,92,226,.08)}.site-section--people{--section-color:#0ea5b7;--section-glow:rgba(14,165,183,.08)}.site-section--progress{--section-color:#16a36a;--section-glow:rgba(22,163,106,.08)}.site-section--equipment{--section-color:#d79018;--section-glow:rgba(215,144,24,.09)}.site-section--delay{--section-color:#ef6a64;--section-glow:rgba(239,106,100,.08)}.site-section--hse{--section-color:#e04473;--section-glow:rgba(224,68,115,.08)}.site-section--photos{--section-color:var(--ai-accent);--section-glow:rgba(139,92,246,.08)}.site-section-head{display:flex;align-items:center;gap:13px;padding:17px 21px 14px;border-bottom:1px solid #edf0f6;background:linear-gradient(90deg,rgba(250,251,255,.96),#fff)}.site-section-head>div{flex:1}.site-section-head h2{margin:0;font-size:16px;color:#252944}.site-section-head p{margin:2px 0 0;color:var(--muted);font-size:11.5px}.site-section-head .section-kicker{color:var(--section-color)}.section-orb{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,var(--section-color),color-mix(in srgb,var(--section-color),#fff 24%));font-size:19px;box-shadow:0 7px 18px color-mix(in srgb,var(--section-color),transparent 72%)}.section-check{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#eef1f6;color:#a8b0bf;font-weight:800;transition:.2s}.site-section.is-touched .section-check{background:var(--success-soft);color:var(--success-ink);box-shadow:0 0 0 4px rgba(16,185,129,.09)}.site-grid,.site-rows{padding:18px 21px 22px}.site-rows{display:grid;gap:10px}.site-row{grid-template-columns:2fr 1fr 1fr;position:relative;padding:13px;border:1px solid #e5e9f2;border-radius:13px;background:linear-gradient(135deg,#fcfdff,#f9faff);transition:border-color .18s,box-shadow .18s,transform .18s}.site-row-progress{grid-template-columns:2fr 1fr 2fr 1fr}.site-row:hover,.site-row:focus-within{border-color:color-mix(in srgb,var(--section-color),#fff 55%);box-shadow:0 8px 24px var(--section-glow);transform:translateY(-1px);background:#fff}.site-field{display:grid;align-content:start;gap:6px}.site-field>span{font-size:11px;color:#667085;font-weight:700}.site-field>span b{color:var(--danger);margin-right:3px}.site-field:focus-within>span{color:var(--section-color)}.site-row .delete-row{align-self:end;display:flex;align-items:center;gap:6px;color:var(--bad);font-size:11px}.site-submit-bar{bottom:10px;align-items:center;justify-content:space-between;padding:12px 14px 12px 18px;border-radius:16px;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);box-shadow:0 14px 36px rgba(34,42,74,.18);border-color:rgba(205,211,228,.9)}.site-submit-bar>div{display:grid}.site-submit-bar>div strong{color:#252944}.site-submit-bar>div small{color:var(--muted)}.submit-actions{display:flex;gap:8px}.site-big-btn{min-height:43px;padding-inline:18px}
@media(max-width:900px){.form-journey{grid-template-columns:repeat(4,1fr)}.site-row-progress{grid-template-columns:1fr 1fr}.daily-progress-card{width:180px}}
@media(max-width:620px){.daily-workspace-head:before{inset:-14px -10px -22px}.daily-progress-card{width:100%}.form-journey{top:68px;display:flex;overflow:auto;justify-content:flex-start}.form-journey a{min-width:92px}.site-section-head{padding:14px}.site-section-head p{display:none}.site-grid,.site-rows{padding:13px}.site-row,.site-row-progress{grid-template-columns:1fr}.site-submit-bar{align-items:stretch;flex-direction:column}.site-submit-bar>div{display:none}.submit-actions{width:100%}.submit-actions>*{flex:1}}

/* 20.2.2 — professional form proportions */
.form-page-head{max-width:920px;width:100%;margin-inline:auto}.form-layout{width:100%;display:grid}.form-layout--centered{max-width:920px;margin-inline:auto}.form-shell{width:100%;padding:0;overflow:hidden}.form-shell-head{display:flex;align-items:center;gap:13px;padding:18px 21px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,var(--surface-secondary),#f5fbff)}.form-shell-head>div{flex:1}.form-shell-head h2{margin:0 0 2px;font-size:16px}.form-shell-head p{margin:0;color:var(--muted);font-size:11.5px}.form-step-badge{padding:4px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:10.5px;font-weight:700}.form-shell>.alert{margin:16px 21px 0}.compact-alert{padding:8px 11px}.form-grid-comfortable{padding:19px 21px 8px;gap:5px 18px}.form-grid-comfortable .field{margin-bottom:11px}.form-grid-comfortable .field>span{color:#4b5565}.required-mark{color:var(--bad);margin-inline-start:3px}.field-compact{max-width:420px}.form-shell-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 21px;border-top:1px solid var(--line);background:var(--surface-secondary)}.form-shell-actions>span{display:grid}.form-shell-actions small{color:var(--muted)}.form-centered{max-width:860px!important;margin-inline:auto}.card.form-card.form-centered>h1:first-child,.card.form-card.form-centered>h2:first-child{margin-top:0}
@media(max-width:700px){.form-shell-head{padding:15px}.form-step-badge{display:none}.form-shell>.alert{margin:13px 13px 0}.form-grid-comfortable{grid-template-columns:1fr;padding:15px 13px 5px}.field-compact{max-width:none}.form-shell-actions{align-items:stretch;flex-direction:column;padding:13px}.form-shell-actions>span{display:none}.form-shell-actions .btn{width:100%}}

/* 20.4.0 — Stitch redesign spec (Draupr Architectural OS) */
:root{--nav:var(--text-main);--nav-2:#172033;--bg:var(--surface-secondary);--panel:#fff;--panel-2:var(--surface-secondary);--line:var(--border);--line-strong:var(--border-strong);--text:var(--text-main);--muted:var(--text-secondary);--subtle:var(--text-muted);--brand:var(--primary);--brand-2:var(--primary-dark);--brand-soft:var(--primary-soft);--cyan:var(--info);--cyan-soft:var(--info-soft);--ok:var(--success);--ok-soft:var(--success-soft);--warn:var(--warning);--warn-soft:var(--warning-soft);--bad:var(--danger);--bad-soft:var(--danger-soft);--violet:var(--ai-accent);--radius:8px;--radius-lg:16px;--shadow:0 4px 14px rgba(30,41,89,.16);--shadow-high:0 12px 24px rgba(15,23,42,.12);--sidebar:280px;--topbar:64px}
body{background:var(--bg)}
@media (prefers-reduced-motion:no-preference){.page-content{animation:draupr-fade-up .4s ease both}@keyframes draupr-fade-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}}
/* light sidebar (Level 1 surface) */
.app-sidebar{background:#fff;color:var(--text-secondary);border-inline-start:1px solid var(--line);box-shadow:none}
.brand-row{border-bottom:1px solid var(--line)}.brand{color:var(--text)}.brand b{color:var(--text)}.brand small{color:var(--subtle)}
.brand-mark{background:linear-gradient(145deg,var(--primary),var(--info));box-shadow:0 4px 12px rgba(63,81,181,.28)}
.primary-nav{scrollbar-color:#c5c5d4 transparent}
.nav-label{color:var(--text-muted)}
.nav-cluster+.nav-cluster{border-top:1px solid var(--line)}
.nav-link{color:#44474e;transition:background .2s ease-in-out,color .2s ease-in-out}.nav-link i{color:var(--text-muted)}
.nav-link:hover{color:var(--brand);background:var(--brand-soft);transform:none}.nav-link:hover i{color:var(--brand)}
.nav-link.is-active{color:#fff;background:var(--brand);font-weight:700;box-shadow:none}.nav-link.is-active i{color:#cacfff}
.nav-disclosure{border-top:1px solid var(--line)}.nav-disclosure summary{color:var(--subtle)}
.sidebar-user{border-top:1px solid var(--line)}.avatar{background:var(--brand-soft);color:var(--brand)}.sidebar-user small{color:var(--subtle)}
.icon-btn:hover{background:var(--brand-soft);color:var(--brand)}
@media(max-width:860px){.app-sidebar{box-shadow:-20px 0 45px rgba(15,23,42,.14)}}
/* topbar */
.app-topbar{height:var(--topbar);background:#fff;backdrop-filter:none;border-bottom:1px solid var(--line);box-shadow:none}
.global-search{background:var(--surface-secondary);border-color:var(--line)}
.global-search:focus-within{background:#fff;border-color:var(--brand);box-shadow:0 0 0 3px rgba(63,81,181,.14)}
.section-jump{top:74px;background:rgba(255,255,255,.96)}.form-journey{top:74px}.handover-side{top:82px}
/* tonal elevation: L1 cards flat, L2 KPI/interactive */
.card{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:none;transition:box-shadow .2s ease-in-out,border-color .2s ease-in-out}
.card:hover{transform:none;border-color:var(--line);box-shadow:none}
.stat-card{border-color:transparent;box-shadow:var(--shadow)}
.stat-card:after{display:none}
.stat-value{color:var(--brand-2)}
.stat-link:hover{border-color:transparent;box-shadow:var(--shadow-high)}
.stat-link{transition:box-shadow .2s ease-in-out}
.editor-panel{box-shadow:var(--shadow-high)}
/* buttons */
.btn{border-radius:8px;transition:background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out,transform .2s ease-in-out}
.btn:hover{transform:none}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);border-color:var(--brand);box-shadow:none}
.btn-primary:hover{background:var(--brand-2);border-color:var(--brand-2);box-shadow:0 4px 12px rgba(63,81,181,.28)}
.btn-ghost{border-color:var(--brand);color:var(--brand);background:#fff}
.btn-ghost:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-2);box-shadow:none}
/* inputs */
input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=search],input[type=file],select,textarea,.form-control{min-height:41px;border-radius:8px;background:#fff;border-color:var(--line-strong);box-shadow:none}
input:hover,select:hover,textarea:hover{border-color:var(--text-muted);background:#fff}
input:focus,select:focus,textarea:focus{background:#fff;border-color:var(--brand);box-shadow:0 0 0 3px rgba(63,81,181,.15);transform:none}
.errorlist{color:var(--bad);font-size:12px}
/* financial tables: sticky header, zebra, tabular numerals */
.table th,table th{position:sticky;top:0;z-index:2;background:var(--primary-soft);color:#293ca0;border-block:1px solid var(--line)}
.table tbody tr:nth-child(even),table tbody tr:nth-child(even){background:var(--surface-secondary)}
.table tbody tr:hover,table tbody tr:hover{background:var(--brand-soft)}
.table td,table td{font-variant-numeric:tabular-nums}
td.num,th.num,.cell-num{direction:ltr;text-align:left;font-variant-numeric:tabular-nums}
/* status chips */
.badge{border-radius:1rem}
.badge-status.badge-won{background:#d1fae5;color:var(--success-ink)}
.badge-status.badge-lost{background:#fee2e2;color:var(--danger-ink)}
.badge-status.badge-in_progress{background:var(--cyan-soft);color:var(--info-ink)}
/* forms: 840px centered shells */
.form-card,.form-centered,.form-layout--centered,.form-page-head{max-width:840px}
.form-shell-head{background:linear-gradient(110deg,#f8f9ff,var(--primary-soft))}
.form-step-badge{background:var(--brand-soft);color:var(--brand)}
/* journey pattern */
.daily-workspace-head h1{background:linear-gradient(90deg,var(--text-main),var(--brand));background-clip:text;-webkit-background-clip:text}
.daily-progress-card{border-color:rgba(63,81,181,.2);background:#fff;box-shadow:var(--shadow)}
.daily-progress-card .progress-track i{background:linear-gradient(90deg,var(--primary),var(--info))}
.form-journey a:hover i,.form-journey a.is-current i{background:linear-gradient(135deg,var(--primary),var(--info));box-shadow:0 4px 10px rgba(63,81,181,.25)}
.progress>*,.progress-track>*{background:linear-gradient(90deg,var(--primary),var(--info))}
/* feedback */
.flash-stack .alert{box-shadow:var(--shadow);border-radius:8px}
.skeleton{position:relative;overflow:hidden;background:var(--border);border-radius:8px;min-height:14px;animation:draupr-pulse 1.2s ease-in-out infinite}
@keyframes draupr-pulse{50%{opacity:.55}}
/* auth */
.auth-body{background:radial-gradient(circle at 20% 15%,#293ca0,#0b1c30 62%)}
.auth-card{border-radius:16px}

/* ==== 20.5.0 — multi-fehrest cover sheet + side-by-side OCR review ==== */
.review-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.review-pdf{position:sticky;top:80px;height:calc(100vh - 104px)}.review-pdf iframe{width:100%;height:100%;border:1px solid var(--border);border-radius:12px;background:#fff}.review-pages{display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 104px);overflow-y:auto;padding-inline-end:4px}.review-page-card{scroll-margin-top:80px}.review-textarea{width:100%;font-size:13px;line-height:2;font-family:inherit;resize:vertical}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 16px;padding:10px 12px;background:var(--surface-secondary);border:1px solid var(--border);border-radius:8px}.choice-grid label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.choice-grid input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px}.table tfoot th{background:var(--primary-soft);font-weight:700}@media (max-width:1100px){.review-split{grid-template-columns:1fr}.review-pdf{position:static;height:420px;order:-1}.review-pages{max-height:none;overflow:visible}}

/* ==== 20.6.0 — M22 page exclusion + one-shot AI OCR enhancement ==== */
.review-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.review-page-card.is-excluded{opacity:.65;background:#FFFBF5;border-style:dashed}
.badge-excluded{background:#fff7ed;color:var(--warning-ink);border:1px solid #fed7aa}
.badge-ai{background:var(--success-soft);color:var(--success-ink);border:1px solid var(--success-soft)}
.badge-ai-manual{background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary-fixed)}
.badge-ai-failed{background:var(--danger-soft);color:var(--danger-ink);border:1px solid #fecdca}
.btn-danger-ghost{color:var(--danger-ink)}
.btn-danger-ghost:hover{background:var(--danger-soft);border-color:#fecdca;color:var(--danger-ink)}

/* --- M24 (20.11.0): extractive Q&A answer box --- */
.qa-answer-card{border-inline-start:4px solid var(--primary)}
.qa-answer-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.qa-fact{font-size:1.5rem;font-weight:700;color:var(--primary);margin:8px 0}
.qa-quote{margin:8px 0;padding:10px 14px;background:#f5f6fb;border-inline-start:3px solid #c5cae9;border-radius:8px;line-height:1.9}
.qa-rewrite{margin-top:10px;padding:10px 14px;border-radius:8px;white-space:pre-wrap;line-height:1.9}
.qa-rewrite-ok{background:#eef7ee;border:1px solid #bfe3bf}
.qa-rewrite-err{background:#fdeeee;border:1px solid #f3c2c2}
.qa-rewrite-sources{display:flex;flex-wrap:wrap;gap:10px;font-size:.85rem}

/* --- M32: searchable select --- */
.ss-wrap { position: relative; }
.ss-wrap select.ss-native { display: none; }
.ss-panel { display: none; position: absolute; top: 100%; right: 0; left: 0; z-index: 60; max-height: 260px; overflow-y: auto; background: #fff; border: 1px solid #d1d5db; border-radius: 8px; box-shadow: 0 8px 24px rgba(17,24,39,.12); margin-top: 4px; }
.ss-panel.ss-open { display: block; }
.ss-option { padding: 8px 12px; cursor: pointer; font-size: 13px; line-height: 1.6; }
.ss-option:hover, .ss-option.ss-active { background: var(--primary-soft); }
.ss-option.ss-selected { background: var(--primary-soft); font-weight: 600; }
.ss-empty { padding: 10px 12px; color: var(--text-muted); font-size: 13px; }

/* --- M32: CSS Gantt --- */
.gantt-table { width: 100%; border-collapse: collapse; }
.gantt-table td { padding: 4px 8px; vertical-align: middle; }
.gantt-label { width: 220px; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gantt-track { position: relative; height: 22px; background: #f3f4f6; border-radius: 6px; }
.gantt-bar { position: absolute; top: 3px; bottom: 3px; background: var(--primary-fixed); border-radius: 5px; overflow: hidden; }
.gantt-bar.gantt-late { background: var(--error-container); }
.gantt-progress { position: absolute; top: 0; bottom: 0; right: 0; background: var(--primary); opacity: .75; }
.gantt-bar.gantt-late .gantt-progress { background: var(--danger-ink); }
.gantt-today { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--warning); z-index: 2; }
.gantt-scale { display: flex; justify-content: space-between; color: var(--text-muted); font-size: 11px; padding: 2px 8px; }

/* --- M33: MSP-style plan grid --- */
.plan-grid .pg-cell { cursor: pointer; display: inline-block; min-width: 30px; border-bottom: 1px dashed transparent; }
.plan-grid .pg-cell:hover { border-bottom-color: var(--primary); background: var(--primary-soft); }
.plan-grid tr.pg-node { background: var(--surface-secondary); }
.plan-grid tr.pg-node td { border-top: 2px solid var(--border); }
.plan-grid .pg-node-name { cursor: pointer; }
.plan-grid input.pg-input { width: 100%; box-sizing: border-box; font: inherit; font-size: 12px; padding: 3px 6px; border: 1px solid var(--primary); border-radius: 6px; }
.plan-grid .btn-sm { padding: 2px 6px; font-size: 11px; }

/* M34: activity settings tabs */
.af-tabs { display: flex; gap: 6px; border-bottom: 2px solid var(--border); margin-bottom: 14px; }
.af-tab-btn { border: none; background: none; padding: 9px 16px; cursor: pointer; font: inherit; color: var(--text-muted); border-bottom: 2px solid transparent; margin-bottom: -2px; }
.af-tab-btn.active { color: var(--brand); border-bottom-color: var(--brand); font-weight: 600; }
.af-panel { display: none; }
.af-panel.active { display: block; }
.pg-auto { color: var(--brand); cursor: not-allowed; }

/* M35: MSP-style plan grid formatting */
.plan-grid td, .plan-grid th { border: 1px solid var(--border); }
.plan-grid tbody td:first-child { background: var(--surface-secondary); text-align: center; font-weight: 600; color: var(--text-muted); }
.plan-grid tr.pg-node-l0 { background: var(--primary-fixed); }
.plan-grid tr.pg-node-l0 td { border-top: 2px solid var(--primary); }
.plan-grid tr.pg-node-l0 strong { font-size: 13.5px; }
.plan-grid tr.pg-node-l1 { background: var(--primary-soft); }
.plan-grid tr.pg-node-l2 { background: var(--primary-soft); }
.plan-grid tr.pg-node td:nth-child(2) { border-right: 4px solid var(--primary); }
.plan-grid tr.pg-node-l1 td:nth-child(2) { border-right-color: #818cf8; }
.plan-grid tr.pg-node-l2 td:nth-child(2) { border-right-color: var(--primary-fixed); }
.plan-grid tr.pg-act:nth-of-type(even) td { background: #fbfcfe; }
.plan-grid tr.pg-act td:nth-child(2) { border-right: 3px solid var(--border); }

/* M35p: print plan grid */
@media print{
  .plan-grid th:last-child,.plan-grid td:last-child{display:none!important}
  .plan-grid td,.plan-grid th{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:10.5px}
  form,.filter-bar,.alert{display:none!important}
  .card{box-shadow:none;border:1px solid var(--border);page-break-inside:auto}
}

/* M38 page-head elements */
.page-head .ph-main{min-width:0}
.page-head .ph-crumbs{font-size:11.5px;color:var(--subtle);margin-bottom:4px}
.page-head .ph-crumbs a{color:var(--muted);text-decoration:none}
.page-head .ph-crumbs a:hover{text-decoration:underline}
.page-head .ph-title{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.page-head .ph-chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--surface-secondary);border:1px solid var(--border);border-radius:999px;padding:3px 12px;font-size:11.5px;color:var(--text-secondary);white-space:nowrap}
.chip b{color:var(--text-main);font-weight:700}
.badge-st{border-radius:999px;padding:3px 12px;font-size:11px;font-weight:700;line-height:1.6;display:inline-block;white-space:nowrap}
.badge-st.is-ok{background:var(--success-soft);color:#166534}
.badge-st.is-draft{background:var(--warning-soft);color:var(--warning-ink)}
.badge-st.is-info{background:var(--primary-soft);color:var(--primary-dark)}
.badge-st.is-muted{background:var(--border);color:#374151}
.page-head .ph-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
@media print{.page-head .ph-actions{display:none!important}}

/* M42: انتخابگر تاریخ جلالی */
.jdp-popup{position:absolute;z-index:1000;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:8px;width:238px}
.jdp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.jdp-header button{border:0;background:#f3f4f6;border-radius:6px;width:28px;height:28px;cursor:pointer}
.jdp-title{font-weight:700;font-size:.85rem}
.jdp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.jdp-weekday{text-align:center;font-size:.7rem;color:var(--text-muted);padding:2px 0}
.jdp-day{border:0;background:transparent;border-radius:6px;padding:5px 0;cursor:pointer;font-size:.8rem}
.jdp-day:hover{background:var(--primary-soft)}
.jdp-day.empty{visibility:hidden}
.jdp-day.today{outline:1px solid var(--primary)}
.jdp-day.selected{background:var(--primary);color:#fff}

/* M42: ورودی مبلغ ریالی */
.money-input{direction:ltr;text-align:right;font-variant-numeric:tabular-nums}
.money-suffix{font-size:.75em;color:var(--text-muted);margin-inline-start:6px;white-space:nowrap}

/* 20.25.0 - M43 phase 1: SVG iconography */
.ic{width:17px;height:17px;flex:none}.nav-link i{display:inline-flex;align-items:center;justify-content:center}.nav-link i .ic{width:16px;height:16px}.icon-btn .ic{width:18px;height:18px;display:block}.nav-trigger .ic{width:20px;height:20px}.global-search>span{display:inline-flex;color:var(--subtle)}.global-search .ic{width:16px;height:16px}

/* 20.26.0 - M43 phase 2: token unification */
:focus-visible{outline:3px solid rgba(63,81,181,.25)}.file-line a{border-color:var(--primary-fixed);background:var(--brand-soft)}input[type=checkbox],input[type=radio]{accent-color:var(--brand)}

/* 20.27.0 - M43 phase 3: stepper classes + empty-state + motion */
.flow-stepper-card{padding:6px 16px}.flow-stepper{display:flex;align-items:stretch;overflow-x:auto}.flow-step{flex:1;text-align:center;padding:10px 6px;border-left:1px solid var(--line);text-decoration:none;color:inherit;transition:background .15s}.flow-step:last-child{border-left:0}.flow-step:hover{background:var(--brand-soft)}.flow-step-label{font-size:.7rem;color:var(--text-muted)}.flow-step-value{font-weight:700}.flow-step-value.is-done{color:#16a34a}.flow-step-value.is-warn{color:var(--warning-ink)}.flow-step-value.is-pending{color:#9ca3af}.flow-step-first{font-size:.72rem}
.filter-card{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.empty-state{border:1px dashed var(--line-strong);border-radius:12px;background:var(--panel-2)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 20.29.0 - M44b paste entry */
.paste-area{width:100%;min-height:130px;font-size:.85rem;padding:8px 10px;border:1px solid var(--line);border-radius:8px;resize:vertical}

/* 20.32.0 — finance workflow polish */
.table td .inline-form,.table td form{display:inline-flex;margin:2px 4px}.table td .btn{white-space:nowrap}.decision-bar{gap:12px}.ph-actions{flex-wrap:wrap}@media(max-width:640px){.table{min-width:720px}.table-wrap,.card:has(> .table){overflow-x:auto}.toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.toolbar-actions .btn{min-height:44px}}

/* 20.38.0 — critical UI/UX and accessibility corrections */
.skip-link{position:fixed;z-index:2000;top:8px;right:8px;transform:translateY(-150%);padding:9px 14px;border-radius:8px;background:var(--text-main);color:#fff;text-decoration:none}.skip-link:focus{transform:none;color:#fff}.mobile-search-trigger{display:none}.confirm-dialog{width:min(430px,calc(100vw - 28px));padding:0;border:0;border-radius:16px;box-shadow:0 24px 80px rgba(15,23,42,.28)}.confirm-dialog::backdrop{background:rgba(15,23,42,.55)}.confirm-card{padding:22px}.confirm-card h2{margin:0 0 8px}.confirm-card p{margin:0 0 20px;color:var(--muted);line-height:1.9}.confirm-card .form-actions{justify-content:flex-end}.alert[role=alert]{border-inline-start:4px solid var(--bad)}
@media(max-width:620px){.mobile-search-trigger{display:inline-flex;margin-inline-start:auto}.global-search.is-mobile-open{display:flex;grid-column:1/-1;width:100%}.app-topbar:has(.global-search.is-mobile-open){grid-template-columns:1fr auto}.global-search.is-mobile-open kbd{display:none}}

/* 20.39.0 — shared responsive editable-grid UX */
.editable-grid-form{position:relative}.grid-save-status{display:inline-flex;align-items:center;gap:6px;margin-inline-end:auto;color:var(--ok);font-size:11.5px}.grid-save-status:before{content:'✓';font-weight:800}.grid-save-status.is-dirty{color:var(--warn)}.grid-save-status.is-dirty:before{content:'●'}.editable-grid input,.editable-grid select{min-width:92px}.editable-grid td[data-label="شرح"] input,.editable-grid td[data-label*="ردیف"] select{min-width:220px}.grid-undo-toast{position:fixed;z-index:1500;right:50%;bottom:22px;transform:translate(50%,140%);display:flex;align-items:center;gap:14px;padding:11px 15px;border-radius:10px;background:var(--text-main);color:#fff;box-shadow:0 16px 40px rgba(15,23,42,.25);transition:transform .2s}.grid-undo-toast.is-visible{transform:translate(50%,0)}.grid-undo-toast button{border:0;background:transparent;color:#93c5fd;font:inherit;font-weight:700;cursor:pointer}.editable-grid tr[data-delete="1"]{opacity:.45;text-decoration:line-through}
@media(max-width:700px){.editable-grid-enhanced{min-width:0!important;border-collapse:separate}.editable-grid-enhanced thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.editable-grid-enhanced tbody,.editable-grid-enhanced tr,.editable-grid-enhanced td{display:block;width:100%}.editable-grid-enhanced tbody{display:grid;gap:12px}.editable-grid-enhanced tbody tr{padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.05)}.editable-grid-enhanced tbody td{display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);align-items:center;gap:8px;padding:7px 4px;border:0!important;background:transparent!important}.editable-grid-enhanced tbody td:before{content:attr(data-label);font-size:11px;font-weight:700;color:var(--muted)}.editable-grid-enhanced tbody td:first-child{border-bottom:1px solid var(--line)!important;margin-bottom:4px}.editable-grid-enhanced input,.editable-grid-enhanced select{min-width:0!important}.editable-grid-enhanced tfoot{display:block;margin-top:12px}.editable-grid-enhanced tfoot tr{display:grid;grid-template-columns:1fr 1fr}.editable-grid-enhanced tfoot th{display:block!important;border:0;border-radius:0}.grid-save-status{width:100%;order:-1}.grid-undo-toast{right:10px;left:10px;transform:translateY(140%);justify-content:space-between}.grid-undo-toast.is-visible{transform:none}}
