:root{color-scheme:dark;--bg: #0d1117;--card: #161b22;--card2: #1c2128;--border: #30363d;--fg: #e6edf3;--muted: #8b949e;--subtle: #6e7681;--accent: #58a6ff;--green: #3fb950;--primary: #238636;--danger: #f85149;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--fg);font-size:14px}input,button,select,textarea{font:inherit;color:var(--fg)}input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px}textarea{width:100%;resize:vertical}button{background:var(--primary);border:0;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer}button.sec{background:var(--card2);border:1px solid var(--border)}.muted{color:var(--muted)}.err{color:var(--danger)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px;width:340px;display:flex;flex-direction:column;gap:12px}.brand{font-size:18px;font-weight:700}.shell{display:flex;min-height:100vh}.sidebar{width:210px;background:var(--card);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar .brand{padding:4px 8px 14px}.nav-item{display:flex;align-items:center;gap:10px;background:transparent;border:0;color:var(--muted);border-radius:8px;padding:9px 10px;font-weight:500;cursor:pointer;text-align:left;width:100%}.nav-item:hover,.nav-item.active{background:var(--card2);color:var(--fg)}.nav-item.logout{margin-top:auto;color:var(--subtle)}.content{flex:1;padding:22px 26px;max-width:1000px}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.page-head h2{font-size:18px;margin:0}.node{border-left:2px solid var(--border);margin:3px 0;padding-left:12px}.row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px}.row:hover{background:var(--card2)}.title{font-size:14px}.caret{width:16px;text-align:center;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.badge{font-size:10px;padding:2px 8px;border-radius:10px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.badge.done{color:var(--green);border-color:var(--green)}.chip{font-size:10px;padding:2px 8px;border-radius:6px;background:var(--card2);color:var(--muted)}.mini{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:1px 7px;font-size:12px;cursor:pointer}.mini:hover{border-color:var(--accent);color:var(--accent)}.week-fact{font-size:11px;color:var(--green);margin-top:2px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters input,.filters select{min-width:120px}.filters input:first-child{flex:1;min-width:200px}.task-list{display:flex;flex-direction:column;gap:6px}.task-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--card);border:1px solid var(--border);border-radius:10px;cursor:pointer}.task-row:hover{border-color:var(--accent)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;justify-content:flex-end;z-index:20}.panel{width:520px;max-width:100vw;height:100vh;overflow:auto;background:var(--card);border-left:1px solid var(--border);padding:20px;display:flex;flex-direction:column;gap:10px}.panel-head{display:flex;align-items:center;gap:10px}.title-input{flex:1;font-size:16px;font-weight:600}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.tile{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center}.tile-v{font-size:28px;font-weight:700}.tile-l{font-size:12px;color:var(--muted);margin-top:4px}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week-col{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px;min-height:120px}.week-dow{font-size:12px;font-weight:600;color:var(--muted);text-align:center;padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:6px}.week-item{font-size:12px;background:var(--card2);border-radius:6px;padding:4px 6px;margin-bottom:4px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:11px;color:var(--muted)}
