/* ==========================================================================
   AMshield — redesign 2026-11-03 (appearance only). Loaded after app.css + gemini.css.
   Dark theme is the default (html[data-theme=dark]); light theme = html[data-theme=light].
   Local font + local SVG icons only, no remote URLs, no inline style/script (CSP-safe). Print is always light.
   ========================================================================== */

/* ---------- tokens: light values first (also used by print + printdoc), dark overrides below ---------- */
:root{
 --bg:#f8fafc;--topbar:#ffffff;--topline:#e2e8f0;--side:#ffffff;--side-ink:#334155;--side-ico:#64748b;--side-head:#64748b;--side-hover:#f1f5f9;
 --card:#ffffff;--card-2:#f8fafc;--line:#e2e8f0;--line-2:#cbd5e1;--surface-2:#f1f5f9;--surface-3:#e9eef5;--inner:#f8fafc;--inner-line:#e2e8f0;
 --ink:#0f172a;--ink-2:#1e293b;--mut:#475569;--mut-2:#5b6b80;--link:#1d4ed8;--input:#ffffff;--input-line:#cbd5e1;--ph:#64748b;--th:#f1f5f9;--track:#e2e8f0;
 --primary:#2563eb;--primary-h:#1d4ed8;
 --ok-ink:#047857;--ok-bg:#ecfdf5;--ok-line:#a7f3d0;--bad-ink:#be123c;--bad-bg:#fff1f2;--bad-line:#fecdd3;
 --warn-ink:#92400e;--warn-bg:#fffbeb;--warn-line:#fde68a;--info-ink:#1d4ed8;--info-bg:#eff6ff;--info-line:#bfdbfe;
 --t-red:#e11d48;--t-amber:#b45309;--t-blue:#1d4ed8;--t-green:#047857;--t-gray:#475569;--t-violet:#6d28d9;--t-cyan:#0e7490;
 --sh:0 1px 2px rgba(15,23,42,.04),0 6px 18px rgba(15,23,42,.05);--sh-h:0 14px 30px rgba(15,23,42,.10);
 --glow-a:.10;--r:24px;--r-sm:14px;
 --hdr:72px;--sidew:288px;
}
html[data-theme="dark"]{
 color-scheme:dark;
 --bg:#0b0f19;--topbar:#151c2c;--topline:#1e293b;--side:#151c2c;--side-ink:#cbd5e1;--side-ico:#cbd5e1;--side-head:#8291a7;--side-hover:#1b2438;
 --card:#121927;--card-2:#172033;--line:#1e293b;--line-2:#2a3650;--surface-2:#161f30;--surface-3:#1b2438;--inner:#161f30;--inner-line:#243049;
 --ink:#f1f5f9;--ink-2:#e2e8f0;--mut:#94a3b8;--mut-2:#8291a7;--link:#60a5fa;--input:#0f172a;--input-line:#2a3650;--ph:#7b8aa3;--th:#151c2c;--track:#243049;
 --ok-ink:#34d399;--ok-bg:rgba(16,185,129,.12);--ok-line:rgba(16,185,129,.32);--bad-ink:#fb7185;--bad-bg:rgba(244,63,94,.12);--bad-line:rgba(244,63,94,.34);
 --warn-ink:#fbbf24;--warn-bg:rgba(245,158,11,.12);--warn-line:rgba(245,158,11,.34);--info-ink:#60a5fa;--info-bg:rgba(37,99,235,.16);--info-line:rgba(59,130,246,.38);
 --t-red:#fb7185;--t-amber:#fbbf24;--t-blue:#60a5fa;--t-green:#34d399;--t-gray:#94a3b8;--t-violet:#a78bfa;--t-cyan:#22d3ee;
 --sh:0 1px 0 rgba(255,255,255,.02) inset,0 10px 30px rgba(0,0,0,.28);--sh-h:0 16px 36px rgba(0,0,0,.4);
 --glow-a:.13;
 --navy:#0f172a;--navy2:#1e293b;
}
html{font-family:Vazirmatn,Tahoma,sans-serif;font-size:15px;background:var(--bg);overflow-x:hidden}
body{background:var(--bg);color:var(--ink);font-family:inherit;line-height:1.75;overflow-x:hidden}
a{color:var(--link)}
h1,h2,h3,h4{color:var(--ink)}
.muted,.small{color:var(--mut)}.empty{color:var(--mut)}
::selection{background:#2563eb55}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}
html[data-theme="light"] :focus-visible{outline-color:#2563eb}

/* ---------- local SVG icons (mask → takes currentColor) ---------- */
.i{display:inline-block;width:1.2em;height:1.2em;flex:none;vertical-align:-.2em;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.i-alert{--ic:url("icons/alert.svg")}.i-alert-tri{--ic:url("icons/alert-tri.svg")}.i-award{--ic:url("icons/award.svg")}.i-bell{--ic:url("icons/bell.svg")}.i-book{--ic:url("icons/book.svg")}.i-building{--ic:url("icons/building.svg")}.i-calendar{--ic:url("icons/calendar.svg")}.i-check{--ic:url("icons/check.svg")}.i-check2{--ic:url("icons/check2.svg")}.i-chev{--ic:url("icons/chev.svg")}.i-clip-check{--ic:url("icons/clip-check.svg")}.i-clipboard{--ic:url("icons/clipboard.svg")}.i-dots{--ic:url("icons/dots.svg")}.i-file-text{--ic:url("icons/file-text.svg")}.i-folder{--ic:url("icons/folder.svg")}.i-folder-plus{--ic:url("icons/folder-plus.svg")}.i-gauge{--ic:url("icons/gauge.svg")}.i-grad-cap{--ic:url("icons/grad-cap.svg")}.i-grid{--ic:url("icons/grid.svg")}.i-hard-hat{--ic:url("icons/hard-hat.svg")}.i-help{--ic:url("icons/help.svg")}.i-history{--ic:url("icons/history.svg")}.i-id-card{--ic:url("icons/id-card.svg")}.i-inbox{--ic:url("icons/inbox.svg")}.i-key{--ic:url("icons/key.svg")}.i-list-check{--ic:url("icons/list-check.svg")}.i-lock{--ic:url("icons/lock.svg")}.i-logout{--ic:url("icons/logout.svg")}.i-menu{--ic:url("icons/menu.svg")}.i-monitor{--ic:url("icons/monitor.svg")}.i-moon{--ic:url("icons/moon.svg")}.i-msg-q{--ic:url("icons/msg-q.svg")}.i-permit{--ic:url("icons/permit.svg")}.i-pie{--ic:url("icons/pie.svg")}.i-plus{--ic:url("icons/plus.svg")}.i-report{--ic:url("icons/report.svg")}.i-scale{--ic:url("icons/scale.svg")}.i-scroll{--ic:url("icons/scroll.svg")}.i-shield{--ic:url("icons/shield.svg")}.i-sliders{--ic:url("icons/sliders.svg")}.i-star{--ic:url("icons/star.svg")}.i-sun{--ic:url("icons/sun.svg")}.i-trend-down{--ic:url("icons/trend-down.svg")}.i-user{--ic:url("icons/user.svg")}.i-user-cog{--ic:url("icons/user-cog.svg")}.i-users{--ic:url("icons/users.svg")}.i-x{--ic:url("icons/x.svg")}.i-zap{--ic:url("icons/zap.svg")}
.c-red{color:var(--t-red)}.c-amber{color:var(--t-amber)}.c-blue{color:var(--t-blue)}.c-green{color:var(--t-green)}.c-violet{color:var(--t-violet)}.c-cyan{color:var(--t-cyan)}

/* ---------- top bar ---------- */
.navt{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none;top:0;inset-inline-start:0;margin:0}
.topbar{position:fixed;top:0;inset-inline:0;height:var(--hdr);z-index:50;display:flex;align-items:center;gap:14px;padding:0 20px;background:var(--topbar);border-bottom:1px solid var(--topline)}
.tb-btn{width:48px;height:48px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:#1e293b;color:#e2e8f0;border:0;cursor:pointer;padding:0;margin:0;font:inherit}
.tb-btn .i{width:24px;height:24px}
.tb-btn:hover{background:#273449}
.tb-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:0}
.tb-brand b{font-size:1.45rem;font-weight:800;letter-spacing:.2px;direction:ltr;white-space:nowrap}
.tb-dot{width:13px;height:13px;border-radius:50%;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.14);flex:none}
.tb-hse{direction:ltr;font-weight:800;font-size:.95rem;color:#60a5fa;background:rgba(37,99,235,.14);border:1.5px solid rgba(59,130,246,.55);border-radius:7px;padding:1px 9px;line-height:1.7}
.tb-gap{flex:1 1 auto}
.tb-theme .i-sun{color:#fbbf24}.tb-theme .i-moon{display:none;color:#c7d2fe}
html[data-theme="light"] .tb-btn{background:#f1f5f9;color:#334155;border:1px solid #e2e8f0}
html[data-theme="light"] .tb-btn:hover{background:#e2e8f0}
html[data-theme="light"] .tb-theme .i-sun{display:none}html[data-theme="light"] .tb-theme .i-moon{display:inline-block;color:#4338ca}
html[data-theme="light"] .tb-hse{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}

/* ---------- shell / sidebar ---------- */
.shell{display:block;min-height:100vh;width:100%}
.side{position:fixed;top:var(--hdr);bottom:0;inset-inline-start:0;width:var(--sidew);height:auto;flex:none;display:flex;flex-direction:column;background:var(--side);border-inline-end:1px solid var(--line);padding:0;z-index:40;color:var(--side-ink);box-shadow:none}
.side .brand{display:none}
.side nav{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:18px 16px 10px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;max-height:none;margin:0}
.side nav a{display:flex;align-items:center;gap:14px;min-height:54px;padding:12px 16px;border:0;border-radius:16px;color:var(--side-ink);font-size:1.02rem;font-weight:500;text-decoration:none;transition:background .18s,color .18s;box-shadow:none}
.side nav a>span{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.side nav a::before{content:"";width:22px;height:22px;flex:none;background:var(--side-ico);-webkit-mask:url("icons/grid.svg") center/contain no-repeat;mask:url("icons/grid.svg") center/contain no-repeat}
.side nav a:hover{background:var(--side-hover);color:var(--ink)}
.side nav a.on{background:#2563eb;color:#fff;box-shadow:0 10px 26px rgba(37,99,235,.38)}
.side nav a.on::before{background:#fff}
.side nav a.on:hover{background:#1d4ed8}
.side nav a[data-ico="alert-tri"]::before{background:var(--t-red)}
.side nav a.on[data-ico="alert-tri"]::before{background:#fff}
.side nav a[data-ico="alert"]::before{-webkit-mask-image:url("icons/alert.svg");mask-image:url("icons/alert.svg")}
.side nav a[data-ico="alert-tri"]::before{-webkit-mask-image:url("icons/alert-tri.svg");mask-image:url("icons/alert-tri.svg")}
.side nav a[data-ico="award"]::before{-webkit-mask-image:url("icons/award.svg");mask-image:url("icons/award.svg")}
.side nav a[data-ico="bell"]::before{-webkit-mask-image:url("icons/bell.svg");mask-image:url("icons/bell.svg")}
.side nav a[data-ico="book"]::before{-webkit-mask-image:url("icons/book.svg");mask-image:url("icons/book.svg")}
.side nav a[data-ico="building"]::before{-webkit-mask-image:url("icons/building.svg");mask-image:url("icons/building.svg")}
.side nav a[data-ico="calendar"]::before{-webkit-mask-image:url("icons/calendar.svg");mask-image:url("icons/calendar.svg")}
.side nav a[data-ico="check"]::before{-webkit-mask-image:url("icons/check.svg");mask-image:url("icons/check.svg")}
.side nav a[data-ico="check2"]::before{-webkit-mask-image:url("icons/check2.svg");mask-image:url("icons/check2.svg")}
.side nav a[data-ico="chev"]::before{-webkit-mask-image:url("icons/chev.svg");mask-image:url("icons/chev.svg")}
.side nav a[data-ico="clip-check"]::before{-webkit-mask-image:url("icons/clip-check.svg");mask-image:url("icons/clip-check.svg")}
.side nav a[data-ico="clipboard"]::before{-webkit-mask-image:url("icons/clipboard.svg");mask-image:url("icons/clipboard.svg")}
.side nav a[data-ico="dots"]::before{-webkit-mask-image:url("icons/dots.svg");mask-image:url("icons/dots.svg")}
.side nav a[data-ico="file-text"]::before{-webkit-mask-image:url("icons/file-text.svg");mask-image:url("icons/file-text.svg")}
.side nav a[data-ico="folder"]::before{-webkit-mask-image:url("icons/folder.svg");mask-image:url("icons/folder.svg")}
.side nav a[data-ico="folder-plus"]::before{-webkit-mask-image:url("icons/folder-plus.svg");mask-image:url("icons/folder-plus.svg")}
.side nav a[data-ico="gauge"]::before{-webkit-mask-image:url("icons/gauge.svg");mask-image:url("icons/gauge.svg")}
.side nav a[data-ico="grad-cap"]::before{-webkit-mask-image:url("icons/grad-cap.svg");mask-image:url("icons/grad-cap.svg")}
.side nav a[data-ico="grid"]::before{-webkit-mask-image:url("icons/grid.svg");mask-image:url("icons/grid.svg")}
.side nav a[data-ico="hard-hat"]::before{-webkit-mask-image:url("icons/hard-hat.svg");mask-image:url("icons/hard-hat.svg")}
.side nav a[data-ico="help"]::before{-webkit-mask-image:url("icons/help.svg");mask-image:url("icons/help.svg")}
.side nav a[data-ico="history"]::before{-webkit-mask-image:url("icons/history.svg");mask-image:url("icons/history.svg")}
.side nav a[data-ico="id-card"]::before{-webkit-mask-image:url("icons/id-card.svg");mask-image:url("icons/id-card.svg")}
.side nav a[data-ico="inbox"]::before{-webkit-mask-image:url("icons/inbox.svg");mask-image:url("icons/inbox.svg")}
.side nav a[data-ico="key"]::before{-webkit-mask-image:url("icons/key.svg");mask-image:url("icons/key.svg")}
.side nav a[data-ico="list-check"]::before{-webkit-mask-image:url("icons/list-check.svg");mask-image:url("icons/list-check.svg")}
.side nav a[data-ico="lock"]::before{-webkit-mask-image:url("icons/lock.svg");mask-image:url("icons/lock.svg")}
.side nav a[data-ico="logout"]::before{-webkit-mask-image:url("icons/logout.svg");mask-image:url("icons/logout.svg")}
.side nav a[data-ico="menu"]::before{-webkit-mask-image:url("icons/menu.svg");mask-image:url("icons/menu.svg")}
.side nav a[data-ico="monitor"]::before{-webkit-mask-image:url("icons/monitor.svg");mask-image:url("icons/monitor.svg")}
.side nav a[data-ico="moon"]::before{-webkit-mask-image:url("icons/moon.svg");mask-image:url("icons/moon.svg")}
.side nav a[data-ico="msg-q"]::before{-webkit-mask-image:url("icons/msg-q.svg");mask-image:url("icons/msg-q.svg")}
.side nav a[data-ico="permit"]::before{-webkit-mask-image:url("icons/permit.svg");mask-image:url("icons/permit.svg")}
.side nav a[data-ico="pie"]::before{-webkit-mask-image:url("icons/pie.svg");mask-image:url("icons/pie.svg")}
.side nav a[data-ico="plus"]::before{-webkit-mask-image:url("icons/plus.svg");mask-image:url("icons/plus.svg")}
.side nav a[data-ico="report"]::before{-webkit-mask-image:url("icons/report.svg");mask-image:url("icons/report.svg")}
.side nav a[data-ico="scale"]::before{-webkit-mask-image:url("icons/scale.svg");mask-image:url("icons/scale.svg")}
.side nav a[data-ico="scroll"]::before{-webkit-mask-image:url("icons/scroll.svg");mask-image:url("icons/scroll.svg")}
.side nav a[data-ico="shield"]::before{-webkit-mask-image:url("icons/shield.svg");mask-image:url("icons/shield.svg")}
.side nav a[data-ico="sliders"]::before{-webkit-mask-image:url("icons/sliders.svg");mask-image:url("icons/sliders.svg")}
.side nav a[data-ico="star"]::before{-webkit-mask-image:url("icons/star.svg");mask-image:url("icons/star.svg")}
.side nav a[data-ico="sun"]::before{-webkit-mask-image:url("icons/sun.svg");mask-image:url("icons/sun.svg")}
.side nav a[data-ico="trend-down"]::before{-webkit-mask-image:url("icons/trend-down.svg");mask-image:url("icons/trend-down.svg")}
.side nav a[data-ico="user"]::before{-webkit-mask-image:url("icons/user.svg");mask-image:url("icons/user.svg")}
.side nav a[data-ico="user-cog"]::before{-webkit-mask-image:url("icons/user-cog.svg");mask-image:url("icons/user-cog.svg")}
.side nav a[data-ico="users"]::before{-webkit-mask-image:url("icons/users.svg");mask-image:url("icons/users.svg")}
.side nav a[data-ico="x"]::before{-webkit-mask-image:url("icons/x.svg");mask-image:url("icons/x.svg")}
.side nav a[data-ico="zap"]::before{-webkit-mask-image:url("icons/zap.svg");mask-image:url("icons/zap.svg")}

.pill-main{font-style:normal;font-size:.82rem;font-weight:600;border-radius:999px;padding:2px 14px;background:var(--surface-3);color:var(--mut);flex:none}
.side nav a.on .pill-main{background:rgba(255,255,255,.22);color:#fff}
.side .bdg{font-style:normal;min-width:2.6rem;padding:2px 10px;border-radius:999px;font-size:.86rem;line-height:1.6;text-align:center;font-weight:700;background:var(--info-bg);color:var(--info-ink);border:1px solid var(--info-line);flex:none}
.side .bdg-notifications,.side .ng-inbox>summary .bdg{background:#3a2e12;color:#fbbf24;border-color:#6b5318}
.side .bdg-review{background:#172554;color:#60a5fa;border-color:#1e40af}
html[data-theme="light"] .side .bdg-notifications,html[data-theme="light"] .side .ng-inbox>summary .bdg{background:#fffbeb;color:#92400e;border-color:#fcd34d}
html[data-theme="light"] .side .bdg-review{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}
.side nav a.on .bdg{background:rgba(255,255,255,.22);color:#fff;border-color:transparent}
.ng{border:0;margin:6px 0 0;padding:0}
.ng>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;padding:16px 16px 8px;color:var(--side-head);font-size:.9rem;font-weight:700;border-radius:12px}
.ng>summary::-webkit-details-marker{display:none}
.ng>summary>span{flex:1 1 auto}
.ng>summary::after{content:"";width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:url("icons/chev.svg") center/contain no-repeat;mask:url("icons/chev.svg") center/contain no-repeat;transform:rotate(-90deg);transition:transform .2s;opacity:.7}
.ng[open]>summary::after{transform:rotate(90deg)}
.ng>summary:hover{color:var(--ink)}
.ng>a{margin-top:2px}
.usercard{margin:12px 16px 16px;padding:18px;border:1px solid var(--inner-line);border-radius:22px;background:var(--card);color:var(--ink);display:flex;flex-direction:column;gap:14px;font-size:.9rem;flex:none}
.uc-top{display:flex;align-items:center;gap:14px;min-width:0}
.uc-av{width:56px;height:56px;font-size:1.25rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 6px 18px rgba(139,92,246,.35)}
.uc-id{display:flex;flex-direction:column;min-width:0}
.uc-id strong{font-size:1.08rem;font-weight:800;color:var(--ink);overflow-wrap:anywhere;line-height:1.5}
.uc-id small{color:var(--mut);font-size:.86rem;overflow-wrap:anywhere}
.uc-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.uc-acts form{margin:0;display:block}
.uc-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;border-radius:12px;font:inherit;font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer;background:#1e293b;color:#e2e8f0;border:1px solid #1e293b}
.uc-btn:hover{background:#273449}
.side button.link.uc-out,.uc-out{background:rgba(244,63,94,.12);color:#fb7185;border:1px solid rgba(244,63,94,.45)}
.uc-out:hover{background:rgba(244,63,94,.2)}
html[data-theme="light"] .uc-btn{background:#f1f5f9;color:#1e293b;border-color:#e2e8f0}
html[data-theme="light"] .side button.link.uc-out,html[data-theme="light"] .uc-out{background:#fff1f2;color:#be123c;border-color:#fda4af}
.scrim{display:none}

/* ---------- main column ---------- */
.main{display:block;width:auto;max-width:none;min-width:0;margin:0;margin-inline-start:var(--sidew);padding:calc(var(--hdr) + 28px) clamp(18px,3vw,44px) 48px;position:relative}
.page-header{position:static;inset:auto;min-height:0;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;padding:0;margin:0 0 22px;background:none;border:0;box-shadow:none}
.page-header.is-dash{margin-bottom:12px}
.ph-t{min-width:0;flex:1 1 260px}
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:1rem;color:var(--mut);margin-bottom:4px}
.crumbs a{color:var(--mut);text-decoration:none}.crumbs a:hover{color:var(--ink)}
.crumbs b{color:var(--link);font-weight:500}
.crumbs .i{width:15px;height:15px;opacity:.8}
.page-header h1{font-size:1.7rem;font-weight:800;margin:0;color:var(--ink);line-height:1.5;overflow-wrap:anywhere}
.header-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.header-role{display:none}
section{min-width:0}

/* ---------- surfaces ---------- */
.card,.kpi,.kpi2,.pcard,.profile,.sumcard,.up-card,.attn,.grp,.formcard,.qcard,.xd-kpi,.xd-pcard,.xd-alert,.xd-deep,.xd-filter-card,.xd-monthhead,.xd-chart,.allclear,.savebar,.evbarcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);color:var(--ink)}
.card{padding:24px}
.card h2,.card h3{color:var(--ink)}
h3.sec{font-size:1.15rem;font-weight:800;color:var(--ink);margin:30px 0 14px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.between{align-items:center}.between h3.sec{margin-bottom:14px}
.between>a{font-weight:600;text-decoration:none;font-size:.92rem}
a.kpi:hover,.kpi2:hover,.xd-kpi:hover,.xd-pcard:hover,.up-card:hover,.attn:hover{box-shadow:var(--sh-h);transform:translateY(-2px)}

/* ---------- buttons ---------- */
.btn{background:var(--primary);color:#fff;border:1px solid transparent;border-radius:14px;min-height:46px;padding:10px 20px;font-weight:700;font-family:inherit;box-shadow:0 6px 18px rgba(37,99,235,.28);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--primary-h);color:#fff}
.btn .i{width:1.25em;height:1.25em}
.btn.ghost{background:var(--surface-2);color:var(--ink);border:1px solid var(--line-2);box-shadow:none}
.btn.ghost:hover{background:var(--surface-3);color:var(--ink)}
.btn.alt{background:#334155;color:#fff;box-shadow:none}.btn.alt:hover{background:#475569}
.btn.danger{background:var(--bad-bg);color:var(--bad-ink);border:1px solid var(--bad-line);box-shadow:none}
.btn.danger:hover{background:rgba(244,63,94,.2);color:var(--bad-ink)}
html[data-theme="light"] .btn.danger:hover{background:#ffe4e6}
.btn.ok{background:#059669;color:#fff;box-shadow:0 6px 16px rgba(5,150,105,.28)}
.btn.ok:hover{background:#047857}
.btn.sm{min-height:40px;padding:7px 14px;font-size:.88rem;border-radius:12px}
button.link{color:var(--link);font-family:inherit}
.btn[disabled],button[disabled]{opacity:.55;cursor:not-allowed}

/* ---------- form controls ---------- */
label{color:var(--ink-2);font-weight:600}
input,select,textarea{background:var(--input);color:var(--ink);border:1px solid var(--input-line);border-radius:14px;padding:10px 14px;min-height:46px;font-family:inherit;font-size:1rem;max-width:100%}
textarea{min-height:96px}
input::placeholder,textarea::placeholder{color:var(--ph);opacity:1}
input:focus,select:focus,textarea:focus{border-color:#3b82f6;outline:0;box-shadow:0 0 0 3px rgba(59,130,246,.25)}
input[type=checkbox],input[type=radio]{min-height:0;width:1.15rem;height:1.15rem;accent-color:#2563eb;box-shadow:none}
input[type=file]{padding:9px}
input[disabled],select[disabled],textarea[disabled]{background:var(--surface-2);color:var(--mut);opacity:1}
option,optgroup{background:var(--card);color:var(--ink)}
fieldset{border:1px solid var(--line);border-radius:16px}
legend{color:var(--ink);font-weight:700}

/* ---------- tables (internal scroll on small screens) ---------- */
table{color:var(--ink);border-color:var(--line)}
th{background:var(--th);color:var(--mut);font-size:.84rem;font-weight:700;border-bottom:1px solid var(--line)}
td{color:var(--ink-2);border-bottom:1px solid var(--line)}
tbody tr:hover{background:var(--surface-3)}
th:first-child{border-start-start-radius:12px;border-end-start-radius:12px}
th:last-child{border-start-end-radius:12px;border-end-end-radius:12px}
.card{overflow-x:auto}

/* ---------- pills / tags / badges / notes ---------- */
.pill{display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;font-size:.9rem;line-height:1.6;border-radius:999px;padding:4px 14px;white-space:nowrap;background:var(--info-bg);color:var(--info-ink);border:1px solid transparent}
.p-red{background:var(--bad-bg);color:var(--bad-ink)}
.p-amber{background:var(--warn-bg);color:var(--warn-ink)}
.p-blue{background:var(--info-bg);color:var(--info-ink);border-color:var(--info-line)}
.p-green{background:var(--ok-bg);color:var(--ok-ink)}
.p-gray{background:var(--surface-3);color:var(--mut)}
.tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 12px;font-size:.8rem;font-weight:700;line-height:1.8;background:var(--surface-3);color:var(--mut);border:1px solid var(--line-2);white-space:nowrap}
.tag.active,.tag.approved,.tag.finalized,.tag.closed,.tag.verified_closed,.tag.good,.tag.ok,.tag.done,.tag.accepted{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}
.tag.rejected,.tag.bad,.tag.overdue,.tag.suspended,.tag.returned,.tag.critical,.tag.late{background:var(--bad-bg);color:var(--bad-ink);border-color:var(--bad-line)}
.tag.on_hold,.tag.submitted,.tag.resubmitted,.tag.under_review,.tag.warn,.tag.warn2,.tag.pending,.tag.calculated,.tag.ready{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}
.tag.info,.tag.in_progress,.tag.open,.tag.completed_pending_verification,.tag.reviewed,.tag.draft_calc{background:var(--info-bg);color:var(--info-ink);border-color:var(--info-line)}
.tag.archived,.tag.draft,.tag.cancelled,.tag.superseded,.tag.dim{background:var(--surface-3);color:var(--mut);border-color:var(--line-2)}
.bdg{font-style:normal;background:var(--info-bg);color:var(--info-ink);border:1px solid var(--info-line);border-radius:999px;padding:0 10px;font-weight:700;font-size:.8rem;line-height:1.7}
.note{border-radius:16px;padding:12px 16px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink)}
.note.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}
.note.err{background:var(--bad-bg);color:var(--bad-ink);border-color:var(--bad-line)}
.note.info{background:var(--info-bg);color:var(--info-ink);border-color:var(--info-line)}
.note a{color:inherit;font-weight:700}
.eng-bad{background:var(--bad-bg);color:var(--bad-ink);border:1px solid var(--bad-line)}
.eng-warn{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}
.chip2{background:var(--surface-2);color:var(--ink);border-color:var(--line-2)}
.chip2 b{background:var(--surface-3)}
.chip2.on{background:#2563eb;color:#fff;border-color:#2563eb}
.chip{background:var(--ok-bg);border-color:var(--ok-line)}
.avatar{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}
.pos{color:var(--ok-ink)}.neg{color:var(--bad-ink)}
.kd-bad{color:var(--bad-ink)}.kd-good{color:var(--ok-ink)}.kd-neutral{color:var(--mut)}

/* ---------- tabs ---------- */
.tabs{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;padding:6px;gap:6px}
.tabs a{color:var(--mut);border-radius:13px;font-weight:600}
.tabs a:hover{color:var(--ink);background:var(--surface-3)}
.tabs a.on{background:#2563eb;color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.3)}

/* ---------- "?" tooltip ---------- */
.qhelp{background:var(--surface-3);color:var(--mut);border:1px solid var(--line-2);width:20px;height:20px}
.qhelp:hover,.qhelp:focus,.qhelp:focus-visible{background:var(--info-bg);color:var(--info-ink)}
.qhelp::after{background:#020617;color:#f1f5f9;border:1px solid #334155}

/* ---------- misc existing blocks re-skinned ---------- */
.allclear{display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--ok-bg);border-color:var(--ok-line);box-shadow:none}
.allclear .tick{background:#059669}
progress::-webkit-progress-bar{background:var(--track)}
.plrow{border-bottom-color:var(--line)}.plname{color:var(--ink)}.plm{color:var(--mut)}
.feed>div{border-bottom-color:var(--line)}
.dotf{background:#3b82f6}
.pcard{padding:18px 20px}
.up-card b,.kpi b,.kpi2 b{color:var(--ink)}
.up-card.warn{border-color:var(--warn-line)}
.up-card.warn b{color:var(--t-amber)}
.axis{stroke:var(--line-2)}.t-val{fill:var(--ink)}.t-lbl{fill:var(--mut)}
.b-gray{fill:var(--line-2)}
.timeline>*{border-color:var(--line)}
.savebar{background:var(--card-2)}
.grp>summary,.grp h3{color:var(--ink)}
dl.kv dt{color:var(--mut)}dl.kv dd{color:var(--ink)}
.pager a,.pager span{border-radius:12px}
hr{border:0;border-top:1px solid var(--line)}
code,kbd{background:var(--surface-3);color:var(--ink);border-radius:6px;padding:0 5px}

/* ---------- dashboard: greeting + quick actions ---------- */
.hero{display:block;background:none;border:0;box-shadow:none;padding:0;margin:0 0 26px;color:var(--ink);border-radius:0}
.hero h2{font-size:clamp(1.65rem,1.2rem + 1.4vw,2.15rem);font-weight:900;margin:0 0 6px;color:var(--ink);line-height:1.45}
.hero .muted{color:var(--mut);font-size:1rem;margin:0}
.wave{display:inline-block}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;width:auto}
.hero-actions .btn{min-height:54px;border-radius:17px;padding:10px 24px;font-size:1.02rem;flex:0 0 auto}
.hero-actions .btn.ghost{background:var(--surface-2);border-color:var(--line-2)}
html[data-theme="dark"] .hero-actions .btn.ghost{background:#141c2b;border-color:#2a3650}
.hero-actions .qa-primary{background:#2563eb;box-shadow:0 10px 28px rgba(37,99,235,.42)}
.qa-mob{display:none}
.qa-mob>summary{list-style:none}

/* ---------- dashboard: task-queue stat cards ---------- */
.qwrap{margin:0 0 8px}
.qstats{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin:0 0 26px}
.qstat{--tone:var(--t-blue);position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;gap:6px;min-width:0;padding:26px 26px 22px;background:var(--card);border:1px solid var(--line);border-radius:26px;box-shadow:var(--sh);text-decoration:none;color:var(--ink);transition:box-shadow .2s,transform .2s,border-color .2s}
.qstat::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 8% 100%,color-mix(in srgb,var(--tone) calc(var(--glow-a) * 100%),transparent) 0,transparent 62%)}
.qstat:hover{border-color:var(--line-2);box-shadow:var(--sh-h)}
.t-red{--tone:var(--t-red)}.t-amber{--tone:var(--t-amber)}.t-blue{--tone:var(--t-blue)}.t-green{--tone:var(--t-green)}.t-gray{--tone:var(--t-gray)}
.qs-top{display:flex;align-items:flex-start;gap:8px;min-width:0}
.qs-title,.qstat .qmain{flex:1 1 auto;min-width:0;display:block;font-size:1.02rem;font-weight:600;color:var(--mut);text-decoration:none;line-height:1.7;overflow-wrap:anywhere}
.qstat .qmain span{font-size:inherit}
.qstat .qs-title::after{content:"";position:absolute;inset:0;z-index:1}
.qs-ico{width:54px;height:54px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:17px;color:var(--tone);background:color-mix(in srgb,var(--tone) 12%,transparent);border:1px solid color-mix(in srgb,var(--tone) 30%,transparent);margin-inline-start:6px}
.qs-ico .i{width:26px;height:26px}
.qstat .qhelp{position:relative;z-index:2;margin-top:4px}
.qs-num{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-top:18px}
.qs-num b{font-size:2.9rem;font-weight:900;line-height:1.1;color:var(--ink);letter-spacing:-.5px}
.qs-desc{margin:4px 0 0;color:var(--mut);font-size:.95rem;line-height:1.8}
.qstat .qsub{position:relative;z-index:2;border-top:1px dashed var(--line-2);margin-top:10px;padding-top:6px;flex:none}
.qstat .qpeople>summary{color:var(--link)}
.qstat .plist li{border-bottom-color:var(--line)}
.attn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.attn.qstat{flex-direction:column;align-items:stretch}
.attn.qstat .go{display:none}
.attn.qstat:hover{transform:translateY(-2px)}

/* ---------- dashboard: «صف کارهای من» list ---------- */
.qlist{padding:30px 28px;border-radius:28px;overflow:visible}
.ql-head{position:relative;padding-inline-start:24px;margin-bottom:20px}
.ql-head::before{content:"";position:absolute;inset-inline-start:0;top:6px;bottom:6px;width:8px;border-radius:8px;background:#2563eb}
.ql-head h3.sec{margin:0;font-size:1.55rem;font-weight:900;color:var(--ink);gap:14px}
.ql-head h3.sec .bdg{margin:0;font-size:.95rem;padding:3px 16px}
.ql-head p{margin:4px 0 0;font-size:1rem;color:var(--mut)}
.ql-tabs{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.ql-tabs a{flex:1 1 0;min-width:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.5;min-height:58px;padding:8px 14px;border-radius:15px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);font-weight:700;font-size:1rem;text-decoration:none}
.ql-tabs a:hover{background:var(--surface-3)}
.ql-tabs a.on{background:#2563eb;border-color:#2563eb;color:#fff;flex:0 1 auto;min-width:110px}
.qitems{display:flex;flex-direction:column;gap:16px;border:0;padding:0}
.qitem{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:22px;border:1px solid var(--inner-line);border-radius:22px;background:var(--inner);font-size:1rem;border-bottom:1px solid var(--inner-line)}
.qitem:last-of-type{border-bottom:1px solid var(--inner-line)}
.qi-head{display:flex;align-items:flex-start;gap:14px;min-width:0}
.qi-no{flex:none;font-weight:800;font-size:1.05rem;color:var(--info-ink);background:var(--info-bg);border:1px solid var(--info-line);border-radius:12px;padding:6px 10px;line-height:1.5}
.qi-t{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.qi-t>b{font-size:1.12rem;font-weight:800;color:var(--ink);overflow-wrap:anywhere}
.qi-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;color:var(--mut);font-size:.93rem}
.qi-meta>span{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}
.qi-meta>span+span::before{content:"•";margin:0 10px;color:var(--mut-2)}
.qi-meta .i{width:17px;height:17px}
.qi-meta .qi-proj{color:var(--link)}
.qi-st{align-self:flex-start;border:1px solid var(--warn-line)}
.qi-acts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;border-radius:18px;background:var(--card);border:1px solid var(--inner-line)}
.qi-acts form{display:contents}
.qi-acts [name=comment]{min-height:58px;resize:vertical;line-height:1.7;grid-column:1/-1;grid-row:1;width:100%;min-width:0;margin:0}
.qi-acts .qa .btn{grid-column:1;grid-row:2;width:100%;min-height:48px;font-size:1rem}
.qi-acts .qrej .btn{grid-column:2;grid-row:2;min-height:48px;min-width:92px;font-size:1rem}
.ql-more{display:inline-block;margin-top:4px;font-weight:600;text-decoration:none}
.qlist .empty{margin:0}

/* ---------- KPI / misc dashboard cards ---------- */
.kpi-row{gap:18px}
.kpi2{padding:22px;border-radius:24px}
.kpi2 span{color:var(--mut)}
.kpi2 b{font-size:2.2rem;font-weight:900}
.kpi2 small{color:var(--mut)}
.kpi2.warn{border-color:var(--warn-line)}.kpi2.warn b{color:var(--t-amber)}
.kpi2.active b{color:var(--t-green)}
.evbar-top b{color:var(--ink)}

/* ---------- executive page (phase 13a features untouched, re-skinned) ---------- */
.xd-filter{background:var(--surface-2);color:var(--mut)}.xd-filter:hover{background:var(--surface-3);color:var(--ink)}.xd-filter.on{background:#2563eb;color:#fff}
.xd-sel{background:var(--surface-2);color:var(--ink)}
.xd-mtab{background:var(--surface-2);color:var(--mut)}.xd-mtab:hover{background:var(--surface-3)}.xd-mtab.on{background:#2563eb;color:#fff}
.xd-mtab-prov.on{background:#b45309;color:#fff}
.xd-monthtitle{color:var(--ink)}
.xd-kpi>b,.xd-pc-score{color:var(--ink)}
.xd-pc-score{color:var(--link)}
.xd-h{color:var(--ink)}
.xd-kpi-top::before{content:"";position:absolute;inset-inline-end:0;top:0;width:36px;height:36px;border-radius:12px;background:var(--surface-3)}
.xd-kpi-top::after{background:var(--mut);-webkit-mask:url("icons/check.svg") center/19px no-repeat;mask:url("icons/check.svg") center/19px no-repeat}
.xd-kpi-daily .xd-kpi-top::before{background:var(--ok-bg)}.xd-kpi-daily .xd-kpi-top::after{background:var(--ok-ink)}
.xd-kpi-capa .xd-kpi-top::before{background:var(--bad-bg)}.xd-kpi-capa .xd-kpi-top::after{background:var(--bad-ink);-webkit-mask-image:url("icons/alert.svg");mask-image:url("icons/alert.svg")}
.xd-kpi-incident .xd-kpi-top::before{background:var(--warn-bg)}.xd-kpi-incident .xd-kpi-top::after{background:var(--warn-ink);-webkit-mask-image:url("icons/alert.svg");mask-image:url("icons/alert.svg")}
.xd-kpi-score .xd-kpi-top::after{-webkit-mask-image:url("icons/award.svg");mask-image:url("icons/award.svg")}
.xd-tone-good,.xd-tone-ok,.xd-arrow.good{background:var(--ok-bg);color:var(--ok-ink)}
.xd-tone-bad,.xd-arrow.bad{background:var(--bad-bg);color:var(--bad-ink)}
.xd-tone-warn2{background:var(--warn-bg);color:var(--warn-ink)}
.xd-tone-dim{background:var(--surface-3);color:var(--mut)}
.xd-alert,.xd-alert.crit,.xd-alert.warn{background:var(--card)}
.xd-alert.crit .xd-aicon{background:var(--bad-bg);color:var(--bad-ink)}.xd-alert.warn .xd-aicon{background:var(--warn-bg);color:var(--warn-ink)}
/* fix 1405/08/20: urgent box on red banner — cards are solid var(--card), so text must use theme ink (was white-on-white in light theme) */
.xd-attention .xd-alert,.xd-attention .xd-alert:hover{background:var(--card);border:1px solid var(--line)}
.xd-attention .xd-abody b,.xd-attention .xd-abody b a,.xd-attention .xd-amain,.xd-attention .xd-go{color:var(--ink)}
.xd-attention .xd-abody small{color:var(--mut)}
.xd-attention .xd-ufacts{color:var(--ink-2)}.xd-attention .xd-ufacts li.neg,.xd-attention .xd-ufacts .neg b{color:var(--bad-ink)}
.xd-fine summary,.xd-deep>summary,.xd-more>summary,.xd-plink{color:var(--link)}
.xd-fine p{color:var(--mut)}
.xd-more>summary{background:var(--info-bg)}
.xd-note{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}
.xd-provbar{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}
.xd-execsum{color:var(--ink)}.xd-execsum-lb{background:var(--info-bg);color:var(--info-ink)}
.xd-okcard{background:var(--ok-bg);border-color:var(--ok-line)}
.xd-pop{background:var(--card);border:1px solid var(--line-2);color:var(--ink)}
.xd-hero{background:linear-gradient(135deg,#111a2c,#1a2438);border:1px solid #243049}
html[data-theme="light"] .xd-hero{background:linear-gradient(135deg,#0f172a,#1e293b);border:0}
.xd-strip{background:var(--card-2);border:1px solid var(--line)}
.xd-legend,.xd-meta{color:var(--mut)}
.xd-hero .xd-meta,.xd-hero .xd-narr{color:#cbd5e1}

/* ---------- login ---------- */
body.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 18px;background:
 radial-gradient(40% 30% at 12% 14%,rgba(37,99,235,.22),transparent 70%),
 radial-gradient(35% 25% at 86% 92%,rgba(79,70,229,.18),transparent 70%),
 radial-gradient(30% 22% at 70% 20%,rgba(245,158,11,.07),transparent 70%),
 #0b0f19;color:var(--ink)}
html[data-theme="light"] body.auth{background:radial-gradient(40% 30% at 12% 14%,rgba(37,99,235,.12),transparent 70%),radial-gradient(35% 25% at 86% 92%,rgba(79,70,229,.10),transparent 70%),#f1f5f9}
.authbox{width:min(440px,100%);background:#0f1521;border:1px solid #1e293b;border-radius:28px;padding:40px 34px 36px;box-shadow:0 30px 80px rgba(0,0,0,.45);display:flex;flex-direction:column;align-items:stretch;color:var(--ink)}
html[data-theme="light"] .authbox{background:#fff;border-color:#e2e8f0;box-shadow:0 24px 60px rgba(15,23,42,.12)}
.auth-logo{align-self:center;width:88px;height:88px;border-radius:24px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#2563eb,#6366f1);box-shadow:0 14px 34px rgba(79,70,229,.45);margin-bottom:22px}
.auth-logo .i{width:42px;height:42px}
.auth-title{margin:0;text-align:center;font-size:1.6rem;font-weight:900;color:var(--ink);line-height:1.5}
.auth-sub{text-align:center;margin:8px 0 26px;font-size:.98rem;color:var(--mut)}
.authbox>label{display:block;margin:0 0 10px;font-size:1rem;font-weight:600;color:var(--ink-2)}
.ifield{position:relative;display:block;margin-bottom:22px}
.ifield .i{position:absolute;inset-inline-start:18px;top:50%;transform:translateY(-50%);width:22px;height:22px;color:var(--mut);pointer-events:none}
.ifield input{display:block;width:100%;margin:0;min-height:58px;border-radius:16px;padding-inline:52px 18px;background:#0f172a;border:1px solid #2a3650;font-size:1rem;color:var(--ink)}
html[data-theme="light"] .ifield input{background:#f8fafc;border-color:#cbd5e1}
.ifield input[dir=ltr]{text-align:right}
.ifield input[dir=ltr]:not(:placeholder-shown){text-align:left}
.auth-hint{margin:-6px 0 22px;font-size:.88rem;color:var(--mut)}
.auth-btn,.authbox .btn.auth-btn{width:100%;min-height:58px;border-radius:16px;font-size:1.12rem;font-weight:800;border:0;background:linear-gradient(90deg,#2563eb,#4f46e5);box-shadow:0 12px 30px rgba(59,91,235,.42)}
.auth-btn:hover{background:linear-gradient(90deg,#1d4ed8,#4338ca)}
.authbox .note{margin-bottom:18px}
.authbox .card{background:transparent;border:0;box-shadow:none;padding:0}

/* ---------- responsive ---------- */
@media (min-width:1024px){
 .navbtn{display:none}
 .topbar{padding-inline:24px}
}
@media (max-width:1023px){
 :root{--hdr:68px}
 .topbar{padding:0 16px;gap:12px}
 .side{top:0;bottom:0;height:100dvh;width:min(88vw,340px);inset-inline-start:0;z-index:70;border-inline-end:1px solid var(--line);transform:translateX(100%);visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s;box-shadow:-20px 0 50px rgba(0,0,0,.35)}
 .navt:checked~.shell .side{transform:none;visibility:visible;transition:transform .25s ease}
 .navt:checked~.shell .scrim{display:block;position:fixed;inset:0;z-index:65;background:rgba(5,8,15,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer}
 html[data-theme="light"] .navt:checked~.shell .scrim{background:rgba(15,23,42,.35)}
 body:has(.navt:checked){overflow:hidden}
 .side nav{padding:22px 18px 10px;max-height:none}
 .main{margin-inline-start:0;padding:calc(var(--hdr) + 22px) 16px 40px;width:100%}
}
@media (max-width:760px){
 html{font-size:15px}
 .tb-brand b{font-size:1.35rem}
 .tb-btn{width:46px;height:46px}
 .page-header h1{font-size:1.4rem}
 .crumbs{font-size:.95rem}
 .card,.profile{padding:20px 16px;border-radius:22px}
 .hero-actions{gap:10px;margin-top:20px}
 .hero .hero-actions.qa-desk{display:flex!important}
 .hero-actions .btn{flex:1 1 auto;padding:10px 16px;min-height:52px;font-size:.98rem}
 .hero-actions .qa-x{display:inline-flex}
 .qa-mob{display:block;margin-top:10px;width:100%}
 .qa-mob>summary{background:var(--surface-2);color:var(--ink);border:1px solid var(--line-2);box-shadow:none;border-radius:16px}
 .qa-mob .qa-list{background:var(--card);border-color:var(--line-2)}
 .qstats{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:22px}
 .qstat{padding:24px 22px 20px;min-height:178px}
 .qs-num b{font-size:2.7rem}
 .attn-grid{grid-template-columns:minmax(0,1fr)}
 .qlist{padding:26px 18px;border-radius:26px}
 .ql-head h3.sec{font-size:1.4rem}
 .ql-tabs a{font-size:.95rem;padding:8px 10px;min-width:0}
 .qitem{padding:18px 16px}
 .qitem>span{width:auto}
 .qi-acts{padding:12px}
 .authbox{padding:34px 24px 30px}
 .auth-title{font-size:1.45rem}
}
@media (max-width:400px){
 .tb-hse{font-size:.85rem;padding:0 7px}
 .tb-brand{gap:8px}
}
@media (prefers-reduced-motion:reduce){.side,.qstat{transition:none!important}}

/* ---------- print: always light, no chrome ---------- */
@media print{
 html,html[data-theme="dark"]{color-scheme:light;
  --bg:#fff;--card:#fff;--card-2:#fff;--line:#cbd5e1;--line-2:#cbd5e1;--surface-2:#fff;--surface-3:#f1f5f9;--inner:#fff;--inner-line:#cbd5e1;
  --ink:#0f172a;--ink-2:#0f172a;--mut:#334155;--mut-2:#475569;--link:#0f172a;--input:#fff;--input-line:#cbd5e1;--th:#f1f5f9;--track:#e2e8f0;
  --ok-ink:#065f46;--ok-bg:#fff;--ok-line:#cbd5e1;--bad-ink:#9f1239;--bad-bg:#fff;--bad-line:#cbd5e1;--warn-ink:#78350f;--warn-bg:#fff;--warn-line:#cbd5e1;--info-ink:#1e3a8a;--info-bg:#fff;--info-line:#cbd5e1;
  --t-red:#9f1239;--t-amber:#78350f;--t-blue:#1e3a8a;--t-green:#065f46;--t-gray:#334155;--sh:none;--sh-h:none}
 html,body{background:#fff!important;color:#0f172a!important;overflow:visible}
 .topbar,.side,.scrim,.navt,.qi-acts,.ql-tabs,.qa-mob,.hero-actions,.crumbs .i{display:none!important}
 .main{margin:0!important;padding:0!important}
 .page-header{border-bottom:2px solid #334155;padding-bottom:8px;margin-bottom:12px}
 .page-header h1.sr-only{position:static!important;width:auto!important;height:auto!important;clip:auto!important;margin:0!important}
 .qstat,.qlist,.qitem{box-shadow:none!important;background:#fff!important;border:1px solid #cbd5e1;border-radius:8px;break-inside:avoid}
 .qstat::before,.ql-head::before{display:none}
 .qstats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .pill,.tag,.bdg{background:#fff!important;border:1px solid #cbd5e1!important;color:#0f172a!important}
 .qs-ico{display:none}
 body.auth{background:#fff!important}
}
/* fixes after first screenshot pass */
.topbar .navbtn{position:static;inset:auto;min-height:0;padding:0;font-size:inherit}
.qstat,.qstat.qrow{align-items:stretch;padding-bottom:22px;border-bottom:1px solid var(--line)}
.qstat.qrow:last-child{border-bottom:1px solid var(--line)}
@media (max-width:760px){.hero-actions .btn{flex:0 1 auto}.hero-actions .qa-primary{flex:1 1 auto}}
.topbar .navbtn{transform:none;display:inline-flex;align-items:center;justify-content:center;gap:0;color:#e2e8f0;background:#1e293b;border-radius:14px;width:48px;height:48px;user-select:none}
html[data-theme="light"] .topbar .navbtn{background:#f1f5f9;color:#334155}
@media (min-width:1024px){.topbar .navbtn{display:none}}
.side .usercard{display:flex}
.side details.ng{border-top:0}
.side details.ng>summary{display:flex;justify-content:flex-start;padding:16px 16px 8px;color:var(--side-head);font-size:.9rem;font-weight:700;letter-spacing:0}
.side details.ng>summary:hover{color:var(--ink)}
.side details.ng>summary::after{content:"";font-size:0;color:inherit;margin-inline-start:0}
.side details.ng[open]>summary::after{content:""}
.side details.ng>summary em.bdg{background:var(--info-bg);color:var(--info-ink);border-color:var(--info-line)}
.ifield input{padding-right:52px;padding-left:18px}
.hero .hero-actions .btn.ghost,.hero .qa-list .btn.ghost{color:var(--ink)}
.usercard a.uc-btn{color:#e2e8f0}
html[data-theme="light"] .usercard a.uc-btn{color:#1e293b}
.qi-meta{flex-wrap:nowrap;align-items:flex-start}
.qi-meta>span{flex:0 1 auto;align-items:flex-start}
.qi-meta .i{margin-top:.25em}
.ql-tabs a span{display:block;font-weight:600;opacity:.9}
@media (max-width:760px){
 .ql-head p{font-size:.92rem}
 .ql-tabs{gap:8px}
 .ql-tabs a{padding:8px 6px;font-size:.9rem}
 .ql-tabs a.on{min-width:84px}
 .qi-meta{font-size:.88rem}
 .qi-meta>span+span::before{margin:0 6px}
}
/* AA: white text on the approve button needs ≥4.5:1 → #047857 (5.5:1) instead of #059669 (3.8:1) */
.btn.ok{background:#047857}.btn.ok:hover{background:#065f46}
.allclear .tick{background:#047857}
.qi-meta{flex-wrap:wrap;align-items:center;row-gap:2px}
.qi-meta>span{white-space:nowrap;overflow-wrap:normal;align-items:center}
.qi-meta .i{margin-top:0}
.qi-meta>span+span::before{content:none}
.qi-meta>span:not(:last-child)::after{content:"•";margin:0 9px;color:var(--mut-2)}

/* =====================================================================================================
   Phase 13 (final): executive page items 3/5/6/8/9/10/11/12, login «مرا به خاطر بسپار» / «فراموشی رمز»,
   man-hours form, monthly report settings. Uses the redesign tokens only (dark + light), no inline styles (CSP).
   ===================================================================================================== */
.printonly{display:none}
.xd-fdet{margin:0}
.xd-fdet>summary.xd-fsum{display:none}
.xd-urg{display:flex;align-items:flex-start;gap:14px}
.xd-urg .xd-abody{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}
.xd-urg .xd-abody b a{color:var(--ink);text-decoration:none}
.xd-urg .xd-abody b a:hover{text-decoration:underline}
.xd-ufacts{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.88rem;color:var(--ink-2)}
.xd-ufacts li{min-width:0;overflow-wrap:anywhere}
.xd-ufacts .neg b,.xd-ufacts li.neg{color:var(--bad-ink)}
.xd-fu{margin:0;flex:none;align-self:center}
.xd-fubtn{white-space:nowrap}
.xd-stdgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.xd-stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:18px 18px 16px;display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--ink)}
.xd-stat .xd-kpi-lb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--mut);font-size:.9rem}
.xd-stat>b{font-size:1.9rem;font-weight:900;color:var(--ink);line-height:1.35}
.xd-stat>b small{font-size:.9rem;font-weight:600;color:var(--mut)}
.xd-stat>b.xd-na{font-size:1.02rem;font-weight:800;color:var(--warn-ink)}
.xd-stat>b.xd-name{font-size:1.15rem;overflow-wrap:anywhere}
.xd-stat.xd-good{border-color:var(--ok-line)}
.xd-stat small{overflow-wrap:anywhere}
.xd-std,.xd-strengths{margin-bottom:26px}
.xtarget{stroke:#f59e0b;stroke-width:1.6;stroke-dasharray:6 4;fill:none}
.xtarget-l{fill:#f59e0b;font-size:11px;font-weight:700}
html[data-theme="light"] .xtarget{stroke:#b45309}html[data-theme="light"] .xtarget-l{fill:#92400e}
.xsev-unknown{fill:#94a3b8}.xsev-first_aid{fill:#fda4af}.xsev-medical{fill:#fb7185}.xsev-lost_time{fill:#e11d48}.xsev-serious{fill:#9f1239;stroke:#fecdd3;stroke-width:.6}
.xsw-unknown{background:#94a3b8}.xsw-first_aid{background:#fda4af}.xsw-medical{background:#fb7185}.xsw-lost_time{background:#e11d48}.xsw-serious{background:#9f1239}
.xd-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
/* login / forgot / reset */
.auth-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin:-6px 0 10px}
.authbox>.auth-row>label.auth-check,.auth-check{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:.95rem;font-weight:600;color:var(--ink-2);cursor:pointer}
.auth-check input{width:18px;height:18px;min-height:0;margin:0;accent-color:#2563eb;flex:none}
.auth-link{color:#93c5fd;font-size:.95rem;font-weight:700;text-decoration:none}
.auth-link:hover,.auth-link:focus-visible{text-decoration:underline}
html[data-theme="light"] .auth-link{color:#1d4ed8}
.auth-foot{text-align:center;margin:18px 0 0}
a.btn.auth-btn{display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none}
.authbox .note{line-height:1.9}
/* settings / project form */
.xd-testmail{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.mhgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:14px}
.mhgrid label{min-width:0}.mhgrid input{width:100%;min-width:0}
/* printed report (exec/report) */
.rp-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:8px 20px;border-bottom:2px solid var(--line-2);padding-bottom:10px;margin-bottom:14px}
.rp-brand{display:flex;flex-direction:column;gap:2px}.rp-brand span,.rp-meta{color:var(--mut)}
.rp-meta{display:flex;flex-direction:column;gap:2px;font-size:.92rem}
.rp-sign,.xd-sign{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:34px;break-inside:avoid}
.xd-sign.printonly,.xd-printhead.printonly{display:none}
.rp-sign>div,.xd-sign>div{border:1px solid var(--line-2);border-radius:12px;min-height:110px;padding:12px 14px;display:flex;flex-direction:column;justify-content:space-between}
.rp-sign span,.xd-sign span{font-weight:800}.rp-sign i,.xd-sign i{font-style:normal;color:var(--mut);font-size:.85rem;border-top:1px dashed var(--line-2);padding-top:6px}
@media(max-width:1000px){.xd-stdgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 /* item 11: filters fold into one «فیلتر» button; the urgent box comes right after the overall status card */
 .xd-page{display:flex;flex-direction:column;min-width:0}
 .xd-page>*{order:6;min-width:0}
 .xd-page>.xd-monthhead{order:1}
 .xd-page>.xd-fdet{order:2}
 .xd-page>.xd-overview{display:contents}
 .xd-page>.xd-overview>.xd-hero{order:3;margin-bottom:16px}
 .xd-page>.xd-urgent{order:4}
 .xd-page>.xd-overview>.xd-kpis{order:5;margin-bottom:20px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
 .xd-fdet>summary.xd-fsum{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:13px 16px;font-weight:800;color:var(--ink);min-height:48px;margin-bottom:12px}
 .xd-fdet>summary.xd-fsum::-webkit-details-marker{display:none}
 .xd-fdet>summary.xd-fsum::after{content:"▾";color:var(--mut)}
 .xd-fdet[open]>summary.xd-fsum::after{content:"▴"}
 .xd-fdet>summary.xd-fsum small{font-weight:600;color:var(--mut);font-size:.8rem;flex:1 1 auto;min-width:0;text-align:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .xd-fdet:not([open]){margin-bottom:8px}
 .xd-urg{flex-direction:column;gap:10px}.xd-fu,.xd-fubtn{width:100%;align-self:stretch}
 .xd-stdgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .xd-stat{padding:14px 12px}.xd-stat>b{font-size:1.5rem}
 .mhgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .auth-row{flex-direction:row}
}
@media print{
 .printonly{display:block!important}
 .xd-fdet,.xd-fu,.xd-fubtn,.qhelp,.xd-fsum,.xd-mtabs,.xd-testmail{display:none!important}
 details::details-content{content-visibility:visible;display:contents}
 details>summary{list-style:none}
 .xd-printhead{display:flex!important;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:6px 20px;border-bottom:2px solid #0f172a;padding-bottom:8px;margin-bottom:12px;color:#0f172a}
 .xd-sign,.rp-sign{display:grid!important}
 .rp-sign>div,.xd-sign>div{border-color:#64748b}
 .rp-head{border-bottom-color:#0f172a}.rp-brand span,.rp-meta,.rp-sign i,.xd-sign i{color:#334155}
 .xd-stat{background:#fff!important;border-color:#cbd5e1!important;box-shadow:none!important;color:#0f172a!important;break-inside:avoid}
 .xd-stat>b,.xd-stat .xd-kpi-lb,.xd-ufacts{color:#0f172a!important}
 .xd-stdgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* phase 14: CAPA escalation level badge + automatic draft («پیش‌نویس خودکار») */
.tag.esc-badge{font-weight:600;white-space:nowrap}
.tag.esc-1{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}
.tag.esc-2{background:var(--bad-bg);color:var(--bad-ink);border-color:var(--bad-line)}
.tag.esc-3{background:var(--bad-ink);color:#fff;border-color:var(--bad-ink)}
.tag.auto-draft{background:var(--info-bg);color:var(--info-ink);border-color:var(--info-line);border-style:dashed}
.note.auto-draft-note{border-inline-start:4px dashed var(--info-line)}
@media print{.tag.esc-3{background:#fff;color:#000;border-color:#000}}

/* phase 14 (chunk B): expiries («انقضاها») — red = expired, amber = warn1/warn2, green = valid; theme variables ⇒ both themes */
.exp-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
.exp-chip{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;border-inline-start-width:5px}
.exp-chip b{font-size:1.4rem;line-height:1.2}
.exp-chip span{font-size:.82rem;color:var(--mut);overflow-wrap:anywhere}
.exp-chip.exp-red{border-color:var(--bad-line);border-inline-start-color:var(--bad-ink)}
.exp-chip.exp-red b{color:var(--bad-ink)}
.exp-chip.exp-amber{border-color:var(--warn-line);border-inline-start-color:var(--warn-ink)}
.exp-chip.exp-amber b{color:var(--warn-ink)}
.exp-chip.exp-green{border-color:var(--ok-line);border-inline-start-color:var(--ok-ink)}
.exp-chip.exp-green b{color:var(--ok-ink)}
.exp-chip:hover{box-shadow:var(--sh)}
tr.exp-row>td:first-child{border-inline-start:4px solid transparent}
tr.exp-row.exp-red{background:var(--bad-bg)}
tr.exp-row.exp-red>td:first-child{border-inline-start-color:var(--bad-ink)}
tr.exp-row.exp-amber{background:var(--warn-bg)}
tr.exp-row.exp-amber>td:first-child{border-inline-start-color:var(--warn-ink)}
tr.exp-row.exp-green>td:first-child{border-inline-start-color:var(--ok-ink)}
.exp-del{display:inline-block;margin-inline-start:8px}
.exp-del>summary{cursor:pointer;color:var(--bad-ink);list-style:none;display:inline}
.exp-del>summary::-webkit-details-marker{display:none}
.exp-del[open]>form{margin-top:6px}
.exp-filter select{min-width:0;max-width:100%}
/* phase 14 (chunk B): recurring inspections — «بازرسی‌های من» queue and checklist form */
.itask-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.itask{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;border-inline-start-width:5px;background:var(--card);min-width:0}
.itask-due{border-inline-start-color:var(--info-ink)}
.itask-overdue{background:var(--bad-bg);border-color:var(--bad-line);border-inline-start-color:var(--bad-ink)}
.itask-main{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.itask-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ichk{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;counter-reset:ichk}
.ichk-item{counter-increment:ichk;min-width:0}
.ichk-item fieldset{margin:0;padding:10px 12px;min-width:0}
.ichk-item legend{overflow-wrap:anywhere;padding:0 6px}
.ichk-item legend::before{content:counter(ichk) ". ";color:var(--mut)}
.ichk-opts{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}
.ichk-opt{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 12px;border:1px solid var(--line-2);border-radius:999px;cursor:pointer;background:var(--surface-2)}
.ichk-opt input{margin:0;width:auto;min-height:0}
.ichk-ok:has(input:checked){background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}
.ichk-fail:has(input:checked){background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad-ink)}
.ichk-na:has(input:checked){background:var(--surface-3);border-color:var(--line-2)}
.ichk-note{width:100%;max-width:100%;box-sizing:border-box}
.ichk-read .ichk-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:12px}
.ichk-read .ichk-item::before{content:counter(ichk) ".";color:var(--mut)}
.ichk-read .ichk-r-fail{background:var(--bad-bg);border-color:var(--bad-line)}
.ichk-label{flex:1 1 200px;min-width:0;overflow-wrap:anywhere}
.ichk-n{flex-basis:100%}
@media(max-width:640px){
 .exp-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .itask{flex-direction:column;align-items:stretch}
 .itask-meta .btn{flex:1 1 100%;justify-content:center}
}
@media print{tr.exp-row.exp-red,tr.exp-row.exp-amber,.itask-overdue{background:#fff}.exp-del{display:none}}

/* phase 14 (chunk C): smart approval marker «تأیید خودکار سیستم» + reasons in the review queue; monthly report archive */
.tag.aa-badge{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line);border-style:dashed;font-weight:600;white-space:nowrap;margin-inline-start:6px}
.aa-note{margin-top:6px;font-size:.82rem;line-height:1.6;color:var(--warn-ink);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:10px;padding:4px 8px;max-width:420px;overflow-wrap:anywhere;white-space:normal}
.note.aa-review-note{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line);overflow-wrap:anywhere}
.arch-build{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}
.arch-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.arch-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--line);border-inline-start:5px solid var(--info-ink);border-radius:16px;background:var(--card);min-width:0}
.arch-main{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.arch-stamp{margin:0 0 12px;padding:6px 10px;border:1px dashed var(--line-2);border-radius:10px;color:var(--mut);font-size:.85rem}
.arch-doc{overflow-x:hidden}
@media(max-width:640px){.arch-item{flex-direction:column;align-items:stretch}.arch-item .btn{justify-content:center}}
@media print{.tag.aa-badge{background:#fff;color:#000;border-color:#000}.arch-stamp{color:#334155;border-color:#94a3b8}}

/* phase 14 (chunk D): morning brief «خلاصهٔ امروز» on the dashboard + training suggestions «پیشنهادهای آموزشی» */
.card.brief{border-inline-start:5px solid var(--info-ink);margin-bottom:16px}
.brief-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin-bottom:10px}
.brief-head .sec{margin:0}
.brief-zero{margin:0;padding:10px 12px;border-radius:12px;background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-line);font-weight:600}
.brief-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.brief-item{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-inline-start-width:5px;border-radius:14px;background:var(--surface-2);color:var(--ink);text-decoration:none}
.brief-item b{font-size:1.35rem;line-height:1.1;min-width:2ch;text-align:center}
.brief-item span{min-width:0;overflow-wrap:anywhere;font-size:.88rem}
.brief-item:hover{box-shadow:var(--sh)}
.brief-item.t-red{border-color:var(--bad-line);border-inline-start-color:var(--bad-ink)}
.brief-item.t-red b{color:var(--bad-ink)}
.brief-item.t-amber{border-color:var(--warn-line);border-inline-start-color:var(--warn-ink)}
.brief-item.t-amber b{color:var(--warn-ink)}
.brief-item.t-blue{border-inline-start-color:var(--info-ink)}
.brief-item.t-blue b{color:var(--info-ink)}
.tsug-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tsug-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--line);border-inline-start:5px solid var(--info-ink);border-radius:16px;background:var(--card);min-width:0}
.tsug-item.tsug-pending{border-inline-start-color:var(--warn-ink)}
.tsug-item.tsug-accepted{border-inline-start-color:var(--ok-ink)}
.tsug-item.tsug-dismissed{opacity:.85}
.tsug-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 260px;overflow-wrap:anywhere}
.tsug-refs a{margin-inline-end:4px}
.tsug-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.tsug-filter select{min-width:0;max-width:100%}
@media(max-width:640px){.brief-list{grid-template-columns:minmax(0,1fr)}.tsug-item{flex-direction:column;align-items:stretch}.tsug-main{flex:0 0 auto}.tsug-act form,.tsug-act .btn{width:100%;justify-content:center}}
@media print{.card.brief{display:none}}

/* ===================== phase 15 ===================== */
/* exec one-screen summary «اوضاع خوب است؟» */
.xd-one{display:flex;flex-direction:column;gap:12px;margin:0 0 16px}
.xd-one-status{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:14px 16px;border-radius:18px;border:1px solid var(--line);font-size:.95rem}
.xd-one-status .xd-one-lbl{font-size:1.35rem;line-height:1.3}
.xd-one-status .neg{color:inherit;text-decoration:underline}
.xd-one-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.xd-one-n{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px 14px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:var(--sh)}
.xd-one-n span{font-size:.82rem;color:var(--mut)}
.xd-one-n b{font-size:1.45rem;line-height:1.25;overflow-wrap:anywhere}
.xd-one-n small{font-size:.78rem;color:var(--mut);overflow-wrap:anywhere}
.xd-one-n.is-bad{border-color:var(--bad-line)}
.xd-one-n.is-bad b{color:var(--bad-ink)}
.xd-one-dec{padding:12px 14px;border-radius:16px;background:var(--card);border:1px solid var(--line)}
.xd-one-dec .xd-h{margin:0 0 6px;font-size:1rem}
.xd-declist{margin:0;padding-inline-start:1.3rem;display:flex;flex-direction:column;gap:8px}
.xd-dec{min-width:0;overflow-wrap:anywhere}
.xd-dec .xd-dec-t{display:block;font-weight:600}
.xd-dec .xd-fu{display:inline-block;margin-top:4px}
.xd-dec-all_red .xd-dec-t,.xd-dec-severe .xd-dec-t{color:var(--bad-ink)}
.xd-okline{margin:0;color:var(--ok-ink);font-weight:600}
.xd-allitems{display:inline-block;margin-top:8px}
.xd-alldet{margin-top:6px}
.xd-alldet>summary.xd-allsum{cursor:pointer;list-style:none;padding:12px 16px;border-radius:14px;border:1px dashed var(--line);background:var(--card);font-weight:700;color:var(--link)}
.xd-alldet>summary.xd-allsum::-webkit-details-marker{display:none}
.xd-alldet>summary.xd-allsum::after{content:" ▾";color:var(--mut)}
.xd-alldet[open]>summary.xd-allsum{margin-bottom:14px}
.xd-alldet[open]>summary.xd-allsum::after{content:" ▴"}
.xd-why,.pl-why{display:block;font-size:.8rem;color:var(--warn-ink);overflow-wrap:anywhere;margin-top:2px}
.pl-why{flex-basis:100%}
.xd-src{display:block;font-size:.78rem;color:var(--mut)}
.xd-rolling{margin:.6rem 0;padding:8px 12px;border-radius:12px;background:var(--info-bg);color:var(--info-ink);overflow-wrap:anywhere}
.xd-allred{margin:6px 0}
@media(max-width:640px){
  .xd-one-nums{grid-template-columns:minmax(0,1fr)}
  .xd-one-n{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 12px}
  .xd-one-n span{flex:1 1 100%}
  .xd-one-n b{font-size:1.25rem}
  .xd-one-status .xd-one-lbl{font-size:1.15rem}
}
@media print{.xd-alldet>summary{display:none}.xd-one-n,.xd-one-dec{box-shadow:none}}

/* top-bar offline queue badge + toasts */
.tb-sync{position:relative;color:var(--warn-ink)}
.tb-sync b{font-size:.8rem;margin-inline-start:2px}
.tb-sync.has-err{color:var(--bad-ink)}
.off-toast{position:fixed;inset-inline:12px;bottom:16px;z-index:9999;padding:12px 14px;border-radius:14px;background:var(--info-bg);color:var(--info-ink);border:1px solid var(--info-line);box-shadow:var(--sh-h);max-width:560px;margin-inline:auto}
.off-toast.bad{background:var(--bad-bg);color:var(--bad-ink);border-color:var(--bad-line)}
.off-list p{overflow-wrap:anywhere}
.offline-page .authbox{max-width:520px}
.offline-page .off-ico{display:block;margin:0 auto 8px;border-radius:18px}
@media print{.tb-sync,.off-toast{display:none!important}}

/* generic */
.tablewrap{overflow-x:auto;max-width:100%}
.row-bad td{background:var(--bad-bg)}
.nlog td{vertical-align:top;overflow-wrap:anywhere}
.fs-alert{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:10px 0}
.fs-alert legend{padding:0 6px;font-weight:700}
.mh-src{display:block;font-size:.75rem;color:var(--mut)}
.mh-src.is-auto{color:var(--ok-ink)}
.mh-src.is-manual{color:var(--warn-ink)}
.ev-flag.ev-old,.ev-flag.ev-no_exif{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}
.ev-meta{display:block;font-size:.72rem;overflow-wrap:anywhere}
.inc-cost-total b{font-size:1.4rem}
.inc-cost-parts{margin:0;padding-inline-start:1.2rem}

/* permits */
.permit-list,.risk-list,.spot-list,.ctr-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.permit-card,.risk-card{display:block;color:var(--ink);text-decoration:none;border-inline-start:5px solid var(--info-ink);min-width:0;overflow-wrap:anywhere}
.permit-card:hover,.risk-card:hover{box-shadow:var(--sh-h)}
.permit-card.is-overdue{border-inline-start-color:var(--bad-ink);border-color:var(--bad-line)}
.permit-act{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.permit-act label{flex:1 1 240px;margin:0}
.hist{margin:0;padding-inline-start:1.2rem}
.hist li{overflow-wrap:anywhere}

/* risk / JSA */
.risk-card.risk-l-high{border-inline-start-color:var(--bad-ink)}
.risk-card.risk-l-medium{border-inline-start-color:var(--warn-ink)}
.risk-card.risk-l-low{border-inline-start-color:var(--ok-ink)}
.tag.risk-high{background:var(--bad-bg);color:var(--bad-ink);border:1px solid var(--bad-line)}
.tag.risk-medium{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}
.tag.risk-low{background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-line)}
.risk-sum{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:12px}
.risk-ls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:10px 0}
.risk-ls legend{padding:0 6px;font-weight:700}
.jsa-t td{vertical-align:top;overflow-wrap:anywhere}

/* contractors */
.ctr-card{border-inline-start:5px solid var(--ok-ink);min-width:0;overflow-wrap:anywhere}
.ctr-card.l-bad{border-inline-start-color:var(--bad-ink)}
.ctr-card.l-warn2{border-inline-start-color:var(--warn-ink)}
.ctr-rank{display:inline-grid;place-items:center;min-width:1.8em;height:1.8em;border-radius:50%;background:var(--inner);border:1px solid var(--inner-line);margin-inline-end:4px;font-size:.85rem}
.ctr-facts{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px;font-size:.88rem}
.ctr-facts .neg{color:var(--bad-ink)}

/* random audit */
.spot{border-inline-start:5px solid var(--warn-ink);min-width:0;overflow-wrap:anywhere}
.spot.spot-ok{border-inline-start-color:var(--ok-ink)}
.spot.spot-problem{border-inline-start-color:var(--bad-ink)}
.spot-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.spot-form input{flex:1 1 200px;min-width:0}

/* 2FA + installer */
.tfa-secret{display:inline-block;font-size:1.1rem;letter-spacing:.06em;padding:6px 10px;border-radius:10px;background:var(--inner);border:1px solid var(--inner-line);overflow-wrap:anywhere;margin-top:4px}
.tfa-steps li{margin-bottom:8px;overflow-wrap:anywhere}
.tfa-qr-wrap{margin:8px 0 4px;display:flex;justify-content:flex-start}
.tfa-qr{display:block;width:200px;max-width:100%;height:auto;background:#fff;padding:6px;border-radius:12px;border:1px solid var(--inner-line)}
.tfa-codes ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin:8px 0 0;padding:0;list-style:none}
.install .inst-checks{list-style:none;padding:0;margin:0 0 12px}
.install .inst-checks li.ok{color:var(--ok-ink)}
.install .inst-checks li.bad{color:var(--bad-ink);font-weight:700}
.install .inst-checks li.warn{color:var(--warn-ink)}
.authbox.install{max-width:560px}
@media(max-width:640px){.permit-list,.risk-list,.spot-list,.ctr-cards{grid-template-columns:minmax(0,1fr)}.risk-ls{grid-template-columns:minmax(0,1fr)}.tfa-codes ul{grid-template-columns:minmax(0,1fr)}.spot-form .btn{flex:1 1 40%}}
@media print{.spot-form,.permit-act,.tb-sync{display:none}}

/* phase 15: messenger link code (Bale / Rubika / Telegram) */
.link-code { font-size: 1.35em; letter-spacing: .18em; font-weight: 700; padding: .1em .4em; }
.link-status { white-space: nowrap; }

/* ---------- فاز ۱۶: نور ملایم متحرک دور کارت‌های گزارش مدیرانه + نماد وضعیت ----------
   رنگ نور از وضعیت همان کارت: سبز = خوب، کهربایی = نیازمند پیگیری، قرمز = بد، خاکستری = داده نیست.
   فقط CSS (بدون JS / style درون‌خطی؛ سازگار با CSP). در «کاهش حرکت» و چاپ، نور ثابت و بی‌حرکت است. */
@property --xd-a{syntax:'<angle>';inherits:false;initial-value:0deg}
.xd-glow{--glow:148,163,184;position:relative;isolation:isolate;border-color:rgba(var(--glow),.28)!important;box-shadow:0 0 0 1px rgba(var(--glow),.05),0 0 16px -4px rgba(var(--glow),.30),var(--sh,0 4px 16px rgba(15,31,58,.05))}
.xd-glow.glow-good{--glow:16,185,129}
.xd-glow.glow-warn{--glow:245,158,11}
.xd-glow.glow-bad{--glow:239,68,68}
.xd-glow.glow-dim{--glow:148,163,184}
.xd-glow::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.6px;pointer-events:none;z-index:1;
  background:conic-gradient(from var(--xd-a),rgba(var(--glow),0) 0deg,rgba(var(--glow),0) 230deg,rgba(var(--glow),.55) 300deg,rgba(var(--glow),.95) 330deg,rgba(var(--glow),.55) 345deg,rgba(var(--glow),0) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:xd-orbit 7s linear infinite}
.xd-glow::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;z-index:-1;box-shadow:0 0 22px -6px rgba(var(--glow),.55);opacity:.55;animation:xd-breathe 4.5s ease-in-out infinite}
.xd-glow.glow-bad::before{animation-duration:5.5s}
.xd-glow.glow-dim::before{opacity:.45;animation-duration:10s}
.xd-glow.glow-dim::after{display:none}
.xd-one-dec.xd-glow::before,.xd-one-status.xd-glow::before{animation-duration:9s}
@keyframes xd-orbit{to{--xd-a:360deg}}
@keyframes xd-breathe{0%,100%{opacity:.35}50%{opacity:.8}}
html[data-theme="dark"] .xd-glow{box-shadow:0 0 0 1px rgba(var(--glow),.10),0 0 20px -4px rgba(var(--glow),.40)}
html[data-theme="dark"] .xd-glow::after{opacity:.7}
/* نمادها */
.xd-ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.xd-one-ic{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:10px;margin-inline-end:8px;font-style:normal;flex:none;vertical-align:middle}
.xd-one-ic .xd-ic{width:18px;height:18px}
.xd-one-ic.st-good{background:rgba(16,185,129,.14);color:#059669}
.xd-one-ic.st-warn{background:rgba(245,158,11,.16);color:#b45309}
.xd-one-ic.st-bad{background:rgba(239,68,68,.14);color:#dc2626}
.xd-one-ic.st-dim{background:rgba(148,163,184,.16);color:#64748b}
html[data-theme="dark"] .xd-one-ic.st-good{color:#34d399}html[data-theme="dark"] .xd-one-ic.st-warn{color:#fbbf24}html[data-theme="dark"] .xd-one-ic.st-bad{color:#f87171}html[data-theme="dark"] .xd-one-ic.st-dim{color:#94a3b8}
.xd-one-status{align-items:center}
.xd-one-status>.xd-one-ic{width:38px;height:38px;border-radius:12px}.xd-one-status>.xd-one-ic .xd-ic{width:22px;height:22px}
.xd-one-h{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.xd-one-n .xd-one-h .xd-one-ic{width:26px;height:26px;border-radius:8px}.xd-one-n .xd-one-h .xd-one-ic .xd-ic{width:16px;height:16px}
.xd-one-dec .xd-h{display:flex;align-items:center}
.xd-lc{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.xd-lc .xd-light{width:9px;height:9px}
.xd-trend{display:inline-flex;font-style:normal;vertical-align:middle;margin-inline-start:4px}.xd-trend .xd-ic{width:20px;height:20px}
.xd-trend.t-good{color:#059669}.xd-trend.t-warn{color:#d97706}.xd-trend.t-bad{color:#dc2626}
.xd-dec-ic{display:inline-flex;font-style:normal;margin-inline-end:6px;vertical-align:-.15em}
.xd-dec-ic.k-severe,.xd-dec-ic.k-all_red{color:#dc2626}.xd-dec-ic.k-capa{color:#d97706}.xd-dec-ic.k-project{color:#2563eb}
.xd-okline .xd-ic{color:#059669}
.xd-pc-top{display:flex;align-items:center;gap:6px}.xd-pc-top .xd-one-ic{width:26px;height:26px;border-radius:8px;margin:0}.xd-pc-top .xd-one-ic .xd-ic{width:16px;height:16px}
@media(prefers-reduced-motion:reduce){.xd-glow::before,.xd-glow::after{animation:none}.xd-glow::before{--xd-a:300deg}}
@media print{.xd-glow::before,.xd-glow::after{display:none}.xd-glow{box-shadow:none!important}}
.xd-one-n .xd-one-h .qhelp,.xd-one-n .xd-one-h .qhelp *{flex:none!important}
@media(max-width:640px){.xd-one-n .xd-one-h{flex:1 1 100%}}
