:root{--app-bg:#e7eff6;--surface:#fff;--primary:#0872d8;--primary-hover:#075fb5;--primary-soft:#d5eaff;--accent:#12b886;--accent-soft:#dff8f0;--text:#111827;--text-strong:#020617;--muted:#293b52;--border:#bfd0df;--danger:#f43f46;--danger-soft:#fff0f1;--success:#12b886;--warning:#f59e0b;--shadow:0 18px 45px #0f2a4629;color:var(--text);background:var(--app-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;font-weight:650}*{box-sizing:border-box}body{background:var(--app-bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{letter-spacing:0;font-weight:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #1d7ed859}a{color:inherit}.app-shell{background:var(--app-bg);min-height:100vh;color:var(--text);grid-template-columns:282px minmax(0,1fr);transition:grid-template-columns .2s;display:grid}.app-shell.sidebar-collapsed{grid-template-columns:82px minmax(0,1fr)}@media (width>=1200px){.app-shell.dashboard-pc-zoom{zoom:.8;min-height:125vh}}.sidebar{background:var(--surface);color:var(--text);z-index:20;border-right:1px solid #adc3d5;flex-direction:column;gap:26px;min-height:100vh;padding:22px 16px;display:flex;position:sticky;top:0;box-shadow:10px 0 30px #0f2a4617}.brand{justify-content:space-between;align-items:flex-start;gap:14px;padding:2px 0 14px;display:flex;position:relative}.sidebar-toggle{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;flex:none;place-items:center;margin-left:auto;display:inline-grid}.sidebar-toggle:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.sidebar-collapsed .sidebar{padding-inline:12px}.sidebar-collapsed .brand{justify-content:center;gap:0;padding-inline:0}.sidebar-collapsed .brand-logo-card,.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-subitem span,.sidebar-collapsed .pwa-install-button span,.sidebar-collapsed .role-card{display:none}.sidebar-collapsed .sidebar-toggle{margin:0}.sidebar-collapsed .nav-item,.sidebar-collapsed .nav-subitem,.sidebar-collapsed .pwa-install-button{justify-content:center;padding:0}.brand-logo-card{background:#fff;border-radius:18px;flex:none;place-items:center;width:194px;height:86px;padding:10px;display:grid;box-shadow:0 20px 46px #0f172a1a}.brand-logo{object-fit:contain;width:174px;height:60px;display:block}.main-nav,.nav-group{gap:4px;display:grid}.nav-item,.nav-subitem,.department-item,.tab,.quick-status,.icon-button,.ghost-button,.primary-button,.secondary-button,.danger-button,.filter-pill,.active-filter,.scrim{font:inherit}.nav-item{color:#253044;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;width:100%;min-height:46px;padding:0 13px;font-weight:900;display:flex}.task-actions-row{justify-content:flex-end}.nav-item:hover,.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:900;box-shadow:inset 3px 0 #0872d8}.nav-submenu{border-left:2px solid #b7cde0;gap:4px;margin:2px 0 6px 14px;padding-left:12px;display:grid}.nav-subitem{color:#526175;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:9px;width:100%;min-height:38px;padding:0 10px;font-weight:850;display:flex}.nav-subitem:hover,.nav-subitem.active{color:var(--primary-hover);background:#edf6ff}.sidebar-collapsed .nav-submenu{border-left:0;margin:2px 0 6px;padding-left:0}.role-card{border:1px solid var(--border);background:#f4f9fd;border-radius:16px;margin-top:auto;padding:14px;box-shadow:0 12px 28px #0f2a4617}.pwa-install-button{color:#075eae;width:100%;min-height:46px;font:inherit;cursor:pointer;background:linear-gradient(135deg,#eef8ff,#dceeff);border:1px solid #9bc9eb;border-radius:12px;justify-content:flex-start;align-items:center;gap:10px;padding:0 13px;font-weight:900;display:flex}.pwa-install-button:hover{background:#dceeff;border-color:#0872d8}.pwa-offline-banner{z-index:900;top:max(8px, env(safe-area-inset-top));color:#7a4400;text-align:center;background:#fff3cd;border:1px solid #f0b429;border-radius:999px;max-width:calc(100vw - 24px);padding:9px 16px;font-size:12px;font-weight:850;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #59380533}.pwa-install-dialog-backdrop{z-index:700;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#08192b8c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.pwa-install-dialog{color:#1c3047;background:#fff;border:1px solid #b9d3e8;border-radius:22px;gap:15px;width:min(470px,100%);padding:24px;display:grid;box-shadow:0 30px 80px #041c344d}.pwa-install-dialog-icon{color:#fff;background:linear-gradient(135deg,#0872d8,#075eae);border-radius:16px;place-items:center;width:52px;height:52px;display:grid}.pwa-install-dialog h2{margin:4px 0 0;font-size:23px}.pwa-install-dialog ol{color:#334b63;gap:9px;margin:0;padding-left:22px;font-weight:700;line-height:1.45;display:grid}.pwa-install-dialog p{color:#0b5d47;background:#e8f8f2;border-radius:12px;margin:0;padding:11px 12px;font-size:12px;font-weight:750;line-height:1.4}.pwa-install-dialog .primary-button{justify-content:center;width:100%;min-height:46px}.role-card select{border:1px solid var(--border);width:100%;height:42px;color:var(--text-strong);background:#fff;border-radius:12px;margin:8px 0;padding:0 10px;font-weight:700}.role-value,.role-user-name{display:block}.role-value{color:var(--text-strong);margin-top:9px;font-size:15px}.role-user-name{color:var(--primary-hover);margin-top:4px;font-size:13px;font-weight:850}.role-debug-badge{color:#9a3412;background:#ffedd5;border-radius:999px;align-items:center;width:fit-content;margin:2px 0 5px;padding:4px 8px;font-size:11px;font-weight:850;display:inline-flex}.role-card p,.title-block p,.panel-title span,.empty-state p,.metric p,.attention-row p{color:var(--muted)}.role-card p{color:var(--muted);font-size:12px;line-height:1.4}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:11px;font-weight:850}.workspace{background:linear-gradient(180deg, #eef5fa 0%, var(--app-bg) 240px), var(--app-bg);flex-direction:column;min-width:0;display:flex}.topbar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border-bottom:1px solid #adc3d5;justify-content:space-between;align-items:center;gap:16px;height:76px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 5px 18px #0f2a4617}.topbar-brand-row{align-items:center;gap:14px;min-width:0;display:flex}.topbar-brand{white-space:nowrap;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;display:flex}.topbar-brand strong{color:var(--primary-hover);font-size:30px;font-weight:950;line-height:1}.topbar-brand span{color:#34425a;font-size:16px;font-weight:800;line-height:1}.topbar-actions,.head-actions,.panel-toolbar,.detail-head,.form-actions,.toolbar-actions{align-items:center;gap:10px;display:flex}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.inline-edit-row{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fbfdff;grid-template-columns:minmax(240px,1fr) minmax(160px,.35fr) auto;align-items:end;gap:12px;padding:14px 16px;display:grid}.password-field{align-items:center;display:flex;position:relative}.password-field input{width:100%;padding-right:48px}.password-toggle{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:inline-grid;position:absolute;right:8px}.password-toggle:hover{background:var(--primary-soft);color:var(--primary)}.segmented-control{border:1px solid var(--border);background:#f8fbff;border-radius:14px;gap:4px;width:fit-content;padding:5px;display:inline-flex}.segment{min-height:38px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 14px;font-weight:900}.segment.active{background:var(--primary-soft);color:var(--primary-hover)}.multi-check-list{border:1px solid var(--border);background:#fbfdff;border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;padding:10px;display:flex}.check-pill{border:1px solid var(--border);min-height:34px;color:var(--text-strong);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:0 11px;font-weight:850;display:inline-flex}.check-pill input{accent-color:var(--primary)}.topbar-actions{justify-content:flex-end;margin-left:auto;position:relative}.notification-button{position:relative}.notification-count{color:#fff;background:#dc2626;border:2px solid #fff;border-radius:999px;place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:10px;font-weight:950;display:grid;position:absolute;top:-7px;right:-7px}.notification-popover{z-index:80;border:1px solid var(--border);background:#fff;border-radius:16px;width:min(390px,100vw - 24px);position:absolute;top:calc(100% + 12px);right:92px;overflow:hidden;box-shadow:0 22px 55px #0f172a33}.notification-head{border-bottom:1px solid var(--border);background:#f7fbff;justify-content:space-between;gap:12px;padding:14px 16px;display:flex}.notification-head span{color:#dc2626;font-size:12px;font-weight:900}.notification-list{max-height:420px;overflow:auto}.notification-list article{border-bottom:1px solid var(--border);gap:4px;padding:12px 16px;display:grid}.notification-list article>span,.notification-list small{color:var(--muted);font-size:11px}.notification-list article strong{font-size:13px;line-height:1.4}.notification-list>p{color:var(--muted);text-align:center;margin:0;padding:24px 16px}.sql-sync-indicator{color:#087a4b;white-space:nowrap;background:#e7f7ef;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:11px;font-weight:900;display:inline-flex}.sql-sync-indicator:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.sql-sync-indicator.saving{color:#0869c8;background:#e8f3ff}.sql-sync-indicator.error{color:#c92a2a;background:#fff1f2}.user-chip{border:1px solid var(--border);min-height:44px;color:var(--text-strong);background:#fff;border-radius:14px;align-items:center;padding:0 12px;font-weight:800;display:flex}.icon-button{border:1px solid var(--border);width:42px;height:42px;color:var(--text);cursor:pointer;background:#fff;border-radius:12px;place-items:center;display:inline-grid}.danger-icon-button{color:var(--danger);background:var(--danger-soft);border-color:#ffd1d8}.table-actions{justify-content:center;align-items:center;gap:6px;display:inline-flex}.table-actions .icon-button{width:34px;height:34px;color:var(--primary);border-radius:10px}.table-actions .danger-icon-button{color:var(--danger)}.mobile-menu{display:none}.page{gap:18px;padding:28px;display:grid}.financial-loading-panel{color:#173f69;text-align:center;place-content:center;justify-items:center;gap:10px;min-height:180px;display:grid}.financial-loading-panel small{color:var(--muted);font-weight:700}.dashboard-loading-layout{gap:14px;display:grid}.dashboard-loading-panel{min-height:145px}.dashboard-loading-skeleton{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.dashboard-loading-skeleton span,.dashboard-loading-table-skeleton i{background:linear-gradient(90deg,#edf3f8 20%,#f9fbfd 42%,#edf3f8 64%) 0 0/260% 100%;border:1px solid #d8e5f1;border-radius:14px;animation:1.35s ease-in-out infinite dashboard-loading-shimmer;display:block;overflow:hidden}.dashboard-loading-skeleton span{height:92px}.dashboard-loading-table-skeleton{background:#fff;border:1px solid #d8e5f1;border-radius:16px;gap:7px;padding:14px;display:grid}.dashboard-loading-table-skeleton i{border-radius:8px;height:42px}@keyframes dashboard-loading-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.breadcrumb{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.title-block h1{color:var(--text-strong);letter-spacing:-.02em;margin:0;font-size:30px;font-weight:850;line-height:1.2}.title-block p{margin-top:6px;font-size:16px;line-height:1.5}.primary-button,.secondary-button,.danger-button,.ghost-button{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:7px;min-height:48px;padding:0 18px;font-weight:850;display:inline-flex}.primary-button{background:var(--primary);color:#fff;box-shadow:0 12px 24px #0872d82e}.primary-button:hover{background:var(--primary-hover)}.primary-button:disabled{cursor:wait;opacity:.9}.save-progress-button{transition:background .2s,transform .2s,box-shadow .2s}.save-progress-button.done{background:var(--accent);box-shadow:0 12px 24px #12b88638}.task-save-success{color:#087a4b;background:#e8faf2;border:1px solid #8ce0bd;border-radius:12px;align-items:center;gap:11px;margin-top:10px;padding:12px 14px;display:flex;box-shadow:0 8px 20px #087a4b1a}.task-save-success>svg{flex:none}.task-save-success>div{gap:2px;display:grid}.task-save-success strong{font-size:14px}.task-save-success span{color:#166a4a;font-size:12px;font-weight:700}.done-icon{color:#fff}.loading-spinner{border:2px solid #ffffff6b;border-top-color:#fff;border-radius:50%;width:17px;height:17px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.secondary-button{background:var(--primary-soft);color:var(--primary)}.danger-button{color:#b42318;background:#fee4e2}.ghost-button{color:var(--primary);border-color:var(--border);background:#fff}.full{width:100%}.tabs-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;display:flex}.tabs{align-items:center;gap:4px;min-width:0;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:14px 18px;font-size:15px;font-weight:850}.tab.active{color:var(--primary-hover);border-bottom-color:var(--primary)}.quick-status-tabs{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding-bottom:7px;display:flex}.quick-status{cursor:pointer;color:#41506a;background:#eef4f8;border:0;border-radius:8px;align-items:center;gap:6px;min-height:38px;padding:0 13px;font-weight:900;display:inline-flex}.quick-status.waiting{color:#7e22ce;background:#f3e8ff}.quick-status.completed{color:#047857;background:#dcfce7}.quick-status.approved{color:#047857;background:#d9fbe8}.quick-status.overdue{color:#b00020;background:#ffe5e8}.quick-status.upcoming{color:#9a5b00;background:#fff3c4}.quick-status.active{box-shadow:inset 0 0 0 2px}.excel-action-divider{background:#c8d7e3;width:1px;height:28px;margin:0 2px}.excel-action-button{color:#08713f;min-height:38px;font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #9dc7ad;border-radius:8px;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}.excel-action-button:hover{background:#e8f8ef;border-color:#54a675}.excel-action-button.import-button{color:var(--primary-hover);border-color:#a8cbea}.excel-action-button.import-button:hover{border-color:var(--primary);background:#eaf4ff}.excel-action-button input{display:none}.import-report{border:1px solid #9cc9ec;border-left:4px solid var(--primary);background:#f7fbff;border-radius:10px;gap:10px;padding:13px 15px;display:grid;box-shadow:0 8px 22px #0872d80f}.import-report.success{background:#f0fbf5;border-color:#78c79a #78c79a #78c79a #0a9f5a}.import-report-summary,.import-report-actions,.import-counts{align-items:center;gap:10px;display:flex}.import-report-summary{justify-content:space-between}.import-report-summary>div:first-child{gap:2px;display:grid}.import-report-summary strong{color:var(--text-strong);font-weight:950}.import-report-summary span{color:var(--muted);font-size:13px}.import-counts span{border-radius:7px;align-items:center;min-height:28px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.import-counts .valid-count{color:#08713f;background:#dcfce7}.import-counts .error-count{color:#526175;background:#e8eff5}.import-counts .error-count.has-error{color:#b00020;background:#ffe5e8}.import-error-list{color:#a3132c;background:#fff1f2;border-radius:8px;gap:4px;padding:9px 11px;font-size:12px;font-weight:750;display:grid}.import-report-actions{justify-content:flex-end}.sub-tabs{border:1px solid var(--border);background:#fff;border-radius:14px;align-items:center;gap:6px;width:fit-content;padding:5px;display:inline-flex;box-shadow:0 10px 24px #0f172a0d}.sub-tab{min-height:40px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 14px;font-weight:850}.sub-tab.active{background:var(--primary-soft);color:var(--primary-hover)}.task-search-row{z-index:100;isolation:isolate;grid-template-columns:minmax(220px,.8fr) minmax(270px,1fr) minmax(270px,1fr) auto;grid-template-areas:"conclusion department deputy clear""content content content content";align-items:center;gap:12px;display:grid;position:relative;overflow:visible}.conclusion-search-box{grid-area:conclusion}.department-search-box{grid-area:department}.deputy-leader-search-box{grid-area:deputy}.task-content-search-box{grid-area:content}.task-search-row>.search-clear-button{grid-area:clear}.task-search-box{border:1px solid var(--border);min-height:64px;color:var(--muted);background:#fbfdff;border-radius:16px;grid-template-columns:22px auto 1fr;align-items:center;gap:8px;padding:0 16px;display:grid}.task-search-box span{color:var(--text-strong);white-space:nowrap;font-size:13px;font-weight:850}.task-search-box input,.task-search-box select{width:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:0;min-width:0}.task-search-box select{cursor:pointer}.deputy-leader-search-box{z-index:109;background:linear-gradient(135deg,#fbfdff 0%,#f4f9ff 100%);border-color:#c8d9eb}.deputy-leader-search-box:focus-within{background:#fff;border-color:#75b9ee;box-shadow:0 0 0 3px #0b78de1a}.department-search-box{z-index:110;cursor:pointer;transition:border-color .18s,box-shadow .18s,background .18s;position:relative}.deputy-leader-search-menu{min-width:330px;left:-50px}.department-search-box:hover,.department-search-box.open{background:#fff;border-color:#75b9ee;box-shadow:0 0 0 3px #0b78de1a}.department-combobox{align-items:center;gap:10px;min-width:0;min-height:62px;display:flex;position:relative}.department-combobox input{cursor:pointer;align-self:stretch}.department-search-box.open .department-combobox input{cursor:text}.department-inline-meta{flex:none;align-items:center;gap:6px;display:inline-flex}.department-inline-meta strong{min-width:30px;min-height:26px;color:var(--text-strong);background:#eef4f8;border-radius:9px;place-items:center;font-size:12px;font-weight:900;display:inline-grid}.department-inline-meta em{color:var(--danger);white-space:nowrap;font-size:12px;font-style:normal;font-weight:850}.department-search-menu{z-index:1000;border:1px solid var(--border);background:#fff;border-radius:16px;max-height:min(430px,100vh - 180px);padding:8px;position:absolute;top:calc(100% + 14px);left:-46px;right:-16px;overflow:auto;box-shadow:0 20px 48px #0f172a29}.department-search-option{width:100%;min-height:50px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-weight:850;display:flex}.department-search-option:hover,.department-search-option.active{background:var(--primary-soft);color:var(--primary)}.search-clear-button{background:var(--primary-soft);min-height:64px;color:var(--primary);font:inherit;cursor:pointer;border:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:850;display:inline-flex}.task-work-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;min-height:calc(100vh - 218px);display:grid;position:relative}.split-layout{border:1px solid var(--border);background:#fff;border-radius:16px;gap:0;min-width:0;min-height:calc(100vh - 218px);display:grid;overflow:hidden;box-shadow:0 14px 38px #0f172a14}.split-layout.no-detail{grid-template-columns:minmax(0,1fr)}.split-layout.has-detail{grid-template-columns:minmax(0,1fr) minmax(420px,460px)}.department-filter{border:1px solid var(--border);background:#fff;border-radius:16px;min-width:0;display:none;position:sticky;top:18px;overflow:hidden;box-shadow:0 14px 38px #0f172a14}.task-filter-head{border-bottom:1px solid var(--border);min-height:58px;color:var(--primary);align-items:center;gap:9px;padding:14px 16px;display:flex}.task-filter-head strong{color:var(--text-strong);font-weight:850}.task-filter-form{gap:14px;padding:16px;display:grid}.task-filter-form .field input,.task-filter-form .field select{min-height:44px}.filter-pill,.active-filter{border:1px solid var(--border);height:40px;color:var(--primary);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:7px;margin:10px 8px 0;padding:0 10px;display:inline-flex}.active-filter{background:var(--primary-soft);border-color:#b9dcff}.department-list{gap:6px;padding:10px;display:grid}.department-item{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;min-height:50px;padding:8px 10px;display:flex}.department-item.active{background:var(--primary-soft);color:var(--primary);font-weight:850}.department-item>span:first-child{font-weight:750}.department-meta{flex:none;justify-items:end;gap:2px;display:grid}.department-meta strong{min-width:30px;min-height:26px;color:var(--text-strong);background:#f1f5f9;border-radius:9px;place-items:center;font-size:12px;font-weight:850;display:inline-grid}.department-meta em{color:var(--danger);white-space:nowrap;font-size:11px;font-style:normal;font-weight:800}.table-panel,.detail-panel,.form-panel,.panel{border:1px solid var(--border);background:#fff;box-shadow:0 12px 30px #0f2a461a}.table-panel{border-radius:16px;min-width:0}.data-table-wrap{overscroll-behavior-inline:contain;scrollbar-gutter:stable;width:100%;min-width:0;max-width:100%;max-height:min(620px,100vh - 260px);overflow:auto}.data-table-wrap>.data-table>thead>tr>th{z-index:5;position:sticky;top:0;box-shadow:inset 0 -1px #dbe7f3}@media (height<=720px){.data-table-wrap{max-height:430px}}.data-table{border-collapse:collapse;width:100%;min-width:1180px;font-size:13px}.split-layout .data-table{min-width:2140px}.data-table th{color:var(--text-strong);text-align:left;border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;background:#f1f6fa;padding:11px 12px;font-weight:850}.data-table th:last-child,.data-table td:last-child{text-align:center;border-right:0}.data-table td{border-bottom:1px solid var(--border);color:#26384d;vertical-align:middle;text-overflow:ellipsis;white-space:nowrap;max-width:360px;padding:10px 12px;font-weight:650;overflow:hidden}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover,.selected-row{background:var(--primary-soft)}.strong-cell{color:var(--text-strong);font-weight:750}.truncate-cell{text-overflow:ellipsis;white-space:nowrap;max-width:420px;overflow:hidden}.data-table .code-cell{white-space:normal;overflow-wrap:anywhere;max-width:150px;font-size:12.5px;line-height:1.35}.data-table .clamp-cell{white-space:normal;font-size:12.5px;line-height:1.35;overflow:hidden}.cell-clamp-content{-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.new-task-badge{color:#fff;vertical-align:2px;background:#dc2626;border-radius:999px;margin-right:7px;padding:2px 6px;font-size:9px;font-weight:950;animation:1.8s ease-in-out infinite new-task-pulse;display:inline-flex}@keyframes new-task-pulse{50%{box-shadow:0 0 0 5px #dc26261f}}.task-attachment-field{background:#f8fcff;border:1px dashed #9bc8e8;border-radius:12px;gap:8px;padding:12px;display:grid}.task-attachment-field>label{color:var(--primary-hover);font-weight:950}.attached-file{min-width:0;color:var(--primary-hover);background:#eaf5ff;border-radius:10px;align-items:center;gap:8px;padding:9px 10px;display:flex}.attached-file a{text-overflow:ellipsis;min-width:0;color:inherit;flex:1;font-weight:850;overflow:hidden}.attached-file.readonly{grid-column:1/-1}.approve-button{color:#fff;min-height:40px;font:inherit;cursor:pointer;background:#0f9f6e;border:1px solid #0f9f6e;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:0 15px;font-weight:900;display:inline-flex}.approve-button:disabled{cursor:default;opacity:.65}.permission-scope-field{gap:10px;display:grid}.data-table .summary-cell{max-width:520px}.data-table .task-content-cell{cursor:zoom-in;max-width:300px}.task-data-table .task-project-column{width:118px}.task-data-table th:first-child,.task-data-table td:first-child{white-space:normal;overflow-wrap:anywhere;word-break:break-word;width:118px;min-width:104px;max-width:132px;line-height:1.3}.mobile-task-list{display:none}.mobile-task-card{cursor:pointer;background:#fff;border-bottom:1px solid #d8e4ee;grid-template-columns:76px minmax(0,1fr) 28px;gap:12px;padding:15px 10px 15px 12px;display:grid;position:relative}.mobile-task-card:active,.mobile-task-card.selected{background:#eef7ff}.mobile-task-side{text-align:center;align-content:start;justify-items:center;gap:7px;padding-top:2px;display:grid}.mobile-task-project{color:#0968bd;overflow-wrap:anywhere;max-width:72px;font-size:13px;font-weight:950;line-height:1.2}.mobile-task-days{color:#0d7f58;font-size:19px;font-weight:950;line-height:1}.mobile-task-days.negative{color:#dc2626}.mobile-task-side small{color:#465b72;white-space:nowrap;font-size:11px;font-weight:750}.mobile-task-body{min-width:0}.mobile-task-title{color:#12263d;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;font-weight:900;line-height:1.28;display:-webkit-box;overflow:hidden}.mobile-task-meta{gap:3px;margin:10px 0 0;display:grid}.mobile-task-meta>div{grid-template-columns:92px minmax(0,1fr);gap:5px;display:grid}.mobile-task-meta dt,.mobile-task-meta dd{margin:0;font-size:12px;line-height:1.3}.mobile-task-meta dt{color:#8492a2}.mobile-task-meta dd{color:#26384d;overflow-wrap:anywhere;min-width:0;font-weight:750}.mobile-task-status-row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.mobile-task-status-row .status-badge,.mobile-task-status-row .approval-badge{min-height:26px;padding:4px 9px;font-size:10px}.mobile-task-implementation{color:#52677f;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:9px 0 0;font-size:12px;font-weight:650;line-height:1.35;display:-webkit-box;overflow:hidden}.mobile-task-more{color:#607489;align-content:center;justify-items:center;gap:14px;display:grid}.mobile-task-delete{color:#c62828;background:#fff0f0;border:0;border-radius:9px;place-items:center;width:32px;height:32px;padding:0;display:grid}.mobile-task-empty{color:#64748b;text-align:center;padding:28px 18px;font-size:13px;font-weight:750}.special-priority-star{color:#9333ea;vertical-align:-3px;flex:none;margin-right:7px;display:inline-block}.special-tasks-panel{background:linear-gradient(135deg,#fff 0%,#fbf7ff 100%);border:1px solid #e3c8ff;margin-top:14px;overflow:hidden}.dashboard-special-progress-grid{grid-template-columns:minmax(410px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:14px;margin-top:14px;display:grid}.dashboard-special-progress-grid>.panel{min-width:0;height:100%}.dashboard-special-progress-grid .special-tasks-panel{margin-top:0}.dashboard-special-progress-grid .progress-row{grid-template-columns:150px minmax(0,1fr) 104px}.dashboard-status-attention-grid>.dashboard-card,.dashboard-status-attention-grid>.panel{min-width:0;height:100%}.special-tasks-head{border-bottom:1px solid #eddcff}.special-tasks-title{align-items:center;gap:12px;display:flex}.special-tasks-title h2{margin:0 0 3px}.special-tasks-title p{color:var(--text-muted);margin:0;font-size:12px}.special-star-box{color:#9333ea;background:#f3e8ff;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.special-count{color:#fff;background:#9333ea;border-radius:999px;place-items:center;min-width:36px;height:36px;font-weight:900;display:grid}.special-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;display:grid}.special-task-card{background:#fff;border:1px solid #ead8fa;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:8px;padding:12px 14px;display:grid}.special-task-card strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.special-task-card p{color:var(--text-muted);margin:5px 0 0;font-size:12px}.special-due{color:#7e22ce;white-space:nowrap;background:#f3e8ff;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:850}.special-due.overdue{color:#b42318;background:#fee4e2}.special-empty{color:var(--text-muted);text-align:center;padding:22px}@media (width<=900px){.special-task-grid{grid-template-columns:1fr}}@media (width<=1200px){.dashboard-special-progress-grid{grid-template-columns:1fr}}.task-content-preview{z-index:1000;color:#172033;white-space:pre-wrap;pointer-events:none;background:#fffffffa;border:1px solid #e2e8f0;border-radius:16px;width:min(720px,100vw - 32px);max-height:260px;padding:18px 22px;font-size:17px;font-weight:650;line-height:1.55;animation:.14s ease-out task-preview-in;position:fixed;overflow:auto;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 18px 48px #0f172a38}.task-content-preview.below{transform:translate(-50%,10px)}.task-content-preview:after{content:"";background:#fff;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;width:16px;height:16px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.task-content-preview.below:after{border:0;border-top:1px solid #e2e8f0;border-left:1px solid #e2e8f0;top:-8px;bottom:auto}@keyframes task-preview-in{0%{opacity:0;scale:.98}to{opacity:1;scale:1}}.data-table .implementation-cell{cursor:zoom-in;max-width:380px}.days-cell{color:var(--text-strong);text-align:center;font-weight:900}.days-cell.negative{color:var(--danger)}.status-badge{white-space:nowrap;color:#465466;background:#edf2f7;border-radius:999px;align-items:center;min-height:26px;padding:0 8px;font-size:12px;font-weight:850;display:inline-flex}.status-pending,.status-overdue{background:var(--danger-soft);color:var(--danger)}.status-processing{background:var(--primary-soft);color:var(--primary)}.status-upcoming{color:#b45309;background:#fff0d6}.status-completed,.status-active{background:var(--accent-soft);color:#087f5b}.approval-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;min-height:26px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.approval-badge.waiting{color:#7e22ce;background:#f3e8ff}.approval-badge.approved{background:var(--accent-soft);color:#087f5b}.approval-toggle{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.approval-toggle input{width:16px;height:16px;accent-color:var(--accent)}.approval-permission-table select{border:1px solid var(--border);min-height:38px;color:var(--text-strong);font:inherit;background:#fff;border-radius:10px;padding:0 10px;font-weight:750}.permission-matrix-toolbar{align-items:center}.permission-rule-badge{color:#087f5b;background:var(--accent-soft);border-radius:999px;flex:none;align-items:center;gap:7px;padding:9px 12px;font-size:13px;font-weight:850;display:inline-flex}.department-permission-table{min-width:1380px}.department-permission-table td:first-child strong,.department-permission-table td:first-child small{display:block}.department-permission-table td:first-child small{max-width:250px;color:var(--muted);margin-top:5px;font-size:11px;line-height:1.4}.permission-form-button{justify-content:center;min-height:44px}.permission-setup-cell{justify-content:space-between;align-items:center;gap:12px;min-width:330px;display:flex}.permission-setup-cell>span{color:var(--text-strong);font-size:13px;font-weight:750}.permission-setup-cell .secondary-button{flex:none;min-height:36px;padding:8px 11px}.permission-profile-select{border:1px solid var(--border);width:100%;min-width:220px;min-height:42px;color:var(--text-strong);font:inherit;background:#fff;border-radius:11px;padding:0 12px;font-weight:800}.permission-save-button{border-radius:10px;flex:none;min-height:40px;padding:0 14px;font-size:14px;box-shadow:0 6px 14px #0872d829}.permission-save-button:disabled{cursor:default;color:#8a98aa;box-shadow:none;opacity:1;background:#eef3f8;border-color:#d8e1ec}.status-director,.status-admin{color:#5b21b6;background:#ede9fe}.status-office{background:var(--accent-soft);color:#087f5b}.status-manager,.status-staff{color:#92400e;background:#fef3c7}.detail-panel{border-left:1px solid var(--border);align-content:start;gap:14px;padding:18px;display:grid}.task-drawer{background:linear-gradient(#fff 0%,#f8fbff 100%);gap:16px}.detail-head{justify-content:space-between}.drawer-subtitle{color:var(--muted);margin-top:3px;font-size:12px;font-weight:750;display:block}.detail-head h2,.panel-title h2,.panel-head h2{color:var(--text-strong);margin:0;font-size:18px;font-weight:850}.task-title-block,.task-hero-card{border:1px solid var(--border);background:#fbfdff;border-radius:14px;gap:9px;padding:12px;display:grid}.task-hero-card{background:#fff;padding:16px;box-shadow:0 12px 24px #0f172a0d}.task-hero-top,.task-hero-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.task-hero-card h3,.task-title-block h3{color:var(--text-strong);margin:0;font-size:17px;line-height:1.45}.task-hero-meta{color:var(--muted);font-size:12px;font-weight:850}.project-chip{background:var(--primary-soft);min-height:28px;color:var(--primary-hover);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:950;display:inline-flex}.task-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.task-info-grid .detail-item{border:1px solid var(--border);background:#fff;border-radius:12px;padding:11px 12px}.task-drawer .detail-item span{color:var(--primary);font-weight:900}.task-info-grid .detail-item.large{grid-column:1/-1}.detail-item{gap:4px;display:grid}.detail-item span,.file-row span,.field span,.update-box label{color:var(--muted);font-size:13px;font-weight:800}.detail-item strong,.file-row strong{color:var(--text-strong);font-size:15px;font-weight:750;line-height:1.45}.detail-item.large strong{font-size:14px;font-weight:550}.update-box{background:linear-gradient(#f1f8ff 0%,#fff 100%);border:2px solid #8fc7ff;border-radius:16px;gap:11px;margin-top:2px;padding:14px;display:grid;box-shadow:0 14px 34px #0872d821}.update-box-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.update-box-head h3{color:var(--primary);text-underline-offset:6px;margin:0;font-size:16px;font-weight:950;text-decoration:underline;text-decoration-thickness:3px}.task-drawer .update-box label,.approval-control-row label{color:var(--primary);font-weight:950}.update-box textarea,.field textarea{resize:vertical;min-height:96px}.update-box textarea,.update-box select,.update-box input,.field input,.field select,.field textarea{border:1px solid var(--border);width:100%;color:var(--text);font:inherit;box-sizing:border-box;outline-color:var(--primary);background:#fff;border-radius:12px;padding:12px 13px}.field select{min-height:46px}.field-hint{color:var(--muted);font-size:12px;font-weight:600;line-height:1.4}.update-box select{min-height:44px}.muted-dash{color:var(--muted);font-weight:850}.approval-control-row{gap:8px;display:grid}.readonly-approval{border:1px dashed var(--border);min-height:44px;color:var(--text-strong);background:#fbfdff;border-radius:12px;align-items:center;padding:0 12px;font-size:13px;font-weight:850;display:flex}.readonly-approval.muted{color:var(--muted)}.task-detail-overlay{z-index:1200;background:#e9f0f5;position:fixed;inset:0;overflow:auto}.task-detail-page{background:#fff;width:100%;min-height:100vh}.task-detail-header{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-sizing:border-box;background:#fffffff5;border-bottom:1px solid #cbdbe7;justify-content:space-between;align-items:center;gap:20px;min-height:86px;padding:16px clamp(20px,3vw,48px);display:flex;position:sticky;top:0}.task-detail-header h2{color:var(--text-strong);margin:3px 0 0;font-size:25px;font-weight:950}.task-detail-header p{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:700}.task-detail-close{min-height:44px;color:var(--text-strong);font:inherit;cursor:pointer;background:#fff;border:1px solid #bfd1df;border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-weight:900;display:inline-flex}.task-detail-close:hover{border-color:var(--primary);color:var(--primary-hover);background:#f0f7ff}.task-detail-columns{grid-template-columns:minmax(0,1.12fr) minmax(430px,.88fr);min-height:calc(100vh - 86px);display:grid}.task-fixed-pane,.task-update-pane{align-content:start;gap:22px;min-width:0;padding:clamp(22px,3vw,46px);display:grid}.task-fixed-pane{background:#fff}.task-update-pane{background:#eaf3fa;border-left:1px solid #b9d2e5}.task-section-heading{border-bottom:2px solid #d9e5ee;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding-bottom:13px;display:flex}.task-section-heading>div{align-items:center;gap:10px;display:flex}.task-section-heading h3{color:var(--primary-hover);margin:0;font-size:18px;font-weight:950}.task-section-heading>span{color:var(--muted);text-align:right;font-size:12px;font-weight:750}.fixed-heading-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.fixed-heading-actions>span{color:var(--muted);text-align:right;font-size:12px;font-weight:750}.adjust-task-button{min-height:36px;color:var(--primary-hover);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #86bce5;border-radius:9px;align-items:center;gap:7px;padding:0 12px;font-size:12px;font-weight:900;display:inline-flex}.adjust-task-button:hover{border-color:var(--primary);background:#eaf5ff}.task-adjustment-form{border:1px solid #91c4ea;border-top:4px solid var(--primary);background:#f8fcff;border-radius:12px;gap:14px;padding:18px;display:grid;box-shadow:0 14px 30px #0f497714}.task-adjustment-source-note{color:var(--primary-hover);background:#e7f3ff;border-radius:10px;align-items:center;gap:9px;padding:10px 12px;font-size:12px;font-weight:750;display:flex}.task-adjustment-source-note span{flex:1}.task-adjustment-source-note button{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:950}.task-adjustment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.task-adjustment-form .field{margin:0}.task-adjustment-form textarea{min-height:88px}.adjustment-department-list{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.task-adjustment-actions{justify-content:flex-end;gap:10px;display:flex}.section-index{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:950;display:grid}.update-heading{border-bottom-color:#91c4ea}.full-detail-hero{border-color:#b8d6ee;padding:20px 22px;box-shadow:0 14px 30px #0f497714}.full-detail-hero h3{font-size:21px;line-height:1.4}.fixed-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fixed-info-grid .detail-item{border-color:#cfdeea;border-radius:10px;align-content:center;min-height:76px;padding:13px 15px}.notice-attachment-card{background:#f5faff;border:1px solid #b8d6ee;border-radius:12px;align-items:center;gap:12px;min-width:0;padding:14px 15px;display:flex}.notice-attachment-icon{width:42px;height:42px;color:var(--primary);background:#dceeff;border-radius:10px;flex:0 0 42px;place-items:center;display:grid}.notice-attachment-copy{flex:1;gap:3px;min-width:0;display:grid}.notice-attachment-copy span{color:var(--primary);font-size:13px;font-weight:950}.notice-attachment-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.notice-attachment-copy small,.notice-attachment-missing{color:var(--muted);font-size:11px;font-weight:700}.notice-attachment-action{min-height:38px;color:var(--primary-hover);font:inherit;cursor:pointer;background:#fff;border:1px solid #86bce5;border-radius:9px;flex:none;justify-content:center;align-items:center;padding:0 13px;font-size:12px;font-weight:900;text-decoration:none;display:inline-flex}.notice-attachment-action:hover{border-color:var(--primary);background:#eaf5ff}.notice-attachment-action:disabled{color:#94a3b8;cursor:not-allowed;background:#f1f5f9;border-color:#cbd5e1}.tbkl-preview-overlay{z-index:400;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f2335b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.tbkl-preview-dialog{background:#fff;border-radius:16px;grid-template-rows:auto minmax(0,1fr);width:min(1180px,96vw);height:min(900px,94vh);min-height:560px;display:grid;overflow:hidden;box-shadow:0 30px 80px #00000059}.tbkl-preview-dialog>header{background:#f7fbff;border-bottom:1px solid #cbdceb;justify-content:space-between;align-items:center;gap:18px;min-width:0;padding:13px 16px;display:flex}.tbkl-preview-dialog>header>div{gap:3px;min-width:0;display:grid}.tbkl-preview-dialog>header span{color:var(--primary);font-size:12px;font-weight:900}.tbkl-preview-dialog>header strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.tbkl-preview-dialog iframe{background:#e5e7eb;border:0;width:100%;height:100%}.tbkl-preview-unsupported{color:var(--muted);place-content:center;justify-items:center;gap:16px;display:grid}.task-fixed-pane .detail-item span,.task-update-pane .detail-item span{color:var(--primary);font-weight:950}.task-fixed-pane .detail-item strong,.task-update-pane .detail-item strong{font-size:16px;font-weight:850}.full-update-box{border:1px solid #83bbe5;border-top:4px solid var(--primary);background:#fff;border-radius:12px;gap:14px;margin:0;padding:22px;position:sticky;top:112px;box-shadow:0 18px 42px #1752801f}.full-update-box>label,.full-update-box .update-field>label{color:var(--primary-hover);font-weight:950}.full-update-box textarea{min-height:180px;line-height:1.5}.update-form-grid,.update-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.update-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.update-field{align-content:start;gap:8px;display:grid}.completion-date-field small{color:#6d7f93;font-size:11px;font-weight:700;line-height:1.35}.completion-date-field input:disabled{color:#8795a5;cursor:not-allowed;background:#f2f5f8}.update-summary-grid{border-top:1px solid #d9e5ee;border-bottom:1px solid #d9e5ee;grid-template-columns:repeat(3,minmax(0,1fr));padding:14px 0}.update-summary-grid .detail-item{border-right:1px solid #d9e5ee;min-width:0;padding:4px 10px}.update-summary-grid .detail-item:last-child{border-right:0}.update-readonly-state{background:#fff;border:1px solid #b9d2e5;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px;display:grid}.update-readonly-state .detail-item{border:1px solid #d6e3ed;border-radius:10px;padding:14px}.update-readonly-state .detail-item.large{grid-column:1/-1}.notice-layout{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.notice-main-stack{align-content:start;gap:16px;min-width:0;display:grid}.notice-form-panel{box-shadow:0 12px 34px #0f172a0a}.panel-toolbar{border:1px solid var(--border);border-bottom:0;border-radius:16px 16px 0 0;justify-content:space-between;padding:16px}.notice-table{border:1px solid var(--border);min-width:1180px}.issuer-table{min-width:720px}.notice-detail{border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 34px #0f172a0d}.file-row{border:1px solid var(--border);background:#fbfdff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.file-row div{gap:5px;min-width:0;display:grid}.file-row strong{overflow-wrap:anywhere}.dashboard-head{align-items:flex-start}.dashboard-head-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.tv-present-button{min-height:46px}.dashboard-year-filter{border:1px solid var(--border);background:#fff;border-radius:12px;align-items:center;gap:10px;min-height:46px;padding:0 12px;display:inline-flex;box-shadow:0 10px 24px #0f172a0a}.dashboard-year-filter span{color:var(--muted);font-size:13px;font-weight:900}.dashboard-year-filter select{background:var(--primary-soft);min-width:108px;height:34px;color:var(--primary-hover);font:inherit;outline-color:var(--primary);border:0;border-radius:8px;padding:0 9px;font-weight:950}body.tv-presentation-open{overflow:hidden}.tv-presentation{z-index:1000;color:#172b4d;background:linear-gradient(145deg,#eef6fd 0%,#f8fbfe 46%,#eef5fb 100%);grid-template-rows:72px minmax(0,1fr) 5px;display:grid;position:fixed;inset:0}.tv-presentation-header{color:#fff;background:linear-gradient(105deg,#063c71 0%,#075eae 52%,#087a8c 100%);grid-template-columns:minmax(280px,.75fr) auto minmax(430px,1fr);align-items:center;gap:20px;min-width:0;padding:0 24px;display:grid;box-shadow:0 6px 22px #092f5433}.tv-brand{align-items:center;gap:12px;min-width:0;display:flex}.tv-brand img{object-fit:contain;background:#fff;border-radius:9px;width:118px;height:42px;padding:3px 5px}.tv-brand div{gap:2px;min-width:0;display:grid}.tv-brand strong{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.tv-brand span{color:#cde7fb;font-size:11px;font-weight:750}.tv-slide-tabs{align-items:center;gap:8px;display:flex}.tv-slide-tabs button{color:#dceeff;min-height:38px;font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-size:12px;font-weight:850;display:inline-flex}.tv-slide-tabs button span{background:#ffffff21;border-radius:50%;place-items:center;width:21px;height:21px;font-size:10px;display:grid}.tv-slide-tabs button.active{color:#075eae;background:#fff;border-color:#fff}.tv-slide-tabs button.active span{color:#fff;background:#0876c9}.tv-presentation-actions{justify-content:flex-end;align-items:center;gap:7px;display:flex}.tv-presentation-actions button{color:#fff;min-width:38px;height:38px;font:inherit;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff3d;border-radius:10px;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:850;display:inline-flex}.tv-presentation-actions button:hover{background:#fff3}.tv-presentation-actions .tv-close-button{background:#b91c1c6b;padding:0 12px}.tv-updated-time{color:#cde7fb;margin-right:5px;font-size:11px;font-weight:750}.tv-presentation-stage{min-height:0;padding:8px 12px 7px;overflow:hidden}.tv-slide{height:100%;min-height:0}.tv-slide-title{justify-content:space-between;align-items:center;gap:18px;min-height:46px;display:flex}.tv-slide-title>div{align-items:baseline;gap:12px;display:flex}.tv-slide-title span{color:#0871d1;letter-spacing:.12em;font-size:10px;font-weight:950}.tv-slide-title h1{color:#123b68;letter-spacing:-.025em;margin:0;font-size:clamp(24px,1.7vw,34px)}.tv-slide-title>strong{color:#52677f;font-size:12px}.tv-progress{background:#c9dced;overflow:hidden}.tv-progress span{transform-origin:0;background:linear-gradient(90deg,#19a974,#1687ee);width:100%;height:100%;animation:25s linear forwards tv-slide-progress;display:block}.tv-progress span.paused{animation:none}@keyframes tv-slide-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tv-task-score-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.tv-task-score{background:#fff;border:1px solid #cfe0f2;border-top:4px solid #1687ee;border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:3px 12px;min-height:105px;padding:15px 18px;display:grid;box-shadow:0 8px 24px #1a3d6012}.tv-task-score>span{color:#52677f;text-transform:uppercase;font-size:12px;font-weight:900}.tv-task-score>strong{color:#123b68;grid-row:span 2;font-size:39px}.tv-task-score>small{color:#7a8ca1;font-size:11px;font-weight:750}.tv-task-score.red{background:#fff8f8;border-top-color:#dc2626}.tv-task-score.red>strong{color:#dc2626}.tv-task-score.orange{border-top-color:#f08b2d}.tv-task-score.green{border-top-color:#16a36a}.tv-task-content-grid{grid-template-columns:1.08fr .92fr;gap:14px;min-height:0;display:grid}.tv-panel{background:#fff;border:1px solid #cfe0f2;border-radius:16px;min-height:0;overflow:hidden;box-shadow:0 9px 26px #1a3d600f}.tv-panel-head{background:#f8fbff;border-bottom:1px solid #dbe7f3;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:10px 16px;display:flex}.tv-panel-head h2{color:#123b68;margin:0;font-size:18px}.tv-panel-head span{color:#667085;font-size:11px;font-weight:750}.tv-panel table{border-collapse:collapse;width:100%}.tv-panel th,.tv-panel td{text-align:center;border-bottom:1px solid #e4edf5;height:43px;padding:7px 12px;font-size:13px}.tv-panel th{color:#52677f;text-transform:uppercase;background:#f7fbff;font-size:11px}.tv-panel th:first-child,.tv-panel td:first-child{text-align:left;font-weight:850}.tv-red-number{color:#dc2626}.tv-orange-number{color:#d97706}.tv-attention-list{display:grid}.tv-attention-list article{border-bottom:1px solid #e4edf5;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:11px;min-height:58px;padding:8px 14px;display:grid}.tv-attention-list article>span{color:#9a5c00;background:#fff2cc;border-radius:999px;justify-self:start;padding:5px 9px;font-size:10px;font-weight:900}.tv-attention-list article>span.late{color:#b42318;background:#fee4e2}.tv-attention-list article div{gap:3px;min-width:0;display:grid}.tv-attention-list strong{color:#243b5a;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.tv-attention-list small{color:#728197;font-size:10px;font-weight:700}.tv-financial-slide{grid-template-rows:44px 74px minmax(330px,1fr) auto;gap:5px;display:grid}.tv-financial-slide .tv-slide-title{min-height:44px}.tv-financial-slide .tv-slide-title h1{font-size:clamp(30px,2vw,40px)}.tv-financial-slide .tv-slide-title span{font-size:12px}.tv-financial-slide .tv-slide-title>strong{font-size:14px}.tv-scorecards-grid{gap:6px}.tv-scorecards-grid.two-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-scorecards-grid .summary-score-card{min-height:74px;padding:7px 12px}.tv-scorecards-grid .score-card-content>span{font-size:13px}.tv-scorecards-grid .score-card-content>strong{font-size:21px}.tv-scorecards-grid .score-card-content>strong small{font-size:16px}.tv-scorecards-grid .score-card-content>em{font-size:11px}.tv-scorecards-grid .rate-pill{min-width:67px;padding:6px 9px;font-size:13px}.tv-financial-slide>.production-line-panel{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.tv-financial-slide .summary-card-head{min-height:46px;padding:6px 11px}.tv-financial-slide .summary-card-head h2{font-size:21px}.tv-financial-slide .summary-card-head p{font-size:12px}.tv-financial-slide .line-chart-wrap{min-height:0;padding:0 3px 1px;overflow:hidden}.tv-financial-slide .line-chart-wrap svg{width:100%;min-width:0;height:100%;max-height:100%}.tv-financial-dual-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-height:0;display:grid}.tv-financial-dual-charts>section{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.tv-financial-dual-charts .summary-card-head{min-height:48px;padding:5px 8px}.tv-financial-dual-charts .summary-card-head h2{font-size:21px}.tv-financial-dual-charts .summary-card-head p,.tv-financial-dual-charts .chart-legend{font-size:12px}.tv-financial-dual-charts .chart-legend{gap:3px 7px}.tv-financial-dual-charts .department-month-chart-scroll,.tv-financial-dual-charts .line-chart-wrap{align-items:center;min-height:0;padding:0 2px;display:flex;overflow:hidden}.tv-financial-dual-charts .department-month-chart-scroll svg,.tv-financial-dual-charts .line-chart-wrap svg{width:100%;min-width:0;height:auto;max-height:100%}.tv-financial-dual-charts .department-month-axis-title,.tv-financial-dual-charts .department-month-label,.tv-financial-dual-charts .chart-axis-label{font-size:17px}.tv-financial-dual-charts .department-name-label{font-size:20px}.tv-financial-dual-charts .department-name-label.total{font-size:22px}.tv-financial-dual-charts .department-bar-value,.tv-financial-dual-charts .chart-axis-title,.tv-financial-dual-charts .chart-point-label{font-size:16px}.tv-financial-dual-charts .combo-column-label{font-size:14px}.tv-financial-slide>.production-line-panel .chart-axis-label{font-size:16px}.tv-financial-slide>.production-line-panel .chart-axis-title,.tv-financial-slide>.production-line-panel .chart-point-label{font-size:15px}.tv-financial-slide>.production-line-panel .combo-column-label{font-size:13px}.tv-month-matrix{background:#fff;border:1px solid #cfe0f2;border-radius:13px;overflow:hidden}.tv-month-matrix .data-table-wrap{overflow:hidden}.tv-month-matrix .horizontal-month-table{table-layout:fixed;width:100%;min-width:0}.tv-month-matrix .horizontal-month-table th,.tv-month-matrix .horizontal-month-table td{min-width:0;height:32px;padding:4px 5px;font-size:13px}.tv-month-matrix .horizontal-month-table th:first-child,.tv-month-matrix .horizontal-month-table td:first-child{width:180px;min-width:180px;box-shadow:none;padding-left:11px;font-size:13px;position:static}.tv-month-matrix .horizontal-month-table th{min-width:0;height:34px;padding:4px 5px;font-size:13px}.tv-month-matrix .horizontal-month-table th:first-child{width:180px;min-width:180px;padding-left:11px}.tv-month-matrix .rate-pill{min-width:62px;padding:4px 7px;font-size:12px}.tv-task-slide{grid-template-rows:76px minmax(310px,1.55fr) minmax(118px,.55fr) minmax(205px,.9fr);gap:8px;display:grid}.tv-task-score{border-top-width:3px;border-radius:12px;height:76px;min-height:0;padding:8px 15px}.tv-task-score>span{font-size:15px}.tv-task-score>strong{font-size:38px;line-height:1}.tv-task-score>small{font-size:13px}.tv-task-middle-grid,.tv-task-bottom-grid{gap:8px;min-height:0;display:grid}.tv-task-middle-grid{grid-template-columns:minmax(390px,.7fr) minmax(0,1.3fr)}.tv-task-bottom-grid{grid-template-columns:minmax(0,.58fr) minmax(0,.42fr)}.tv-task-middle-grid>*,.tv-task-bottom-grid>*{height:100%;min-height:0}.tv-panel-head{min-height:44px;padding:6px 12px}.tv-panel-head h2{font-size:20px}.tv-panel-head span{font-size:13px}.tv-overdue-wide{height:100%}.tv-overdue-table-wrap{height:calc(100% - 44px);overflow:hidden}.tv-overdue-panel table{table-layout:fixed}.tv-overdue-panel .tv-overdue-rank-col{width:4%}.tv-overdue-panel .tv-overdue-name-col{width:14%}.tv-overdue-panel .tv-overdue-status-col{width:6%}.tv-overdue-panel .tv-overdue-financial-col{width:16%}.tv-overdue-panel th,.tv-overdue-panel td{text-overflow:ellipsis;white-space:nowrap;height:35px;padding:4px 7px;font-size:13.5px;overflow:hidden}.tv-overdue-panel td:nth-child(n+3){text-align:center}.tv-overdue-panel .financial-pair{width:100%;min-width:0;padding:5px 10px;font-size:12.5px}.tv-overdue-panel .alarm-rank-badge{gap:3px;min-width:38px;height:25px;font-size:12px}.tv-green-number{color:#16854a}.tv-alarm-unit-name{color:#dc2f2f;font-weight:900}.tv-special-panel{background:#fcf9ff;border:1px solid #e5d2fb;border-radius:13px;overflow:hidden}.tv-special-head{color:#8b3ce6;border-bottom:1px solid #eadcf8;justify-content:space-between;align-items:center;gap:12px;min-height:43px;padding:6px 12px;display:flex}.tv-special-head>div{align-items:center;gap:9px;display:flex}.tv-special-head span{gap:1px;display:grid}.tv-special-head strong{color:#37274a;font-size:17px}.tv-special-head small{color:#846f99;font-size:12px;font-weight:700}.tv-special-head>b{color:#fff;background:#8b3ce6;border-radius:50%;place-items:center;min-width:28px;height:28px;font-size:13px;display:grid}.tv-special-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 12px;display:grid}.tv-special-list article{color:#8b3ce6;background:#fff;border:1px solid #eadcf8;border-radius:10px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:7px 9px;display:grid}.tv-special-list article div{gap:2px;min-width:0;display:grid}.tv-special-list article strong{color:#37274a;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.tv-special-list article small{color:#846f99;font-size:12px}.tv-special-list article>span{color:#c93636;font-size:12px;font-weight:850}.tv-special-empty{color:#846f99;padding:12px;font-size:14px}.tv-progress-list{gap:1px;padding:5px 12px;display:grid}.tv-progress-list .progress-row{grid-template-columns:145px 1fr 96px;min-height:24px}.tv-progress-list .progress-row span,.tv-progress-list .progress-row strong{font-size:14px}.progress-result{color:#12345b;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.tv-task-bottom-grid>.dashboard-card{height:100%;min-height:0}.tv-task-bottom-grid .pie-content{grid-template-columns:minmax(210px,.9fr) minmax(180px,.65fr);place-items:center;gap:4px;height:calc(100% - 44px);min-height:0;padding:3px 12px 5px;display:grid}.tv-task-bottom-grid .status-pie-chart{aspect-ratio:auto;width:min(270px,100%);height:100%;max-height:240px}.tv-task-bottom-grid .status-pie-legend{justify-content:start;gap:10px;font-size:14px;display:grid}.tv-task-bottom-grid .status-pie-inside-label{font-size:17px}.tv-task-bottom-grid .status-pie-callout text{font-size:14px}.tv-task-bottom-grid .tv-attention-list article{grid-template-columns:78px minmax(0,1fr);min-height:38px;padding:4px 12px}.tv-task-bottom-grid .tv-attention-list strong{font-size:14px}.tv-task-bottom-grid .tv-attention-list small{font-size:11.5px}.metric-grid{grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;display:grid}.task-metric-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.metric{border:1px solid var(--border);background:#fff;border-radius:14px;align-content:space-between;gap:4px;min-height:108px;padding:12px 15px;display:grid}.metric span{color:var(--muted);font-size:12px;font-weight:850}.metric strong{color:var(--text-strong);letter-spacing:-.03em;font-size:28px;font-weight:850}.metric p{color:var(--text);margin:0;font-size:12px;font-weight:750}.metric.blue{border-top:3px solid var(--primary)}.metric.red{border-top:3px solid var(--danger);background:#fff7f7;border-color:#fecaca}.metric.red span,.metric.red strong,.metric.red p{color:#dc2626}.metric.green{border-top:3px solid var(--accent)}.metric.amber{border-top:3px solid #f59e0b}.metric.production{border-top:3px solid #1687ee}.metric.disbursement{border-top:3px solid #7c3aed}.metric.financial strong{font-size:23px}.report-grid{grid-template-columns:1.15fr .85fr;gap:14px;display:grid}.dashboard-focus-grid{grid-template-columns:minmax(620px,1.35fr) minmax(520px,.9fr);gap:14px;display:grid}.dashboard-financial-stack{gap:18px;display:grid}.dashboard-tab-financial-section{background:linear-gradient(#f7fbff 0%,#fff 18%);border:1px solid #cfe0f2;border-radius:18px;gap:14px;min-width:0;padding:16px;display:grid;box-shadow:0 12px 34px #0f4b820f}.dashboard-tab-financial-section.disbursement{background:linear-gradient(#f4fbf8 0%,#fff 18%);border-color:#cce8dc}.dashboard-tab-financial-section.disbursement .dashboard-financial-kicker{color:#087a4b}.dashboard-tab-financial-section.disbursement .dashboard-financial-unit{color:#087a4b;background:#e7f7ef}.dashboard-scorecards-grid{gap:12px}.dashboard-scorecards-grid.two-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.department-month-chart-panel{background:#fff;border:1px solid #cfe0f2;border-radius:16px;min-width:0;overflow:hidden}.department-month-chart-panel .summary-card-head{border-bottom:1px solid #dbe7f3}.department-month-chart-scroll{width:100%;padding:8px 0 2px;overflow-x:auto}.department-month-chart-scroll svg{width:100%;min-width:1100px;height:auto;display:block}.department-month-legend .department-plan:before{background:#4169e1;border-radius:2px;height:10px}.department-month-legend .department-actual:before{background:#dc2626;border-radius:2px;height:10px}.department-month-legend .total-plan:before{background:#d79500;border-radius:2px;height:10px}.department-month-legend .total-actual:before{background:#087a4b;border-radius:2px;height:10px}.chart-period-switch{background:#f2f7fc;border:1px solid #c9daeb;border-radius:9px;padding:3px;display:inline-flex}.chart-period-switch button{color:#52677f;min-width:58px;min-height:30px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 11px;font-size:12px;font-weight:900}.chart-period-switch button.active{color:#fff;background:#0872d8;box-shadow:0 4px 10px #0872d833}.department-month-axis-title,.department-month-label,.department-name-label,.department-month-value{font-family:inherit;font-weight:850}.department-month-axis-title{fill:#075fac;font-size:11px}.department-month-label{fill:#41566f;font-size:11px}.department-month-label.current{fill:#087a8b;font-weight:950}.department-name-label{fill:#1f3550;font-size:12px}.department-name-label.total{fill:#8a5800;font-size:13px;font-weight:950}.department-month-grid{stroke:#d8e5f1;stroke-width:1px}.department-month-grid.vertical{stroke:#e5edf5}.department-current-month{fill:#1497a614}.department-month-bar.plan{fill:#4169e1;opacity:.92}.department-month-bar.actual{fill:#dc2626}.department-total-row-bg{fill:#fff9e8}.department-month-bar.plan.total{fill:#d79500;opacity:1}.department-month-bar.actual.total{fill:#087a4b;stroke:#065f3b;stroke-width:.8px}.department-month-value{fill:#203b58;paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round;font-size:8px}.department-month-value.actual{fill:#086b91}.department-bar-value{fill:#27445f;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-family:inherit;font-size:11px;font-weight:900}.department-bar-value.actual{fill:#b91c1c}.department-bar-value.actual.total{fill:#06633d}.department-bar-value.total{fill:#8a5800;font-weight:950}.dashboard-tab-financial-section>.production-line-panel{border-radius:16px;width:100%;margin:0}.dashboard-tab-financial-section .line-chart-wrap svg{min-width:1120px}.dashboard-dual-charts{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px;min-width:0;display:grid}.dashboard-dual-charts>section{grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.dashboard-dual-charts .summary-card-head{min-height:76px;padding:11px 14px}.dashboard-dual-charts .summary-card-head h2{font-size:20px}.dashboard-dual-charts .summary-card-head p{font-size:10px}.dashboard-dual-charts .chart-legend{gap:6px 11px;font-size:11px}.dashboard-dual-charts .department-month-chart-scroll,.dashboard-dual-charts .line-chart-wrap{align-items:center;min-height:0;padding:5px 7px;display:flex;overflow:hidden}.dashboard-dual-charts .department-month-chart-scroll svg,.dashboard-dual-charts .line-chart-wrap svg{width:100%;min-width:0;height:auto}.dashboard-dual-charts .department-month-axis-title,.dashboard-dual-charts .department-month-label,.dashboard-dual-charts .chart-axis-label{font-size:15px}.dashboard-dual-charts .department-name-label{font-size:17px}.dashboard-dual-charts .department-name-label.total{font-size:18px}.dashboard-dual-charts .department-bar-value,.dashboard-dual-charts .chart-axis-title,.dashboard-dual-charts .chart-point-label{font-size:14px}.dashboard-dual-charts .combo-column-label{font-size:12px}.chart-head-actions{justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.chart-expand-button{color:#075fac;cursor:pointer;background:#eef7ff;border:1px solid #a9cae8;border-radius:10px;flex:0 0 38px;place-items:center;width:38px;height:38px;transition:transform .16s,background .16s,box-shadow .16s;display:grid}.chart-expand-button:hover{color:#fff;background:#0878d1;transform:translateY(-1px);box-shadow:0 7px 18px #0878d138}.chart-zoom-overlay{z-index:12000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#08192dd1;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.chart-zoom-shell{width:100%;min-width:0;height:100%;min-height:0}.chart-panel-zoomed{background:#fff;border-radius:18px;grid-template-rows:auto minmax(0,1fr);width:100%;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden;box-shadow:0 24px 80px #0000004d}.chart-panel-zoomed .summary-card-head{min-height:74px;padding:13px 20px}.chart-panel-zoomed .summary-card-head h2{font-size:24px}.chart-panel-zoomed .summary-card-head p,.chart-panel-zoomed .chart-legend{font-size:13px}.chart-panel-zoomed .department-month-chart-scroll,.chart-panel-zoomed .line-chart-wrap{align-items:center;min-height:0;padding:10px 18px 18px;display:flex;overflow:hidden}.chart-panel-zoomed .department-month-chart-scroll svg,.chart-panel-zoomed .line-chart-wrap svg{width:100%;min-width:0;height:100%;max-height:100%}.chart-panel-zoomed .department-month-axis-title,.chart-panel-zoomed .department-month-label,.chart-panel-zoomed .chart-axis-label{font-size:14px}.chart-panel-zoomed .department-name-label{font-size:15px}.chart-panel-zoomed .department-name-label.total{font-size:16px}.chart-panel-zoomed .department-bar-value,.chart-panel-zoomed .chart-axis-title,.chart-panel-zoomed .chart-point-label{font-size:13px}.chart-panel-zoomed .combo-column-label{font-size:11px}.dashboard-month-panel{margin:0}.dashboard-month-panel .dashboard-current-month{box-shadow:inset 1px 0 #9dcef3,inset -1px 0 #9dcef3;background:#e5f4ff!important}.dashboard-month-panel thead .dashboard-current-month{color:#075fac;box-shadow:inset 1px 0 #79b9eb,inset -1px 0 #79b9eb,inset 0 -3px #1685d8;background:#cfeaff!important}.dashboard-project-disbursement-panel{overflow:hidden}.dashboard-project-disbursement-table{table-layout:fixed;width:100%;min-width:1380px}.dashboard-project-disbursement-table col.project-code-col{width:7%}.dashboard-project-disbursement-table col.project-name-col{width:34%}.dashboard-project-disbursement-table col.annual-plan-col{width:12%}.dashboard-project-disbursement-table col.month-plan-col{width:8%}.dashboard-project-disbursement-table col.month-actual-col{width:7%}.dashboard-project-disbursement-table col.month-rate-col,.dashboard-project-disbursement-table col.cumulative-col{width:10%}.dashboard-project-disbursement-table col.annual-rate-col{width:12%}.dashboard-project-disbursement-table th,.dashboard-project-disbursement-table td{text-align:center;white-space:nowrap;vertical-align:middle;height:50px;padding:10px 12px}.dashboard-project-disbursement-table th:nth-child(2),.dashboard-project-disbursement-table td:nth-child(2){text-align:left;white-space:normal;line-height:1.35}.dashboard-project-disbursement-table th{white-space:normal;line-height:1.25}.dashboard-project-disbursement-table td:first-child{color:#213b59;font-weight:900}.dashboard-project-disbursement-table .rate-pill{min-width:68px}.dashboard-project-disbursement-table .plan-total-row td{color:#075fac;background:#e8f4ff;border-top:2px solid #86bfea;font-weight:950}.dashboard-project-disbursement-table .plan-total-row td:first-child{text-align:center}@media (width<=900px){.dashboard-scorecards-grid.two-cards{grid-template-columns:1fr}}@media (width<=1250px){.dashboard-dual-charts{grid-template-columns:1fr}}.dashboard-financial-section{background:linear-gradient(#f7fbff 0%,#fff 24%);border:1px solid #cfe0f2;border-radius:18px;padding:16px;box-shadow:0 12px 34px #0f4b820f}.dashboard-financial-section.disbursement{background:linear-gradient(#f4fbf8 0%,#fff 24%);border-color:#cce8dc}.dashboard-financial-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.dashboard-financial-heading h2{color:var(--text-strong);margin:3px 0 0;font-size:20px}.dashboard-financial-kicker{color:#0871d1;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:950}.dashboard-financial-section.disbursement .dashboard-financial-kicker{color:#087a4b}.dashboard-financial-unit{color:#0869c8;background:#e8f3ff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:850}.dashboard-financial-section.disbursement .dashboard-financial-unit{color:#087a4b;background:#e7f7ef}.dashboard-summary-insight-grid{grid-template-columns:minmax(780px,1fr) minmax(380px,520px);margin-bottom:0}.combined-score-wrap{overflow-x:hidden}.combined-score-table{table-layout:fixed;width:100%;min-width:0}.combined-score-table th:first-child{width:28%}.combined-score-table th:nth-child(2),.combined-score-table th:nth-child(4){width:23%}.combined-score-table th:nth-child(3),.combined-score-table th:nth-child(5){width:13%}.combined-score-table th,.combined-score-table td{padding-left:10px;padding-right:10px}.combined-score-table th:nth-child(n+2),.combined-score-table td:nth-child(n+2){text-align:center}.combined-score-panel .summary-card-head{color:#fff;background:linear-gradient(135deg,#075eae 0%,#0d82d4 100%);border-bottom-color:#ffffff3d}.combined-score-panel .summary-card-head h2,.combined-score-panel .summary-card-head strong{color:#fff}.combined-score-panel .summary-card-head p{color:#dceeff}.combined-score-table thead th{color:#17486f;background:#e8f4ff}.combined-chart-legend{color:#52677f;flex-wrap:wrap;justify-content:flex-end;gap:7px 13px;font-size:10px;font-weight:850;display:flex}.combined-chart-legend span:before{content:"";vertical-align:middle;border-top:3px solid;width:18px;height:0;margin-right:5px;display:inline-block}.combined-chart-legend .production-plan{color:#1687ee}.combined-chart-legend .production-actual{color:#16a36a}.combined-chart-legend .disbursement-plan{color:#7c3aed}.combined-chart-legend .disbursement-actual{color:#f08c00}.combined-chart-legend .production-plan:before,.combined-chart-legend .disbursement-plan:before{border-top-style:dashed}.combined-chart-line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.combined-chart-line.production-plan{stroke:#1687ee;stroke-dasharray:7 5}.combined-chart-line.production-actual{stroke:#16a36a}.combined-chart-line.disbursement-plan{stroke:#7c3aed;stroke-dasharray:7 5}.combined-chart-line.disbursement-actual{stroke:#f08c00}.combined-chart-point{stroke:#fff;stroke-width:2px}.combined-chart-point.production-plan{fill:#1687ee}.combined-chart-point.production-actual{fill:#16a36a}.combined-chart-point.disbursement-plan{fill:#7c3aed}.combined-chart-point.disbursement-actual{fill:#f08c00}.combined-chart-value-label{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:8px;font-weight:900}.combined-chart-value-label.production-plan{fill:#0875d1}.combined-chart-value-label.production-actual{fill:#087a4b}.combined-chart-value-label.disbursement-plan{fill:#6d28d9}.combined-chart-value-label.disbursement-actual{fill:#c96800}.panel{border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 12px 34px #0f172a0a}.panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.dashboard-card{padding:0;overflow:hidden}.dashboard-card-head{border-bottom:1px solid var(--border);min-height:58px;margin-bottom:0;padding:14px 16px}.dashboard-card-title{align-items:center;gap:10px;min-width:0;display:flex}.dashboard-card-title h2{text-transform:uppercase;letter-spacing:.01em;font-size:15px}.dashboard-card-actions{align-items:center;gap:10px;display:flex}.overdue-group-switch{border-radius:11px;padding:3px}.overdue-group-switch .segment{white-space:nowrap;min-height:32px;padding-inline:12px;font-size:13px}.panel-icon{border-radius:8px;flex:none;place-items:center;width:32px;height:32px;font-weight:900;display:inline-grid}.panel-icon.orange{color:#f08c00;background:#fff3df}.panel-icon.blue{background:var(--primary-soft);color:var(--primary)}.mini-action{color:#9a6416;cursor:pointer;background:#fff6e8;border:1px solid #f6dba7;border-radius:8px;place-items:center;width:34px;height:34px;display:inline-grid}.slow-table-wrap{max-height:none;overflow:auto visible}.dashboard-overdue-wide{min-width:0}.dashboard-overdue-wide .slow-units-panel{width:100%}.dashboard-overdue-wide .slow-table{table-layout:fixed;min-width:1320px}.dashboard-overdue-wide .slow-rank-col{width:4%}.dashboard-overdue-wide .slow-name-col{width:15%}.dashboard-overdue-wide .slow-status-col{width:7%}.dashboard-overdue-wide .slow-financial-col{width:15%}.dashboard-overdue-wide .financial-pair{width:100%;min-width:0;padding-inline:10px}.slow-table{border-collapse:collapse;width:100%;min-width:1420px;font-size:14px}.slow-table th,.slow-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:11px 14px}.slow-table th{color:var(--text-strong);background:#fff;font-weight:850}.slow-table th:first-child,.slow-table td:first-child{text-align:center;width:52px}.slow-table th:nth-child(3),.slow-table th:nth-child(4),.slow-table th:nth-child(5),.slow-table th:nth-child(6),.slow-table th:nth-child(7),.slow-table th:nth-child(8),.slow-table th:nth-child(9),.slow-table td:nth-child(3),.slow-table td:nth-child(4),.slow-table td:nth-child(5),.slow-table td:nth-child(6),.slow-table td:nth-child(7),.slow-table td:nth-child(8),.slow-table td:nth-child(9){text-align:center}.slow-table thead tr:first-child th{background:#f8fbff;border-bottom:1px solid #c7d9ea}.slow-table .financial-group-head{text-align:center}.slow-table .financial-group-head.production{color:#075fac;background:#eef7ff}.slow-table .financial-group-head.disbursement{color:#087a4b;background:#ecf9f3}.slow-table .financial-subhead-row th{color:#49647e;background:#f4f8fc;font-size:12px}.slow-table tbody tr{transition:background .16s}.slow-table tbody tr:hover{background:#f5faff}.slow-table tbody tr.alarm-rank-1{background:linear-gradient(90deg,#fff0f0 0%,snow 32%,#fff 100%)}.slow-table tbody tr.alarm-rank-2{background:linear-gradient(90deg,#fff5e8 0%,#fffbf5 32%,#fff 100%)}.slow-table tbody tr.alarm-rank-3{background:linear-gradient(90deg,#fffbe8 0%,#fffdf5 32%,#fff 100%)}.alarm-rank-badge{color:#fff;border-radius:999px;justify-content:center;align-items:center;gap:5px;min-width:42px;height:29px;font-weight:950;display:inline-flex;box-shadow:0 4px 10px #7426262e}.alarm-rank-badge.rank-1{background:#dc2626}.alarm-rank-badge.rank-2{background:#ea7200}.alarm-rank-badge.rank-3{color:#6f4b00;background:#f5c542}.slow-units-panel-expanded{background:#fff;border-radius:18px;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;display:grid;box-shadow:0 24px 80px #0000004d}.slow-units-panel-expanded .dashboard-card-head{min-height:72px;padding:16px 20px}.slow-units-panel-expanded .dashboard-card-title h2{font-size:21px}.slow-units-panel-expanded .slow-table-wrap{min-height:0;overflow:auto}.slow-units-panel-expanded .slow-table{min-width:1380px;font-size:15px}.slow-units-panel-expanded .slow-table th,.slow-units-panel-expanded .slow-table td{padding:13px 15px}.financial-pair{white-space:nowrap;border-radius:8px;justify-content:center;min-width:132px;padding:5px 8px;font-size:12px;font-weight:900;display:inline-flex}.financial-pair.below{color:#c53030;background:#fee4e2}.financial-pair.warning{color:#9a6200;background:#fff0bd;box-shadow:inset 0 0 0 1px #f3d47a}.financial-pair.achieved{color:#087a4b;background:#dff5ea}.financial-pair.neutral{color:#667085;background:#eef2f6}.unit-name{color:var(--text-strong);white-space:nowrap;font-weight:850;overflow:hidden}.unit-name.dark{color:#172033}.unit-name-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.unit-name.red{color:#e03131}.unit-name.orange{color:#f76707}.unit-name.amber{color:#f0b000}.count-pill{border-radius:4px;justify-content:center;align-items:center;min-width:48px;min-height:28px;font-weight:750;display:inline-flex}.count-pill.ok{color:#16854a;background:#dff8e8}.count-pill.late{color:#e03131;background:#ffe5e8}.count-pill.soon{color:#e67700;background:#fff0d6}.pie-content{align-content:center;justify-items:center;gap:14px;min-height:410px;padding:18px 20px 20px;display:grid}.status-pie-chart{aspect-ratio:1;place-items:center;width:min(430px,94%);display:grid;position:relative}.status-pie-chart svg{filter:drop-shadow(0 14px 18px #0f172a24);width:100%;height:100%;overflow:visible}.status-pie-segment path{stroke:#fff;stroke-width:3px;stroke-linejoin:round}.status-pie-callout polyline{fill:none;stroke:#111827;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.status-pie-callout text{fill:#111827;paint-order:stroke;stroke:#fffc;stroke-width:.8px;filter:none;font-size:10px;font-weight:950;line-height:1}.status-pie-inside-label{fill:#fff;paint-order:stroke;stroke:#0f172a52;stroke-width:1px;font-size:12px;font-weight:950;line-height:1}.status-pie-legend{width:100%;color:var(--text);flex-wrap:wrap;justify-content:center;gap:18px;font-size:13px;font-weight:850;display:flex}.status-pie-legend span{align-items:center;gap:9px;display:inline-flex}.legend-dot{border-radius:50%;width:14px;height:14px;display:inline-block}.legend-dot.green{background:#22c765}.legend-dot.blue{background:#3b82f6}.legend-dot.red{background:#f43f46}.progress-row{grid-template-columns:140px 1fr 42px;align-items:center;gap:10px;min-height:34px;display:grid}.progress-row span,.progress-row strong{font-size:13px}.progress-track{background:#edf4f7;border-radius:999px;height:8px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--accent));height:100%}.attention-row{border-bottom:1px solid var(--border);grid-template-columns:10px 1fr;gap:11px;padding:10px 0;display:grid}.attention-row:last-child{border-bottom:0}.attention-row strong{color:var(--text-strong);font-size:13px;line-height:1.45;display:block}.dot{background:var(--primary);border-radius:50%;width:8px;height:8px;margin-top:7px}.dot.red{background:var(--danger)}.form-panel{border:1px solid var(--border);background:#fff;border-radius:16px;padding:18px;box-shadow:0 12px 34px #0f172a0a}.settings-stack{gap:16px;display:grid}.settings-panel-head{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:4px}.settings-panel-head span{color:var(--muted);font-size:14px;font-weight:600}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.project-info-table{min-width:1840px}.tabmis-page{gap:18px}.tabmis-embedded-page{flex-direction:column;min-width:0;display:flex}.tabmis-subtabs{align-self:flex-start}.tabmis-sync-panel{background:#fff;border:1px solid #cfe1f4;border-radius:18px;padding:18px;box-shadow:0 12px 30px #1b5b910f}.tabmis-sync-status,.tabmis-config-row,.tabmis-kpis{gap:14px;display:grid}.tabmis-sync-status{border-bottom:1px solid #e2ebf4;grid-template-columns:repeat(4,minmax(0,1fr));padding-bottom:16px}.tabmis-sync-status>div{flex-direction:column;gap:5px;display:flex}.tabmis-sync-status span,.tabmis-config-row small,.tabmis-kpis span{color:#64748b;font-size:12px;font-weight:750}.tabmis-sync-status a{color:#0876d9;font-weight:850;text-decoration:none}.tabmis-status.success{color:#078052}.tabmis-status.error{color:#dc2626}.tabmis-status.syncing{color:#0876d9}.tabmis-config-row{grid-template-columns:auto minmax(220px,.75fr) minmax(260px,1fr) minmax(280px,1fr);align-items:end;padding-top:16px}.tabmis-target-switch{flex-direction:column;gap:2px;min-width:0;display:flex}.tabmis-target-switch small{white-space:nowrap;padding-left:53px}.tabmis-config-row .field{margin:0}.tabmis-switch{cursor:pointer;white-space:nowrap;align-items:center;gap:9px;min-height:44px;display:inline-flex}.tabmis-switch input{opacity:0;pointer-events:none;position:absolute}.tabmis-switch>span{background:#cbd5e1;border-radius:999px;width:44px;height:24px;transition:all .2s;position:relative}.tabmis-switch>span:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0f172a40}.tabmis-switch input:checked+span{background:#0b78de}.tabmis-switch input:checked+span:after{transform:translate(20px)}.tabmis-switch input:disabled+span{opacity:.55}.tabmis-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.tabmis-kpis article{background:linear-gradient(145deg,#fff,#f5faff);border:1px solid #cfe1f4;border-radius:16px;flex-direction:column;gap:6px;min-height:92px;padding:18px;display:flex}.tabmis-kpis strong{color:#075fac;font-size:24px}.compact-field{min-width:140px}.tabmis-summary-table{min-width:1280px}.tabmis-summary-table th:nth-child(3){min-width:410px}.tabmis-summary-table tbody tr{cursor:default}.tabmis-summary-table .tabmis-total-row td{text-underline-offset:3px;background:#eaf5ff;border-top:2px solid #9fc7eb;border-bottom:2px solid #9fc7eb;-webkit-text-decoration:underline #12345b;text-decoration:underline #12345b;text-decoration-thickness:1px;color:#12345b!important}.tabmis-summary-table .tabmis-total-row td *{text-underline-offset:3px;-webkit-text-decoration:underline #12345b;text-decoration:underline #12345b;text-decoration-thickness:1px;color:#12345b!important}.tabmis-linked,.tabmis-unlinked{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850;display:inline-flex}.tabmis-linked{color:#087a50;background:#dcf7eb}.tabmis-unlinked{color:#b45309;background:#fff0cf}.tabmis-month-panel{padding:18px}.tabmis-month-panel .panel-title{margin-bottom:14px}.tabmis-month-table{text-align:right;min-width:1840px}.tabmis-month-table th,.tabmis-month-table td{white-space:nowrap;min-width:88px}.tabmis-month-table td{border-bottom:2px solid #d6e4f2}.tabmis-month-table th:first-child{text-align:left;min-width:310px}.tabmis-month-table th:nth-child(2){text-align:left;min-width:145px}.tabmis-month-project{vertical-align:middle;width:310px;max-width:310px;text-align:left!important;white-space:normal!important;min-width:310px!important}.tabmis-month-project strong,.tabmis-month-project small{display:block}.tabmis-month-project small{color:#64748b;margin-top:4px;font-size:11px;font-weight:700;line-height:1.35}.tabmis-month-indicator{text-align:left!important;min-width:145px!important}.tabmis-month-project-start td{border-top:3px solid #bfd7ef}.tabmis-month-rate-row td{background:#f8fbff}.tabmis-month-rate-row .rate-pill{justify-content:center;min-width:62px}.tabmis-month-table .tabmis-current-month{box-shadow:inset 1px 0 #9dcef3,inset -1px 0 #9dcef3;background:#e5f4ff!important}.tabmis-month-table thead .tabmis-current-month{color:#075fac;box-shadow:inset 1px 0 #79b9eb,inset -1px 0 #79b9eb,inset 0 -3px #1685d8;background:#cfeaff!important}.spin-icon{animation:.9s linear infinite tabmis-spin}@keyframes tabmis-spin{to{transform:rotate(360deg)}}@media (width<=1000px){.tabmis-sync-status,.tabmis-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tabmis-config-row{grid-template-columns:1fr 1fr}}@media (width<=640px){.tabmis-sync-status,.tabmis-kpis,.tabmis-config-row{grid-template-columns:1fr}}.project-type-badge{color:#0869c8;white-space:nowrap;background:#e8f3ff;border-radius:999px;align-items:center;min-height:27px;padding:4px 9px;font-size:12px;font-weight:850;display:inline-flex}.account-form-error{color:#b42318;background:#fff1f2;border:1px solid #fecaca;border-radius:10px;margin-top:14px;padding:10px 12px;font-size:13px;font-weight:750}.package-table{min-width:1320px}.plan-table{min-width:1180px}.plan-summary-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;display:grid}.plan-filter-panel{grid-template-columns:minmax(240px,1fr) minmax(110px,.25fr) minmax(260px,.8fr) minmax(190px,.4fr);align-items:end;gap:14px;display:grid}.plan-total-row td{color:var(--text-strong);background:#eef6ff;border-top:2px solid #9bc8f5;font-weight:850}.production-tabs{border:1px solid var(--border);background:#fff;border-radius:14px;flex-wrap:wrap;gap:8px;width:fit-content;max-width:100%;margin-bottom:14px;padding:6px;display:flex}.package-allocation-tabs{flex-wrap:wrap;margin-bottom:0}.allocation-tab-content{gap:18px;min-width:0;display:grid}.production-tabs button,.allocation-switch button{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 18px;font-weight:800}.production-tabs button.active,.allocation-switch button.active{color:#0869c8;background:#e7f2ff;box-shadow:inset 0 0 0 1px #b9d9fa}.production-filter-bar{align-items:end;gap:14px;margin-bottom:14px;display:flex}.production-filter-bar .field{min-width:150px}.production-filter-bar .department-filter-field{min-width:230px}.production-filter-bar .grow-field{min-width:360px}.filter-unit-note{color:var(--text-muted);margin-left:auto;padding:11px 14px}.pending-plan-approval-panel{min-width:0}.pending-plan-approval-head{border-bottom:1px solid var(--border);background:#f8fbff;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.pending-plan-approval-head strong{color:var(--text-strong);font-size:16px}.pending-plan-approval-head span{color:var(--text-muted);font-size:13px;font-weight:750}.pending-plan-approval-wrap{max-height:560px;overflow:auto}.pending-plan-approval-table{min-width:1900px}.pending-plan-approval-table th{z-index:2;position:sticky;top:0}.pending-plan-approval-table td small{max-width:230px;color:var(--text-muted);white-space:normal;margin-top:4px;display:block}.pending-plan-approval-table .approve-button{width:100%}.pending-plan-empty{min-height:210px;color:var(--text-muted);text-align:center;place-content:center;justify-items:center;gap:8px;display:grid}.pending-plan-empty svg{color:var(--accent)}.pending-plan-empty strong{color:var(--text-strong);font-size:17px}.production-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px;display:grid}.summary-insight-grid{grid-template-columns:minmax(360px,.72fr) minmax(520px,1.28fr);gap:14px;margin-bottom:14px;display:grid}.summary-overview-stack{gap:14px;margin-bottom:14px;display:grid}.summary-scorecards-panel{min-width:0}.summary-scorecards-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:9px;padding:0 2px;display:flex}.summary-scorecards-head h2{margin:0 0 3px;font-size:17px}.summary-scorecards-head p{color:var(--text-muted);margin:0;font-size:12px;font-weight:650}.summary-scorecards-head>strong{color:#0869c8;font-size:13px}.summary-scorecards-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.summary-score-card{background:#fff;border:1px solid #cfe0f2;border-radius:14px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:112px;padding:15px;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 22px #1a3d600f}.summary-score-card:before{content:"";background:#1687ee;width:4px;position:absolute;inset:0 auto 0 0}.summary-score-card.green:before{background:#16a36a}.summary-score-card.purple:before{background:#8b5cf6}.summary-score-card.orange:before{background:#f08b2d}.score-card-icon{color:#0874d1;background:#e7f3ff;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.summary-score-card.green .score-card-icon{color:#087a4b;background:#e3f8ef}.summary-score-card.purple .score-card-icon{color:#7042d7;background:#f0eaff}.summary-score-card.orange .score-card-icon{color:#c76712;background:#fff0df}.score-card-content{gap:3px;min-width:0;display:grid}.score-card-content>span{color:#52677f;text-transform:uppercase;letter-spacing:.025em;font-size:11px;font-weight:850}.score-card-content>strong{color:#172b4d;text-overflow:ellipsis;white-space:nowrap;font-size:17px;line-height:1.25;overflow:hidden}.score-card-content>strong small{color:#667085;font-size:13px}.score-card-content>em{color:#8a98aa;font-size:10px;font-style:normal;font-weight:750}.horizontal-month-panel{overflow:hidden}.horizontal-month-scroll{overflow-x:auto}.horizontal-month-table{table-layout:fixed;min-width:1480px}.horizontal-month-table th,.horizontal-month-table td{text-align:center;white-space:nowrap;min-width:94px;height:43px;padding:8px 9px}.horizontal-month-table th:first-child,.horizontal-month-table td:first-child{z-index:2;text-align:left;background:#f7fbff;width:168px;min-width:168px;font-weight:850;position:sticky;left:0;box-shadow:1px 0 #dbe7f3}.horizontal-month-table thead th:first-child{z-index:3;background:#eef6ff}.horizontal-month-table .horizontal-actual-value{color:#087a4b;font-weight:900}.horizontal-month-table .rate-pill{min-width:62px}.summary-score-panel,.production-line-panel{background:#fff;border:1px solid #cfe0f2;border-radius:16px;min-width:0;overflow:hidden;box-shadow:0 10px 26px #1a3d600f}.summary-overview-stack>.production-line-panel{border-left:0;border-right:0;border-radius:0;width:calc(100% + 56px);margin-inline:-28px}.summary-card-head{border-bottom:1px solid #dbe7f3;justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:14px 18px;display:flex}.summary-card-head h2{margin:0 0 3px;font-size:17px}.summary-card-head p{color:var(--text-muted);margin:0;font-size:12px;font-weight:650}.summary-card-head>strong{color:#0869c8;font-size:13px}.summary-score-table{border-collapse:collapse;width:100%;font-size:13px}.summary-score-table th,.summary-score-table td{text-align:left;border-bottom:1px solid #e2ebf5;height:48px;padding:9px 16px}.summary-score-table th{color:#52677f;background:#f4f9ff;font-size:12px}.summary-score-table td strong{color:#087a4b;font-size:16px}.summary-score-table tbody tr:last-child td{border-bottom:0}.chart-legend{color:#52677f;gap:16px;font-size:12px;font-weight:800;display:flex}.chart-legend span:before{content:"";vertical-align:middle;border-radius:9px;width:20px;height:3px;margin-right:6px;display:inline-block}.chart-legend .plan:before{background:#1687ee}.chart-legend .actual:before{background:#16a36a}.chart-legend .monthly-plan:before{background:#dcecf7;border-radius:2px;height:10px}.chart-legend .monthly-actual:before{background:#62b8e6;border-radius:2px;height:10px}.chart-legend .plan-cumulative:before{background:#dc2626;height:3px}.chart-legend .actual-cumulative:before{background:#123b68;height:3px}.line-chart-wrap{padding:10px 20px 14px;overflow-x:auto}.line-chart-wrap svg{width:100%;min-width:1050px;height:auto;display:block;overflow:visible}.chart-grid-line{stroke:#dbe7f3;stroke-width:1px}.chart-axis-label{fill:#667085;font-size:12px;font-weight:750}.chart-axis-title{fill:#2563c7;letter-spacing:.04em;font-size:11px;font-weight:900}.chart-axis-title.percent-axis-title{fill:#d65f08}.chart-line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.chart-line.plan{stroke:#1687ee}.chart-line.actual{stroke:#16a36a}.chart-line.plan-cumulative{stroke:#dc2626;stroke-width:2.8px}.chart-line.actual-cumulative{stroke:#123b68;stroke-width:3.5px}.chart-point{stroke:#fff;stroke-width:2px}.chart-point.plan{fill:#1687ee}.chart-point.actual{fill:#16a36a}.chart-point.plan-cumulative{fill:#dc2626}.chart-point.actual-cumulative{fill:#123b68}.chart-point-halo{stroke:none}.chart-point-halo.plan-cumulative{fill:#dc26262b}.chart-point-halo.actual-cumulative{fill:#123b6833}.chart-point-label{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:10px;font-weight:850}.chart-point-label.plan{fill:#0f6fc8}.chart-point-label.actual{fill:#087a4b}.chart-point-label.plan-cumulative{fill:#b91c1c}.chart-point-label.actual-cumulative{fill:#123b68}.combo-bar{shape-rendering:geometricprecision}.combo-bar.monthly-plan{fill:#dcecf7;stroke:#c5deef;stroke-width:.6px}.combo-bar.monthly-actual{fill:#62b8e6}.current-month-band{fill:#1497a613}.combo-column.current-month .combo-bar.monthly-plan{fill:#86d0d9;stroke:#62bbc7}.combo-column.current-month .combo-bar.monthly-actual{fill:#16899a}.current-month-label{fill:#08798a;font-weight:950}.combo-column-label{fill:#52677f;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:9px;font-weight:800}.combo-column-label.stacked-total{fill:#294d70}.percent-axis-label{fill:#d65f08}@media (width<=1100px){.summary-insight-grid{grid-template-columns:1fr}.summary-scorecards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary-insight-grid,.dashboard-focus-grid{grid-template-columns:1fr}}@media (width<=700px){.summary-scorecards-head{flex-direction:column;align-items:flex-start}.summary-scorecards-grid{grid-template-columns:1fr}.combined-score-wrap{overflow-x:auto}.combined-score-table{min-width:650px}}@media (width<=900px){.summary-overview-stack>.production-line-panel{width:calc(100% + 28px);margin-inline:-14px}}.production-summary-table{min-width:1450px}.compact-summary-table{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:1220px}.compact-summary-table th:nth-child(n+5),.compact-summary-table td:nth-child(n+5){text-align:center}.compact-summary-table th,.compact-summary-table td{height:44px;padding:8px 10px}.compact-summary-table th:first-child,.compact-summary-table td:first-child{width:48px}.compact-summary-table th:nth-child(2),.compact-summary-table td:nth-child(2){width:170px}.compact-summary-table th:nth-child(3),.compact-summary-table td:nth-child(3){width:118px}.compact-summary-table th:nth-child(4),.compact-summary-table td:nth-child(4){text-overflow:ellipsis;white-space:nowrap;width:250px;overflow:hidden}.compact-summary-table th:nth-child(5),.compact-summary-table td:nth-child(5),.compact-summary-table th:nth-child(7),.compact-summary-table td:nth-child(7),.compact-summary-table th:nth-child(9),.compact-summary-table td:nth-child(9){width:138px}.compact-summary-table th:nth-child(6),.compact-summary-table td:nth-child(6),.compact-summary-table th:nth-child(8),.compact-summary-table td:nth-child(8),.compact-summary-table th:nth-child(10),.compact-summary-table td:nth-child(10){width:94px}.project-department-cell{color:#34425a;text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.summary-table-scroll{max-height:420px;overflow:auto}.summary-table-scroll thead th{z-index:3;color:#f8fbff;letter-spacing:.01em;background:linear-gradient(#173f69 0%,#0d2f53 100%);border-bottom:0;border-right-color:#ffffff1f;position:sticky;top:0;box-shadow:inset 0 -1px #ffffff29}.summary-board-total-row td{z-index:2;color:#fff;background:linear-gradient(#1269a8 0%,#0b4f83 100%);border-top:1px solid #1b76b6;border-bottom:2px solid #083f6d;font-weight:900;position:sticky;top:40px;box-shadow:0 5px 14px #09375e2e}.summary-board-total-row td:first-child{box-shadow:inset 4px 0 #58c6ff,0 5px 14px #09375e2e}.summary-board-total-row .actual-plan-cell,.summary-board-total-row .actual-plan-cell strong,.summary-board-total-row .actual-plan-cell span{color:#fff}.summary-board-total-row .actual-plan-cell strong{color:#bdf9dc}.summary-board-total-row .rate-pill{color:#fff;background:#ffffff29;box-shadow:inset 0 0 0 1px #ffffff38}.summary-department-row td{color:#123c63;background:linear-gradient(#e8f4ff 0%,#dceeff 100%);border-top:1px solid #a9cff0;border-bottom:1px solid #b9d9f4;font-weight:850}.summary-department-row td:first-child{box-shadow:inset 4px 0 #2a8bd6}.summary-department-row .actual-plan-cell{color:#315c7d}.summary-department-row .actual-plan-cell strong{color:#087a58}.summary-department-row .rate-pill{box-shadow:inset 0 0 0 1px #0e4c7b0f}.summary-project-row td{background:#fff;transition:background-color .16s,box-shadow .16s}.summary-project-row:nth-of-type(2n) td{background:#fbfdff}.compact-summary-table .summary-project-row:hover td{background:#eef7ff;box-shadow:inset 0 1px #d7eafa,inset 0 -1px #d7eafa}.summary-project-row .strong-cell{color:#123e69}.summary-project-row td:nth-child(3){padding-left:24px}.production-detail-panel{margin-top:0}.summary-table-grid{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.summary-data-card{background:#fff;border:1px solid #bfd6eb;border-radius:18px;min-width:0;overflow:hidden;box-shadow:0 14px 36px #1441691a}.summary-data-card .panel-toolbar{background:linear-gradient(135deg,#fff 0%,#f1f8ff 100%);border-bottom:1px solid #dbeaf7;min-height:66px;padding:12px 16px}.summary-data-card .panel-title h2{color:#0d365e;font-size:16px}.summary-data-card .panel-title span{font-size:12px}.monthly-detail-scroll{max-height:420px;overflow:auto}.monthly-detail-scroll thead th{z-index:3;position:sticky;top:0}.summary-data-card .compact-summary-table th,.summary-data-card .compact-summary-table td,.summary-data-card .compact-month-detail th,.summary-data-card .compact-month-detail td{height:40px;padding:7px 9px}.summary-data-card .compact-summary-table{min-width:1160px}.summary-data-card .compact-month-detail{min-width:660px}@media (width<=1550px){.summary-table-grid{grid-template-columns:1fr}.summary-table-scroll,.monthly-detail-scroll{max-height:390px}}.month-detail-table{min-width:1040px}.compact-month-detail{min-width:820px}.compact-month-detail th,.compact-month-detail td{text-align:center}.compact-month-detail th:first-child,.compact-month-detail td:first-child{text-align:left;width:150px}.actual-plan-cell{color:#52677f;font-weight:800}.actual-plan-cell strong{color:#087a4b;font-size:15px}.actual-plan-cell span{color:#98a2b3;padding:0 7px}.production-plan-overview-wrap{padding:18px}.actual-section{gap:12px;display:grid}.tabmis-actual-lock-notice{color:#075fac;background:linear-gradient(135deg,#e7f5ff,#f3faff);border:1px solid #87c9f5;border-radius:12px;align-items:center;gap:12px;margin:0 18px;padding:13px 16px;display:flex;box-shadow:inset 4px 0 #1685d8}.tabmis-actual-lock-notice>svg{flex:none;animation:2.4s linear infinite tabmis-spin}.tabmis-actual-lock-notice>div{flex-direction:column;gap:3px;display:flex}.tabmis-actual-lock-notice strong{font-size:14px;font-weight:950}.tabmis-actual-lock-notice span{color:#3f6484;font-size:12px;font-weight:750}.actual-inline-tabs{justify-self:end;margin:0 18px}.production-plan-overview{border-collapse:separate;border-spacing:0;border:1px solid #cfe0f2;border-radius:12px;min-width:780px;max-width:980px;overflow:hidden}.production-plan-overview th,.production-plan-overview td{text-align:center;border-bottom:1px solid #dbe7f3}.production-plan-overview th{color:#102a43;background:#eef6ff;font-weight:950}.production-plan-overview td{color:#1f2f46;background:#fff;font-weight:800}.production-plan-overview tbody tr:hover td{background:#f8fbff}.production-plan-overview tbody tr{cursor:pointer}.production-plan-overview .plan-total-row{cursor:default}.production-plan-overview .plan-total-row td{color:#0869c8;background:#f0f7ff;font-weight:950}.production-plan-overview .plan-total-row:hover td{background:#f0f7ff}.production-plan-overview .tabmis-plan-value{color:#075fac;background:#eef7ff;font-weight:850}.revision-link{color:#bd2f95;font:inherit;cursor:pointer;background:0 0;border:0;font-weight:950}.revision-link.blue{color:#0070c0}.small-button{border-radius:8px;min-height:32px;padding:6px 12px;font-size:12px}.plan-detail-panel{background:#fff;border:1px solid #bdd7e7;border-radius:14px;margin:0 18px 18px;overflow:hidden}.plan-detail-meta{grid-template-columns:240px minmax(360px,1fr) 160px 210px auto;align-items:end;gap:14px 28px;padding:24px 28px 18px;display:grid}.plan-detail-meta label{color:#111827;gap:8px;font-weight:850;display:grid}.plan-detail-meta label span{color:#536b87;font-size:13px}.plan-detail-meta strong{color:#111827;align-items:center;min-height:44px;font-size:18px;font-weight:900;display:flex}.plan-detail-meta select{color:#111827;min-height:48px;font:inherit;background:#fff;border:1px solid #c9d8ea;border-radius:10px;padding:0 14px;font-size:18px;font-weight:900}.plan-detail-meta .primary-button{border-radius:16px;min-height:58px;padding:0 26px}.plan-detail-matrix-wrap{padding:0 26px 26px}.plan-detail-matrix{border-collapse:separate;border-spacing:0;border:1px solid #cfe0f2;border-radius:12px;min-width:1660px;overflow:hidden}.plan-detail-matrix th,.plan-detail-matrix td{text-align:center;border-bottom:1px solid #dbe7f3;border-right:1px solid #dbe7f3;min-width:128px;height:56px}.plan-detail-matrix th{color:#102a43;background:#eef6ff;font-weight:950}.plan-detail-matrix th:first-child,.plan-detail-matrix td:first-child{min-width:190px}.plan-detail-matrix td{color:#111827;font-weight:900}.plan-update-panel{background:linear-gradient(#f8fbff 0%,#fff 58%);border:1px solid #bdd7e7;border-radius:14px;min-width:0;margin:0 18px 18px;box-shadow:0 14px 34px #1a3d6014}.plan-update-meta{grid-template-columns:190px 160px 170px minmax(0,1fr);align-items:end;gap:12px 22px;padding:18px 20px 10px;display:grid}.plan-update-meta label:nth-child(2){grid-area:2/1/auto/-1;min-width:0;padding-top:2px}.plan-update-meta label{color:#111827;gap:6px;min-width:0;font-weight:850;display:grid}.plan-update-meta label span{color:#52677f;font-size:13px}.plan-update-meta strong,.plan-update-meta select{color:#111827;min-height:34px;font:inherit;font-weight:850}.plan-update-meta strong{white-space:normal;overflow-wrap:anywhere;align-items:center;min-width:0;line-height:1.35;display:flex}.plan-update-meta select{box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;min-width:0;max-width:100%;padding:0 10px}@media (width<=900px){.plan-update-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-update-meta label:nth-child(2){grid-area:auto/1/auto/-1}}.plan-update-actions{justify-content:flex-end;gap:10px;padding:0 20px 14px;display:flex}.actual-save-button{min-width:150px;transition:background .2s,box-shadow .2s,transform .2s}.actual-save-button.saving{background:#0b6fc2;box-shadow:0 8px 22px #0872d833}.actual-save-button.done{background:#0a9b68;transform:translateY(-1px);box-shadow:0 12px 28px #0a9b6842}.financial-save-toast{z-index:13000;color:#075f42;background:#edfdf6fa;border:1px solid #71d6ad;border-radius:15px;align-items:center;gap:12px;width:min(390px,100vw - 32px);padding:14px 16px;animation:.32s ease-out both financial-save-toast-in;display:flex;position:fixed;top:86px;right:24px;box-shadow:0 18px 46px #075f4238}.financial-save-toast-icon{color:#fff;background:#0a9b68;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 7px 18px #0a9b6840}.financial-save-toast>div{gap:3px;min-width:0;display:grid}.financial-save-toast strong{font-size:15px;font-weight:950}.financial-save-toast span{font-size:12px;font-weight:750;line-height:1.4}@keyframes financial-save-toast-in{0%{opacity:0;transform:translateY(-12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=700px){.financial-save-toast{width:auto;top:72px;left:16px;right:16px}}.plan-update-matrix-wrap{max-height:430px;padding:0 18px 18px;overflow:scroll auto}.actual-section,.allocation-plan-panel,.allocation-update-panel{min-width:0;max-width:100%}.allocation-overview-table{min-width:980px;max-width:none}.allocation-detail-panel{margin-top:6px}.plan-update-matrix{border-collapse:separate;border-spacing:0;border:1px solid #cfe0f2;border-radius:12px;min-width:1480px;overflow:hidden}.plan-update-matrix th,.plan-update-matrix td{text-align:right;border-bottom:1px solid #dbe7f3;border-right:1px solid #dbe7f3}.plan-update-matrix th{color:#102a43;text-align:center;background:#eef6ff;font-weight:950}.plan-update-matrix th:first-child,.plan-update-matrix td:first-child{text-align:center;min-width:150px}.plan-update-matrix .matrix-input{background:0 0;border:0;border-radius:0;width:100%;min-width:88px}.plan-update-matrix .matrix-input:disabled{color:#94a3b8;background:#f8fafc}.readonly-matrix-value{color:#52677f;text-align:right;min-width:88px;padding:8px;display:block}.row-expand-button{color:#1d4f86;cursor:pointer;background:#fff;border:1px solid #cfe0f2;border-radius:8px;place-items:center;width:30px;height:30px;display:inline-grid}.row-expand-button:hover{background:#edf6ff;border-color:#8bc4fb}.package-drill-row td{color:#35506f;background:#f8fbff;font-size:13px}.package-drill-row td:nth-child(4){padding-left:28px;position:relative}.package-drill-row td:nth-child(4):before{content:"";background:#9fb7cf;width:10px;height:1px;position:absolute;top:50%;left:12px}.muted-row td{color:#667085;background:#fbfcfe}.data-state{color:#475467;white-space:nowrap;background:#eef2f6;border-radius:999px;align-items:center;min-height:28px;padding:4px 10px;font-size:12px;font-weight:850;display:inline-flex}.data-state.đã-phân-bổ,.data-state.một-phần{color:#087a4b;background:#dcfce7}.data-state.vượt-tổng{color:#b42318;background:#fee4e2}.data-state.chưa-có-kh,.data-state.chưa-phân-bổ{color:#936000;background:#fff7d6}.matrix-wrap{max-height:590px}.monthly-matrix{min-width:1900px}.monthly-matrix thead th{z-index:3;position:sticky;top:0}.monthly-matrix .sticky-project-col{z-index:2;background:#fff;min-width:240px;position:sticky;left:0;box-shadow:6px 0 12px #24405e0d}.monthly-matrix thead .sticky-project-col{z-index:4;background:#f5f9fd}.monthly-matrix .sticky-project-col small{max-width:215px;color:var(--text-muted);white-space:normal;margin-top:4px;font-weight:600;display:block}.matrix-input{width:92px;height:36px;color:var(--text-strong);text-align:right;font:inherit;background:#fff;border:1px solid #ccdaea;border-radius:8px;padding:0 8px;font-weight:750}.matrix-input:focus{border-color:#3b82f6;outline:2px solid #93c5fd}.matrix-total{color:#0869c8;background:#f0f7ff;font-weight:900}.rate-pill{border-radius:999px;justify-content:center;min-width:58px;padding:5px 8px;font-size:12px;font-weight:900;display:inline-flex}.rate-pill.danger{color:#b42318;background:#fee4e2}.rate-pill.warning{color:#a15c00;background:#fff0c2}.rate-pill.success{color:#087a4b;background:#d9f8e9}.rate-pill.excellent{color:#175cd3;background:#dbeafe}.rate-pill.neutral{color:#667085;background:#eef2f6}.allocation-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 22px;display:flex}.allocation-head h2{margin:0 0 4px}.allocation-head p{color:var(--text-muted);margin:0}.allocation-switch{background:#f1f5f9;border-radius:12px;flex-wrap:wrap;gap:5px;padding:4px;display:flex}.plan-zero-filter-button{white-space:nowrap}.plan-zero-filter-button.active{color:#0869c8;background:#eff7ff;border-color:#93c5fd}.allocation-progress{background:#f8fbff;grid-template-columns:repeat(3,1fr);gap:16px;padding:18px 22px;display:grid}.allocation-progress div{gap:4px;display:grid}.allocation-progress span{color:var(--text-muted);font-size:12px;font-weight:700}.allocation-progress strong{font-size:18px}.allocation-progress .progress-track{background:#dce8f5;border-radius:999px;grid-column:1/-1;height:8px;overflow:hidden}.allocation-progress .progress-track i{border-radius:inherit;background:linear-gradient(90deg,#1687ee,#22c765);height:100%;display:block}.allocation-error{color:#b42318;font-weight:850}.allocation-head-actions{align-items:center;gap:10px;display:flex}.sync-plan-button{white-space:nowrap;min-height:42px}.khgt-matrix-wrap{max-height:520px}.khgt-matrix th:first-child,.khgt-matrix td:first-child{width:150px;min-width:150px;max-width:150px}.package-name-cell>span:first-child{color:#0869c8;display:block}.hover-preview-trigger{color:#52677f;text-overflow:ellipsis;white-space:nowrap;cursor:zoom-in;max-width:132px;margin:3px auto 0;font-size:11px;font-weight:700;display:block;overflow:hidden}.hover-preview-popup{z-index:1200;color:#172033;white-space:normal;pointer-events:none;background:#fff;border:1px solid #dbe7f3;border-radius:14px;width:min(620px,100vw - 32px);padding:16px 20px;font-size:16px;font-weight:700;line-height:1.5;position:fixed;transform:translate(-50%,calc(-100% - 8px));box-shadow:0 18px 48px #0f172a33}.hover-preview-popup.below{transform:translate(-50%,8px)}@media (width<=900px){.allocation-head{flex-direction:column;align-items:flex-start;gap:12px}.allocation-head-actions{flex-wrap:wrap;width:100%}}.table-input{border:1px solid var(--border);width:110px;min-height:34px;color:var(--text-strong);font:inherit;outline-color:var(--primary);background:#fff;border-radius:9px;padding:0 10px;font-size:13px;font-weight:800}.table-input.wide{width:220px;font-weight:650}.field{gap:7px;display:grid}.full-field{grid-column:1/-1}.form-actions{justify-content:flex-end;margin-top:14px}.people-grid{border:1px solid var(--border);border-radius:0 0 16px 16px;grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px;padding:16px;display:grid}.person-card{border:1px solid var(--border);border-radius:16px;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:14px;display:grid}.avatar{background:var(--primary-soft);width:42px;height:42px;color:var(--primary);border-radius:50%;place-items:center;font-weight:800;display:grid}.avatar.small{flex:none;width:34px;height:34px;font-size:13px}.people-table-panel{border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 12px 34px #0f172a0a}.people-table{min-width:1060px}.person-cell{align-items:center;gap:10px;display:flex}.person-cell strong{color:var(--text-strong);font-weight:850}.person-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.person-summary span{background:var(--primary-soft);min-height:28px;color:var(--primary);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:850;display:inline-flex}.person-card h3{color:var(--text-strong);margin:0;font-size:15px}.person-card p,.person-card span{color:var(--muted);margin:0;font-size:12px}.empty-state{min-height:360px;color:var(--primary);background:#fff;border:1px dashed #b7c9d3;border-radius:16px;align-content:center;place-items:center;gap:10px;display:grid}.empty-state h2{color:var(--text-strong);margin:0}@media (width<=1280px){.task-search-row{grid-template-columns:repeat(3,minmax(190px,1fr));grid-template-areas:"conclusion department deputy""content content clear"}.search-clear-button{grid-column:auto}.task-work-layout,.split-layout.no-detail,.split-layout.has-detail{grid-template-columns:minmax(0,1fr)}.task-drawer{border-left:0;border-top:1px solid var(--border)}.notice-layout{grid-template-columns:1fr}}@media (width<=1100px){.task-detail-columns{grid-template-columns:minmax(0,1fr)}.task-update-pane{border-top:1px solid #b9d2e5;border-left:0}.full-update-box{position:static}}@media (width<=900px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar-collapsed .sidebar{width:260px;padding:22px 16px}.sidebar-collapsed .brand{justify-content:space-between;gap:14px;padding:2px 0 14px}.sidebar-collapsed .brand-logo-card,.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-subitem span,.sidebar-collapsed .role-card{display:block}.sidebar-collapsed .sidebar-toggle{margin-left:auto}.sidebar-collapsed .nav-item,.sidebar-collapsed .nav-subitem{justify-content:flex-start}.sidebar-collapsed .nav-item{padding:0 13px}.sidebar-collapsed .nav-subitem{padding:0 10px}.sidebar-collapsed .nav-submenu{border-left:2px solid #dbe8f3;margin:2px 0 6px 14px;padding-left:12px}.sidebar{z-index:410;width:260px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.sidebar.sidebar-open{transform:translate(0)}.scrim{z-index:400;background:#0f172a6b;border:0;position:fixed;inset:0}.mobile-menu{display:inline-grid}.topbar{padding:0 12px}.topbar-brand{gap:4px}.topbar-brand strong{font-size:24px}.topbar-brand span{font-size:13px}.page{padding:14px}.task-detail-header{min-height:76px;padding:12px 16px}.task-detail-header h2{font-size:21px}.task-detail-header p,.task-detail-close span{display:none}.task-detail-close{justify-content:center;width:42px;padding:0}.task-fixed-pane,.task-update-pane{padding:18px 14px}.task-section-heading{align-items:flex-start}.task-section-heading>span{max-width:150px}.fixed-info-grid,.update-form-grid,.update-summary-grid,.update-readonly-state{grid-template-columns:minmax(0,1fr)}.update-summary-grid .detail-item{border-bottom:1px solid #e2eaf0;border-right:0;padding:8px 0}.update-summary-grid .detail-item:last-child{border-bottom:0}.page-head,.panel-head{flex-direction:column;align-items:stretch}.head-actions{flex-wrap:wrap;justify-content:flex-start}.tabs-row{flex-direction:column;align-items:stretch}.tabs{overflow-x:auto}.quick-status-tabs{justify-content:flex-start;padding-bottom:10px}.tab{flex:none}.task-search-row{z-index:8;grid-template-columns:1fr;grid-template-areas:"conclusion""department""deputy""content""clear"}.department-search-box{z-index:9}.department-search-menu{z-index:220}.search-clear-button{grid-column:auto}.task-work-layout,.split-layout.no-detail,.split-layout.has-detail{grid-template-columns:1fr}.department-filter{position:static}.department-list{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid,.plan-summary-grid,.dashboard-focus-grid,.report-grid,.form-grid,.plan-filter-panel,.people-grid{grid-template-columns:1fr}}@media (width<=560px){.topbar-actions{display:none}.topbar-brand strong{font-size:20px}.topbar-brand span{font-size:12px}.department-list{grid-template-columns:1fr}.title-block h1{font-size:21px}.data-table th,.data-table td{padding:9px 10px}}.auth-loading{min-height:100vh;color:var(--primary-hover);background:radial-gradient(circle at 25% 20%, #dcefff 0, transparent 32%), var(--app-bg);place-items:center;font-weight:900;display:grid}.auth-loading-card{background:#fffffff0;border:1px solid #cfe0f2;border-radius:18px;justify-items:center;gap:12px;padding:24px 30px;display:grid;box-shadow:0 18px 50px #0f4b821f}.auth-loading-card small{color:var(--muted);font-weight:700}.auth-loading-card button{background:var(--primary);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:10px;padding:9px 14px;font-size:13px}.auth-loading-spinner{border:3px solid #d7e9f9;border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.login-page{background:#fff;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:100vh;display:grid}.login-brand-panel{color:#fff;background:radial-gradient(circle at 85% 15%,#46c8ff57,#0000 28%),linear-gradient(145deg,#074d8a 0%,#0872d8 54%,#095ba8 100%);flex-direction:column;justify-content:center;gap:34px;min-height:100vh;padding:clamp(42px,7vw,96px);display:flex;position:relative;overflow:hidden}.login-brand-panel:after{content:"";border:60px solid #ffffff14;border-radius:50%;width:390px;height:390px;position:absolute;bottom:-190px;right:-170px}.login-brand-panel img{object-fit:contain;background:#fff;border-radius:20px;width:270px;height:104px;padding:10px 14px;box-shadow:0 20px 50px #0219373d}.login-brand-panel h1{letter-spacing:-.045em;max-width:680px;margin:10px 0 16px;font-size:clamp(38px,5vw,66px);line-height:1.03}.login-brand-panel p{color:#ffffffdb;max-width:650px;margin:0;font-size:18px;line-height:1.65}.login-eyebrow{color:#65e6c2;letter-spacing:.13em;text-transform:uppercase;font-size:12px;font-weight:950}.login-feature-list{flex-wrap:wrap;gap:10px;max-width:670px;display:flex}.login-feature-list span{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:1px solid #ffffff38;border-radius:999px;padding:10px 14px;font-size:13px;font-weight:800}.login-form-panel{background:radial-gradient(circle at 100% 0,#e2f2ff 0,#0000 35%),#f7fafc;place-items:center;min-height:100vh;padding:36px;display:grid}.login-card{border:1px solid var(--border);background:#fffffff5;border-radius:26px;width:min(100%,460px);padding:clamp(28px,4vw,46px);box-shadow:0 28px 70px #0f355824}.login-lock{width:52px;height:52px;color:var(--primary);background:var(--primary-soft);border-radius:16px;place-items:center;margin-bottom:22px;display:grid}.login-card h2{color:var(--text-strong);margin:8px 0 9px;font-size:34px}.login-card>p{color:var(--muted);margin:0 0 28px;line-height:1.5}.login-card label{color:var(--text-strong);gap:8px;margin-top:18px;font-size:13px;font-weight:900;display:grid}.login-card input{border:1px solid var(--border);width:100%;height:50px;color:var(--text-strong);background:#fff;border-radius:13px;padding:0 14px}.login-card input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #0872d81a}.login-password-field{position:relative}.login-password-field input{padding-right:52px}.login-password-field button{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:absolute;top:5px;right:6px}.login-error{color:#b42332;background:var(--danger-soft);border:1px solid #ffc9d0;border-radius:12px;margin-top:16px;padding:11px 13px;font-size:13px;line-height:1.45}.login-submit{color:#fff;background:linear-gradient(135deg, var(--primary), #0659aa);cursor:pointer;border:0;border-radius:14px;width:100%;height:52px;margin-top:22px;font-weight:950;box-shadow:0 15px 30px #0872d840}.login-submit:disabled{opacity:.68;cursor:wait}.login-card small{color:var(--muted);text-align:center;margin-top:18px;font-size:11px;display:block}@media (width<=900px){.login-page{grid-template-columns:1fr}.login-brand-panel{gap:20px;min-height:auto;padding:34px 24px}.login-brand-panel img{width:210px;height:82px}.login-brand-panel h1{margin-bottom:10px;font-size:34px}.login-brand-panel p,.login-feature-list{display:none}.login-form-panel{min-height:auto;padding:26px 18px 50px}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{overscroll-behavior-y:none;min-width:0}button,select,input,textarea{touch-action:manipulation}input,select,textarea{font-size:16px}.workspace{min-width:0}.topbar{z-index:14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-bottom:1px solid #c7d9e9;min-height:62px;padding-inline:10px;position:sticky;top:0}.topbar-brand strong{text-overflow:ellipsis;white-space:nowrap;max-width:54vw;font-size:20px;overflow:hidden}.topbar-brand span{display:none}.topbar-actions{gap:6px;display:flex}.topbar-actions .sql-sync-indicator,.topbar-actions .user-chip{display:none}.topbar-actions .icon-button,.mobile-menu{width:42px;min-width:42px;height:42px}.notification-popover{width:auto;max-height:min(72vh,560px);position:fixed;top:66px;left:8px;right:8px}.page{padding:10px}.page-head{gap:10px;margin-bottom:12px}.dashboard-head-actions{grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;display:grid}.tv-present-button{justify-content:center;min-height:48px}.dashboard-year-filter{min-height:48px}.metric-grid.task-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.task-metric-grid .metric{min-width:0;min-height:94px;padding:12px 10px}.task-metric-grid .metric>span{font-size:10px}.task-metric-grid .metric strong{font-size:clamp(24px,8vw,34px)}.task-metric-grid .metric small{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.dashboard-overdue-wide{margin-inline:-10px}.dashboard-overdue-wide .slow-units-panel{border-radius:0}.dashboard-overdue-wide .dashboard-card-head{align-items:flex-start;gap:10px}.dashboard-overdue-wide .dashboard-card-actions{gap:6px}.dashboard-overdue-wide .overdue-group-switch .segment{min-height:30px;padding-inline:9px;font-size:11px}.dashboard-overdue-wide .slow-table{min-width:1120px}.dashboard-overdue-wide .data-table-wrap{overscroll-behavior-x:contain;scroll-snap-type:x proximity;overflow-x:auto}.dashboard-overdue-wide .slow-table th:first-child,.dashboard-overdue-wide .slow-table td:first-child{z-index:3;background:inherit;position:sticky;left:0}.dashboard-overdue-wide .slow-table th:nth-child(2),.dashboard-overdue-wide .slow-table td:nth-child(2){z-index:3;background:inherit;position:sticky;left:54px;box-shadow:7px 0 12px #153a5c14}.dashboard-special-progress-grid,.dashboard-status-attention-grid,.dashboard-dual-charts{grid-template-columns:minmax(0,1fr)}.dashboard-dual-charts{gap:10px}.dashboard-dual-charts>section{min-height:380px}.dashboard-tab-financial-section{padding-inline:0}.dashboard-financial-heading{flex-direction:column;align-items:flex-start}.summary-scorecards-grid.dashboard-scorecards-grid{grid-template-columns:minmax(0,1fr)}.dashboard-month-panel,.dashboard-project-disbursement-panel{border-radius:0;margin-inline:-10px}.horizontal-month-scroll,.dashboard-project-disbursement-panel .data-table-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.task-data-table-wrap{scrollbar-gutter:auto;max-height:none;overflow:visible}.task-data-table{display:none}.mobile-task-list{background:#fff;border-radius:14px;display:grid;overflow:hidden}.task-work-layout .table-panel{border-radius:14px;overflow:hidden}}@media (width<=560px){.title-block h1{font-size:22px}.title-block p{font-size:12px}.dashboard-head-actions{grid-template-columns:minmax(0,1fr)}.dashboard-year-filter{justify-content:space-between;width:100%}.dashboard-year-filter select{min-width:120px}.dashboard-loading-skeleton{grid-template-columns:1fr}.mobile-task-card{grid-template-columns:68px minmax(0,1fr) 24px;gap:9px;padding:14px 8px 14px 9px}.mobile-task-title{font-size:14px}.mobile-task-meta>div{grid-template-columns:82px minmax(0,1fr)}.mobile-task-project{max-width:64px}}.tv-mobile-rotate-hint,.tv-mobile-slide-status{display:none}@media (width<=900px){body.tv-presentation-open{width:100%;height:100%;position:fixed;inset:0}.tv-presentation{height:100dvh;padding-bottom:env(safe-area-inset-bottom);grid-template-rows:58px minmax(0,1fr) 4px}.tv-presentation-header{padding:0 max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left));grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.tv-brand{gap:0}.tv-brand img{width:82px;height:38px}.tv-brand div,.tv-updated-time{display:none}.tv-slide-tabs{justify-content:center;gap:4px;min-width:0}.tv-slide-tabs button{justify-content:center;min-width:42px;min-height:42px;padding:0 8px;font-size:0}.tv-slide-tabs button span{width:25px;height:25px;font-size:12px}.tv-presentation-actions{gap:4px}.tv-presentation-actions button{width:42px;min-width:42px;height:42px;padding:0}.tv-presentation-actions button:first-of-type,.tv-presentation-actions button:nth-of-type(3),.tv-fullscreen-button{display:none}.tv-presentation-actions .tv-close-button{width:42px;padding:0}.tv-close-button span{display:none}.tv-presentation-stage{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:7px 7px 34px;overflow:auto}.tv-mobile-slide-status{z-index:1003;right:12px;bottom:calc(9px + env(safe-area-inset-bottom));color:#fff;pointer-events:none;background:#073e71e0;border:1px solid #ffffffb8;border-radius:999px;padding:5px 10px;font-size:10px;font-weight:850;display:block;position:fixed;box-shadow:0 5px 18px #08284838}.tv-slide{height:auto;min-height:100%}.tv-task-slide{grid-template-rows:auto auto auto auto;gap:7px}.tv-task-score-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.tv-task-score{grid-template-columns:1fr;align-content:center;height:72px;padding:7px 9px}.tv-task-score>span{font-size:10px}.tv-task-score>strong{grid-row:auto;font-size:25px}.tv-task-score>small{display:none}.tv-overdue-panel{min-height:430px}.tv-overdue-table-wrap{-webkit-overflow-scrolling:touch;height:auto;overflow-x:auto}.tv-overdue-panel table{min-width:1120px}.tv-overdue-panel th,.tv-overdue-panel td{height:42px;font-size:13px}.tv-task-middle-grid,.tv-task-bottom-grid{grid-template-columns:minmax(0,1fr)}.tv-special-panel,.tv-department-progress,.tv-task-bottom-grid>*{min-height:260px}.tv-financial-slide{grid-template-rows:auto auto auto auto;gap:7px}.tv-slide-title{min-height:42px;padding-inline:4px}.tv-slide-title h1,.tv-financial-slide .tv-slide-title h1{font-size:23px}.tv-scorecards-grid.two-cards,.tv-scorecards-grid{grid-template-columns:minmax(0,1fr)}.tv-scorecards-grid .summary-score-card{min-height:74px}.tv-financial-dual-charts{grid-template-columns:minmax(0,1fr);gap:8px}.tv-financial-dual-charts>section,.tv-financial-slide>.production-line-panel{min-height:390px}.tv-financial-dual-charts .department-month-chart-scroll,.tv-financial-dual-charts .line-chart-wrap,.tv-financial-slide .line-chart-wrap{overflow-x:auto}.tv-financial-dual-charts svg,.tv-financial-slide .line-chart-wrap svg{min-width:740px}.tv-month-matrix{border-radius:10px;overflow-x:auto}.tv-month-matrix .data-table-wrap{overflow-x:auto}.tv-month-matrix .horizontal-month-table{min-width:1160px}}@media (width<=600px) and (orientation:portrait){.tv-mobile-rotate-hint{z-index:1002;color:#0d4f87;pointer-events:none;background:#f1f9fff0;border:1px solid #b8d8f2;border-radius:14px;justify-items:center;gap:3px;width:max-content;max-width:calc(100vw - 32px);padding:10px 16px;display:grid;position:fixed;bottom:42px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0c385e33}.tv-mobile-rotate-hint strong{font-size:13px}.tv-mobile-rotate-hint span{color:#52677f;font-size:10px}}@media (width<=900px) and (orientation:landscape){.tv-presentation{grid-template-rows:50px minmax(0,1fr) 4px}.tv-brand img{width:74px;height:34px}.tv-slide-tabs button,.tv-presentation-actions button{height:38px;min-height:38px}.tv-presentation-stage{padding-top:5px}.tv-task-score{height:60px}.tv-overdue-panel{min-height:330px}.tv-financial-slide .tv-scorecards-grid.two-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-financial-dual-charts{grid-template-columns:repeat(2,minmax(620px,1fr));overflow-x:auto}}
