:root{--bg:#1d2021;--bg1:#282828;--bg2:#3c3836;--fg:#ebdbb2;--dim:#a89984;--orange:#fe8019;--aqua:#8ec07c;--yellow:#fabd2f;--red:#fb4934;--green:#b8bb26;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}#app{flex-direction:column;min-height:100dvh;display:flex}header{z-index:2;padding:calc(env(safe-area-inset-top) + .7rem) 1rem .7rem;background:var(--bg);border-bottom:1px solid var(--bg2);align-items:center;gap:.6rem;display:flex;position:sticky;top:0}.logo{color:var(--orange);letter-spacing:.35em;font:700 .95rem ui-monospace,monospace}.spacer{flex:1}.who{color:var(--dim);font-size:.9rem}.conn{background:var(--yellow);border-radius:50%;width:.6rem;height:.6rem}.conn.open{background:var(--green)}.conn.closed{background:var(--red)}main{width:100%;max-width:40rem;padding:1rem 1rem calc(env(safe-area-inset-bottom) + 5rem);flex:1;margin:0 auto}nav{background:var(--bg1);border-top:1px solid var(--bg2);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}nav button{color:var(--dim);background:0 0;border:0;border-radius:0;flex:1;padding:.9rem 0;font-weight:600}nav button.active{color:var(--orange)}h1{margin:0;font-size:1.25rem}h2{color:var(--orange);letter-spacing:.05em;align-items:center;gap:.5rem;margin:0 0 .6rem;font-size:1rem;display:flex}.card{background:var(--bg1);border:1px solid var(--bg2);border-radius:.8rem;margin-bottom:1rem;padding:1rem}.toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}button{font:inherit;color:var(--fg);background:var(--bg2);cursor:pointer;border:1px solid #504945;border-radius:.55rem;min-height:2.6rem;padding:.55rem 1rem}button:disabled{opacity:.45;cursor:default}button.danger{border-color:var(--red);color:var(--red);background:0 0}input{font:inherit;color:var(--fg);background:var(--bg);border:1px solid #504945;border-radius:.55rem;width:100%;min-height:2.6rem;padding:.6rem .7rem}input[type=range]{accent-color:var(--orange);padding:0}input:focus,button:focus-visible{outline:2px solid var(--orange);outline-offset:1px}label{color:var(--dim);flex-direction:column;gap:.35rem;margin-bottom:.9rem;font-size:.9rem;display:flex}.signin{margin-top:12vh}.signin h1{margin-bottom:1.2rem}.signin button[type=submit]{background:var(--orange);border-color:var(--orange);width:100%;color:var(--bg);font-weight:700}.row{border-top:1px solid var(--bg2);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.6rem 0;display:flex}.row:first-of-type{border-top:0}.label{flex-direction:column;flex:10rem;display:flex}.name{font-family:ui-monospace,monospace;font-size:.9rem}.desc{color:var(--dim);font-size:.8rem}.control{flex:12rem;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.control input{flex:1}.control:has(>.value:only-child){flex:none}.inline{flex:1;gap:.5rem;display:flex}.value{color:var(--aqua);font-family:ui-monospace,monospace}.num{text-align:right;min-width:2.5rem}.switch{min-width:4.5rem}.switch.on{background:var(--orange);border-color:var(--orange);color:var(--bg);font-weight:700}.seg{flex-wrap:wrap;justify-content:flex-end;gap:.3rem;display:flex}.seg button{padding:.45rem .7rem;font-size:.85rem}.seg button.on{background:var(--orange);border-color:var(--orange);color:var(--bg)}.entry{border-top:1px solid var(--bg2);flex-wrap:wrap;gap:.2rem .8rem;padding:.5rem 0;display:flex}.entry:first-of-type{border-top:0}.time{color:var(--aqua);font-family:ui-monospace,monospace}.what{flex:1}.where{color:var(--dim);width:100%;font-size:.85rem}.when{color:var(--dim)}.when.soon{color:var(--yellow);font-weight:600}dl{grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0 0 1rem;display:grid}dt{color:var(--dim)}dd{word-break:break-word;margin:0;font-family:ui-monospace,monospace}dd.bad{color:var(--red)}.grants{white-space:pre-wrap}.badge{letter-spacing:.05em;color:var(--green);border:1px solid;border-radius:1rem;padding:.05rem .5rem;font-size:.7rem;font-weight:600}.badge.bad{color:var(--red)}.dim{color:var(--dim)}.small{font-size:.85rem}.center{text-align:center;margin-top:3rem}.error{color:var(--red);width:100%;margin:.4rem 0 0}
