:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #172033; background: #f5f7fb; --navy:#172033; --blue:#3864be; --muted:#64748b; --line:#e2e8f0; --danger:#b91c1c; --warning:#a16207; --success:#166534; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: #f5f7fb; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.auth-page { min-height: 100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#152238,#2b4771); }
.auth-card { width:min(460px,100%); background:white; border-radius:16px; padding:32px; box-shadow:0 24px 70px #0f172a55; }
.brand { color:var(--navy); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.auth-card h1 { margin:24px 0 8px; font-size:30px; }.muted { color:var(--muted); }
.form-stack { display:grid; gap:12px; margin-top:22px; }.form-stack label { display:grid; gap:6px; font-size:13px; font-weight:700; }
input, textarea, select { width:100%; border:1px solid #cbd5e1; border-radius:8px; padding:10px 12px; background:#fff; color:var(--navy); }.form-stack textarea{min-height:90px;resize:vertical}
.button { border:0; border-radius:8px; padding:10px 14px; font-weight:750; background:var(--navy); color:white; }.button.secondary{background:#e8eef9;color:#294f9b}.button.danger{background:#b91c1c}.button.small{padding:7px 10px;font-size:12px}
.link-button { border:0; background:none; color:var(--blue); padding:0; text-align:left; }.error { color:var(--danger); margin:8px 0 0; font-size:13px; }
.shell { min-height:100vh; display:grid; grid-template-columns:240px 1fr; }.sidebar { background:var(--navy); color:white; padding:22px 14px; }.sidebar .brand{color:white;padding:0 10px 25px}.nav {display:grid;gap:4px}.nav button{border:0;background:transparent;color:#bfcae0;text-align:left;padding:11px 12px;border-radius:8px}.nav button.active,.nav button:hover{background:#30466e;color:white}.sidebar-footer{position:fixed;bottom:18px;width:208px;display:grid;gap:8px}.sidebar-footer small{color:#93a4c6}
.main { min-width:0; }.topbar { height:72px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:16px; padding:0 28px; position:sticky;top:0;z-index:5}.topbar h1{font-size:18px;margin:0;flex:1}.search{max-width:330px}.content{max-width:1500px;margin:0 auto;padding:24px 28px 60px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}.page-title{margin:5px 0 4px;font-size:28px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0}.toolbar .spacer{flex:1}
.grid{display:grid;gap:14px}.grid.stats{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.two{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.stat small{display:block;color:var(--muted);font-size:12px}.stat strong{font-size:28px;display:block;margin-top:8px}.stat.danger strong{color:var(--danger)}.stat.warning strong{color:var(--warning)}.stat.success strong{color:var(--success)}
.calendar{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:8px;overflow:auto}.day{background:#f8fafc;border:1px solid var(--line);border-radius:9px;min-height:220px;padding:8px}.day.today{border-color:#7897d7;box-shadow:inset 0 3px #3864be}.day h3{margin:0 0 10px;font-size:12px;color:var(--muted)}.task-card{display:grid;gap:4px;background:#fff;border-left:4px solid var(--blue);border-radius:7px;padding:9px;margin:7px 0;box-shadow:0 2px 4px #17203312;font-size:12px}.task-card strong{font-size:13px}.task-card small{color:var(--muted)}.task-card.urgent{border-left-color:#dc2626}.task-card.extra{border-left-color:#94a3b8;background:#fbfdff}.badge{display:inline-flex;align-items:center;border-radius:99px;padding:3px 7px;font-size:11px;font-weight:750;background:#eaf0fb;color:#315ba9}.badge.red{background:#fee2e2;color:#b91c1c}.badge.amber{background:#fef3c7;color:#92400e}.badge.green{background:#dcfce7;color:#166534}.badge.gray{background:#eef2f7;color:#536176}.list{display:grid;gap:8px}.list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border-top:1px solid #edf0f5;padding:10px 0}.list-row:first-child{border-top:0}.list-row strong{display:block}.list-row small{color:var(--muted)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table th{font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.06em}.empty{padding:30px;text-align:center;color:var(--muted)}.alert-list{display:grid;gap:8px}.alert{padding:10px 12px;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa;font-size:13px}.alert.danger{background:#fff7f7;border-color:#fecaca}.alert.info{background:#eff6ff;border-color:#bfdbfe}
 .project-header{display:flex;align-items:start;gap:16px;justify-content:space-between}.project-header h2{margin:4px 0;font-size:26px}.tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin:20px 0}.tabs button{border:0;background:transparent;padding:10px 12px;color:var(--muted);white-space:nowrap}.tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue);font-weight:800}.progress{height:9px;border-radius:99px;background:#e5e7eb;overflow:hidden}.progress i{display:block;height:100%;background:var(--blue)}.board{height:560px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(90deg,#eaf0f8 1px,transparent 1px),linear-gradient(#eaf0f8 1px,transparent 1px);background-size:24px 24px;position:relative;overflow:hidden}.board svg{width:100%;height:100%;display:block}.board-node{position:absolute;min-width:130px;background:white;border:1px solid #b9c9e3;box-shadow:0 5px 12px #17203318;border-radius:8px;padding:9px;cursor:move}.board-node.selected{border-color:var(--blue);box-shadow:0 0 0 3px #2f6fed33}.board-node strong{display:block;font-size:12px}.board-node small{color:var(--muted);font-size:11px}.board-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.modal-backdrop{position:fixed;inset:0;background:#0f172a88;display:grid;place-items:center;padding:20px;z-index:20}.modal{width:min(600px,100%);max-height:90vh;overflow:auto;background:white;border-radius:14px;padding:22px}.modal header{display:flex;justify-content:space-between;align-items:center}.modal header h2{margin:0}.close{border:0;background:#eef2f7;border-radius:50%;width:30px;height:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}
@media(max-width:1100px){.grid.stats{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1fr}.shell{grid-template-columns:190px 1fr}.sidebar-footer{width:160px}}
@media(max-width:700px){.shell{display:block}.sidebar{padding:12px;position:sticky;top:0;z-index:10}.sidebar .brand{padding:4px 8px 12px}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap}.sidebar-footer{position:static;width:auto;display:flex;margin-top:8px}.sidebar-footer small{display:none}.topbar{padding:0 16px;height:60px}.topbar h1{font-size:16px}.search{max-width:150px}.content{padding:18px 14px}.grid.stats{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.project-header{display:block}.project-header .button{margin-top:12px}}
