:root{--color-bg:#000;--color-surface:#0d0d0d;--color-surface-raised:#1a1a1a;--color-border:#343434;--color-border-strong:#5c5c5c;--color-text:#f6f6f6;--color-text-muted:#b8b8b8;--color-focus:#fff;--color-success:#6fcf97;--color-danger:#ff8a80;--color-warning:#f5c451;--color-info:#8ab4ff;--font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display-size:2.6rem;--font-title-size:1.7rem;--font-headline-size:1.2rem;--font-body-size:1rem;--font-callout-size:.98rem;--font-caption-size:.85rem;--font-footnote-size:.78rem;--radius-xs:4px;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-full:999px;--border-width:1px;--border-width-strong:2px;--shadow-none:none;--shadow-raised:0 4px 16px #0000003d;--shadow-overlay:0 8px 32px #0006;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:40px;--space-7:48px;--space-8:64px;--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--easing-standard:cubic-bezier(.4, 0, .2, 1);--easing-emphasized:cubic-bezier(.2, 0, 0, 1);--touch-min:44px;--touch-comfortable:48px;--touch-fab:56px;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit}h1,h2,p{overflow-wrap:anywhere}h1{font-size:var(--font-display-size);margin:0;line-height:1.1}#root{min-height:100svh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media (prefers-color-scheme:light){:root{--color-bg:#f7f7f7;--color-surface:#fff;--color-surface-raised:#fff;--color-border:#d9d9d9;--color-border-strong:#adadad;--color-text:#111;--color-text-muted:#666;--color-focus:#000;--color-success:#1a7f37;--color-danger:#c62828;--color-warning:#8a6100;--color-info:#1f5fd1}}.app-shell{background:var(--color-bg);min-height:100svh;color:var(--color-text);flex-direction:column;display:flex}.app-header{background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);padding:calc(var(--space-5) + env(safe-area-inset-top)) var(--space-3) var(--space-3);gap:var(--space-3);display:grid}.app-header-top{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.app-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.header-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.icon-button{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;height:var(--touch-min);width:var(--touch-min);justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.icon-button svg{width:28px;height:28px}.icon-button[aria-pressed=true]{background:var(--color-text);color:var(--color-surface)}.icon-button-success{color:var(--color-success)}.icon-button-warning{color:var(--color-warning)}.icon-button-danger{color:var(--color-danger)}.eyebrow{color:var(--color-text-muted);font-size:var(--font-footnote-size);letter-spacing:.08em;margin:0 0 var(--space-1);text-transform:uppercase;font-weight:700}.app-main{padding:var(--space-5) var(--space-3) calc(var(--space-6) + env(safe-area-inset-bottom));flex:1}.page{gap:var(--space-3);display:grid}.page-header{gap:var(--space-2);display:grid}.page-header-icon{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text);height:var(--touch-fab);margin-bottom:var(--space-1);width:var(--touch-fab);justify-content:center;align-items:center;display:inline-flex}.page-title{font-size:var(--font-title-size);margin:0}.page-copy{color:var(--color-text-muted);font-size:var(--font-callout-size);margin:0}.empty-state,.info-panel,.form-panel,.balance-panel,.notice-panel,.account-balance-card,.account-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.empty-state{align-content:center;gap:var(--space-2);text-align:center;justify-items:center;min-height:160px;display:grid}.empty-state-icon{color:var(--color-text-muted)}.empty-state-icon.empty-state-icon-error{color:var(--color-danger)}.empty-title{font-size:var(--font-headline-size);margin:0;font-weight:700}.empty-copy{color:var(--color-text-muted);margin:0}.button{border:var(--border-width) solid var(--color-text);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-3);justify-content:center;font-weight:750;text-decoration:none;display:inline-flex}.button,.icon-button,.child-card,.booking-card,.back-link,.account-card,.transaction-row,.selection-card,.chip,.fab,.fab-secondary,.list-row{transition:background-color var(--duration-base) var(--easing-standard), border-color var(--duration-base) var(--easing-standard), color var(--duration-base) var(--easing-standard), transform var(--duration-fast) var(--easing-standard)}.button:active,.icon-button:active,.child-card:active,.booking-card:active,.back-link:active,.account-card:active,.transaction-row:active,.selection-card:active,.chip:active,.fab:active,.fab-secondary:active,.list-row:active{transform:scale(.99)}.button-primary{background:var(--color-text);color:var(--color-surface)}.button-secondary,.button-danger{background:var(--color-surface);color:var(--color-text)}.button-danger{border-color:var(--color-danger);color:var(--color-danger);width:100%}.full-width-button{margin-top:var(--space-3);width:100%}.button:focus-visible,.text-link:focus-visible,.icon-button:focus-visible,.child-card:focus-visible,.booking-card:focus-visible,.back-link:focus-visible,.account-card:focus-visible,.transaction-row:focus-visible,.selection-card:focus-visible,.chip:focus-visible,.fab:focus-visible,.fab-secondary:focus-visible,.list-row:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.text-link{color:var(--color-text);font-weight:700;text-decoration:none}.notice-panel{margin:0;font-weight:700}.loading-message{min-height:var(--touch-min)}.skeleton{background:var(--color-border);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton-row{border-radius:var(--radius-md);min-height:58px}.skeleton:after{animation:skeleton-pulse var(--duration-slow) var(--easing-standard) infinite;content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);position:absolute;inset:0}@keyframes skeleton-pulse{0%{transform:translate(-100%)}to{transform:translate(100%)}}.card-list{gap:var(--space-3);display:grid}.child-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);align-items:center;gap:var(--space-3);min-height:58px;padding:var(--space-3);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.card-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1.05rem;font-weight:750;display:block;overflow:hidden}.card-balance{text-align:right;white-space:nowrap;justify-self:end;font-size:1.05rem;font-weight:800;line-height:1}.balance-panel{gap:var(--space-2);display:grid}.balance-panel strong{font-size:var(--font-display-size);line-height:1}.panel-label{color:var(--color-text-muted);font-weight:700}.action-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.page-section{gap:var(--space-2);display:grid}.section-title{font-size:var(--font-headline-size);margin:0}.account-header{gap:var(--space-2);display:grid}.account-header-row{align-items:center;gap:var(--space-3);justify-content:space-between;display:flex}.back-link{color:var(--color-text-muted);align-items:center;gap:var(--space-1);min-height:var(--touch-min);font-weight:600;text-decoration:none;display:inline-flex}.account-title{font-size:var(--font-title-size);margin:0;line-height:1.15}.account-balance-card{gap:var(--space-3);display:grid}.account-balance-row{align-items:baseline;gap:var(--space-3);justify-content:space-between;display:flex}.account-balance-amount{text-align:right;white-space:nowrap;font-size:2rem;font-weight:800;line-height:1}.account-balance-actions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.account-balance-button{min-height:var(--touch-comfortable)}.account-card{color:var(--color-text);gap:var(--space-2);text-decoration:none;display:grid}.account-card-header{align-items:flex-start;gap:var(--space-3);justify-content:space-between;display:flex}.account-card-header h3{margin:0;font-size:1.1rem}.account-card-heading{gap:var(--space-1);min-width:0;display:grid}.account-card-subtext{color:var(--color-text-muted);font-size:.9rem}.account-card-subtext-icon{align-items:center;gap:var(--space-1);display:inline-flex}.account-card-amount{text-align:right;white-space:nowrap;font-size:1.3rem;font-weight:800}.account-card-count{color:var(--color-text-muted);white-space:nowrap;font-weight:700}.account-card-footer{border-top:var(--border-width) solid var(--color-border);color:var(--color-text-muted);padding-top:var(--space-2);justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.account-card-footer-plain{border-top:0;padding-top:0}.account-card-value{color:var(--color-text);align-items:center;gap:var(--space-1);font-weight:700;display:inline-flex}.transaction-list{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);display:grid;overflow:hidden}.transaction-row{color:var(--color-text);align-items:center;gap:var(--space-2);min-height:84px;padding:var(--space-3);text-decoration:none;display:flex}.transaction-row+.transaction-row{border-top:var(--border-width) solid var(--color-border)}.transaction-icon{background:var(--color-border);border-radius:var(--radius-full);color:var(--color-text);height:var(--touch-min);width:var(--touch-min);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.transaction-icon-positive{background:color-mix(in srgb, var(--color-success) 20%, var(--color-border));color:var(--color-success)}.transaction-icon-allowance{background:color-mix(in srgb, var(--color-info) 20%, var(--color-border));color:var(--color-info)}.transaction-info{gap:var(--space-1);flex:0 118px;min-width:56px;display:grid}.transaction-date{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.transaction-title{text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.transaction-amounts{gap:var(--space-1);text-align:right;flex:1;min-width:0;display:grid}.transaction-line{align-items:baseline;gap:var(--space-2);justify-content:flex-end;width:100%;min-width:0;display:flex}.transaction-purpose{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.85rem;overflow:hidden}.transaction-amount{white-space:nowrap;flex-shrink:0;font-size:1.05rem;font-weight:800}.transaction-amount-positive{color:var(--color-success)}.transaction-amount-allowance{color:var(--color-info)}.transaction-balance{color:var(--color-text-muted);white-space:nowrap;font-size:.82rem}.transaction-chevron{color:var(--color-text-muted);flex-shrink:0;display:inline-flex}.transaction-footnote{color:var(--color-text-muted);text-align:center;margin:0;font-size:.82rem}.form-panel{gap:var(--space-3);display:grid}.compact-form{border:0;padding:0}.field{gap:var(--space-2);display:grid}.field span{color:var(--color-text-muted);font-weight:700}.field-with-icon{display:block;position:relative}.field-icon{color:var(--color-text-muted);left:var(--space-3);pointer-events:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.field-with-icon input,.field-with-icon select{width:100%}.field input,.field select{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);min-height:var(--touch-comfortable);padding:0 var(--space-3);line-height:1.5}.field .field-with-icon input,.field .field-with-icon select{padding-left:calc(var(--space-3) * 2 + 22px)}.field input:focus,.field select:focus{border-color:var(--color-text);outline:none}.field textarea{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;min-height:calc(var(--touch-comfortable) * 2);padding:var(--space-2) var(--space-3);resize:vertical}.field textarea:focus{border-color:var(--color-text);outline:none}.field-select{display:block;position:relative}.field-select select{appearance:none;padding-right:calc(var(--space-3) * 2 + 16px);width:100%}.field-select-icon{color:var(--color-text-muted);pointer-events:none;right:var(--space-3);justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.field input[type=date]{appearance:none}.field input[type=date]::-webkit-date-and-time-value{text-align:left}.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--color-danger);border-width:var(--border-width-strong)}.field-error{color:var(--color-danger);font-size:var(--font-caption-size);align-items:center;gap:var(--space-1);margin:0;display:flex}.form-error{border:var(--border-width) solid var(--color-danger);border-radius:var(--radius-sm);color:var(--color-danger);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin:0;display:flex}.booking-list{gap:var(--space-3);display:grid}.booking-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);gap:var(--space-2);padding:var(--space-3);text-decoration:none;display:grid}.booking-date,.booking-balance{color:var(--color-text-muted);font-size:.92rem;font-weight:650}.booking-purpose{font-size:1.05rem;font-weight:750}.booking-amount{font-size:1.7rem;font-weight:800;line-height:1.05}.compact-empty{min-height:auto}.info-list{gap:0;margin:0;display:grid}.info-row{gap:var(--space-2);padding:var(--space-3) 0;grid-template-columns:1fr auto;display:grid}.info-row+.info-row{border-top:var(--border-width) solid var(--color-border)}.info-row dt{color:var(--color-text-muted);font-weight:650}.info-row dd{margin:0;font-weight:750}.list-row{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-3);text-align:left;width:100%;text-decoration:none;display:flex}.list-row-icon{background:var(--color-border);border-radius:var(--radius-full);color:var(--color-text);height:var(--touch-min);width:var(--touch-min);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.list-row-text{gap:var(--space-1);flex:auto;min-width:0;display:grid}.list-row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.list-row-subtitle{color:var(--color-text-muted);font-size:var(--font-caption-size);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-row-subtitle-warning{color:var(--color-warning);white-space:normal}.list-row-chevron{color:var(--color-text-muted);flex-shrink:0;display:inline-flex}.list-row-danger .list-row-icon{background:color-mix(in srgb, var(--color-danger) 20%, transparent);color:var(--color-danger)}.list-row-danger .list-row-title{color:var(--color-danger)}.status-badge{border-radius:var(--radius-full);font-size:var(--font-caption-size);align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-weight:700;display:inline-flex}.status-badge svg{flex-shrink:0;width:16px;height:16px}.status-badge-neutral{background:color-mix(in srgb, var(--color-text-muted) 16%, transparent);color:var(--color-text-muted)}.status-badge-success{background:color-mix(in srgb, var(--color-success) 20%, transparent);color:var(--color-success)}.status-badge-warning{background:color-mix(in srgb, var(--color-warning) 22%, transparent);color:var(--color-warning)}.status-badge-danger{background:color-mix(in srgb, var(--color-danger) 20%, transparent);color:var(--color-danger)}.status-badge-icon-spin svg{animation:status-badge-spin var(--duration-slow) linear infinite}@keyframes status-badge-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.choice-group{gap:var(--space-2);display:grid}.selection-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;align-items:center;gap:var(--space-3);min-height:var(--touch-comfortable);padding:var(--space-3);text-align:left;width:100%;display:flex}.selection-card[aria-checked=true],.selection-card[aria-pressed=true]{border-color:var(--color-border-strong);border-width:var(--border-width-strong)}.selection-card-icon{color:var(--color-text-muted);flex-shrink:0}.selection-card[aria-checked=true] .selection-card-icon,.selection-card[aria-pressed=true] .selection-card-icon{color:var(--color-text)}.selection-card-text{gap:var(--space-1);flex:auto;min-width:0;display:grid}.selection-card-title{font-weight:750}.selection-card-subtitle{color:var(--color-text-muted);font-size:var(--font-caption-size)}.selection-card-check{color:var(--color-text);visibility:hidden;flex-shrink:0}.selection-card[aria-checked=true] .selection-card-check,.selection-card[aria-pressed=true] .selection-card-check{visibility:visible}.chip-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text);cursor:pointer;align-items:center;gap:var(--space-1);min-height:var(--touch-min);padding:0 var(--space-3);display:inline-flex}.chip[aria-pressed=true]{background:var(--color-text);border-color:var(--color-text);color:var(--color-surface)}.chip-check{visibility:hidden}.chip[aria-pressed=true] .chip-check{visibility:visible}.fab{background:var(--color-text);border-radius:var(--radius-full);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));box-shadow:var(--shadow-raised);color:var(--color-surface);cursor:pointer;height:var(--touch-fab);right:var(--space-4);width:var(--touch-fab);z-index:5;border:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:fixed}.fab-inline{position:static;bottom:auto;right:auto}.fab-group{bottom:calc(var(--space-4) + env(safe-area-inset-bottom));align-items:center;gap:var(--space-3);right:var(--space-4);z-index:5;display:flex;position:fixed}.fab-secondary{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-raised);color:var(--color-text);cursor:pointer;height:var(--touch-comfortable);width:var(--touch-comfortable);justify-content:center;align-items:center;display:inline-flex}.bottom-sheet-backdrop{z-index:10;background:#00000080;align-items:end;padding:0;display:grid;position:fixed;inset:0}.bottom-sheet{background:var(--color-surface-raised);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-raised);gap:var(--space-2);overscroll-behavior:contain;max-width:480px;max-height:85svh;padding:var(--space-2) var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));width:100%;margin:0 auto;display:grid;overflow-y:auto}.sheet-handle{background:var(--color-border);border-radius:var(--radius-full);height:4px;margin:var(--space-2) auto;width:36px}.sheet-header{align-items:start;gap:var(--space-2);grid-template-columns:1fr auto;display:grid}.sheet-title{font-size:var(--font-headline-size);margin:0 0 var(--space-1)}.sheet-option{border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;align-items:center;gap:var(--space-3);min-height:var(--touch-comfortable);padding:0 var(--space-2);text-align:left;background:0 0;border:0;width:100%;text-decoration:none;display:flex}.sheet-option:hover,.sheet-option:focus-visible{background:color-mix(in srgb, var(--color-text) 8%, transparent)}.sheet-option-danger{color:var(--color-danger)}.stepper{gap:var(--space-2);margin:0;padding:0;list-style:none;display:flex}.stepper-step{background:var(--color-border);border-radius:var(--radius-full);flex:1;height:4px}.stepper-step-active,.stepper-step-done{background:var(--color-text)}.qr-card{border-radius:var(--radius-md);align-items:center;gap:var(--space-2);padding:var(--space-4);background:#fff;justify-items:center;display:grid}.qr-card img{border-radius:var(--radius-sm);width:100%;max-width:220px;height:auto}.qr-card-countdown{color:#111;font-size:var(--font-caption-size);font-weight:700}.qr-card-code{align-items:center;gap:var(--space-2);justify-content:center;display:flex}.qr-card-code code{color:var(--color-text);font-size:var(--font-body-size);overflow-wrap:anywhere;min-width:0}.modal-backdrop{padding:var(--space-3);z-index:10;background:#000000a6;align-items:end;display:grid;position:fixed;inset:0}.modal-panel{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-raised);gap:var(--space-3);max-width:480px;padding:var(--space-3);width:100%;margin:0 auto;display:grid}.sync-step-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.sync-step{color:var(--color-text-muted);font-weight:650}.sync-step-active{color:var(--color-text);font-weight:800}@media (width<=380px){.action-grid,.account-balance-actions{grid-template-columns:1fr}.balance-panel strong{font-size:1.8rem}.account-balance-amount{font-size:1.6rem}}@media (width>=720px){.app-shell{border-left:var(--border-width) solid var(--color-border);border-right:var(--border-width) solid var(--color-border);max-width:520px;margin:0 auto}.app-header,.app-main{padding-left:var(--space-4);padding-right:var(--space-4)}.fab{right:calc((100% - 520px) / 2 + var(--space-4))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.skeleton:after,.status-badge-icon-spin svg{animation:none!important}}@media (prefers-color-scheme:light){.modal-backdrop{background:#00000059}.bottom-sheet-backdrop{background:#00000040}}.home-actions{gap:var(--space-3);display:grid}.home-action-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);align-items:center;gap:var(--space-3);min-height:72px;padding:var(--space-4);grid-template-columns:auto minmax(0,1fr) auto;text-decoration:none;display:grid}.home-action-icon{color:var(--color-info);justify-content:center;align-items:center;display:flex}.home-action-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.home-action-title{font-size:1.15rem;font-weight:750}.home-action-subtitle{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.home-action-chevron{color:var(--color-text-muted)}.week-days-row{gap:var(--space-3);flex-direction:column;display:flex}.today-empty-state{color:var(--color-text-muted);padding:var(--space-4) var(--space-1);text-align:center}.event-list{margin:0;padding:0;list-style:none}.week-sheet-time{color:var(--color-text-muted);margin:0 0 var(--space-2)}.week-sheet-location{color:var(--color-info);margin-bottom:var(--space-2);display:inline-block}.week-sheet-description{white-space:pre-line}.timetable-view{gap:var(--space-3);margin-top:var(--space-3);display:grid}.timetable-family-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-2);padding:var(--space-3);display:grid}.timetable-family-card-title{font-size:var(--font-headline-size);margin:0}.timetable-subject-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(64px,1fr));display:grid}.timetable-subject-button{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;min-height:var(--touch-comfortable);padding:var(--space-2);font-weight:750}.timetable-subject-button:active{transform:scale(.97)}.timetable-subject-button-add{color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.timetable-period-list{gap:var(--space-1);display:grid}.timetable-period-row{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-3);text-align:left;width:100%;display:flex}.timetable-period-number{color:var(--color-text-muted)}.timetable-period-remove{color:var(--color-text-muted);margin-left:auto}
