/* Self-hosted variable fonts (Vazirmatn + JetBrains Mono, OFL-licensed) — served from public/fonts so the workspace has zero font CDN dependency, matching this product's offline/single-VPS design. See UI-UX-REPORT.md for details. */
@font-face{font-family:'Vazirmatn Variable';font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/vazirmatn-arabic-84a382e46c.woff2) format('woff2-variations');unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:'Vazirmatn Variable';font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/vazirmatn-latin-d29c041cd4.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono Variable';font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-18be452724.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--blue:#0095DA;--blue-2:#00B4F0;--blue-deep:#00639E;--navy:#05314F;--ink:#0E2B40;--muted:#5B7285;--bg:#EEF5FA;--card:#fff;--line:#D9E7F1;--soft:#E8F5FC;--ok:#18A57A;--warn:#E8A33D;--danger:#D64550;--shadow:0 2px 10px rgba(5,49,79,.06);--shadow-lg:0 16px 38px rgba(4,42,71,.13);--r:15px;--ff:'Vazirmatn Variable',Vazirmatn,IRANSansX,'Segoe UI',Tahoma,sans-serif;--mono:'JetBrains Mono Variable','JetBrains Mono',ui-monospace,monospace,var(--ff);font-family:var(--ff);font-size:14px;line-height:1.8;color:var(--ink);background:var(--bg);font-kerning:normal;font-optical-sizing:auto;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);font-family:var(--ff);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-kerning:normal;font-variant-ligatures:common-ligatures contextual;font-feature-settings:"calt" 1,"liga" 1,"rlig" 1,"kern" 1}body:before{content:"";position:fixed;z-index:-2;inset:0;background:radial-gradient(900px 520px at 88% -5%,rgba(0,149,218,.12),transparent 60%),radial-gradient(720px 480px at -8% 36%,rgba(0,149,218,.07),transparent 60%)}body:after{content:"";position:fixed;z-index:-1;inset:0;opacity:.42;background-image:radial-gradient(rgba(0,110,170,.10) 1px,transparent 1.4px);background-size:26px 26px;pointer-events:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}a{color:var(--blue-deep);text-decoration:none}button{font-weight:700}button,a{transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease}buttonbutton,.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--blue-deep);padding:9px 16px;cursor:pointer;line-height:1.65;min-height:42px;box-shadow:0 2px 6px rgba(5,49,79,.03)}button:hover,.button:hover{transform:translateY(-2px);background:#F0F8FC;border-color:#A8D8EE;box-shadow:0 8px 18px rgba(5,49,79,.1)}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.primary{border-color:transparent;background:linear-gradient(135deg,var(--blue-2),var(--blue));color:#fff;box-shadow:0 8px 18px rgba(0,149,218,.26),inset 0 1px 0 rgba(255,255,255,.35)}.primary:hover{background:linear-gradient(135deg,#18C0F5,var(--blue));color:#fff;box-shadow:0 12px 24px rgba(0,149,218,.36)}.danger{color:#A63540;border-color:#F3C2C8}.full{width:100%}input,select,textarea{width:100%;padding:10px 13px;border:1px solid #C7DDE9;border-radius:10px;background:#fff;color:var(--ink);line-height:1.65;min-height:43px;box-shadow:inset 0 1px 1px rgba(5,49,79,.02);transition:border-color .2s,box-shadow .2s,background .2s}input::placeholder,textarea::placeholder{color:#5C7587;opacity:1;font-weight:400}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,149,218,.13)}input[readonly]{background:#F4F8FB;color:#6D838E}input[aria-invalid=true]{border-color:var(--danger);background:#FFF8F8}textarea{resize:vertical}label{display:block;font-weight:700;font-size:12px}label input,label select,label textarea{margin-top:7px}label small{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:800;letter-spacing:normal}h1{font-size:clamp(1.9rem,3.5vw,2.75rem);line-height:1.35;color:var(--navy)}h2{font-size:20px;line-height:1.55;color:var(--navy)}h3{font-size:15px}p{color:var(--muted)}small{font-size:12px}.eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--blue-deep);font-family:var(--ff);font-size:12px;font-weight:700;letter-spacing:0}.eyebrow:before{content:"";width:7px;height:7px;border-radius:3px;background:linear-gradient(135deg,var(--blue-2),var(--blue-deep));box-shadow:0 0 0 3px rgba(0,149,218,.12)}.muted{font-size:12px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;right:20px;background:#fff;padding:12px 16px;z-index:2000;border-radius:9px;box-shadow:var(--shadow-lg)}.skip-link:focus{top:10px}[hidden]{display:none!important}

