:root {
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  color: #283241;
  background: #eef1f6;
  font-synthesis: none;
  --sidebar: #30373e;
  --sidebar-hover: #424a53;
  --blue: #2464a8;
  --blue-dark: #124c89;
  --red: #e33e49;
  --line: #e2e7ee;
  --muted: #7f8998;
  --surface: #fff;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }

.app-shell { min-height: 100vh; }
.sidebar {
  background: var(--sidebar); color: #e6e9ed; width: 200px; position: fixed;
  inset: 0 auto 0 0; display: flex; flex-direction: column; z-index: 5;
  transition: width .18s ease; box-shadow: 1px 0 4px #1e252b22;
}
.brand { height: 48px; display:flex; align-items:center; padding:0 14px; color:#ffbb34; font-weight:800; font-size:14px; border-bottom:1px solid #ffffff0d; }
.brand small { color:#e5e8ed; font-size:10px; margin-left:6px; font-weight:500; }
.nav-list { overflow:auto; padding-top:8px; }
.nav-item { color:#d4d8dc; border:0; text-decoration:none; width:100%; min-height:32px; display:flex; align-items:center; gap:10px; padding:7px 13px; font-size:12px; font-weight:600; line-height:1.25; background:transparent; text-align:left; border-left:3px solid transparent; }
.nav-item:hover { background:var(--sidebar-hover); color:white; }
.nav-item.active { background:#ffffff20; color:#fff; border-left-color:#3687dc; }
.nav-icon { width:13px; min-width:13px; text-align:center; font-size:12px; }
.nav-bottom { margin-top:auto; border-top:1px solid #ffffff0c; padding:7px 0; }
.topbar { position:fixed; top:0; left:200px; right:0; height:48px; display:flex; align-items:center; gap:12px; padding:0 18px; background:#30363d; color:#eceff4; z-index:4; }
.top-action { height:30px; border-radius:18px; padding:0 12px; border:0; background:#f8f8f8; color:#67573b; font-size:11px; font-weight:700; white-space:nowrap; }
.top-action.danger { color:#fff; background:#e51f2c; border-radius:6px; }
.alert-bar { position:fixed; top:48px; left:200px; right:0; height:41px; display:flex; align-items:center; gap:10px; padding:0 18px; background:#ffe1e0; border-bottom:1px solid #e88c8b; color:#8c3f3f; z-index:3; font-size:11px; }
.alert-bar a { margin-left:auto; font-weight:700; }
.expanded .main { padding-top:48px; }
.expanded .content { padding-top:12px; }
.menu-toggle { background:none; color:#d8dbe0; border:0; font-size:19px; padding:3px 0; }
.search { width:min(360px,40vw); height:32px; position:relative; }
.search input { width:100%; height:100%; padding:0 34px 0 12px; border:1px solid #68717c; background:#464d55; color:#fff; border-radius:5px; outline:none; font-size:12px; }
.search input::placeholder { color:#b7bec7; }
.search > span { position:absolute; right:10px; top:6px; color:#68bee9; }
.search-results { position:absolute; z-index:20; top:calc(100% + 5px); left:0; right:0; max-height:320px; overflow:auto; border:1px solid #dce3eb; border-radius:6px; background:#fff; box-shadow:0 8px 24px #162b4326; }
.search-result { display:flex; width:100%; min-height:41px; align-items:center; justify-content:space-between; gap:12px; padding:8px 14px; border:0; border-bottom:1px solid #edf0f4; background:#fff; color:#17324e; text-align:left; cursor:pointer; }
.search-result:hover,.search-result:focus { background:#edf5ff; outline:none; }
.search-result strong { overflow:hidden; flex:1; color:#152b43; font-size:12px; font-weight:600; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.search-result-meta { display:flex; align-items:center; gap:10px; white-space:nowrap; }
.search-result-id { border-radius:4px; padding:3px 7px; background:#f0f4f8; color:#23415f; font-size:10px; font-weight:700; }
.search-result small,.search-empty { color:#738195; font-size:11px; }
.search-empty { padding:12px; background:#fff; }
.top-spacer { flex:1; }
.clinic-select, .icon-button, .user-button { height:32px; color:#e8ebef; background:#414851; border:1px solid #59616a; border-radius:5px; padding:0 10px; font-size:11px; }
.icon-button { background:transparent; border:0; font-size:17px; padding:0 4px; }
.user-button { background:none; border:0; white-space:nowrap; }
.main { margin-left:200px; padding-top:48px; min-height:100vh; background:#eef1f6; }
.content { padding:24px 24px 38px; min-height:calc(100vh - 48px); }
.page-heading { min-height:36px; display:flex; align-items:center; gap:12px; margin-bottom:13px; }
.page-heading.accent-purple { border-left:3px solid #32a4d9; padding-left:12px; }
.page-heading.accent-gold { border-left:3px solid #dcae25; padding-left:12px; }
.page-heading.accent-orange { border-left:3px solid #f0842d; padding-left:12px; }
.page-heading h1 { margin:0; font-size:16px; font-weight:700; color:#293443; }
.page-heading .clinic-pill, .date-pill { font-size:11px; color:#687487; background:#f5f7fa; border:1px solid #e9edf2; border-radius:20px; padding:6px 11px; }
.date-pill { margin-left:auto; border-radius:6px; }
.metrics { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:13px; }
.metric-card { position:relative; background:var(--surface); border:1px solid #e5e9ef; border-radius:12px; min-height:146px; padding:15px 15px 12px; box-shadow:0 2px 5px #23344d08; overflow:hidden; }
.metric-card::before { content:""; position:absolute; height:4px; background:var(--red); left:0; right:0; top:0; }
.metric-label { display:flex; align-items:center; gap:8px; color:#7b8796; font-size:11px; font-weight:600; }
.metric-value { color:#131c2c; font-size:22px; font-weight:800; letter-spacing:-.4px; margin:14px 0 6px; }
.metric-meta { display:flex; justify-content:space-between; color:#8992a0; font-size:10px; }
.metric-foot { border-top:1px solid #edf0f4; color:#8992a0; font-size:10px; margin-top:10px; padding-top:8px; }
.dashboard-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:15px; }
.panel { background:#fff; border:1px solid #e5e9ef; border-radius:12px; overflow:hidden; box-shadow:0 2px 5px #23344d08; }
.panel-head { min-height:40px; display:flex; align-items:center; gap:8px; padding:0 14px; font-size:13px; font-weight:700; border-bottom:1px solid #edf0f4; }
.panel-head a { margin-left:auto; font-size:11px; color:#315e9b; text-decoration:none; font-weight:600; }
.panel-body { min-height:128px; }
.due-row { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid #edf0f4; }
.due-cell { text-align:center; padding:11px 5px 9px; border-right:1px solid #e7ebf0; font-size:10px; color:#778394; }
.due-cell:last-child { border-right:0; }
.due-cell strong { display:block; font-size:14px; margin:5px 0 2px; color:#2464a8; }
.due-cell.late { background:#fff2f2; color:#bb393f; }
.due-cell.late strong { color:#b72831; }
.empty { min-height:54px; display:grid; place-items:center; color:#8d96a3; font-size:12px; }
.appt-summary { background:#eff8fe; padding:12px 14px; font-size:12px; color:#4b5969; }
.appt-summary strong { color:#1768a8; font-size:17px; margin-right:5px; }

.toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; background:#fff; border:1px solid #e7ebf0; border-radius:8px; padding:12px; margin-bottom:12px; }
.toolbar.compact { padding:9px 10px; }
.toolbar-label { color:#8390a0; font-size:10px; font-weight:700; letter-spacing:.04em; margin-right:2px; }
.chip, .button { border:1px solid #e1e6ed; border-radius:22px; color:#5f6b7c; background:#f6f8fb; padding:7px 13px; font-size:11px; }
.chip:hover, .button:hover { border-color:#9fb8d5; color:#174e87; }
.chip.selected { color:#fff; background:#263e5e; border-color:#263e5e; }
.button { border-radius:6px; font-weight:600; }
.button.primary { color:#fff; background:#2464a8; border-color:#2464a8; }
.button.primary:hover { background:#194f8a; }
.button.danger { color:#fff; background:#e32631; border-color:#e32631; }
.button.soft { background:#eaf2fa; color:#315e8e; border-color:#eaf2fa; }
.button.icon { padding:7px 11px; }
.filters { display:grid; grid-template-columns:1fr auto; gap:10px; margin:12px 0; }
.filter-group { display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
.calendar-head { display:grid; grid-template-columns:auto auto 1fr auto; align-items:center; gap:10px; margin:12px 0; background:white; border-radius:8px; padding:10px 12px; }
.calendar-title { text-align:center; font-size:15px; font-weight:700; }
.calendar { display:grid; grid-template-columns:43px repeat(7,minmax(75px,1fr)); background:#fff; border:1px solid #e4e8ed; border-radius:8px; overflow:auto; }
.calendar > div { border-right:1px solid #e7ebef; border-bottom:1px solid #e7ebef; min-height:45px; }
.calendar .cal-day { min-height:34px; display:grid; place-items:center; font-size:11px; font-weight:700; color:#596474; background:#fff; }
.calendar .today { color:#bc333a; background:#fffbed; }
.calendar .cal-time { padding:11px 5px; color:#647082; font-size:11px; font-weight:700; }
.calendar .cal-slot { min-height:56px; background:#fff; }
.calendar .cal-slot.today { background:#fffcf0; }
.table-wrap { overflow:auto; background:#fff; border:1px solid #e8e2c9; border-radius:8px; }
.table-title { padding:10px 12px; color:#46505d; font-size:12px; font-weight:700; background:#fffdf4; }
table { border-collapse:collapse; width:100%; min-width:760px; font-size:10px; }
th { text-align:left; white-space:nowrap; background:#fcf8e9; color:#626253; padding:9px 10px; border-bottom:1px solid #e5dfc9; font-size:10px; }
td { padding:9px 10px; color:#788293; border-bottom:1px solid #eceff2; }
.filter-input { width:100%; border:1px solid #dfdfd8; border-radius:3px; height:24px; padding:2px 5px; font-size:10px; }
.summary-cards { display:grid; grid-template-columns:repeat(3,minmax(130px,1fr)); gap:9px; margin:12px 0; }
.summary-card { border:1px solid #e7e3d7; border-radius:8px; padding:11px 13px; background:#fff; }
.summary-card.highlight { background:#fff5ce; border-color:#e3c96b; }
.summary-card span { display:block; color:#7c8490; font-size:10px; margin-bottom:6px; }
.summary-card strong { font-size:15px; }
.tabs { display:flex; gap:24px; border-bottom:1px solid #dce2e7; margin:8px 0; }
.tab { border:0; background:none; padding:8px 12px; color:#7d8793; border-bottom:2px solid transparent; font-size:13px; }
.tab.active { color:#315f94; border-bottom-color:#3379bb; font-weight:700; }
.notice { padding:11px 14px; border:1px solid #efc8c6; background:#fff0ef; color:#9c3538; font-size:11px; display:flex; align-items:center; border-radius:6px; }
.notice-bar { min-height:40px; background:#ffe4e2; border:1px solid #eb9693; border-radius:5px; color:#984244; display:flex; align-items:center; padding:0 12px; font-size:11px; }
.notice-bar a { margin-left:auto; font-weight:700; }
.button.success { background:#15a35c; color:#fff; border-color:#15a35c; }
.button.success:hover { background:#11884d; }
.empty-state { background:#fff; border:1px solid #e5e9ef; border-radius:12px; text-align:center; color:#293443; padding:24px; }
.empty-state h2 { margin:8px 0; font-size:15px; }
.empty-state p { color:#7b8796; font-size:12px; line-height:1.5; margin:8px auto 0; max-width:560px; }
.empty-art { font-size:38px; margin:0 auto 6px; }
.implant-empty { width:min(505px,100%); margin:18px 0 0 auto; min-height:196px; display:flex; flex-direction:column; justify-content:center; }
.fees-empty { width:min(380px,100%); margin:18px auto; min-height:165px; }
.transfer-section { margin-top:18px; }
.transfer-section > header { margin-bottom:12px; }
.transfer-section h2,.transfer-card h3 { margin:0 0 5px; color:#203950; font-size:14px; }
.transfer-section header p,.transfer-card p { margin:0; color:#768397; font-size:11px; line-height:1.5; }
.transfer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.transfer-card { min-width:0; border:1px solid #e1e7ee; border-radius:7px; background:#fff; padding:14px; }
.transfer-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.transfer-actions label { position:relative; }
.transfer-actions input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.transfer-preview { color:#627187; font-size:11px; }
.transfer-preview p { margin:10px 0 8px; }
.transfer-success { color:#167849 !important; }
.transfer-error { color:#b23d42 !important; }
.material-empty { width:min(540px,100%); margin:14px auto 0; min-height:280px; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.material-empty .button { margin-top:16px; }
.hint { background:#f7f9fb; border-radius:7px; color:#7b8796; font-size:10px; text-align:left; padding:12px; width:100%; margin-top:16px; }
.material-tabs, .lab-tabs { justify-content:flex-start; gap:12px; }
.material-tabs .tab, .lab-tabs .tab { border:0; border-radius:20px; padding:9px 14px; font-size:11px; background:#f5f7fa; }
.material-tabs .tab.active, .lab-tabs .tab.active { background:#12a4db; color:#fff; }
.status-chips { border:0; background:transparent; padding:0; }
.röm-tabs { border:0; background:transparent; padding:0 10px; margin-bottom:4px; gap:4px; }
.röm-tabs .tab { border:0; border-bottom:2px solid transparent; border-radius:0; font-size:12px; }
.röm-tabs .tab.active { color:#315f94; background:#f7f9fb; border-bottom-color:#3b7fbf; }
.collections-empty { min-height:350px; border-radius:0; border:0; padding-top:62px; }
.collections-empty p { max-width:610px; }
.actions-row { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin:24px 0 0; }
.cleanup { border-top:1px dashed #e0d5d5; margin:36px auto 0; padding-top:18px; color:#bb7777; font-size:10px; max-width:640px; }
.correction-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:16px; }
.correction-layout > section:first-child .empty-state { margin-top:12px; min-height:165px; }
.request-card { display:flex; flex-direction:column; gap:12px; }
.request-card > .button { align-self:flex-end; }
.ortho-tabs { border:0; background:transparent; padding:0 10px; margin:0; }
.ortho-tabs .tab { border-radius:7px; background:#f5f7fa; padding:8px 16px; border:0; }
.ortho-tabs .tab.active { color:#fff; background:#7126ce; }
.ortho-select { display:flex; align-items:center; gap:16px; }
.ortho-select .field { min-width:min(420px,70%); }
.ortho-select small { color:#9a7750; font-size:10px; }
.ortho-select > strong { font-size:18px; }
.ortho-select > strong small { display:block; font-weight:400; }
.info-callout { margin:10px 0; padding:11px 13px; border-left:3px solid #8f36d1; border-radius:6px; background:#fff; color:#687487; font-size:10px; line-height:1.5; }
.notice a { margin-left:auto; }
.module-grid { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:12px; }
.module-card { background:#fff; border:1px solid #e4e9ef; border-radius:9px; padding:16px; min-height:105px; }
.module-card h3 { font-size:12px; margin:0 0 11px; }
.module-card p { font-size:11px; color:#8791a0; margin:0; }
.form-grid { display:grid; grid-template-columns:repeat(3,minmax(160px,1fr)); gap:12px; }
.field { display:flex; flex-direction:column; gap:5px; color:#738092; font-size:11px; }
.field input, .field select, .field textarea { border:1px solid #dce2e9; border-radius:5px; background:#fff; padding:9px; color:#3b4553; min-height:36px; }
.field textarea { resize:vertical; min-height:76px; }
.content-card { background:#fff; border:1px solid #e5e9ef; border-radius:9px; padding:14px; margin-bottom:12px; }
.content-card h2 { font-size:13px; margin:0 0 13px; }
.login-screen { min-height:100vh; display:grid; grid-template-columns:minmax(360px,1.1fr) minmax(330px,.9fr); background:#fff; }
.login-hero { color:#fff; padding:42px clamp(24px,6vw,92px); background:linear-gradient(145deg,#152c47,#245e93); display:flex; flex-direction:column; justify-content:center; }
.login-hero .eyebrow { font-size:12px; font-weight:700; letter-spacing:.12em; color:#bdd6ed; }
.login-hero h1 { font-size:clamp(30px,4vw,48px); line-height:1.15; max-width:610px; margin:18px 0; }
.login-hero p { max-width:560px; line-height:1.7; color:#d1e0ef; font-size:14px; }
.login-side { display:flex; flex-direction:column; justify-content:center; padding:40px clamp(24px,7vw,92px); }
.login-brand { color:#d99416; font-weight:800; font-size:20px; margin-bottom:4px; }
.login-subtitle { color:#7b8797; font-size:12px; margin-bottom:26px; }
.login-form { max-width:390px; width:100%; }
.login-form .field { margin:14px 0; }
.login-form input { min-height:42px; }
.login-form .button { margin-top:8px; width:100%; border-radius:6px; min-height:42px; }
.demo-note { color:#8a95a3; font-size:10px; line-height:1.5; margin-top:12px; }
.login-extra { display:flex; align-items:center; gap:12px; border:1px solid #e7ebef; border-radius:8px; padding:10px; margin-top:20px; max-width:390px; }
.login-extra strong { font-size:12px; }
.login-extra p { font-size:10px; color:#8791a0; margin:5px 0 0; }
.qr-placeholder { width:44px; height:44px; display:grid; place-items:center; border:4px solid #26384d; color:#26384d; font-size:25px; background:repeating-linear-gradient(45deg,#fff,#fff 4px,#f0f2f4 4px,#f0f2f4 7px); }
.secure-lines { display:flex; flex-direction:column; gap:5px; margin:12px 0 34px; color:#7e8a99; font-size:9px; }
.login-footer { position:absolute; bottom:16px; color:#929ba8; font-size:10px; }
.login-payment { color:#334155; margin-top:24px; }
.login-payment p { font-size:11px; color:#778394; margin:8px 0 0; }
.setup-page { background:#eef1f6; min-height:100vh; display:grid; place-items:center; padding:20px; }
.setup-card { width:min(520px,100%); background:#fff; border:1px solid #e2e7ee; border-radius:12px; padding:28px; box-shadow:0 8px 28px #23344d10; }
.setup-card h1 { font-size:20px; margin:14px 0 8px; }
.setup-card > p, .setup-card > small { font-size:12px; color:#7f8998; line-height:1.55; }
.setup-card form { display:grid; gap:13px; margin:20px 0; }
.setup-card form > .button { min-height:40px; }
.form-error, .error-panel { color:#a02f34; background:#fff0ef; border:1px solid #efc8c6; border-radius:6px; padding:10px 12px; font-size:12px; }
.toast { position:fixed; z-index:30; right:20px; bottom:20px; padding:12px 16px; border-radius:8px; background:#223b58; color:white; font-size:12px; box-shadow:0 8px 26px #11263d33; }
.toast.error { background:#a93439; }
.loading { color:#7f8998; padding:28px; font-size:13px; }
.local-warning { border:1px solid #e1e8ef; background:#f7fafc; color:#677689; border-radius:6px; padding:9px 12px; margin:0 0 10px; font-size:10px; }
.search-inline input { min-width:min(350px,60vw); border:1px solid #dce2e9; border-radius:6px; padding:9px 11px; }
.count-label { color:#8791a0; font-size:11px; }
.danger-outline { border-color:#e9c8c9; color:#a83e41; background:#fff; }
.section-heading { font-size:13px; margin:20px 0 8px; }
.appointment-chip { background:#dcedfa; border-left:3px solid #2779ba; border-radius:4px; margin:3px; padding:5px; color:#345575; font-size:10px; }
.appointment-chip small { display:block; color:#708297; margin-top:3px; }
.finance-filters { margin-top:0 !important; }
.modal-backdrop { position:fixed; inset:0; background:#16233477; z-index:20; display:grid; place-items:center; padding:16px; }
.modal { width:min(620px,100%); background:#fff; border-radius:12px; box-shadow:0 18px 60px #15202c55; padding:18px; }
.modal-head { display:flex; align-items:center; margin-bottom:14px; }
.modal-head h2 { font-size:15px; margin:0; }
.modal-head button { margin-left:auto; border:0; background:none; font-size:20px; color:#6f7b8b; }
.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
.collapsed .sidebar { width:58px; }
.collapsed .brand { font-size:0; padding:0; justify-content:center; }
.collapsed .brand::after { content:'DF'; font-size:13px; }
.collapsed .nav-item { justify-content:center; padding:9px 4px; font-size:0; }
.collapsed .nav-icon { font-size:14px; }
.collapsed .topbar { left:58px; }
.collapsed .main { margin-left:58px; }
.collapsed .alert-bar { left:58px; }
.patient-link { color:#285d8f; font-weight:700; text-decoration:none; }
.sidebar-shortcuts { display:grid; gap:2px; padding:6px 8px; border-bottom:1px solid #41474e; }
.sidebar-shortcuts .nav-item { width:100%; border:0; background:transparent; color:#d8dde2; text-align:left; }
.sidebar-shortcuts .nav-item:hover { background:#41474e; }
.patient-record-actions { display:flex; justify-content:flex-end; gap:7px; margin:-8px 0 8px; }
.patient-link:hover { text-decoration:underline; }
.patient-detail-tabs { display:flex; gap:3px; overflow-x:auto; background:#fff; border:1px solid #e4e8ed; border-radius:7px 7px 0 0; padding:6px 7px 0; }
.patient-tab { flex:0 0 auto; border:0; border-bottom:2px solid transparent; padding:10px 11px; color:#697586; background:#fff; font-size:11px; white-space:nowrap; cursor:pointer; }
.patient-tab.active { color:#315f94; border-bottom-color:#3379bb; font-weight:700; }
.patient-detail-content { min-height:260px; border-radius:0 0 8px 8px; }
.patient-detail-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:8px 4px 18px; }
.patient-detail-head h1 { margin:5px 0 0; font-size:20px; color:#293747; }
.patient-detail-head .eyebrow { color:#8792a1; font-size:9px; letter-spacing:.08em; }
.patient-info-grid { display:grid; grid-template-columns:repeat(3,minmax(150px,1fr)); gap:10px; }
.patient-info-grid article { min-height:68px; padding:12px; border:1px solid #e5e9ef; border-radius:6px; background:#fbfcfd; }
.patient-info-grid small { display:block; color:#818c9b; font-size:10px; margin-bottom:8px; }
.patient-info-grid strong { color:#394656; font-size:12px; font-weight:600; white-space:pre-wrap; }
.appointment-filters { display:grid; gap:8px; margin:0 0 10px; }
.appointment-filters > div { display:flex; align-items:center; gap:6px; min-width:0; overflow-x:auto; padding:3px 0; }
.appointment-filters b { flex:0 0 58px; color:#707b89; font-size:9px; }
.appointment-filters .chip { white-space:nowrap; }
.appointment-view-spacer { flex:1 1 auto; }
.checkbox-field { display:flex; align-items:center; flex-direction:row; gap:8px; min-height:36px; }
.checkbox-field input { min-height:auto; width:15px; height:15px; }
.appt-new { margin-left:auto; flex:0 0 auto; }
.calendar-switches { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:4px; }
.calendar-switches .button { padding:6px 9px; font-size:10px; white-space:nowrap; }
.appointment-calendar { grid-template-columns:48px repeat(7,minmax(100px,1fr)); min-width:760px; }
.appointment-calendar .cal-day { position:sticky; top:0; z-index:1; }
.appointment-calendar .cal-time-head { min-height:34px; background:#fff; }
.appointment-calendar .cal-slot { min-height:60px; }
.appointment-event { display:flex; flex-direction:column; gap:2px; margin:3px; padding:7px; border:0; border-left:3px solid #17263855; border-radius:5px; background:var(--event-color,#246ca5); color:#fff; text-align:left; font-size:10px; line-height:1.25; overflow:hidden; }
.appointment-event { width:calc(100% - 6px); cursor:pointer; }
.appointment-event strong { font-size:9px; }
.appointment-event span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.appointment-event small { color:#ffffffcc; }
.collection-tabs { display:flex; gap:8px; margin:0 0 12px; border-bottom:1px solid #dce3eb; }
.collection-toolbar { display:flex; justify-content:space-between; gap:12px; align-items:center; background:#fff; padding:10px 12px; border:1px solid #e0e6ee; border-radius:8px; margin-bottom:12px; }
.collection-toolbar > div { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.collection-toolbar label { display:flex; gap:6px; align-items:center; margin-left:8px; color:#68788c; font-size:12px; }
.collection-toolbar select { border:1px solid #ced7e2; border-radius:5px; background:#fff; padding:7px 10px; color:#334155; }
.collection-empty { min-height:320px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:32px; }
.collection-empty .empty-art { font-size:44px; }
.collection-empty h2 { margin:12px 0 6px; font-size:18px; }
.collection-empty p { max-width:650px; color:#8996a8; margin:3px 0; }
.collection-actions { display:flex; gap:12px; justify-content:center; margin-top:18px; flex-wrap:wrap; }
.collection-footer { border-top:1px dashed #d9e0e8; margin-top:34px; padding-top:24px; text-align:center; }
.lab-date-filter { display:flex; align-items:flex-end; gap:8px; padding:10px 12px; margin-bottom:10px; background:#fff; border:1px solid #e1e7ef; border-radius:8px; }
.lab-mode-tabs { display:flex; gap:6px; overflow:auto; padding:2px 0 10px; }
.lab-results { padding:0; overflow:hidden; }
.lab-results > header { display:flex; align-items:center; gap:12px; padding:12px 14px; background:#fffdeb; border-bottom:1px solid #e5dfc6; }
.lab-results > header span { margin-left:auto; color:#7b8798; font-size:12px; }
.lab-results .table-wrap { max-width:100%; }
.lab-results table { min-width:1250px; }
.lab-column-filter { width:100%; min-width:65px; height:25px; border:1px solid #d9e0e8; border-radius:3px; }
.lab-placement-filters { display:flex; gap:8px; padding:10px; border-top:1px solid #e3e8ef; }
.ortho-transfer { display:flex; align-items:flex-end; gap:10px; padding:12px; margin:10px 0; }
.ortho-transfer label { display:flex; flex-direction:column; gap:5px; min-width:220px; color:#596a7e; font-size:12px; }
.ortho-transfer select { height:36px; border:1px solid #cdd6e1; border-radius:5px; padding:0 9px; background:#fff; }
.day-end-card { max-width:760px; margin:0 auto; padding:20px; }
.day-end-card header { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #e3e8ef; padding-bottom:10px; }
.day-end-card header h2 { margin:0; }
.day-end-card header span { color:#7b8798; }
.day-end-checks { display:grid; gap:10px; padding:16px 0; }
.day-end-checks label { display:flex; align-items:center; gap:9px; border:1px solid #e2e7ef; border-radius:6px; padding:12px; }
.day-end-checks input { width:17px; height:17px; }
@media(max-width:800px) { .collection-toolbar { align-items:flex-start; flex-direction:column; } }
.month-calendar { display:grid; grid-template-columns:repeat(7,minmax(100px,1fr)); min-width:740px; overflow:auto; border:1px solid #e4e8ed; border-radius:8px; background:#fff; }
.month-calendar > div { border-right:1px solid #e7ebef; border-bottom:1px solid #e7ebef; }
.month-calendar .cal-day { min-height:34px; display:grid; place-items:center; color:#596474; background:#fafbfd; font-size:10px; font-weight:700; }
.month-cell { min-height:92px; padding:5px; color:#465365; font-size:10px; }
.month-cell > b { display:block; margin-bottom:5px; }
.month-cell.muted { background:#fafbfc; color:#abb2bb; }
.month-event { margin:3px 0; padding:3px 4px; overflow:hidden; border-left:3px solid var(--event-color); background:#f3f6f9; color:#485668; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }
.month-cell small { color:#7c8795; font-size:9px; }
.photo-upload { min-width:210px; }
.patient-photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.patient-photo-grid article { overflow:hidden; border:1px solid #e4e8ed; border-radius:7px; background:#fff; }
.patient-photo-grid img { display:block; width:100%; aspect-ratio:1; object-fit:cover; background:#f2f4f6; }
.patient-photo-grid article > div { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:7px; font-size:10px; }
.patient-photo-grid article span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.patient-entry-layout { display:grid; grid-template-columns:minmax(500px,1.3fr) minmax(330px,.95fr); gap:12px; align-items:start; }
.patient-entry-main { padding:14px; }
.patient-create-intro { color:#8591a1; font-size:11px; margin:-2px 0 10px; }
.patient-create-card { padding:0; overflow:hidden; }
.patient-create-card > .panel-head { min-height:42px; background:#f8fafc; padding:0 14px; }
.patient-create-section { padding:10px 14px 13px; border-bottom:1px solid #edf0f4; }
.patient-create-section h2 { margin:0 0 9px; color:#344154; font-size:12px; }
.patient-create-section .patient-form-grid { row-gap:8px; }
.required-mark { display:inline; color:#e54448; }
.patient-create-card > .patient-form-actions { margin:0; padding:12px 14px; border:0; }
.patient-form-grid { display:grid; grid-template-columns:repeat(2,minmax(170px,1fr)); column-gap:14px; row-gap:8px; }
.patient-form-grid .span-2 { grid-column:1/-1; }
.patient-form-grid .field { gap:4px; color:#234366; font-size:10px; }
.patient-form-grid .field input,.patient-form-grid .field select,.patient-form-grid .field textarea { min-height:30px; padding:6px 9px; font-size:11px; border-color:#cfd6df; border-radius:5px; }
.patient-form-grid .field textarea { min-height:48px; }
.patient-form-grid .field small { color:#8794a4; font-size:9px; }
.patient-form-actions { display:flex; gap:8px; border-top:1px solid #e1e7ed; margin-top:12px; padding-top:12px; }
.patient-entry-side { display:grid; gap:10px; }
.patient-side-card { padding:0; overflow:hidden; margin:0; }
.patient-side-card header { min-height:38px; display:flex; align-items:center; justify-content:space-between; gap:8px; border-bottom:1px solid #e4e8ed; padding:7px 12px; color:#60758c; font-size:10px; font-weight:700; }
.patient-side-card.audit { border-color:#50d7e8; }
.patient-side-card.audit header { color:#13809b; background:#effdff; }
.patient-side-card header .button { padding:5px 9px; color:#1266ac; border-color:#c7dcfb; background:#f7fbff; font-weight:500; }
.patient-side-card p { margin:0; padding:15px 12px; color:#8290a2; font-size:10px; line-height:1.6; }
.patient-note-list { list-style:none; display:grid; gap:5px; margin:0; padding:9px 12px; }
.patient-note-list li { display:grid; grid-template-columns:1fr auto; gap:4px 8px; padding:6px 0; border-bottom:1px solid #edf0f4; font-size:10px; }
.patient-note-list li:last-child { border-bottom:0; }
.patient-note-list small { color:#8d97a5; font-size:9px; }
.patient-note-list span { grid-column:1/-1; color:#788697; }
.patient-side-card .sms-action { display:block; width:calc(100% - 24px); margin:0 12px 8px; }
.patient-side-card .sms-code { display:block; width:calc(100% - 24px); min-height:31px; margin:0 12px 8px; border:1px solid #d5dce5; border-radius:5px; padding:6px 9px; font-size:11px; }
.patient-edit-grid { display:grid; grid-template-columns:minmax(550px,1.35fr) minmax(330px,.95fr); gap:12px; align-items:start; }
.patient-card-form { background:#fff; border:1px solid #e7ebf0; border-radius:7px; padding:12px; }
.patient-detail-content { padding:12px; }
.plan-alert { max-width:710px; margin:2px auto 18px; padding:14px 18px; border:1px solid #ffaaa8; border-radius:9px; background:#fff5f5; color:#9d3034; display:grid; grid-template-columns:auto 1fr; gap:4px 12px; font-size:12px; }
.plan-alert strong { font-size:14px; }
.plan-alert a { grid-column:2; color:#a63236; font-weight:600; }
.plan-workspace { display:grid; grid-template-columns:minmax(560px,1.3fr) minmax(370px,.85fr); gap:12px; align-items:start; }
.plan-left { min-width:0; }
.tooth-card { padding:0; overflow:hidden; }
.tooth-card > header { display:flex; justify-content:space-between; align-items:center; padding:10px 12px; border-bottom:1px solid #e6e9ee; font-size:12px; }
.tooth-card > header span { display:flex; gap:4px; }
.dental-chart { margin:10px; padding:10px; border-radius:8px; background:#202a39; color:#c9e9f5; }
.jaw-label { border:1px dashed #33b9ef; border-radius:5px; text-align:center; padding:5px; color:#62c5e9; font-weight:700; font-size:9px; }
.tooth-row { display:flex; align-items:center; gap:3px; margin:6px 0; overflow:auto; }
.tooth-row > b { flex:0 0 44px; background:#344153; border-radius:4px; padding:6px 3px; color:#d3e1ec; font-size:9px; }
.tooth { flex:1 0 34px; min-width:34px; height:50px; border:2px solid #c8cdd6; border-radius:7px 7px 11px 11px; background:linear-gradient(#fff,#f0f2f5); color:#1c2a3e; font-size:11px; font-weight:700; cursor:pointer; }
.tooth.picked { background:#d8f9ed; border-color:#08ba84; color:#07805d; }
.tooth-legend { display:flex; gap:16px; flex-wrap:wrap; padding:0 12px 10px; color:#778497; font-size:9px; }
.template-row { display:flex; align-items:center; flex-wrap:wrap; gap:5px; padding:6px 12px 10px; color:#718096; font-size:10px; }
.template-row button { border:1px solid #cedbff; border-radius:5px; background:#f4f6ff; color:#293d89; padding:6px 8px; font-size:9px; }
.selected-treatment-box { margin:0 12px 10px; border:1px solid #dfe5eb; border-radius:5px; }
.selected-treatment-box > header { display:flex; justify-content:space-between; gap:8px; background:#f8fafc; padding:8px; font-size:10px; }
.selected-treatment-box > header b { color:#1261ac; }
.selected-treatment-box > p { text-align:center; color:#8792a2; font-size:10px; padding:11px; margin:0; }
.selected-treatment { display:flex; align-items:center; gap:8px; border-top:1px solid #edf0f4; padding:7px 9px; font-size:10px; }
.selected-treatment span { flex:1; }
.selected-treatment button { border:0; background:none; color:#a33; font-size:17px; }
.doctor-row { border-top:1px solid #e9edf1; padding:9px 12px; font-size:10px; }
.doctor-row select { width:calc(100% - 60px); border:1px solid #cfd6df; border-radius:5px; padding:7px; }
.plan-save-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; border-top:1px solid #e9edf1; padding:10px 12px; }
.plan-save-row input { flex:1 1 240px; min-height:31px; border:1px solid #cfd6df; border-radius:5px; padding:7px; font-size:10px; }
.plan-save-row .button:disabled { opacity:.55; cursor:not-allowed; }
.treatment-picker { padding:0; overflow:hidden; }
.treatment-picker > header { padding:12px; border-bottom:1px solid #e4e8ed; font-size:12px; }
.treatment-picker > input { display:block; width:calc(100% - 20px); margin:10px; border:1px solid #2464c0; box-shadow:0 0 0 3px #2464c022; border-radius:6px; padding:9px; font-size:10px; }
.treatment-picker nav { display:flex; gap:4px; padding:0 10px 7px; }
.treatment-picker nav button { border:0; border-radius:4px; background:#f2f4f7; color:#718096; padding:7px 9px; font-size:9px; }
.treatment-picker nav button.active { background:#2464a8; color:#fff; }
.treatment-list { max-height:390px; overflow:auto; }
.treatment-option { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; border:0; border-bottom:1px solid #f0f2f5; background:#fff; color:#213d60; padding:9px 12px; text-align:left; font-size:10px; cursor:pointer; }
.treatment-option:hover { background:#f4f8ff; }
.treatment-option small { white-space:nowrap; color:#74869b; }
.treatment-picker footer { background:#fff9e7; color:#a05c12; padding:9px 12px; font-size:9px; }
.saved-plan { display:flex; align-items:center; gap:10px; margin:8px 12px; border-left:3px solid #18ae66; background:#e0f8e9; padding:9px; font-size:10px; }
.saved-plan span { margin-left:auto; border-radius:20px; background:#bff0cf; padding:4px 8px; color:#187643; text-transform:uppercase; font-size:8px; }
.saved-plan small { color:#7a8a82; }
/* Patient detail pages follow the clinic's compact, screen-specific layouts. */
.patient-detail-tabs { flex-wrap:wrap; overflow:visible; gap:0 4px; align-content:flex-start; padding:6px 8px 0; border-radius:6px 6px 0 0; }
.patient-tab { border:1px solid #d4dce6; border-bottom:0; border-radius:6px 6px 0 0; margin:0 0 -1px; padding:8px 11px; color:#183b61; }
.patient-tab.active { background:#2466c2; color:#fff; border-color:#2466c2; box-shadow:0 2px 5px #184f9c33; }
.patient-detail-content:has(.saved-plan-grid),.patient-detail-content:has(.payment-layout),.patient-detail-content:has(.patient-module-panel),.patient-detail-content:has(.patient-stat-row) { background:transparent; border:0; padding:12px 12px 24px; }
.plan-list-toolbar { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin:0 2px 10px; color:#72839b; font-size:11px; }
.saved-plan-grid { display:grid; grid-template-columns:minmax(320px,min(790px,100%)); gap:12px; align-items:start; }
.patient-plan-card { overflow:hidden; width:100%; border:1px solid #dce3eb; border-left:3px solid #12ad5b; border-radius:8px; background:#fff; color:#152b43; box-shadow:0 1px 3px #20344d12; font-size:11px; }
.patient-plan-card-head { min-height:42px; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:8px; padding:7px 10px; background:#d9f8e5; border-bottom:1px solid #c8edd7; }
.patient-plan-card-head > div:first-child { display:flex; align-items:center; gap:8px; }
.patient-plan-card-head > div:first-child strong { font-size:13px; letter-spacing:.3px; }
.plan-status-pill { border-radius:12px; padding:3px 8px; background:#eee; color:#666; font-size:9px; font-weight:700; text-transform:uppercase; }
.plan-status-pill.approved { background:#b7f0cf; color:#087a42; }
.patient-plan-actions { display:flex; align-items:center; flex-wrap:nowrap; gap:4px; }
.plan-action { min-height:24px; border:1px solid #d2d9e2; border-radius:5px; background:#fff; color:#24425f; padding:4px 7px; font:inherit; font-size:10px; cursor:pointer; }
.plan-action.warn { border-color:#f2a300; background:#f7a600; color:#fff; font-weight:700; }
.plan-action.close { color:#c84b4b; font-size:14px; }
.patient-plan-total { padding:11px 12px 8px; text-align:center; }
.patient-plan-total > strong { display:block; font-size:27px; line-height:1.2; color:#152b43; }
.patient-plan-total > del { display:block; margin-top:2px; color:#728095; font-size:10px; }
.plan-meta { display:flex; justify-content:space-between; align-items:center; margin-top:10px; padding:0 3px; font-size:10px; }
.plan-meta time { color:#6b7c94; }
.patient-plan-table-wrap { overflow:auto; border-block:1px solid #e4e9ef; }
.patient-plan-table { width:100%; border-collapse:collapse; font-size:10px; }
.patient-plan-table thead { background:#f3f6fa; color:#5a6b80; }
.patient-plan-table th { padding:9px 7px; text-align:left; font-size:9px; letter-spacing:.3px; }
.patient-plan-table td { padding:9px 7px; border-top:1px solid #edf0f4; vertical-align:middle; }
.patient-plan-table td strong { color:#2565aa; }
.tooth-chip { display:inline-block; min-width:19px; margin:1px; border-radius:4px; background:#dbe9ff; color:#2358a0; padding:4px 5px; text-align:center; font-weight:700; }
.tooth-chip.approved { background:#d9f8e6; color:#167849; }
.plan-qty { display:inline-grid; width:24px; height:24px; place-items:center; border-radius:50%; background:#213449; color:#fff; }
.plan-final-price { display:grid; grid-template-columns:auto minmax(80px,1fr) 32px 32px; gap:5px; align-items:center; margin:8px 10px; border:1px solid #e1e6ed; border-radius:6px; background:#f3f6fa; padding:6px 8px; }
.plan-final-price input { min-width:0; height:30px; border:1px solid #ccd5df; border-radius:5px; padding:5px 8px; color:#637489; font-size:11px; }
.plan-final-price button { height:30px; border:0; border-radius:5px; background:#9db9d9; color:#fff; cursor:pointer; }
.plan-final-price button:last-child { border:1px solid #d1dbe6; background:#fff; color:#526a82; }
.plan-note,.plan-meeting-note { margin:7px 10px; border-left:3px solid #cdd8e5; border-radius:4px; background:#f6f8fb; padding:8px 9px; color:#334a63; font-size:10px; }
.plan-meeting-note { border-left-color:#2466ff; }
.plan-meeting-note > div { display:flex; justify-content:space-between; align-items:center; }
.plan-meeting-note small { display:block; margin-top:4px; color:#8290a1; font-size:9px; }
.plan-meeting-note p { margin:4px 0 0; color:#263b54; }
.patient-empty-state,.table-empty { padding:20px; color:#9aa4b1; text-align:center; font-size:11px; }
.patient-stat-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.patient-stat-row > div { min-width:116px; border-left:3px solid #3d78c8; border-radius:6px; background:#fff; padding:9px 12px; }
.patient-stat-row small,.patient-stat-row strong { display:block; }
.patient-stat-row small { margin-bottom:4px; color:#748195; font-size:9px; }
.patient-stat-row strong { color:#26384c; font-size:14px; }
.patient-stat-row.session-stats > div:nth-child(3) { border-color:#f2ae46; }.patient-stat-row.session-stats > div:nth-child(4) { border-color:#16b675; }
.patient-table-wrap { border-color:#e4e9ef; border-radius:6px; }
.patient-table-wrap table { min-width:620px; background:#fff; }
.patient-table-wrap thead { background:#f4f6f9; color:#58677a; }
.patient-table-wrap th,.patient-table-wrap td { padding:10px 9px; border-bottom:1px solid #e8edf2; text-align:left; font-size:10px; }
.patient-total-row { background:#f6f8fa; }
.blue-dot { display:inline-block; width:8px; height:8px; margin-right:7px; border-radius:50%; background:#4383d8; }
.patient-module-panel { margin-bottom:12px; border:1px solid #e3e8ed; border-radius:7px; background:#fff; overflow:hidden; }
.patient-module-panel > header { display:flex; justify-content:space-between; align-items:center; min-height:39px; border-bottom:1px solid #e5e9ee; background:#fff; padding:9px 12px; color:#30465c; font-size:11px; font-weight:700; }
.session-chart,.implant-chart { margin:10px; border-radius:6px; background:#202a39; padding:12px; }
.session-tooth-row,.implant-tooth-row { display:flex; gap:4px; overflow:auto; padding:4px 0; }
.session-tooth-row span,.implant-tooth-row span { flex:1 0 29px; border:2px solid #cbd2dc; border-radius:7px 7px 10px 10px; background:#f6f7f9; padding:12px 2px; color:#14253a; text-align:center; font-weight:700; font-size:10px; }
.session-tooth-row span.has-session { background:#bdf4d1; border-color:#13af6a; }
.implant-tooth-row b { flex:0 0 50px; align-self:center; color:#d7e4f0; font-size:10px; }
.implant-tooth-row span { flex:0 0 38px; }
.implant-tooth-row span.planned { background:#fff0bf; border-color:#efc247; }.implant-tooth-row span.placed { background:#bcefdc; border-color:#20b77f; }
.session-legend { display:flex; flex-wrap:wrap; gap:14px; padding:0 13px 12px; color:#748195; font-size:10px; }
.session-columns { display:grid; grid-template-columns:minmax(340px,1.1fr) minmax(260px,.9fr); gap:14px; }
.session-columns h3 { color:#58697d; font-size:11px; }
.session-treatment-card,.session-history-card { margin-bottom:9px; border:1px solid #e0e7ed; border-radius:7px; background:#fff; padding:10px; }
.session-treatment-card > header { display:flex; align-items:center; gap:8px; padding-bottom:8px; color:#286b4b; }
.session-treatment-card > header span { border-radius:15px; background:#e3f5ec; padding:3px 7px; font-size:9px; }.session-treatment-card > header small { margin-left:auto; color:#8290a0; }
.session-tooth-list { display:flex; flex-wrap:wrap; gap:7px; }
.session-tooth { display:grid; min-width:53px; border:1px solid #d8e0e8; border-radius:5px; background:#f7f9fb; padding:6px; color:#3f6689; text-align:center; cursor:pointer; }
.session-tooth small { color:#8795a4; font-size:9px; }.session-tooth.in-progress { border-color:#edb75d; background:#fff8e6; }.session-tooth.done { border-color:#89d6ae; background:#e4f8ed; }
.session-history-card { display:grid; grid-template-columns:1fr auto; gap:5px; font-size:10px; }.session-history-card time,.session-history-card small { color:#8290a0; }
.patient-appointment-form,.payment-entry form,.measure-send-form { display:grid; grid-template-columns:repeat(3,minmax(130px,1fr)); gap:10px; padding:12px; }
.patient-appointment-form label,.payment-entry label,.measure-send-form label { display:grid; gap:5px; color:#65768a; font-size:10px; }
.patient-appointment-form input,.patient-appointment-form select,.patient-appointment-form textarea,.payment-entry input,.payment-entry select,.payment-entry textarea,.measure-send-form input,.measure-send-form select,.measure-send-form textarea { width:100%; min-height:32px; border:1px solid #cfd7e0; border-radius:5px; background:#fff; padding:6px 8px; color:#263b54; font-size:11px; }
.patient-appointment-form .span-all,.measure-send-form label:nth-child(3) { grid-column:1/-1; }.patient-appointment-form textarea,.payment-entry textarea,.measure-send-form textarea { min-height:48px; }.appointment-sms { display:flex!important; align-items:center; }
.appointment-type-pill,.status-pill { display:inline-block; border-radius:12px; background:#e5efff; padding:4px 9px; color:#3267a3; }
.payment-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,310px); gap:12px; }
.payment-summary { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:10px; border:1px solid #e6eaf0; border-radius:7px; background:#fff; padding:12px; }
.payment-summary > div { display:grid; gap:4px; min-width:100px; color:#788698; font-size:10px; }.payment-summary strong { color:#20354b; }.payment-summary .paid { color:#129556; }.payment-summary .balance { color:#bf564c; }
.payment-entry form { grid-template-columns:1fr; }.payment-entry p,.payment-entry > strong { margin:12px; font-size:11px; }
.payment-entry form .button { justify-self:start; }.debt-table { grid-column:1/-1; }
.patient-two-panels { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.patient-record-line { display:flex; align-items:center; gap:10px; border-bottom:1px solid #edf0f4; padding:11px 12px; color:#405970; font-size:11px; }
.patient-record-line small { margin-left:auto; color:#8291a2; }.patient-record-line:last-child { border-bottom:0; }
.multi-unit-selection { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:12px; }
.multi-unit-selection label { display:grid; gap:5px; color:#68788c; font-size:9px; font-weight:700; }.multi-unit-selection input,.inventory-search { min-height:33px; border:1px solid #cfd7e0; border-radius:5px; padding:7px 9px; font-size:10px; }
.patient-module-panel em { color:#a74747; font-size:9px; font-weight:500; }.inventory-item { margin:10px; border:1px solid #d8e0e8; border-radius:5px; background:#f7f9fb; padding:8px; color:#345a7e; }
.inventory-search { width:calc(100% - 24px); margin:10px 12px; }
.survey-send-box { margin:4px 4px 12px; border:1px solid #bfe7ce; border-radius:8px; background:#effcf3; padding:10px 12px; color:#38704e; }
.survey-send-box h3 { margin:0 0 8px; font-size:12px; }.survey-send-box > div { display:flex; justify-content:space-between; align-items:center; }.survey-send-box button { border:0; border-radius:5px; background:#79c99b; padding:7px 18px; color:#fff; font-weight:700; cursor:pointer; }
@media(max-width:1100px) { .plan-workspace { grid-template-columns:minmax(0,1fr); } .plan-workspace .treatment-picker { width:100%; } }
@media(max-width:900px) { .payment-layout,.session-columns,.patient-two-panels { grid-template-columns:1fr; } .debt-table { grid-column:auto; } }
@media(max-width:1000px) { .patient-entry-layout,.patient-edit-grid,.plan-workspace { grid-template-columns:1fr; } }
@media(max-width:700px) { .patient-form-grid { grid-template-columns:1fr; } .patient-form-grid .span-2 { grid-column:auto; } .tooth-row > b { display:none; } }
@media(max-width:700px) { .patient-info-grid { grid-template-columns:1fr 1fr; } .patient-detail-tabs { margin:0 -2px; } .calendar-switches { grid-column:1/-1; justify-self:end; } .calendar-head { grid-template-columns:auto auto 1fr; } }
@media(max-width:1050px) { .metrics { grid-template-columns:repeat(2,1fr); } .module-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:700px) {
  .sidebar { width:58px; }
  .brand { font-size:0; padding:0; justify-content:center; }
  .brand::after { content:'DF'; font-size:13px; }
  .nav-item { justify-content:center; padding:9px 4px; font-size:0; }
  .nav-icon { font-size:14px; }
  .topbar { left:58px; padding:0 10px; gap:8px; }
  .alert-bar { left:58px; padding:0 8px; font-size:9px; }
  .main { margin-left:58px; }
  .content { padding:16px 12px 28px; }
  .search { width:min(220px,40vw); }
  .clinic-select { max-width:98px; overflow:hidden; }
  .user-button { font-size:0; }
  .user-button::before { content:'👤'; font-size:15px; }
  .metrics { gap:8px; }
  .metric-card { padding:12px 10px; min-height:130px; }
  .metric-value { font-size:18px; }
  .dashboard-grid { grid-template-columns:1fr; }
  .calendar-head { grid-template-columns:auto auto 1fr; }
  .calendar-head .view-switch { grid-column:1/-1; justify-self:end; }
  .form-grid { grid-template-columns:1fr; }
  .summary-cards { grid-template-columns:1fr; }
  .transfer-grid { grid-template-columns:1fr; }
  .module-grid { grid-template-columns:1fr; }
  .correction-layout { grid-template-columns:1fr; }
  .login-screen { grid-template-columns:1fr; }
  .login-hero { min-height:280px; padding:34px 26px; }
  .login-side { min-height:470px; }
}
