:root{--color-text:#1a1a1a;--color-text-muted:#5f6368;--color-bg:#fff;--color-surface:#f3f4f6;--color-border:#e5e7eb;--color-accent:#1f2937;--color-accent-text:#fff;--color-button:#fff;--color-button-border:#9ca3af;--color-strong:#1d4ed8;--color-strong-text:#fff;--color-success:#15803d;--color-success-text:#fff;--color-warning-bg:#fef3c7;--color-warning-text:#78350f;--color-danger:#b91c1c;--tab-bar-height:64px;--tap:56px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);color:var(--color-text);background-color:var(--color-bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-text:#f2f2f2;--color-text-muted:#a1a1aa;--color-bg:#121212;--color-surface:#1e1e1e;--color-border:#2c2c2c;--color-accent:#f2f2f2;--color-accent-text:#121212;--color-button:#262626;--color-button-border:#6b7280;--color-strong:#3b82f6;--color-strong-text:#fff;--color-success:#22c55e;--color-success-text:#052e16;--color-warning-bg:#422006;--color-warning-text:#fde68a;--color-danger:#f87171}}*,:before,:after{box-sizing:border-box}body{background-color:var(--color-bg);min-height:100dvh;margin:0}button{font:inherit}.app{min-height:100dvh}.app__content{min-height:100dvh;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(var(--tab-bar-height) + 16px + var(--safe-bottom)) calc(16px + var(--safe-left))}.placeholder{min-height:calc(100dvh - var(--tab-bar-height) - 32px - var(--safe-top) - var(--safe-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.placeholder__title{margin:0 0 8px;font-size:clamp(2rem,8vw,3rem);font-weight:700}.placeholder__text{color:var(--color-text-muted);margin:0;font-size:1.25rem}.tab-bar{z-index:10;height:calc(var(--tab-bar-height) + var(--safe-bottom));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);background-color:var(--color-bg);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar__item{min-width:0;color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.tab-bar__item--active{color:var(--color-text)}.tab-bar__label{font-size:.75rem;font-weight:600}.banner{right:calc(12px + var(--safe-right));left:calc(12px + var(--safe-left));z-index:20;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:fixed;box-shadow:0 4px 16px #0000001f}.banner--top{top:calc(12px + var(--safe-top))}.banner--bottom{bottom:calc(var(--tab-bar-height) + 12px + var(--safe-bottom))}.banner__text{font-size:.95rem}.banner__actions{flex-shrink:0;gap:8px;display:flex}.button{min-height:44px;color:var(--color-accent-text);background-color:var(--color-accent);cursor:pointer;border:0;border-radius:8px;padding:0 16px;font-weight:600}.button--ghost{min-width:44px;color:var(--color-text);background-color:#0000;justify-content:center;align-items:center;padding:0 12px;display:inline-flex}.page{flex-direction:column;gap:12px;max-width:560px;margin:0 auto;display:flex}.page--center{min-height:calc(100dvh - var(--tab-bar-height) - 32px - var(--safe-top) - var(--safe-bottom));text-align:center;justify-content:center;align-items:center}.page__eyebrow{color:var(--color-text-muted);text-transform:capitalize;margin:0;font-weight:600}.page__title{margin:0;font-size:2rem;line-height:1.2}.page__title--left{text-align:left}.page__text{color:var(--color-text-muted);margin:0;font-size:1.05rem}.section-title{margin:24px 0 0;font-size:1.25rem}.field-label{margin:12px 0 0;font-size:1rem;font-weight:600}.button-row{gap:12px;margin-top:16px;display:flex}.button-row>*{flex:1}.big-button{min-height:var(--tap);color:var(--color-text);background-color:var(--color-button);border:2px solid var(--color-button-border);cursor:pointer;touch-action:manipulation;border-radius:12px;padding:0 20px;font-size:1.1rem;font-weight:700}.big-button:disabled{opacity:.4;cursor:default}.big-button--primary{color:var(--color-strong-text);background-color:var(--color-strong);border-color:var(--color-strong)}.big-button--danger{color:var(--color-danger);border-color:var(--color-danger)}.big-button--full{width:100%;margin-top:8px}.test-screen{z-index:30;padding:calc(8px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left));background-color:var(--color-bg);flex-direction:column;gap:12px;display:flex;position:fixed;inset:0}.test-header{justify-content:space-between;align-items:center;min-height:48px;display:flex;position:relative}.test-header__frame{font-size:1.75rem;font-weight:800}.saved-flash{color:var(--color-success-text);background-color:var(--color-success);border-radius:999px;padding:8px 16px;font-weight:700;animation:1.2s ease-out forwards saved-flash}@keyframes saved-flash{0%{opacity:0;transform:scale(.9)}10%,70%{opacity:1;transform:scale(1)}to{opacity:0}}.test-body{flex-direction:column;flex:1;gap:16px;min-height:0;display:flex;overflow-y:auto}.pin-group{flex-direction:column;flex:1 0 auto;gap:6px;display:flex}.pin-group__label{font-size:1.1rem;font-weight:700}.pin-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(var(--tap), 1fr);flex:1;gap:8px;max-height:300px;display:grid}.pin-button{min-height:var(--tap);color:var(--color-text);background-color:var(--color-button);border:2px solid var(--color-button-border);cursor:pointer;touch-action:manipulation;border-radius:12px;font-size:1.75rem;font-weight:800}.pin-button:active{background-color:var(--color-surface)}.pin-button--accent{color:var(--color-strong-text);background-color:var(--color-strong);border-color:var(--color-strong)}.pin-button--accent:active{filter:brightness(.85);background-color:var(--color-strong)}.pin-button--wide{grid-column:span 2}.test-footer{grid-template-columns:1fr 1fr;gap:12px;display:grid}.test-footer .big-button{min-height:64px}@media (height<=700px){.test-screen{gap:8px}.test-header{min-height:36px}.test-header__frame{font-size:1.4rem}.test-body{gap:8px}.pin-group{gap:4px}.pin-group__label{font-size:1rem}.pin-grid{gap:6px}.test-footer .big-button{min-height:var(--tap)}}.summary{flex:1;overflow-y:auto}.summary__count{margin:0 0 12px;font-size:1.25rem;font-weight:700}.warning{color:var(--color-warning-text);background-color:var(--color-warning-bg);border-radius:12px;margin:0 0 12px;padding:12px 16px;font-weight:600}.frame-table{border-collapse:collapse;width:100%;font-size:1rem}.frame-table th,.frame-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:8px 6px}.frame-table th{color:var(--color-text-muted);font-size:.85rem}.rating-row{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.rating-row__star{min-height:var(--tap);color:var(--color-text);background-color:var(--color-button);border:2px solid var(--color-button-border);cursor:pointer;touch-action:manipulation;border-radius:12px;font-size:1.25rem;font-weight:700}.rating-row__star--on{color:var(--color-strong-text);background-color:var(--color-strong);border-color:var(--color-strong)}.exercise-list{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.exercise{flex-direction:column;gap:8px;display:flex}.exercise__main{gap:8px;display:flex}.exercise__tick{min-height:64px;color:var(--color-text);text-align:left;background-color:var(--color-button);border:2px solid var(--color-button-border);cursor:pointer;touch-action:manipulation;border-radius:12px;flex:1;align-items:center;gap:14px;padding:10px 14px;display:flex}.exercise__tick--done{border-color:var(--color-success)}.checkbox{border:2px solid var(--color-button-border);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.exercise__tick--done .checkbox{color:var(--color-success-text);background-color:var(--color-success);border-color:var(--color-success)}.exercise__text{flex-direction:column;min-width:0;display:flex}.exercise__title{font-size:1.1rem;font-weight:700}.exercise__instruction{color:var(--color-text-muted);font-size:.95rem}.exercise__rate-toggle{width:64px;min-height:64px;color:var(--color-text);background-color:var(--color-button);border:2px solid var(--color-button-border);cursor:pointer;border-radius:12px;flex-shrink:0;font-size:1rem;font-weight:700}.success-mark{width:80px;height:80px;color:var(--color-success-text);background-color:var(--color-success);border-radius:50%;justify-content:center;align-items:center;display:flex}.text-area{width:100%;color:var(--color-text);background-color:var(--color-button);border:2px solid var(--color-button-border);font:inherit;border-radius:12px;padding:12px;font-size:1rem}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.stats--two{grid-template-columns:repeat(2,1fr);margin-bottom:16px}.stats__item{background-color:var(--color-surface);border-radius:12px;padding:12px}.stats__item dt{color:var(--color-text-muted);font-size:.8rem}.stats__item dd{margin:4px 0 0;font-size:1.5rem;font-weight:800}.duration-list{margin:0;padding-left:24px;font-size:1.05rem}
