:root{--bg:#f5f7fb;--surface:#fff;--surface2:#f8fafc;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--accent:#2563eb;--shadow:0 8px 30px rgba(15,23,42,.07);--danger:#dc2626;--success:#059669;--warning:#d97706}.dark,[data-theme="dark"]{--bg:#0b1220;--surface:#111827;--surface2:#172033;--text:#e5edf8;--muted:#94a3b8;--border:#273449;--shadow:0 10px 35px rgba(0,0,0,.24)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:18px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:10px;padding:5px 8px 20px}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:19px}.brand b{display:block;font-size:16px}.brand small{color:var(--muted)}nav{display:flex;flex-direction:column;gap:4px;overflow:auto}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--muted);font-weight:600}.nav-link span{width:20px;text-align:center}.nav-link:hover,.nav-link.active{background:color-mix(in srgb,var(--accent) 11%,transparent);color:var(--accent)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--border);padding-top:10px}.main{min-width:0}.topbar{height:66px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:14px;position:sticky;top:0;z-index:20}.global-search{max-width:620px;flex:1}.global-search input{margin:0;background:var(--surface2)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;width:39px;height:39px;cursor:pointer}.avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;text-decoration:none;font-weight:800}.content{padding:24px;max-width:1500px;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-head h1{font-size:25px;margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:18px;box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.stat small{display:block;color:var(--muted);font-weight:600}.stat strong{display:block;font-size:24px;margin:6px 0}.stat span{font-size:12px;color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar .spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--accent);color:#fff;border:0;border-radius:10px;padding:10px 14px;text-decoration:none;font-weight:700;cursor:pointer}.btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger)}.btn.small{padding:6px 9px;font-size:12px}.btn.success{background:var(--success)}input,select,textarea{width:100%;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;margin-top:5px}textarea{min-height:95px;resize:vertical}label{font-weight:650;color:var(--text);display:block}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;gap:10px;margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.muted{color:var(--muted)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:13px}table{width:100%;border-collapse:collapse;background:var(--surface)}th,td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:var(--surface2)}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:var(--surface2);font-size:12px;font-weight:700;border:1px solid var(--border)}.badge i{width:8px;height:8px;border-radius:50%}.risk-green i{background:#10b981}.risk-yellow i{background:#f59e0b}.risk-red i{background:#ef4444}.status{border-color:color-mix(in srgb,var(--badge-color,#64748b) 30%,var(--border));color:var(--badge-color,#64748b);background:color-mix(in srgb,var(--badge-color,#64748b) 10%,transparent)}.tag{display:inline-flex;padding:4px 8px;border-radius:999px;color:#fff;font-size:11px;font-weight:700;margin:2px}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px}.flash.success{background:#dcfce7;color:#166534}.flash.error{background:#fee2e2;color:#991b1b}.empty{padding:35px;text-align:center;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail{padding:12px;background:var(--surface2);border-radius:10px}.detail small{display:block;color:var(--muted);margin-bottom:4px}.detail strong{font-size:14px}.section-title{font-size:16px;margin:0 0 12px}.risk-banner{border-left:5px solid;padding:12px 14px;border-radius:10px;background:var(--surface2)}.risk-banner.green{border-color:#10b981}.risk-banner.yellow{border-color:#f59e0b}.risk-banner.red{border-color:#ef4444}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:14px;overflow-x:auto;padding-bottom:10px}.kanban-col{background:var(--surface2);border:1px solid var(--border);border-radius:13px;min-height:300px;padding:10px}.kanban-col h3{font-size:14px;margin:3px 4px 10px}.kanban-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px;margin-bottom:8px;color:var(--text);text-decoration:none}.kanban-card b{display:block}.kanban-card small{color:var(--muted)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--border);border-left:1px solid var(--border)}.cal-head,.cal-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px;min-height:110px;background:var(--surface)}.cal-head{min-height:auto;text-align:center;color:var(--muted);font-weight:700}.cal-day.other{opacity:.45}.cal-num{font-weight:800;margin-bottom:5px}.cal-event{font-size:11px;padding:3px 5px;margin:3px 0;border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{display:flex;gap:5px;margin-top:14px}.pagination a{padding:7px 10px;border:1px solid var(--border);border-radius:8px;color:var(--text);text-decoration:none}.pagination a.active{background:var(--accent);color:#fff}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);padding:28px;border-radius:18px;box-shadow:var(--shadow)}.login-card h1{margin:0 0 6px}.login-card .btn{width:100%;margin-top:15px}.notice{padding:12px;border:1px solid var(--border);background:var(--surface2);border-radius:10px}.danger-zone{border-color:#fecaca}.danger-zone h3{color:#dc2626}.mobile-only{display:none}.chips{display:flex;gap:6px;flex-wrap:wrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.actions{display:flex;gap:6px}.metric-positive{color:#059669}.metric-negative{color:#dc2626}@media(max-width:1050px){.stats,.grid-4{grid-template-columns:repeat(2,1fr)}.app-shell{grid-template-columns:210px 1fr}.sidebar{padding-left:9px;padding-right:9px}}@media(max-width:780px){.app-shell{display:block}.sidebar{position:fixed;left:-270px;width:250px;transition:.2s;box-shadow:20px 0 40px #0003}.sidebar.open{left:0}.mobile-only{display:inline-grid;place-items:center}.content{padding:16px}.topbar{padding:0 14px}.form-grid,.grid-2,.grid-3,.detail-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.global-search{max-width:none}.calendar-grid{min-width:760px}.card.calendar-card{overflow:auto}}@media(max-width:480px){.stats{grid-template-columns:1fr}.content{padding:12px}.topbar{gap:8px}.page-head h1{font-size:21px}.global-search input{font-size:12px}}
