:root{--color-primary: #0b3a5b;--color-primary-dark: #07263c;--color-primary-light: #154b72;--color-accent: #1f7a8c;--color-bg: #f5f7fa;--color-surface: #ffffff;--color-border: #d6dce4;--color-text: #1a2230;--color-text-muted: #5c6776;--color-rag-green: #2e7d32;--color-rag-amber: #ed8a0a;--color-rag-red: #c62828;--color-success: #2e7d32;--color-error: #c62828;--color-warning: #ed8a0a;--shadow-sm: 0 1px 2px rgba(15, 28, 49, .06);--shadow-md: 0 4px 12px rgba(15, 28, 49, .08);--shadow-lg: 0 8px 24px rgba(15, 28, 49, .12);--radius: 6px;--radius-lg: 10px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button,.btn{font-family:inherit;font-size:14px;padding:8px 16px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background .15s,border-color .15s}button:hover,.btn:hover{background:var(--color-bg)}button.primary,.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}button.primary:hover,.btn-primary:hover{background:var(--color-primary-dark)}button.danger{border-color:var(--color-error);color:var(--color-error)}button.danger:hover{background:#fef2f2}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #0b3a5b26}label{display:block;font-size:13px;font-weight:600;color:var(--color-text-muted);margin-bottom:4px}.form-row{margin-bottom:16px}.form-actions{display:flex;gap:8px;margin-top:20px}.app-shell{display:grid;grid-template-rows:56px 1fr;grid-template-columns:240px 1fr;grid-template-areas:"header header" "sidebar main";height:100vh}.app-header{grid-area:header;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:var(--shadow-sm);z-index:10}.app-header .brand{display:flex;align-items:center;text-decoration:none}.app-header .brand:hover{text-decoration:none}.app-header .header-right{display:flex;align-items:center;gap:16px}.app-header .user-pill{font-size:13px;opacity:.9;display:flex;align-items:center;gap:12px}.bell-link{position:relative;color:#fff;display:flex;align-items:center;text-decoration:none}.bell-badge{position:absolute;top:-6px;right:-8px;background:var(--color-rag-red);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px}.nav-badge{display:inline-block;background:var(--color-rag-red);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:999px;text-align:center;line-height:18px;margin-left:6px}.app-header .stale-pill{background:var(--color-rag-amber);color:#fff;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:help}.app-sidebar{grid-area:sidebar;background:var(--color-surface);border-right:1px solid var(--color-border);padding:16px 0;overflow-y:auto}.app-sidebar a{display:block;padding:10px 24px;color:var(--color-text);font-size:14px}.app-sidebar a.active{background:#0b3a5b14;color:var(--color-primary);font-weight:600;border-left:3px solid var(--color-primary);padding-left:21px}.app-main{grid-area:main;padding:32px;overflow-y:auto}.page-title{font-size:22px;font-weight:700;color:var(--color-primary);margin:0 0 24px}.login-screen,.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;flex-direction:column;gap:24px}.login-card{background:var(--color-surface);padding:48px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;max-width:420px}.login-card h1{margin:0 0 4px;color:var(--color-primary);font-size:28px}.login-card .sub{color:var(--color-text-muted);margin:0 0 28px;font-size:14px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .15s,border-color .15s}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary)}.card h3{margin:0 0 4px;font-size:16px;color:var(--color-text)}.card .ref{font-size:13px;color:var(--color-text-muted);margin-bottom:12px}.card .card-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--color-text-muted)}.card .card-meta span{display:flex;align-items:center;gap:4px}.rag-badge{display:inline-block;padding:3px 10px;border-radius:999px;color:#fff;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.summary-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:24px}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;text-align:center}.summary-card .value{font-size:28px;font-weight:700;color:var(--color-primary)}.summary-card .label{font-size:12px;color:var(--color-text-muted);margin-top:4px}.sortable-table{width:100%;border-collapse:collapse;font-size:14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.sortable-table th,.sortable-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--color-border)}.sortable-table th{background:#f0f3f8;color:var(--color-primary);font-weight:600;font-size:13px;white-space:nowrap;-webkit-user-select:none;user-select:none}.sortable-table .num{text-align:right;font-variant-numeric:tabular-nums}.sortable-table .empty-row{text-align:center;color:var(--color-text-muted);padding:24px}.sortable-table .clickable-row{cursor:pointer}.sortable-table .clickable-row:hover{background:#0b3a5b08}.sort-arrow{font-size:10px;opacity:.7}.tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:2px solid var(--color-border)}.tab-btn{padding:10px 20px;border:none;background:none;font-size:14px;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.tab-btn:hover{color:var(--color-primary)}.toast-container{position:fixed;top:70px;right:24px;z-index:100;display:flex;flex-direction:column;gap:8px;max-width:420px}.toast{padding:12px 20px;border-radius:var(--radius);font-size:14px;cursor:pointer;box-shadow:var(--shadow-md);animation:toastIn .2s ease-out}.toast-success{background:#e8f5e9;color:var(--color-success);border-left:4px solid var(--color-success)}.toast-error{background:#fef2f2;color:var(--color-error);border-left:4px solid var(--color-error)}.toast-warning{background:#fffbeb;color:#92400e;border-left:4px solid var(--color-warning)}.toast-info{background:#eff6ff;color:var(--color-primary);border-left:4px solid var(--color-primary)}@keyframes toastIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;margin-top:24px}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px}.chart-card h3{margin:0 0 16px;font-size:14px;color:var(--color-primary)}.chart-card .recharts-responsive-container{max-width:100%;overflow:hidden}.admin-panel{max-width:900px}.admin-section{margin-bottom:32px}.admin-section h2{font-size:16px;color:var(--color-primary);margin:0 0 12px}.inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.inline-form .form-row{margin-bottom:0;flex:1;min-width:140px}@media(max-width:768px){.app-shell{grid-template-columns:1fr;grid-template-rows:56px auto 1fr;grid-template-areas:"header" "sidebar" "main"}.app-sidebar{border-right:none;border-bottom:1px solid var(--color-border);display:flex;overflow-x:auto;padding:0}.app-sidebar a{white-space:nowrap;padding:12px 16px}.app-sidebar a.active{border-left:none;border-bottom:3px solid var(--color-primary);padding-left:16px}.app-main{padding:16px}.card-grid{grid-template-columns:1fr}.summary-cards{grid-template-columns:repeat(2,1fr)}}
