@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap";:root{--primary: #021254;--secondary: #c6903b;--background: #fafaf4;--foreground: #000000;--surface: #ffffff;--surface-soft: #fafaf4;--surface-strong: #ffffff;--muted: var(--surface-soft);--muted-foreground: #4a507a;--border-soft: #e9d0a4;--border-strong: #e9d0a4;--table-header-bg: #021254;--table-header-text: #ffffff;--table-border: #e9d0a4;--table-row-hover: rgba(233, 208, 164, .28);--button-bg: #021254;--button-text: #ffffff;--button-hover: #c6903b;--active-bg: #b1b6d7;--active-text: #021254;--card-bg: #ffffff;--card-text: #000000;--popup-card-bg: #fafaf4;--popup-card-text: #000000;--white: #ffffff;--black: #000000;--danger: #9c4a3c;--success: #54714f;--warning: #c19959;--bad: var(--danger);--ok: var(--success);--warn: var(--warning);--gold: var(--secondary);--gold-deep: var(--secondary);--cream: var(--background);--ivory: var(--background);--ink: var(--foreground);--line: var(--border-soft);--shadow: 0 12px 30px rgba(2, 18, 84, .08);--shadow-md: 0 16px 38px rgba(2, 18, 84, .12);--shadow-lg: 0 22px 60px rgba(2, 18, 84, .16);--r-sm: 6px;--r: 8px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 32px;--focus: 0 0 0 3px rgba(2, 18, 84, .22)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--background);color:var(--foreground);font-family:Be Vietnam Pro,Arial,sans-serif;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased}#root,.layout,.main,.dashboard-page,.patients-page,.appointments-page,.inventory-page,.packages-page,.treatment-management-page{background:var(--background)}a{color:var(--primary);text-decoration:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.layout{display:flex;min-height:100vh}.sidebar{width:230px;flex:0 0 230px;background:var(--white);border-right:1px solid var(--border-soft);padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border-soft);margin-bottom:14px}.mark{width:34px;height:34px;border-radius:var(--r);background:var(--secondary);position:relative;flex:0 0 auto;box-shadow:none}.mark:after{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:3px;background:var(--white)}.brand h1{font-family:inherit;font-weight:700;font-size:20px;margin:0;letter-spacing:-.2px}.brand .sub{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted-foreground)}.navlink{display:flex;align-items:center;gap:10px;padding:15px 18px;border-radius:var(--r);color:var(--muted-foreground);background:transparent;font-size:14px;font-weight:500;margin-bottom:3px;cursor:pointer;transition:background .15s,color .15s}.navlink:hover{background:#b1b6d740;color:var(--active-text)}.navlink.active{background:var(--primary);border:1px solid var(--active-bg);color:#fff;font-weight:700}.navlink.active .n,.navlink.active svg,.navlink.active i{color:#fff}.navlink .n{font-family:inherit;font-style:normal;color:var(--muted-foreground);font-size:12px;width:20px;flex:0 0 auto}.navlink-icon{width:18px;height:18px;flex:0 0 18px;color:currentColor}.navlink-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.main{flex:1;min-width:0;padding:0 30px 80px;max-width:1440px;background:var(--background)}.app-header{position:sticky;top:0;z-index:50;height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -30px 24px;padding:0 30px;background:#fff;color:var(--primary);border-bottom:1px solid rgba(255,255,255,.12)}.app-header-main{min-width:0;flex:1 1 auto}.app-header-title{min-width:0;color:var(--primary);font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.app-header-signout{height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--primary);background:transparent;color:var(--primary);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.app-header-signout:hover{background:var(--secondary);color:var(--white)}.active-patient-row{display:flex;margin:-8px 0 20px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.who{font-size:12px;color:var(--muted-foreground);text-align:right}.who b{color:var(--foreground);font-weight:500}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-md);padding:22px 24px;box-shadow:var(--shadow);margin-bottom:18px}.card .card,.modal .card{box-shadow:none;background:var(--muted)}.card h2{font-family:inherit;font-weight:700;font-size:22px;margin:0 0 4px;letter-spacing:-.2px}.subcard{background:var(--muted);border:1px solid var(--border-soft);border-radius:var(--r);padding:16px 18px;margin:12px 0 14px}.field-stack{display:grid;gap:8px}.lead{color:var(--foreground);font-size:13.5px;margin:0 0 16px;max-width:74ch}.eyebrow{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:7px}.sec-title{font-family:inherit;font-size:17px;font-weight:700;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border-soft)}.sec-title.flush{margin-top:0}.sec-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid var(--border-soft)}.sec-head .sec-title{margin:0;padding:0;border-bottom:0}.hint{font-size:12px;color:var(--muted-foreground);margin-top:4px;line-height:1.45}.field-block{margin-top:var(--s-3)}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);flex-wrap:wrap}.page-head .lead{margin-bottom:0}.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-top:var(--s-4);padding:4px;background:var(--muted);border:1px solid var(--border-soft);border-radius:var(--r-md);width:max-content;max-width:100%}.tab{font-family:inherit;font-weight:600;font-size:13.5px;padding:8px 16px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--foreground);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.tab:hover{color:var(--foreground)}.tab.active{background:var(--surface);border-color:var(--border-soft);color:var(--primary);box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.one{grid-template-columns:minmax(0,1fr)}.full{grid-column:1/-1}.grid>*{min-width:0}.grid>div{overflow-wrap:anywhere}label.f{display:block;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:5px;font-weight:600}label.f .req{color:var(--bad);margin-left:2px}input,select,textarea{width:100%;font-family:inherit;font-size:14px;font-weight:400;color:var(--foreground);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:10px 11px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--secondary);background:var(--surface);box-shadow:var(--focus)}input:disabled,select:disabled,textarea:disabled{background:var(--muted);color:var(--muted-foreground);cursor:not-allowed}input[readonly],.input-readonly{background:var(--muted);color:var(--muted-foreground);border-style:dashed;cursor:default}input[readonly]:focus{box-shadow:none;border-color:var(--border-soft)}textarea{resize:vertical;min-height:78px}.search-bar{display:flex;align-items:center;gap:var(--s-2);flex-wrap:nowrap}.search-bar input{flex:1 1 auto;width:auto;min-width:0}.search-bar .btn{flex:0 0 auto}.btn{font-family:inherit;font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:var(--r-sm);border:1px solid var(--button-bg);background:var(--button-bg);color:var(--button-text);cursor:pointer;box-shadow:none;transition:background .15s,border-color .15s,color .15s}.btn:hover{background:var(--button-hover);border-color:var(--button-hover);color:var(--button-text)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn.ghost{background:var(--surface);color:var(--foreground);border-color:var(--border-soft);box-shadow:none}.btn.ghost:hover{border-color:var(--primary);background:var(--muted)}.btn.sm{padding:7px 13px;font-size:12px}.btn.warn{background:var(--surface);color:var(--bad);border-color:#9c4a3c59;box-shadow:none}.btn.warn:hover{background:#9c4a3c14;border-color:var(--bad)}.actions{display:flex;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}.actions.end{justify-content:flex-end}.row-flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row-flex.nowrap{flex-wrap:nowrap}.pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;letter-spacing:.5px;padding:3px 10px;border-radius:var(--r-pill);text-transform:uppercase;border:1px solid transparent;white-space:nowrap}.pill.ok{background:#5b7a551f;border-color:#5b7a5540;color:var(--ok)}.pill.warn{background:#b07a2c1f;border-color:#b07a2c40;color:var(--warn)}.pill.bad{background:#9c4a3c1f;border-color:#9c4a3c40;color:var(--bad)}.pill.neutral{background:var(--muted);border-color:var(--border-soft);color:var(--foreground)}.pill.gold{background:var(--muted);border-color:var(--primary);color:var(--foreground)}.status-success{color:var(--ok);background:#5b7a551f;border:1px solid rgba(91,122,85,.25)}.status-warning{color:var(--warn);background:#b07a2c1f;border:1px solid rgba(176,122,44,.25)}.status-danger{color:var(--bad);background:#9c4a3c1f;border:1px solid rgba(156,74,60,.25)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:600;font-size:10.5px;letter-spacing:1.3px;text-transform:uppercase;color:var(--table-header-text);padding:11px 12px;border-bottom:1px solid var(--table-border);white-space:nowrap;background:var(--table-header-bg)}td{padding:12px;border-bottom:1px solid var(--table-border);color:var(--black);vertical-align:middle}tbody tr:hover td{background:var(--table-row-hover)}tr:last-child td{border-bottom:none}.tbl-wrap{overflow-x:auto;border:1px solid var(--table-border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}.tbl-wrap table{font-size:13px}.tbl-wrap th:first-child,.tbl-wrap td:first-child{padding-left:16px}.tbl-wrap th:last-child,.tbl-wrap td:last-child{padding-right:16px}.num{text-align:right;font-variant-numeric:tabular-nums}.th-actions,.td-actions{text-align:right;white-space:nowrap}.td-actions .row-flex{justify-content:flex-end;flex-wrap:nowrap;gap:6px}td input,td select{min-width:110px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.note{background:var(--muted);border:1px solid var(--border-soft);border-left:3px solid var(--secondary);border-radius:var(--r-md);padding:11px 14px;font-size:12.5px;color:var(--foreground);margin:12px 0}.empty{text-align:center;color:var(--muted-foreground);padding:34px 16px;font-size:13.5px;line-height:1.6}.empty b{display:block;color:var(--foreground);font-weight:600;font-size:14.5px;margin-bottom:4px}.dashboard-skeleton{position:relative;overflow:hidden;background:var(--muted);border-radius:var(--r-sm)}.dashboard-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:dashboard-skeleton-shimmer 1.35s ease-in-out infinite}.dashboard-skeleton-stack{display:grid;gap:10px}.dashboard-page{background:var(--background);color:var(--foreground);display:grid;gap:20px;padding:4px 0 10px}.dashboard-header h2{margin:0;color:var(--foreground);font-size:clamp(28px,3vw,34px);font-weight:700;letter-spacing:-.03em}.dashboard-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.record-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:18px}@media (max-width:1400px){.record-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.dashboard-card{position:relative;overflow:hidden;background:var(--card-bg);color:var(--card-text);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow)}.dashboard-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--secondary)}.dashboard-card-top{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.dashboard-card-copy{min-width:0}.dashboard-card-icon{width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#02125414;color:var(--primary);flex:0 0 auto}.dashboard-card-svg{width:22px;height:22px}.dashboard-card-dirham-icon{color:var(--primary);font-size:18px;font-weight:800;line-height:1}.record-summary-card{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.record-summary-card-content{position:relative;z-index:1;min-width:0}.record-summary-card-icon{position:relative;z-index:1;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#02125414;color:var(--primary);flex:0 0 auto}.record-summary-card-icon svg{width:22px;height:22px;stroke-width:2}.record-card-icon-img{width:24px;height:24px;object-fit:contain;display:block}.dashboard-card-label{color:var(--card-text);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}.dashboard-card-value{color:var(--card-text);font-size:26px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.dashboard-section{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow);margin-bottom:0}.dashboard-section-title{margin-bottom:14px;padding-bottom:0;border-bottom:0;color:var(--foreground);font-size:18px}.dashboard-table-wrap{border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}.dashboard-table{min-width:760px;font-size:13.5px}.dashboard-table th{background:var(--table-header-bg);color:var(--table-header-text);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:none;padding:14px 16px;border-bottom:1px solid var(--table-border)}.dashboard-table td{color:var(--black);padding:15px 16px;border-bottom:1px solid var(--table-border)}.dashboard-table tbody tr:hover td{background:var(--table-row-hover)}.dashboard-page .dashboard-table th:first-child,.dashboard-page .dashboard-table td:first-child{padding-left:18px}.dashboard-page .dashboard-table th:last-child,.dashboard-page .dashboard-table td:last-child{padding-right:18px}.dashboard-page .mono{color:var(--foreground)}.dashboard-page .pill{background:var(--surface);color:var(--foreground);border:1px solid var(--border-soft);font-size:11px;font-weight:600;letter-spacing:.03em;padding:5px 10px;text-transform:none}.dashboard-page .pill.ok{background:#5b7a551f;border-color:#5b7a5540;color:var(--ok)}.dashboard-page .pill.warn{background:#b07a2c1f;border-color:#b07a2c40;color:var(--warn)}.dashboard-page .pill.bad{background:#9c4a3c1f;border-color:#9c4a3c40;color:var(--bad)}.dashboard-page .pill.neutral{background:var(--muted);color:var(--foreground)}.dashboard-view-btn.btn.ghost{background:var(--button-bg);border-color:var(--button-bg);color:var(--button-text);padding:7px 12px;font-size:12px}.dashboard-view-btn.btn.ghost:hover{background:var(--button-hover);border-color:var(--button-hover);color:var(--button-text)}.dashboard-note{margin:0;background:var(--muted);border:1px solid var(--border-soft);border-radius:16px;padding:12px 14px;color:var(--foreground)}.dashboard-note-error{border-color:var(--secondary);box-shadow:var(--shadow)}.dashboard-empty{background:var(--white);border:1px dashed var(--border-soft);border-radius:18px;color:var(--muted-foreground);padding:34px 18px}.dashboard-page .dashboard-skeleton{background:var(--muted);border-radius:12px}.dashboard-modal-overlay{background:#0f172a2e}.dashboard-modal{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.dashboard-modal .modal-head{border-bottom:1px solid var(--border-soft)}.dashboard-modal .modal-head h3{color:var(--foreground)}.dashboard-modal .x-close{color:var(--muted-foreground)}.dashboard-modal .x-close:hover{background:var(--muted);color:var(--foreground)}.dashboard-modal-scroll{margin-top:16px}.dashboard-detail-card{background:var(--muted);border:1px solid var(--border-soft);border-radius:var(--r-lg);margin:0}.dashboard-detail-row{border-bottom:1px solid var(--border-soft);color:var(--foreground);padding:10px 0}.dashboard-detail-row:last-child{border-bottom:0}.dashboard-detail-row b{color:var(--muted-foreground);font-weight:600}.muted{color:var(--muted-foreground)}.txt-bad{color:var(--bad)}.txt-ok{color:var(--ok)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s-3)}.pkg-summary{display:grid;grid-template-columns:minmax(190px,1fr) 2fr;gap:var(--s-4);align-items:end;margin-top:var(--s-4)}.stat-tile{background:var(--muted);border:1px solid var(--border-soft);border-radius:var(--r);padding:14px 16px}.stat-tile .l{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:6px}.stat-tile .v{font-size:22px;font-weight:700;color:var(--foreground);line-height:1.2;font-variant-numeric:tabular-nums}.stat-tile.ok .v{color:var(--ok)}.stat-tile.bad .v{color:var(--bad)}.stat-tile.gold .v{color:var(--primary)}.checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px}.checks.two{grid-template-columns:repeat(2,minmax(0,1fr))}.chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--foreground);cursor:pointer;padding:6px 8px;border-radius:var(--r);min-height:32px}.chk:hover{background:var(--muted)}.chk input{width:16px;height:16px;accent-color:var(--primary);flex:0 0 auto}.dropzone{border:1px dashed var(--secondary);border-radius:var(--r);background:var(--white);padding:22px;text-align:center;cursor:pointer;transition:.18s;margin:12px 0 18px}.dropzone:hover{background:var(--muted)}.drop-title{font-weight:500}.drop-sub{font-size:12px;color:var(--muted-foreground)}.ocrbar{height:6px;background:var(--muted);border-radius:var(--r-sm);overflow:hidden;margin-top:12px;display:none}.ocrbar.on{display:block}.ocrbar i{display:block;height:100%;width:0;background:var(--secondary);transition:width .2s}.ocrstat{font-size:12px;color:var(--primary);margin-top:7px;min-height:15px}.preview{max-width:220px;border-radius:var(--r-md);border:1px solid var(--border-soft);margin-top:12px}.preview-grid{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}.preview-grid .preview{width:160px;height:105px;object-fit:cover;margin-top:0}.lineform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;background:var(--white);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:18px;margin-bottom:14px}.area-field{width:100%}.area-field .area-card-grid,.area-field .area-card-empty{margin-top:10px}.area-card-grid,.tm-selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;width:100%;max-height:320px;overflow-y:auto;overflow-x:hidden;padding:12px;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--muted);box-sizing:border-box;align-items:start}.area-card-empty{padding:12px;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--muted);color:var(--muted-foreground);font-size:13px}.area-select-card,.tm-select-card{width:100%;min-width:0;max-width:100%;min-height:48px;height:auto;padding:12px 14px;border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--white);display:flex;align-items:flex-start;gap:10px;text-align:left;cursor:pointer;box-sizing:border-box;white-space:normal;overflow:visible;font:inherit;color:inherit;transition:border-color .15s,background .15s,box-shadow .15s}.area-select-card:hover,.tm-select-card:hover{border-color:var(--primary);background:var(--muted)}.area-select-card:focus-visible,.tm-select-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.area-select-card.selected,.tm-select-card.selected{border-color:var(--secondary);background:var(--muted);box-shadow:inset 0 0 0 1px var(--secondary)}.area-card-check,.tm-select-card-icon{flex:0 0 18px;width:18px;height:18px;margin-top:1px;border:1px solid var(--border-soft);border-radius:50%;background:var(--white);display:inline-flex;align-items:center;justify-content:center;font-size:0;line-height:1;color:transparent}.area-select-card.selected .area-card-check,.tm-select-card-icon.selected{border-color:var(--secondary);background:var(--secondary)}.area-select-card.selected .area-card-check:before,.tm-select-card-icon.selected:before{content:"✓";font-size:11px;line-height:1;color:var(--white);font-weight:700}.area-card-label,.tm-select-card-title,.tm-product-card-title{flex:1;min-width:0;display:block;width:100%;line-height:1.35;font-size:14px;font-weight:500;color:var(--foreground);white-space:normal;word-break:normal;overflow-wrap:anywhere}.tm-select-card.selected .tm-select-card-title,.tm-select-card.selected .tm-product-card-title{font-weight:600}.tm-product-card-meta,.tm-card-sub-text{display:block;width:100%;line-height:1.35;font-size:12px;color:var(--muted-foreground);white-space:normal;word-break:normal;overflow-wrap:anywhere}.tm-select-card-content,.tm-product-card-content{min-width:0;max-width:100%;flex:1 1 auto;display:flex;flex-direction:column;gap:4px}.tm-product-selection-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;max-height:380px}.tm-area-select-card{min-height:50px}.tm-product-select-card{min-height:88px;overflow:visible}.tm-card-flag{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;margin-top:2px;padding:2px 8px;border-radius:var(--r-pill);background:#9c4a3c1f;border:1px solid rgba(156,74,60,.25);color:var(--bad);font-size:10.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.selected-area-chips,.tm-selected-chip-list,.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.selected-area-chip,.tm-selected-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-width:0;padding:6px 10px;border-radius:var(--r-pill);background:var(--muted);border:1px solid var(--primary);font-size:12.5px;line-height:1.35;color:var(--foreground);white-space:normal;word-break:normal;overflow-wrap:anywhere}.chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-width:0;padding:6px 10px;border-radius:var(--r-pill);background:var(--muted);border:1px solid var(--border-soft);font-size:12.5px;line-height:1.35;color:var(--foreground);white-space:normal;word-break:normal;overflow-wrap:anywhere}.selected-area-chip-remove,.tm-selected-chip-remove,.chip .x{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:0;border-radius:50%;background:transparent;color:var(--muted-foreground);font-size:14px;font-weight:700;line-height:1;cursor:pointer;padding:0}.selected-area-chip-remove:hover,.tm-selected-chip-remove:hover,.chip .x:hover{background:var(--bad);color:var(--white)}.tm-empty-note{padding:12px;color:var(--muted-foreground);font-size:13px}.tm-inline-panel{margin-top:16px;padding:20px;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--white);box-shadow:var(--shadow)}.tm-inline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.tm-inline-detail,.tm-section-block{display:grid;gap:12px}.tm-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tm-detail-grid>div{min-width:0}.tm-detail-grid>div>div{font-size:13.5px;color:var(--foreground);overflow-wrap:anywhere}.tm-inline-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:18px}.consume{display:grid;grid-template-columns:1.5fr 1.2fr 1fr 80px 90px 44px;gap:8px;align-items:end;margin-bottom:8px}.x{cursor:pointer;color:var(--bad);text-align:center;font-weight:600}.pkgcard{border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:16px 18px;background:var(--white);margin-bottom:14px;box-shadow:var(--shadow)}.pkgcard h4{font-family:inherit;font-size:18px;font-weight:700;margin:0 0 2px}.pkgcard .meta{font-size:12px;color:var(--muted-foreground);margin-bottom:10px}.bar{height:7px;background:var(--muted);border-radius:7px;overflow:hidden}.bar i{display:block;height:100%;background:var(--secondary)}.bar.over i{background:var(--bad)}.kv{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--border-soft);font-size:13.5px}.kv b{font-weight:500;color:var(--foreground)}.kv.muted{font-size:12px;color:var(--muted-foreground);border-bottom:none}.alert{font-size:12.5px;padding:10px 14px;border-radius:var(--r-md);margin:8px 0;border:1px solid}.alert.warn{background:#b07a2c1f;border-color:#b07a2c40;color:var(--warn)}.alert.bad{background:#9c4a3c1f;border-color:#9c4a3c40;color:var(--bad)}.alert.ok{background:#5b7a551f;border-color:#5b7a5540;color:var(--ok)}.sigwrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sigwrap.three{grid-template-columns:repeat(3,minmax(0,1fr))}.sigwrap .sigbox{max-width:none}.consent-text{font-size:12px;color:var(--foreground);max-height:170px;overflow:auto;background:var(--muted);border:1px solid var(--border-soft);border-radius:var(--r);padding:12px 14px;margin:12px 0;line-height:1.6}.flagrow{font-size:12.5px;padding:7px 0;border-bottom:1px dashed var(--border-soft)}.permissions-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.permissions-table td[rowspan]{vertical-align:top;background:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:6px}.kpi{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow)}.kpi .v{font-family:inherit;font-size:28px;font-weight:700;color:var(--primary);line-height:1;font-variant-numeric:tabular-nums}.kpi .l{font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted-foreground);margin-top:6px}.splitcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ev{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;padding:6px 0;border-bottom:1px dashed var(--border-soft);color:var(--foreground)}.ev b{color:var(--primary)}.sigbox{border:1px solid var(--border-soft);border-radius:var(--r);overflow:hidden;background:var(--white);max-width:420px}.sigbox .lbl{font-size:10.5px;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted-foreground);padding:8px 11px 3px}.sigbox canvas{display:block;width:100%;height:130px;background:var(--white);touch-action:none;cursor:crosshair}.sigbox .clr{font-size:10.5px;color:var(--primary);padding:6px 11px;cursor:pointer;border-top:1px solid var(--border-soft);text-align:right}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login-card{width:100%;max-width:380px}.toast-wrap{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;gap:8px;max-width:360px}.toast-wrap .t{background:var(--foreground);color:var(--white);padding:12px 16px;border-radius:var(--r-md);font-size:13px;box-shadow:var(--shadow-lg)}.toast-wrap .t.ok{background:var(--ok)}.toast-wrap .t.bad{background:var(--bad)}.toast-wrap .t.gold{background:var(--primary)}.filterbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.filterbar>div{min-width:150px}.appointment-calendar{margin-top:18px;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--white),var(--muted));overflow:hidden}.appointment-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--border-soft)}.appointment-calendar-head h3{margin:6px 0 4px;font-size:18px}.appointment-calendar-view{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:7px 12px;border:1px solid var(--border-soft);border-radius:var(--r-pill);background:var(--white);color:var(--foreground);font-size:12px;font-weight:600}.appointment-calendar-grid{display:grid}.appointment-calendar-row{display:grid;grid-template-columns:108px minmax(0,1fr);min-height:74px;border-bottom:1px solid var(--border-soft)}.appointment-calendar-row:last-child{border-bottom:none}.appointment-calendar-time{display:flex;align-items:flex-start;justify-content:flex-end;padding:16px 14px;background:#b1b6d72e;border-right:1px solid var(--border-soft);color:var(--foreground);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.appointment-calendar-cell{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:12px 14px;min-width:0}.appointment-calendar-empty{flex:1 1 auto;min-height:100%;border-top:1px dashed rgba(92,79,45,.12)}.appointment-calendar-row-unscheduled .appointment-calendar-time{align-items:center}.appointment-badge{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:180px;max-width:280px;padding:10px 12px;border:1px solid transparent;border-radius:var(--r-md);background:var(--white);box-shadow:var(--shadow);color:var(--foreground);cursor:pointer;text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.appointment-badge:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.appointment-badge-time{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.appointment-badge-name{font-size:13px;font-weight:700;line-height:1.35}.appointment-badge-status{font-size:11px;color:var(--foreground)}.appointment-badge.booked,.appointment-badge.in_progress{background:#b07a2c1f;border-color:#b07a2c40}.appointment-badge.arrived,.appointment-badge.completed{background:#5b7a551f;border-color:#5b7a5540}.appointment-badge.cancelled,.appointment-badge.no_show{background:#9c4a3c1f;border-color:#9c4a3c40}.appointment-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px}.appointment-detail-grid>div{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--muted)}.appointment-detail-grid>div span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}.appointment-detail-grid>div strong{font-size:14px;line-height:1.45;color:var(--foreground)}.appointment-detail-grid>div.full{grid-column:1 / -1}.appointment-toolbar{padding:0 18px 18px;border-bottom:1px solid var(--border-soft);background:#ffffff8c}.appointment-toolbar-main{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.appointment-view-toggle{display:inline-flex;flex-wrap:wrap;gap:8px}.appointment-view-btn{border:1px solid var(--border-soft);border-radius:var(--r-pill);background:var(--white);color:var(--foreground);padding:8px 14px;font-size:12px;font-weight:600;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease}.appointment-view-btn:hover,.appointment-view-btn.active{border-color:var(--primary);background:var(--muted);color:var(--foreground)}.appointment-nav{display:inline-flex;flex-wrap:wrap;gap:8px}.appointment-range-inputs{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.appointment-range-inputs>div{min-width:170px}.appointment-calendar-shell{overflow:auto}.appointment-month,.appointment-week-grid{min-width:720px}.appointment-month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--muted);border-bottom:1px solid var(--border-soft)}.appointment-month-weekdays>div{padding:12px 10px;text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}.appointment-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.appointment-month-cell{min-height:152px;padding:10px;border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--white)}.appointment-month-cell:nth-child(7n){border-right:none}.appointment-month-cell.outside-month{background:#f2efe499}.appointment-month-cell.today{box-shadow:inset 0 0 0 2px #b07a2c42}.appointment-month-cell.selected{background:#b1b6d738}.appointment-month-day{display:flex;justify-content:flex-end;margin-bottom:10px}.appointment-month-day span{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700;color:var(--foreground)}.appointment-month-cell.today .appointment-month-day span{background:var(--primary);color:var(--white)}.appointment-month-items{display:flex;flex-direction:column;gap:6px}.appointment-badge.compact{min-width:0;max-width:100%;padding:8px 10px;box-shadow:none}.appointment-badge.compact .appointment-badge-time{font-size:10px}.appointment-badge.compact .appointment-badge-name{font-size:12px}.appointment-more-indicator{font-size:11px;font-weight:700;color:var(--primary)}.appointment-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;border-top:1px solid var(--border-soft)}.appointment-week-column{display:flex;flex-direction:column;min-height:340px;border-right:1px solid var(--border-soft);background:var(--white)}.appointment-week-column:last-child{border-right:none}.appointment-week-column.today{background:#b1b6d72e}.appointment-week-column.selected{box-shadow:inset 0 0 0 2px #b07a2c2e}.appointment-week-head{padding:14px 12px;border-bottom:1px solid var(--border-soft);background:#ffffffbd}.appointment-week-head strong{font-size:12px;color:var(--foreground)}.appointment-week-list{display:flex;flex-direction:column;gap:8px;padding:12px}.appointment-day-list{display:flex;flex-direction:column;gap:12px;padding:18px}.appointment-day-card{display:grid;grid-template-columns:142px minmax(0,1fr);gap:16px;align-items:center;width:100%;padding:16px 18px;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--white);color:var(--foreground);text-align:left;cursor:pointer;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.appointment-day-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.appointment-day-card-time{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;color:var(--foreground)}.appointment-day-card-body{display:flex;flex-direction:column;gap:4px}.appointment-day-card-body strong{font-size:15px}.appointment-day-card-body span{font-size:12px;font-weight:700;color:var(--primary)}.appointment-day-card-body small{font-size:12px;color:var(--muted-foreground)}.appointment-day-card.booked,.appointment-day-card.in_progress{background:#b07a2c1f;border-color:#b07a2c40}.appointment-day-card.arrived,.appointment-day-card.completed{background:#5b7a551f;border-color:#5b7a5540}.appointment-day-card.cancelled,.appointment-day-card.no_show{background:#9c4a3c1f;border-color:#9c4a3c40}.appointment-range-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;padding:18px}.appointment-range-card{border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--white);overflow:hidden}.appointment-range-card.today{box-shadow:inset 0 0 0 2px #b07a2c33}.appointment-range-card-head{padding:14px 16px;border-bottom:1px solid var(--border-soft);background:var(--muted)}.appointment-range-card-head strong{font-size:13px;color:var(--foreground)}.appointment-range-card-body{display:flex;flex-direction:column;gap:8px;padding:14px}.appointment-view-empty{font-size:12px;color:var(--muted-foreground)}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:10px}.slot{border:1px solid var(--border-soft);border-radius:7px;padding:9px 6px;text-align:center;font-size:12.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;background:var(--white);color:var(--foreground)}.slot:hover{background:var(--muted);border-color:var(--secondary)}.slot.busy{background:var(--muted);color:var(--muted-foreground);cursor:not-allowed;border-style:dashed}.slot.busy small{display:block;font-size:9.5px;letter-spacing:.4px;text-transform:uppercase}.pill.in_progress,.pill.booked{background:#b07a2c1f;border-color:#b07a2c40;color:var(--warn)}.pill.arrived,.pill.completed{background:#5b7a551f;border-color:#5b7a5540;color:var(--ok)}.pill.cancelled,.pill.no_show{background:#9c4a3c1f;border-color:#9c4a3c40;color:var(--bad)}.emrg{color:var(--bad);font-weight:700}.pillsel{font-size:12px;padding:4px 6px;border-radius:var(--r-sm)}.active-patient{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--foreground);background:var(--muted);border:1px solid var(--border-soft);border-radius:18px;padding:5px 12px}.active-patient .dot{width:8px;height:8px;border-radius:50%;background:var(--secondary);display:inline-block;flex:0 0 auto}.active-patient .lnk{background:none;border:0;color:var(--primary);cursor:pointer;font-size:11.5px;text-decoration:underline;padding:0 0 0 4px}.empty-gate{text-align:center;padding:40px 24px}.empty-gate .lead{margin:0 auto 16px;max-width:46ch}details.acc{border:1px solid var(--border-soft);border-radius:var(--r);margin-bottom:10px;background:var(--white)}details.acc>summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:space-between}details.acc>summary::-webkit-details-marker{display:none}details.acc>summary:after{content:"▸";color:var(--muted-foreground);font-size:13px}details.acc[open]>summary:after{content:"▾"}details.acc>summary:hover{background:var(--muted)}details.acc .acc-body{padding:4px 14px 16px}.menu-wrap{position:relative;display:inline-block}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:40;background:var(--white);border:1px solid var(--border-soft);border-radius:var(--r);box-shadow:var(--shadow-lg);min-width:170px;padding:6px}.menu.menu-portal{position:fixed;right:auto;z-index:9999}.appointment-action-dropdown{min-width:188px;max-width:min(220px,calc(100vw - 24px));max-height:260px;overflow-y:auto;overflow-x:hidden}.menu.appointment-action-dropdown button{display:flex;align-items:center;gap:8px;white-space:nowrap}.menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:var(--r-sm);font-size:13px;color:var(--foreground);cursor:pointer}.menu button:hover{background:var(--muted)}.menu .sep{height:1px;background:var(--border-soft);margin:4px 2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#02125461;z-index:70;display:flex;align-items:flex-start;justify-content:center;padding:34px 16px;overflow:auto}.modal{background:var(--surface);color:var(--black);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:22px 24px;width:100%;max-width:760px;box-shadow:var(--shadow-lg)}.modal.wide{max-width:1040px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding-bottom:12px;border-bottom:1px solid var(--border-soft)}.modal-head h3{margin:0;font-size:20px;font-weight:700;color:var(--black)}.modal .x-close{cursor:pointer;border:0;background:none;font-size:22px;color:var(--muted-foreground);line-height:1;width:32px;height:32px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.modal .x-close:hover{background:var(--muted);color:var(--foreground)}.modal .card,.modal .subcard,.modal .tbl-wrap,.dashboard-detail-card{background:var(--popup-card-bg);color:var(--popup-card-text);border-color:var(--border-soft)}.modal .tbl-wrap{background:var(--surface)}.modal label.f,.modal .dashboard-detail-row b{color:var(--muted-foreground)}.modal td,.modal .kv,.modal .dashboard-detail-row,.modal .inv-field-value{color:var(--black)}.modal-scroll{max-height:calc(100vh - 200px);overflow-y:auto;padding-right:4px;margin-top:var(--s-4)}.flow-progress-grid{display:grid;gap:8px;margin-top:12px}.flow-progress-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.flow-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin-top:16px}.flow-preview-item{min-width:0;overflow-wrap:anywhere}.flow-preview-item.full{grid-column:1 / -1}.flow-preview-list{margin:0;padding-left:18px}.search-results{border:1px solid var(--border-soft);border-radius:var(--r);margin-top:6px;max-height:200px;overflow:auto;background:var(--white)}.search-results .row{padding:8px 12px;border-bottom:1px solid var(--border-soft);cursor:pointer;font-size:13px}.search-results .row:hover{background:var(--muted)}.search-results .row:last-child{border-bottom:0}.inv-panel{border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:16px;background:var(--white)}.inv-subpanel{border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:14px 16px;background:var(--white)}.inv-stack{display:grid;gap:12px;margin-top:12px}.inv-field-label{font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted-foreground);font-weight:600;margin-bottom:4px}.inv-field-value{font-size:13.5px;color:var(--foreground);overflow-wrap:anywhere}.inv-panel-title{font-weight:700;font-size:15px;color:var(--foreground);overflow-wrap:anywhere}.inv-subpanel .inv-panel-title{font-size:13.5px;font-weight:600;margin-bottom:8px}.inv-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft)}.inv-pagination .muted{font-size:12px}.inv-picker-wrap{flex:1 1 340px;position:relative;min-width:0}.inv-picker{position:absolute;left:0;right:0;top:100%;margin-top:6px;background:var(--white);border:1px solid var(--border-soft);border-radius:var(--r);box-shadow:var(--shadow-lg);max-height:280px;overflow-y:auto;z-index:50}.inv-picker-row{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;border-bottom:1px solid var(--border-soft);padding:10px 14px;cursor:pointer}.inv-picker-row:last-child{border-bottom:0}.inv-picker-row:hover,.inv-picker-row:focus-visible{background:var(--muted)}.inv-picker-row .t{display:block;font-size:13.5px;font-weight:500;color:var(--foreground)}.inv-picker-row .m{display:block;font-size:12px;color:var(--muted-foreground);margin-top:3px}.inv-picker-note{padding:12px 14px;font-size:13px;color:var(--muted-foreground)}.inv-picker-row.disabled{cursor:default;background:var(--muted)}.inv-picker-row.disabled:hover{background:var(--muted)}.inv-picker-row .row-flex{gap:8px}.small{font-size:12px}.inv-levels{display:grid;gap:10px;margin-top:var(--s-3)}.inv-level-title{font-size:12px;font-weight:600;color:var(--muted-foreground);margin-bottom:8px}.inv-preview{border:1px solid var(--border-soft);border-radius:var(--r);padding:12px 14px;margin-top:var(--s-3);background:var(--muted)}.inv-selected{margin-top:var(--s-3)}.inv-searchblock{margin-bottom:var(--s-3)}.inv-navcard{padding:14px 16px}.inv-navcard .tabs{margin-top:0}.inv-level-grid{align-items:end}.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}.mb-3{margin-bottom:var(--s-3)}.gap-2{gap:var(--s-2)}.align-end{align-items:flex-end}.inv-history{display:grid;gap:var(--s-4);width:100%;max-width:100%;min-width:0;overflow-x:hidden}.history-section,.history-card{width:100%;max-width:100%;min-width:0}.history-card{overflow-x:hidden}.history-filters{width:100%;max-width:100%;min-width:0}.history-filters>*,.history-card .row-flex,.history-card .inv-pagination,.history-card .inv-pagination>.row-flex{min-width:0}.history-table-wrapper{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible}.history-table{width:100%;min-width:900px;border-collapse:collapse}.inv-pagination .row-flex{gap:var(--s-2)}.loading-inline{display:inline-flex;align-items:center;gap:8px;color:var(--muted-foreground);font-size:13px}.loading-spinner{width:16px;height:16px;border:2px solid var(--border-soft);border-top-color:var(--secondary);border-radius:50%;animation:spin .8s linear infinite;flex:0 0 auto}.loading-spinner.sm{width:16px;height:16px}.loading-spinner.lg{width:20px;height:20px}.subtle-loading{margin:8px 0 12px}.field-heading,.session-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.session-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.9fr);gap:18px;align-items:start}.session-main{min-width:0}.session-workspace-full{grid-template-columns:minmax(0,1fr);width:100%}.session-main-full{width:100%;max-width:none}.session-workspace-full .grid.four,.session-workspace-full .grid.three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.session-workspace-full .consume{grid-template-columns:minmax(180px,1.2fr) minmax(220px,2fr) minmax(150px,1fr) minmax(100px,.7fr) minmax(100px,.7fr) auto;width:100%}.session-workspace-full .sigwrap{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));width:100%}.session-side-panel,.session-bottom-panel{min-width:0}.session-preview-stack{display:grid;gap:12px}.session-preview-card{border:1px solid var(--border-soft);border-radius:var(--r);background:var(--surface);padding:14px;display:grid;gap:8px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes dashboard-skeleton-shimmer{to{transform:translate(100%)}}@media (max-width:1024px){.dashboard-summary-grid,.record-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.session-workspace{grid-template-columns:1fr}}@media (max-width:1180px){.grid.four,.kpis,.sigwrap{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.layout{flex-direction:column}.sidebar{width:100%;flex:0 0 auto;height:auto;position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;padding:10px 12px;border-right:0;border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow)}.sidebar .brand{display:none}.navlink{flex:0 0 auto;margin-bottom:0;padding:8px 12px;white-space:nowrap;font-size:13px}.navlink .n{display:none}.main{padding:0 16px 60px;max-width:100%}.app-header{top:54px;z-index:45;height:52px;margin:0 -16px 18px;padding:0 16px;gap:12px}.app-header-title{font-size:14px}.app-header-signout{height:32px;padding:0 12px}.active-patient-row{margin-bottom:16px}.dashboard-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid,.grid.two,.grid.three,.grid.four,.kpis,.splitcols,.checks,.checks.two,.lineform,.sigwrap,.sigwrap.three,.tm-detail-grid,.stats,.pkg-summary{grid-template-columns:minmax(0,1fr)}.consume{grid-template-columns:repeat(2,minmax(0,1fr))}.session-workspace-full .consume{grid-template-columns:minmax(0,1fr)}.filterbar>div{min-width:120px}.appointment-toolbar{padding:0 14px 16px}.appointment-toolbar-main,.appointment-range-inputs{align-items:stretch}.appointment-month,.appointment-week-grid{min-width:640px}.appointment-day-card,.appointment-range-list{grid-template-columns:minmax(0,1fr)}.appointment-calendar-row{grid-template-columns:82px minmax(0,1fr)}.appointment-badge{min-width:0;max-width:100%}.appointment-detail-grid{grid-template-columns:1fr}.tm-inline-head,.page-head{align-items:stretch}.area-card-grid,.tm-selection-grid,.tm-product-selection-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.tabs{width:100%;overflow-x:auto}.modal{padding:18px}.modal-scroll{max-height:none;overflow:visible;padding-right:0}.flow-preview-grid{grid-template-columns:minmax(0,1fr)}.actions{justify-content:stretch}.actions .btn{flex:1 1 auto}}@media (max-width:560px){.dashboard-summary-grid,.record-summary-grid{grid-template-columns:minmax(0,1fr)}.dashboard-section{padding:16px}.dashboard-card{padding:18px}.dashboard-card-icon{width:38px;height:38px;border-radius:10px}.card{padding:16px 14px}.appointment-view-toggle,.appointment-nav{width:100%}.appointment-view-btn,.appointment-nav .btn{flex:1 1 auto}.search-bar{flex-wrap:wrap}.search-bar input{flex:1 1 100%}.area-card-grid,.tm-selection-grid,.tm-product-selection-grid{grid-template-columns:minmax(0,1fr)}.topbar{align-items:flex-start}.who{text-align:left}}
