:root{color-scheme:light dark;--bg: var(--tg-theme-bg-color, #ffffff);--fg: var(--tg-theme-text-color, #171717);--hint: var(--tg-theme-hint-color, #8e8e93);--link: var(--tg-theme-link-color, #007aff);--btn: var(--tg-theme-button-color, #3b82f6);--btn-text: var(--tg-theme-button-text-color, #ffffff);--secondary-bg: var(--tg-theme-secondary-bg-color, #efeff4);--section-bg: var(--tg-theme-section-bg-color, #ffffff);--section-header: var(--tg-theme-section-header-text-color, #6d6d72);--subtitle: var(--tg-theme-subtitle-text-color, #8e8e93);--separator: var(--tg-theme-section-separator-color, #c8c7cc);--destructive: var(--tg-theme-destructive-text-color, #ff3b30);--accent: #3b82f6;--accent-strong: #1d4ed8;--accent-soft: rgba(59, 130, 246, .12);--accent-contrast: #ffffff;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .03);--bottom-nav-height: 60px}[data-role=student]{--accent: #be185d;--accent-strong: #be185d;--accent-soft: rgba(190, 24, 93, .12);--accent-contrast: #ffffff}[data-role=parent]{--accent: #4338ca;--accent-strong: #4338ca;--accent-soft: rgba(67, 56, 202, .12);--accent-contrast: #ffffff}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--secondary-bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input,select{font-size:16px}a{color:var(--link)}h1,h2,h3,p{font-family:inherit}.app-scroll{max-width:560px;margin:0 auto;min-height:100%;padding-top:calc(var(--space-3) + var(--safe-top));padding-left:var(--space-4);padding-right:var(--space-4);padding-bottom:calc(var(--bottom-nav-height) + var(--space-6) + var(--safe-bottom))}.app-scroll--no-nav{padding-bottom:calc(var(--space-6) + var(--safe-bottom))}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0 var(--space-5)}.app-header__text{min-width:0}.app-header__title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:var(--fg)}.app-header__subtitle{margin:.2rem 0 0;color:var(--subtitle);font-size:.9rem}.app-header__action{flex-shrink:0}.section{margin-bottom:var(--space-5)}.section-label{margin:0 0 var(--space-2) var(--space-1);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--section-header)}.surface{background:var(--section-bg);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.surface+.surface{margin-top:var(--space-3)}.list{background:var(--section-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4)}.list-row+.list-row{border-top:1px solid var(--separator)}.list-row--today{background:var(--accent-soft)}.list-row__label{font-weight:600;color:var(--fg)}.list-row__meta{color:var(--subtitle);font-size:.875rem;text-align:right}.list-row__hint{color:var(--hint);font-size:.9rem}.btn{appearance:none;border:none;border-radius:var(--radius-sm);font-weight:600;font-size:.95rem;padding:.8rem 1.1rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer;width:100%}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-secondary{background:var(--accent-soft);color:var(--accent-strong)}.btn-ghost{background:transparent;color:var(--fg);border:1px solid var(--separator)}.btn-row{display:flex;gap:var(--space-3)}.btn-row .btn{width:auto;flex:1}.icon-btn{appearance:none;border:none;background:var(--accent-soft);color:var(--accent-strong);border-radius:var(--radius-pill);width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.icon-btn--danger{background:transparent;color:var(--destructive);width:32px;height:32px}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--accent-soft);color:var(--accent-strong);border-radius:var(--radius-pill);padding:.4rem .75rem;font-size:.85rem;font-weight:600}.today-card{background:var(--section-bg);border-left:4px solid var(--accent);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:var(--space-3);padding:var(--space-5) var(--space-4) var(--space-4)}.today-card__status{color:var(--accent-strong);font-size:.78rem;font-weight:700;letter-spacing:0;margin:0 0 var(--space-2);text-transform:uppercase}.today-card__title{font-size:1.45rem;margin:0}.today-card__meta{color:var(--subtitle);line-height:1.45;margin:var(--space-2) 0 var(--space-5)}.quiet-action,.sheet__secondary,.sheet__cancel{appearance:none;background:none;border:0;color:var(--accent-strong);cursor:pointer;display:block;font:inherit;font-weight:600;margin:0 auto var(--space-5);min-height:44px;padding:var(--space-2) var(--space-3)}.calm-status{color:var(--hint);line-height:1.5;margin:var(--space-5) var(--space-2)}.sheet-backdrop{align-items:flex-end;background:#0000005c;display:flex;inset:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:30}.sheet{background:var(--section-bg);border-radius:var(--radius-md) var(--radius-md) 0 0;max-width:560px;padding:var(--space-5) var(--space-4) calc(var(--space-4) + var(--safe-bottom));width:100%}.sheet h2{margin:0 0 var(--space-2)}.assessment-options{display:flex;gap:var(--space-2);margin:var(--space-4) 0}.choice{background:var(--secondary-bg);border:1px solid var(--separator);border-radius:var(--radius-sm);cursor:pointer;flex:1;font:inherit;font-weight:600;min-height:48px}.choice--selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.sheet__secondary{margin:var(--space-2) auto 0}.sheet__cancel{color:var(--hint);font-weight:500;margin:0 auto}.plan-day+.plan-day{border-top:1px solid var(--separator)}.plan-day--today{background:var(--accent-soft)}.plan-day__summary{align-items:center;appearance:none;background:transparent;border:0;color:var(--fg);cursor:pointer;display:flex;font:inherit;justify-content:space-between;min-height:64px;padding:var(--space-3) var(--space-4);text-align:left;width:100%}.plan-editor{border-top:1px solid var(--separator);padding:var(--space-4)}.toggle-row{align-items:center;display:flex;font-weight:600;gap:var(--space-2);margin-bottom:var(--space-4);min-height:32px}.toggle-row input{accent-color:var(--accent);height:20px;width:20px}.week-summary{background:var(--accent-soft);border-radius:var(--radius-md);color:var(--accent-strong);margin-bottom:var(--space-5);padding:var(--space-4)}.week-summary p{font-size:1.05rem;font-weight:650;line-height:1.4;margin:0 0 var(--space-2)}.field{display:grid;gap:.4rem;margin-bottom:var(--space-4)}.field:last-child{margin-bottom:0}.field__label{font-size:.85rem;font-weight:600;color:var(--section-header)}.field input,.field select{background:var(--secondary-bg);border:1px solid var(--separator);border-radius:var(--radius-sm);padding:.7rem .8rem;color:var(--fg)}.banner{border-radius:var(--radius-sm);padding:var(--space-3);font-size:.9rem;margin-bottom:var(--space-3)}.banner-error{background:#ff3b301a;color:var(--destructive)}.banner-success{background:var(--accent-soft);color:var(--accent-strong)}.text-hint{color:var(--hint);margin:0}.empty-state{text-align:center;color:var(--hint);padding:var(--space-5) var(--space-3)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;background:var(--section-bg);border-top:1px solid var(--separator);padding-bottom:var(--safe-bottom);z-index:20}.bottom-nav__inner{display:flex;width:100%;max-width:560px;height:var(--bottom-nav-height)}.bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--hint);font-size:.7rem;font-weight:600}.bottom-nav__item--active{color:var(--accent-strong)}.bottom-nav__icon{display:flex}
