:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f0f2f8;--border: #e2e6ef;--text: #1a2233;--text-muted: #6b7488;--primary: #4f46e5;--primary-hover: #4338ca;--success: #16a34a;--warning: #d97706;--danger: #dc2626;--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .06)}[data-theme=dark]{--bg: #0f1420;--surface: #171e2e;--surface-2: #1e2740;--border: #2a3350;--text: #e7ebf3;--text-muted: #9aa4bd;--primary: #6366f1;--primary-hover: #818cf8;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--shadow: 0 1px 3px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--primary);text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:230px;background:var(--surface);border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:18px;padding:8px 12px 16px;color:var(--primary)}.nav-link{padding:9px 12px;border-radius:8px;color:var(--text-muted);font-weight:500;cursor:pointer}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--primary);color:#fff}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:60px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:0 22px}.content{padding:24px;flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.stat{display:flex;flex-direction:column;gap:6px}.stat .num{font-size:26px;font-weight:700}.stat .label{color:var(--text-muted);font-size:13px}.btn{background:var(--primary);color:#fff;border:none;padding:8px 14px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px}.btn:hover{background:var(--primary-hover)}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px;font-family:inherit}label{font-size:12px;color:var(--text-muted);font-weight:600;display:block;margin-bottom:4px}.field{margin-bottom:12px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;background:var(--surface-2);color:var(--text-muted)}.badge.green{background:#16a34a26;color:var(--success)}.badge.amber{background:#d9770626;color:var(--warning)}.badge.red{background:#dc262626;color:var(--danger)}.badge.blue{background:#4f46e526;color:var(--primary)}.row{display:flex;gap:12px;align-items:center}.between{justify-content:space-between}.muted{color:var(--text-muted)}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}.page-head{margin-bottom:20px}.kanban{display:grid;grid-template-columns:repeat(6,minmax(180px,1fr));gap:12px;overflow-x:auto}.kanban-col{background:var(--surface-2);border-radius:10px;padding:10px;min-height:120px}.kanban-col h3{font-size:12px;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px;margin-bottom:8px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{width:360px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.modal{width:460px;max-height:90vh;overflow-y:auto}.toggle{cursor:pointer;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:7px 10px}.error{color:var(--danger);font-size:13px;margin:8px 0}.nav-group{margin-bottom:2px}.nav-group-head{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;padding:9px 12px;border-radius:8px;color:var(--text-muted);font-weight:600;font-size:13px;font-family:inherit;text-align:left}.nav-group-head:hover{background:var(--surface-2);color:var(--text)}.nav-group-head.active-parent{color:var(--primary)}.chev{transition:transform .15s ease;display:inline-block;font-size:16px}.chev.open{transform:rotate(90deg)}.nav-group-items{padding-left:6px;border-left:2px solid var(--border);margin:2px 0 6px 12px}.nav-link.sub{font-size:13px;padding:7px 12px}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar .nav-link{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-group-items{display:flex;flex-direction:column;gap:2px}.rail{width:92px;background:#0f172a;border-right:1px solid #1e293b;padding:14px 10px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;z-index:40;overflow-y:auto;overflow-x:hidden}.rail::-webkit-scrollbar{width:6px}.rail::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.rail::-webkit-scrollbar-track{background:transparent}.rail-brand{text-align:center;font-size:22px;color:#fff;margin-bottom:10px}.rail-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:10px;cursor:pointer;color:#94a3b8;text-decoration:none}.rail-item:hover{background:#1e293b;color:#e2e8f0}.rail-item.active{color:#fff;background:#6366f14d}.rail-ico{font-size:18px;line-height:1}.rail-lbl{font-size:10px;font-weight:600;text-align:center;line-height:1.1}.flyout{position:fixed;left:84px;padding-left:14px;z-index:70}.flyout-inner{min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 28px #1018282e;padding:8px;max-height:calc(100vh - 24px);overflow-y:auto}.flyout-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:4px 10px 8px}.flyout-link{display:block;padding:8px 10px;border-radius:8px;color:var(--text);text-decoration:none;font-size:13px;font-weight:500}.flyout-link:hover{background:var(--surface-2)}.flyout-link.active{background:var(--primary);color:#fff}.flyout-inner.nested{overflow:visible;max-height:none;min-width:200px}.flyout-sub{position:relative}.flyout-sub-head{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-radius:8px;font-size:13px;font-weight:600;color:var(--text);cursor:default}.flyout-sub-head .chev{color:var(--text-muted);font-size:15px;line-height:1}.flyout-sub:hover>.flyout-sub-head{background:var(--surface-2);color:var(--primary)}.flyout-sub-panel{display:none;position:absolute;left:100%;top:-8px;padding-left:8px;z-index:80}.flyout-sub:hover>.flyout-sub-panel{display:block}.flyout-sub:nth-last-child(-n+3)>.flyout-sub-panel{top:auto;bottom:-8px}:root{--primary: #6355ff;--primary-hover: #5346e0;--shadow: 0 1px 2px rgba(16,24,40,.04), 0 4px 16px rgba(16,24,40,.06);--radius: 12px}[data-theme=dark]{--primary: #7c6cff;--primary-hover: #9385ff}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.card{border-radius:var(--radius);transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.card:hover{box-shadow:0 2px 6px #1018280f,0 10px 28px #10182814}.stat .num{letter-spacing:-.5px}.btn{box-shadow:0 1px 2px #6355ff2e;transition:background .15s ease,box-shadow .15s ease,transform .05s ease}.btn:hover{box-shadow:0 2px 8px #6355ff47}.btn:active{transform:translateY(1px)}.btn.secondary{box-shadow:none}.btn.secondary:hover{background:var(--surface-2);border-color:var(--primary);color:var(--primary)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6355ff26}th{font-weight:600;background:var(--surface-2)}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--surface-2)}td{border-bottom:1px solid var(--border)}.badge{font-weight:600;letter-spacing:.2px}.btn.sm{border-radius:999px}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}*::-webkit-scrollbar-track{background:transparent}h1{letter-spacing:-.4px}h2,h3{letter-spacing:-.2px}.page-head p{margin-top:2px}
