:root{--p-white: #ffffff;--p-gray-50: #f4f4f7;--p-gray-100: #ebebf0;--p-gray-300: #c7c7cc;--p-gray-500: #6d6d72;--p-gray-900: #111114;--p-blue-600: #2481cc;--p-blue-700: #1a6fb3;--p-red-600: #d93636;--p-green-600: #1f8a4c;--p-green-50: #e6f4ec;--p-red-50: #fbe9e9;--p-amber-600: #b26a00;--p-amber-50: #fff3e0;--color-surface-page: var(--tg-theme-secondary-bg-color, var(--p-gray-50));--color-surface-card: var(--tg-theme-section-bg-color, var(--tg-theme-bg-color, var(--p-white)));--color-surface-sunken: var(--tg-theme-secondary-bg-color, var(--p-gray-100));--color-text-primary: var(--tg-theme-text-color, var(--p-gray-900));--color-text-secondary: var(--tg-theme-hint-color, var(--p-gray-500));--color-text-section: var(--tg-theme-section-header-text-color, var(--p-gray-500));--color-text-link: var(--tg-theme-link-color, var(--p-blue-600));--color-border-default: var(--tg-theme-section-separator-color, var(--p-gray-100));--color-border-strong: var(--p-gray-500);--color-action-primary: var(--tg-theme-button-color, var(--p-blue-600));--color-action-primary-text: var(--tg-theme-button-text-color, var(--p-white));--color-action-destructive: var(--tg-theme-destructive-text-color, var(--p-red-600));--color-action-destructive-text: var(--p-white);--color-accent: var(--tg-theme-accent-text-color, var(--p-blue-600));--color-feedback-success-text: var(--p-green-600);--color-feedback-success-bg: var(--p-green-50);--color-feedback-error-text: var(--p-red-600);--color-feedback-error-bg: var(--p-red-50);--color-feedback-warning-text: var(--p-amber-600);--color-feedback-warning-bg: var(--p-amber-50);--state-hover-overlay: rgba(0, 0, 0, .06);--state-pressed-overlay: rgba(0, 0, 0, .12);--state-disabled-opacity: .45;--focus-ring: 0 0 0 2px var(--color-surface-card), 0 0 0 4px var(--color-text-link);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5625rem;--font-size-display: 2.5rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.15;--line-height-body: 1.45;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--gutter: 1rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-pill: 999px;--size-control: 3rem;--size-control-sm: 2.25rem;--size-icon: 1.25rem;--size-tabbar: 3.75rem;--shadow-card: 0 1px 2px rgba(0, 0, 0, .06);--duration-fast: .12s;--duration-base: .2s;--easing-standard: cubic-bezier(.2, 0, 0, 1)}:root[data-theme=dark]{--p-white: #1c1c1e;--p-gray-50: #0f0f10;--p-gray-100: #2c2c2e;--p-gray-500: #98989f;--p-gray-900: #f2f2f7;--p-blue-600: #5aa9f0;--p-red-600: #ff6b6b;--p-green-600: #4cc985;--p-green-50: #133222;--p-red-50: #3a1717;--p-amber-600: #ffb547;--p-amber-50: #3a2a10;--color-action-destructive-text: #1c1c1e;--state-hover-overlay: rgba(255, 255, 255, .06);--state-pressed-overlay: rgba(255, 255, 255, .12);--shadow-card: none}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-base: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--color-surface-page);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-md);line-height:var(--line-height-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--color-text-link)}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.app{min-height:var(--tg-viewport-stable-height, 100vh);padding:var(--space-4) var(--gutter) calc(var(--size-tabbar) + var(--space-6) + env(safe-area-inset-bottom));max-width:40rem;margin:0 auto}.screen{display:flex;flex-direction:column;gap:var(--space-4)}.screen--fill{min-height:calc(var(--tg-viewport-stable-height, 100vh) - var(--size-tabbar) - var(--space-12))}.spacer{flex:1}.bottom-actions{position:sticky;bottom:calc(var(--size-tabbar) + var(--space-2) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);background:linear-gradient(to bottom,transparent,var(--color-surface-page) 30%);z-index:5}.row{display:flex;gap:var(--space-2);align-items:center}.row--wrap{flex-wrap:wrap}.row>.btn{flex:1}.row--wrap>.btn{flex:0 1 auto;white-space:nowrap}.input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2)}.display{font-size:var(--font-size-display);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold);margin:0;overflow-wrap:anywhere}.h1{font-size:var(--font-size-xl);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold);margin:0}.h2{font-size:var(--font-size-lg);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold);margin:0}.eyebrow{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-section);margin:0}.muted{color:var(--color-text-secondary)}.small{font-size:var(--font-size-sm)}.text{margin:0;overflow-wrap:anywhere;white-space:pre-line}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card{background:var(--color-surface-card);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-3)}.card--lead{padding:var(--space-5)}.card--sunken{background:var(--color-surface-sunken);box-shadow:none}.list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.list-item{display:flex;align-items:center;gap:var(--space-3);min-height:var(--size-control);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-default)}.list-item:last-child{border-bottom:none}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--size-control);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;font-weight:var(--font-weight-medium);cursor:pointer;text-decoration:none;transition:transform var(--duration-fast) var(--easing-standard),opacity var(--duration-fast);isolation:isolate;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:transparent;transition:background var(--duration-fast);z-index:-1}@media(hover:hover){.btn:hover:not(:disabled):after{background:var(--state-hover-overlay)}}.btn:active:not(:disabled){transform:scale(.98)}.btn:active:not(:disabled):after{background:var(--state-pressed-overlay)}.btn:disabled{opacity:var(--state-disabled-opacity);cursor:not-allowed}.btn[aria-busy=true]{cursor:progress}.btn--primary{background:var(--color-action-primary);color:var(--color-action-primary-text)}.btn--secondary{background:var(--color-surface-card);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn--ghost{background:transparent;color:var(--color-text-link)}.btn--destructive{background:var(--color-action-destructive);color:var(--color-action-destructive-text)}.btn--sm{min-height:var(--size-control-sm);padding:0 var(--space-3);font-size:var(--font-size-sm)}.btn--block{width:100%}.btn--icon{padding:0;width:var(--size-control-sm);min-height:var(--size-control-sm);border-radius:var(--radius-pill)}.option{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--size-control);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface-card);text-align:left;cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast)}@media(hover:hover){.option:hover:not(:disabled){background:var(--color-surface-sunken)}}.option:active:not(:disabled){background:var(--color-surface-sunken)}.option:disabled{cursor:default}.option[aria-pressed=true],.option[aria-checked=true]{border-color:var(--color-action-primary);box-shadow:inset 0 0 0 1px var(--color-action-primary)}.option--correct{border-color:var(--color-feedback-success-text);background:var(--color-feedback-success-bg)}.option--wrong{border-color:var(--color-feedback-error-text);background:var(--color-feedback-error-bg)}.option__mark{margin-left:auto;flex-shrink:0}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--size-control-sm);padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface-card);cursor:pointer;font-size:var(--font-size-sm)}@media(hover:hover){.chip:hover:not(:disabled){background:var(--color-surface-sunken)}}.chip[aria-pressed=true]{background:var(--color-action-primary);color:var(--color-action-primary-text);border-color:var(--color-action-primary)}.chip:disabled{opacity:var(--state-disabled-opacity);cursor:not-allowed}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.input{width:100%;min-height:var(--size-control);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface-card);resize:vertical}.input:disabled{opacity:var(--state-disabled-opacity)}.input[aria-invalid=true]{border-color:var(--color-feedback-error-text)}.field__error{font-size:var(--font-size-sm);color:var(--color-feedback-error-text)}.scale{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:var(--space-1)}.scale__item{min-height:var(--size-control-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface-card);cursor:pointer;font-size:var(--font-size-sm);padding:0}.scale__item[aria-checked=true]{background:var(--color-action-primary);color:var(--color-action-primary-text);border-color:var(--color-action-primary)}.scale__legend{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.progress{height:.375rem;border-radius:var(--radius-pill);background:var(--color-surface-sunken);overflow:hidden}.progress__bar{height:100%;background:var(--color-action-primary);transition:width var(--duration-base) var(--easing-standard)}.steps{display:flex;gap:var(--space-1)}.steps__dot{flex:1;height:.25rem;border-radius:var(--radius-pill);background:var(--color-surface-sunken)}.steps__dot--done{background:var(--color-action-primary)}.steps__dot--current{background:var(--color-accent);opacity:.6}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-surface-sunken);color:var(--color-text-secondary)}.badge--success{background:var(--color-feedback-success-bg);color:var(--color-feedback-success-text)}.badge--warning{background:var(--color-feedback-warning-bg);color:var(--color-feedback-warning-text)}.notice{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.notice--success{background:var(--color-feedback-success-bg);color:var(--color-feedback-success-text)}.notice--error{background:var(--color-feedback-error-bg);color:var(--color-feedback-error-text)}.notice--info{background:var(--color-surface-sunken);color:var(--color-text-primary)}.spinner{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.skeleton{border-radius:var(--radius-lg);background:var(--color-surface-card);min-height:6rem;opacity:.6}.tabbar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--size-tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface-card);border-top:1px solid var(--color-border-default);z-index:10}.tabbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;border:none;background:transparent;color:var(--color-text-secondary);font-size:.6875rem;cursor:pointer;min-width:0}.tabbar__item[aria-current=page]{color:var(--color-action-primary)}@media(hover:hover){.tabbar__item:hover{color:var(--color-text-primary)}}.timer{font-size:calc(var(--font-size-display) * 1.6);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;line-height:1;text-align:center;margin:var(--space-4) 0 var(--space-2)}.breath{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-4) 0}.breath__circle{width:10rem;height:10rem;border-radius:50%;background:var(--color-action-primary);opacity:.85;transform:scale(.55);transition-property:transform;transition-timing-function:ease-in-out}.breath__label{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.heatmap{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:3px}.heatmap__cell{aspect-ratio:1;border-radius:3px;background:var(--color-surface-sunken)}.heatmap__cell--on{background:var(--color-action-primary)}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.stat{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-sunken);min-width:0}.stat__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.stat__label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
