@font-face{font-family:Cairo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cairo-arabic-400-normal-DN15VWMM.woff2)format("woff2"),url(/assets/cairo-arabic-400-normal-CAYwymWN.woff)format("woff")}@font-face{font-family:Cairo;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cairo-arabic-500-normal-DDl0i4Xv.woff2)format("woff2"),url(/assets/cairo-arabic-500-normal-BADfnM6v.woff)format("woff")}@font-face{font-family:Cairo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cairo-arabic-600-normal-rkrvveqO.woff2)format("woff2"),url(/assets/cairo-arabic-600-normal-B3EOalmC.woff)format("woff")}@font-face{font-family:Cairo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cairo-arabic-700-normal-D3nDedWX.woff2)format("woff2"),url(/assets/cairo-arabic-700-normal-CyOqhaeK.woff)format("woff")}@font-face{font-family:Cairo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cairo-latin-400-normal-Dh7otpdh.woff2)format("woff2"),url(/assets/cairo-latin-400-normal-b1R3q6Pf.woff)format("woff")}@font-face{font-family:Cairo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cairo-latin-600-normal-mGS0uvCM.woff2)format("woff2"),url(/assets/cairo-latin-600-normal-buYOP1M3.woff)format("woff")}@font-face{font-family:Cairo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cairo-latin-700-normal-C3GYtKbV.woff2)format("woff2"),url(/assets/cairo-latin-700-normal-6fcUy4Rc.woff)format("woff")}@font-face{font-family:Noto Sans Bengali;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-bengali-bengali-400-normal-BFibWJDZ.woff2)format("woff2"),url(/assets/noto-sans-bengali-bengali-400-normal-BymQv2v6.woff)format("woff");unicode-range:U+951-952,U+964-965,U+980-9FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}@font-face{font-family:Noto Sans Bengali;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-bengali-latin-ext-400-normal-Caj59Max.woff2)format("woff2"),url(/assets/noto-sans-bengali-latin-ext-400-normal-DwoTidnb.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Bengali;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-bengali-latin-400-normal-DiV_iq0_.woff2)format("woff2"),url(/assets/noto-sans-bengali-latin-400-normal-BNmU3xSe.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Bengali;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-bengali-bengali-600-normal-BVnGrJcL.woff2)format("woff2"),url(/assets/noto-sans-bengali-bengali-600-normal-d2kw9WWz.woff)format("woff");unicode-range:U+951-952,U+964-965,U+980-9FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}@font-face{font-family:Noto Sans Bengali;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-bengali-latin-ext-600-normal-C6cBZc4J.woff2)format("woff2"),url(/assets/noto-sans-bengali-latin-ext-600-normal-DY6HLMBa.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Bengali;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-bengali-latin-600-normal-BokLars8.woff2)format("woff2"),url(/assets/noto-sans-bengali-latin-600-normal-KNvJZft-.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg-canvas:#f4f5f7;--color-bg-surface:#fff;--color-bg-surface-subtle:#fafafb;--color-bg-muted:#eef0f3;--color-bg-inverse:#0b0f17;--color-bg-brand:#0f6e3d;--color-bg-brand-hover:#0b5a32;--color-bg-brand-subtle:#eef8f2;--color-bg-success-subtle:#eef8f2;--color-bg-warning-subtle:#fffaeb;--color-bg-danger-subtle:#fef3f2;--color-bg-info-subtle:#eff8ff;--color-bg-violet-subtle:#f4f3ff;--color-bg-danger:#d92d20;--color-bg-danger-hover:#b42318;--color-text-primary:#101828;--color-text-secondary:#667085;--color-text-tertiary:#98a2b3;--color-text-brand:#0f6e3d;--color-text-success:#0b5a32;--color-text-warning:#b54708;--color-text-danger:#b42318;--color-text-info:#175cd3;--color-text-violet:#6938ef;--color-border-default:#e4e7ec;--color-border-strong:#d0d5dd;--color-border-focus:#3da56c;--color-icon-default:#667085;--color-icon-strong:#1d2939;--color-icon-success:#1c8a50;--color-icon-warning:#f79009;--color-icon-danger:#f04438;--color-icon-info:#2e90fa;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--space-3xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:999px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #10182814, 0 1px 2px #1018280a;--shadow-lg:0 12px 32px -4px #1018281f, 0 4px 8px -2px #1018280d;--sidebar:264px;--font:"Cairo", "Noto Sans Bengali", system-ui, sans-serif;--navy:var(--color-text-primary);--navy-2:#1d2939;--navy-3:var(--color-bg-inverse);--gold:var(--color-icon-warning);--gold-soft:var(--color-bg-warning-subtle);--teal:var(--color-bg-brand);--teal-soft:var(--color-bg-brand-subtle);--bg:var(--color-bg-canvas);--card:var(--color-bg-surface);--line:var(--color-border-default);--line-2:var(--color-border-strong);--text:var(--color-text-primary);--muted:var(--color-text-secondary);--faint:var(--color-text-tertiary);--ok:var(--color-icon-success);--ok-soft:var(--color-bg-success-subtle);--warn:var(--color-text-warning);--warn-soft:var(--color-bg-warning-subtle);--bad:var(--color-text-danger);--bad-soft:var(--color-bg-danger-subtle);--info:var(--color-text-info);--info-soft:var(--color-bg-info-subtle);--violet:var(--color-text-violet);--radius:var(--radius-lg);--shadow:var(--shadow-xs)}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--color-text-primary);background:var(--color-bg-canvas);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.6}a{color:var(--color-text-brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;line-height:1.35}.num,.ltr{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.muted{color:var(--color-text-secondary)}.faint{color:var(--color-text-tertiary)}.small{font-size:13px}.xs{font-size:12px}.b{font-weight:600}.nowrap{white-space:nowrap}.grow{flex:1}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.stack.lg{gap:20px}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-side{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.mt{margin-top:14px}.ok-t{color:var(--color-text-success)}.bad-t{color:var(--color-text-danger)}.warn-t{color:var(--color-text-warning)}.info-t{color:var(--color-text-info)}.bn{font-family:"Noto Sans Bengali", var(--font)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.shell{min-height:100%;display:flex}.sidebar{width:var(--sidebar);background:var(--color-bg-surface);border-left:1px solid var(--color-border-default);scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;padding:20px 20px 16px;display:flex}.brand-mark{background:var(--color-bg-brand);color:#fff;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.brand b{color:var(--color-text-primary);font-size:16px;font-weight:700;line-height:1.4;display:block}.brand span{color:var(--color-text-secondary);font-size:12px}.nav{flex-direction:column;gap:2px;padding:4px 16px 20px;display:flex}.nav-group{color:var(--color-text-tertiary);padding:16px 12px 6px;font-size:12px;font-weight:500}.nav a{border-radius:var(--radius-md);color:#344054;align-items:center;gap:12px;height:40px;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav a svg{color:var(--color-icon-default);flex-shrink:0}.nav a:hover{background:var(--color-bg-muted);color:var(--color-text-primary)}.nav a.active{background:var(--color-bg-inverse);color:#fff;font-weight:600}.nav a.active svg{color:#fff}.nav .count{background:var(--color-bg-danger);color:#fff;border-radius:9px;margin-inline-start:auto;padding:0 6px;font-size:11px}.ws-chip{background:var(--color-bg-brand-subtle);color:var(--color-text-primary);cursor:pointer;font:inherit;text-align:right;border:1px solid #cfe9da;border-radius:12px;align-items:center;gap:10px;margin:0 16px 8px;padding:10px 12px;display:flex}.ws-chip:hover{border-color:var(--color-border-focus)}.ws-chip b{font-size:14px;font-weight:700;display:block}.ws-chip small{color:var(--color-text-secondary);font-size:11.5px;display:block}.ws-chip svg{color:var(--color-text-brand)}.ws-select{width:auto;min-width:260px;max-width:340px;font-weight:600}.sidebar-foot{border-top:1px solid var(--color-border-default);margin-top:auto;padding:14px 16px;font-size:12.5px}.sidebar-foot .who{align-items:center;gap:10px;min-width:0;display:flex}.avatar{background:var(--color-bg-brand-subtle);width:36px;height:36px;color:var(--color-text-brand);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border-default);background:#ffffffeb;align-items:center;gap:12px;min-height:64px;padding:12px 28px;display:flex;position:sticky;top:0}.topbar .menu-btn{display:none}.content{width:100%;max-width:1520px;margin:0 auto;padding:24px 28px 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:20px;display:flex}.page-head h1{color:var(--color-text-primary);font-size:24px;font-weight:700}.page-head p{color:var(--color-text-secondary);margin:2px 0 0;font-size:13px}.page-head .actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.owner-shell{flex-direction:column;min-height:100%;display:flex}.owner-top{z-index:20;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-default);align-items:center;gap:24px;min-height:68px;padding:0 40px;display:flex;position:sticky;top:0}.owner-top .brand{padding:0}.owner-nav{scrollbar-width:none;align-self:stretch;gap:24px;display:flex;overflow-x:auto}.owner-nav a{color:var(--color-text-secondary);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:6px;padding-top:2px;font-weight:600;text-decoration:none;display:flex}.owner-nav a:hover{color:var(--color-text-primary)}.owner-nav a.active{color:var(--color-text-primary);border-bottom-color:var(--color-bg-brand)}.owner-shell .content{padding:28px 40px 64px}.card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card-h{border-bottom:1px solid var(--color-border-default);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;display:flex}.card-h h3{color:var(--color-text-primary);align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.card-h h3 svg{color:var(--color-icon-default)}.card-b{padding:20px}.card-b.tight{padding:0}.stat{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-direction:column;min-width:0;padding:20px;display:flex;position:relative;overflow:hidden}.stat .top{align-items:flex-start;gap:12px;display:flex}.stat .ico{background:var(--color-bg-muted);width:44px;height:44px;color:var(--color-icon-strong);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.stat .lbl{color:var(--color-text-primary);padding-top:1px;font-size:15px;font-weight:600;line-height:1.45}.stat .val{color:var(--color-text-primary);text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;direction:ltr;margin-top:16px;font-size:28px;font-weight:700;line-height:1.3}.stat .val.sm{font-size:20px}.stat .sub{color:var(--color-text-secondary);margin-top:4px;font-size:12.5px}.stat .bar{background:var(--color-bg-muted);border-radius:3px;height:6px;margin-top:12px;display:flex;overflow:hidden}.stat .bar i{background:var(--color-bg-brand);border-radius:3px;height:100%;display:block}.stat.accent{background:var(--color-bg-brand);border-color:var(--color-bg-brand);color:#fff}.stat.accent .lbl,.stat.accent .val,.stat.accent .val *,.stat.accent .sub,.stat.accent .sub *{color:#fff}.stat.accent .sub{opacity:.85}.stat.accent .ico{background:#fff;color:var(--color-bg-brand)!important}.stat.accent .bar{background:#ffffff38}.stat.accent .bar i{background:#fff}.btn{border:1px solid var(--color-border-strong);background:var(--color-bg-surface);color:#344054;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;height:40px;box-shadow:var(--shadow-xs);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.btn:hover{background:var(--color-bg-surface-subtle);border-color:#b8bfca;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary,.btn.gold,.btn.ok{background:var(--color-bg-brand);color:#fff;border-color:var(--color-bg-brand)}.btn.primary:hover,.btn.gold:hover,.btn.ok:hover{background:var(--color-bg-brand-hover);border-color:var(--color-bg-brand-hover)}.btn.navy{background:var(--color-bg-inverse);color:#fff;border-color:var(--color-bg-inverse)}.btn.danger{color:var(--color-text-danger);border-color:#fecdca}.btn.danger:hover{background:var(--color-bg-danger-subtle);border-color:#fda29b}.btn.ghost{box-shadow:none;color:#344054;background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--color-bg-muted)}.btn.sm{border-radius:8px;gap:6px;height:32px;padding:0 12px;font-size:13px}.btn.icon{width:40px;padding:0}.btn.icon.sm{width:32px}.btn.lg{height:46px;padding:0 20px;font-size:15px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label{color:#344054;font-size:13px;font-weight:600}.field>label .req{color:var(--color-text-danger)}.field .help{color:var(--color-text-secondary);font-size:12px}.field .err{color:var(--color-text-danger);font-size:12px}.input,.select,.textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-surface);width:100%;min-height:40px;box-shadow:var(--shadow-xs);padding:8px 12px;transition:border-color .12s,box-shadow .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-border-focus);outline:none;box-shadow:0 0 0 4px #0f6e3d1f}.input.invalid,.select.invalid{border-color:#f04438}.input.invalid:focus,.select.invalid:focus{box-shadow:0 0 0 4px #f044381f}.input[readonly]{background:var(--color-bg-surface-subtle)}.input.num{text-align:left}.textarea{resize:vertical;min-height:80px}.input-group{align-items:stretch;display:flex}.input-group .input{border-radius:0 var(--radius-md) var(--radius-md) 0}.input-group .addon{border:1px solid var(--color-border-strong);border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--color-bg-surface-subtle);color:var(--color-text-secondary);border-right:0;align-items:center;padding:0 10px;font-size:13px;display:flex}.input-group .addon select{color:var(--color-text-primary);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.form-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px 16px;display:grid}.form-grid .c12{grid-column:span 12}.form-grid .c9{grid-column:span 9}.form-grid .c8{grid-column:span 8}.form-grid .c6{grid-column:span 6}.form-grid .c4{grid-column:span 4}.form-grid .c3{grid-column:span 3}.form-grid .c2{grid-column:span 2}.form-grid .c5{grid-column:span 5}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--color-bg-brand)}.seg{background:var(--color-bg-muted);border-radius:var(--radius-md);flex-wrap:wrap;gap:2px;padding:4px;display:inline-flex}table.t .seg{flex-wrap:nowrap}.seg button{white-space:nowrap;cursor:pointer;color:var(--color-text-secondary);background:0 0;border:0;border-radius:8px;padding:5px 14px;font-size:13px;font-weight:600}.seg button:hover{color:var(--color-text-primary)}.seg button.on{background:var(--color-bg-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.search{position:relative}.search svg{color:var(--color-text-tertiary);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.search .input{min-width:240px;padding-right:36px}.month-pill{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-surface);height:40px;box-shadow:var(--shadow-xs);align-items:center;display:inline-flex}.month-pill button{cursor:pointer;width:36px;height:100%;color:var(--color-icon-default);border-radius:var(--radius-md);background:0 0;border:0;place-items:center;display:grid}.month-pill button:hover{background:var(--color-bg-muted);color:var(--color-text-primary)}.month-pill label{text-align:center;cursor:pointer;min-width:120px;padding:0 6px;font-size:14px;font-weight:600;position:relative}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table.t{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}table.t th{text-align:right;color:var(--color-text-secondary);background:var(--color-bg-surface-subtle);border-bottom:1px solid var(--color-border-default);white-space:nowrap;z-index:1;padding:11px 16px;font-size:12.5px;font-weight:600;position:sticky;top:0}table.t th.sortable{cursor:pointer}table.t th.sortable:hover{color:var(--color-text-primary)}table.t td{vertical-align:middle;border-bottom:1px solid #eaecf0;padding:13px 16px}table.t tr:last-child td{border-bottom:0}table.t tbody tr:hover td{background:var(--color-bg-surface-subtle)}table.t tr.click{cursor:pointer}table.t td.n,table.t th.n{text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap;direction:ltr}table.t td.c,table.t th.c{text-align:center}table.t tfoot td{background:var(--color-bg-surface-subtle);border-top:1px solid var(--color-border-default);font-weight:700}table.t tr.muted-row td{color:var(--color-text-tertiary)}table.t tr.hl td{background:#fffbfa}table.t .actions{justify-content:flex-end;gap:4px;display:flex}.card>.card-b.tight>.table-wrap:last-child table.t tr:last-child td:first-child{border-bottom-right-radius:var(--radius-lg)}.badge{border-radius:var(--radius-full);white-space:nowrap;color:#344054;background:#f2f4f7;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}.badge.ok,.badge.warn,.badge.bad,.badge.info,.badge.violet{padding-inline-start:8px}.badge.ok:before,.badge.warn:before,.badge.bad:before,.badge.info:before,.badge.violet:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge.ok{background:var(--color-bg-success-subtle);color:var(--color-text-success)}.badge.ok:before{background:var(--color-icon-success)}.badge.warn{background:var(--color-bg-warning-subtle);color:var(--color-text-warning)}.badge.warn:before{background:var(--color-icon-warning)}.badge.bad{background:var(--color-bg-danger-subtle);color:var(--color-text-danger)}.badge.bad:before{background:var(--color-icon-danger)}.badge.info{background:var(--color-bg-info-subtle);color:var(--color-text-info)}.badge.info:before{background:var(--color-icon-info)}.badge.violet{background:var(--color-bg-violet-subtle);color:var(--color-text-violet)}.badge.navy{background:var(--color-bg-inverse);color:#fff}.tabs .badge:before,.nav .badge:before,.badge.plain:before{display:none}.tabs .badge,.badge.plain{padding-inline-start:8px}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.code{background:var(--color-bg-muted);color:#344054;white-space:nowrap;direction:ltr;unicode-bidi:isolate;border-radius:6px;padding:1px 7px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.tabs{border-bottom:1px solid var(--color-border-default);scrollbar-width:none;gap:24px;margin-bottom:20px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--color-text-secondary);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 2px;font-weight:600;display:inline-flex}.tabs button:hover{color:var(--color-text-primary)}.tabs button.on{color:var(--color-text-primary);border-bottom-color:var(--color-bg-brand)}.overlay{z-index:100;background:#0b0f1773;justify-content:center;align-items:flex-start;padding:6vh 16px 16px;animation:.15s fade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:560px;animation:.16s pop}.modal.wide{max-width:860px}.modal.xl{max-width:1100px}.modal-h{border-bottom:1px solid var(--color-border-default);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-h h3{color:var(--color-text-primary);font-size:18px;font-weight:700}.modal-b{padding:20px 24px}.modal-f{border-top:1px solid var(--color-border-default);background:var(--color-bg-surface-subtle);border-radius:0 0 var(--radius-xl) var(--radius-xl);flex-wrap:wrap;justify-content:flex-start;gap:10px;padding:14px 24px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.99)}}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:400px;display:flex;position:fixed;bottom:20px;left:20px}.toast{background:var(--color-bg-inverse);color:#fff;box-shadow:var(--shadow-lg);border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;animation:.18s pop;display:flex}.toast.error{background:var(--color-bg-danger-hover)}.toast button{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:8px;padding:3px 10px;font-weight:600}.empty{text-align:center;color:var(--color-text-secondary);padding:40px 16px}.empty svg{color:var(--color-text-tertiary);margin-bottom:8px}.spinner{border:3px solid var(--color-border-default);border-top-color:var(--color-bg-brand);border-radius:50%;width:24px;height:24px;margin:32px auto;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.alert{border:1px solid #0000;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13.5px;display:flex}.alert.info{background:var(--color-bg-info-subtle);color:#1849a9;border-color:#b2ddff}.alert.info svg{color:var(--color-icon-info)}.alert.warn{background:var(--color-bg-warning-subtle);color:#93370d;border-color:#fedf89}.alert.warn svg{color:var(--color-icon-warning)}.alert.bad{background:var(--color-bg-danger-subtle);color:#912018;border-color:#fecdca}.alert.bad svg{color:var(--color-icon-danger)}.alert.ok{background:var(--color-bg-success-subtle);color:#054f31;border-color:#abefc6}.alert.ok svg{color:var(--color-icon-success)}.alert svg{flex-shrink:0;margin-top:3px}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid #eaecf0;align-items:center;gap:10px;padding:12px 20px;display:flex}.list-item:last-child{border-bottom:0}a.list-item:hover{background:var(--color-bg-surface-subtle)}.list-item a{color:inherit}.progress{background:var(--color-bg-muted);border-radius:4px;height:8px;display:flex;overflow:hidden}.progress i{background:var(--color-bg-brand);border-radius:4px;height:100%;display:block}.kv{grid-template-columns:auto 1fr;gap:8px 16px;font-size:14px;display:grid}.kv dt{color:var(--color-text-secondary)}.kv dd{margin:0;font-weight:600}.pill-tile{border:1px solid var(--color-border-default);background:var(--color-bg-surface);border-radius:12px;padding:12px 14px}.building-card{cursor:pointer;color:inherit;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:block}.building-card:hover{box-shadow:var(--shadow-lg);text-decoration:none;transform:translateY(-2px)}.color-strip{border-radius:14px 14px 0 0;height:4px}.icon-tile{background:var(--color-bg-brand-subtle);width:40px;height:40px;color:var(--color-text-brand);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.daily-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.daily{border:1px solid var(--color-border-default);background:var(--color-bg-surface);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.daily.on{background:var(--color-bg-success-subtle);border-color:#abefc6}.daily.off{background:var(--color-bg-surface)}.daily.late{background:var(--color-bg-danger-subtle);border-color:#fecdca}.legend{color:var(--color-text-secondary);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.kanban{grid-template-columns:repeat(4,minmax(240px,1fr));gap:16px;display:grid;overflow-x:auto}.kanban-col{background:var(--color-bg-surface-subtle);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);min-height:200px;padding:12px}.kanban-col h4{color:var(--color-text-primary);justify-content:space-between;align-items:center;margin:2px 4px 12px;font-size:14px;font-weight:700;display:flex}.wo-card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);box-shadow:var(--shadow-xs);cursor:pointer;border-right:3px solid var(--color-border-strong);border-radius:12px;margin-bottom:10px;padding:12px 14px}.wo-card:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border-strong)}.wo-card.urgent{border-right-color:var(--color-icon-danger)}.wo-card.high{border-right-color:var(--color-icon-warning)}.login-wrap{background:var(--color-bg-surface);grid-template-columns:minmax(420px,1fr) 1.15fr;min-height:100vh;display:grid}.login-form{justify-content:center;align-items:center;padding:32px;display:flex}.login-form .box{width:100%;max-width:400px}.login-form .mark{background:var(--color-bg-brand);color:#fff;border-radius:14px;place-items:center;width:52px;height:52px;display:grid}.login-art{background:var(--color-bg-brand);color:#fff;flex-direction:column;justify-content:center;gap:22px;padding:56px 64px;display:flex;position:relative;overflow:hidden}.login-art:after{content:"";background:#ffffff0f;border-radius:50%;width:520px;height:520px;position:absolute;bottom:-220px;left:-180px}.login-art h1{font-size:34px;font-weight:700;line-height:1.4}.login-art p{color:#ffffffd9;max-width:520px;margin:0;font-size:15px}.login-art .feat{z-index:1;grid-template-columns:repeat(2,1fr);gap:14px;max-width:560px;display:grid;position:relative}.login-art .feat div{color:#fff;background:#ffffff1a;border:1px solid #ffffff38;border-radius:16px;align-items:center;gap:10px;padding:16px 18px;font-size:14px;font-weight:600;display:flex}.chart-box{height:260px}.chart-box.sm{height:200px}.note-box{background:var(--color-bg-warning-subtle);color:#93370d;border:1px dashed #fec84b;border-radius:10px;padding:10px 12px;font-size:13px}.sheet-status{align-items:center;gap:5px;display:inline-flex}.only-sm{display:none}.sticky-actions{background:linear-gradient(transparent, var(--color-bg-canvas) 30%);padding-top:14px;position:sticky;bottom:0}.form-card{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.form-tile{border:1px solid var(--color-border-default);border-radius:var(--radius-lg);background:var(--color-bg-surface);box-shadow:var(--shadow-xs);flex-direction:column;gap:8px;padding:18px;display:flex}.form-tile h4{color:var(--color-text-primary);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.form-tile p{color:var(--color-text-secondary);flex:1;margin:0;font-size:13px}.lang-tag{background:var(--color-bg-violet-subtle);color:var(--color-text-violet);border-radius:var(--radius-full);padding:1px 8px;font-size:11px;font-weight:600}.soon{opacity:.6}hr.sep{border:0;border-top:1px solid var(--color-border-default);margin:16px 0}@media (width<=1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-side{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(4,260px)}.login-wrap{grid-template-columns:1fr 1fr}}@media (width<=860px){.sidebar{z-index:90;transition:transform .2s;position:fixed;top:0;right:0;transform:translate(100%)}.sidebar.open{box-shadow:var(--shadow-lg);transform:none}.topbar .menu-btn{display:inline-flex}.topbar{flex-wrap:wrap;padding:10px 16px}.ws-select{flex:100%;order:5;min-width:0;max-width:none}.content,.owner-shell .content{padding:16px 16px 64px}.owner-top{flex-wrap:wrap;gap:14px;padding:0 16px}.owner-top .brand span{display:none}.owner-nav{order:3;width:100%;min-height:44px}.g2,.g3{grid-template-columns:1fr}.form-grid .c9,.form-grid .c8,.form-grid .c6,.form-grid .c4,.form-grid .c3,.form-grid .c2,.form-grid .c5{grid-column:span 12}.login-wrap{grid-template-columns:1fr}.login-art{display:none}.hide-sm{display:none!important}.only-sm{display:initial}.search .input{min-width:0}.page-head h1{font-size:20px}.stat .val{font-size:24px}}@media (width<=520px){.g4{grid-template-columns:1fr 1fr}.stat{padding:16px}.stat .ico{width:36px;height:36px}.stat .lbl{font-size:13.5px}.stat .val{margin-top:10px;font-size:19px}}@media print{.sidebar,.topbar,.owner-top,.toasts{display:none!important}body{background:#fff}.content{padding:0}}.recharts-surface{direction:ltr}.recharts-tooltip-wrapper,.recharts-legend-wrapper{direction:rtl}.help-btn{color:var(--color-text-brand)}.help-btn:hover{background:var(--color-bg-brand-subtle)}.help-search .input{min-width:300px}.help-h2{margin-top:4px;font-size:18px;font-weight:700}.help-hero{border-radius:var(--radius-xl);background:var(--color-bg-brand);color:#fff;gap:20px;padding:24px 28px;display:flex}.help-hero p{color:#ffffffe0;margin:8px 0 16px}.hero-step{color:#fff;background:#ffffff1f;border:1px solid #ffffff40;border-radius:12px;align-items:center;gap:10px;padding:10px 16px 10px 12px;font-weight:600;text-decoration:none;display:inline-flex}.hero-step:hover{background:#fff3;text-decoration:none}.hero-step .step-n{color:var(--color-bg-brand);background:#fff}.lesson-card{color:inherit;padding:18px;text-decoration:none;transition:border-color .12s,box-shadow .12s;display:block}.lesson-card:hover{border-color:var(--color-border-focus);box-shadow:var(--shadow-sm);text-decoration:none}.lesson-card b{margin-bottom:2px;font-size:15px;display:block}.path-card.mine{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #0f6e3d14}.chip{border-radius:var(--radius-full);background:var(--color-bg-brand-subtle);color:var(--color-text-brand);padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.lesson{flex-direction:column;gap:22px;font-size:15px;line-height:1.85;display:flex}.lesson.compact{gap:18px;font-size:14.5px}.lesson p{margin:0}.lesson-lead{color:var(--color-text-primary);font-size:16px;font-weight:600}.lesson-sec h3,.lesson-task h3{align-items:center;gap:8px;margin-bottom:8px;font-size:16px;font-weight:700;display:flex}.lesson-sec h3 svg{color:var(--color-icon-default)}.lesson-list{margin:0;padding-inline-start:20px}.lesson-task{border:1px solid var(--color-border-default);border-radius:var(--radius-lg);background:var(--color-bg-surface-subtle);padding:16px 18px}.lesson-task h3:before{content:"";background:var(--color-bg-brand);border-radius:2px;width:4px;height:18px}.steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.steps li{align-items:flex-start;gap:12px;display:flex}.step-n{background:var(--color-bg-brand);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;margin-top:1px;font-size:13px;font-weight:700;display:inline-grid}.step-t{padding-top:1px}.step-result{background:var(--color-bg-success-subtle);color:#054f31;border-radius:10px;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 12px;font-size:14px;display:flex}.step-result svg{color:var(--color-icon-success);flex-shrink:0;margin-top:4px}.lesson-box ul{margin:4px 0 0;padding-inline-start:18px}.faq{border-bottom:1px solid var(--color-border-default);padding:12px 2px}.faq:last-child{border-bottom:0}.faq summary{cursor:pointer;align-items:center;gap:8px;font-weight:600;list-style:none;display:flex}.faq summary:before{content:"+";background:var(--color-bg-muted);border-radius:6px;flex-shrink:0;place-items:center;width:22px;height:22px;font-weight:700;display:inline-grid}.faq[open] summary:before{content:"−"}.faq summary::-webkit-details-marker{display:none}.faq p{color:var(--color-text-secondary);margin:8px 30px 0 0}.glossary{grid-template-columns:1fr 1fr;margin:0;display:grid}.glossary>div{border-bottom:1px solid #eaecf0;padding:14px 20px}.glossary dt{margin-bottom:2px;font-weight:700}.glossary dd{color:var(--color-text-secondary);margin:0;font-size:14px}.drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0}.drawer{background:var(--color-bg-surface);width:min(560px,100%);height:100%;box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s slide;display:flex}@keyframes slide{0%{opacity:0;transform:translate(-24px)}}.drawer-h{border-bottom:1px solid var(--color-border-default);align-items:center;gap:12px;padding:16px 20px;display:flex}.drawer-h h3{font-size:17px;font-weight:700}.drawer-b{flex:1;padding:20px;overflow-y:auto}.drawer-f{border-top:1px solid var(--color-border-default);background:var(--color-bg-surface-subtle);gap:10px;padding:14px 20px;display:flex}.welcome-help{border-radius:var(--radius-lg);background:var(--color-bg-brand-subtle);border:1px solid #cfe9da;align-items:center;gap:14px;margin-bottom:20px;padding:14px 18px;display:flex}.book-toc{font-size:15px;line-height:2}.book-lesson{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:24px 28px}.book-lesson h2{color:var(--color-text-brand);margin-bottom:14px;font-size:20px;font-weight:700}@media (width<=860px){.help-search .input{min-width:0}.help-search{width:100%}.glossary{grid-template-columns:1fr}.help-hero{padding:20px}.help-btn{font-size:13px}}@media print{.no-print,.help-btn,.welcome-help{display:none!important}.card,.book-lesson,.lesson-task{box-shadow:none}.book-lesson{break-before:page;border:0;padding:0}.lesson-task{break-inside:avoid;background:#fff}.step-n{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
