@import"https://fonts.googleapis.com/icon?family=Material+Icons+Outlined";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css";:root{color-scheme:light;font-family:Inter,Manrope,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--font-base: 16px;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-alt: #f8fafc;--color-surface-raised: #f1f5f9;--color-surface-muted: #e2e8f0;--color-text: #0f172a;--color-text-muted: #475569;--color-border: #d0d7e3;--color-primary: #2563eb;--color-primary-strong: #1d4ed8;--color-accent: #38bdf8;--color-accent-strong: #0284c7;--color-field-bg: #f8fafc;--color-field-border: #94a3b8;--color-field-border-focus: #2563eb;--shadow-soft: 0 25px 50px -12px rgb(15 23 42 / .25);--shadow-md: 0 12px 30px -18px rgb(15 23 42 / .45);--shadow-sm: 0 8px 18px -14px rgb(15 23 42 / .4);--radius-xl: 28px;--radius-xxl: 32px;--radius-lg: 20px;--radius-md: 14px;--radius-full: 999px}:root[data-theme=dark]{color-scheme:dark;--color-bg: #020617;--color-surface: #0f172a;--color-surface-alt: #111c31;--color-surface-raised: #16253f;--color-surface-muted: #1e293b;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-border: #1e293b;--color-primary: #38bdf8;--color-primary-strong: #0ea5e9;--color-accent: #7dd3fc;--color-accent-strong: #7dd3fc;--color-field-bg: #132038;--color-field-border: #334155;--color-field-border-focus: #38bdf8;--shadow-soft: 0 25px 50px -12px rgb(2 6 23 / .85);--shadow-md: 0 12px 30px -18px rgb(2 6 23 / .9);--shadow-sm: 0 8px 18px -14px rgb(2 6 23 / .85)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: #020617;--color-surface: #0f172a;--color-surface-alt: #111c31;--color-surface-raised: #16253f;--color-surface-muted: #1e293b;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-border: #1e293b;--color-primary: #38bdf8;--color-primary-strong: #0ea5e9;--color-accent: #7dd3fc;--color-accent-strong: #7dd3fc;--color-field-bg: #132038;--color-field-border: #334155;--color-field-border-focus: #38bdf8;--shadow-soft: 0 25px 50px -12px rgb(2 6 23 / .85);--shadow-md: 0 12px 30px -18px rgb(2 6 23 / .9);--shadow-sm: 0 8px 18px -14px rgb(2 6 23 / .85)}}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:var(--font-base);line-height:1.6;overflow-x:hidden}html,body{max-width:100%}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.surface-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.9rem 1.4rem;border-radius:999px;border:none;font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}.btn:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 40%,transparent);outline-offset:2px}.btn-primary{background:linear-gradient(120deg,var(--color-primary) 0%,var(--color-accent) 100%);color:#fff;box-shadow:0 15px 35px -12px color-mix(in srgb,var(--color-primary) 70%,transparent)}.btn-secondary{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn:hover{box-shadow:0 10px 24px -18px color-mix(in srgb,#000 40%,transparent)}.list-toolbar__actions{display:inline-flex;align-items:center;gap:.75rem;flex-wrap:wrap}.panel-cta-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.panel-cta-action{border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);border-radius:.8rem;min-height:2.4rem;padding:.45rem .8rem;font-size:.86rem;font-weight:600;display:inline-flex;align-items:center;gap:.45rem}.panel-cta-action i{color:var(--color-accent-strong);font-size:.9rem}.panel-cta-action:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface-raised))}.panel-cta-action:disabled{opacity:.55}.panel-cta-action--accent{border-color:color-mix(in srgb,var(--color-accent) 45%,var(--color-border));background:color-mix(in srgb,var(--color-accent) 14%,var(--color-surface-raised))}.list-pagination{display:inline-flex;align-items:center;gap:.5rem}.list-pagination--footer{margin-top:.85rem;justify-content:flex-end}td.actions .icon-action{width:2rem;height:2rem;border-radius:.6rem;border:1px solid var(--color-border);background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}td.actions .icon-action:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-color:color-mix(in srgb,var(--color-primary) 30%,var(--color-border))}td.actions .icon-action.danger{color:#b4233d}td.actions .icon-action.danger:hover:not(:disabled){background:color-mix(in srgb,#b4233d 12%,transparent);border-color:color-mix(in srgb,#b4233d 30%,var(--color-border))}td.actions .icon-action:disabled{opacity:.45;cursor:not-allowed}app-beauty-appointments .list-status-dot{display:inline-block;width:.55rem;height:.55rem;margin-right:.5rem;border-radius:50%;background:#94a3b8;vertical-align:middle;box-shadow:0 0 0 1px color-mix(in srgb,#000 10%,transparent)}app-beauty-appointments .list-status-dot.is-cancelled{background:#ef4444}app-beauty-appointments .list-status-dot.is-no-show{background:#f97316}app-beauty-appointments .list-status-dot.is-partial{background:#f59e0b}app-beauty-appointments .list-status-dot.is-unpaid{background:#94a3b8}app-beauty-appointments .list-status-dot.is-paid{background:#16a34a}app-beauty-appointments .list-status-dot.is-waived{background:#0ea5e9}.input-group{display:flex;flex-direction:column;gap:.35rem}.input-group label{font-size:.9rem;color:var(--color-text-muted);font-weight:600}.input-group input{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);padding:.85rem 1rem;color:inherit;font-size:1rem;transition:border-color .15s ease,box-shadow .15s ease}.input-group input:focus,.input-group select:focus{outline:none;border-color:color-mix(in srgb,var(--color-primary) 65%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,transparent)}.input-group select{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);padding:.85rem 1rem;font-size:1rem;color:inherit}.panel-field,app-panel-shell input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),app-panel-shell textarea,app-panel-shell select{border-radius:var(--radius-md);border:1px solid var(--color-field-border);padding:.65rem .75rem;background:var(--color-field-bg);color:inherit;font:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-field-border) 22%,transparent);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}app-panel-shell input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):focus,app-panel-shell textarea:focus,app-panel-shell select:focus,.panel-field:focus{outline:none;border-color:var(--color-field-border-focus);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-field-border-focus) 45%,transparent),0 0 0 2px color-mix(in srgb,var(--color-field-border-focus) 20%,transparent)}.form-error{color:#ef4444;font-size:.85rem}.success-copy{color:#10b981;font-size:.95rem}.eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.2em;color:var(--color-text-muted)}.page-shell{width:min(1200px,100%);margin:0 auto;padding:clamp(1.5rem,4vw,4rem) clamp(1.25rem,3vw,2.5rem)}.page-shell>*{min-width:0}.auth-layout{min-height:100vh;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;align-items:center;padding:clamp(1rem,5vw,5rem)}.auth-card{padding:clamp(2rem,4vw,3.25rem);border-radius:var(--radius-xl);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:1.5rem}.auth-card h1{margin:0;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1.2}.auth-card form{display:flex;flex-direction:column;gap:1rem}.auth-card footer{font-size:.95rem;color:var(--color-text-muted)}.auth-illustration{border-radius:var(--radius-xl);padding:clamp(2rem,4vw,4rem);background:linear-gradient(145deg,var(--color-primary) 0%,var(--color-accent) 100%);color:#fff;min-height:340px;display:flex;flex-direction:column;gap:1.5rem}.auth-illustration h2{font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.3;margin:0}.pill{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;border:1px solid rgb(255 255 255 / .35);padding:.4rem .9rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:2.5rem}.feature-card{border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--color-border);background:var(--color-surface);min-height:180px;display:flex;flex-direction:column;gap:.75rem}.feature-card h3{margin:0;font-size:1.125rem}.feature-card p{margin:0;color:var(--color-text-muted)}.muted-link{color:var(--color-text-muted);text-decoration:underline}.cancellation-modal{width:min(920px,100%)}.cancellation-summary,.cancellation-result{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.8rem;background:var(--color-surface-alt)}.cancellation-summary h4,.cancellation-result h4{margin:0 0 .5rem}.cancellation-progress{display:flex;flex-direction:column;gap:.4rem}.cancellation-progress p{margin:0}.cancellation-progress__bar{height:.5rem;border-radius:999px;background:color-mix(in srgb,var(--color-border) 70%,transparent);overflow:hidden}.cancellation-progress__bar span{display:block;width:36%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));animation:cancellation-progress 1.1s ease-in-out infinite}@keyframes cancellation-progress{0%{transform:translate(-120%)}to{transform:translate(300%)}}.cancellation-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.cancellation-steps li{border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:.55rem .65rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.cancellation-steps li small{width:100%}app-beauty-appointments .success-banner{background:#eaf8ef;color:#1f6b3f;border-radius:var(--radius-lg);padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;grid-column:1 / -1;width:100%;box-sizing:border-box}app-beauty-appointments .error-banner{grid-column:1 / -1;width:100%;box-sizing:border-box}app-beauty-appointments .ical-subscription,app-beauty-appointments .calendar-shell,app-beauty-appointments .list-view,app-beauty-appointments .day-view,app-beauty-appointments .surface-card.empty-state{grid-column:1 / -1;width:100%;box-sizing:border-box}app-beauty-appointments .appointment-chip,app-beauty-appointments .day-block{position:relative}app-beauty-appointments .appointment-chip:after,app-beauty-appointments .day-block:after{content:"";position:absolute;right:.3rem;top:.3rem;width:.45rem;height:.45rem;border-radius:50%;background:transparent;box-shadow:0 0 0 1px #00000014}app-beauty-appointments .appointment-chip.is-cancelled,app-beauty-appointments .day-block.is-cancelled{opacity:.72;text-decoration:line-through}app-beauty-appointments .appointment-chip.is-cancelled:after,app-beauty-appointments .day-block.is-cancelled:after{background:#9ca3af}app-beauty-appointments .appointment-chip.is-no-show:after,app-beauty-appointments .day-block.is-no-show:after{background:#f97316}app-beauty-appointments .appointment-chip.is-partial:after,app-beauty-appointments .day-block.is-partial:after{background:#f59e0b}app-beauty-appointments .appointment-chip.is-unpaid:after,app-beauty-appointments .day-block.is-unpaid:after{background:#ef4444}app-beauty-appointments .appointment-chip.is-paid:after,app-beauty-appointments .day-block.is-paid:after{background:#10b981}app-beauty-appointments .appointment-chip.is-waived:after,app-beauty-appointments .day-block.is-waived:after{background:#64748b}app-beauty-appointments .success-banner button{border:none;background:transparent;font-size:1.2rem;cursor:pointer;color:inherit}@media (max-width: 768px){.auth-layout{grid-template-columns:1fr;gap:1rem;padding:1rem .85rem 1.25rem}.auth-card{padding:1.25rem 1rem;border-radius:var(--radius-lg)}.page-shell{padding:1rem .85rem 1.35rem}.btn{min-height:2.35rem;padding-inline:1rem}.panel-cta-actions{width:100%;gap:.45rem}.panel-cta-action{min-height:2.25rem;padding:.42rem .68rem;font-size:.8rem}.list-pagination{width:100%;justify-content:space-between}.list-pagination--footer{justify-content:space-between}.auth-illustration{min-height:auto}}
