:root{--bg:#f6f7f9;--surface:#fff;--border:#e3e6ea;--text:#1c2024;--muted:#6b7280;--accent:#1f6feb;--accent-soft:#e8f0fe;--danger:#c8342b;--radius:8px;color:var(--text);background:var(--bg);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}button{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;padding:7px 14px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.layout{grid-template-columns:210px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;padding:18px 12px;display:flex}.sidebar .brand{padding:0 10px 14px;font-size:16px;font-weight:700}.sidebar a{border-radius:var(--radius);color:var(--text);padding:8px 10px;display:block}.sidebar a:hover{background:var(--bg)}.sidebar a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar .spacer{flex:1}.content{max-width:1200px;padding:24px 28px}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h1{margin:0;font-size:21px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:9px 12px}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#fafbfc;font-size:12px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfc}.toolbar{gap:10px;margin-bottom:14px;display:flex}.toolbar input{max-width:340px}.badge{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:20px;padding:2px 8px;font-size:12px;display:inline-block}.badge.warn{color:#91560a;background:#fff4e5;border-color:#ffd9a8}.muted{color:var(--muted)}.error{color:var(--danger);margin:8px 0}.field{margin-bottom:12px}.field label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.row{gap:12px;display:flex}.row>*{flex:1}.login-screen{place-items:center;min-height:100vh;display:grid}.login-screen .card{width:340px}@media (width<=720px){.layout{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;padding:8px;overflow-x:auto}.sidebar .brand,.sidebar .spacer{display:none}.content{padding:16px 14px}}.segmented{display:flex}.segmented button{border-radius:0;margin-left:-1px}.segmented button:first-child{border-radius:var(--radius) 0 0 var(--radius);margin-left:0}.segmented button:last-child{border-radius:0 var(--radius) var(--radius) 0}.segmented button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);z-index:1;font-weight:600;position:relative}.board{grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;align-items:start;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.board-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:120px;padding:10px}.board-column.drag-over{border-color:var(--accent);background:var(--accent-soft)}.board-column-header{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:600}.board-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;margin-bottom:8px;padding:9px 10px}.board-card:hover{border-color:var(--accent)}.board-card:active{cursor:grabbing}.calendar-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.calendar{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-weekday{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);text-align:center;background:#fafbfc;padding:6px 8px;font-size:11px}.calendar-day{background:var(--surface);min-height:92px;padding:5px 6px}.calendar-day.outside{background:#fbfcfd}.calendar-day.outside .calendar-day-number{opacity:.4}.calendar-day.today{background:var(--accent-soft)}.calendar-day-number{color:var(--muted);margin-bottom:4px;font-size:12px}.calendar-task{background:var(--bg);border:1px solid var(--border);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;margin-bottom:3px;padding:2px 5px;font-size:12px;overflow:hidden}.calendar-task:hover{border-color:var(--accent)}.calendar-task.done{opacity:.55;text-decoration:line-through}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}@media (width<=720px){.calendar-day{min-height:64px}.calendar-task{font-size:11px}}.progress{background:var(--bg);border:1px solid var(--border);border-radius:20px;height:7px;overflow:hidden}.progress-bar{background:var(--accent);height:100%;transition:width .25s}.modal-overlay{z-index:100;background:#00000059;place-items:center;display:grid;position:fixed;inset:0}
