:root{--bg:#f7f7f7;--surface:#fff;--s2:#f1f1f1;--s3:#e9e9e9;--bd:#e3e3e3;--hl-row:#e9edf5;--hl-col:#234ca812;--hl-sel:#dbe4f5;--bd2:#cdcdcd;--tx:#242424;--tx2:#555;--tx3:#8c8c8c;--pri:#ef394e;--pris:#fdecee;--acc:#e39a00;--accs:#fbf0da;--ok:#1e8e5a;--oks:#e4f3eb;--warn:#b26a00;--warns:#faeedc;--dan:#9b1c31;--toast-dan:#9b1c31;--toast-ok:#1e8e5a;--dans:#fae8ec;--info:#2b6cb0;--infos:#e6eef7;--chart-1:#2f6f68;--sh:0 1px 2px #0000000a, 0 10px 26px -14px #0003;--sh-lg:0 24px 60px -18px #0000004d;--l0:#ededed;--l1:#a8dfba;--l2:#6bcb96;--l3:#2fae70;--l4:#1a784b;--l5:#0c5031;--l0-ink:#767676;--l1-ink:#10201c;--l2-ink:#10201c;--l3-ink:#10201c;--l4-ink:#fff;--l5-ink:#fff;--ring-off:#dcdcdc;--ring-far:#9b1c31;--ring-mid:#e3a008;--ring-near:#2b6cb0;--ring-met:#16a34a;--ring-over:#fff;--ring-over-edge:#9a9aa2;--sidebar-w:252px;--topbar-h:58px;--fw-normal:400;--fw-medium:500;--fw-bold:700;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:19px;--fs-2xl:24px;--fs-3xl:30px;--sp-0:2px;--sp-1:4px;--sp-2:6px;--sp-3:8px;--sp-4:12px;--sp-5:16px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--r-xs:4px;--r-sm:7px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-full:999px;--ctl-sm:28px;--ctl-md:32px;--ctl-lg:36px}[data-theme=dark]{--bg:#131315;--surface:#1c1c1f;--s2:#232327;--s3:#2b2b30;--bd:#32323a;--hl-row:#2b303a;--hl-col:#8cafff1f;--hl-sel:#33405a;--bd2:#43434c;--tx:#ededee;--tx2:#a6a6ad;--tx3:#76767e;--pri:#ff6172;--pris:#3b141a;--acc:#f0b33c;--accs:#322610;--ok:#3bb585;--oks:#102c22;--warn:#d89526;--warns:#2e2410;--dan:#f4695f;--toast-dan:#b52639;--toast-ok:#17805a;--dans:#341a17;--info:#5b9be0;--infos:#12212f;--chart-1:#4fb3a6;--sh:0 1px 2px #00000080, 0 10px 26px -14px #000c;--sh-lg:0 34px 80px -24px #000000bf;--l0:#26262b;--l1:#234835;--l2:#2d6a48;--l3:#3d9c66;--l4:#58c98c;--l5:#8fe9b4;--l0-ink:#76767e;--l1-ink:#fff;--l2-ink:#fff;--l3-ink:#10201c;--l4-ink:#10201c;--l5-ink:#10201c;--ring-off:#3a3a42;--ring-far:#f4695f;--ring-mid:#f0b33c;--ring-near:#5b9be0;--ring-met:#4ade80;--ring-over:#fff;--ring-over-edge:#5b5b66}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;font-family:Estedad,Vazirmatn,system-ui,sans-serif;font-size:var(--fs-md);direction:rtl}a{color:var(--pri);text-decoration:none}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--info);outline-offset:2px;border-radius:var(--r-sm)}.cell-btn:focus-visible{outline-offset:-2px;border-radius:var(--r-xs)}a:hover{color:var(--acc)}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:var(--r-md);background-clip:content-box;border:3px solid #0000}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--surface);border-inline-start:1px solid var(--bd);flex-direction:column;flex:none;padding:14px 12px;transition:width .16s;display:flex;overflow-y:auto}.brand{align-items:flex-start;gap:var(--sp-2);border-bottom:1px solid var(--bd);flex-direction:column;margin-bottom:8px;padding:6px 8px 14px;display:flex}.brand-sub{font-size:var(--fs-xs);color:var(--tx3);font-weight:var(--fw-medium)}.brand-mark{border-radius:var(--r-md);background:var(--pri);color:#fff;flex:none;place-items:center;width:34px;height:34px;display:grid}.brand-text h1{font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:-.3px;margin:0}.brand-text span{font-size:var(--fs-xs);color:var(--tx3);font-weight:var(--fw-medium)}.nav{gap:var(--sp-0);flex-direction:column;display:flex}.nav-group{flex-direction:column;display:flex}.app-shell.sidebar-collapsed .nav-group+.nav-group{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--bd)}.nav-group:first-child .nav-label{padding-top:var(--sp-2)}.nav-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--tx3);padding:14px 11px 5px}.nav-item{align-items:center;gap:var(--sp-4);border-radius:var(--r-md);cursor:pointer;width:100%;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--tx2);text-align:start;background:0 0;border:none;padding:9px 11px;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--s2);color:var(--tx)}.nav-item.active{background:var(--pris);color:var(--pri);font-weight:var(--fw-bold)}.nav-item svg{flex:none}.nav-item span,.nav-spacer{flex:1}.user-card{border:1px solid var(--bd);border-radius:var(--r-lg);align-items:center;gap:var(--sp-4);padding:11px;display:flex}.avatar{background:var(--pris);width:33px;height:33px;color:var(--pri);font-size:var(--fs-md);font-weight:var(--fw-bold);border-radius:50%;flex:none;place-items:center;display:grid}.user-card .who{flex:1;min-width:0}.user-card .who b{font-size:var(--fs-md);font-weight:var(--fw-bold);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.user-card .who span{font-size:var(--fs-xs);color:var(--tx3)}.icon-btn{color:var(--tx3);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;place-items:center;padding:4px;display:grid}.icon-btn:hover{color:var(--dan)}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}.topbar{z-index:20;height:var(--topbar-h);align-items:center;gap:var(--sp-5);background:var(--bg);border-bottom:1px solid var(--bd);flex:none;padding:0 22px;display:flex;position:sticky;top:0}.crumbs{align-items:center;gap:var(--sp-2);font-size:var(--fs-md);color:var(--tx3);min-width:0;display:flex}.crumbs b{color:var(--tx);font-weight:var(--fw-bold)}.topbar-spacer{flex:1}.search{width:250px;position:relative}.search input{width:100%;height:var(--ctl-lg);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--surface);color:var(--tx);font-size:var(--fs-md);outline:none;padding:0 34px 0 12px}.search input:focus{border-color:var(--pri)}.search svg{inset-inline-start:11px;color:var(--tx3);position:absolute;top:10px}.square-btn{width:36px;height:var(--ctl-lg);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--surface);color:var(--tx2);cursor:pointer;flex:none;place-items:center;display:grid;position:relative}.square-btn:hover{border-color:var(--bd2);color:var(--tx)}.square-btn .dot{top:6px;background:var(--dan);border-radius:50%;width:7px;height:7px;position:absolute;inset-inline-end:7px}.content{flex:1;padding:22px;animation:.25s fadeUp}.page-head{align-items:flex-end;gap:var(--sp-5);flex-wrap:wrap;display:flex}.page-head .titles{flex:1;min-width:240px}.page-head h2{font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.5px;margin:0}.page-head p{font-size:var(--fs-md);color:var(--tx2);margin:5px 0 0}.btn{border:1px solid var(--bd);background:var(--surface);color:var(--tx);font-size:var(--fs-md);font-weight:var(--fw-bold);height:var(--ctl-lg);border-radius:var(--r-md);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);white-space:nowrap;padding:0 14px;transition:all .13s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--bd2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--pri);color:var(--pri-ink,#fff);border-color:var(--pri)}.btn.primary:hover:not(:disabled){filter:brightness(1.12)}.btn.accent{background:var(--acc);color:#241a02;border-color:var(--acc)}.btn.danger{color:var(--dan)}.btn.danger:hover:not(:disabled){background:var(--dans);border-color:var(--dan)}.btn.ghost{color:var(--tx2);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--s2);color:var(--tx)}.btn.sm{height:var(--ctl-sm);font-size:var(--fs-sm);border-radius:var(--r-md);padding:0 11px}.btn.icon{width:30px;height:var(--ctl-sm);border-radius:var(--r-md);padding:0}.chip{border:1px solid var(--bd);background:var(--surface);color:var(--tx2);font-size:var(--fs-sm);font-weight:var(--fw-bold);height:var(--ctl-md);border-radius:var(--r-xl);cursor:pointer;align-items:center;gap:var(--sp-2);white-space:nowrap;padding:0 13px;transition:all .13s;display:inline-flex}.chip:hover{border-color:var(--bd2);color:var(--tx)}.chip.active{background:var(--pris);color:var(--pri);border-color:#0000}.field{gap:var(--sp-2);flex-direction:column;display:flex}.field>label{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx2)}.input,select.input{border:1px solid var(--bd);background:var(--surface);border-radius:var(--r-md);height:var(--ctl-lg);font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--tx);outline:none;width:100%;padding:0 12px;transition:border-color .13s}.input:focus{border-color:var(--pri)}.input::placeholder{color:var(--tx3);font-weight:var(--fw-medium)}.checkbox-row{align-items:center;gap:var(--sp-3);font-size:var(--fs-md);font-weight:var(--fw-medium);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.checkbox-row input{width:16px;height:16px;accent-color:var(--pri);cursor:pointer}.field-error{font-size:var(--fs-sm);color:var(--dan);font-weight:var(--fw-medium)}.card{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden}.card-head{justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;padding:16px 18px 0;display:flex}.card-head h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0}.card-head .hint{font-size:var(--fs-sm);color:var(--tx3);margin-top:3px}.card-body{padding:18px}.card-body.flush{margin-top:14px;padding:0}.card-head+.card-body{padding-top:14px}.kpis{gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.kpi{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);box-shadow:var(--sh);padding:16px}.kpi-top{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.kpi-top .lbl{font-size:var(--fs-md);color:var(--tx2);font-weight:var(--fw-medium)}.kpi-chip{border-radius:var(--r-md);flex:none;place-items:center;width:28px;height:28px;display:grid}.kpi .num{font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.8px;margin-top:12px;line-height:1.2}.kpi .delta{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--tx3);margin-top:6px}.kpi .bar{border-radius:var(--r-full);background:var(--s3);height:5px;margin-top:11px;overflow:hidden}.kpi .bar>span{border-radius:var(--r-full);background:var(--pri);height:100%;transition:width .45s;display:block}.badge{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-bold);border-radius:var(--r-xl);background:var(--s2);color:var(--tx2);white-space:nowrap;padding:3px 9px;display:inline-flex}.badge.success{background:var(--oks);color:var(--ok)}.badge.warn{background:var(--warns);color:var(--warn)}.badge.danger{background:var(--dans);color:var(--dan)}.badge.info{background:var(--infos);color:var(--info)}.badge.accent{background:var(--accs);color:var(--acc)}.badge .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.legend{gap:var(--sp-4) var(--sp-5);flex-wrap:wrap;align-items:center;display:flex}.legend-item{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--tx2);display:flex}.swatch{border-radius:var(--r-xs);flex:none;width:9px;height:9px}.legend-sep{background:var(--bd);align-self:stretch;width:1px}.legend-item.repair .swatch{border-radius:var(--r-xs);background:var(--surface);border:2px solid var(--pri);width:15px;height:15px;position:relative}.legend-item.repair .swatch:after{content:"🔧";place-items:center;font-size:8px;display:grid;position:absolute;inset:0}.matrix-scroll{flex:1;max-width:100%;min-height:0;overflow:auto}.matrix-hl-host{width:max-content;min-width:100%;position:relative}.hl-col{z-index:1;background:var(--hl-col);pointer-events:none;opacity:0;height:100%;transition:opacity .1s;position:absolute;top:0;left:0}.matrix-hl-host.hl-on .hl-col{opacity:1}table.matrix{border-collapse:separate;border-spacing:0;min-width:100%}table.matrix th,table.matrix td{border-bottom:1px solid var(--bd);border-inline-start:1px solid var(--bd)}table.matrix th.corner,table.matrix td.opname{background:var(--surface);z-index:2;position:sticky;inset-inline-start:0}table.matrix th.corner{z-index:4;background:var(--s2);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx2);text-align:start;padding:12px 16px}table.matrix thead th{background:var(--s2);z-index:1;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx2);vertical-align:bottom;min-width:52px;max-width:52px;padding:10px 4px;position:sticky;top:0}table.matrix thead th .stname{writing-mode:vertical-rl;max-height:122px;padding:4px 0;line-height:1.3;display:inline-block;transform:rotate(180deg)}table.matrix thead th.critical .stname{color:var(--dan)}table.matrix thead th .st-meta{font-size:var(--fs-2xs);color:var(--tx3);font-weight:var(--fw-bold);margin-top:5px;display:block}td.opname{font-size:var(--fs-md);font-weight:var(--fw-bold);white-space:nowrap;text-align:start;min-width:150px;padding:7px 14px}table.matrix.compact thead th{min-width:36px;max-width:36px;font-size:var(--fs-xs);padding:8px 2px}table.matrix.compact thead th .stname{max-height:92px;line-height:1.2}table.matrix.compact td.cell{width:36px;height:32px}table.matrix.compact td.opname{font-size:var(--fs-sm);min-width:0;max-width:132px;padding:4px 8px}table.matrix.compact .photo-edit{align-items:center;gap:var(--sp-3);display:flex}.photo-actions{align-items:center;gap:var(--sp-2);display:flex}.photo-actions label.btn{cursor:pointer;margin:0}.rule-grid{gap:var(--sp-3) var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.rule-grid .field{margin:0}.preview-box{margin-top:var(--sp-5);border:1px solid var(--bd);border-radius:var(--r-lg);overflow:hidden}.preview-head{background:var(--s2);border-bottom:1px solid var(--bd);font-size:var(--fs-sm);padding:10px 14px}.preview-head .input{height:var(--ctl-md);width:220px;font-size:var(--fs-sm);margin-inline-start:auto;padding:0 10px}.preview-scroll{max-height:360px;overflow-y:auto}.row-off td{opacity:.45}.avatar{object-fit:cover;background:var(--s3);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.avatar-blank{color:var(--tx3);font-weight:var(--fw-bold);-webkit-user-select:none;user-select:none;line-height:1}td.opname .op-link{max-width:116px}td.opname .op-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}table.matrix.compact th.corner{font-size:var(--fs-xs);padding:8px 10px}table.matrix.compact .cell-na{width:26px;height:26px;font-size:var(--fs-sm);border-width:1px}.pp-stats{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:14px;display:grid}.pp-stat{border:1px solid var(--bd);border-radius:var(--r-md);background:var(--s2);padding:10px 12px}.pp-stat b{font-size:var(--fs-lg);margin-bottom:3px;display:block}.pp-stat span{font-size:var(--fs-sm);color:var(--tx3);font-weight:var(--fw-medium)}.pp-stat.bad{border-color:var(--warn);background:var(--warns)}.pp-note{border-inline-start:3px solid var(--acc);background:var(--accs);border-radius:var(--r-sm);font-size:var(--fs-md);white-space:pre-wrap;margin-bottom:14px;padding:9px 11px}.pp-sec{margin-top:14px}.pp-sec h4{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--tx2);margin:0 0 8px}.pp-sec h4 .hint{font-weight:var(--fw-medium)}.pp-skills{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.pp-skill{align-items:center;gap:var(--sp-3);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--surface);padding:6px 9px;display:flex}.pp-skill.na{opacity:.55;border-style:dashed}.pp-skill-name{font-weight:var(--fw-medium);font-size:var(--fs-md);flex:1}.pp-list{font-size:var(--fs-md);margin:0;padding-inline-start:16px;line-height:1.9}.notif{flex:none;position:relative}.notif-panel{top:calc(100% + 8px);width:min(370px,100vw - 32px);max-height:min(460px, calc(100vh - var(--topbar-h) - 32px));background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);box-shadow:var(--sh-lg);z-index:40;flex-direction:column;animation:.14s ease-out fadeUp;display:flex;position:absolute;inset-inline-end:0;overflow:hidden}.notif-head{border-bottom:1px solid var(--bd);justify-content:space-between;align-items:center;padding:11px 13px;display:flex}.notif-empty{text-align:center;color:var(--tx3);font-size:var(--fs-md);padding:26px 14px}.notif-list{gap:var(--sp-0);flex-direction:column;padding:6px;display:flex;overflow-y:auto}.notif-row{appearance:none;font:inherit;color:inherit;text-align:start;cursor:pointer;gap:var(--sp-3);border-radius:var(--r-md);background:0 0;border:none;align-items:flex-start;padding:9px 10px;transition:background .12s;display:flex}.notif-row:hover{background:var(--s2)}.notif-row.fresh{background:var(--pris);box-shadow:inset -2px 0 0 var(--pri)}.notif-icon{border-radius:var(--r-sm);background:var(--s3);width:26px;height:26px;font-size:var(--fs-md);flex:none;place-items:center;display:grid}.notif-icon.transfer{background:var(--infos);color:var(--info)}.notif-icon.skill{background:var(--oks);color:var(--ok)}.notif-icon.absence{background:var(--warns);color:var(--warn)}.notif-body{gap:var(--sp-0);flex-direction:column;min-width:0;display:flex}.notif-body b{font-size:var(--fs-md);font-weight:var(--fw-bold);line-height:1.6}.notif-body span{font-size:var(--fs-sm);color:var(--tx2)}.notif-time{font-weight:var(--fw-medium);color:var(--tx3)!important;font-size:var(--fs-xs)!important}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.app-shell.sidebar-collapsed{--sidebar-w:56px}.app-shell.sidebar-collapsed .sidebar{width:56px;min-width:0;padding-inline:8px;overflow:visible}.app-shell.sidebar-collapsed .nav-item span,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .brand-sub,.app-shell.sidebar-collapsed .user-card .who{display:none}.app-shell.sidebar-collapsed .nav-item{justify-content:center;padding:9px 0}.app-shell.sidebar-collapsed .nav-item.active{box-shadow:inset -2px 0 0 var(--pri)}.app-shell.sidebar-collapsed .brand{align-items:center;padding:6px 0 12px}.app-shell.sidebar-collapsed .brand svg{max-width:34px;height:auto}.app-shell.sidebar-collapsed .user-card{gap:var(--sp-3);flex-direction:column;padding:8px 4px}.scope-bar{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-md);flex-wrap:wrap;padding:7px 10px;display:flex}.scope-bar .filter-search,.scope-bar .filter-select{height:var(--ctl-md);width:auto;font-size:var(--fs-sm);padding:0 10px}.scope-bar .filter-search{width:220px}.scope-bar .filter-select{cursor:pointer;min-width:110px}.pager{align-items:center;gap:var(--sp-3);border-top:1px solid var(--bd);background:var(--s2);flex:none;padding:10px 14px;display:flex}.pager-pages{align-items:center;gap:2px;display:flex}.pager-page{appearance:none;min-width:30px;height:var(--ctl-sm);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--tx2);cursor:pointer;background:0 0;border:1px solid #0000;padding:0 8px}.pager-page:hover{border-color:var(--bd2);color:var(--tx)}.pager-page.active{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:var(--fw-bold)}.pager-gap{color:var(--tx3);padding:0 4px}.pager-info{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--tx3);margin-inline-start:auto}.scope-sep{background:var(--bd);width:1px;height:18px;margin:0 var(--sp-1)}.scope-meta{align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-inline-start:auto;display:flex}.filter-group{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.filter-label{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx3);padding-inline-end:2px}.report-tabs{width:100%}.link-btn{appearance:none;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--pri);cursor:pointer;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.notif-unread{background:var(--pri);border-radius:50%;flex:none;align-self:center;width:8px;height:8px}.cell-na{box-sizing:border-box;border:1.5px dashed var(--bd2);width:34px;height:34px;color:var(--tx3);line-height:1;font-size:var(--fs-md);cursor:default;border-radius:50%;place-items:center;display:inline-grid}.na-toggle{gap:var(--sp-4);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--s2);cursor:pointer;align-items:flex-start;margin-bottom:12px;padding:10px 12px;display:flex}.na-toggle input{flex:none;margin-top:3px}.na-toggle .hint{margin-top:3px;display:block}.badge.cand-chip{cursor:pointer;font:inherit;transition:border-color .12s,box-shadow .12s}.badge.cand-chip:hover:not(:disabled){border-color:var(--pri)}.badge.cand-chip:disabled{cursor:default}.badge.cand-chip.picked{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}.task-list{gap:var(--sp-2);flex-direction:column;display:flex}.task-row{appearance:none;font:inherit;text-align:start;cursor:pointer;align-items:flex-start;gap:var(--sp-3);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--s2);width:100%;color:inherit;padding:9px 11px;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.task-row:hover{color:inherit;border-color:var(--pri);background:var(--surface)}.task-dot{border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.task-row.high .task-dot{background:var(--dan)}.task-row.medium .task-dot{background:var(--acc)}.task-body{gap:var(--sp-0);flex-direction:column;min-width:0;display:flex}.task-body b{font-size:var(--fs-md);font-weight:var(--fw-bold)}.task-body span{font-size:var(--fs-sm);color:var(--tx2)}.badge.person-chip{color:inherit;text-decoration:none;transition:border-color .12s}.badge.person-chip:hover{color:inherit;border-color:var(--pri)}td.opname .op-link{align-items:center;gap:var(--sp-2);appearance:none;min-width:0;font:inherit;font-weight:inherit;text-align:start;cursor:pointer;color:inherit;background:0 0;border:none;border-bottom:1px dashed #0000;padding:0;text-decoration:none;transition:border-color .12s,color .12s;display:flex}td.opname .op-link:hover{color:var(--pri);border-bottom-color:var(--pri)}td.opname .pid{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--tx3);margin-top:2px;display:block}td.cell{text-align:center;width:52px;height:42px;padding:0;line-height:0}.cell-btn{appearance:none;cursor:pointer;width:100%;height:100%;color:inherit;font:inherit;background:0 0;border:none;place-items:center;margin:0;padding:0;display:grid}.cell-btn.readonly{cursor:default}.gauge-wrap{place-items:center;margin:0 auto;line-height:0;transition:transform .12s;display:inline-grid;position:relative}.cell-btn:not(.readonly):hover .gauge-wrap,.cell-btn:not(.readonly):focus-visible .gauge-wrap{transform:scale(1.12)}.gauge-repair{bottom:-.55em;pointer-events:none;font-size:.62em;line-height:1;position:absolute;inset-inline-start:50%;transform:translate(-50%)}.gauge-legend{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--tx2);display:inline-flex}.gauge-legend b{font-family:ui-monospace,monospace;font-size:var(--fs-sm);color:var(--tx)}.gauge{border-radius:50%;place-items:center;width:34px;height:34px;margin:0 auto;transition:transform .12s;display:grid;position:relative}.cell-btn:not(.readonly):hover .gauge,.cell-btn:not(.readonly):focus-visible .gauge{transform:scale(1.13)}.gauge .ring{border:3px solid var(--l0);border-radius:50%;position:absolute;inset:0}.gauge .fill{background:var(--l0);border-radius:50%;width:20px;height:20px}.gauge .fix{bottom:-4px;font-size:8px;position:absolute;inset-inline-start:50%;transform:translate(-50%)}table.matrix tbody tr:hover td{background:var(--hl-row)}table.matrix tfoot td{background:var(--s2);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx2);text-align:center;padding:9px 4px}table.matrix tfoot td.opname{text-align:start;white-space:normal;line-height:1.35}.staff-level{border-radius:var(--r-md);width:30px;height:30px;font-family:ui-monospace,monospace;line-height:1;font-size:var(--fs-md);font-weight:var(--fw-bold);place-items:center;transition:transform .12s;display:inline-grid}.cell-btn:not(.readonly):hover .staff-level,.cell-btn:not(.readonly):focus-visible .staff-level{transform:scale(1.12)}.risk-cell{justify-content:center;align-items:center;gap:var(--sp-1);line-height:1;display:inline-flex}table.matrix tfoot td.risk{color:var(--dan)}table.matrix tfoot td.risk.critical{background:var(--dans);box-shadow:inset 0 -3px 0 var(--dan)}.table-scroll{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-md)}table.data th{text-align:start;background:var(--s2);font-weight:var(--fw-bold);color:var(--tx2);font-size:var(--fs-sm);white-space:nowrap;border-bottom:1px solid var(--bd);padding:12px 16px}table.data td{border-bottom:1px solid var(--bd);font-weight:var(--fw-medium);vertical-align:middle;padding:13px 16px}table.data tbody tr:hover{background:var(--s2)}table.data tbody tr:last-child td{border-bottom:none}table.data .row-actions{gap:var(--sp-2);justify-content:flex-end;display:flex}.num-cell{font-variant-numeric:tabular-nums}.overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1017186b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);box-shadow:var(--sh-lg);flex-direction:column;width:100%;max-width:430px;max-height:calc(100vh - 40px);animation:.18s fadeUp;display:flex;overflow:hidden}.modal.wide{max-width:720px}.modal-head{padding:20px 22px 0}.modal-head h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0}.modal-head .sub{font-size:var(--fs-md);color:var(--tx2);margin-top:4px}.modal-body{gap:var(--sp-5);flex-direction:column;min-height:0;padding:18px 22px;display:flex;overflow-y:auto}.modal-head,.modal-foot{flex:none}.modal-foot{gap:var(--sp-3);padding:0 22px 20px;display:flex}.modal-foot .btn{flex:1}.modal-foot .btn.shrink{flex:none}.level-row{gap:var(--sp-1);display:flex}.level-btn{border:1px solid var(--bd);background:var(--surface);cursor:pointer;width:24px;height:24px;font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--tx3);border-radius:6px;flex:none;place-items:center;padding:0;font-family:ui-monospace,monospace;transition:all .12s;display:grid}.level-btn:hover{border-color:var(--bd2)}.level-btn.active{border-color:var(--tx)}.level-row.warn .level-btn.active{border-color:var(--warn);box-shadow:0 0 0 1px var(--warn)}.sign-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.sign-slot{border:1px dashed var(--bd2);border-radius:var(--r-lg);gap:var(--sp-2);background:var(--s2);flex-direction:column;align-items:flex-start;min-height:128px;padding:14px;display:flex}.sign-slot.signed{border-style:solid;border-color:var(--ok);background:var(--oks)}.sign-role{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx2);line-height:1.6}.sign-name{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin-top:4px}.sign-date{font-size:var(--fs-xs);color:var(--tx3);font-weight:var(--fw-medium)}.sign-empty{font-size:var(--fs-md);color:var(--tx3);font-weight:var(--fw-medium);margin-top:4px}.sign-slot .btn{margin-top:auto}.crash{place-items:center;padding:3rem 1rem;display:grid}.crash-box{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);box-shadow:var(--sh);text-align:center;max-width:34rem;padding:26px}.crash-box h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin:0 0 8px}.crash-box p{font-size:var(--fs-md);color:var(--tx2);margin:0 0 14px;line-height:2}.crash-box pre{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--dan);text-align:left;white-space:pre-wrap;direction:ltr;margin:0 0 16px;padding:10px 12px;overflow-x:auto}.crash-box .row{justify-content:center}.link-strong{font-weight:var(--fw-bold);color:var(--tx);border-bottom:1px dashed var(--bd2)}.link-strong:hover{color:var(--pri);border-bottom-color:var(--pri)}.plans-table th{vertical-align:top;min-width:8.5rem}.plan-select{height:var(--ctl-sm);font-size:var(--fs-sm);border-width:2px;padding:0 6px}.fill-col{gap:var(--sp-0);margin-top:6px;display:flex}.fill-col button{border-radius:var(--r-xs);cursor:pointer;height:18px;font-family:ui-monospace,monospace;font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:#14211d;opacity:.75;border:none;flex:1;transition:opacity .12s}.fill-col button:hover{opacity:1}.jalali-input{gap:var(--sp-2);grid-template-columns:5rem 1fr 6rem;display:grid}.jalali-input .input{padding:0 8px}.plan-readonly{justify-content:center;align-items:center;gap:var(--sp-2);border:1px dashed var(--bd2);border-radius:var(--r-md);background:var(--s2);height:34px;color:var(--tx2);font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:default;padding:0 10px;display:inline-flex}.plan-readonly .dot{border-radius:50%;flex:none;width:10px;height:10px}.level-guide{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.level-guide-item{gap:var(--sp-4);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--s2);align-items:flex-start;padding:11px 12px;display:flex}.level-guide-item .code{border-radius:var(--r-md);width:30px;height:30px;font-family:ui-monospace,monospace;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--l1-ink);flex:none;place-items:center;display:grid}.level-guide-item b{font-size:var(--fs-md);font-weight:var(--fw-bold);display:block}.level-guide-item .en{font-size:var(--fs-xs);color:var(--tx3);text-align:start;direction:ltr;margin-top:2px;font-family:ui-monospace,monospace;display:block}.level-guide-item p{font-size:var(--fs-sm);color:var(--tx2);margin:5px 0 0;line-height:1.8}.ring-guide{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(168px,1fr));display:grid}.ring-guide .gauge-legend{border:1px solid var(--bd);border-radius:var(--r-md);background:var(--s2);gap:var(--sp-3);padding:9px 11px}.criteria-grid{border:1px solid var(--bd);border-radius:var(--r-lg);overflow:hidden}.criteria-head{gap:var(--sp-4);background:var(--s2);border-bottom:1px solid var(--bd);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--tx2);grid-template-columns:1.35fr 1fr 1fr;padding:9px 14px;display:grid}.criteria-row{gap:var(--sp-4);border-bottom:1px solid var(--bd);grid-template-columns:1.35fr 1fr 1fr;align-items:center;padding:11px 14px;display:grid}.criteria-grid.no-plan .criteria-head,.criteria-grid.no-plan .criteria-row{grid-template-columns:1.35fr 1fr}.criteria-row .criteria-name{font-weight:var(--fw-medium);color:var(--tx2)}.criteria-row.weakest .criteria-name{font-weight:var(--fw-bold);color:var(--tx)}.criteria-row.current{background:var(--s2);border-inline-start-color:var(--pri)}.criteria-row{cursor:pointer;border-inline-start:3px solid #0000}.criteria-row:last-child{border-bottom:none}.criteria-name{font-size:var(--fs-md);font-weight:var(--fw-bold);min-width:0}.criteria-name span{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--tx3);margin-top:3px;line-height:1.6;display:block}.cell-summary{align-items:center;gap:var(--sp-5);border:1px solid var(--bd);border-radius:var(--r-lg);background:var(--s2);padding:12px 14px;display:flex}.cell-summary>div{flex-direction:column;gap:1px;min-width:0;display:flex}.cell-summary b{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.cell-summary .hint{font-size:var(--fs-xs);color:var(--tx3)}.cell-summary .gap-note{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--tx2)}.cell-summary .gap-note.warn{color:var(--warn)}.repair-note{align-items:flex-start;gap:var(--sp-3);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--s2);font-size:var(--fs-sm);color:var(--tx2);padding:9px 11px;line-height:1.55;display:flex}.repair-note svg{flex:none;margin-top:2px}.repair-note.on{border-color:var(--ok);background:var(--oks);color:var(--ok);font-weight:var(--fw-medium)}@media (max-width:640px){.criteria-head{display:none}.criteria-row{gap:var(--sp-3);grid-template-columns:1fr}}.login-page{background:var(--bg);grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-brand{flex-direction:column;align-self:flex-start;align-items:flex-start;gap:10px;display:inline-flex}.login-tagline{color:var(--pri-ink,#fff);font-size:19px;font-weight:var(--fw-bold);letter-spacing:.01em;text-align:start;direction:ltr;line-height:1}.login-hero{background:linear-gradient(155deg, var(--hero-from,#ef394e) 0%, var(--hero-to,#c2172c) 100%);color:var(--pri-ink,#fff);justify-content:space-between;gap:var(--sp-8);flex-direction:column;padding:56px 52px;display:flex}.login-hero .mark{border-radius:var(--r-lg);background:#ffffff24;place-items:center;width:46px;height:46px;display:grid}.login-hero h2{font-size:var(--fs-3xl);font-weight:var(--fw-bold);letter-spacing:-.8px;text-wrap:pretty;margin:0;line-height:1.6}.login-hero p{font-size:var(--fs-lg);opacity:.78;text-wrap:pretty;max-width:420px;margin:16px 0 0;line-height:2}.login-stats{gap:var(--sp-7);display:flex}.login-stats b{font-size:var(--fs-2xl);font-weight:var(--fw-bold);display:block}.login-stats span{font-size:var(--fs-sm);opacity:.7;margin-top:3px;display:block}.login-panel{place-items:center;padding:24px;display:grid}.login-card{width:100%;max-width:360px}.login-card h1{font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.5px;margin:0}.login-card .sub{font-size:var(--fs-md);color:var(--tx2);margin:6px 0 24px}.login-form{gap:var(--sp-5);flex-direction:column;display:flex}.alert{border-radius:var(--r-md);font-size:var(--fs-md);font-weight:var(--fw-bold);align-items:center;gap:var(--sp-3);padding:11px 14px;display:flex}.alert.error{background:var(--dans);color:var(--dan)}.alert.info{background:var(--infos);color:var(--info)}.alert.warn{background:var(--warns);color:var(--warn)}.chart-grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(340px,1fr));display:grid}.chart-box{direction:ltr;width:100%;height:280px}.chart-box.tall{height:360px}.recharts-text{font-family:Estedad,Vazirmatn,sans-serif;font-size:var(--fs-xs);fill:var(--tx2)}.chart-tooltip{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-md);box-shadow:var(--sh);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx);direction:rtl;padding:10px 13px}.chart-tooltip .t-label{margin-bottom:6px}.chart-tooltip .t-row{align-items:center;gap:var(--sp-2);color:var(--tx2);font-weight:var(--fw-medium);font-size:var(--fs-sm);display:flex}.chart-tooltip .t-row i{border-radius:var(--r-xs);width:9px;height:9px;display:inline-block}.stack{gap:var(--sp-5);flex-direction:column;display:flex}.row{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.row.between{justify-content:space-between}.grid-2{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.muted{color:var(--tx3);font-weight:var(--fw-medium)}table.data tr.sev-none td:first-child{box-shadow:inset 3px 0 0 var(--dan)}table.data tr.sev-none{background:var(--dans)}table.data tr.sev-thin td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.chart-skeleton{align-items:flex-end;gap:var(--sp-4);height:200px;padding:var(--sp-5);display:flex}.chart-skeleton .skeleton{flex:1}table.matrix tbody tr td.cell.editing{background:var(--hl-sel)}.row-start{appearance:none;color:var(--tx3);cursor:pointer;opacity:0;vertical-align:middle;background:0 0;border:none;margin-inline-start:var(--sp-2);padding:0;transition:opacity .12s,color .12s}tbody tr:hover .row-start,.row-start:focus-visible{opacity:1}.row-start:hover{color:var(--pri)}.report-picker{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-md);overflow:hidden}.report-picker-head{align-items:center;gap:var(--sp-3);background:var(--bg);border-bottom:1px solid var(--bd);padding:9px 12px;display:flex}.report-tabs{gap:var(--sp-2);flex-wrap:wrap;padding:10px 12px;display:flex}.mx-legend{align-items:center;gap:var(--sp-5);background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-md);flex-wrap:wrap;padding:10px 13px;display:flex}.mx-legend-lead{font-size:var(--fs-sm);font-weight:var(--fw-normal);color:var(--tx2)}.mx-legend-set{gap:var(--sp-4);flex-wrap:wrap;display:flex}.mx-legend-item{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-normal);white-space:nowrap;display:inline-flex}.mx-legend-item .dot{border-radius:50%;flex:none;width:13px;height:13px}.mx-legend-item .ring-dot{border:3px solid;border-radius:50%;flex:none;width:13px;height:13px}.mx-legend-sep{background:var(--bd);width:1px;height:20px}.mx-hint{align-items:center;gap:var(--sp-4);border-top:1px solid var(--bd);background:var(--bg);font-size:var(--fs-2xs);font-weight:var(--fw-normal);color:var(--tx3);flex-wrap:wrap;padding:7px 12px;display:flex}.mx-hint-count{margin-inline-start:auto}.mx-hint kbd{font-family:inherit;font-size:var(--fs-2xs);font-weight:var(--fw-bold);background:var(--surface);border:1px solid var(--bd2);border-radius:var(--r-xs);color:var(--tx2);border-bottom-width:2px;padding:1px 5px}.main:has(.fill-page){overflow:hidden}.content:has(.fill-page){flex-direction:column;min-height:0;display:flex}.fill-page{flex:1;min-height:0}.fill-page>.card.grow,.fill-page>.card.grow>.card-body{flex-direction:column;flex:1;min-height:0;display:flex}.fill-page .table-scroll{flex:1;min-height:0}.fill-page table.data thead th{z-index:2;position:sticky;top:0}.main:has(.matrix-page){overflow:hidden}.content:has(.matrix-page){flex-direction:column;min-height:0;display:flex}.matrix-page,.matrix-page>.matrix-row{flex:1;min-height:0}.matrix-row>.card{flex-direction:column;min-height:0;display:flex}.matrix-row>.card>.card-body{flex-direction:column;flex:1;min-height:0;display:flex}.matrix-page .approval-block{flex:none}.matrix-row{align-items:stretch;gap:var(--sp-4);min-width:0;display:flex}.matrix-row>.card{flex:1;min-width:0}.side-panel{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);width:348px;min-height:0;box-shadow:var(--sh);flex-direction:column;flex:none;align-self:stretch;display:flex;overflow:hidden}.side-panel:focus{outline:none}.person-panel{width:460px}.row-panel{border:2px solid var(--pri)}.sp-head{align-items:flex-start;gap:var(--sp-3);border-bottom:1px solid var(--bd);padding:12px 14px;display:flex}.sp-who{flex-direction:column;gap:1px;min-width:0;display:flex}.sp-who b{font-size:var(--fs-md);font-weight:var(--fw-bold)}.sp-who span{font-size:var(--fs-xs);font-weight:var(--fw-normal);color:var(--tx3)}.sp-head .icon-btn{flex:none;margin-inline-start:auto}.sp-body{gap:var(--sp-4);flex-direction:column;flex:1;padding:13px 14px;display:flex;overflow:auto}.sp-body>*,.rp-body>*{flex-shrink:0}.sp-foot{gap:var(--sp-2);border-top:1px solid var(--bd);background:var(--bg);flex:none;padding:10px 14px;display:flex}.rp-head{align-items:center;gap:var(--sp-3);background:var(--pris);border-bottom:1px solid var(--bd);padding:11px 14px;display:flex}.rp-who{flex-direction:column;gap:1px;min-width:0;display:flex}.rp-who b{font-size:var(--fs-md);font-weight:var(--fw-bold)}.rp-who span{font-size:var(--fs-xs);font-weight:var(--fw-normal);color:var(--tx3)}.rp-head .btn{margin-inline-start:auto}.rp-progress{border-bottom:1px solid var(--bd);gap:var(--sp-3);flex-direction:column;padding:10px 14px;display:flex}.rp-pos{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.rp-pos b{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.rp-pos span{font-size:var(--fs-xs);font-weight:var(--fw-normal);color:var(--tx3)}.rp-strip{gap:2px;display:flex}.rp-seg{border:1px solid var(--bd);border-radius:var(--r-xs);cursor:pointer;flex:1;min-width:3px;height:18px;padding:0}.rp-seg.now{border:2px solid var(--tx)}.rp-seg.done{box-shadow:inset 0 -3px 0 var(--pri)}.rp-seg.na{border-style:dashed;border-color:var(--bd2);background:0 0}.pp-skill .cell-na{width:30px;height:30px;font-size:var(--fs-sm)}.rp-body{gap:var(--sp-4);flex-direction:column;flex:1;padding:13px 14px;display:flex;overflow:auto}.rp-station{align-items:center;gap:var(--sp-4);display:flex}.rp-station-text{flex-direction:column;gap:1px;min-width:0;display:flex}.rp-station-text b{font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:1.35}.rp-station-text span{font-size:var(--fs-sm);font-weight:var(--fw-normal);color:var(--tx2)}.rp-levels{gap:var(--sp-1);flex-direction:column;display:flex}.rp-label{align-items:baseline;gap:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--tx3);letter-spacing:.06em;margin-bottom:var(--sp-1);display:flex}.rp-label span{font-weight:var(--fw-normal);letter-spacing:0}.rp-level{align-items:center;gap:var(--sp-3);height:var(--ctl-md);border:1px solid var(--bd);border-radius:var(--r-md);background:var(--surface);color:var(--tx);cursor:pointer;text-align:start;padding:0 10px;font-family:inherit;display:flex}.rp-level:hover{border-color:var(--bd2)}.rp-level.active{border-color:var(--tx);background:var(--s2)}.rp-level .dot{border-radius:50%;flex:none;width:15px;height:15px}.rp-level b{font-size:var(--fs-sm);font-weight:var(--fw-bold);flex:none;width:15px}.rp-level .nm{font-size:var(--fs-sm);font-weight:var(--fw-normal);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rp-split-note{font-size:var(--fs-2xs);font-weight:var(--fw-bold);border-radius:var(--r-full);background:var(--s2);color:var(--tx3);margin-inline-start:auto;padding:2px 7px}.rp-split{gap:var(--sp-3);background:var(--bg);border:1px solid var(--bd);border-radius:var(--r-md);flex-direction:column;padding:11px;display:flex}.rp-split-head{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx2);display:flex}.rp-crit{gap:var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--r-sm);cursor:pointer;border-inline-start:3px solid #0000;flex-direction:column;padding:6px 9px;display:flex}.rp-crit.current{border-inline-start-color:var(--pri);background:var(--s2)}.rp-foot{border-top:1px solid var(--bd);background:var(--bg);gap:var(--sp-3);flex-direction:column;flex:none;padding:10px 14px;display:flex}.rp-keys{gap:var(--sp-1) var(--sp-3);font-size:var(--fs-2xs);font-weight:var(--fw-normal);color:var(--tx3);flex-wrap:wrap;display:flex}.rp-keys kbd,.rp-level kbd{font-family:inherit;font-size:var(--fs-2xs);font-weight:var(--fw-bold);background:var(--surface);border:1px solid var(--bd2);border-radius:var(--r-xs);color:var(--tx2);border-bottom-width:2px;padding:1px 5px}.kpi-hero{gap:var(--sp-4);grid-template-columns:1.4fr 2fr;align-items:stretch;display:grid}.hero-metric{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);box-shadow:var(--sh);gap:var(--sp-3);flex-direction:column;padding:18px 20px;display:flex}.hero-metric .lbl{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--tx2)}.hero-row{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.hero-row b{font-size:40px;font-weight:var(--fw-bold);letter-spacing:-1px;line-height:1}.hero-row span{font-size:var(--fs-sm);font-weight:var(--fw-normal);color:var(--tx2)}.hero-bar{height:var(--sp-3);background:var(--s2);border-radius:var(--r-full);overflow:hidden}.hero-bar span{background:var(--l4);border-radius:var(--r-full);height:100%;display:block}.hero-note{font-size:var(--fs-xs);font-weight:var(--fw-normal);color:var(--tx3);margin:0;line-height:1.7}.coverage-foot{gap:var(--sp-4);flex:none;display:flex}.cov-stat{align-items:center;gap:var(--sp-5);background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);flex:1;min-width:0;padding:14px 17px;display:flex}.cov-stat .num{font-size:var(--fs-3xl);font-weight:var(--fw-bold);flex:none;line-height:1}.cov-stat.danger .num{color:var(--dan)}.cov-stat.warn .num{color:var(--warn)}.cov-stat b{font-size:var(--fs-md);font-weight:var(--fw-bold);display:block}.cov-stat .hint{font-size:var(--fs-sm);color:var(--tx3);display:block}.compact-kpis{flex:none;grid-template-columns:repeat(3,minmax(0,1fr))}.compact-kpis .kpi{gap:var(--sp-1);padding:11px 14px}.compact-kpis .kpi .num{font-size:var(--fs-xl)}.compact-kpis .kpi .bar{display:none}.alert.data-gap{align-items:flex-start}.data-gap-text{gap:var(--sp-0);flex-direction:column;min-width:0;display:flex}.data-gap-text b{font-size:var(--fs-md);font-weight:var(--fw-bold)}.data-gap-text span{font-size:var(--fs-sm);font-weight:var(--fw-normal);line-height:1.75}.risk-list{flex-direction:column;display:flex}.risk-row{align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--s2);padding:10px 16px;display:flex}.risk-row:last-child{border-bottom:none}.risk-n{border-radius:var(--r-sm);background:var(--warns);width:30px;height:28px;color:var(--warn);font-size:var(--fs-md);font-weight:var(--fw-bold);flex:none;place-items:center;display:grid}.risk-n.none{background:var(--dans);color:var(--dan)}.risk-who{flex-direction:column;gap:1px;min-width:0;display:flex}.risk-who b{font-size:var(--fs-md);font-weight:var(--fw-medium)}.risk-who span{font-size:var(--fs-xs);font-weight:var(--fw-normal);color:var(--tx3)}.risk-note{font-size:var(--fs-sm);font-weight:var(--fw-normal);color:var(--tx2);white-space:nowrap;margin-inline-start:auto}.risk-more{border-top:1px solid var(--bd);background:var(--bg);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--tx3);padding:10px 16px}.skeleton{background:linear-gradient(90deg, var(--s2) 0%, var(--s3) 40%, var(--s2) 80%);background-size:300% 100%;animation:1.4s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--s3);animation:none}}.matrix-skeleton{flex-direction:column;display:flex;overflow:hidden}.mx-sk-head{background:var(--s2);border-bottom:1px solid var(--bd);align-items:flex-end;height:108px;padding-bottom:9px;display:flex}.mx-sk-row{border-bottom:1px solid var(--s2);align-items:center;height:34px;display:flex}.mx-sk-name{flex:none;width:152px;padding:0 11px}.mx-sk-cell{border-inline-start:1px solid var(--s2);flex:none;place-items:center;width:38px;display:grid}.mx-sk-foot{align-items:center;gap:var(--sp-3);background:var(--bg);border-top:1px solid var(--bd);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--tx2);padding:9px 12px;display:flex}.empty-state{align-items:center;gap:var(--sp-5);text-align:center;flex-direction:column;padding:46px 24px;display:flex}.empty-icon{border-radius:var(--r-lg);background:var(--s2);width:58px;height:58px;color:var(--tx3);place-items:center;display:grid}.empty-state.warn .empty-icon{background:var(--warns);color:var(--warn)}.empty-text{gap:var(--sp-2);flex-direction:column;max-width:440px;display:flex}.empty-text b{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.empty-text p{font-size:var(--fs-md);font-weight:var(--fw-normal);color:var(--tx2);margin:0;line-height:1.85}.empty{text-align:center;color:var(--tx3);font-size:var(--fs-md);font-weight:var(--fw-medium);padding:46px 20px}.spinner{border:2.5px solid var(--bd);border-top-color:var(--pri);border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}.page-loading{justify-content:center;align-items:center;gap:var(--sp-4);color:var(--tx2);font-weight:var(--fw-bold);font-size:var(--fs-md);padding:60px;display:flex}.mini-bar{border-radius:var(--r-full);background:var(--s3);min-width:60px;height:6px;overflow:hidden}.mini-bar>span{border-radius:var(--r-full);background:var(--pri);height:100%;display:block}.toasts{top:24px;align-items:center;gap:var(--sp-3);z-index:80;pointer-events:none;flex-direction:column;display:flex;position:fixed;inset-inline:0}.toast{pointer-events:auto;background:var(--tx);color:var(--bg);border-radius:var(--r-lg);font-size:var(--fs-lg);font-weight:var(--fw-bold);box-shadow:var(--sh-lg);text-align:center;max-width:min(520px,100vw - 48px);padding:14px 24px;animation:.18s fadeDown}.toast.error{background:var(--toast-dan);color:#fff}.toast.success{background:var(--toast-ok);color:#fff}@keyframes fadeDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (max-width:1000px){.login-page{grid-template-columns:1fr}.login-hero{display:none}}@media (max-width:900px){.app-shell{flex-direction:column;height:auto;overflow:visible}.sidebar{border-inline-start:none;border-bottom:1px solid var(--bd);width:100%;padding:12px}.brand{border-bottom:none;margin-bottom:4px;padding-bottom:8px}.nav{gap:var(--sp-1);flex-flow:wrap}.nav-label,.nav-spacer{display:none}.nav-item{width:auto;font-size:var(--fs-md);padding:7px 11px}.user-card{margin-top:10px}.topbar{padding:0 14px}.search{display:none}.content{padding:16px 14px 40px}.grid-2{grid-template-columns:1fr}}.avatar-stock{background:0 0}.op-cell{align-items:center;gap:8px;display:inline-flex}.perm-sign{justify-content:space-between;align-items:center;gap:var(--sp-4);border:1px solid var(--bd);border-radius:var(--r-lg);background:var(--s2);padding:12px 14px;display:flex}.perm-grid th:first-child,.perm-grid td:first-child{min-width:160px}.perm-crit{margin-top:var(--sp-4);border:1px solid var(--bd);border-radius:var(--r-lg);background:var(--s2);gap:10px;padding:12px 14px;display:grid}.perm-crit.row-off{opacity:.5}.perm-crit-list{flex-wrap:wrap;gap:8px 18px;display:flex}.perm-crit-item{font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:6px;display:inline-flex;position:relative}.perm-crit-item .perm-dot{position:static}table.data.perm-grid td,table.data.perm-grid th{padding:5px 10px}.perm-na{background:repeating-linear-gradient(45deg, transparent 0 6px, var(--s2) 6px 8px)}.perm-cell{border-radius:var(--r-md);cursor:pointer;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:relative}.perm-cell input{cursor:pointer;margin:0}.perm-cell input:disabled{cursor:not-allowed;opacity:.4}.perm-cell.changed{background:color-mix(in srgb, var(--warn) 14%, transparent)}.perm-dot{top:3px;background:var(--warn);border-radius:50%;width:6px;height:6px;position:absolute;inset-inline-end:3px}.nb-stat{font-size:var(--fs-sm);color:var(--tx2)}.nb-layout{gap:var(--sp-4);align-items:flex-start;display:flex}.nb-grid-wrap{gap:var(--sp-2) var(--sp-3);flex:1;grid-template-rows:auto auto auto;grid-template-columns:auto 1fr;min-width:0;display:grid}.nb-axis-y{writing-mode:vertical-rl;text-align:center;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx3);align-self:center;transform:rotate(180deg)}.nb-axis-x{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx3);flex-direction:column;grid-column:2;align-items:center;gap:2px;display:flex}.nb-axis-ticks{text-align:center;width:100%;font-weight:var(--fw-medium);font-size:var(--fs-xs);grid-template-columns:repeat(3,1fr);display:grid}.nb-grid{grid-column:2;grid-template-rows:repeat(3,minmax(150px,auto));grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.nb-grid-wrap>.card{margin-top:var(--sp-3);grid-column:1/-1}.nb-box{border:1px solid var(--bd);border-radius:var(--r-lg);background:var(--surface);flex-direction:column;gap:6px;min-width:0;padding:10px 12px;display:flex}.nb-box.tone-good{background:color-mix(in srgb, var(--ok) 9%, var(--surface));border-color:color-mix(in srgb, var(--ok) 35%, var(--bd))}.nb-box.tone-mid{background:var(--s2)}.nb-box.tone-low{background:color-mix(in srgb, var(--warn) 9%, var(--surface));border-color:color-mix(in srgb, var(--warn) 35%, var(--bd))}.nb-box-head{font-size:var(--fs-sm);justify-content:space-between;align-items:center;display:flex}.nb-count{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--tx2);background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-xl);padding:1px 8px}.nb-box-action{font-size:var(--fs-xs);color:var(--tx3);line-height:1.5}.nb-chips{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.nb-chip{border:1px solid var(--bd);border-radius:var(--r-xl);background:var(--surface);height:26px;color:var(--tx);font-size:var(--fs-xs);font-weight:var(--fw-medium);cursor:pointer;align-items:center;gap:5px;max-width:100%;padding:0 8px 0 4px;display:inline-flex}.nb-chip:hover{border-color:var(--bd2)}.nb-chip.active{background:var(--pris);border-color:var(--pri);color:var(--pri)}.nb-chip.draft{border-style:dashed}.nb-chip-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nb-move{font-weight:var(--fw-bold)}.nb-move.up{color:var(--ok)}.nb-move.down{color:var(--dan)}.nb-move.new{color:var(--tx3)}.nb-unrated{flex-wrap:wrap;gap:6px;padding:12px 14px;display:flex}.nb-panel{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);width:348px;box-shadow:var(--sh);gap:var(--sp-3);top:var(--sp-4);flex-direction:column;flex:none;padding:14px;display:flex;position:sticky}.nb-panel-head{align-items:center;gap:10px;display:flex}.nb-current{border-radius:var(--r-md);border:1px solid var(--bd);font-size:var(--fs-sm);align-items:center;gap:8px;padding:8px 10px;display:flex}.nb-current.tone-good{background:color-mix(in srgb, var(--ok) 10%, transparent)}.nb-current.tone-low{background:color-mix(in srgb, var(--warn) 10%, transparent)}.nb-axis-pick{flex-direction:column;gap:6px;display:flex}.nb-axis-pick label{font-size:var(--fs-xs);color:var(--tx3);font-weight:var(--fw-bold)}.nb-axis-pick .seg{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.nb-axis-pick .seg-btn{border:1px solid var(--bd);border-radius:var(--r-md);background:var(--surface);height:30px;color:var(--tx2);font-size:var(--fs-sm);cursor:pointer}.nb-axis-pick .seg-btn.active{background:var(--pris);border-color:var(--pri);color:var(--pri);font-weight:var(--fw-bold)}.nb-axis-pick .seg-btn:disabled{cursor:default;opacity:.6}.nb-preview{font-size:var(--fs-sm);padding:4px 0}.nb-panel-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nb-section{border-top:1px solid var(--bd);padding-top:10px}.nb-section-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--tx3);margin-bottom:6px}.nb-history,.nb-comps{font-size:var(--fs-sm);flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.nb-history li{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.nb-note{width:100%;font-size:var(--fs-xs);color:var(--tx2);border-inline-start:2px solid var(--bd);padding-inline-start:8px}.nb-comps li{align-items:center;gap:6px;display:flex}.nb-comp-title{flex:1;min-width:0}@media (max-width:900px){.nb-layout{flex-direction:column}.nb-panel{width:100%;position:static}}[data-brand]{--brand-pri:var(--brand-light)}[data-theme=dark][data-brand]{--brand-pri:var(--brand-dark)}.brand-plate{border-radius:var(--r-lg);background:#fff;align-items:center;padding:10px 14px;display:inline-flex}.brand-name{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--tx2)}.bs-grid{gap:var(--sp-5);grid-template-columns:1fr 260px;display:grid}.bs-color{width:40px;height:var(--ctl-lg);border:1px solid var(--bd);border-radius:var(--r-md);cursor:pointer;background:0 0;padding:0}.bs-preview{flex-direction:column;gap:10px;display:flex}.bs-swatch{border-radius:var(--r-lg);min-height:120px;padding:16px}.bs-samples{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bs-presets{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--bd)}.bs-preset-list{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px;display:flex}.bs-preset{align-items:center;gap:6px;display:inline-flex}.bs-dot{border:1px solid var(--bd);border-radius:50%;width:12px;height:12px}@media (max-width:640px){.bs-grid{grid-template-columns:1fr}}.crit-bar{margin-top:calc(-1 * var(--sp-2))}.crit-hint{font-size:var(--fs-xs);color:var(--tx3);margin-inline-start:auto}.level-row.locked .level-btn{cursor:not-allowed}.level-row.locked .level-btn:not(.active){opacity:.45}.criteria-row.locked,.rp-crit.locked{cursor:default}.criteria-row.locked .criteria-name,.rp-crit.locked>span{color:var(--tx3)}.crit-lock{background:var(--s2);border:1px solid var(--bd);color:var(--tx3);font-size:var(--fs-xs);vertical-align:middle;border-radius:99px;margin-inline-start:6px;padding:0 6px;font-weight:500;display:inline-block}.crit-scope-note{border-radius:var(--r-md);background:var(--infos);color:var(--info);font-size:var(--fs-sm);margin-block:4px 10px;padding:8px 10px;line-height:1.8}.rubric-rules{font-size:var(--fs-sm);color:var(--tx2);gap:6px;margin:0;padding-inline-start:18px;line-height:1.9;display:grid}.rubric-legend{gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}table.data.rubric-table td{vertical-align:top;line-height:1.9;font-size:var(--fs-sm)}table.data.rubric-table td.rubric-level{white-space:nowrap;width:210px}.rubric-custom{margin-inline-start:var(--sp-2)}.rubric-edit{gap:var(--sp-2);align-items:flex-start;display:flex}.rubric-edit textarea{resize:vertical;flex:1;min-height:56px;line-height:1.8}.rubric-hint{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-2);border:1px dashed var(--bd2);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--tx2);padding:8px 10px;line-height:1.8;display:flex}.rubric-hint b{color:var(--tx);display:block}.rubric-hint a{font-size:var(--fs-xs);color:var(--pri);white-space:nowrap;flex:none}@media (max-width:640px){table.data.rubric-table td.rubric-level{white-space:normal;width:auto}}@media print{.sidebar,.topbar,.page-head .row{display:none!important}.rubric-page .card{break-inside:avoid;box-shadow:none}}.de-steps{gap:var(--sp-2);font-size:var(--fs-sm);color:var(--tx2);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0;padding:0;line-height:1.8;list-style:none;display:grid}.de-steps li{border-radius:var(--r-md);background:var(--s2);padding:8px 12px}.de-steps b{color:var(--pri)}.de-tabs{padding:var(--sp-2) var(--sp-3) 0;border-bottom:1px solid var(--bd);gap:2px;display:flex;overflow-x:auto}.de-tab{align-items:center;gap:var(--sp-2);height:var(--ctl-md);color:var(--tx2);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 14px;display:inline-flex}.de-tab:hover{color:var(--tx)}.de-tab.active{color:var(--pri);border-bottom-color:var(--pri)}.de-tab-count{border-radius:var(--r-full);background:var(--s2);min-width:22px;color:var(--tx3);font-size:var(--fs-xs);text-align:center;padding:1px 6px}.de-sheet-head{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-3);flex-wrap:wrap;display:flex}.de-sheet-head .hint{margin:0}.de-scroll{max-height:62vh}table.data.de-grid th{z-index:1;background:var(--s2);white-space:nowrap;position:sticky;top:0}table.data.de-grid td{padding:2px 4px}table.data.de-grid.stale .de-status .badge{opacity:.45}.de-num{width:44px;color:var(--tx3);font-size:var(--fs-xs);text-align:center}.de-status{white-space:nowrap;width:112px}.de-req{color:var(--dan);margin-inline-start:2px}.de-input{border:1px solid color-mix(in srgb, var(--bd) 55%, transparent);border-radius:var(--r-sm);width:100%;min-width:96px;height:30px;color:var(--tx);font:inherit;font-size:var(--fs-sm);background:0 0;padding:0 8px}.de-input:hover{border-color:var(--bd)}.de-input:focus{border-color:var(--pri);background:var(--surface);outline:none}.de-cell-err .de-input{border-color:var(--dan);background:var(--dans)}tr.de-row-err>td.de-num{color:var(--dan);font-weight:var(--fw-bold)}.de-warn{color:var(--warn);vertical-align:middle;margin-inline-start:4px;display:inline-flex}table.data tr.de-notes td{font-size:var(--fs-xs);padding-top:0;line-height:1.8}.de-note-err{color:var(--dan)}.de-note-warn{color:var(--warn)}.de-actionbar{z-index:2;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--bd);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-lg);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.de-summary{align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.de-sum-err{color:var(--dan)}
