:root{--bg:#f2f4f8;--card:#fff;--border:#e2e8f0;--ink:#0f1c2e;--ink-2:#45566b;--muted:#8595a9;--primary:#1a56db;--primary-dark:#16409e;--primary-soft:#e8effc;--sidebar:#101c2c;--sidebar-2:#182a40;--sidebar-ink:#93a5bb;--sidebar-active:#1e3a5f;--series-1:#2a78d6;--series-2:#1baf7a;--good:#0ca30c;--good-soft:#e7f6e7;--good-ink:#0a6e0a;--warning:#fab219;--warning-soft:#fdf3dc;--warning-ink:#8a5b00;--serious:#ec835a;--critical:#d03b3b;--critical-soft:#fbe9e9;--critical-ink:#a02020;--grid:#e7eaf0;--radius:10px;--shadow:0 1px 2px #101c2e0f, 0 1px 3px #101c2e14;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}#app{height:100%}h1,h2,h3,h4{color:var(--ink);font-weight:600}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.login-wrap{min-height:100vh;display:flex}.login-brand{color:#fff;background:linear-gradient(160deg,#101c2c 0%,#16283e 55%,#1c3453 100%);flex-direction:column;flex:1.1;justify-content:center;padding:64px;display:flex}.login-brand .logo-row{margin-bottom:28px}.login-brand .brand-logo{border-radius:14px;width:220px;height:auto;display:block}.login-brand h1{color:#fff;letter-spacing:.2px;font-size:26px}.login-brand .tagline{color:#b9c6d8;max-width:460px;margin-bottom:40px;font-size:15px}.login-brand ul{gap:14px;list-style:none;display:grid}.login-brand li{color:#cdd8e6;align-items:flex-start;gap:12px;max-width:460px;font-size:13.5px;display:flex}.login-brand li svg{flex-shrink:0;margin-top:2px}.login-panel{background:var(--card);flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.login-box{width:100%;max-width:380px}.login-box h2{margin-bottom:6px;font-size:20px}.login-box .sub{color:var(--ink-2);margin-bottom:28px;font-size:13.5px}.otp-note{background:var(--primary-soft);color:var(--primary-dark);border:1px solid #c6d8f5;border-radius:8px;margin-bottom:18px;padding:10px 14px;font-size:13px}.shell{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--sidebar);width:232px;color:var(--sidebar-ink);flex-direction:column;flex-shrink:0;display:flex}.sidebar .brand{border-bottom:1px solid #ffffff12;align-items:center;gap:10px;padding:18px 20px 16px;display:flex}.icon-btn.nav-close,.icon-btn.nav-toggle{display:none}.sidebar .brand .logo-mark{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;overflow:hidden}.sidebar .brand .logo-mark img{object-fit:cover;width:100%;height:100%}.sidebar .brand .name{color:#fff;letter-spacing:.2px;font-size:15px;font-weight:600}.sidebar .brand .sub{color:var(--sidebar-ink);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px}.sidebar nav{flex:1;padding:14px 10px;overflow-y:auto}.nav-section{text-transform:uppercase;letter-spacing:.1em;color:#5c7089;padding:14px 12px 6px;font-size:10.5px;font-weight:600}.nav-item{cursor:pointer;color:var(--sidebar-ink);text-align:left;width:100%;font-size:13.5px;font-weight:500;font-family:var(--font);background:0 0;border:none;border-radius:7px;align-items:center;gap:11px;margin-bottom:2px;padding:9px 12px;display:flex}.nav-item:hover{background:var(--sidebar-2);color:#dbe4ee}.nav-item.active{background:var(--sidebar-active);color:#fff}.nav-item svg{flex-shrink:0}.nav-item .count{background:var(--critical);color:#fff;border-radius:9px;margin-left:auto;padding:1px 7px;font-size:10.5px;font-weight:600}.sidebar .side-foot{color:#5c7089;border-top:1px solid #ffffff12;padding:14px 16px;font-size:11.5px}.main{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{background:var(--card);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:60px;padding:0 26px;display:flex}.topbar .page-title{font-size:16px;font-weight:600}.topbar .spacer{flex:1}.topbar .loc-badge{color:var(--ink-2);border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:flex}.topbar .loc-badge .dot{background:var(--good);border-radius:50%;width:7px;height:7px}.topbar .loc-badge.off .dot{background:var(--critical)}.icon-btn{border:1px solid var(--border);background:var(--card);cursor:pointer;width:38px;height:38px;color:var(--ink-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn:hover{background:var(--bg)}.icon-btn .badge-dot{background:var(--critical);color:#fff;border:2px solid var(--card);border-radius:8px;justify-content:center;align-items:center;min-width:15px;height:15px;padding:0 3px;font-size:9.5px;font-weight:700;display:flex;position:absolute;top:6px;right:7px}.user-chip{align-items:center;gap:10px;display:flex}.user-chip .avatar{background:var(--primary-soft);width:34px;height:34px;color:var(--primary-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.user-chip .uname{font-size:13px;font-weight:600;line-height:1.2}.user-chip .urole{color:var(--muted);font-size:11.5px;line-height:1.2}.content{flex:1;padding:26px;overflow-y:auto}.content-inner{max-width:1240px;margin:0 auto}.notif-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);z-index:60;flex-direction:column;width:400px;max-height:480px;display:flex;position:absolute;top:52px;right:0;box-shadow:0 10px 30px #101c2e29}.notif-panel .np-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.notif-panel .np-head h3{font-size:14px}.notif-panel .np-list{overflow-y:auto}.notif-item{border-bottom:1px solid var(--grid);gap:12px;padding:13px 18px;display:flex}.notif-item:last-child{border-bottom:none}.notif-item.unread{background:#f6f9fe}.notif-item .ni-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.notif-item .ni-body{color:var(--ink);flex:1;font-size:13px}.notif-item .ni-meta{color:var(--muted);margin-top:3px;font-size:11.5px}.notif-empty{text-align:center;color:var(--muted);padding:34px;font-size:13px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card .card-head{border-bottom:1px solid var(--grid);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card .card-head h3{font-size:14.5px}.card .card-head .hint{color:var(--muted);font-size:12px}.card .card-body{padding:20px}.card .card-body.flush{padding:0}.grid{gap:18px;display:grid}.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.mb{margin-bottom:18px}@media (width<=1100px){.grid.cols-4,.grid.cols-3{grid-template-columns:1fr 1fr}}.kpi{padding:18px 20px}.kpi .k-label{color:var(--ink-2);align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.kpi .k-value{letter-spacing:-.01em;margin-top:6px;font-size:26px;font-weight:650}.kpi .k-sub{color:var(--muted);margin-top:3px;font-size:12px}.kpi .k-value.crit{color:var(--critical-ink)}.kpi .k-value.good{color:var(--good-ink)}.kpi .k-value.warn{color:var(--warning-ink)}.chip{white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:3px 11px;font-size:11.5px;font-weight:600;display:inline-flex}.chip .cdot{border-radius:50%;width:7px;height:7px}.chip.ongoing{background:var(--primary-soft);color:var(--primary-dark)}.chip.ongoing .cdot{background:var(--series-1)}.chip.delayed{background:var(--critical-soft);color:var(--critical-ink)}.chip.delayed .cdot{background:var(--critical)}.chip.verification{background:var(--warning-soft);color:var(--warning-ink)}.chip.verification .cdot{background:var(--warning)}.chip.closed{background:var(--good-soft);color:var(--good-ink)}.chip.closed .cdot{background:var(--good)}.chip.upcoming{color:var(--ink-2);background:#eef1f5}.chip.upcoming .cdot{background:var(--muted)}.chip.neutral{color:var(--ink-2);background:#eef1f5}.chip.credit{background:var(--good-soft);color:var(--good-ink)}.chip.debit{background:var(--critical-soft);color:var(--critical-ink)}.tag{color:var(--ink-2);background:#eef1f5;border-radius:5px;margin:2px 4px 2px 0;padding:2px 8px;font-size:11px;display:inline-block}.btn{font-family:var(--font);cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--bg)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.danger{background:var(--critical);border-color:var(--critical);color:#fff}.btn.danger:hover{background:#b32e2e}.btn.ghost{color:var(--primary);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--primary-soft)}.btn.sm{border-radius:7px;padding:5px 12px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;background:#fafbfc;padding:11px 16px;font-size:11px;font-weight:600}.table td{border-bottom:1px solid var(--grid);vertical-align:middle;padding:12px 16px}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:#f7f9fc}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .actions{text-align:right;white-space:nowrap}.table-scroll{overflow-x:auto}.field{margin-bottom:15px}.field label{color:var(--ink-2);margin-bottom:5px;font-size:12.5px;font-weight:600;display:block}.field .req{color:var(--critical)}.field input,.field select,.field textarea{width:100%;font-family:var(--font);color:var(--ink);border:1px solid var(--border);background:var(--card);border-radius:8px;outline:none;padding:9px 12px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1a56db1f}.field textarea{resize:vertical;min-height:74px}.field .help{color:var(--muted);margin-top:4px;font-size:11.5px}.form-grid{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.form-grid .span-2{grid-column:span 2}.form-section{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--grid);grid-column:span 2;margin:10px 0 14px;padding-bottom:6px;font-size:12px;font-weight:700}.radio-row{gap:16px;padding:6px 0;display:flex}.radio-row label{color:var(--ink);cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.modal-overlay{z-index:100;background:#0a121e80;justify-content:center;align-items:flex-start;padding:48px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);border-radius:12px;width:100%;max-width:560px;animation:.18s ease-out modalIn;box-shadow:0 20px 50px #0a121e4d}.modal.wide{max-width:780px}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal .m-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal .m-head h3{font-size:15.5px}.modal .m-body{max-height:62vh;padding:22px 24px;overflow-y:auto}.modal .m-foot{border-top:1px solid var(--border);background:#fafbfc;border-radius:0 0 12px 12px;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.m-close{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:4px}.m-close:hover{color:var(--ink)}#toast-root{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--sidebar);color:#e8eef5;border-radius:9px;align-items:center;gap:10px;max-width:420px;padding:12px 18px;font-size:13px;animation:.2s ease-out toastIn;display:flex;box-shadow:0 8px 24px #0a121e4d}.toast.success{border-left:3px solid var(--good)}.toast.error{border-left:3px solid var(--critical)}.toast.info{border-left:3px solid var(--series-1)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.progress{background:#e8ecf2;border-radius:6px;height:8px;overflow:hidden}.progress .fill{background:var(--series-1);border-radius:6px;height:100%;transition:width .3s}.progress .fill.good{background:var(--good)}.progress .fill.warn{background:var(--warning)}.progress .fill.crit{background:var(--critical)}.progress-row{align-items:center;gap:12px;display:flex}.progress-row .progress{flex:1}.progress-row .pct{color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums;min-width:38px;font-size:12px;font-weight:600}.site-card{cursor:pointer;transition:border-color .15s,box-shadow .15s}.site-card:hover{border-color:var(--primary);box-shadow:0 4px 14px #1a56db1f}.site-card .sc-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.site-card h3{margin-bottom:2px;font-size:15px}.site-card .sc-loc{color:var(--muted);align-items:center;gap:5px;margin-bottom:14px;font-size:12.5px;display:flex}.site-card .sc-stats{grid-template-columns:1fr 1fr 1fr;gap:10px;margin:14px 0;display:grid}.site-card .sc-stat .v{font-size:15px;font-weight:650}.site-card .sc-stat .l{color:var(--muted);font-size:11px}.site-card .sc-current{color:var(--ink-2);border-top:1px solid var(--grid);margin-top:12px;padding-top:12px;font-size:12.5px}.site-card .sc-current strong{color:var(--ink)}.stage-block{margin-bottom:22px}.stage-title{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.stage-title .line{background:var(--border);flex:1;height:1px}.task-row{background:var(--card);border:1px solid var(--border);border-radius:9px;align-items:center;gap:14px;margin-bottom:8px;padding:13px 16px;display:flex}.task-row.locked{opacity:.72;background:#f8f9fb}.task-row.delayed-row{border-left:3px solid var(--critical)}.task-row.verification-row{border-left:3px solid var(--warning)}.task-row.ongoing-row{border-left:3px solid var(--series-1)}.task-row.closed-row{border-left:3px solid var(--good)}.task-row .t-seq{width:30px;height:30px;color:var(--ink-2);background:#eef1f5;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.task-row .t-main{flex:1;min-width:0}.task-row .t-name{flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.task-row .t-meta{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:2px;font-size:12px;display:flex}.task-row .t-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.parallel-badge{color:#6941c6;letter-spacing:.04em;background:#f2ebfd;border-radius:4px;padding:1px 7px;font-size:10.5px;font-weight:700}.subtask-list{border-top:1px dashed var(--grid);gap:6px;margin-top:10px;padding-top:10px;display:grid}.subtask-list label{color:var(--ink-2);cursor:pointer;align-items:center;gap:9px;font-size:12.5px;display:flex}.subtask-list label.done{color:var(--muted);text-decoration:line-through}.subtask-list input{accent-color:var(--primary);width:14px;height:14px}.delay-banner{background:var(--critical-soft);color:var(--critical-ink);border:1px solid #f1c5c5;border-radius:9px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.delay-banner strong{font-weight:700}.photo-preview{border:1px solid var(--border);border-radius:9px;margin-top:10px;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;max-height:280px;display:block}.photo-preview .geo{color:var(--ink-2);border-top:1px solid var(--grid);background:#fafbfc;align-items:center;gap:8px;padding:8px 12px;font-size:11.5px;display:flex}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex}.tab{color:var(--ink-2);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);background:0 0;border:none;border-bottom:2px solid #0000;padding:9px 16px}.tab:hover{color:var(--ink)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab .tcount{color:var(--ink-2);background:#eef1f5;border-radius:9px;margin-left:5px;padding:1px 7px;font-size:11px}.chat-layout{grid-template-columns:250px 1fr;gap:18px;height:calc(100vh - 160px);min-height:480px;display:grid}.chat-channels{overflow-y:auto}.chat-channel{border-bottom:1px solid var(--grid);cursor:pointer;padding:13px 16px}.chat-channel:hover{background:#f7f9fc}.chat-channel.active{background:var(--primary-soft);border-right:3px solid var(--primary)}.chat-channel .cc-name{font-size:13px;font-weight:600}.chat-channel .cc-sub{color:var(--muted);margin-top:1px;font-size:11.5px}.chat-main{flex-direction:column;display:flex;overflow:hidden}.chat-msgs{flex-direction:column;flex:1;gap:14px;padding:20px;display:flex;overflow-y:auto}.msg{max-width:72%}.msg.mine{align-self:flex-end}.msg .m-sender{color:var(--muted);align-items:baseline;gap:8px;margin-bottom:3px;font-size:11.5px;display:flex}.msg .m-sender .s-name{color:var(--ink-2);font-weight:600}.msg .m-bubble{background:#f0f3f8;border-radius:10px;padding:10px 14px;font-size:13.5px}.msg.mine .m-bubble{background:var(--primary-soft)}.msg .m-photo{border:1px solid var(--border);border-radius:10px;max-width:300px;margin-top:4px;overflow:hidden}.msg .m-photo img{width:100%;display:block}.msg .m-photo .geo{color:var(--ink-2);border-top:1px solid var(--grid);background:#fafbfc;align-items:center;gap:6px;padding:6px 10px;font-size:11px;display:flex}.msg .m-feedback{border-left:3px solid var(--warning);background:var(--warning-soft);color:var(--warning-ink);border-radius:0 8px 8px 0;margin-top:8px;padding:8px 12px;font-size:12.5px}.msg .m-feedback .f-by{text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:11px;font-weight:700}.chat-input{border-top:1px solid var(--border);gap:10px;padding:14px 16px;display:flex}.chat-input input[type=text]{font-family:var(--font);border:1px solid var(--border);border-radius:8px;outline:none;flex:1;padding:10px 14px;font-size:13.5px}.chat-input input[type=text]:focus{border-color:var(--primary)}.chart-wrap{position:relative}.chart-tooltip{pointer-events:none;background:var(--sidebar);color:#fff;z-index:30;white-space:nowrap;border-radius:7px;padding:8px 12px;font-size:12px;display:none;position:absolute;box-shadow:0 6px 18px #0a121e4d}.chart-tooltip .tt-title{margin-bottom:3px;font-weight:700}.chart-tooltip .tt-row{align-items:center;gap:7px;display:flex}.chart-tooltip .tt-swatch{border-radius:2px;width:8px;height:8px}.legend{color:var(--ink-2);align-items:center;gap:18px;font-size:12.5px;display:flex}.legend .l-item{align-items:center;gap:7px;display:flex}.legend .l-swatch{border-radius:3px;width:10px;height:10px}.empty-state{text-align:center;color:var(--muted);padding:44px 20px}.empty-state svg{opacity:.5;margin-bottom:12px}.empty-state .es-title{color:var(--ink-2);margin-bottom:4px;font-size:14px;font-weight:600}.empty-state .es-sub{font-size:12.5px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}.page-head h2{font-size:18px}.page-head .sub{color:var(--ink-2);margin-top:2px;font-size:13px}.page-head .ph-actions{gap:10px;display:flex}.filter-row{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.filter-row .field{min-width:170px;margin-bottom:0}.kv-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px 22px;display:grid}.kv .k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11.5px;font-weight:600}.kv .v{margin-top:2px;font-size:13.5px;font-weight:500}.map-tile{border:1px solid var(--border);border-radius:9px;align-items:center;gap:12px;padding:12px 16px;display:flex}.map-tile .mt-icon{background:var(--primary-soft);width:38px;height:38px;color:var(--primary-dark);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.map-tile .mt-name{font-size:13px;font-weight:600}.map-tile .mt-sub{color:var(--muted);font-size:11.5px}.alert-inline{border-radius:9px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px 15px;font-size:13px;display:flex}.alert-inline.warn{background:var(--warning-soft);color:var(--warning-ink);border:1px solid #f3ddaa}.alert-inline.crit{background:var(--critical-soft);color:var(--critical-ink);border:1px solid #f1c5c5}.alert-inline.info{background:var(--primary-soft);color:var(--primary-dark);border:1px solid #c6d8f5}.stock-bar{align-items:center;gap:10px;min-width:160px;display:flex}.stock-bar .progress{flex:1}.checkbox-cell{width:36px}.checkbox-cell input{width:15px;height:15px;accent-color:var(--primary)}@media (width<=900px){.login-brand{display:none}.login-panel{padding:28px 20px}.icon-btn.nav-toggle{display:flex}.icon-btn.nav-close{margin-left:auto;display:flex}.sidebar{z-index:90;transition:transform .2s ease-out;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:0 0 #0000}.sidebar.open{transform:translate(0);box-shadow:8px 0 24px #0a121e40}.nav-backdrop{z-index:80;background:#0a121e73;position:fixed;inset:0}.topbar{gap:8px;padding:0 12px}.topbar .loc-badge span:last-child{display:none}.topbar .loc-badge{border-radius:50%;padding:7px}.user-chip .uname,.user-chip .urole{display:none}.user-chip{gap:0}.install-btn span{display:none}.install-btn{padding:8px}.content{padding:16px}.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid .span-2,.form-section{grid-column:span 1}.modal-overlay{align-items:stretch;padding:0}.modal{border-radius:0;width:100%;max-width:none;min-height:100%}.modal.wide{max-width:none}.notif-panel{width:auto;max-height:calc(100vh - 76px);position:fixed;top:60px;left:8px;right:8px}.chat-layout{grid-template-columns:1fr;height:auto}.chat-channels{flex-shrink:0;display:flex;overflow:auto hidden}.chat-channel{border-bottom:none;border-right:1px solid var(--grid);flex-shrink:0;min-width:160px}.chat-main{height:calc(100vh - 320px);min-height:360px}.msg{max-width:88%}}@media (width<=560px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}.kv-grid{grid-template-columns:1fr 1fr}.page-head{flex-direction:column;align-items:flex-start}.page-head .ph-actions{width:100%}.page-head .ph-actions .btn{flex:1}.tabs{flex-wrap:nowrap;overflow-x:auto}.tab{flex-shrink:0}.task-row{flex-wrap:wrap}.task-row .t-actions{flex-wrap:wrap;width:100%;padding-left:44px}.site-card .sc-stats{grid-template-columns:1fr 1fr}.chat-input{padding:10px}.chat-input input[type=text]{min-width:0}.table th,.table td{padding:10px 12px}}
