.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:1.5rem;padding:.75rem 1.25rem;display:flex}.app-brand{font-size:1rem;font-weight:700}.app-nav{flex:1;gap:1rem;display:flex}.app-nav a{color:var(--text-muted);border-bottom:2px solid #0000;padding:.35rem 0;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .12s}.app-nav a:hover{color:var(--text)}.app-nav a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.app-header-actions{align-items:center;gap:.75rem;display:flex}.app-content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:1.5rem}:root{--text:#23292b;--text-muted:#66766f;--bg:#f4f6f5;--surface:#fff;--border:#dde3e0;--accent:#2b6f6b;--accent-contrast:#fff;--accent-soft:color-mix(in srgb, var(--accent) 10%, transparent);--danger:#b3413a;--danger-soft:color-mix(in srgb, var(--danger) 10%, transparent);--shadow:#14221e12;--shadow-strong:#14221e29;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#e7edea;--text-muted:#98a39d;--bg:#0f1614;--surface:#16201d;--border:#2a3733;--accent:#5ab8b0;--accent-contrast:#0f1614;--accent-soft:color-mix(in srgb, var(--accent) 14%, transparent);--danger:#e0685d;--danger-soft:color-mix(in srgb, var(--danger) 14%, transparent);--shadow:#0000004d;--shadow-strong:#00000073}}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}#root{min-height:100vh}h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;margin:0 0 .5rem;font-weight:700}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{letter-spacing:-.005em;font-size:1rem;font-weight:650}p{line-height:1.5}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .7rem;font-size:.88rem}thead tr{background:var(--bg)}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}tbody tr{transition:background-color .1s}tbody tr:hover{background:var(--accent-soft)}button{font:inherit}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:7px;padding:.45rem .8rem;font-weight:500;transition:border-color .12s,box-shadow .12s,transform 50ms,opacity .12s}.btn:hover{border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);box-shadow:0 1px 2px var(--shadow);font-weight:600}.btn-primary:hover{box-shadow:0 2px 6px var(--shadow-strong)}.btn-danger{color:var(--danger)}.btn-danger:hover{border-color:var(--danger)}.error-banner{color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger);border-radius:7px;margin-bottom:1rem;padding:.55rem .8rem;font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 3px var(--shadow);border-radius:10px;margin-bottom:1rem;padding:1.15rem}.field{flex-direction:column;gap:.4rem;margin-bottom:.9rem;font-size:.85rem;display:flex}.field label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);flex-direction:column;gap:.4rem;font-size:.72rem;font-weight:600;display:flex}.field label:has(input[type=checkbox]){text-transform:none;letter-spacing:normal;color:var(--text);font-size:.85rem;font-weight:400}.field input,.field select,.field textarea{font:inherit;text-transform:none;letter-spacing:normal;color:var(--text);border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:.5rem .65rem;font-size:.9rem;font-weight:400;transition:border-color .12s,box-shadow .12s}.field input:hover,.field select:hover,.field textarea:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field input:disabled{color:var(--text-muted);background:var(--bg);cursor:not-allowed}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.row-actions{gap:.4rem;display:flex}.wizard-steps{border-bottom:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;font-size:.78rem;font-weight:500;display:flex}.wizard-step.active{color:var(--accent);font-weight:700}.wizard-options{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.wizard-date-nav{justify-content:center;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.wizard-date-grid{width:100%;max-width:26rem;margin:0 auto .75rem}.wizard-date-grid th{text-align:center;padding:.25rem}.wizard-date-grid td{text-align:center;padding:.15rem}.wizard-date-cell{width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:default;background:0 0;border:1px solid #0000;border-radius:7px;transition:border-color .12s,color .12s}.wizard-date-cell.available{border-color:var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-weight:600}.wizard-date-cell.available:hover{border-color:var(--accent);color:var(--accent)}.signin-wrap{text-align:center;justify-content:center;align-items:center;min-height:100vh;display:flex}.toast-stack{z-index:1000;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.toast{background:var(--accent);color:var(--accent-contrast);box-shadow:0 4px 12px var(--shadow-strong);border-radius:7px;padding:.6rem .9rem;font-size:.85rem;font-weight:600;animation:.15s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.modal-overlay{z-index:900;background:#0f161473;justify-content:center;align-items:flex-start;padding:4vh 1rem;animation:.12s ease-out overlay-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:32rem;box-shadow:0 12px 32px var(--shadow-strong);border-radius:12px;padding:1.25rem;animation:.15s ease-out modal-in}.modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:.2rem .4rem;font-size:1.1rem;line-height:1;transition:color .12s,background-color .12s}.modal-close:hover{color:var(--text);background:var(--accent-soft)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(.5rem)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal-card{animation:none}}.week-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.week-nav{align-items:center;gap:.6rem;display:flex}.week-nav strong{text-align:center;min-width:11rem;font-weight:600}.staff-legend{color:var(--text-muted);flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;font-size:.78rem;display:flex}.staff-legend-chip{align-items:center;gap:.3rem;display:inline-flex}.staff-legend-dot{border-radius:50%;flex-shrink:0;width:.6rem;height:.6rem}.week-grid-wrap{border:1px solid var(--border);background:var(--surface);max-height:70vh;box-shadow:0 1px 3px var(--shadow);border-radius:10px;overflow:auto}.week-grid{grid-template-columns:3.5rem repeat(7,minmax(7rem,1fr));min-width:54rem;display:grid}.week-grid-corner,.week-day-header{background:var(--surface);z-index:3;border-bottom:1px solid var(--border);text-align:center;padding:.5rem .4rem;position:sticky;top:0}.week-grid-corner{z-index:4;border-right:1px solid var(--border)}.week-day-header{border-left:1px solid var(--border)}.week-day-name{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.72rem}.week-day-number{font-size:1rem;font-weight:600}.week-day-header.today .week-day-number{color:var(--accent)}.week-time-gutter{border-right:1px solid var(--border);position:relative}.week-time-label{color:var(--text-muted);font-size:.7rem;position:absolute;top:-.55rem;right:.4rem}.week-day-column{border-left:1px solid var(--border);position:relative}.week-hour-row{border-bottom:1px solid var(--border);cursor:pointer;height:3rem;transition:background-color .1s}.week-hour-row:hover{background:var(--accent-soft)}.week-now-line{background:var(--danger);z-index:2;pointer-events:none;height:2px;position:absolute;left:0;right:0}.week-now-line:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-3px}.appointment-block{cursor:pointer;z-index:1;border:1px solid #00000014;border-radius:6px;padding:.2rem .35rem;font-size:.72rem;line-height:1.25;transition:box-shadow .12s,transform 80ms;position:absolute;left:2px;right:2px;overflow:hidden;box-shadow:0 1px 2px #00000014}.appointment-block:hover{box-shadow:0 3px 8px var(--shadow-strong);z-index:5;transform:translateY(-1px)}.appointment-block.cancelled{opacity:.5;text-decoration:line-through}.appointment-block strong{font-weight:700;display:block}
