:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;color:var(--color-text);background:var(--color-page);color-scheme:light;--color-page: #edf2f7;--color-panel: #ffffff;--color-panel-muted: #f8fafc;--color-text: #1f2937;--color-text-muted: #667085;--color-border: #d7dee8;--color-sidebar: #102033;--color-sidebar-hover: #1c324a;--color-sidebar-text: #dbeafe;--color-sidebar-muted: #cbd5e1;--color-brand-mark: #e7f1ff;--color-sidebar-card: #1a324d;--color-sidebar-card-border: #365575;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-info: #2563eb;--color-info-soft: #eff6ff;--color-info-border: #bfdbfe;--color-success: #15803d;--color-success-soft: #e7f7ed;--color-warning: #b7791f;--color-warning-soft: #fff4dc;--color-danger: #b42318;--color-danger-soft: #fff1f2;--color-danger-border: #fecdd3;--color-teal: #0f766e;--color-purple: #6d28d9;--color-grey: #64748b;--shadow-panel: 0 18px 48px rgba(15, 23, 42, .12);--shadow-card: 0 8px 24px rgba(15, 23, 42, .06);--ink: var(--color-text);--muted: var(--color-text-muted);--line: var(--color-border);--panel: var(--color-panel);--soft: var(--color-panel-muted);--nav: var(--color-sidebar);--nav-2: var(--color-sidebar-hover);--blue: var(--color-primary);--teal: var(--color-teal);--green: var(--color-success);--amber: var(--color-warning);--red: var(--color-danger);--purple: var(--color-purple);--grey: var(--color-grey)}:root[data-theme=harbor]{--color-page: #f3f6f8;--color-panel-muted: #f9fbfc;--color-text: #202a33;--color-text-muted: #637083;--color-border: #d6dde5;--color-sidebar: #18313b;--color-sidebar-hover: #244653;--color-sidebar-card: #203f4a;--color-sidebar-card-border: #3d616e}:root[data-theme=night]{color-scheme:dark;--color-page: #101820;--color-panel: #17212b;--color-panel-muted: #1d2a36;--color-text: #e7edf4;--color-text-muted: #a8b4c2;--color-border: #304252;--color-sidebar: #08111a;--color-sidebar-hover: #142333;--color-sidebar-text: #d5e7ff;--color-sidebar-muted: #9fb2c8;--color-brand-mark: #173554;--color-sidebar-card: #111f2d;--color-sidebar-card-border: #2a435a;--color-info-soft: #13283f;--color-info-border: #2c5f9d;--color-success-soft: #143524;--color-warning-soft: #392a12;--color-danger-soft: #3b171b;--color-danger-border: #7f2a34;--shadow-panel: 0 18px 48px rgba(0, 0, 0, .34);--shadow-card: 0 8px 24px rgba(0, 0, 0, .24)}:root[data-accent=teal]{--color-primary: #0f766e;--color-primary-hover: #0b5f59;--color-info: #0f766e;--color-info-soft: #e6fffb;--color-info-border: #99f6e4}:root[data-accent=green]{--color-primary: #15803d;--color-primary-hover: #166534;--color-info: #15803d;--color-info-soft: #ecfdf3;--color-info-border: #bbf7d0}*{box-sizing:border-box}body{background:var(--color-page);color:var(--color-text);margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.app-shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#f8fafc;display:flex;flex-direction:column;gap:24px;padding:22px 16px}.brand{align-items:center;display:flex;gap:12px;padding:4px 6px 10px}.brand-mark{align-items:center;background:var(--color-brand-mark);border-radius:8px;color:var(--blue);display:grid;height:42px;place-items:center;width:42px}.brand strong,.brand span,.publish-card strong,.publish-card span{display:block}.brand span,.publish-card span{color:var(--color-sidebar-muted);font-size:12px;margin-top:2px}.sidebar nav{display:grid;gap:5px}.nav-link{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--color-sidebar-text);display:flex;gap:10px;min-height:40px;padding:9px 10px;text-align:left}.nav-link:hover,.nav-link.active{background:var(--nav-2);color:#fff}.publish-card{align-items:flex-start;background:var(--color-sidebar-card);border:1px solid var(--color-sidebar-card-border);border-radius:8px;display:flex;gap:10px;margin-top:auto;padding:12px}.main-area{min-width:0}.topbar{align-items:center;background:color-mix(in srgb,var(--color-panel) 92%,transparent);border-bottom:1px solid var(--line);display:flex;gap:18px;justify-content:space-between;padding:18px 24px;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.eyebrow{color:var(--muted);display:block;font-size:12px;font-weight:800;text-transform:uppercase}h1{font-size:24px;letter-spacing:0;margin-top:3px}h2{font-size:18px;letter-spacing:0}h3{font-size:15px;letter-spacing:0}.topbar-actions{align-items:center;display:flex;gap:10px}.search-box{align-items:center;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;color:var(--muted);display:flex;gap:8px;min-height:38px;padding:0 12px}.search-box input{background:transparent;border:0;color:var(--ink);min-width:220px;outline:0}.primary-button,.ghost-button{align-items:center;border-radius:8px;display:inline-flex;gap:8px;min-height:38px;padding:0 12px}.primary-button{background:var(--blue);border:1px solid var(--blue);color:#fff}.ghost-button{background:var(--color-panel-muted);border:1px solid var(--line);color:var(--ink)}.icon-button{justify-content:center;padding:0;width:38px}.compact-button{min-height:32px;padding:0 10px}.button-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.context-select{background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:38px;padding:0 10px}.notice{background:var(--color-info-soft);border:1px solid var(--color-info-border);border-radius:8px;color:var(--color-info);font-size:13px;padding:12px}.notice.error{background:var(--color-danger-soft);border-color:var(--color-danger-border);color:var(--red)}.notice.success{background:#ecfdf3;border-color:#bbf7d0;color:var(--green)}.login-screen{align-items:center;background:var(--color-page);display:grid;min-height:100vh;padding:24px;place-items:center}.login-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-panel);display:grid;gap:16px;max-width:420px;padding:22px;width:min(100%,420px)}.login-brand{padding:0}.login-brand span{color:var(--muted)}.login-form{display:grid;gap:12px}.login-form label,.action-form label{display:grid;gap:6px}.login-form label span,.action-form label span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.login-form input,.action-form input,.action-form select{border:1px solid var(--line);border-radius:8px;min-height:42px;padding:0 12px}.action-form{align-items:end;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr)) auto}.side-drawer .action-form{align-items:stretch;grid-template-columns:1fr}.assignment-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto}main{display:grid;gap:18px;padding:24px}.settings-view-stack{display:grid;gap:18px}.panel,.kpi-card,.module-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-card)}.panel{padding:18px}.panel-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.dashboard-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.settings-stack{display:grid;gap:16px}.span-2{grid-column:span 2}.wide{grid-column:1 / -1}.kpi-card{align-items:center;display:flex;gap:12px;min-height:96px;padding:18px}.kpi-card strong{display:block;font-size:28px}.kpi-card span{color:var(--muted);font-size:13px}.kpi-card.blue{color:var(--blue)}.kpi-card.green{color:var(--green)}.kpi-card.amber{color:var(--amber)}.kpi-card.red{color:var(--red)}.health-grid,.module-stack,.summary-stack{display:grid;gap:12px}.health-item,.config-summary{align-items:flex-start;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:13px}p{color:var(--muted);font-size:13px;line-height:1.5;margin-top:5px}.module-card{display:grid;gap:8px;padding:14px}.module-control{align-items:center;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px;padding:12px}.module-control span{color:var(--muted);display:block;font-size:13px;margin-top:2px}.module-grid,.company-layout{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.company-layout .panel:first-child{grid-column:span 2}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;gap:6px}.field span,.detail span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.field input,.field select{background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;min-height:40px;padding:0 11px}.toggle-field{align-items:center;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;min-height:40px;padding:0 11px}.toggle-field span{color:var(--ink);font-size:13px;font-weight:700}.usage-row{display:grid;gap:8px;margin-bottom:16px}.usage-row div:first-child{display:flex;justify-content:space-between}.usage-row span{color:var(--muted);font-size:13px}.progress{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}.progress span{background:var(--teal);display:block;height:100%}.progress.neutral span{background:transparent}.split-layout,.module-config-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr)}.module-config-layout{grid-template-columns:360px minmax(0,1fr)}.filter-strip{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.filter-strip span{align-items:center;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:12px;gap:5px;padding:6px 10px}.table-panel{overflow-x:auto}.drawer-backdrop{background:#0f172a61;display:flex;top:0;right:0;bottom:0;left:0;justify-content:flex-end;position:fixed;z-index:40}.side-drawer{background:var(--panel);box-shadow:-18px 0 44px #0f172a2e;display:grid;grid-template-rows:auto 1fr;max-width:480px;overflow-y:auto;padding:22px;width:min(100%,480px)}.drawer-header{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin-bottom:18px;padding-bottom:14px}table{border-collapse:collapse;min-width:760px;width:100%}th,td{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}td{font-size:13px}.empty-row{color:var(--muted);padding:22px 10px;text-align:center}td strong,td span{display:block}td span{color:var(--muted);margin-top:3px}.security-events-table{min-width:980px}.truncate-cell{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{align-items:center;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;padding:16px}.empty-state span,.empty-state strong{display:block}.empty-state span{color:var(--muted);font-size:13px;margin-top:3px}tbody tr{cursor:default}tbody tr:hover,.selected-row{background:var(--color-panel-muted)}.detail-panel,.detail-list{display:grid;gap:14px}.detail{display:grid;gap:4px}.detail strong{font-size:14px}.module-row{display:flex;flex-wrap:wrap;gap:6px}.assignment-summary,.assignment-manager,.assignment-cards,.assignment-list{display:grid;gap:12px}.assignment-summary{border-top:1px solid var(--line);margin-top:6px;padding-top:14px}.assignment-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-card,.assignment-item{background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px}.assignment-card{display:grid;gap:10px;padding:12px}.assignment-card span,.assignment-item span{color:var(--muted);display:block;font-size:12px;margin-top:3px}.assignment-item{align-items:center;display:flex;gap:10px;justify-content:space-between;padding:10px}.assignment-chip-list{display:flex;flex-wrap:wrap;gap:6px}.assignment-chip{background:#e7f0ff;border-radius:999px;color:var(--blue);display:inline-flex;font-size:12px;font-weight:800;margin:0;min-height:24px;padding:4px 9px}.compact-button{min-height:32px}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;min-height:24px;padding:4px 9px;white-space:nowrap}.status-active,.status-published,.module-settings{background:#e7f7ed;color:var(--green)}.status-draft,.status-pending-invite,.status-dry-dock{background:#fff4dc;color:var(--amber)}.status-disabled,.status-inactive,.scope{background:#eef2f7;color:var(--grey)}.status-requires-review{background:#fee4e2;color:var(--red)}.module-atr{background:#e7f0ff;color:var(--blue)}.module-ovmsa{background:#e6fffb;color:var(--teal)}.module-ims{background:#f1e8ff;color:var(--purple)}.ims-settings{background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;display:grid;gap:16px;padding:14px}.workflow-grid,.notification-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-card{display:grid;gap:16px}.workflow-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.workflow-head span{color:var(--muted);font-size:13px}.step-list{display:grid;gap:8px}.step{align-items:center;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;padding:10px}.step span{align-items:center;background:var(--blue);border-radius:999px;color:#fff;display:inline-flex;font-size:12px;font-weight:800;height:24px;justify-content:center;width:24px}.check-cell{background:#e5e7eb;border-radius:50%;display:inline-block;height:14px;width:14px}.check-cell.enabled{background:var(--green)}.notification-card{display:grid;gap:14px}.channel-row{display:flex;flex-wrap:wrap;gap:8px}.channel-row span{align-items:center;background:var(--color-panel-muted);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:12px;gap:6px;padding:7px 10px}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.company-layout,.module-grid,.workflow-grid,.notification-grid,.split-layout,.module-config-layout,.assignment-cards,.action-form{grid-template-columns:1fr}.span-2,.wide,.company-layout .panel:first-child{grid-column:auto}}@media(max-width:720px){.topbar,.topbar-actions{align-items:stretch;flex-direction:column}.search-box input{min-width:0;width:100%}.form-grid,.sidebar nav{grid-template-columns:1fr}}
