:root{--sidebar-bg: #2b2f36;--sidebar-text: #c8cdd5;--sidebar-text-active: #ffffff;--sidebar-active-bg: #3a3f48;--sidebar-accent-bar: #0a8cff;--sidebar-width: 240px;--main-padding-x: 2.5rem;--main-padding-y: 2rem;--main-bg: #f4f6f8;--bg: #f4f6f8;--surface: #ffffff;--surface2: #f0f2f5;--border: #e4e8ee;--text: #1a2332;--muted: #6b7785;--accent: #0a8cff;--accent-dim: #0870d4;--danger: #d92d20;--ok: #12b76a;--badge-ok-bg: #ecfdf3;--badge-ok-fg: #027a48;--badge-off-bg: #fef3f2;--badge-off-fg: #b42318;--shadow-card: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);--radius: 8px;--font: "Inter", system-ui, sans-serif}*{box-sizing:border-box}html[data-theme=dark]{--sidebar-bg: #1a1f28;--sidebar-text: #9aa3b2;--sidebar-text-active: #f0f3f7;--sidebar-active-bg: #252b36;--main-bg: #0f1419;--bg: #0f1419;--surface: #1a2332;--surface2: #222d3f;--border: #2e3a4f;--text: #e8edf7;--muted: #8b9ab8;--accent: #3d9bff;--accent-dim: #2563c4;--danger: #f87171;--ok: #4ade80;--badge-ok-bg: #14532d;--badge-ok-fg: #86efac;--badge-off-bg: #450a0a;--badge-off-fg: #fecaca;--shadow-card: 0 1px 3px rgba(0, 0, 0, .25)}html,body{margin:0;min-height:100%;overflow-x:hidden;font-family:var(--font);background:var(--main-bg);color:var(--text)}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea,button{font-family:inherit}input,select,textarea{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:.55rem .75rem;width:100%}input[type=checkbox],input[type=radio]{width:auto;min-width:1rem;height:1rem;padding:0}button{cursor:pointer;border:none;border-radius:var(--radius);font-weight:600;padding:.6rem 1.1rem}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--text)}html:not([data-theme=dark]) .btn-danger{background:#fecdd3;color:#9f1239}html:not([data-theme=dark]) .btn-danger:hover{background:#fda4af}.btn-danger{background:#7f1d1d;color:#fecaca}.btn-danger:hover{background:#991b1b}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow-card)}.table-card,.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:0;overflow-x:auto}.table-card .table-scroll,.table-wrap .table-scroll{margin:0}.table-card table,.table-wrap table{margin:0;min-width:36rem;width:100%}.profiles-table{min-width:64rem}.table-card thead th,.table-wrap thead th{background:var(--surface2);border-bottom:1px solid var(--border);font-size:.8rem;text-transform:none;letter-spacing:0;font-weight:500;color:var(--muted);padding:.75rem 1rem}.table-card tbody td,.table-wrap tbody td{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.table-card tbody tr:nth-child(2n),.table-wrap tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface2) 55%,var(--surface))}.table-card tbody tr:last-child td,.table-wrap tbody tr:last-child td{border-bottom:none}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--main-bg)}.app-shell{min-height:100vh;box-sizing:border-box;padding-left:var(--sidebar-width)}.main{min-width:0;width:100%;max-width:100%;box-sizing:border-box;background:var(--main-bg);padding:var(--main-padding-y) var(--main-padding-x)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;z-index:100;border-right:1px solid rgba(0,0,0,.15)}.sidebar-brand{padding:1.25rem 1.1rem 1rem;font-weight:700;font-size:1.15rem;color:var(--sidebar-text-active);letter-spacing:-.02em}.sidebar-nav{flex:1;overflow-y:auto;padding:.35rem .65rem}.sidebar-link{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;margin-bottom:.15rem;border-radius:6px;color:var(--sidebar-text);font-weight:500;font-size:.9rem;text-decoration:none;border-left:3px solid transparent}.sidebar-link:hover{background:#ffffff0d;color:var(--sidebar-text-active);text-decoration:none}.sidebar-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-text-active);border-left-color:var(--sidebar-accent-bar)}.sidebar-link .icon{opacity:.85;flex-shrink:0}.sidebar-link-label{flex:1;min-width:0}.sidebar-nav-badge{flex-shrink:0;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:600;line-height:1.25rem;text-align:center}.sidebar-link.active .sidebar-nav-badge{background:var(--sidebar-text-active);color:var(--sidebar-active-bg)}.sidebar-footer{padding:.85rem .75rem 1rem;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.5rem}.sidebar-user{font-size:.82rem;color:var(--sidebar-text);line-height:1.35}.sidebar-user-name{color:var(--sidebar-text-active);font-weight:500}.sidebar-user-login{font-family:ui-monospace,monospace;font-size:.85em;font-weight:500;color:var(--sidebar-text);background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:.45rem;padding:.1rem .35rem;white-space:nowrap}.sidebar-footer-actions{display:flex;flex-direction:column;gap:.35rem}.sidebar-footer .btn-ghost,.sidebar-footer .theme-toggle{width:100%;justify-content:flex-start;color:var(--sidebar-text);border-color:#ffffff1f;background:transparent}.sidebar-footer .btn-ghost:hover,.sidebar-footer .theme-toggle:hover{background:#ffffff0f;color:var(--sidebar-text-active);border-color:#ffffff2e}.sidebar-version{font-size:.7rem;font-family:ui-monospace,monospace;color:var(--sidebar-text);opacity:.55;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-overlay,.mobile-menu-btn{display:none}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.page-header-main{flex:1 1 280px;min-width:0}.page-header-title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.page-header-main h1{margin:0;font-size:1.5rem;font-weight:700;color:var(--text)}.page-header-sub{margin:.35rem 0 0;color:var(--muted);font-size:.9rem;max-width:640px}.page-header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.refresh-hint{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.82rem}.page-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:1.25rem}.page-tab{padding:.65rem 1rem;font-size:.9rem;font-weight:500;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;border-radius:0}.page-tab:hover{color:var(--text)}.page-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.page-tabs-mini{border-bottom:none;margin-bottom:0;gap:.25rem}.page-tabs-mini .page-tab{padding:.35rem .65rem;font-size:.82rem;border-bottom-width:2px;border-radius:var(--radius)}.page-tabs-mini .page-tab:not(.active){border-bottom-color:transparent}.kpi-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1rem}@media (max-width: 1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.kpi-grid{grid-template-columns:minmax(0,1fr)}}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem;box-shadow:var(--shadow-card);display:flex;gap:.85rem;align-items:flex-start;min-width:0}.kpi-card-body{flex:1;min-width:0}.kpi-card-label{color:var(--muted);font-size:.78rem;margin-bottom:.25rem}.kpi-card-value{font-size:1.5rem;font-weight:700;line-height:1.2}.kpi-card-sub{color:var(--muted);font-size:.8rem;margin-top:.25rem}.kpi-ring{position:relative;width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:.7rem;font-weight:600;color:var(--accent);background:conic-gradient(var(--accent) calc(var(--pct, 0) * 1%),var(--surface2) 0)}.kpi-ring:after{content:"";position:absolute;width:32px;height:32px;border-radius:50%;background:var(--surface)}.kpi-ring-label{position:relative;z-index:1}.theme-toggle{white-space:nowrap;padding:.45rem .75rem;font-size:.85rem}h1{font-size:1.5rem;font-weight:700;margin:0 0 .25rem}h2{font-size:1.1rem;font-weight:600;margin:0 0 1rem;color:var(--muted)}.error{color:var(--danger);font-size:.9rem;margin-top:.5rem}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.65rem .5rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500;font-size:.8rem;text-transform:none;letter-spacing:0}.badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.2rem .5rem;border-radius:6px;background:var(--surface2);color:var(--muted)}.badge.ok{background:var(--badge-ok-bg);color:var(--badge-ok-fg)}.badge.off{background:var(--badge-off-bg);color:var(--badge-off-fg)}.status-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:999px;margin-right:.4rem;vertical-align:.05rem;background:var(--muted);box-shadow:0 0 0 2px #8b9ab826}.status-dot.online{background:var(--ok);box-shadow:0 0 0 3px #4ade8029}.status-dot.offline{background:var(--danger);box-shadow:0 0 0 3px #f8717129}.row-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.row-actions button{padding:.35rem .65rem;font-size:.8rem}.table-actions{gap:.25rem;justify-content:flex-end}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;min-width:2rem;border-radius:8px;padding:0;line-height:0;white-space:nowrap}.icon-button-sm{width:1.75rem;height:1.75rem;min-width:1.75rem}.table-actions .icon-button{flex-shrink:0}.action-menu{display:inline-flex}.action-menu-panel{position:fixed;z-index:1000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card),0 8px 24px #1018281f;padding:.3rem;display:flex;flex-direction:column;gap:.1rem}.action-menu-separator{height:1px;background:var(--border);margin:.25rem 0}.action-menu-item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.45rem .6rem;border:none;background:transparent;color:var(--text);font-size:.85rem;text-align:left;border-radius:6px;cursor:pointer;line-height:1.2}.action-menu-item:hover:not(:disabled){background:var(--surface2)}.action-menu-item:disabled{opacity:.45;cursor:default}.action-menu-item.danger{color:var(--danger)}.action-menu-item.danger:hover:not(:disabled){background:var(--badge-off-bg)}.action-menu-item-icon{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;flex-shrink:0}.icon{display:block;flex-shrink:0}.btn-danger .icon{color:inherit}.btn-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.btn-icon-wrap{display:inline-flex;line-height:0;flex-shrink:0}.btn-with-icon .icon{width:1.05rem;height:1.05rem}.btn-sort{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .4rem;font-size:inherit;font-weight:inherit;background:transparent;border:none;color:inherit;cursor:pointer;border-radius:6px}.btn-sort:hover{background:var(--surface2);color:var(--text)}.btn-sort .icon{width:.9rem;height:.9rem;opacity:.65}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.audit-stat-grid,.audit-filters{margin-bottom:1rem}.audit-filter-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.chip{padding:.35rem .7rem;font-size:.82rem;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);cursor:pointer}.chip:hover{color:var(--text);border-color:var(--accent)}.chip.active{background:color-mix(in srgb,var(--accent) 18%,var(--surface2));border-color:var(--accent);color:var(--text)}.port-rules{margin-top:.45rem;padding:.6rem .7rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:.4rem}.port-rules-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.port-rules-title{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--text)}.port-rules-title svg{width:.95rem;height:.95rem;color:var(--accent)}.port-rules-empty,.port-rules-hint{font-size:.78rem;color:var(--muted)}.port-rule-row{display:flex;align-items:center;gap:.4rem}.port-rule-proto{width:auto;min-width:5.5rem;flex:0 0 auto;padding:.4rem .55rem}.port-rule-port{width:7rem;flex:0 0 auto;padding:.4rem .55rem}.port-rule-add{align-self:flex-start;font-size:.82rem;padding:.35rem .7rem}.audit-filter-row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-bottom:.5rem}.audit-filter-row:last-child{margin-bottom:0}.audit-row-open td{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.audit-details-row td{background:var(--surface2);padding-top:0;padding-bottom:.85rem}.audit-details-pre{margin:.5rem 0 0;max-height:240px;overflow:auto;font-size:.78rem;white-space:pre-wrap;word-break:break-word}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal-backdrop.raise{z-index:55}.modal-card{width:100%;max-width:640px;max-height:calc(100vh - 2rem);overflow:auto;border-radius:12px}.modal-card-wide{max-width:min(96vw,1080px)}.modal-card-wide .history-connections-table{width:100%;table-layout:auto}.modal-card-wide .history-connections-table th,.modal-card-wide .history-connections-table td{font-size:.88rem;vertical-align:middle}@media (min-width: 769px){.modal-card-wide .history-connections-table .mono{white-space:nowrap}}.modal-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.login-wrap{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--main-bg)}.login-logo{font-weight:700;font-size:1.35rem;letter-spacing:-.02em;margin-bottom:.75rem;color:var(--text)}.login-card h1{font-size:1.25rem;margin:0 0 .5rem}.login-theme{position:absolute;top:1rem;right:1rem;z-index:10}.login-card{width:100%;max-width:400px;box-shadow:var(--shadow-card)}.mono{font-family:ui-monospace,monospace;font-size:.85em}span.mono,code{background:var(--surface2);border:1px solid var(--border);border-radius:.45rem;padding:.08rem .3rem;white-space:nowrap}td.mono{white-space:nowrap}pre.mono{font-size:.75rem;white-space:pre-wrap;word-break:break-all;background:var(--surface2);padding:1rem;border-radius:var(--radius);border:1px solid var(--border);overflow:auto}.stat-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr))}.link-grid{display:grid;gap:1rem;margin-top:1.5rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.link-grid .card{transition:border-color .15s,box-shadow .15s}.link-grid .card{display:block;text-decoration:none;color:inherit}.link-grid .card:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:0 4px 12px #10182814;text-decoration:none}.link-card-title{color:var(--text);margin:0 0 .35rem;font-size:1.05rem}.link-card-desc{color:var(--muted);font-size:.9rem}.dashboard{display:flex;flex-direction:column;gap:1.25rem}.dashboard .kpi-grid{margin-bottom:0}.dashboard-section--flush-body .dashboard-section-body{margin:0 -1.35rem -1.25rem}.dashboard-section--flush-body .table-card{border:none;box-shadow:none;border-radius:0 0 var(--radius) var(--radius);border-top:1px solid var(--border)}.dashboard-section{padding:1.25rem 1.35rem}.dashboard-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.dashboard-section-heading{min-width:0}.dashboard-section-title{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.dashboard-section-sub{margin:.3rem 0 0;color:var(--muted);font-size:.85rem;max-width:560px}.dashboard-section-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dashboard-section-body{min-width:0}.dashboard-meta{color:var(--muted);font-size:.82rem}.dashboard-more-link{margin:.75rem 0 0;font-size:.88rem}.host-status-panel{display:flex;flex-direction:column;gap:0}.host-summary{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 768px){.host-summary{grid-template-columns:minmax(0,1fr)}}.host-summary-stat{padding:.85rem 1rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius)}.host-summary-label{display:block;font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.host-summary-value{display:block;margin-top:.35rem;font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);line-height:1.2}.host-summary-hint{display:block;margin-top:.35rem;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.host-metrics{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 640px){.host-metrics{grid-template-columns:minmax(0,1fr)}}.host-metric{padding:.85rem 1rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius)}.host-metric-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.host-metric-label{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.host-metric-pct{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);line-height:1}.host-metric-track{height:8px;border-radius:99px;background:color-mix(in srgb,var(--border) 80%,var(--surface));overflow:hidden}.host-metric-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .3s ease}.host-metric-fill.warn{background:#f59e0b}.host-metric-fill.crit{background:var(--danger)}.host-metric-hint{margin-top:.4rem;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.host-status-divider{border:none;border-top:1px solid var(--border);margin:1.15rem 0 1rem}.health-strip{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 900px){.health-strip{grid-template-columns:minmax(0,1fr)}}.health-strip-item{padding:.7rem .85rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);min-width:0}.health-strip-main{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.health-strip-label{font-size:.82rem;font-weight:600;color:var(--text)}.health-strip-summary{display:block;font-size:.78rem;color:var(--muted);line-height:1.35}.dashboard-health-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.health-grid{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 520px){.health-grid{grid-template-columns:minmax(0,1fr)}}.health-chip{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .85rem}.health-chip-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.health-chip-label{color:var(--muted);font-size:.78rem}.health-chip-value{font-size:1.15rem;font-weight:600;margin-top:.3rem;line-height:1.2}.health-chip-sub{color:var(--muted);font-size:.76rem;margin-top:.2rem;line-height:1.35}.kpi-card-icon{width:42px;height:42px;border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);display:grid;place-items:center;flex-shrink:0}.kpi-card-icon .icon{width:20px;height:20px}.chart-stack{display:flex;flex-direction:column;gap:0}.chart-panel{padding:1rem 0;border-bottom:1px solid var(--border)}.chart-panel:last-child{border-bottom:none;padding-bottom:0}.chart-panel:first-child{padding-top:0}.chart-panel-title{font-weight:600;font-size:.9rem;margin-bottom:.65rem;color:var(--text)}.dashboard-charts-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.dashboard-charts-toolbar label{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--muted)}.dashboard-charts-toolbar select{width:auto;min-width:160px;max-width:240px}.resource-bars{display:grid;gap:.65rem}.resource-bar-row{display:grid;grid-template-columns:3.5rem 1fr 2.5rem;align-items:center;gap:.65rem;font-size:.82rem}.resource-bar-label{color:var(--muted);font-weight:500}.resource-bar-track{height:6px;border-radius:99px;background:var(--surface2);overflow:hidden}.resource-bar-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .3s ease}.resource-bar-fill.warn{background:#f59e0b}.resource-bar-fill.crit{background:var(--danger)}.resource-bar-pct{text-align:right;font-variant-numeric:tabular-nums;color:var(--text);font-weight:500}.quick-link-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.quick-link{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.quick-link:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--surface);box-shadow:0 2px 8px #1018280f;text-decoration:none}.quick-link-icon{width:36px;height:36px;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);display:grid;place-items:center;flex-shrink:0}.quick-link-text{min-width:0}.quick-link-title{font-weight:600;font-size:.92rem;color:var(--text);margin-bottom:.15rem}.quick-link-desc{font-size:.8rem;color:var(--muted);line-height:1.35}.btn-sm{padding:.4rem .7rem!important;font-size:.82rem!important}.card-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.list-filters{padding:0 1.15rem 1rem;border-bottom:1px solid var(--border);margin-bottom:.35rem}.list-filters-meta{margin:.5rem 0 0;font-size:.82rem;color:var(--muted)}.search-field{margin:.75rem 0 1rem;max-width:520px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;padding-bottom:.35rem}.table-card .table-scroll{padding:0 0 .35rem}.profile-row-highlight{animation:profile-row-flash 4s ease-out}@keyframes profile-row-flash{0%,20%{background:color-mix(in srgb,var(--accent) 24%,var(--surface));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}to{background:transparent;box-shadow:none}}.table-scroll-hint{display:none}.page-lead{color:var(--muted);max-width:720px;margin:0 0 1.25rem;font-size:.9rem;line-height:1.55}.tab-panel{margin-top:.15rem}.tab-panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.35rem}.tab-panel-title{margin:0;font-size:1.15rem;font-weight:600;color:var(--text)}.tab-panel-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.notice-ok{color:var(--badge-ok-fg);background:var(--badge-ok-bg);border:1px solid color-mix(in srgb,var(--ok) 22%,var(--border));border-radius:var(--radius);padding:.65rem .85rem;font-size:.88rem;margin-bottom:1rem}@media (max-width: 768px){.table-stacked thead{display:none!important}.table-stacked tbody{display:block}.table-stacked tbody tr{display:block;margin-bottom:.85rem;padding:.35rem .75rem .5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2)}.table-stacked tbody tr.profile-row-highlight{animation:profile-row-flash-card 4s ease-out}@keyframes profile-row-flash-card{0%,20%{background:color-mix(in srgb,var(--accent) 18%,var(--surface2));border-color:color-mix(in srgb,var(--accent) 50%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}to{background:var(--surface2);border-color:var(--border);box-shadow:none}}.table-stacked tbody tr:last-child{margin-bottom:0}.table-stacked td{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;padding:.5rem 0;border-bottom:none;text-align:right;white-space:normal}.table-stacked td+td{border-top:1px solid var(--border)}.table-stacked td:before{content:attr(data-label);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;flex:0 0 38%;max-width:42%;line-height:1.35}.table-stacked td.col-checkbox{flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem;text-align:left}.table-stacked td.col-checkbox:before{content:attr(data-label)}.table-stacked td.col-actions{flex-direction:column;align-items:stretch;text-align:left}.table-stacked td.col-actions:before{margin-bottom:.15rem}.table-stacked td.col-actions .row-actions{justify-content:flex-start}.table-stacked td.col-actions .table-actions .icon-button{width:2.35rem;height:2.35rem;min-width:2.35rem}.table-stacked tr.empty-row td{display:block;text-align:center}.table-stacked tr.empty-row td:before{display:none}}@media (min-width: 769px){.table-stacked thead{display:table-header-group}.table-stacked tbody{display:table-row-group}.table-stacked tbody tr{display:table-row}.table-stacked td{display:table-cell}.table-stacked td:before{display:none!important;content:none!important}}@media (min-width: 1280px){:root{--main-padding-x: 3rem;--main-padding-y: 2.25rem}}@media (max-width: 900px){.app-shell{padding-left:0}.main{padding:1.25rem;padding-top:max(1.25rem,env(safe-area-inset-top));padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right));padding-bottom:max(1.25rem,env(safe-area-inset-bottom))}.sidebar{position:fixed;top:0;left:0;bottom:0;transform:translate(-100%);transition:transform .2s ease}.sidebar.is-open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#10182866;z-index:90;border:none;padding:0;cursor:pointer}.mobile-menu-btn{display:inline-flex}h1{font-size:1.35rem}.card{padding:1rem}.card-toolbar{flex-direction:column;align-items:stretch}.card-toolbar .row-actions{width:100%}.card-toolbar .row-actions button{flex:1 1 auto;min-height:2.5rem}.search-field{max-width:none}.toolbar{flex-direction:column;align-items:stretch}.toolbar>*{width:100%}.modal-backdrop{padding:.5rem;padding-top:max(.5rem,env(safe-area-inset-top));padding-bottom:max(.5rem,env(safe-area-inset-bottom));align-items:flex-end}.modal-card{max-height:min(92vh,calc(100dvh - 1rem));border-bottom-left-radius:0;border-bottom-right-radius:0}button,.btn-ghost,.btn-primary,.btn-danger{min-height:2.5rem}.row-actions button:not(.icon-button){min-height:2.5rem}.stat-grid{grid-template-columns:1fr 1fr}.link-grid{grid-template-columns:1fr}.table-scroll-hint{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.35rem}.table-scroll:not(:has(.table-stacked)) table{min-width:520px}}@media (max-width: 480px){.stat-grid{grid-template-columns:1fr}.login-wrap{padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.login-theme{top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right))}}.toast-stack{position:fixed;bottom:max(1rem,env(safe-area-inset-bottom));right:max(1rem,env(safe-area-inset-right));z-index:10000;display:flex;flex-direction:column;gap:.5rem;max-width:min(420px,calc(100vw - 2rem));pointer-events:none}.toast{padding:.65rem 1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);font-size:.9rem;pointer-events:auto}.toast-ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}.toast-error{border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}.skeleton{background:linear-gradient(90deg,var(--surface2) 0%,color-mix(in srgb,var(--surface2) 70%,var(--muted)) 50%,var(--surface2) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite;border-radius:4px}.skeleton-text{height:.85rem;width:100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.onboarding-steps{margin:0;padding-left:1.25rem;color:var(--muted);line-height:1.6}.onboarding-steps li+li{margin-top:.35rem}.account-dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0}.account-dl dt{color:var(--muted);font-size:.85rem}.account-dl dd{margin:0}.badge.warn{background:color-mix(in srgb,var(--warn, #d97706) 18%,var(--surface2));color:var(--text)}