/* Header and workspace frame */
.topbar{min-height:78px;background:rgba(255,255,255,.88);border-bottom:1px solid var(--line);backdrop-filter:blur(16px) saturate(1.4);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:18px;position:relative;z-index:10}.topbar:after{content:"";position:absolute;right:0;bottom:-1px;width:180px;height:2px;background:linear-gradient(90deg,transparent,var(--blue),var(--blue-2))}.brand{display:flex;align-items:center;gap:15px;color:var(--ink)}.brand>b{font-family:var(--mono);font-size:24px;letter-spacing:.09em;line-height:1;color:var(--blue-deep);border-left:1px solid var(--line);padding-left:17px}.brand>b span{display:block;font-size:7px;letter-spacing:.18em;margin-top:6px;color:var(--blue)}.brand>span{font-size:12px;font-weight:800}.brand small{display:block;color:var(--muted);font-weight:400;font-size:12px;margin-top:2px}.topbar nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.topbar nav>a,.topbar #logout{color:var(--muted);font-size:12px;border:0;background:transparent;padding:8px 11px;box-shadow:none;min-height:auto}.topbar nav>a:hover,.topbar #logout:hover{color:var(--blue-deep);background:#EAF6FC;transform:none}.topbar nav .report-link{color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue-deep));border-radius:999px;padding:8px 14px;box-shadow:0 5px 13px rgba(0,149,218,.23)}.topbar nav .report-link:hover{color:#fff;background:linear-gradient(135deg,var(--blue-2),var(--blue))}.app-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:calc(100vh - 78px)}.app-sidebar{background:linear-gradient(165deg,#031B31 0%,#05314F 54%,#075079 100%);color:#fff;padding:26px 17px 20px;display:flex;flex-direction:column;gap:24px;position:relative;overflow:hidden}.app-sidebar:before{content:"";position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(#000,transparent 65%);pointer-events:none}.app-sidebar>*{position:relative}.account-box{display:flex;align-items:center;gap:11px;padding:0 5px 21px;border-bottom:1px solid rgba(255,255,255,.15)}.avatar{display:flex;justify-content:center;align-items:center;border:1px solid rgba(127,212,250,.35);background:linear-gradient(145deg,rgba(0,180,240,.3),rgba(3,27,49,.45));color:#DDF6FF;border-radius:13px;width:42px;height:42px;font-size:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}.account-box strong{display:block;font-size:12px}.account-box small{color:#B6D6E7}.nav-caption{font-family:var(--ff);font-size:12px;color:#7FD4FA;padding:0 12px;margin-bottom:-14px}.tabs{display:flex;flex-direction:column;gap:7px}.tabs button{border:1px solid transparent;background:transparent;color:#C4DCE9;justify-content:flex-start;text-align:right;font-size:12px;padding:11px;min-height:45px;border-radius:10px;box-shadow:none}.tabs button>span{font:18px Arial;width:20px;color:#82BED8;display:inline-block;text-align:center}.tabs button:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.1);transform:translateX(-3px);box-shadow:none}.tabs button.active{background:linear-gradient(90deg,rgba(0,180,240,.25),rgba(0,149,218,.1));color:#fff;border-color:rgba(127,212,250,.18);box-shadow:inset -3px 0 #53CCF5,0 5px 15px rgba(0,0,0,.12)}.tabs button.active>span{color:#A6E8FF}.tabs button>b{font-weight:700;font-family:var(--mono);font-size:12px;margin-right:auto;background:rgba(255,255,255,.16);border-radius:999px;padding:1px 7px}.sidebar-note{margin-top:auto;border:1px solid rgba(127,212,250,.24);padding:15px;border-radius:12px;background:rgba(3,27,49,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}.sidebar-note i{width:7px;height:7px;background:#3BE08F;border-radius:50%;display:inline-block;margin-left:7px;box-shadow:0 0 0 4px rgba(59,224,143,.1)}.sidebar-note b{font-size:12px}.sidebar-note p{font-size:12px;color:#B4D3E3;margin-top:6px;line-height:1.9}main{padding:29px 36px 0;min-width:0;max-width:1760px;width:100%;margin:auto}.breadcrumb{color:#829BAA;font-family:var(--ff);font-size:12px;display:flex;gap:10px;margin-bottom:17px}.breadcrumb span{color:#B1C9D7}.breadcrumb b{font-weight:700;color:var(--blue-deep)}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px;padding:6px 0 23px;border-bottom:1px solid var(--line);position:relative}.hero:after{content:"";position:absolute;bottom:-1px;right:0;width:86px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--blue-2),var(--blue-deep))}.hero h1{margin-top:6px}.hero p{font-size:12px;margin-top:5px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}

