:root{--terracotta: #e85d3a;--paper: #faf8f6;--ink: #2d2420;--muted: #8a7e76;--line: #e7e0d9;--card: #fff;--warn: #b8742a;--danger: #c0392b;--ok: #3a7d44}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--paper);color:var(--ink);line-height:1.5}.app{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--line);background:var(--card)}.brand{font-weight:800;font-size:1.25rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.topbar-right{display:flex;align-items:center;gap:1rem}.user{font-size:.875rem;color:var(--muted)}.content{max-width:48rem;margin:0 auto;padding:2rem 1.5rem}.stack{display:flex;flex-direction:column;gap:1.25rem}.row{display:flex;gap:.5rem;align-items:center}.row-between{display:flex;justify-content:space-between;align-items:center;gap:.5rem}h1{font-size:1.75rem;letter-spacing:-.02em}h2{font-size:1.1rem;margin-bottom:.75rem}.muted{color:var(--muted);font-size:.875rem}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;font-weight:600;color:var(--terracotta)}.error{color:var(--danger);font-size:.875rem}input,select{font:inherit;padding:.55rem .7rem;border:1px solid var(--line);border-radius:.5rem;background:var(--card);color:var(--ink);width:100%}label{display:flex;flex-direction:column;gap:.3rem;font-size:.875rem}.btn{font:inherit;font-weight:600;padding:.55rem 1rem;border:none;border-radius:.5rem;background:var(--terracotta);color:var(--paper);cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.6;cursor:default}.btn-danger{background:var(--danger, #b3261e)}.panel.danger{border:1px solid var(--danger, #b3261e)}.link-btn{font:inherit;background:none;border:none;color:var(--terracotta);cursor:pointer;padding:0;text-decoration:underline}.icon-btn{font:inherit;background:none;border:none;cursor:pointer;padding:0;line-height:1;text-decoration:none}.panel{background:var(--card);border:1px solid var(--line);border-radius:.75rem;padding:1.25rem}.cards{list-style:none;display:grid;gap:.75rem}.card{display:flex;flex-direction:column;gap:.5rem;background:var(--card);border:1px solid var(--line);border-radius:.75rem;padding:1rem}.card-link{display:flex;flex-direction:column;gap:.25rem;text-decoration:none;color:var(--ink)}.thermal{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.75rem;padding-top:.6rem;border-top:1px solid var(--line)}.thermal select,.thermal input{width:auto}.thermal label{justify-content:flex-start}.thermal select,.thermal input[type=number]{height:2.6rem;box-sizing:border-box}.device-name{font-weight:600;font-size:1rem;border:1px solid transparent;background:transparent;padding:.25rem .4rem;width:auto;flex:1}.device-name:hover{border-color:var(--line)}.device-name:focus{border-color:var(--terracotta);background:var(--card);outline:none}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-top:.75rem}.cal-head{text-align:center;font-size:.7rem;text-transform:uppercase;color:var(--ink);opacity:.5;padding:.25rem 0}.cal-day{text-align:center;padding:.55rem 0;border-radius:.4rem;font-size:.875rem}.cal-day.occ-full{background:var(--occ-full, var(--line));color:var(--ink)}.cal-day.occ-start:not(.occ-end){background-image:linear-gradient(135deg,transparent 50%,var(--occ-start, var(--line)) 50%)}.cal-day.occ-end:not(.occ-start){background-image:linear-gradient(135deg,var(--occ-end, var(--line)) 50%,transparent 50%)}.cal-day.occ-start.occ-end{background-image:linear-gradient(135deg,var(--occ-end, var(--line)) 48%,transparent 48%,transparent 52%,var(--occ-start, var(--line)) 52%)}.chip{padding:.3rem .7rem;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:.875rem}.badge{font-size:.72rem;font-weight:600;padding:.2rem .55rem;border-radius:999px}.badge-ok{background:#e7f1e9;color:var(--ok)}.badge-warn{background:#f7ecdd;color:var(--warn)}.badge-danger{background:#f7e0dd;color:var(--danger)}.auth{display:grid;place-items:center;min-height:70vh;padding:1.5rem}.auth-card{width:100%;max-width:22rem;gap:.85rem;display:flex;flex-direction:column}
