.app-shell{min-height:100vh}.site-header{border-bottom:1px solid var(--color-border);background:#ffffffe6}.header-content{display:flex;align-items:center;gap:.75rem;width:min(1120px,calc(100% - 2rem));height:72px;margin:0 auto}.brand-name{font-size:1.15rem;font-weight:700;letter-spacing:-.02em}.header-nav{display:flex;gap:.25rem;margin-left:auto}.header-nav button,.back-button{padding:.55rem .75rem;border:0;border-radius:9px;color:var(--color-text-secondary);background:transparent;font-weight:650;cursor:pointer}.header-nav button:hover,.back-button:hover{color:var(--color-purple-600);background:var(--color-purple-50)}.header-nav button:focus-visible,.back-button:focus-visible{outline:3px solid var(--color-focus-medium);outline-offset:1px}.main-content{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:4rem 0}.title-block{margin-bottom:2rem}.loading-page{display:grid;min-height:100vh;place-items:center;padding:1rem}.loading-page p{margin:0;color:var(--color-text-muted);font-weight:650}.eyebrow{margin:0 0 .5rem;color:var(--color-purple-400);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1{margin:0;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.04em}.subtitle{margin:.75rem 0 0;color:var(--color-text-muted)}.week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.day-card{display:flex;min-height:210px;flex-direction:column;padding:1.5rem;border:1px solid var(--color-purple-300);border-radius:16px;background:var(--color-surface);box-shadow:0 8px 30px var(--color-shadow)}.day-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.day-card h2{margin:0;font-size:1.1rem;letter-spacing:-.01em}.day-pause-button{display:inline-flex;min-width:2rem;min-height:2rem;align-items:center;justify-content:center;padding:.35rem .5rem;border:1px solid transparent;border-radius:8px;color:var(--color-purple-400);background:transparent;font-size:.78rem;font-weight:700;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.day-pause-button:hover:not(:disabled){border-color:var(--color-purple-200);color:var(--color-purple-600);background:var(--color-purple-50)}.day-pause-button.paused{border-color:var(--color-purple-200);color:var(--color-purple-700);background:var(--color-purple-100)}.day-pause-button:disabled{cursor:wait;opacity:.65}.day-pause-button:focus-visible{outline:3px solid var(--color-focus-medium);outline-offset:2px}.day-card p{margin:1rem 0;color:var(--color-text-muted);font-size:.9rem}.add-class-button{width:100%;margin-top:.5rem;padding:.7rem 1rem;border:1px solid var(--color-purple-300);border-radius:10px;color:var(--color-purple-600);background:var(--color-surface-soft);font-weight:650;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}.add-class-button:hover:not(:disabled){border-color:var(--color-purple-300);background:var(--color-purple-50);transform:translateY(-1px)}.add-class-button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.add-class-button:disabled,.manual-class-action:disabled,.remove-class-button:disabled{cursor:wait;opacity:.55}.manual-class-action{display:flex;width:100%;align-items:center;gap:.55rem;margin-top:auto;padding:.55rem .65rem;border:1px dashed var(--color-border-strong);border-radius:8px;color:var(--color-text-muted);background:var(--color-surface-soft);font-size:.8rem;font-weight:650;text-align:left;cursor:pointer}.manual-class-action span{display:grid;width:20px;height:20px;place-items:center;border-radius:6px;color:var(--color-purple-600);background:var(--color-purple-100);font-size:1rem}.manual-class-action:hover:not(:disabled){color:var(--color-purple-600);border-color:var(--color-purple-300);background:var(--color-purple-50)}.manual-class-action:focus-visible{outline:3px solid var(--color-focus-medium);outline-offset:1px}.schedule-status{margin:0;padding:1rem;border:1px solid var(--color-border);border-radius:12px;color:var(--color-text-muted);background:var(--color-surface)}.schedule-status.error{margin-bottom:1rem;color:var(--color-danger);border-color:var(--color-danger-border);background:var(--color-danger-surface)}.schedule-class-list{display:grid;gap:.25rem;margin:1rem 0;padding:0;list-style:none}.schedule-class-row{display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto 1.75rem;gap:.55rem;align-items:center;min-height:34px;padding:.35rem .25rem .35rem .5rem;border-radius:8px;color:var(--color-text-muted);font-size:.8rem;cursor:default;transition:background-color .12s ease,opacity .12s ease,box-shadow .12s ease}.schedule-class-block{border-radius:8px;transition:background-color .12s ease,opacity .12s ease,box-shadow .12s ease}.schedule-class-block:hover{background:var(--color-purple-50)}.schedule-class-block.dragging{opacity:.45}.schedule-class-block.drop-target{background:var(--color-purple-100);box-shadow:inset 0 2px var(--color-purple-400)}.schedule-class-row:hover{background:transparent}.schedule-class-row.dragging{opacity:.45}.backup-class-row{display:grid;grid-template-columns:1rem minmax(0,1fr) auto 1.75rem;gap:.45rem;align-items:center;min-height:30px;margin:-.1rem .25rem .25rem 2rem;padding:.15rem 0 .3rem;color:var(--color-purple-400);font-size:.74rem}.backup-class-row.empty{display:none}.schedule-class-block.backup-action-revealed .backup-class-row.empty,.schedule-class-block:focus-within .backup-class-row.empty{display:grid}@media(hover:hover)and (pointer:fine){.schedule-class-block:hover .backup-class-row.empty{display:grid}}.backup-connector{align-self:start;padding-top:.3rem;color:var(--color-purple-400);font-size:.9rem}.backup-class-name{overflow:hidden;color:var(--color-text-muted);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.add-backup-button{justify-self:start;padding:.25rem 0;border:0;color:var(--color-purple-400);background:transparent;font:inherit;font-weight:650;cursor:pointer}.add-backup-button:hover:not(:disabled){color:var(--color-purple-600);text-decoration:underline}.add-backup-button:focus-visible{outline:3px solid var(--color-focus-medium);outline-offset:2px}.add-backup-button:disabled{cursor:wait;opacity:.55}.schedule-class-row.drop-target{background:var(--color-purple-100);box-shadow:inset 0 2px var(--color-purple-400)}.drag-handle{display:grid;width:24px;height:28px;place-items:center;padding:0;border:0;border-radius:6px;color:var(--color-icon-muted);background:transparent;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.drag-handle:hover:not(:disabled){color:var(--color-text-secondary);background:var(--color-purple-100)}.drag-handle:active:not(:disabled){cursor:grabbing}.schedule-class-row.dragging .drag-handle{cursor:grabbing}.drag-handle:disabled{cursor:wait;opacity:.5}.drag-handle svg{width:16px;height:18px;fill:currentColor}.drag-handle:focus-visible{outline:3px solid var(--color-focus-medium);outline-offset:1px}.schedule-class-name{overflow:hidden;color:var(--color-text);font-weight:650;text-overflow:ellipsis;white-space:nowrap}.remove-class-button{display:grid;width:28px;height:28px;place-items:center;padding:0;border:0;border-radius:7px;color:var(--color-icon-muted);background:transparent;cursor:pointer}.remove-class-button svg{width:15px;height:15px;fill:currentColor}.remove-class-button:hover:not(:disabled){color:var(--color-danger);background:var(--color-danger-surface)}.remove-class-button:focus-visible{outline:3px solid rgba(135,47,47,.18);outline-offset:1px}.day-saving-status{margin:0 0 .5rem;color:var(--color-text-muted);font-size:.75rem;text-align:right}.settings-view{max-width:720px}.booking-log-view{max-width:900px}.booking-log-empty{padding:2rem;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);box-shadow:0 8px 30px var(--color-shadow);text-align:center}.booking-log-empty h2,.booking-log-empty p{margin:0}.booking-log-empty p{margin-top:.6rem;color:var(--color-text-muted)}.booking-log-list{display:grid;gap:1rem}.booking-log-card{padding:1.5rem;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);box-shadow:0 8px 30px var(--color-shadow)}.booking-result-row{display:flex;align-items:center;gap:1rem}.booking-log-title{margin:0;padding:.75rem 1rem;border-radius:10px;font-size:clamp(1rem,3vw,1.2rem);line-height:1.35}.booking-log-title-successful{color:var(--color-success);background:#e4f3ea}.booking-log-title-partial{color:#6c5414;background:#fff3c4}.booking-log-title-failed{color:var(--color-danger);background:var(--color-danger-surface)}.booking-log-title-paused{color:var(--color-purple-700);background:var(--color-purple-100)}.booking-run-message{margin:1rem 0 0;color:var(--color-text-muted)}.booking-result-list{display:grid;gap:0;margin:1.25rem 0 0;padding:0 0 0 1.25rem;list-style:disc}.booking-result-list>li{padding:.85rem 0;border-bottom:1px solid var(--color-border)}.booking-result-list>li:last-child{padding-bottom:0;border-bottom:0}.booking-backup-result{margin-top:.45rem;padding-left:1.25rem;color:var(--color-text-muted);font-size:.85rem}.booking-failure-reason{margin:.4rem 0 0;padding-left:1.25rem;color:var(--color-danger);font-size:.82rem}.booking-backup-result .booking-failure-reason{padding-left:1rem}.booking-status{flex:0 0 auto;padding:.28rem .55rem;border-radius:999px;color:var(--color-text-secondary);background:var(--color-purple-100);font-size:.72rem;font-weight:700}.booking-status-successful,.booking-status-success,.booking-status-primary-added,.booking-status-backup-added{color:var(--color-success);background:#edf7f1}.booking-status-failed,.booking-status-failure,.booking-status-primary-failed-no-backup,.booking-status-primary-not-found-no-backup,.booking-status-backup-failed,.booking-status-backup-not-found{color:var(--color-danger);background:var(--color-danger-surface)}@media(max-width:600px){.booking-result-row{align-items:flex-start}}.back-button{margin:0 0 1.5rem -.75rem}.settings-panel{padding:clamp(1.5rem,5vw,2.5rem);border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);box-shadow:0 8px 30px var(--color-shadow)}.settings-form{display:grid;gap:.75rem}.settings-form label{margin-top:.35rem;font-size:.875rem;font-weight:650}.settings-form input{min-height:44px;padding:.7rem .8rem;border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text);background:var(--color-surface)}.settings-form input:focus{border-color:var(--color-purple-400);outline:3px solid var(--color-focus-soft)}.settings-form button{justify-self:start;margin-top:.75rem;padding:.75rem 1rem;border:1px solid var(--color-purple-600);border-radius:10px;color:var(--color-surface);background:var(--color-purple-600);font-weight:650;cursor:pointer}.settings-form button:hover{background:var(--color-purple-700)}.settings-form button:disabled,.settings-form input:disabled{cursor:wait;opacity:.7}.settings-form button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.settings-message{margin:.5rem 0 0;color:var(--color-text-muted);font-size:.9rem}.settings-message.success{color:var(--color-success)}.settings-message.error{color:var(--color-danger)}.class-dialog{width:min(calc(100% - 2rem),520px);max-height:min(720px,calc(100vh - 2rem));padding:0;border:0;border-radius:18px;color:var(--color-text);background:transparent;box-shadow:0 24px 70px var(--color-shadow-strong)}.class-dialog::backdrop{background:var(--color-backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-card{padding:clamp(1.25rem,5vw,2rem);background:var(--color-surface)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dialog-header h2{margin:0;font-size:clamp(1.35rem,5vw,1.75rem);letter-spacing:-.025em}.dialog-date{margin:.45rem 0 0;color:var(--color-text-muted);font-size:.95rem}.dialog-close{display:grid;flex:0 0 auto;width:38px;height:38px;place-items:center;padding:0;border:0;border-radius:50%;color:var(--color-text-secondary);background:var(--color-purple-50);font-size:1.5rem;line-height:1;cursor:pointer}.dialog-close:hover{background:var(--color-purple-100)}.dialog-close:focus-visible,.classes-table tbody tr:focus-visible,.classes-status button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.classes-content{margin-top:1.75rem}.classes-status{margin:0;padding:1.25rem;border-radius:12px;color:var(--color-text-muted);background:var(--color-surface-soft);text-align:center}.classes-status.error{color:var(--color-danger)}.classes-status.error p{margin:0}.classes-status button{margin-top:.75rem;padding:.5rem .75rem;border:1px solid var(--color-border-strong);border-radius:9px;color:var(--color-purple-600);background:var(--color-surface);font-weight:650;cursor:pointer}.classes-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:12px}.classes-table{width:100%;border-collapse:collapse;text-align:left}.classes-table th,.classes-table td{padding:.85rem .9rem;border-bottom:1px solid var(--color-border)}.classes-table th{color:var(--color-text-muted);background:var(--color-surface-soft);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.classes-table tbody tr{outline:2px solid transparent;outline-offset:-2px;cursor:pointer}.classes-table tbody tr:hover{background:var(--color-purple-50)}.classes-table tbody tr.selected{outline-color:var(--color-purple-400);background:var(--color-purple-100)}.classes-table tbody tr:last-child td{border-bottom:0}.classes-table td:first-child{min-width:10rem;font-weight:650}.row-selection{display:inline-block;width:1.25rem;color:var(--color-purple-600);font-weight:800}.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.dialog-actions>button{margin-left:auto;padding:.7rem 1rem;border:1px solid var(--color-purple-600);border-radius:10px;color:var(--color-surface);background:var(--color-purple-600);font-weight:650;cursor:pointer}.dialog-actions .backup-manual-button{margin-left:0;color:var(--color-purple-600);border-color:var(--color-purple-300);background:var(--color-surface-soft)}.backup-dialog-actions>button:last-child{margin-left:auto}.dialog-actions>button:hover:not(:disabled){background:var(--color-purple-700)}.dialog-actions>button:disabled{cursor:not-allowed;opacity:.45}.dialog-actions>button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.dialog-save-error{margin:0;color:var(--color-danger);font-size:.85rem}.manual-class-dialog{width:min(calc(100% - 2rem),440px)}.manual-class-fields{display:grid;gap:.65rem;margin-top:1.75rem}.manual-class-fields label{margin-top:.35rem;font-size:.875rem;font-weight:650}.manual-class-fields input{min-height:44px;padding:.7rem .8rem;border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text);background:var(--color-surface)}.manual-class-fields input:focus{border-color:var(--color-purple-400);outline:3px solid var(--color-focus-soft)}.manual-class-fields input[aria-invalid=true]{border-color:#b85a5a}.manual-class-suggestion{min-height:40px;margin-top:-.45rem;padding:.55rem .8rem;border:1px solid var(--color-border-strong);border-radius:8px;color:var(--color-purple-600);background:var(--color-purple-50);font:inherit;font-weight:650;text-align:left;cursor:pointer}.manual-class-suggestion:hover:not(:disabled){border-color:var(--color-purple-300);background:var(--color-purple-100)}.manual-class-suggestion:focus-visible{outline:3px solid var(--color-focus-medium);outline-offset:1px}.field-error{margin:-.25rem 0 0;color:var(--color-danger);font-size:.8rem}.manual-class-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.manual-class-actions button{padding:.65rem .9rem;border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text-secondary);background:var(--color-surface);font-weight:650;cursor:pointer}.manual-class-actions button[type=submit]{color:var(--color-surface);border-color:var(--color-purple-600);background:var(--color-purple-600)}.manual-class-actions button:hover:not(:disabled){background:var(--color-purple-50)}.manual-class-actions button[type=submit]:hover:not(:disabled){background:var(--color-purple-700)}.manual-class-actions button:disabled,.manual-class-fields input:disabled,.manual-class-suggestion:disabled{cursor:wait;opacity:.6}.manual-class-actions button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@media(max-width:600px){.main-content{padding:2.75rem 0}.day-card{min-height:180px}.brand-name{font-size:1rem}.header-nav button{padding-inline:.55rem;font-size:.85rem}.classes-table th,.classes-table td{padding:.75rem .7rem;font-size:.875rem}}:root{--color-bg: #f8f6fc;--color-surface: #ffffff;--color-surface-soft: #fbf9fc;--color-purple-50: #f6f2f8;--color-purple-100: #eee7f3;--color-purple-200: #ded2e6;--color-purple-300: #b9a6c7;--color-purple-400: #806991;--color-purple-600: #665276;--color-purple-700: #51415f;--color-text: #241f27;--color-text-secondary: #514a55;--color-text-muted: #746d78;--color-icon-muted: #928a98;--color-border: #e1dae5;--color-border-strong: #cfc2d8;--color-focus: rgba(102, 82, 118, .25);--color-focus-medium: rgba(102, 82, 118, .2);--color-focus-soft: rgba(102, 82, 118, .15);--color-shadow: rgba(65, 48, 76, .07);--color-shadow-strong: rgba(42, 31, 49, .28);--color-backdrop: rgba(31, 24, 36, .55);--color-success: #295e46;--color-danger: #872f2f;--color-danger-border: #e0b4b4;--color-danger-surface: #fff2f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}
