:root{--bg: #000000;--accent: #c8f04a;--accent-dim-bg: #161c04;--on-accent: #0b0b0b;--text: #f5f5f0;--text-secondary: #bdbdbd;--text-muted: #8c8c8c;--surface: #1f1f1f;--surface-low: #121212;--card: #141414;--border: #2e2e2e;--divider: #222222;--inactive: #333333;--danger: #ff5a5f;--danger-bg: #2a0f10;--amber: #ffb547;--amber-bg: #2b1e05;--radius: 14px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-num: "Barlow Condensed", "Roboto Condensed", "Arial Narrow", var(--font);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%}body{min-height:100dvh}#root{max-width:560px;margin:0 auto;padding:env(safe-area-inset-top) 16px calc(24px + env(safe-area-inset-bottom))}a{color:var(--accent)}h1,h2,p{margin:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--text-muted);font-size:.875rem}.empty{color:var(--text-secondary);text-align:center;padding:32px 8px}.stack{display:flex;flex-direction:column;gap:16px}.card{background:var(--card);border:1px solid var(--divider);border-radius:var(--radius);padding:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 20px;border-radius:999px;border:1px solid transparent;font:600 1rem var(--font);text-decoration:none;cursor:pointer}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-danger{background:var(--danger);color:var(--on-accent)}.btn-danger-text{color:var(--danger)}.btn-small{min-height:36px;padding:0 12px;font-size:.875rem}.btn:focus-visible,input:focus-visible,.segmented button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px}.field label,.num label{color:var(--text-secondary);font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}input{width:100%;min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface-low);color:var(--text);font:1rem var(--font)}input::placeholder{color:var(--text-muted)}input[aria-invalid=true]{border-color:var(--danger)}.field-error,.form-error{color:var(--danger);font-size:.875rem}.form-error{background:var(--danger-bg);padding:10px 12px;border-radius:10px}.success{color:var(--accent);background:var(--accent-dim-bg);padding:10px 12px;border-radius:10px}.notice{color:var(--amber);background:var(--amber-bg);padding:10px 12px;border-radius:10px;margin:8px 0;font-size:.9375rem}.code-input{font:600 1.75rem var(--font-num);letter-spacing:.2em;text-align:center;text-transform:uppercase}.auth{display:flex;flex-direction:column;gap:12px;padding-top:48px}.auth-logo{border-radius:18px;align-self:center}.brand{color:var(--accent);font:700 1rem var(--font);text-align:center;letter-spacing:.2em;text-transform:uppercase}.auth h1{font-size:1.75rem;text-align:center;margin-bottom:12px}.auth-alt{text-align:center;color:var(--text-secondary);margin-top:16px}.splash{display:grid;place-items:center;min-height:100dvh}.page{display:flex;flex-direction:column;gap:12px}.app-header{display:grid;grid-template-columns:48px 1fr auto;align-items:center;min-height:56px;position:sticky;top:0;background:var(--bg);z-index:2}.app-header h1{font-size:1.375rem}.app-header-end{justify-self:end}.section-title{font-size:1rem;color:var(--text-secondary);margin-top:12px;display:flex;gap:8px;align-items:baseline}.page-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}.sync{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--divider);border-radius:999px;padding:4px 4px 4px 14px}.sync-label{flex:1;font-size:.875rem;color:var(--text-secondary)}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.sync-synced,.sync-idle{background:var(--accent)}.sync-syncing{background:var(--accent);animation:pulse 1s ease-in-out infinite}.sync-offline{background:var(--amber)}.sync-error{background:var(--danger)}@keyframes pulse{50%{opacity:.3}}@media (prefers-reduced-motion: reduce){.sync-syncing{animation:none}}.routine-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.routine-card{width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 12px;text-align:left;background:var(--card);border:1px solid var(--divider);border-radius:var(--radius);padding:14px 16px;color:var(--text);font:inherit;cursor:pointer}.routine-card:active{background:var(--surface)}.routine-name{font-weight:700;font-size:1.125rem}.routine-meta{color:var(--text-muted);font-size:.875rem;align-self:center}.routine-icons{grid-column:1 / -1;display:flex;gap:6px}.routine-icons .ex-icon{width:24px;height:24px;font-size:.75rem}.ex-icon{width:32px;height:32px;flex:none;object-fit:contain}.ex-icon-unknown{display:inline-grid;place-items:center;border-radius:8px;background:var(--surface);color:var(--text-muted);font-weight:700}.routine-form{display:flex;flex-direction:column;gap:12px}.ex-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.ex-row{background:var(--card);border:1px solid var(--divider);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:12px}.ex-row-head{display:flex;gap:10px;align-items:flex-start}.ex-index{font:700 1.25rem var(--font-num);color:var(--accent);min-width:20px;padding-top:12px}.ex-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.num{display:flex;flex-direction:column;gap:4px}.num-box{position:relative}.num input{font:600 1.375rem var(--font-num);text-align:center;padding:0 8px}.num-suffix{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.875rem;pointer-events:none}.ex-options{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.segmented{display:inline-flex;background:#161616;border-radius:999px;padding:3px}.segmented button{min-height:36px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font:600 .875rem var(--font);cursor:pointer}.segmented button.on{background:var(--accent);color:var(--on-accent)}.check{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.9375rem;min-height:36px}.check input{width:20px;height:20px;min-height:0;accent-color:var(--accent)}.ex-actions{display:flex;gap:4px;border-top:1px solid var(--divider);padding-top:8px}.ex-actions .btn-danger-text{margin-left:auto}.form-footer{position:sticky;bottom:0;padding:12px 0 calc(8px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%);display:flex;flex-direction:column}.picker{flex:1;position:relative;min-width:0}.picker-input{display:flex;align-items:center;gap:8px}.picker-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:3;list-style:none;margin:0;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:12px;max-height:320px;overflow-y:auto;box-shadow:0 8px 24px #0009}.picker-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer}.picker-list li:hover,.picker-list li[aria-selected=true]{background:var(--accent-dim-bg)}.device-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.device{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border:1px solid var(--divider);border-radius:var(--radius);padding:14px 16px}.device-name{font-weight:700}
