@import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--size-offset:0px;--font:"DM Sans", sans-serif;--mono:"JetBrains Mono", monospace;--font-mono:var(--mono);--bg:#f5f5f5;--surface:#fff;--surface2:#f0f0f0;--card:#fff;--border:#e2e2e2;--border-lt:#d4d4d4;--text:#1e1e1e;--text-m:#424242;--text-d:#8c8c8c;--text-f:#a0a0a0;--orange:#2aa198;--orange-s:#2aa19814;--orange-m:#2aa1982e;--brand:#2aa198;--brand-s:#2aa19814;--brand-m:#2aa1982e;--ocean:#0078d4;--ocean-s:#0078d414;--sky:#0078d4;--sky-s:#0078d414;--lb:#5b9bd5;--purple:#7c3aed;--purple-s:#7c3aed14;--green:#16a34a;--green-s:#16a34a14;--red:#dc2626;--red-s:#dc26260f;--amber:#d97706;--amber-s:#d9770614;--ptcg:#38961a;--ptcg-s:#38961a1f;--ptc-green:var(--ptcg);--ptc-green-s:var(--ptcg-s);--sidebar-bg:#fff;--header-bg:#fff;--hdr-text:#424242;--glass-border:#0000000f;--glass-shadow:#0000000a;--glass-blur:12px;--glass-blur-heavy:20px;--r:12px;--rs:8px;--radius:12px;--radius-sm:8px;--kpi-label-color:var(--text-d)}[data-theme=dark]{--bg:#002b36;--surface:#073642;--surface2:#002b36;--card:#073642;--border:#1a4050;--border-lt:#2a5060;--text:#fdf6e3;--text-m:#93a1a1;--text-d:#586e75;--text-f:#657b83;--sidebar-bg:#002b36;--header-bg:#073642;--hdr-text:#93a1a1;--glass-border:#586e7540;--glass-shadow:#0000001f}[data-theme="6dr"]{--bg:#f1f5f9;--surface:#fff;--surface2:#f8fafc;--card:#fff;--border:#e2e8f0;--border-lt:#cbd5e1;--text:#0f172a;--text-m:#374151;--text-d:#64748b;--text-f:#94a3b8;--orange:#2563eb;--orange-s:#2563eb14;--orange-m:#2563eb2e;--brand:#2563eb;--brand-s:#2563eb14;--brand-m:#2563eb2e;--ocean:#0891b2;--ocean-s:#0891b214;--sky:#0891b2;--sky-s:#0891b214;--lb:#06b6d4;--purple:#7c3aed;--purple-s:#7c3aed14;--green:#059669;--green-s:#05966914;--red:#dc2626;--red-s:#dc26260f;--amber:#d97706;--amber-s:#d9770614;--ptcg:#059669;--ptcg-s:#0596691a;--ptc-green:var(--ptcg);--ptc-green-s:var(--ptcg-s);--sidebar-bg:#fff;--header-bg:#fff;--hdr-text:#374151;--glass-border:#0000000f;--glass-shadow:#0000000a;--glass-blur:12px;--glass-blur-heavy:20px}[data-theme="6dr-dark"]{--bg:#0b0f14;--surface:#111820;--surface2:#0b0f14;--card:#161e28;--border:#1e2a3a;--border-lt:#2a3a4e;--text:#e2e8f0;--text-m:#b0c4d8;--text-d:#8fa3b8;--text-f:#64748b;--orange:#3b82f6;--orange-s:#3b82f61a;--orange-m:#3b82f633;--brand:#3b82f6;--brand-s:#3b82f61a;--brand-m:#3b82f633;--ocean:#06b6d4;--ocean-s:#06b6d41a;--sky:#06b6d4;--sky-s:#06b6d41a;--lb:#06b6d4;--purple:#8b5cf6;--purple-s:#8b5cf61a;--green:#10b981;--green-s:#10b9811f;--red:#ef4444;--red-s:#ef44441f;--amber:#f59e0b;--amber-s:#f59e0b1f;--ptcg:#10b981;--ptcg-s:#10b9811f;--ptc-green:var(--ptcg);--ptc-green-s:var(--ptcg-s);--sidebar-bg:#0b0f14;--header-bg:#111820;--hdr-text:#b0c4d8;--glass-border:#3b82f626;--glass-shadow:#0003;--glass-blur:12px;--glass-blur-heavy:20px}[data-size=s]{--size-offset:0px;font-size:14px}[data-size=m]{--size-offset:2px;font-size:16px}[data-size=l]{--size-offset:4px;font-size:18px}[data-size=m] .page-title{font-size:22px}[data-size=m] .page-desc{font-size:13px}[data-size=m] .sl{font-size:12px}[data-size=m] .card{font-size:13px}[data-size=m] .pill{font-size:10px}[data-size=m] .btn,[data-size=m] .tab-btn{font-size:12px}[data-size=m] .form-input,[data-size=m] .form-select{font-size:13px}[data-size=m] .sb-item{padding:7px 12px 7px 22px;font-size:13px}[data-size=m] .sb-group-hdr{font-size:10.5px}[data-size=m] .sidebar{width:240px}[data-size=l] .page-title{font-size:24px}[data-size=l] .page-desc{font-size:15px}[data-size=l] .sl{font-size:14px}[data-size=l] .card{font-size:15px}[data-size=l] .pill{font-size:12px}[data-size=l] .btn,[data-size=l] .tab-btn{font-size:14px}[data-size=l] .form-input,[data-size=l] .form-select{font-size:15px}[data-size=l] .sb-item{padding:8px 14px 8px 24px;font-size:15px}[data-size=l] .sb-group-hdr{font-size:12px}[data-size=l] .sidebar{width:260px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);height:100vh;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--border-lt);border-radius:3px}::-webkit-scrollbar-track{background:0 0}a,a:visited{color:var(--ocean);text-decoration:none}a:hover{text-decoration:underline}.app{height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;transition:left .25s cubic-bezier(.4,0,.2,1);display:flex}.main{flex-direction:column;flex:1;display:flex;overflow:hidden}.header{background:var(--surface);height:48px;-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:0 20px;display:flex;box-shadow:0 1px 4px #0000000f}.content{flex:1;padding:24px 28px 60px;overflow-y:auto}.sb-logo{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px;display:flex}.sb-logo-icon{width:32px;height:32px;font-size:10px;font-family:var(--mono);color:#fff;background:linear-gradient(135deg,#2aa198,#1a8a82);border-radius:8px;justify-content:center;align-items:center;font-weight:800;display:flex}.sb-nav{flex:1;padding:6px 8px;overflow-y:auto}.sb-group{margin-bottom:2px}.sb-group-hdr{font-size:9.5px;font-family:var(--mono);color:var(--text-d);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;border-radius:var(--rs);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:6px 10px;font-weight:700;display:flex}.sb-group-hdr:hover{background:var(--surface2)}.sb-group-hdr .caret{opacity:.5;margin-left:auto;font-size:8px;transition:transform .15s}.sb-group.collapsed .sb-group-items{display:none}.sb-group.collapsed .caret{transform:rotate(-90deg)}.sb-item{border-radius:var(--rs);cursor:pointer;color:var(--text-m);border:1px solid #0000;align-items:center;gap:8px;margin-bottom:1px;padding:6px 10px 6px 20px;font-size:11.5px;font-weight:500;transition:all .15s;display:flex}.sb-item:hover{background:var(--surface2);color:var(--text)}.sb-item.active{background:var(--orange-s);border-color:var(--orange-m);color:var(--orange);font-weight:600}.sb-item .ic{opacity:.6;display:flex}.sb-item.active .ic{opacity:1}.sb-user{border-top:1px solid var(--border);padding:10px 8px}.h-pill{font-size:9px;font-family:var(--mono);background:var(--surface2);border:1px solid var(--border);color:var(--text-d);text-transform:uppercase;border-radius:4px;padding:2px 8px;font-weight:600}.h-right{align-items:center;gap:10px;margin-left:auto;display:flex}.h-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-d);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;display:flex}.h-btn:hover{background:var(--surface);color:var(--text-m)}.sb-toggle{background:var(--surface2);border:1px solid var(--border);color:var(--text-d);cursor:pointer;border-radius:6px;padding:6px 8px;font-size:16px;line-height:1;display:none}.sb-overlay{z-index:299;background:#0006;display:none;position:fixed;inset:0}.sb-overlay.open{display:block}.card{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;transition:box-shadow .2s,border-color .2s;box-shadow:0 1px 4px #0000000a}.card:hover{border-color:var(--border-lt);box-shadow:0 4px 12px #0000000f}.pill{font-size:9.5px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:4px;align-items:center;gap:3px;padding:2px 8px;font-weight:600;display:inline-flex}.sl,.section-label{font-size:10px;font-family:var(--mono);color:var(--text-d);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.grid-5{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.bar-bg{background:var(--border);border-radius:3px;width:100%;height:6px;overflow:hidden}.bar-fill{border-radius:3px;height:100%;transition:width .5s}.avatar{font-family:var(--mono);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.page-title{letter-spacing:-.02em;font-size:22px;font-weight:700}.page-desc{color:var(--text-m);margin-top:4px;font-size:13px}.btn{border-radius:var(--rs);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);border:none;padding:8px 16px;transition:all .15s}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.btn-orange{background:var(--orange);color:#fff}.btn-ocean{background:var(--ocean-s);color:var(--ocean);border:1px solid #629dd133}.btn-ghost{color:var(--text-m);border:1px solid var(--border);background:0 0}.btn-green{background:var(--ptcg);color:#fff}.btn-red{background:var(--red-s);color:var(--red);border:1px solid #ef444426}.btn.loading{pointer-events:none;opacity:.7}.btn.loading:after{content:"";vertical-align:middle;border:2px solid;border-top-color:#0000;border-radius:50%;width:12px;height:12px;margin-left:6px;animation:.6s linear infinite spin;display:inline-block}.tab-bar{gap:6px;margin-bottom:16px;display:flex}.tab-btn{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-d);border-radius:999px;padding:6px 14px;font-size:11px;font-weight:600;transition:all .15s}.tab-btn.active{background:var(--orange-s);border-color:var(--orange-m);color:var(--orange)}.tab-btn:hover{transform:translateY(-1px)}.cr-tabs{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);gap:2px;margin-bottom:16px;padding:3px;display:flex;overflow-x:auto}.cr-tab{font-size:10.5px;font-family:var(--mono);cursor:pointer;color:var(--text-d);white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;padding:7px 14px;font-weight:600;transition:all .15s;display:flex}.cr-tab:hover{background:var(--surface2);color:var(--text);transform:translateY(-1px)}.cr-tab.active{background:var(--orange-s);color:var(--orange);border:1px solid var(--orange-m)}.kpi-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px 12px;box-shadow:0 1px 4px #0000000a}.kpi-label{font-size:10px;font-family:var(--mono);color:var(--text-d);text-transform:uppercase;letter-spacing:.05em;margin-top:6px}.kpi-value{font-size:26px;font-weight:700;font-family:var(--mono)}.kpi-unit{color:var(--text-d);margin-left:2px;font-size:11px;font-weight:500}.kpi-sub{color:var(--text-m);margin-left:4px;font-size:11px;font-weight:500}.ht{border-collapse:collapse;width:100%}.ht th,.ht td{border:1px solid var(--border);vertical-align:middle;padding:5px 6px;font-size:11px}.ht th{font-size:8px;font-family:var(--mono);color:var(--text-d);text-transform:uppercase;letter-spacing:.03em;background:var(--surface2);padding:8px 6px}.ht td.score{text-align:center;font-family:var(--mono);font-weight:600}.ht .s1{background:var(--red-s);color:var(--red)}.ht .s2{color:#dc3030;background:#ef444426}.ht .s3{background:var(--amber-s);color:var(--amber)}.ht .s4{background:var(--green-s);color:var(--green)}.ht .s5{color:#0ea572;background:#10b9812e}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;display:flex}.filter-bar label{font-size:9px;font-family:var(--mono);color:var(--text-d);text-transform:uppercase;letter-spacing:.04em}.filter-bar select{border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:11px;font-family:var(--font);border-radius:4px;padding:4px 8px}.form-label{font-size:10px;font-family:var(--mono);color:var(--text-d);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:block}.form-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-size:12px;font-family:var(--font);border-radius:6px;outline:none;margin-bottom:10px;padding:8px 12px}.form-input:focus{border-color:var(--orange)}.form-input.error{border-color:var(--red)!important;background:var(--red-s)!important}.form-input.success{border-color:var(--green)!important}.form-select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-m);font-size:12px;font-family:var(--font);border-radius:6px;margin-bottom:10px;padding:8px 12px}.form-error{color:var(--red);margin-top:-8px;margin-bottom:8px;font-size:10px;animation:.15s fadeIn;display:none}.form-error.show{display:block}.modal-overlay{z-index:400;background:#00000080;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;min-width:480px;max-width:640px;max-height:80vh;padding:24px;animation:.2s fadeUp;position:relative;overflow-y:auto}.modal h3{margin-bottom:16px;font-size:16px;font-weight:700}.modal-close{cursor:pointer;color:var(--text-d);background:0 0;border:none;font-size:18px;position:absolute;top:12px;right:12px}.login-overlay{background:var(--bg);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:380px;padding:40px;box-shadow:0 12px 48px #00000014}.login-input{border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-size:13px;font-family:var(--font);outline:none;margin-bottom:12px;padding:10px 14px}.login-input:focus{border-color:var(--orange)}.login-btn{border-radius:var(--rs);background:var(--orange);color:#fff;cursor:pointer;border:none;width:100%;padding:12px;font-size:14px;font-weight:700}.notif-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);z-index:200;width:320px;max-height:400px;display:none;position:absolute;top:48px;right:20px;overflow-y:auto;box-shadow:0 8px 32px #00000026}.notif-panel.open{animation:.15s fadeUp;display:block}.gap-card{border-radius:var(--rs);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--amber);margin-bottom:6px;padding:10px 12px}.spof-card{border-radius:var(--rs);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--red);margin-bottom:8px;padding:12px}.gate-wrap{position:relative}.gate-blur{filter:blur(4px);opacity:.4;pointer-events:none}.gate-overlay{border-radius:var(--r);z-index:2;background:#0b0f1499;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.spinner{border:2px solid var(--border);border-top-color:var(--orange);vertical-align:middle;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:32px;height:32px}.skeleton{background:linear-gradient(90deg, var(--surface) 25%, var(--surface2) 50%, var(--surface) 75%);border-radius:var(--rs);background-size:400px 100%;height:20px;margin-bottom:8px;animation:1.2s infinite shimmer}.toast{border-radius:var(--rs);z-index:600;align-items:center;gap:8px;max-width:360px;padding:12px 20px;font-size:12px;font-weight:600;animation:.25s fadeUp;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #00000026}.toast-success{background:var(--green);color:#fff}.toast-error{background:var(--red);color:#fff}.toast-info{background:var(--ocean);color:#fff}svg text{font-family:var(--mono)}svg .radar-poly{transition:all .4s}svg .dep-node:hover rect{stroke-width:2.5px;filter:drop-shadow(0 2px 4px #0003)}svg .dep-node text{pointer-events:none}svg .gantt-bar{cursor:default}svg .gantt-bar:hover{filter:brightness(1.2);stroke-width:2px}.modal-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);width:90%;max-width:560px;max-height:85vh;padding:24px;animation:.2s slideUp;overflow-y:auto;box-shadow:0 16px 48px #0000001f}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.crud-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-size:12px;font-family:var(--font);border-radius:6px;outline:none;padding:8px 12px;transition:border-color .15s,box-shadow .15s}.crud-input:focus{border-color:var(--ocean);box-shadow:0 0 0 2px var(--ocean-s)}.crud-input::placeholder{color:var(--text-d)}select.crud-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}textarea.crud-input{min-height:72px;line-height:1.5}.btn-primary{font-weight:600;box-shadow:0 1px 3px #2aa1984d;background:var(--orange)!important;color:#fff!important;border:none!important}.btn-primary:hover{filter:brightness(1.1);box-shadow:0 2px 8px #2aa19866}.btn-primary:disabled{opacity:.5;cursor:not-allowed;filter:none}.crud-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.crud-search{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;outline:none;flex:1;min-width:200px;max-width:320px;padding:7px 12px 7px 32px;font-size:12px}.crud-search:focus{border-color:var(--ocean);box-shadow:0 0 0 2px var(--ocean-s)}.dt{border-collapse:collapse;width:100%}.dt th{text-align:left;font-size:9px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-d);border-bottom:2px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;padding:8px 12px;font-weight:700}.dt th:hover{color:var(--ocean)}.dt td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px;font-size:12px}.dt tr:hover td{background:var(--surface)}.dt .actions{gap:4px;display:flex}.dt .actions button{border:1px solid var(--border);color:var(--text-d);cursor:pointer;background:0 0;border-radius:4px;align-items:center;padding:4px 6px;font-size:10px;display:flex}.dt .actions button:hover{background:var(--surface2);color:var(--text)}.dt .actions button.danger:hover{background:var(--red-s);color:var(--red);border-color:var(--red)}.empty-state{text-align:center;padding:48px 24px}.empty-state .icon{background:var(--surface2);width:48px;height:48px;color:var(--text-d);border-radius:12px;justify-content:center;align-items:center;margin-bottom:12px;display:inline-flex}.empty-state h3{margin-bottom:4px;font-size:15px;font-weight:700}.empty-state p{color:var(--text-d);margin-bottom:16px;font-size:12px}.kl-body{color:var(--text-m);white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.65;font-family:var(--font);max-height:440px;margin:0;padding-right:6px;overflow:auto}.kl-list-item{text-align:left;cursor:pointer;width:100%;color:var(--text-m);background:0 0;border:1px solid #0000;border-radius:6px;margin-bottom:2px;padding:9px 11px;transition:all .15s;display:block}.kl-list-item:hover{background:var(--surface2);color:var(--text)}.kl-list-item.active{background:var(--orange-s);border-color:var(--orange-m);color:var(--orange)}.kl-grid-table{border-collapse:collapse;width:100%;font-size:11.5px}.kl-grid-table td{border:1px solid var(--border);color:var(--text-m);white-space:nowrap;text-overflow:ellipsis;max-width:300px;padding:4px 8px;overflow:hidden}.kl-grid-table tr:first-child td{color:var(--text);background:var(--surface2);font-weight:600;position:sticky;top:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.anim-fade{animation:.25s both fadeUp}.anim-slide{animation:.2s both slideIn}.content .card{animation:.3s both fadeUp}.content .card:nth-child(2){animation-delay:40ms}.content .card:nth-child(3){animation-delay:80ms}.content .card:nth-child(4){animation-delay:.12s}.content .card:nth-child(5){animation-delay:.16s}.content .card:nth-child(6){animation-delay:.2s}.content .grid-2>.card,.content .grid-3>.card,.content .grid-4>.card,.content .grid-5>.card{animation:.3s both fadeUp}@media (width<=1024px){.grid-5{grid-template-columns:repeat(3,1fr)}.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.content{padding:20px 18px 50px}.cr-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}}@media (width<=768px){.sb-toggle{align-items:center;display:flex}.sidebar{z-index:300;width:250px;box-shadow:none;transition:left .25s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:-260px}.sidebar.open{left:0;box-shadow:8px 0 32px #0000004d}.sb-overlay.open{z-index:299;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;display:block;position:fixed;inset:0}.main{width:100%}.content{padding:16px 12px 50px}.grid-5,.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.filter-bar{flex-direction:column;align-items:flex-start;gap:6px}.filter-bar select,.filter-bar input{width:100%}.modal{width:calc(100vw - 32px);min-width:auto;max-width:100%}.modal-card{width:calc(100vw - 32px);min-width:auto;max-width:100%;max-height:90vh;overflow-y:auto}.viewer-frame{border-radius:0;width:100vw;height:100vh}.login-card{width:calc(100vw - 32px);padding:24px}.ht{font-size:10px}.ht th,.ht td{padding:4px 3px}.header{padding:0 12px}.header .h-pill{display:none}.tab-bar,.cr-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.cr-tabs::-webkit-scrollbar{display:none}.cr-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.cr-tabs::-webkit-scrollbar{display:none}.btn,.tab-btn,.cr-tab,button{min-height:44px}.form-input,.form-select,.form-textarea,.crud-input,.login-input{min-height:44px;font-size:16px}.data-table-wrap,.ht-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table,.ht{min-width:600px}svg[viewBox]{max-width:100%;height:auto}.crud-toolbar{flex-wrap:wrap;gap:8px}.crud-toolbar .crud-search{width:100%}.spof-card{min-width:0}.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.page-title{font-size:16px}.page-desc{font-size:11px}.kpi-value{font-size:20px}.cr-tab{padding:5px 10px;font-size:9.5px}.card{padding:12px 14px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.header{gap:4px}.h-pill{padding:1px 4px;font-size:7px}.actions{gap:6px;display:flex}.actions button{min-width:36px;min-height:36px}.avatar{width:36px!important;height:36px!important;font-size:12px!important}.login-card{width:calc(100vw - 24px);padding:20px 16px}.login-input{font-size:16px}}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body{color:#111!important;background:#fff!important;height:auto!important;overflow:visible!important}.app{height:auto!important;display:block!important}.sidebar,.header,.sb-toggle,.sb-overlay,.notif-panel,.modal-overlay,.viewer-overlay,.login-overlay,.btn,.h-btn,.h-right,.filter-bar select,.form-select{display:none!important}.main{overflow:visible!important}.content{padding:0!important;overflow:visible!important}.card{break-inside:avoid;page-break-inside:avoid;margin-bottom:10px;box-shadow:none!important;border:1px solid #ccc!important}.grid-2,.grid-3,.grid-4,.grid-5{gap:8px}.ht th{color:#333!important;background:#f0f0f0!important}.ht td.score{font-weight:700}.ht .s1,.ht .s2{color:#c00!important;background:#fee!important}.ht .s3{color:#960!important;background:#ffd!important}.ht .s4,.ht .s5{color:#060!important;background:#dfd!important}.pill{border:1px solid #999!important}.bar-bg{background:#ddd!important}.bar-fill{background:#666!important}.page-title{font-size:20px!important}.page-desc{margin-bottom:12px!important}.kpi-value{color:#111!important}svg text{fill:#111!important}.print-header{text-align:center;border-bottom:2px solid #333;margin-bottom:16px;padding:16px 0 12px;display:block!important}.print-header .logo{letter-spacing:.05em;font-size:14px;font-weight:800}.print-header .sub{color:#666;margin-top:4px;font-size:10px}.print-footer{text-align:center;color:#999;border-top:1px solid #ccc;margin-top:16px;padding:12px 0;font-size:9px;display:block!important}@page{margin:.75in;size:letter}.cr-tabs{display:none!important}.deployment-gantt{break-inside:avoid}.deployment-phase-card{break-inside:avoid;page-break-inside:avoid}.stakeholder-card{break-inside:avoid}.raci-table{font-size:9px!important}.raci-table th{background:#e8e8e8!important}.gap-row,.governance-card{break-inside:avoid}.raci-badge-R{color:#060!important;background:#dfd!important}.raci-badge-A{color:#06c!important;background:#def!important}.raci-badge-C{color:#960!important;background:#ffd!important}.raci-badge-I{color:#666!important;background:#eee!important}.mrl-badge{border:2px solid #333!important}}.print-header,.print-footer{display:none}
