*,:before,:after{box-sizing:border-box}html,body{height:100%;overscroll-behavior:none;height:100dvh;margin:0;overflow:hidden}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none}:root{--bg:#101a2e;--bg-glow:#1b2c4d;--surface:#1b2a45;--surface-raised:#24375a;--text:#eef3fb;--text-dim:#93a4c4;--accent:#4da3ff;--accent-soft:#4da3ff29;--danger:#ff6b6b;--glass:#e9f0ff29;--glass-edge:#e9f0ff61;--shadow:#040a1680;--radius:16px}:root[data-theme=light]{--bg:#eef2f9;--bg-glow:#fff;--surface:#fff;--surface-raised:#f4f7fc;--text:#16233c;--text-dim:#5d6c88;--accent:#1f6feb;--accent-soft:#1f6feb1f;--danger:#d64545;--glass:#16233c12;--glass-edge:#16233c33;--shadow:#18284629}.app{height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:radial-gradient(120% 70% at 50% 0%, var(--bg-glow) 0%, transparent 62%), var(--bg);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);display:grid}.app--screwland,.app--busjam{grid-template-rows:auto auto 1fr auto}.topbar{justify-content:space-between;align-items:center;gap:8px;padding:10px 14px 4px;display:flex}.topbar-level{flex-direction:column;line-height:1.1;display:flex}.topbar-level b{letter-spacing:-.01em;font-size:1.28rem;font-weight:700}.topbar-level span{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.72rem}.icon-button{width:40px;height:40px;color:var(--text-dim);border-radius:12px;place-items:center;transition:background .15s,color .15s;display:grid}.icon-button:hover,.icon-button:focus-visible{background:var(--glass);color:var(--text)}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.controls{padding:8px 14px calc(14px + env(safe-area-inset-bottom));justify-content:center;gap:10px;display:flex}.control{border-radius:var(--radius);background:var(--surface);min-width:78px;color:var(--text);box-shadow:0 2px 0 var(--shadow);flex-direction:column;align-items:center;gap:3px;padding:10px 14px;font-size:.74rem;font-weight:600;transition:transform .12s,opacity .15s;display:flex}.control:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.control:disabled{opacity:.38;cursor:default}.control svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.overlay{-webkit-backdrop-filter:blur(7px);z-index:20;background:#060c189e;place-items:center;padding:24px;animation:.2s both fade-in;display:grid;position:fixed;inset:0}.sheet{overscroll-behavior:contain;background:var(--surface);width:min(420px,100%);max-height:82dvh;box-shadow:0 20px 60px var(--shadow);border-radius:22px;padding:22px;animation:.24s cubic-bezier(.2,.9,.3,1) both rise;overflow-y:auto}.sheet h2{margin:0 0 4px;font-size:1.3rem}.sheet p{color:var(--text-dim);margin:0 0 18px;font-size:.88rem;line-height:1.5}.sheet-row{border-top:1px solid var(--glass);justify-content:space-between;align-items:center;gap:14px;padding:13px 0;display:flex}.sheet-row:first-of-type{border-top:none}.sheet-row-label{flex-direction:column;gap:2px;font-size:.9rem;font-weight:600;display:flex}.sheet-row-label small{color:var(--text-dim);font-size:.76rem;font-weight:400;line-height:1.4}.button{background:var(--accent);color:#fff;border-radius:13px;padding:12px 20px;font-size:.92rem;font-weight:700;transition:transform .12s,filter .15s}.button:active{transform:translateY(1px)}.button--ghost{background:var(--glass);color:var(--text)}.button--full{width:100%;margin-top:8px}.button--danger{color:var(--danger);background:0 0}.switch{background:var(--glass);border-radius:999px;flex:none;width:50px;height:30px;transition:background .18s;position:relative}.switch[aria-checked=true]{background:var(--accent)}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .18s cubic-bezier(.3,1.4,.5,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch[aria-checked=true]:after{transform:translate(20px)}.segmented{background:var(--glass);border-radius:11px;gap:2px;padding:3px;display:flex}.segmented button{color:var(--text-dim);border-radius:9px;padding:7px 13px;font-size:.8rem;font-weight:600;transition:background .15s,color .15s}.segmented button[aria-pressed=true]{background:var(--surface-raised);color:var(--text)}.field{border:1px solid var(--glass-edge);background:var(--bg);width:100%;color:var(--text);-webkit-user-select:text;user-select:text;border-radius:11px;padding:11px 13px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem}.note{color:var(--text-dim);margin:10px 0 0;font-size:.78rem;line-height:1.5}.note--error{color:var(--danger)}.note--ok{color:var(--accent)}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(16px)scale(.97)}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.timer-chip{min-width:52px;height:40px;color:var(--text);background:var(--glass);font-variant-numeric:tabular-nums;border-radius:12px;place-items:center;padding:0 10px 5px;font-size:.95rem;font-weight:700;transition:color .15s,background .15s;display:grid;position:relative}.timer-chip.is-off{color:var(--text-dim);background:0 0;font-weight:600}.timer-chip.is-urgent{color:var(--danger)}.timer-face{line-height:1}.timer-bar{background:var(--glass-edge);border-radius:2px;height:3px;position:absolute;bottom:6px;left:8px;right:8px;overflow:hidden}.timer-bar:after{content:"";height:100%;width:calc(var(--fill,1) * 100%);background:currentColor;border-radius:2px;transition:width .25s linear;display:block}.timer-chip.is-off .timer-bar{display:none}@media (prefers-reduced-motion:reduce){.timer-bar:after{transition:none}}
