:root{--color-ground: #f3f2f2;--color-text: #201f1d;--color-accent: #b68235;--color-accent-700: #7a5620;--color-accent-300: #d9b98a;--color-accent-100: #f1e6d3;--color-divider: rgba(32, 31, 29, .14);--color-capture-bg: #1a1917;--font-head: "Cormorant Garamond", Georgia, serif;--font-body: "Lora", Georgia, serif;--font-mono: ui-monospace, Menlo, Consolas, monospace;--radius-sm: 4px;--radius-md: 8px;--shadow-whisper: 0 1px 2px rgba(32, 31, 29, .05)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--color-ground);color:var(--color-text);font:400 14px/1.55 var(--font-body);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select{font:inherit;color:inherit}.app{max-width:402px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative}.screen{flex:1;overflow-y:auto;padding-bottom:84px}.h-display{font:600 28px/1.1 var(--font-head);letter-spacing:-.01em;color:#141311}.h-title{font:700 20px/1.15 var(--font-head);color:#141311}.h-num{font:400 44px/1 var(--font-head);color:#141311}.mono-label{font:700 9px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#201f1db3;font-variant-numeric:tabular-nums}.mono-meta{font:500 10.5px/1.5 var(--font-mono);color:#201f1dcc;font-variant-numeric:tabular-nums}.mono-sm{font:500 9.5px/1.5 var(--font-mono);color:#201f1da8;font-variant-numeric:tabular-nums}.subjrow{display:block;width:100%;text-align:left;padding:11px 0;border-bottom:1px solid var(--color-divider)}.subjrow:active{background:#201f1d0a}.subj-name{font:700 15px/1.2 var(--font-head);color:#141311}.subjchip{padding:3px 8px 3px 6px;border:1px solid var(--color-divider);border-radius:999px}.body-sm{font:400 12.5px/1.5 var(--font-body)}.ital{font-style:italic}.rule{border:0;border-top:1px solid var(--color-divider)}.pagehead{padding:max(20px,env(safe-area-inset-top)) 20px 13px;border-bottom:1px solid var(--color-divider)}.card{border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:#ffffff73;box-shadow:var(--shadow-whisper)}.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-accent-700);padding:7px 14px;font:600 9.5px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:transparent}.btn-outline:disabled{opacity:.4;cursor:default}.btn-quiet{border:1px solid var(--color-divider);border-radius:var(--radius-sm);color:#201f1d8c;padding:7px 12px;font:600 9.5px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.bar-track{height:3px;background:#201f1d14;border-radius:2px;overflow:hidden}.bar-fill{height:100%;border-radius:2px;transition:width .4s ease}.chip{border:1px solid var(--color-divider);border-radius:999px;padding:4px 11px;font:600 9px var(--font-mono);letter-spacing:.1em;color:#201f1db3;background:transparent;white-space:nowrap}.chip.on{border-color:var(--color-accent);color:var(--color-accent-700);background:var(--color-accent-100)}.chip.dim{opacity:.4}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:402px;display:flex;border-top:1px solid var(--color-divider);background:#f3f2f2f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding-bottom:env(safe-area-inset-bottom);z-index:40}.tabbar button{flex:1;padding:9px 0 7px;display:flex;flex-direction:column;align-items:center;gap:3px;color:#201f1d66}.tabbar button.on{color:var(--color-accent-700)}.tabbar .tlabel{font:600 8px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.capture{background:var(--color-capture-bg);color:#efeeec;min-height:100%}.capture .mono-label,.capture .mono-meta,.capture .mono-sm{color:#efeeec80}.viewfinder{position:relative;margin:14px 20px;aspect-ratio:3/3.6;border:1px solid rgba(239,238,236,.14);border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.vf-corner{position:absolute;width:22px;height:22px;border-color:var(--color-accent);border-style:solid;border-width:0}.shutter{width:64px;height:64px;border-radius:50%;border:2px solid var(--color-accent);display:flex;align-items:center;justify-content:center;margin:0 auto}.shutter-core{width:48px;height:48px;border-radius:50%;background:var(--color-accent)}.stdrow{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--color-divider);align-items:flex-start;width:100%;text-align:left}.stdbox{width:15px;height:15px;border-radius:3px;border:1.5px solid;flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center}.lessons-toggle{display:inline-flex;align-items:center;gap:3px;padding:6px 0 6px 8px;align-self:flex-start;margin-top:10px;color:#201f1d80;white-space:nowrap}.lessons{padding:4px 0 10px 26px}.lesson{display:flex;gap:9px;padding:7px 0;border-top:1px dashed var(--color-divider);align-items:flex-start}.lesson-title{font:600 12.5px/1.35 var(--font-body);color:#141311}.termstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:16px}.termstrip .term{border:1px solid var(--color-divider);border-radius:var(--radius-sm);padding:6px 7px;text-align:center}.termstrip .term.now{border-color:var(--color-accent);background:var(--color-accent-100)}.termstrip .term .mono-sm{white-space:nowrap;font-size:8.5px}.alarm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--color-capture-bg);color:#efeeec;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:30px}.row{display:flex;align-items:center;gap:10px}.grow{flex:1;min-width:0}.px{padding-left:20px;padding-right:20px}.fade{color:#201f1d8c}.stepper{display:inline-flex;align-items:center;gap:8px}.stepper button{width:24px;height:24px;border:1px solid var(--color-divider);border-radius:50%;font-size:13px;line-height:1;color:#201f1d99}.crest{border-radius:14px;object-fit:cover;flex-shrink:0;box-shadow:0 2px 6px #14131140}
