@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Roboto+Flex:opsz,wght@8..144,300;400;500;600;700&display=swap";:root{--md-sys-color-primary:#0b57d0;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#d3e3fd;--md-sys-color-on-primary-container:#041e49;--md-sys-color-primary-hover:#0842a0;--md-sys-color-secondary:#00639b;--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:#c2e7ff;--md-sys-color-on-secondary-container:#001d35;--md-sys-color-tertiary:#6b5778;--md-sys-color-on-tertiary:#fff;--md-sys-color-tertiary-container:#f2daff;--md-sys-color-on-tertiary-container:#251431;--md-sys-color-surface:#fdfcff;--md-sys-color-on-surface:#1a1c1e;--md-sys-color-on-surface-variant:#43474e;--md-sys-color-outline:#74777f;--md-sys-color-outline-variant:#c4c7d0;--md-sys-color-surface-container-lowest:#fff;--md-sys-color-surface-container-low:#f7f9fc;--md-sys-color-surface-container:#f0f4f9;--md-sys-color-surface-container-high:#e9eef6;--md-sys-color-surface-container-highest:#e1e8f2;--md-sys-color-error:#ba1a1a;--md-sys-color-error-container:#ffdad6;--md-sys-color-on-error:#fff;--md-sys-color-on-error-container:#410002;--md-sys-color-success:#146c2e;--md-sys-color-success-container:#c4eed0;--md-sys-color-on-success-container:#07210e;--md-sys-color-warning:#8d4f00;--md-sys-color-warning-container:#ffe0b3;--md-shape-corner-none:0px;--md-shape-corner-xs:4px;--md-shape-corner-sm:8px;--md-shape-corner-md:12px;--md-shape-corner-lg:16px;--md-shape-corner-xl:24px;--md-shape-corner-xxl:28px;--md-shape-corner-full:9999px;--md-sys-elevation-1:0px 1px 3px 1px #00000014, 0px 1px 2px 0px #0000000a;--md-sys-elevation-2:0px 2px 6px 2px #00000014, 0px 1px 2px 0px #0000000a;--md-sys-elevation-3:0px 4px 12px 3px #00000014, 0px 1px 3px 0px #0000000d;--md-sys-elevation-4:0px 6px 16px 4px #0000001a, 0px 2px 4px 0px #0000000f;--md-motion-spring:cubic-bezier(.34, 1.4, .64, 1);--md-motion-standard:cubic-bezier(.2, 0, 0, 1);--md-motion-duration-fast:.15s;--md-motion-duration-medium:.25s;--md-motion-duration-slow:.4s;--font-family-display:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-body:"Roboto Flex", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-body);background-color:var(--md-sys-color-surface-container-low);color:var(--md-sys-color-on-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;line-height:1.5;display:flex}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);color:var(--md-sys-color-on-surface);font-weight:700;line-height:1.25}button{font-family:var(--font-family-display);cursor:pointer;background:0 0;border:none;outline:none}input,textarea,select{font-family:var(--font-family-body);font-size:1rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline-variant);border-radius:var(--md-shape-corner-full)}::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-outline)}.m3-btn{border-radius:var(--md-shape-corner-full);transition:all var(--md-motion-duration-fast) var(--md-motion-standard);-webkit-user-select:none;user-select:none;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.m3-btn:active{transform:scale(.97)}.m3-btn-sm{padding:8px 16px;font-size:.875rem}.m3-btn-lg{padding:16px 32px;font-size:1.0625rem}.m3-btn-filled{background-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);box-shadow:var(--md-sys-elevation-1)}.m3-btn-filled:hover{background-color:var(--md-sys-color-primary-hover);box-shadow:var(--md-sys-elevation-2)}.m3-btn-filled:disabled{color:#1a1c1e61;box-shadow:none;cursor:not-allowed;background-color:#1a1c1e1f;transform:none}.m3-btn-tonal{background-color:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.m3-btn-tonal:hover{box-shadow:var(--md-sys-elevation-1);background-color:#b0d8f7}.m3-btn-outlined{border:1px solid var(--md-sys-color-outline-variant);color:var(--md-sys-color-primary);background-color:#0000}.m3-btn-outlined:hover{border-color:var(--md-sys-color-primary);background-color:#0b57d014}.m3-btn-text{color:var(--md-sys-color-primary);background-color:#0000;padding:8px 16px}.m3-btn-text:hover{background-color:#0b57d014}.m3-fab{border-radius:var(--md-shape-corner-xl);background-color:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);box-shadow:var(--md-sys-elevation-3);transition:all var(--md-motion-duration-medium) var(--md-motion-spring);justify-content:center;align-items:center;gap:12px;padding:16px 24px;font-weight:700;display:inline-flex}.m3-fab:hover{box-shadow:var(--md-sys-elevation-4);background-color:#c4d8fa;transform:scale(1.03)}.m3-fab:active{transform:scale(.96)}.m3-card{background-color:var(--md-sys-color-surface-container-lowest);border-radius:var(--md-shape-corner-xxl);transition:all var(--md-motion-duration-medium) var(--md-motion-standard);border:1px solid #0000000a;padding:24px}.m3-card-elevated{background-color:var(--md-sys-color-surface-container-lowest);border-radius:var(--md-shape-corner-xxl);box-shadow:var(--md-sys-elevation-2);padding:28px}.m3-card-filled{background-color:var(--md-sys-color-surface-container);border-radius:var(--md-shape-corner-xxl);padding:24px}.m3-slot-pill{border-radius:var(--md-shape-corner-lg);background-color:var(--md-sys-color-surface-container-lowest);border:1.5px solid var(--md-sys-color-outline-variant);width:100%;color:var(--md-sys-color-on-surface);transition:all var(--md-motion-duration-medium) var(--md-motion-spring);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;justify-content:space-between;align-items:center;min-height:48px;padding:12px 14px;display:flex}.m3-slot-pill:hover{border-color:var(--md-sys-color-primary);background-color:var(--md-sys-color-surface-container-low);box-shadow:var(--md-sys-elevation-1);transform:translateY(-2px)}.m3-slot-pill:active{transform:scale(.97)}.m3-slot-pill.is-selected{background-color:var(--md-sys-color-primary);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);box-shadow:var(--md-sys-elevation-2);transform:translateY(-2px)scale(1.01)}.m3-slot-pill.is-selected .m3-slot-time{color:var(--md-sys-color-on-primary);font-weight:700}.m3-slot-pill.is-selected .m3-slot-badge{color:#fff;background-color:#ffffff40}.m3-slot-pill.is-finalized{background-color:var(--md-sys-color-success);border-color:var(--md-sys-color-success);color:#fff}.m3-slot-time{letter-spacing:-.01em;font-size:.9375rem;font-weight:700}.m3-slot-badge{border-radius:var(--md-shape-corner-full);background-color:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface-variant);transition:all var(--md-motion-duration-fast) var(--md-motion-standard);align-items:center;gap:4px;padding:2px 8px;font-size:.6875rem;font-weight:600;display:inline-flex}.m3-chip{border-radius:var(--md-shape-corner-md);border:1px solid var(--md-sys-color-outline-variant);background-color:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);cursor:pointer;transition:all var(--md-motion-duration-fast) var(--md-motion-standard);align-items:center;gap:6px;padding:8px 14px;font-size:.875rem;font-weight:500;display:inline-flex}.m3-chip:hover{background-color:var(--md-sys-color-surface-container-high)}.m3-field-group{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.m3-field-label{color:var(--md-sys-color-on-surface-variant);align-items:center;gap:4px;font-size:.875rem;font-weight:600;display:flex}.m3-field-label .required-dot{color:var(--md-sys-color-error)}.m3-input,.m3-textarea,.m3-select{border-radius:var(--md-shape-corner-md);border:1.5px solid var(--md-sys-color-outline-variant);background-color:var(--md-sys-color-surface-container-lowest);width:100%;color:var(--md-sys-color-on-surface);transition:all var(--md-motion-duration-fast) var(--md-motion-standard);outline:none;padding:12px 14px;font-size:.95rem}.m3-input::placeholder,.m3-textarea::placeholder{color:var(--md-sys-color-outline);opacity:.75;transition:opacity var(--md-motion-duration-fast) var(--md-motion-standard)}.m3-input:focus,.m3-textarea:focus,.m3-select:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 3px var(--md-sys-color-primary-container)}.m3-input:focus::placeholder,.m3-textarea:focus::placeholder{opacity:0}.m3-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background-color:#00000073;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.m3-modal-dialog{background-color:var(--md-sys-color-surface-container-lowest);border-radius:var(--md-shape-corner-xxl);box-shadow:var(--md-sys-elevation-4);width:100%;max-width:520px;max-height:90vh;animation:slideUp .25s var(--md-motion-spring);padding:32px;overflow-y:auto}.m3-bottom-bar{background-color:var(--md-sys-color-on-surface);color:#fff;border-radius:var(--md-shape-corner-full);box-shadow:var(--md-sys-elevation-4);z-index:100;animation:springPop .3s var(--md-motion-spring);align-items:center;gap:16px;width:calc(100% - 32px);max-width:600px;padding:12px 24px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@media (width<=640px){.m3-modal-backdrop{align-items:flex-end;padding:0}.m3-modal-dialog{max-width:100%;padding:24px 20px calc(24px + env(safe-area-inset-bottom));max-height:85vh;animation:sheetSlideUp .28s var(--md-motion-spring);border-radius:24px 24px 0 0}.m3-bottom-bar{bottom:max(16px, env(safe-area-inset-bottom));gap:10px;width:calc(100% - 20px);padding:10px 16px}.m3-card,.m3-card-elevated,.m3-card-filled{border-radius:20px;padding:20px 16px}.schedule-week-grid{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.schedule-week-grid>div{scroll-snap-align:start;min-width:120px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sheetSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes springPop{0%{opacity:0;transform:translate(-50%)translateY(30px)scale(.9)}70%{transform:translate(-50%)translateY(-4px)scale(1.02)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.pulse-badge{animation:2s infinite pulse}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}
