:root{--bg:#0f1115;--panel:#181b22;--border:#272b34;--text:#e6e8ec;--muted:#9aa1ad;--accent:#4f9cff;--good:#5ad17a;--warn:#f0b150;--bad:#ef6f6f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}header.topnav{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:1.5rem;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}header.topnav .brand{letter-spacing:.5px;font-weight:700}header.topnav nav{gap:1rem;display:flex}header.topnav .spacer{flex:1}main{max-width:1100px;margin:0 auto;padding:1.25rem}.grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem}.panel.span2{grid-column:span 2}.panel.span4{grid-column:span 4}.metric .label{color:var(--muted);text-transform:uppercase;font-size:.8rem}.metric .value{margin-top:.25rem;font-size:2rem;font-weight:700}.metric .sub{color:var(--muted);font-size:.85rem}.form .pos{color:var(--good)}.form .neg{color:var(--bad)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .5rem}th{color:var(--muted);font-weight:600}.rationale{color:var(--muted);line-height:1.5}.btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:.55rem .9rem;font-size:.95rem}.btn.ghost{border:1px solid var(--border);color:var(--text);background:0 0}.settings-grid{grid-template-columns:repeat(3,1fr);gap:.85rem 1rem;display:grid}.field{flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.field input,.field select,.panel input,.panel select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:7px;padding:.45rem .55rem}.panel h4{color:var(--muted);margin:.6rem 0 .3rem;font-weight:600}@media (width<=720px){.settings-grid{grid-template-columns:1fr 1fr}}.field textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;resize:vertical;border-radius:7px;padding:.45rem .55rem}.modal-backdrop{z-index:50;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.6rem;width:min(420px,92vw);padding:1.25rem 1.4rem;display:flex}.plan-week{grid-template-columns:repeat(7,1fr);gap:.6rem;margin-top:.6rem;display:grid}.tile{background:var(--bg);border:1px solid var(--border);border-top:3px solid var(--border);border-radius:8px;flex-direction:column;gap:.35rem;min-height:96px;padding:.5rem .55rem;display:flex}.tile.rest{opacity:.8}.tile.tile-over{outline:2px dashed var(--accent);outline-offset:1px}.tile[draggable=true]{cursor:grab}.tile.blocked{opacity:.5;background:repeating-linear-gradient(45deg, var(--bg), var(--bg) 6px, var(--panel) 6px, var(--panel) 12px)}.tile-head{justify-content:space-between;font-size:.8rem;font-weight:600;display:flex}.tile-body{font-size:.85rem;line-height:1.35}.tile-badge{color:var(--muted);font-size:.72rem}.tile-done{color:var(--good);font-size:.72rem;font-weight:600}.tile-acts{flex-direction:column;gap:.25rem;margin-top:auto;padding-top:.35rem;display:flex}.act-chip{color:var(--good);border:1px solid var(--border);background:#ffffff0d;border-radius:6px;padding:.15rem .35rem;font-size:.72rem}.tile-past{opacity:.92}.tile-past .tile-head{color:var(--muted)}@media (width<=720px){.plan-week{grid-template-columns:repeat(2,1fr)}}.integ-row{border-top:1px solid var(--border);padding:.6rem 0}.integ-row:first-of-type{border-top:0}.integ-head{align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.integ-fields{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.integ-fields input{flex:1;min-width:160px}.login-wrap{max-width:340px;margin:12vh auto}.login-wrap input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;margin:.5rem 0 .9rem;padding:.6rem .7rem}.error{color:var(--bad)}.muted{color:var(--muted)}.spinner{border:2px solid #4f9cff55;border-top-color:#4f9cff;border-radius:50%;width:1em;height:1em;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.link-danger{color:#f0a8a8;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.fail-list{margin:.25rem 0 0;padding-left:1.1rem;font-size:.85rem}.fail-list li{margin:.15rem 0}.new-star{color:#f0c040;margin-right:.35rem}