/* Content primitives */
.management-analytics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.management-analytics-card{padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#F7FBFE}.management-analytics-card small{display:block;color:var(--muted);font-size:12px}.management-analytics-card strong{display:block;color:var(--navy);font-size:20px;line-height:1.5}.management-analytics-card span{color:var(--blue-deep);font-size:12px}.management-analytics-panel{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-size:12px;line-height:2}.management-analytics-panel.warn{border-color:#F0D29B;background:#FFFAF0;color:#6F4B0B}.management-analytics-panel.good{border-color:#9EDEC8;background:#F1FBF7;color:#0E7A58}.management-analytics-panel h3{font-size:13px;color:var(--navy);margin-bottom:5px}.management-analytics-alert{padding:2px 0}
.management-analytics-panel details{margin-top:8px}
.management-analytics-panel summary{cursor:pointer;color:var(--muted)}
.management-analytics-panel details code{font-size:12px}
.management-analytics-recommendation{padding:10px 12px;border-right:3px solid var(--blue);background:#F1F8FC;border-radius:8px;margin-top:8px}.management-analytics-recommendation.high{border-right-color:var(--danger);background:#FFF5F6}.management-analytics-recommendation.medium{border-right-color:var(--warn);background:#FFFAF0}
@media(max-width:820px){.management-analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.management-analytics-grid{grid-template-columns:1fr}}
.card{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--r);padding:23px;min-width:0;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.card:hover{border-color:#C4E1F0;box-shadow:0 11px 28px rgba(5,49,79,.1)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:21px}.section-head h2{display:flex;align-items:center;gap:9px}.section-head h2:before{content:"";width:8px;height:8px;border-radius:3px;background:linear-gradient(135deg,var(--blue-2),var(--blue-deep));box-shadow:0 0 0 4px rgba(0,149,218,.12);flex-shrink:0}.section-head p{font-size:12px;margin-top:4px}.search-box{max-width:310px;width:100%;position:relative}.search-box:before{content:"⌕";position:absolute;left:13px;top:11px;color:#82A6B8;font:20px Arial;z-index:1}.search-box input{background:#FBFDFF;font-weight:400;font-size:12px;padding-left:37px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:29px}.stat{position:relative;overflow:hidden;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--r);padding:19px 21px;display:grid;grid-template-columns:1fr auto;gap:7px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s,border-color .25s}.stat:before{content:"";position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,var(--blue-deep),var(--blue),var(--blue-2))}.stat:hover{transform:translateY(-5px);border-color:#BFE3F5;box-shadow:0 16px 30px rgba(5,49,79,.13)}.stat span{font-size:12px;color:var(--muted)}.stat strong{font-size:32px;line-height:1.3;font-weight:800;color:var(--navy);grid-row:2;font-variant-numeric:tabular-nums}.stat small{font-size:12px;color:#8099A7;grid-row:3}.stat .stat-icon{font-size:22px;grid-column:2;grid-row:1/4;align-self:center;background:linear-gradient(145deg,#E6F5FC,#D9F0FB);width:47px;height:47px;border-radius:13px;text-align:center;line-height:47px;color:var(--blue-deep);box-shadow:inset 0 1px 0 #fff}.catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:28px}.system-card{border:1px solid var(--line);background:rgba(255,255,255,.97);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s,border-color .25s}.system-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:#BFE3F5}.system-head{display:flex;justify-content:space-between;align-items:center;padding:17px 18px 13px;border-bottom:1px solid #E8F1F7;background:linear-gradient(180deg,#FBFEFF,transparent)}.system-head h3{font:800 15px var(--mono);color:var(--navy);direction:ltr;text-align:right}.system-head small{color:var(--muted)}.system-count{display:grid;place-items:center;background:#E6F4FC;color:var(--blue-deep);border-radius:10px;width:36px;height:36px;font-size:15px;font-weight:800}.catalog-item{display:flex;width:100%;border:0;border-radius:0;justify-content:space-between;text-align:right;padding:11px 18px;gap:9px;font-size:12px;background:#fff;box-shadow:none;color:#284C62}.catalog-item+.catalog-item{border-top:1px solid #EDF4F8}.catalog-item:hover{background:#EFF9FD;color:var(--blue-deep);transform:none;box-shadow:none}.catalog-item .state{font-size:12px;color:#8095A1;white-space:nowrap}.catalog-item .state.pending{color:#A46D12}.recent{margin-top:15px}.row{display:flex;align-items:center;gap:18px;padding:16px 3px;border-bottom:1px solid #E9F1F7}.row:last-child{border:0}.row>div:first-child{flex:1;min-width:0}.row b{font-weight:800;font-size:12px;color:#23465D}.row small{display:block;color:var(--muted);margin-top:5px}.row .actions{flex-shrink:0}.row .tag{flex-shrink:0}.tag{display:inline-flex;align-items:center;border-radius:999px;background:#EEF3F7;color:#607989;font-size:12px;font-weight:800;padding:3px 10px;white-space:nowrap;border:1px solid #D9E5EC}.status-review{background:#FDF3E1;color:#9A6A14;border-color:#F3DCAE}.status-approved{background:#E2F6EE;color:#0E7A58;border-color:#B5E8D4}.status-published{background:#E1F2FC;color:#00639E;border-color:#BFE3F5}.status-rejected{background:#FCE9EB;color:#A63540;border-color:#F3C2C8}.status-draft{background:#EFEAFB;color:#5B42B8;border-color:#D5C8F3}

/* Editing, reviews and supporting states */
.workbench{display:grid;grid-template-columns:244px minmax(0,1fr);gap:18px;align-items:start}.section-sidebar{padding:17px;position:sticky;top:19px;max-height:82vh;overflow:auto}.section-sidebar>label{font-size:12px}.section-sidebar>input{margin:9px 0 5px;font-size:12px}.section-button{width:100%;text-align:right;justify-content:flex-start;border:1px solid transparent;background:none;font-size:12px;padding:9px 10px;min-height:36px;box-shadow:none}.section-button:hover{transform:none;box-shadow:none}.section-button.active{background:linear-gradient(90deg,#E1F3FC,#F1FAFE);color:var(--blue-deep);box-shadow:inset -3px 0 var(--blue);border-color:#D0EAF6}.group{font-family:var(--ff);font-size:12px;font-weight:700;color:var(--blue-deep);margin-top:14px;padding:7px 9px;border-bottom:1px solid #E8F1F7}.editor-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.editor-heading h2{margin-top:3px}.impact{font-size:12px;background:linear-gradient(90deg,#EEF8FD,#F8FCFE);border:1px solid #D6EAF5;border-right:3px solid var(--blue);padding:11px 14px;border-radius:9px;margin:15px 0 18px;color:#416C7E}.workflow{list-style:none;padding:0;margin:0 0 22px;display:flex;gap:8px;border-bottom:1px solid var(--line)}.workflow li{flex:1;color:#84969F;font-size:12px;padding:9px 0;text-align:center;border-bottom:2px solid transparent}.workflow li.active{border-bottom-color:var(--blue);color:var(--blue-deep);font-weight:800;background:linear-gradient(180deg,transparent,#EFF9FD)}#draftTitle{margin:6px 0 19px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px;margin:16px 0}.formgrid .wide{grid-column:1/-1}.formgrid label{font-size:12px}.editor-footer{position:sticky;bottom:0;margin-top:20px;padding:17px 0 0;border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(8px);z-index:3;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.editor-footer button{font-size:12px}.save-status{font-size:12px;color:#4E7883}.save-status small{display:block;color:#8B9AA0;font-size:12px;margin-right:12px}.save-status i{display:inline-block;background:#3BE08F;width:7px;height:7px;border-radius:50%;margin-left:6px;box-shadow:0 0 0 4px rgba(59,224,143,.1)}.save-status i.dirty{background:var(--warn);box-shadow:0 0 0 4px rgba(232,163,61,.12)}.table-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}.table-tools input{max-width:240px;font-size:12px}.table-tools .actions button{font-size:12px}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px;margin:12px 0;max-height:60vh;background:#fff}table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}th,td{text-align:right;border-bottom:1px solid #E7F0F6;padding:10px;vertical-align:top}th{background:#073B5C;color:#DFF2FD;font-weight:700;white-space:nowrap;position:sticky;top:0;z-index:1}td{color:#28455C}tbody tr:nth-child(even) td{background:#F6FBFE}tbody tr:hover td{background:#EDF8FD}tr:last-child td{border-bottom:0}td input,td textarea{min-width:160px;font-size:12px;padding:8px;min-height:37px}td textarea{min-width:240px;height:58px;resize:vertical}td input.numeric{width:115px;min-width:115px;direction:ltr;font-variant-numeric:tabular-nums}td input.index{width:40px;min-width:40px;text-align:center;padding:8px 2px;background:#F5F9FC;border:0}td .row-delete{min-width:35px;padding:7px;border:1px solid #F3C2C8;color:#A63540;background:#FCE9EB;box-shadow:none}td:focus-within{background:#E7F5FC}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);flex-wrap:wrap;padding-top:12px}.pagination button{font-size:12px;min-height:33px;padding:4px 11px}.pagination select{width:75px;min-height:33px;padding:4px}.pagination .actions{gap:8px}.empty-state{text-align:center;padding:64px 25px;color:var(--muted)}.empty-state h2{margin-bottom:9px;color:var(--navy)}.empty-state p{font-size:12px}.empty-symbol{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#DFF2FC,#EDF9FE);color:var(--blue-deep);font:35px Arial;width:70px;height:70px;border-radius:20px;margin-bottom:18px;box-shadow:inset 0 1px 0 #fff}.empty{padding:30px 10px;color:var(--muted);text-align:center;font-size:12px}.filterbar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:18px;padding:13px;border:1px solid #E2EEF5;border-radius:11px;background:#F9FCFE}.filterbar label:first-child{flex:1;min-width:200px}.filterbar label{min-width:160px}.filterbar label>span{font-family:var(--ff);font-size:12px;color:var(--blue-deep)}.filterbar input,.filterbar select{font-size:12px}.result-count{font-size:12px;color:var(--muted);margin:12px 0}.user-editor{margin-top:20px}.user-editor fieldset{border:1px solid var(--line);border-radius:10px;padding:15px;margin:18px 0;background:#FBFDFF}.user-editor legend{padding:0 8px;font-size:12px;font-weight:800;color:var(--navy)}.grants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px}.grant-group{padding:13px;background:#F4FAFD;border:1px solid #E1EFF6;border-radius:10px}.grant-group label{font-size:12px;font-weight:400;margin:6px 0;display:flex;align-items:flex-start;gap:7px}.grants input{width:15px;height:15px;min-height:0;accent-color:var(--blue);margin-top:6px;flex-shrink:0}.grant-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.grant-header button{font-size:12px;min-height:27px;padding:2px 8px}.account-layout{display:grid;grid-template-columns:1fr 2fr;gap:20px}.account-layout form label{margin:15px 0}.account-layout #accountEmail{margin:12px 0;text-align:right}.notice,.inline-error{padding:12px 16px;border-radius:10px;font-size:12px}.notice{background:#E2F6EE;color:#0E7A58;border:1px solid #B5E8D4}.notice:before{content:"✓";margin-left:8px;font-weight:900}#message{position:fixed;bottom:24px;left:24px;z-index:999;max-width:min(470px,90vw);box-shadow:var(--shadow-lg);cursor:pointer}.notice.error,.inline-error{background:#FCE9EB;color:#A63540;border:1px solid #F3C2C8}.notice.error:before{content:"!"}dialog{padding:0;border:1px solid var(--line);border-radius:17px;width:min(1050px,94vw);max-height:90vh;color:var(--ink);box-shadow:0 30px 110px rgba(3,27,49,.36)}dialog::backdrop{background:rgba(3,27,49,.7);backdrop-filter:blur(4px)}.dialog-head{padding:20px 25px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:linear-gradient(180deg,#FFF,#F9FCFE);z-index:5}.dialog-head button{border:0;background:#EDF5F9;border-radius:50%;width:36px;min-height:36px;padding:0;color:var(--blue-deep);box-shadow:none}.dialog-head h2{font-size:20px}.dialog-head .eyebrow{font-size:12px}#reviewBody{padding:24px}.dialog-actions{position:sticky;bottom:0;border-top:1px solid var(--line);background:rgba(251,254,255,.96);backdrop-filter:blur(8px);padding:16px 24px;display:flex;gap:10px;flex-wrap:wrap;z-index:4}.dialog-actions button{font-size:12px}.diff-old{background:#FFF2F3;color:#9E3B48}.diff-new{background:#EAF8F1;color:#207654}.diff-value{max-width:350px;white-space:pre-wrap;overflow-wrap:anywhere}.diff-summary{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0;color:#5D7B88;font-size:12px}.review-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px;color:var(--muted);font-size:12px}.review-steps{display:flex;list-style:none;padding:0;gap:7px;margin:16px 0 25px}.review-steps li{flex:1;text-align:center;background:#EDF3F7;padding:8px 5px;color:#8298A5;font-size:12px;border-radius:999px}.review-steps li.done{background:#E2F6EE;color:#0E7A58;font-weight:800}.review-comment{border-right:3px solid var(--blue);padding:10px 15px;background:#F4FAFD;margin:10px 0;border-radius:0 8px 8px 0}.review-comment small{display:block;color:#8096A0}.version-row{position:relative;padding-right:23px}.version-row:before{position:absolute;right:3px;content:"";width:8px;height:8px;background:#B0C9D1;border-radius:50%;top:25px}.version-row.current:before{background:#18A57A;box-shadow:0 0 0 5px #E1F5EF}.version-row.current{background:#F3FCF8;border-radius:9px;padding-left:15px}.audit-action{font-size:12px;background:#EAF4FA;color:var(--blue-deep);padding:5px 9px;border-radius:999px}
.audit-row{flex-wrap:wrap}
.audit-row>div:first-child{flex:1 1 200px}
.audit-what{flex:2 1 280px;min-width:0}
.audit-what .audit-action{display:inline-block}
.audit-subject{color:var(--ink);overflow-wrap:anywhere}
.row details.tech{flex:1 1 100%;margin-top:2px}
.tech summary{cursor:pointer;color:var(--muted);font-size:12px}
.tech dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 12px;margin:6px 0 0;font:12px/1.7 var(--mono,monospace);color:#486173}
.tech dt{color:var(--muted)}
.tech dd{margin:0;overflow-wrap:anywhere}.loading-state{text-align:center;padding:100px 20px;color:var(--muted)}.spinner{display:inline-block;border:2px solid #CBE8F5;border-top-color:var(--blue);border-radius:50%;width:19px;height:19px;vertical-align:middle;margin-left:8px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{padding:30px 0 20px;color:#8298A2;font-family:var(--ff);font-size:12px}footer span{padding:0 9px}.login-layout{max-width:1120px;margin:55px auto;display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center;padding:25px}.login-story{padding:34px;position:relative}.login-story:before{content:"";position:absolute;width:380px;height:380px;left:-80px;top:-100px;border:1px solid rgba(0,149,218,.18);border-radius:50%;box-shadow:0 0 0 46px rgba(0,149,218,.035),0 0 0 92px rgba(0,149,218,.025);pointer-events:none}.login-story>*{position:relative}.login-story h1{font-size:clamp(2.2rem,4vw,3.35rem);font-weight:900;line-height:1.38;margin:16px 0;color:var(--navy)}.login-story h1:first-letter{color:var(--blue)}.login-story>p{max-width:400px;font-size:13px;line-height:2.2}.story-steps{list-style:none;padding:0;margin:33px 0}.story-steps li{display:flex;gap:15px;align-items:center;margin:21px 0}.story-steps b{width:39px;height:39px;background:linear-gradient(145deg,#E2F4FC,#F3FBFE);color:var(--blue-deep);border:1px solid #C6E7F5;border-radius:12px;display:grid;place-items:center;font:800 12px var(--mono);box-shadow:inset 0 1px 0 #fff}.story-steps strong{font-size:12px;font-weight:800;display:block}.story-steps span{font-size:12px;color:var(--muted)}.story-footer{font:12px var(--mono);letter-spacing:.07em;color:#7792A1}.login-form{padding:38px;box-shadow:var(--shadow-lg);border-top:4px solid var(--blue)}.login-form h2{font-size:24px;margin:10px 0}.login-form>p{font-size:12px;margin-bottom:28px}.login-form label{margin:18px 0 6px;font-size:12px}.login-form .primary{margin-top:25px;min-height:46px}.password-wrap{display:flex;position:relative}.password-wrap input{padding-right:65px}.password-wrap button{position:absolute;right:3px;top:3px;min-height:35px;border:0;font-size:12px;color:var(--blue-deep);box-shadow:none;background:transparent}.login-form p.login-help{font-size:12px;line-height:2;margin:24px 0 0;padding-top:20px;border-top:1px solid var(--line)}details{padding:14px 0;border-top:1px solid var(--line)}summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--blue-deep)}.import-zone{padding:30px;border:2px dashed #A9D9EE;border-radius:13px;background:#F2FAFE;text-align:center;margin:20px 0}.import-zone p{font-size:12px;margin:12px auto;max-width:600px}.import-checks{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.import-checks span{padding:10px 15px;border-radius:999px;background:#EAF8F1;color:#207654;font-size:12px}.import-checks .invalid{background:#FCE9EB;color:#A63540}

@media(max-width:980px){.app-layout{grid-template-columns:210px minmax(0,1fr)}main{padding:25px 24px 0}.catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.login-layout{gap:24px}.workbench{grid-template-columns:205px minmax(0,1fr)}}
@media(max-width:720px){.topbar{min-height:auto;padding:14px 18px;align-items:flex-start}.topbar nav{justify-content:flex-end}.brand>span{display:none}.brand>b{border:0;padding:0}.app-layout{display:block}.app-sidebar{padding:14px 15px;gap:12px;overflow:visible}.account-box{padding:0;border:0}.sidebar-note,.nav-caption{display:none}.tabs{display:flex;flex-direction:row;overflow-x:auto;padding-bottom:3px}.tabs button{flex:0 0 auto;min-height:38px;padding:8px 10px}.tabs button>span{font-size:15px}.tabs button.active{box-shadow:inset 0 -3px #53CCF5}.tabs button:hover{transform:none}main{padding:21px 16px 0}.breadcrumb{margin-bottom:12px}.hero{align-items:flex-start;flex-direction:column;padding-bottom:18px;margin-bottom:19px}.hero .actions{width:100%}.hero .actions>*{flex:1}.stats,.catalog{grid-template-columns:1fr;gap:12px}.section-head{align-items:flex-start;flex-direction:column;gap:12px}.search-box{max-width:none}.card{padding:17px}.workbench{display:block}.section-sidebar{position:static;max-height:none;margin-bottom:14px}.editor-footer{padding-top:13px}.editor-footer .actions{width:100%}.editor-footer .actions button{flex:1}.formgrid,.account-layout,.grants{grid-template-columns:1fr}.filterbar label,.filterbar label:first-child{min-width:100%;flex:1}.row{align-items:flex-start;flex-wrap:wrap;gap:10px}.row .actions{width:100%}.row .actions button{width:100%}.login-layout{display:block;margin:20px auto;padding:8px 17px}.login-story{padding:25px 5px}.login-story:before{display:none}.login-form{padding:25px;margin-bottom:20px}.review-steps{overflow-x:auto}.review-steps li{min-width:110px}.dialog-head,#reviewBody,.dialog-actions{padding-right:18px;padding-left:18px}footer{text-align:center}}
/* Phase 1.4 Campaign KPI workflow */
.tabs>.nav-caption{margin:14px 0 2px;padding:0 12px;display:block}
.tabs>.nav-caption[hidden]{display:none!important}
.wf-split{display:grid;grid-template-columns:minmax(240px,32%) minmax(0,1fr);gap:18px;align-items:start}
.wf-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin:16px 0}
.wf-kpi-field{display:flex;flex-direction:column;gap:6px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.wf-kpi-code{font-family:var(--mono);font-size:12px;color:var(--blue-deep);font-weight:700;letter-spacing:.02em}
.wf-kpi-field input{font-variant-numeric:tabular-nums;direction:ltr;text-align:left}
.wf-kpi-read{display:grid;grid-template-columns:auto 1fr auto;gap:8px 12px;align-items:baseline;padding:10px 0;border-bottom:1px solid #E9F1F7;font-size:13px}
.wf-kpi-read:last-child{border:0}
.wf-kpi-read b{font-family:var(--mono);color:var(--blue-deep)}
.wf-kpi-read strong{direction:ltr;text-align:left;font-variant-numeric:tabular-nums}
.wf-validation{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.wf-issue{border-radius:10px;padding:12px 14px;font-size:12px}
.wf-issue.fail{background:#FDECEC;border:1px solid #F5C2C6;color:#8A1F28}
.wf-issue.warn{background:#FFF6E8;border:1px solid #F3D7A3;color:#8A5A12}
.wf-issue.ok{background:#E5F7EF;border:1px solid #B5E8D4;color:#0E7A58}
.wf-issue small{display:block;margin-top:4px;opacity:.9}
.wf-issue .check{display:flex;align-items:center;gap:8px;margin-top:8px;font-weight:700;cursor:pointer}
.wf-issue .check input{flex:none;width:18px;height:18px;min-height:0;padding:0;margin:0;accent-color:#8A5A12}
.tag.status-Pending,.tag.status-InProgress,.tag.status-Validated,.tag.status-Open,.tag.status-DataCollection,.tag.status-Review{background:#E7F4FC;color:var(--blue-deep);border-color:#C5E4F6}
.tag.status-Draft{background:#EEF2F6;color:#4A6272;border-color:#D5E0E8}
.tag.status-Rejected{background:#FCE9EB;color:#A63540;border-color:#F3C2C8}
.tag.status-Approved,.tag.status-Completed,.tag.status-Archived{background:#E5F7EF;color:#0F7A56;border-color:#B5E8D4}
.wf-period-form .wide{grid-column:1/-1}
@media(max-width:720px){.wf-split,.wf-kpi-grid{grid-template-columns:minmax(0,1fr)}.wf-kpi-read{grid-template-columns:minmax(0,1fr)}}
#wfDashPeriodForm{margin-bottom:8px}
#wfDashPeriodForm .actions{grid-column:1/-1;margin-top:4px}
#wfPeriodList{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
.wf-readonly-banner{margin:12px 0 0;padding:12px 14px;border-radius:10px;background:#EEF2F6;border:1px solid #D5E0E8;color:#3D5566;font-size:13px;line-height:1.6}
.wf-readonly-banner[hidden],#wfEntryActions[hidden]{display:none!important}
#wfKpiForm.is-readonly .wf-kpi-field{background:#F7FAFC}
#wfKpiForm.is-readonly .wf-kpi-field input{background:#F4F7FA;color:var(--muted);cursor:default}

/* Phase 2.2 — report status badges */
.tag.status-Generated{background:#e8f1f8;color:#123b4c}
.tag.status-Published{background:#e5f3ea;color:#1c6b3c}

/* typography-layer-v1: scale, Persian-safe spacing, numerals, wrapping */
:root{--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:20px;--fs-3xl:24px;--lh-tight:1.35;--lh-snug:1.55;--lh-body:1.85}
h1,h2,h3,h4,h5{text-wrap:balance}
p,li,dd,figcaption,small{text-wrap:pretty}
h4,h5,h6,small{line-height:var(--lh-snug)}
table,th,td,output,time,.stat strong,.kpi-v,.kpi-delta{font-variant-numeric:tabular-nums lining-nums}
button,input,select,textarea{font-family:inherit;font-feature-settings:inherit}

/* ux-layer-v1: pending badge, compact mobile header/actions/stats */
.tabs button>b.has-items{background:#E8A33D;color:#2B1A00;border-radius:999px;min-width:22px;padding:0 7px;text-align:center;font-weight:800;box-shadow:0 0 0 3px rgba(232,163,61,.18)}
@media(max-width:720px){
.topbar{flex-wrap:wrap;row-gap:10px}
.topbar nav{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px}
.topbar nav::-webkit-scrollbar{display:none}
.topbar nav>a,.topbar nav>button{white-space:nowrap;flex:0 0 auto;min-height:40px}
.hero .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hero .actions>*{flex:none;min-width:0;min-height:44px;border-radius:12px;padding:10px 12px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;justify-content:center;text-align:center}
.hero .actions>.primary{grid-column:1/-1;order:-1}
.hero .actions>[hidden]{display:none!important}
.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:20px}
.stat{padding:12px 12px 11px;grid-template-columns:1fr;gap:2px}
.stat .stat-icon,.stat small{display:none}
.stat strong{font-size:24px;line-height:1.35;grid-row:auto}
.stat span{font-size:12px;line-height:1.5}
}
@media(max-width:480px){.management-analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.management-analytics-card{padding:10px 11px}.management-analytics-card strong{font-size:18px;overflow-wrap:anywhere}}
/* typography-layer-v2: Persian digits never in the Latin mono face */
.tabs button>b{font-family:var(--ff);font-variant-numeric:tabular-nums lining-nums}

/* PHASE 3.8 — product functionality recovery: workflow, source, reports */
.tag.status-Archived{background:#EEF2F6;color:#4A6272;border-color:#D5E0E8}
.tag.status-Superseded{background:#F3F4F6;color:#6B7280;border-color:#E0E3E8;text-decoration:none}
.row.is-inactive{opacity:.72}
.row.is-inactive b{color:var(--muted)}
.row.is-blocked{background:#FAFBFC}
.wf-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 16px;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#F8FBFD}
.wf-facts div{min-width:0}
.wf-facts .wide{grid-column:1/-1}
.wf-facts dt{font-size:12px;color:var(--muted);font-weight:700}
.wf-facts dd{margin:2px 0 0;font-size:13px;overflow-wrap:anywhere}
code.hash{font-family:var(--mono);font-size:12px;word-break:break-all;overflow-wrap:anywhere}
.wf-source{margin:14px 0;padding:14px 16px;border:1px dashed #C5DCEB;border-radius:12px;background:#FBFDFF}
.wf-source h3,.wf-submit-check h3{margin:0 0 4px;font-size:15px}
.wf-doc{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;margin:8px 0}
.wf-doc-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.wf-doc-head b{overflow-wrap:anywhere}
.wf-source-form{margin-top:10px}
.wf-hub{padding:20px 22px}.wf-steps{list-style:none;margin:14px 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wf-steps li{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.wf-steps li b{display:block;font-size:14px}.wf-steps li small{display:block;color:var(--muted);margin-top:2px}.wf-step-mark{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid #A9C3D4;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;background:#fff}.wf-steps li.active{border-color:#00639E;background:#F3FAFE}.wf-steps li.active .wf-step-mark{border-color:#00639E;background:radial-gradient(circle,#00639E 0 38%,#fff 42%)}.wf-steps li.done{border-color:#B5E8D4;background:#F3FBF7}.wf-steps li.done .wf-step-mark{border-color:#0E7A58;background:#0E7A58}.wf-hub-main{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 10px}.wf-hub-primary{font-size:16px;padding:12px 26px}.wf-hub-count{color:var(--muted)}.wf-hub-count b{font-size:20px;color:var(--ink)}.wf-hub .wf-issue{margin:8px 0}.wf-hub-secondary{margin-top:6px}.wf-others{margin-top:12px}.wf-others summary,.wf-more>summary{cursor:pointer;font-weight:700;color:var(--blue-deep);padding:6px 0}.wf-more{margin-top:14px}.wf-more>summary{font-size:15px}.wf-others ul{margin:6px 0 0}@media (max-width:720px){.wf-steps{grid-template-columns:1fr}.wf-hub{padding:16px}.wf-hub-primary{width:100%}}
.wf-assign{margin:14px 0;border:1px solid var(--line);border-radius:12px;padding:6px 14px 10px;background:#fff}.wf-assign>summary{cursor:pointer;font-weight:700;color:var(--blue-deep);padding:8px 0}.wf-assign-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,280px) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.wf-assign-row small{display:block;color:var(--muted);margin-top:2px}.wf-assign-note{margin:8px 0 0;padding-top:10px;border-top:1px solid var(--line)}@media (max-width:720px){.wf-assign-row{grid-template-columns:1fr}}
.wf-source-brief-box{margin:10px 0}.wf-source-brief-box .wf-issue{margin:6px 0}.wf-source-brief{margin:0;font-size:13px;color:var(--muted)}.wf-source-brief a{font-weight:700}
.wf-source-form summary,.wf-archive summary,.wf-withdraw summary,.wf-tech summary,.wf-manage>summary{cursor:pointer;font-weight:700;color:var(--blue-deep);padding:6px 0}
.wf-kpi-label{font-size:13px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.wf-kpi-input{display:flex;align-items:center;gap:8px}
.wf-kpi-input input{flex:1;min-width:0}
.wf-kpi-input small{color:var(--muted);white-space:nowrap}
.wf-kpi-field input::placeholder{color:#5C7587}
.wf-kpi-field input[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(214,69,80,.15)}
.wf-field-error{color:#A63540;font-size:12px}
.wf-field-error[hidden]{display:none}
.wf-entry-footer{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.wf-entry-footer[hidden]{display:none!important}
.wf-entry-footer .actions{display:flex;flex-wrap:wrap;gap:10px}
.wf-footer-status{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 8px;font-size:12px}
.wf-footer-status:empty{display:none}
.wf-prev{color:#486173;font-size:12px}
.wf-undo{margin:6px 0 0;padding:8px 12px;border-radius:9px;background:#FFF8E8;border:1px solid #F0D29B;color:#6F4B0B;font-size:12px}
.wf-undo button{margin-inline-start:8px}
.wf-task-group{margin-top:18px}
.wf-task-group:first-child{margin-top:0}
.wf-task-group h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:14px;color:var(--navy)}
.wf-submit-check{margin-top:14px;padding:14px 16px;border:1px solid #F3D7A3;border-radius:12px;background:#FFFBF3;display:flex;flex-direction:column;gap:8px}
.wf-submit-check[hidden]{display:none}
.wf-ack{display:flex;gap:8px;align-items:flex-start;font-weight:700}
.wf-ack input{width:auto;margin-top:6px}
.wf-back{margin-bottom:6px}
.wf-kpi-table{border:1px solid var(--line);border-radius:10px;padding:0 12px;background:#fff}
.wf-kpi-read{grid-template-columns:1fr auto}
.wf-progress{width:100%;border-collapse:collapse;font-size:13px}
.wf-progress th,.wf-progress td{padding:8px 10px;border-bottom:1px solid #E9F1F7;text-align:start;vertical-align:top}
.wf-progress th{font-size:12px;color:var(--muted);font-weight:700;background:#F6FAFD}
.wf-progress select{min-width:200px;max-width:100%}
.wf-blockers h2{font-size:16px;margin:0 0 8px}
.wf-blockers{display:flex;flex-direction:column;gap:8px}
.wf-blockers[hidden],#wfDashProgress[hidden],#wfOpenPlan[hidden],#wfPeriodDetail[hidden],#reportDetail[hidden],#reportArchive[hidden],.wf-reassign[hidden]{display:none}
.stats.compact .stat strong{font-size:20px}
.wf-list{margin:6px 0;padding-inline-start:18px;font-size:13px}
.wf-reassign{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.wf-archive{margin-top:12px}.wf-manage[open]>summary{margin-bottom:10px}.wf-manage>summary{font-size:15px}
.wf-task-row small{display:block}
@media(max-width:720px){
 .wf-facts{grid-template-columns:1fr 1fr}
 .wf-progress{font-size:12px}
 .wf-progress select{min-width:0;width:100%}
 .wf-entry-footer .actions button{flex:1 1 40%}
 .row{flex-wrap:wrap}
 .row .actions{width:100%}
}
@media(max-width:420px){.wf-facts{grid-template-columns:1fr}}#wfReviewQueue .row,#wfApprovalQueue .row{flex-wrap:wrap;align-items:flex-start}
#wfReviewQueue .row>div:first-child,#wfApprovalQueue .row>div:first-child{flex:1 1 100%;min-width:0}
#wfReviewQueue .row small,#wfApprovalQueue .row small{display:block;overflow-wrap:anywhere}
#wfReviewQueue .row .actions,#wfApprovalQueue .row .actions{margin-inline-start:auto}
/* report content blocks in the entry form */
.wf-content-title{margin-top:1.5rem}
.wf-content-block{display:block;margin:.9rem 0}
.wf-content-head{margin-bottom:.35rem}
.wf-content-block textarea,.wf-content-block>input{width:100%;box-sizing:border-box}
.wf-content-table input{width:100%;min-width:6rem;box-sizing:border-box}
.wf-content-block details textarea{width:100%;box-sizing:border-box;margin:.4rem 0}
.wf-content-read p{margin:.25rem 0 .75rem}
.wf-content-img{display:block;max-width:100%;max-height:260px;margin:.4rem 0;border:1px solid var(--line,#d9e2e7);border-radius:6px}
.wf-content{grid-column:1/-1;width:100%}
.wf-content .tablewrap{overflow-x:auto}
.wf-content-table td.wide input{min-width:22rem}
.confirm-dialog{width:min(460px,92vw)}.confirm-dialog .confirm-body{padding:26px 24px 8px;font-size:14px;line-height:1.9}.confirm-dialog .confirm-body p{margin:0;white-space:pre-line}.confirm-dialog .dialog-actions{position:static;border-top:0;background:transparent;justify-content:flex-start}.confirm-dialog .danger{background:#B3262E;border-color:#B3262E;color:#fff}
.section-button .managed-tag{margin-inline-start:6px;padding:1px 6px;border-radius:8px;background:#EEF3F7;color:#4F6272;font-size:12px;font-weight:600;white-space:nowrap}
/* ── Contrast, focus and motion (WCAG 2.1 AA) ──
   white on the blue of a primary button was 2.4–3.3:1, the border of a field 1.4:1, a placeholder 2.3:1 and the focus ring a 30% blue.
   The numbers are against white: #00639E 6.4, #7790A3 3.3, #5C7587 4.8, #7FD4FA on the navy of the sidebar 8.2. */
.primary,.primary:hover{background:#00639E;color:#fff}
.primary:hover{background:#005387}
:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #00639E;outline-offset:2px}
.app-sidebar :focus-visible{outline-color:#7FD4FA}
input,select,textarea{border-color:#7790A3}
@media (max-width:720px){input,select,textarea{font-size:16px!important}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* the footer of the entry form stays at the foot of the screen: what is scrolled to (a field with the keyboard, an error) must not end up behind it */
html:has(#task-entry:not([hidden])){scroll-padding-bottom:160px}
.wf-collector-excel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.wf-collector-excel[hidden]{display:none!important}
.wf-collector-excel small{display:block;color:var(--muted)}
.wf-collector-excel .actions{display:flex;flex-wrap:wrap;gap:8px}
.wf-waive{margin-top:8px}
.wf-waive .check{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--muted)}
.wf-waive .check input{width:16px;min-width:16px;height:16px;min-height:0;flex:none;padding:0;margin:0}
.wf-waive input[type=text]{margin-top:6px;width:100%}
.wf-waive input[hidden]{display:none}

/* Period review, source policies and local form recovery. */
.wf-comparison,.wf-recovery{margin-block:20px;padding:18px;border:1px solid #d4e3eb;border-radius:12px;background:#f8fbfd}
.wf-recovery{border-color:#e0b75b;background:#fffaf0}
.wf-changed>td,.wf-changed>th{background:#edf7ff}
.wf-progress th small{display:block;font-weight:400}
.wf-diff-value{white-space:pre-wrap;overflow-wrap:anywhere;min-width:130px;max-width:420px;font:inherit;line-height:1.8;margin:0}
.wf-policy-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e1e8ed}
.wf-policy-row>span:first-child{flex:1}.wf-policy-row input{width:20px;height:20px}
.wf-doc-head{flex-wrap:wrap}.wf-doc-head a{margin-inline-start:auto}
.wf-recovery select{min-width:140px}
/* Paste from Excel: the preview before a table is replaced */
.wf-paste-preview{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#FBFDFF}
.wf-paste-preview p{margin:4px 0}
.wf-paste-added td{background:#E5F7EF}
.wf-paste-changed td{background:#FFF7E0}
.wf-paste-changed td.wf-paste-cell-changed{background:#FFE7A8;font-weight:700}
.wf-paste-removed td{background:#FCE9EB;color:#A63540}
.wf-paste-same td{color:#5b6b78}
.wf-task-row .tag+.tag{margin-inline-start:6px}
/* Accessibility: follow the visitor's system settings. */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media (forced-colors:active){:focus-visible{outline:2px solid Highlight;outline-offset:2px}.wf-kpi-field input[aria-invalid="true"]{border:2px solid Mark}.wf-field-error{border-inline-start:3px solid Mark;padding-inline-start:6px}}

/* Task filters, persistent comparison and the collector's action bar. */
.wf-task-filters{align-items:flex-end;margin-block:16px 10px}
.wf-task-filters label{flex:1 1 220px}
.wf-task-filters button{margin-bottom:1px}
.wf-kpi-previous{display:block;font-size:12px;font-weight:400;color:#526B7B;line-height:1.8;margin-top:6px;overflow-wrap:anywhere}
#task-entry{padding-bottom:112px}
.wf-entry-footer{position:fixed;bottom:0;inset-inline-start:250px;inset-inline-end:0;z-index:30;margin:0;padding:14px 36px calc(14px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #BCD3E0;box-shadow:0 -4px 20px rgba(5,49,79,.08);display:flex;align-items:center;justify-content:space-between;gap:20px}
.wf-entry-footer #wfSaveStatus{margin:0;font-size:12px;line-height:1.8;flex:1;overflow-wrap:anywhere}
.wf-entry-footer .actions{flex-shrink:0}
#message{pointer-events:none}
body:has(#task-entry:not([hidden])) #message{bottom:112px}
#wfKpiForm input,#wfSourcePanel input,.wf-content-block{scroll-margin-block:24px 150px}
.wf-error-summary{margin-bottom:20px;padding:16px 18px;border:1px solid #E9AAB1;border-inline-start:4px solid #B3262E;border-radius:10px;background:#FFF7F8;color:#8F2430}
.wf-error-summary h3{font-size:15px;color:#8F2430;margin-bottom:8px}
.wf-error-summary ul{margin:0;padding-inline-start:22px}
.wf-error-summary li{margin-block:7px;font-size:13px;line-height:1.9}
.wf-error-summary button,.wf-error-summary a{font-size:13px;text-align:start;color:#8F2430;text-decoration:underline;text-underline-offset:3px}
.wf-error-summary button{border:0;box-shadow:none;background:transparent;border-radius:4px;padding:2px 4px;min-height:32px;display:inline}
.wf-error-summary button:hover{transform:none;background:#FCE8EB}
.wf-date-control{display:flex;gap:6px;align-items:center;min-width:0;flex:1;margin-top:7px}
.wf-date-control input{flex:1;min-width:0;margin-top:0}
.wf-date-trigger{flex-shrink:0;min-height:43px;padding:8px 10px;border-radius:10px;font-size:12px}
.wf-date-picker{width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow-lg);background:#fff;color:var(--ink);font:inherit;direction:rtl}
.wf-date-picker::backdrop{background:rgba(3,27,49,.4)}
.wf-date-head{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:14px}
.wf-date-title{font-size:15px;font-weight:800;text-align:center;color:var(--navy)}
.wf-date-head button{min-width:42px;padding:7px;border-radius:9px}
.wf-date-selectors{display:flex;gap:8px;margin-bottom:12px}
.wf-date-selectors select{flex:1;min-width:0;font-size:13px}
.wf-date-weekdays,.wf-date-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center;direction:rtl}
.wf-date-grid{display:block}
.wf-date-week{margin-bottom:4px}
.wf-date-cell{display:grid;min-width:0}
.wf-date-weekdays{font-size:12px;color:var(--muted);margin-bottom:6px}
.wf-date-grid button{min-width:0;min-height:38px;padding:4px;border:1px solid transparent;border-radius:8px;box-shadow:none;font-size:13px;font-weight:500}
.wf-date-grid button:hover{transform:none;background:#EAF6FC}
.wf-date-grid [aria-current="date"]{border-color:var(--blue);font-weight:800}
.wf-date-grid [aria-selected="true"] button{background:var(--blue-deep);color:#fff}
.wf-date-help{font-size:12px;line-height:1.9;margin-top:12px}
.wf-date-actions{display:flex;gap:8px;justify-content:space-between;margin-top:14px}
.wf-date-actions button{padding:6px 12px;min-height:36px;font-size:12px}
@media(max-width:980px){.wf-entry-footer{inset-inline-start:210px;padding-inline:24px}}
@media(max-width:720px){
 .wf-entry-footer{inset-inline-start:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:8px}
 .wf-entry-footer #wfSaveStatus{flex-basis:100%}
 .wf-entry-footer .actions{width:100%;flex-wrap:nowrap;gap:8px}
 .wf-entry-footer .actions button{flex:1 1 0;min-width:0;padding:8px 10px;font-size:12px}
 #task-entry{padding-bottom:155px}
 body:has(#task-entry:not([hidden])) #message{bottom:155px}
 .wf-task-filters button{width:100%}
}
@media print{.wf-entry-footer,.wf-date-trigger,.wf-date-picker{display:none!important}#task-entry{padding-bottom:0}}
.wf-field-error:not([hidden])::before{content:"⚠ "}

#referenceKeys{border:1px solid var(--line);border-radius:10px;padding:10px 15px 14px;margin:12px 0;background:#FBFDFF;display:flex;flex-wrap:wrap;gap:8px 22px}#referenceKeys legend{font-size:12px;font-weight:700;padding:0 6px}#referenceKeys label{display:flex;align-items:center;gap:7px;margin:0;font-weight:400}#referenceKeys input{width:15px;height:15px;min-height:0;margin:0;accent-color:var(--blue);flex-shrink:0}
/* Follow-up across active periods, with long Persian issue text kept readable. */
.wf-admin-attention .wf-attention-list{max-height:560px;overflow:auto}
.wf-attention-row>div:first-child{min-width:0;flex:1}
.wf-attention-row small{overflow-wrap:anywhere}
.wf-attention-issue{color:var(--warning,#996400)}
/* The PDF is converted from the generated deck; it stays in the report detail. */
.report-preview{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#F7FAFD}
.report-preview .section-head{margin-bottom:12px}
.report-preview-frame{display:block;width:100%;height:min(72vh,760px);min-height:400px;border:1px solid var(--line);border-radius:8px;background:#E5EBF0;margin:12px 0}
.report-preview-status{display:flex;align-items:center;gap:8px;padding:14px 0}
.report-preview-hash{margin:8px 0;font-size:12px}
.report-preview-hash code{display:block;overflow-wrap:anywhere;white-space:normal}
.report-preview-checklist{margin:10px 0}
@media(max-width:600px){.report-preview{padding:12px}.report-preview-frame{height:60vh;min-height:300px}.report-preview .actions{width:100%;justify-content:flex-start}}
