:root{color:#172033;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#edf2fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(circle at 0 0,#dbeafe 0,#0000 35%),#edf2fb;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.65;cursor:not-allowed}.auth-screen{grid-template-columns:1fr 430px;align-items:center;gap:28px;max-width:1040px;min-height:100vh;margin:0 auto;padding:28px;display:grid}.auth-hero{color:#fff;background:linear-gradient(145deg,#172554,#2563eb);border-radius:38px;flex-direction:column;justify-content:flex-end;min-height:560px;padding:42px;display:flex;box-shadow:0 30px 80px #2563eb47}.brand-mark{background:#ffffff29;border:1px solid #ffffff38;border-radius:22px;place-items:center;width:62px;height:62px;margin-bottom:auto;font-weight:900;display:grid}.auth-hero h1{letter-spacing:-.04em;margin:10px 0 18px;font-size:clamp(34px,5vw,58px);line-height:.98}.auth-hero p{color:#ffffffc7;max-width:520px}.auth-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffdb;border:1px solid #fffc;border-radius:32px;padding:24px;box-shadow:0 24px 70px #0f172a1f}.segmented{background:#eef2ff;border-radius:18px;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;padding:6px;display:grid}.segmented button{color:#526076;background:0 0;border:0;border-radius:14px;padding:12px;font-weight:800}.segmented button.active{color:#1d4ed8;background:#fff;box-shadow:0 8px 20px #1d4ed81f}form{gap:14px;display:grid}label{color:#172033;gap:6px;font-weight:700;display:grid}input{background:#fff;border:1px solid #d9deea;border-radius:16px;outline:none;padding:14px 16px}input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.primary,.secondary,.ghost,.icon-button,.link{transition:transform .15s,box-shadow .15s,background .15s}.primary:hover,.secondary:hover,.ghost:hover,.icon-button:hover{transform:translateY(-1px)}.primary{color:#fff;background:#2563eb;border:0;border-radius:18px;width:100%;padding:15px 18px;font-weight:900;box-shadow:0 14px 28px #2563eb3d}.secondary{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:18px;width:100%;margin-top:10px;padding:14px;font-weight:900}.ghost{color:#172033;background:#fff;border:1px solid #d9deea;border-radius:15px;padding:10px 12px;font-weight:800}.link{color:#2563eb;text-align:left;background:0 0;border:0;padding:10px 0;font-weight:800}.back-link{width:-moz-fit-content;width:fit-content}.error{color:#991b1b;background:#fee2e2;border-radius:16px;margin:10px 0;padding:12px}.success{color:#166534;background:#dcfce7;border-radius:16px;margin:12px 0 0;padding:12px}.info-box{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:18px;padding:14px}.hint,.muted{color:#65708a}.hint{margin-top:14px;font-size:13px}.hint-card{color:#475569;background:#f8fafc;border-radius:18px;gap:4px;margin-top:18px;padding:14px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#6b7a99;margin:0 0 6px;font-size:11px;font-weight:900}.shell{background:#f7f9fd;max-width:520px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 0 1px #94a3b82e}.app-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f9fdeb;border-bottom:1px solid #e8edf5;justify-content:space-between;align-items:flex-start;padding:18px 18px 14px;display:flex;position:sticky;top:0}.app-header h1{letter-spacing:-.02em;margin:0;font-size:22px}.user-line{color:#65708a;font-size:12px}.icon-button{background:#fff;border:1px solid #e2e8f0;border-radius:15px;width:42px;height:42px;font-size:18px}.app-main{padding:18px 16px 104px}.page-stack{gap:16px;display:grid}.bottom-nav{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border:1px solid #cbd5e1bf;border-radius:24px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;width:min(488px,100vw - 24px);padding:8px;display:grid;position:fixed;bottom:14px;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 20px 60px #0f172a26}.bottom-nav button{color:#64748b;background:0 0;border:0;border-radius:18px;place-items:center;gap:2px;min-width:64px;padding:8px 10px;display:grid}.bottom-nav button.active{color:#1d4ed8;background:#eff6ff}.bottom-nav span{font-size:20px;line-height:1}.bottom-nav small{font-size:11px;font-weight:800}.welcome-card,.detail-card,.appointment-card,.appointment-feature,.detail-hero,.stat-card,.empty-state{background:#fff;border:1px solid #e7edf5;border-radius:26px;box-shadow:0 14px 35px #0f172a0f}.welcome-card{background:linear-gradient(145deg,#fff,#eff6ff);padding:22px}.welcome-card h2{letter-spacing:-.03em;margin:0;font-size:28px}.stats-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.admin-stats{grid-template-columns:repeat(3,1fr)}.stat-card{gap:5px;padding:16px;display:grid}.stat-card span{color:#64748b;font-size:12px;font-weight:800}.stat-card strong{color:#172033;font-size:28px}.stat-card small{color:#64748b}.section-title{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.section-title h2{letter-spacing:-.025em;margin:0;font-size:24px}.section-title p{color:#65708a;margin:5px 0 0}.filter-row{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.filter-row button{white-space:nowrap;color:#526076;background:#fff;border:1px solid #dbe4f0;border-radius:999px;padding:9px 13px;font-weight:800}.filter-row button.active{color:#fff;background:#172554;border-color:#172554}.cards{gap:12px;display:grid}.appointment-card{cursor:pointer;grid-template-columns:1fr auto;gap:12px;padding:16px;display:grid}.appointment-card h3,.appointment-feature h3{letter-spacing:-.02em;margin:10px 0 4px;font-size:19px}.appointment-card p,.appointment-feature p{margin:5px 0}.appointment-card footer{color:#65708a;border-top:1px solid #edf2f7;grid-column:1/-1;padding-top:10px;font-size:13px}.card-side,.feature-date{text-align:right;color:#1d4ed8;align-content:start;gap:3px;display:grid}.card-side span,.feature-date span{color:#64748b;font-weight:800}.appointment-feature{cursor:pointer;grid-template-columns:1fr auto;gap:10px;padding:18px;display:grid}.appointment-feature>.muted{grid-column:1/-1;margin-top:8px}.status-pill{text-transform:uppercase;color:#166534;background:#dcfce7;border-radius:999px;width:-moz-fit-content;width:fit-content;padding:5px 10px;font-size:11px;font-weight:900;display:inline-flex}.status-cancelled{color:#991b1b;background:#fee2e2}.status-scheduled{color:#1d4ed8;background:#dbeafe}.detail-hero{color:#fff;background:linear-gradient(145deg,#172554,#2563eb);padding:20px}.detail-hero .status-pill{color:#fff;background:#ffffff2e;border:1px solid #ffffff47}.detail-hero h2{letter-spacing:-.04em;margin:16px 0 4px;font-size:30px}.detail-hero p{color:#fffc}.date-badge{background:#ffffff24;border-radius:20px;gap:3px;margin-top:18px;padding:14px;display:grid}.detail-card{padding:18px}.detail-card h3{margin:0 0 12px;font-size:19px}dl{grid-template-columns:120px 1fr;gap:12px;margin:0;display:grid}dt{color:#65708a}dd{margin:0;font-weight:800}.action-card .primary{margin-top:8px}.toggle-card{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;display:flex}.toggle-card:last-child{border-bottom:0}.toggle-card span{gap:4px;display:grid}.toggle-card small{color:#65708a;font-weight:500}.toggle-card input{flex:none;width:22px;height:22px}.toggle-card.disabled{opacity:.82}.offset-grid{grid-template-columns:1fr;gap:8px;display:grid}.offset-grid button{color:#334155;background:#fff;border:1px solid #dbe4f0;border-radius:16px;padding:13px;font-weight:900}.offset-grid button.selected{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.timeline-list,.check-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.timeline-list li{align-items:flex-start;gap:12px;display:flex}.timeline-list p{color:#65708a;margin:3px 0 0}.dot{background:#2563eb;border-radius:999px;width:10px;height:10px;margin-top:6px;box-shadow:0 0 0 5px #dbeafe}.empty-state{text-align:center;color:#65708a;padding:22px}.empty-state h2{color:#172033;margin:6px 0}.empty-icon{font-size:28px}.admin-actions{grid-template-columns:1fr;gap:10px;display:grid}.permission-table{gap:8px;display:grid}.permission-row{border:1px solid #edf2f7;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.permission-row div{gap:3px;display:grid}.permission-row small{color:#64748b;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.permission-row span{color:#334155;background:#f1f5f9;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.check-list li{color:#334155;padding-left:24px;position:relative}.check-list li:before{content:"✓";color:#16a34a;font-weight:900;position:absolute;left:0}@media (max-width:760px){.auth-screen{grid-template-columns:1fr;padding:0}.auth-hero{border-radius:0 0 34px 34px;min-height:300px;padding:28px 22px}.auth-panel{margin:-28px 16px 24px}}@media (max-width:420px){.grid2,.stats-grid,.admin-stats{grid-template-columns:1fr}dl{grid-template-columns:1fr;gap:4px}.appointment-card{grid-template-columns:1fr}.card-side{text-align:left}}.push-actions{gap:10px;margin-top:14px;display:grid}.push-actions .ghost{width:100%}select{font:inherit;background:#fff;border:1px solid #d9deea;border-radius:16px;outline:none;padding:14px 16px}select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}.form-grid{grid-template-columns:1fr;gap:12px;display:grid}.primary-button{color:#fff;background:#2563eb;border:0;border-radius:18px;width:100%;padding:15px 18px;font-weight:900;box-shadow:0 14px 28px #2563eb2e}.chip-list{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.chip-list.compact{gap:6px;margin-top:6px}.chip{color:#1d4ed8;background:#eff6ff;border-radius:999px;padding:6px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:900}.permission-module{gap:8px;margin-top:14px;display:grid}.permission-module h4{text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin:0;font-size:12px}.audit-list{gap:10px;display:grid}.audit-row{border:1px solid #edf2f7;border-radius:16px;grid-template-columns:1fr auto;align-items:start;gap:10px;padding:12px;display:grid}.audit-row div{gap:4px;display:grid}.audit-row small{color:#64748b;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.audit-row span{color:#334155;background:#f8fafc;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900}.compact-form{gap:12px;display:grid}.form-grid label{color:#475569;gap:6px;font-size:13px;font-weight:800;display:grid}.form-grid input,.form-grid select{font:inherit;color:#172033;background:#fff;border:1px solid #d9deea;border-radius:16px;outline:none;padding:13px 14px}.form-grid input:focus,.form-grid select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}.small-grid{grid-template-columns:1fr 150px}.form-actions{grid-column:1/-1;grid-template-columns:1fr;gap:10px;display:grid}.secondary-button,.danger-button{color:#334155;background:#fff;border:1px solid #dbe4f0;border-radius:16px;padding:12px 14px;font-weight:900}.danger-button{color:#b91c1c;background:#fff7f7;border-color:#fecaca}.button-row{align-items:center;gap:8px;display:flex}.button-row.wrap{flex-wrap:wrap}.button-row.wrap button{flex:120px}.card-header-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.card-header-row strong{color:#1d4ed8;text-align:right;font-size:13px}.appointment-card.admin-card{cursor:default;grid-template-columns:1fr}.detail-list.compact{color:#475569;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;display:grid}.status-chip{color:#1d4ed8;background:#dbeafe;border-radius:999px;width:-moz-fit-content;width:fit-content;padding:5px 9px;font-size:11px;font-weight:900;display:inline-flex}.status-chip.confirmed{color:#166534;background:#dcfce7}.status-chip.cancelled{color:#991b1b;background:#fee2e2}.status-chip.completed{color:#15803d;background:#f0fdf4}.status-chip.no_show{color:#92400e;background:#fef3c7}.status-chip.rescheduled{color:#5b21b6;background:#ede9fe}@media (min-width:680px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .primary-button{width:auto}}@media (max-width:460px){.small-grid,.detail-list.compact{grid-template-columns:1fr}.card-header-row{display:grid}.card-header-row strong{text-align:left}}.slot-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}@media (max-width:420px){.slot-grid{grid-template-columns:repeat(2,1fr)}}.patient-home-web,.appointments-web-page,.appointment-detail-web,.preferences-web-page{width:100%}.patient-home-grid,.detail-web-grid,.appointments-layout-grid{gap:24px;display:grid}.patient-side-column,.detail-side-column,.appointments-sidebar-panel{display:none}.web-hero-card{align-content:center;min-height:220px;display:grid}.web-feature-card{min-height:160px}.quick-action-list{gap:10px;margin-top:14px;display:grid}.quick-action-list button{color:#334155;text-align:left;background:#fff;border:1px solid #dbe4f0;border-radius:16px;padding:12px 14px;font-weight:900}.desktop-helper-card{position:relative;overflow:hidden}.desktop-helper-card:after{content:"";background:#2563eb14;border-radius:999px;width:120px;height:120px;position:absolute;bottom:-40px;right:-40px}.preferences-grid{gap:16px;display:grid}.vertical-filter-row{display:grid;overflow:visible}.single-column-stats{grid-template-columns:1fr;margin-top:16px}@media (min-width:768px){.page-stack{gap:22px}.patient-home-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.patient-side-column{gap:16px;display:grid;position:sticky;top:104px}.responsive-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.appointments-layout-grid{grid-template-columns:280px minmax(0,1fr);align-items:start}.appointments-sidebar-panel{display:block;position:sticky;top:104px}.appointment-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.web-appointment-card{min-height:190px}.detail-web-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.detail-side-column{display:block;position:sticky;top:104px}.web-detail-hero{align-content:end;min-height:300px}.preferences-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.preferences-grid .detail-card:last-child{grid-column:1/-1}}@media (min-width:1200px){.appointment-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.patient-home-grid{grid-template-columns:minmax(0,1fr) 380px}.detail-web-grid{grid-template-columns:minmax(0,1fr) 400px}}@media (max-width:767px){.vertical-filter-row{display:flex;overflow-x:auto}.appointments-layout-grid,.detail-web-grid,.patient-home-grid{gap:16px}}:root{--app-card-radius:14px;--app-control-radius:10px}.welcome-card,.detail-card,.appointment-card,.appointment-feature,.detail-hero,.stat-card,.empty-state,.auth-panel,.hint-card,.catalog-table-card,.MuiCard-root,.MuiPaper-rounded{border-radius:var(--app-card-radius)!important}input,select,.primary,.secondary,.ghost,.icon-button,.primary-button,.secondary-button,.danger-button,.quick-action-list button,.offset-grid button,.permission-row,.audit-row,.form-grid input,.form-grid select{border-radius:var(--app-control-radius)!important}.catalog-maintenance .section-title{align-items:center}.catalog-table-card{background:#fff;border:1px solid #e7edf5;overflow:auto;box-shadow:0 12px 28px #0f172a0d}.catalog-table-header{padding:16px 18px}.catalog-table-card table{min-width:760px}.catalog-table-card th{color:#64748b;letter-spacing:.06em;text-transform:uppercase;background:#f8fafc;font-size:12px;font-weight:900}.catalog-table-card td{color:#172033;vertical-align:middle;font-weight:650}.catalog-dialog-paper{border-radius:var(--app-card-radius)!important}.catalog-detail-grid,.catalog-form-grid{gap:16px;display:grid}.catalog-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-detail-field{border-radius:var(--app-control-radius);background:#f8fafc;border:1px solid #edf2f7;gap:4px;padding:12px 14px;display:grid}.catalog-detail-field.full{grid-column:1/-1}.mono-value{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.catalog-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:4px}.catalog-active-switch{align-self:center;min-height:56px}@media (max-width:640px){.catalog-detail-grid,.catalog-form-grid{grid-template-columns:1fr}}.maintenance-page .catalog-table-card{width:100%}.maintenance-toolbar{background:#fff;padding:14px 16px;border-radius:var(--app-card-radius)!important}.maintenance-page .MuiTableContainer-root{border-radius:var(--app-card-radius)!important}.maintenance-page table{min-width:860px}.access-maintenance .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:4px;display:grid}.appointment-availability-panel{border-radius:var(--app-control-radius);background:#f8fafc;border:1px solid #edf2f7;grid-column:1/-1;padding:14px}.maintenance-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.patient-appointments-table table{min-width:760px}@media (min-width:900px){.access-maintenance .admin-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.appointment-form-grid,.catalog-form-grid,.catalog-detail-grid{grid-template-columns:1fr}.maintenance-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.table-pagination-footer{background:#fff;border-top:1px solid #e7edf5}.catalog-table-card .table-pagination-footer,.patient-appointments-table .table-pagination-footer{min-width:760px}.forbidden-state{text-align:center}
