:root{--bg:#f4f7fa;--bg-elevated:#fff;--bg-soft:#e8f1f6;--bg-muted:#dce7ef;--ink:#122433;--ink-soft:#4a6070;--ink-faint:#7a90a0;--line:#d0dce6;--brand:#0b6b8a;--brand-deep:#084e66;--brand-soft:#d7eef6;--accent:#5b8fa8;--accent-soft:#e8f2f7;--danger:#b42318;--danger-soft:#fef3f2;--warn:#b54708;--warn-soft:#fffaeb;--ok:#067647;--ok-soft:#ecfdf3;--info:#175cd3;--info-soft:#eff8ff;--shadow:0 12px 32px #08283812;--radius:16px;--radius-sm:10px;--sidebar:268px;--font:"IBM Plex Sans Arabic", system-ui, sans-serif;--display:"Tajawal", "IBM Plex Sans Arabic", sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 100% 0%, #0b6b8a12, transparent 42%), radial-gradient(circle at 0% 100%, #5b8fa80d, transparent 38%), linear-gradient(180deg, #f8fbfd 0%, var(--bg) 42%), var(--bg);margin:0;line-height:1.6}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--display);margin:0;line-height:1.25}p{margin:0}img{max-width:100%}.app-shell{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}.sidebar{color:#f4fafc;background:linear-gradient(165deg,#ffffff0f 0%,#0000 36%),linear-gradient(#0a5a73 0%,#073a4c 100%);flex-direction:column;gap:1.5rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0;overflow:auto}.brand{background:#ffffff0f;border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:.85rem;padding:.55rem .7rem;animation:.55s both brandReveal;display:flex}.brand-mark{color:#e8f7fc;background:#ffffff24;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.brand-text strong{font-family:var(--display);font-size:1.05rem;display:block}.brand-text span{opacity:.75;font-size:.78rem}.nav{flex-direction:column;flex:1;gap:.35rem;display:flex}.nav a{color:#ffffffd1;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem .9rem;transition:background .2s,color .2s,transform .2s;display:flex}.nav a:hover{color:#fff;background:#ffffff14}.nav a.active{color:#fff;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff14}.sidebar-footer{background:#0000002e;border-radius:14px;flex-direction:column;gap:.65rem;padding:.85rem;display:flex}.user-chip{align-items:center;gap:.7rem;display:flex}.avatar{background:var(--brand-soft);width:38px;height:38px;color:var(--brand-deep);border-radius:50%;place-items:center;font-size:.9rem;font-weight:700;display:grid}.user-chip strong{font-size:.9rem;display:block}.user-chip span{opacity:.75;font-size:.75rem}.main{min-width:0;padding:1.5rem 1.75rem 2.5rem}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.topbar h1{margin-bottom:.25rem;font-size:1.65rem}.topbar p{color:var(--ink-soft);font-size:.95rem}.mobile-toggle{background:var(--bg-elevated);width:42px;height:42px;box-shadow:var(--shadow);cursor:pointer;color:var(--ink);border:0;border-radius:12px;display:none}.grid{gap:1rem;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--bg-elevated);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #cfdcd8b3;padding:1.15rem 1.25rem}.stat-card{position:relative;overflow:hidden}.stat-card:after{content:"";inset-inline-end:-20px;background:var(--brand-soft);opacity:.7;border-radius:50%;width:90px;height:90px;position:absolute;top:-20px}.stat-card-head{z-index:1;justify-content:space-between;align-items:center;gap:.65rem;margin-bottom:.35rem;display:flex;position:relative}.stat-icon{background:var(--brand-soft);width:40px;height:40px;color:var(--brand-deep);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.stat-label{color:var(--ink-soft);margin-bottom:0;font-size:.88rem}.stat-value{font-family:var(--display);z-index:1;font-size:1.8rem;font-weight:700;position:relative}.stat-hint{color:var(--ink-faint);z-index:1;margin-top:.45rem;font-size:.8rem;position:relative}.section-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-head h2{font-size:1.15rem}.toolbar{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.btn{cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.7rem 1rem;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-deep)}.btn-secondary{background:var(--bg-soft);color:var(--ink)}.btn-secondary:hover{background:var(--bg-muted)}.btn-ghost{color:var(--ink-soft);background:0 0}.btn-ghost:hover{background:var(--bg-soft);color:var(--ink)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-whatsapp{color:#0b7a45;background:#e7f8ef}.btn-whatsapp:hover{background:#d8f3e5}.btn-whatsapp:disabled{opacity:.5;cursor:not-allowed}.btn-notify{color:#9a5b16;background:#fff4e8}.btn-notify:hover{background:#ffe8d1}.btn-notify:disabled{opacity:.5;cursor:not-allowed}.btn-sm{border-radius:10px;padding:.45rem .75rem;font-size:.85rem}.field{flex-direction:column;gap:.4rem;display:flex}.field label{color:var(--ink-soft);font-size:.88rem;font-weight:600}.field input,.field select,.field textarea,.search-input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:12px;outline:none;padding:.7rem .85rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #0f6e6a1f}.field textarea{resize:vertical;min-height:90px}.search-wrap{flex:1;min-width:220px;position:relative}.search-wrap svg{inset-inline-start:.85rem;color:var(--ink-faint);position:absolute;top:50%;transform:translateY(-50%)}.search-input{padding-inline-start:2.5rem}.table-wrap{border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow);border:1px solid #cfdcd8b3;overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:right;border-bottom:1px solid var(--line);vertical-align:middle;padding:.9rem 1rem}th{color:var(--ink-soft);background:#f8fbfa;font-size:.82rem;font-weight:600}tr:last-child td{border-bottom:0}tbody tr{transition:background .15s}tbody tr:hover{background:#f7fbfa}.badge{border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge-upcoming,.badge-active{background:var(--info-soft);color:var(--info)}.badge-arrived{background:var(--warn-soft);color:var(--warn)}.badge-completed{background:var(--ok-soft);color:var(--ok)}.badge-cancelled,.badge-no_show,.badge-paused{background:var(--danger-soft);color:var(--danger)}.progress{background:var(--bg-muted);border-radius:999px;height:8px;overflow:hidden}.progress>span{background:linear-gradient(90deg, var(--brand), #1aa39c);border-radius:inherit;height:100%;transition:width .35s;display:block}.progress-meta{color:var(--ink-soft);justify-content:space-between;gap:.5rem;margin-bottom:.4rem;font-size:.8rem;display:flex}.modal-backdrop{z-index:50;background:#0f1e1c73;place-items:center;padding:1rem;animation:.2s fadeIn;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elevated);border-radius:20px;width:min(560px,100%);max-height:90vh;animation:.25s riseIn;overflow:auto;box-shadow:0 24px 60px #0003}.modal-lg{width:min(720px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.25rem;display:flex}.modal-body{gap:.9rem;padding:1.25rem;display:grid}.modal-actions{justify-content:flex-end;gap:.65rem;padding:0 1.25rem 1.25rem;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.form-grid .full{grid-column:1/-1}.empty{text-align:center;color:var(--ink-soft);padding:2.5rem 1rem}.empty strong{color:var(--ink);font-family:var(--display);margin-bottom:.35rem;display:block}.empty-visual{justify-items:center;gap:.45rem;display:grid}.empty-icon{background:var(--brand-soft);width:58px;height:58px;color:var(--brand-deep);border-radius:18px;place-items:center;margin-bottom:.35rem;display:grid}.empty-copy{max-width:28ch;font-size:.92rem}.page-hero{color:#fff;min-height:168px;box-shadow:var(--shadow);background-position:50%;background-size:cover;border-radius:20px;margin-bottom:1rem;animation:.45s both riseIn;position:relative;overflow:hidden}.page-hero-overlay{background:linear-gradient(115deg,#062a38d1 0%,#0b6b8a8c 58%,#0b6b8a47 100%);position:absolute;inset:0}.page-hero-content{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;min-height:168px;padding:1.35rem 1.45rem;display:flex;position:relative}.page-hero h1{font-family:var(--display);text-shadow:0 8px 24px #00000040;margin:0 0 .35rem;font-size:clamp(1.55rem,2.5vw,2rem);font-weight:800}.page-hero p{opacity:.92;max-width:42ch;margin:0;font-size:.95rem}.page-hero-actions{flex-wrap:wrap;gap:.5rem;display:flex}.page-hero-actions .btn-primary{box-shadow:0 10px 24px #0000002e}.page-hero-actions .btn-secondary{color:#fff;background:#ffffff29;border:1px solid #ffffff38}.page-hero-actions .btn-secondary:hover{background:#ffffff3d}.linkish{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.linkish:hover{text-decoration:underline}.row-actions{flex-wrap:wrap;gap:.35rem;display:flex}.login-page{grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.login-visual{color:#fff;background:linear-gradient(115deg,#062a38e0 0%,#0b6b8a8c 55%,#0b6b8a59 100%),url(/login-clinic.jpg) 50%/cover no-repeat;flex-direction:column;justify-content:space-between;padding:clamp(2rem,4vw,3.25rem);animation:.7s both loginScene;display:flex;position:relative;overflow:hidden}.login-visual:before{content:"";pointer-events:none;background:radial-gradient(circle at 85% 15%,#ffffff29,#0000 28%),linear-gradient(#0000 60%,#041c2659);position:absolute;inset:0}.login-visual>*{z-index:1;position:relative}.login-eyebrow{letter-spacing:.02em;opacity:.92;align-items:center;gap:.45rem;margin-bottom:1rem;font-size:.88rem;display:inline-flex}.login-visual .brand-mark{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff29;border-radius:16px;width:56px;height:56px;margin-bottom:1.1rem;animation:.65s .1s both brandReveal}.login-visual h1{font-family:var(--display);text-shadow:0 10px 30px #00000040;max-width:14ch;margin:0 0 .85rem;font-size:clamp(2.15rem,4.2vw,3.35rem);font-weight:800;line-height:1.15}.login-visual p{opacity:.92;max-width:36ch;font-size:1.05rem}.login-visual-foot{opacity:.9;border-top:1px solid #ffffff2e;max-width:38ch;padding-top:1rem;font-size:.95rem}.login-panel{background:radial-gradient(circle at 100% 0%, #0b6b8a0f, transparent 45%), var(--bg);place-items:center;padding:2rem;display:grid}.login-card{background:var(--bg-elevated);width:min(420px,100%);box-shadow:var(--shadow);border:1px solid #d0dce6e6;border-radius:22px;padding:2rem;animation:.45s .12s both riseIn}.login-card h2{margin-bottom:.35rem;font-size:1.55rem}.login-card>p{color:var(--ink-soft);margin-bottom:1.5rem}.demo-box{background:var(--bg-soft);color:var(--ink-soft);border-radius:14px;margin-top:1.25rem;padding:.9rem 1rem;font-size:.85rem}.demo-box code{font-family:var(--font);color:var(--brand-deep);font-weight:600}.error-text{color:var(--danger);font-size:.88rem}.stack{gap:1rem;display:grid}.timeline{gap:.85rem;display:grid}.timeline-item{grid-template-columns:16px 1fr;gap:.85rem;display:grid}.timeline-dot{background:var(--brand);width:12px;height:12px;box-shadow:0 0 0 4px var(--brand-soft);border-radius:50%;margin-top:.35rem}.pill-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.pill-tabs button{border:1px solid var(--line);cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:999px;padding:.45rem .9rem}.pill-tabs button.active{background:var(--brand);border-color:var(--brand);color:#fff}.patient-hero{color:#fff;box-shadow:var(--shadow);background:linear-gradient(115deg,#062a38c7,#0b6b8a73),url(/hero-patients.jpg) 50%/cover no-repeat;border:0;border-radius:20px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:1.45rem 1.5rem;animation:.4s both riseIn;display:flex;position:relative;overflow:hidden}.patient-hero h2{color:#fff;margin-bottom:.35rem;font-size:1.45rem}.patient-hero .meta-row{color:#ffffffe0}.patient-avatar{color:#fff;width:56px;height:56px;font-family:var(--display);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff2e;border-radius:16px;flex-shrink:0;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.patient-hero-main{align-items:center;gap:1rem;min-width:0;display:flex}.meta-row{color:var(--ink-soft);flex-wrap:wrap;gap:.85rem;font-size:.9rem;display:flex}.overlay-sidebar{display:none}.sidebar-close{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff38;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;margin-inline-start:auto;display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes brandReveal{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes loginScene{0%{opacity:.45}to{opacity:1}}.clinic-welcome{border-radius:var(--radius);background:linear-gradient(120deg, #d7eef6bf, #ffffffeb), var(--bg-elevated);border:1px solid #0b6b8a1f;align-items:center;gap:1rem;margin-bottom:1rem;padding:1.1rem 1.25rem;animation:.45s both riseIn;display:flex}.clinic-welcome-mark{background:var(--brand);color:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 10px 22px #0b6b8a40}.clinic-welcome strong{font-family:var(--display);font-size:1.15rem;font-weight:700;display:block}.clinic-welcome span{color:var(--ink-soft);font-size:.92rem}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.photo-grid-item{flex-direction:column;gap:.5rem;display:flex}.photo-card{border:1px solid var(--line);cursor:pointer;text-align:right;color:inherit;background:#fff;border-radius:14px;padding:0;transition:transform .15s,box-shadow .15s;overflow:hidden}.photo-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.photo-card img,.photo-placeholder{object-fit:cover;background:var(--bg-soft);width:100%;height:140px;display:block}.photo-placeholder{color:var(--ink-faint);place-items:center;font-size:.85rem;display:grid}.photo-card-meta{flex-direction:column;gap:.2rem;padding:.65rem .75rem;display:flex}.photo-card-meta strong{font-size:.9rem}.photo-card-meta span{color:var(--ink-soft);font-size:.78rem}.photo-actions{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.photo-viewer{color:#fff;background:#0f1c1b;border-radius:18px;flex-direction:column;width:min(900px,100%);max-height:92vh;display:flex;position:relative;overflow:hidden}.photo-viewer img{object-fit:contain;background:#000;width:100%;max-height:70vh}.photo-viewer-close{top:.75rem;z-index:2;color:#fff;background:#ffffff1f;position:absolute;inset-inline-start:.75rem}.photo-viewer-meta{gap:.35rem;padding:1rem 1.15rem 1.25rem;display:grid}.photo-viewer-meta span,.photo-viewer-meta p{color:#ffffffbf;font-size:.9rem}.cal-weekdays,.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;display:grid}.cal-weekdays{color:var(--ink-soft);text-align:center;margin-bottom:.45rem;font-size:.8rem}.cal-cell{border:1px solid var(--line);cursor:pointer;min-height:54px;color:var(--ink);background:#fff;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:.35rem;display:flex}.cal-cell.empty-cell{cursor:default;background:0 0;border:0}.cal-cell.has-items{background:var(--brand-soft);border-color:#0f6e6a40}.cal-cell.is-today{box-shadow:inset 0 0 0 2px var(--brand)}.cal-cell.is-selected{background:var(--brand);color:#fff;border-color:var(--brand)}.cal-day{font-size:.9rem;font-weight:600}.cal-count{color:var(--brand-deep);background:#0f6e6a26;border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.cal-cell.is-selected .cal-count{color:#fff;background:#fff3}.row-selected td{background:#eef8f6!important}.drawer-backdrop{z-index:55;background:#0f1e1c66;justify-content:flex-start;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.appt-drawer{background:var(--bg-elevated);width:min(420px,92vw);height:100%;animation:.25s riseIn;overflow:auto;box-shadow:-10px 0 40px #00000026}.drawer-head{border-bottom:1px solid var(--line);background:var(--bg-elevated);z-index:1;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.15rem;display:flex;position:sticky;top:0}.drawer-block{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.95rem}.drawer-block h3{margin-bottom:.55rem;font-size:1rem}.drawer-block p{color:var(--ink-soft);margin:.25rem 0}.notify-log-item{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.85rem 1rem}.notify-log-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.notify-log-meta{color:var(--ink-soft);margin-top:.35rem;font-size:.82rem}.notify-log-body{background:var(--bg-soft);white-space:pre-wrap;font-family:var(--font);color:var(--ink);border-radius:12px;margin:.75rem 0 0;padding:.85rem;font-size:.9rem;line-height:1.7}.invoice-preview-layer{z-index:60;background:#0f172a8c;flex-direction:column;align-items:center;gap:1rem;padding:1.25rem;display:flex;position:fixed;inset:0;overflow:auto}.invoice-preview-toolbar{background:#fff;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:min(820px,100%);padding:.85rem 1rem;display:flex;box-shadow:0 8px 30px #0000001f}.invoice-sheet{color:#111;background:#fff;border-radius:12px;width:min(820px,100%);padding:2rem 2.25rem;font-size:.95rem;line-height:1.6;box-shadow:0 12px 40px #0000002e}.invoice-header{border-bottom:2px solid #0b6b8a;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.invoice-header h1{color:#0b6b8a;margin:0 0 .35rem;font-size:1.45rem}.invoice-header p{color:#475569;margin:.15rem 0;font-size:.9rem}.invoice-meta{text-align:start;min-width:180px}.invoice-meta strong{color:#0f172a;margin-bottom:.35rem;font-size:1.35rem;display:block}.invoice-party{background:#f8fafc;border-radius:10px;margin-bottom:1.25rem;padding:.85rem 1rem}.invoice-party h2{color:#0b6b8a;margin:0 0 .5rem;font-size:.95rem}.invoice-party p{margin:.2rem 0}.invoice-table{border-collapse:collapse;width:100%;margin-bottom:1.25rem}.invoice-table th,.invoice-table td{text-align:right;border:1px solid #e2e8f0;padding:.55rem .65rem}.invoice-table th{background:#f1f5f9;font-weight:600}.invoice-summary{gap:.4rem;width:min(320px,100%);margin-inline-start:auto;display:grid}.invoice-summary>div{justify-content:space-between;gap:1rem;padding:.25rem 0;display:flex}.invoice-total{border-top:2px solid #0b6b8a;margin-top:.25rem;font-size:1.05rem;padding-top:.5rem!important}.invoice-notes{border-top:1px dashed #cbd5e1;margin-top:1.25rem;padding-top:.75rem}.invoice-notes h3{margin:0 0 .35rem;font-size:.95rem}.invoice-footer{color:#64748b;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:.85rem;font-size:.88rem;display:flex}@media print{body *{visibility:hidden}.report-sheet,.report-sheet *,.invoice-preview-layer,.invoice-preview-layer *,.invoice-sheet,.invoice-sheet *{visibility:visible}.no-print,.sidebar,.mobile-toggle,.overlay-sidebar,.drawer-backdrop{display:none!important}.invoice-preview-layer{box-shadow:none;background:0 0;padding:0;position:static;overflow:visible}.invoice-sheet{width:100%;max-width:none;box-shadow:none;border-radius:0;margin:0;padding:12mm;position:absolute;inset:0}.main{padding:0!important}@page{margin:10mm}}@media (width<=1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:40;width:min(280px,86vw);transition:transform .25s;position:fixed;inset:0 auto 0 0;transform:translate(110%)}[dir=rtl] .sidebar{visibility:hidden;transition:transform .25s,visibility 0s linear .25s;inset:0 0 0 auto;transform:translate(105%)}[dir=rtl] .sidebar.open{visibility:visible;transition:transform .25s;transform:translate(0);box-shadow:-12px 0 40px #00000040}.sidebar-close{display:inline-grid}.overlay-sidebar{z-index:35;background:#00000059;display:block;position:fixed;inset:0}.mobile-toggle{place-items:center;display:inline-grid}.login-page{grid-template-columns:1fr}.page-hero,.page-hero-content{min-height:140px}.patient-hero{flex-direction:column;align-items:flex-start}.login-visual{min-height:240px;padding:2rem}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.main{padding:1rem 1rem 2rem}.topbar{flex-direction:column}}.photo-compare{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.photo-compare-slot{border:1px dashed var(--line);border-radius:14px;flex-direction:column;align-items:stretch;gap:.5rem;padding:.5rem;display:flex}.photo-compare-slot h4{margin:0;font-size:.9rem}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent;overflow-x:hidden}.mobile-bar{display:none}@media (width<=900px){.sidebar{height:100dvh;padding-bottom:max(1.25rem, env(safe-area-inset-bottom))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-bar{z-index:30;padding:max(.6rem, env(safe-area-inset-top)) 1rem .6rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#ffffffeb;align-items:center;gap:.75rem;margin:-1rem -1rem 1rem;display:flex;position:sticky;top:0}.mobile-bar strong{font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1.05rem;overflow:hidden}.mobile-bar .mobile-toggle{box-shadow:none;border:1px solid var(--line);flex-shrink:0}.topbar h1{font-size:1.4rem}.section-head{flex-wrap:wrap}.toolbar .field,.toolbar .search-wrap{flex:140px;min-width:0!important}.invoice-sheet{padding:1.25rem}.invoice-header{flex-direction:column;gap:.75rem}.invoice-meta{min-width:0}}@media (width<=640px){:root{--radius:14px}.main{padding:.85rem .85rem 2rem}.mobile-bar{margin:-.85rem -.85rem .85rem;padding-inline:.85rem}input,select,textarea{font-size:16px!important}.field input,.field select,.field textarea,.search-input{min-height:46px}.btn{min-height:44px}.btn-sm{min-height:38px}.card{padding:1rem}.stat-value{overflow-wrap:anywhere;font-size:1.3rem}.stat-label{font-size:.8rem}.stat-icon{width:34px;height:34px}.stat-hint{font-size:.74rem}.page-hero,.page-hero-content{min-height:120px}.page-hero-content{flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:1rem}.page-hero h1{font-size:1.4rem}.page-hero p{font-size:.85rem}.page-hero-actions{width:100%}.page-hero-actions .btn{flex:140px}.patient-hero{padding:1.1rem}.patient-hero-main{flex-wrap:wrap}.table-wrap{box-shadow:none;background:0 0;border:0;overflow:visible}table,thead,tbody,tr,td{width:100%;min-width:0;display:block}thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}tbody tr{background:var(--bg-elevated);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #cfdcd8b3;margin-bottom:.75rem;padding:.35rem .9rem}tbody tr:hover{background:var(--bg-elevated)}td{text-align:end;border-bottom:1px dashed var(--line);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex}td:before{content:attr(data-label);color:var(--ink-soft);text-align:start;flex-shrink:0;font-size:.8rem;font-weight:600}td:not([data-label]):before{content:none}td[colspan]{text-align:center;display:block}tr:last-child td,tbody tr td:last-child{border-bottom:0}.row-actions{justify-content:flex-end}.row-selected td{background:0 0!important}.invoice-table,.invoice-table thead,.invoice-table tbody,.invoice-table tr,.invoice-table td{display:revert;width:auto;position:static}.invoice-table{width:100%;display:table}.invoice-table thead{clip:auto;height:auto;display:table-header-group}.invoice-table tbody{display:table-row-group}.invoice-table tr{box-shadow:none;border:0;margin:0;padding:0;display:table-row}.invoice-table td{text-align:start;border-bottom:1px solid #e2e8f0;display:table-cell}.invoice-table td:before{content:none}.modal-backdrop{align-items:end;padding:0}.modal,.modal-lg{border-radius:22px 22px 0 0;width:100%;max-height:92dvh}.modal-head{background:var(--bg-elevated);z-index:1;padding:1rem;position:sticky;top:0}.modal-body{padding:1rem}.modal-actions{padding:0 1rem max(1rem, env(safe-area-inset-bottom));flex-direction:column-reverse}.modal-actions .btn{width:100%}.appt-drawer{width:100vw}.invoice-preview-layer{padding:.5rem}.invoice-preview-toolbar .btn{flex:auto}.pill-tabs{scrollbar-width:none;flex-wrap:nowrap;margin-inline:-.85rem;padding-inline:.85rem;overflow-x:auto}.pill-tabs::-webkit-scrollbar{display:none}.pill-tabs button{white-space:nowrap;flex-shrink:0;min-height:40px}.cal-weekdays,.cal-grid{gap:.2rem}.cal-weekdays{font-size:.68rem}.cal-cell{border-radius:10px;min-height:46px;padding:.25rem}.cal-day{font-size:.82rem}.cal-count{padding:.05rem .35rem;font-size:.65rem}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.login-visual{gap:1rem;min-height:0;padding:1.5rem 1.25rem}.login-visual h1{max-width:none;font-size:1.75rem}.login-visual p{font-size:.95rem}.login-visual-foot{display:none}.login-panel{align-items:start;padding:1.25rem 1rem 2rem}.login-card{margin-top:-2.5rem;padding:1.5rem 1.25rem;position:relative}}@media (width<=380px){.grid-4{grid-template-columns:1fr}}
