:root {
      --primary: #0d61b7;
      --primary-2: #74d0ff;
      --primary-soft: #eaf6ff;
      --ink: #17324d;
      --muted: #64748b;
      --line: #dbe7f0;
      --bg: #f4f8fb;
      --white: #fff;
      --success: #16a34a;
      --warning: #d97706;
      --danger: #dc2626;
      --shadow: 0 8px 28px rgba(20, 70, 110, .09);
      --grid-blue: #a8d8f5;
      --grid-green: #b7e4c7;
      --grid-yellow: #f5d78e;
      --grid-purple: #d8c4ef;
    }
    * { box-sizing: border-box; }
    html, body { margin: 0; min-height: 100%; font-family: "Segoe UI", Arial, sans-serif; color: var(--ink); background: var(--bg); }
    button, input, select, textarea { font: inherit; }
    button { cursor: pointer; }
    .hidden { display: none !important; }

    #login-screen { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; align-items: safe center; justify-items: safe center; padding: 24px; overflow-y: auto; background: radial-gradient(circle at 20% 15%, rgba(116,208,255,.9), transparent 32%), linear-gradient(135deg, #0d61b7, #249bd8 60%, #8be0ff); }
    .login-card { width: min(460px, 100%); background: rgba(255,255,255,.96); border: 1px solid rgba(255,255,255,.8); border-radius: 24px; padding: 34px; box-shadow: 0 28px 80px rgba(0,38,84,.25); }
    .brand-mark { width: 70px; height: 70px; margin: 0 auto 14px; border-radius: 22px; display: grid; place-items: center; background: linear-gradient(145deg, var(--primary), var(--primary-2)); color: white; font-weight: 900; font-size: 25px; box-shadow: var(--shadow); }
    .login-card h1 { margin: 0; text-align: center; font-size: 25px; color: var(--primary); }
    .login-card .sub { text-align: center; color: var(--muted); margin: 8px 0 25px; }
    .field { display: grid; gap: 6px; }
    .field label { font-size: 13px; font-weight: 700; color: #45627d; }
    .field input, .field select, .field textarea { width: 100%; border: 1.5px solid #bdd5e6; background: white; border-radius: 8px; padding: 10px 12px; outline: none; color: var(--ink); }
    .field input:focus, .field select:focus, .field textarea:focus { border-color: var(--primary-2); box-shadow: 0 0 0 3px rgba(116,208,255,.22); }
    .login-grid { display: grid; gap: 13px; }
    .test-box { margin-top: 18px; background: var(--primary-soft); border: 1px dashed var(--primary-2); padding: 12px; border-radius: 12px; font-size: 12px; line-height: 1.7; color: #47647e; }

    #app-screen { min-height: 100vh; display: none; }
    .topbar { position: sticky; top: 0; z-index: 30; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); box-shadow: 0 2px 18px rgba(31,80,120,.08); }
    .topline { min-height: 68px; display: flex; align-items: center; gap: 16px; padding: 10px 24px; border-bottom: 1px solid var(--line); }
    .clinic-home { border: 0; background: transparent; color: var(--primary); text-align: left; font-size: 17px; font-weight: 900; padding: 0; }
    .clinic-home span { display: block; color: var(--muted); font-size: 11px; font-weight: 600; margin-top: 2px; }
    .top-spacer { flex: 1; }
    .user-chip { background: var(--primary-soft); border: 1px solid #ccecff; color: var(--primary); padding: 7px 11px; border-radius: 999px; font-size: 13px; font-weight: 700; }
    .nav-wrap { overflow-x: auto; padding: 0 18px; }
    .nav { display: flex; min-width: max-content; gap: 4px; }
    .nav button { border: 0; background: transparent; color: #526c84; padding: 13px 12px 11px; border-bottom: 3px solid transparent; font-size: 13px; font-weight: 700; white-space: nowrap; }
    .nav button:hover { color: var(--primary); background: var(--primary-soft); }
    .nav button.active { color: var(--primary); border-bottom-color: var(--primary); }

    .page { max-width: 1540px; margin: 0 auto; padding: 22px; }
    .page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
    .page-head h2 { margin: 0 0 4px; font-size: 23px; }
    .page-head p { margin: 0; color: var(--muted); font-size: 13px; }
    .actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
    .btn { border: 1px solid transparent; border-radius: 10px; padding: 9px 13px; font-weight: 700; font-size: 13px; background: white; color: var(--ink); }
    .btn-primary { background: var(--primary); color: white; }
    .btn-primary:hover { background: #094f99; }
    .btn-soft { background: var(--primary-soft); color: var(--primary); border-color: #c7eaff; }
    .btn-danger { background: #fff1f2; color: var(--danger); border-color: #fecdd3; }
    .btn-success { background: #ecfdf3; color: var(--success); border-color: #bbf7d0; }
    .btn-sm { padding: 6px 9px; font-size: 12px; border-radius: 8px; }
    .icon-btn { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; }

    .card { background: white; border: 1px solid #e6eef5; border-radius: 15px; box-shadow: var(--shadow); }
    .card-pad { padding: 17px; }
    .card-title { margin: 0 0 13px; font-size: 16px; }
    .stats { display: grid; grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
    .stat { padding: 15px; border-radius: 14px; background: white; border: 1px solid #e6eef5; box-shadow: var(--shadow); position: relative; overflow: hidden; }
    .stat::after { content: ""; position: absolute; width: 70px; height: 70px; border-radius: 50%; right: -24px; top: -24px; background: var(--primary-soft); }
    .stat .label { color: var(--muted); font-size: 12px; font-weight: 700; }
    .stat .value { margin-top: 7px; font-size: 22px; font-weight: 900; }
    .stat.good .value { color: var(--success); }
    .stat.warn .value { color: var(--warning); }
    .stat.bad .value { color: var(--danger); }
    .dashboard-kpi { cursor:pointer; user-select:none; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease; border-width:2px; }
    .dashboard-kpi:hover { transform:translateY(-5px) scale(1.012); box-shadow:0 14px 30px rgba(15,23,42,.18); filter:saturate(1.06); }
    .dashboard-kpi:active { transform:translateY(-1px) scale(.997); }
    .dashboard-kpi.kpi-revenue { border-color:#6ecf9c; background:linear-gradient(135deg,#f0fff6,#ffffff); }
    .dashboard-kpi.kpi-expense { border-color:#f4a5a5; background:linear-gradient(135deg,#fff4f4,#ffffff); }
    .dashboard-kpi.kpi-profit { border-color:#7bcdb0; background:linear-gradient(135deg,#f0fff9,#ffffff); }
    .dashboard-kpi.kpi-appointments { border-color:#7db8f2; background:linear-gradient(135deg,#f0f7ff,#ffffff); }
    .dashboard-kpi.kpi-debt { border-color:#f0b765; background:linear-gradient(135deg,#fff8eb,#ffffff); }
    .dashboard-kpi.kpi-stock { border-color:#ef8f8f; background:linear-gradient(135deg,#fff3f3,#ffffff); }
    .dashboard-kpi::before { content:var(--i18n-dashboard-detail,'Nhấp để xem chi tiết'); position:absolute; left:14px; bottom:7px; font-size:9px; color:#64748b; opacity:0; transition:opacity .18s; }
    .dashboard-kpi:hover::before { opacity:1; }
.dashboard-overview-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.43fr);gap:12px;align-items:stretch;margin:10px 0 12px}.dashboard-kpi-compact-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:9px;min-width:0}.dashboard-kpi-compact-grid .stat{min-height:76px;padding:12px}.dashboard-kpi-compact-grid .stat .label{font-size:10px}.dashboard-kpi-compact-grid .stat .value{margin-top:5px;font-size:18px;overflow-wrap:anywhere}.dashboard-appointment-donut{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:13px;padding:10px 14px;border:2px solid #c9b8f2;border-radius:11px;background:linear-gradient(135deg,#fbfaff,#f5f0ff);color:#252040;text-align:left;cursor:pointer;box-shadow:0 5px 14px rgba(89,61,170,.1)}.dashboard-appointment-donut:hover{border-color:#8767d8;box-shadow:0 9px 20px rgba(89,61,170,.18)}.dashboard-donut-ring{width:112px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#8b68dd 0 var(--dashboard-done),#98ca82 var(--dashboard-done) 100%);position:relative}.dashboard-donut-ring:before{content:"";position:absolute;width:62%;height:62%;border-radius:50%;background:#fff}.dashboard-donut-ring i{position:relative;z-index:1;display:grid;text-align:center;font-style:normal}.dashboard-donut-ring small{font-size:9px;color:#566276}.dashboard-donut-ring b{font-size:25px;color:#27213c}.dashboard-donut-copy{display:grid;gap:9px;min-width:0}.dashboard-donut-copy>b{font-size:12px;color:#403174}.dashboard-donut-copy em{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:7px;font-style:normal;font-size:11px;color:#555e70}.dashboard-donut-copy em i{width:9px;height:9px;border-radius:50%;background:#98ca82}.dashboard-donut-copy em.pending i{background:#8b68dd}.dashboard-donut-copy strong{font-size:14px;color:#252040}
    .dashboard-appointments-card { border:2px solid #8fbde7; box-shadow:0 5px 14px rgba(39,93,145,.10); }
@media(max-width:1250px){.dashboard-overview-row{grid-template-columns:1fr}.dashboard-kpi-compact-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.dashboard-appointment-donut{max-width:520px}}
    .dashboard-appointments-card .card-title { padding:7px 10px; margin:-10px -10px 8px; background:linear-gradient(90deg,#eef7ff,#fff); border-bottom:1px solid #b9d3ea; color:#0d61b7; }
    .dashboard-appointment-row { cursor:pointer; transition:background .12s ease, box-shadow .12s ease; }
    .dashboard-appointment-row:hover td { background:#e9f5ff !important; box-shadow:inset 0 1px 0 #b6d8f4, inset 0 -1px 0 #b6d8f4; }
    .dashboard-portal-sections{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px}
    .dashboard-portal-card,.dashboard-consultation-card{min-width:0}
    .dashboard-appointment-row td:nth-child(2) b { color:#0d61b7; text-decoration:underline dotted; text-underline-offset:3px; }
    .report-focus { outline:3px solid #0d61b7; outline-offset:2px; animation:reportFocusPulse 1.4s ease 2; }
    @keyframes reportFocusPulse { 0%,100%{box-shadow:0 0 0 0 rgba(13,97,183,.18)} 50%{box-shadow:0 0 0 10px rgba(13,97,183,0)} }

    .employee-sales-row-0 td { background:#f8fcff !important; }
    .employee-sales-row-1 td { background:#f4fbf6 !important; }
    .employee-sales-row-2 td { background:#fffaf0 !important; }
    .employee-sales-row-3 td { background:#faf6ff !important; }
    .employee-sales-row:hover td { background:#e4f4ff !important; }
    .employee-sales-customer-link { appearance:none; border:0; padding:0; background:transparent; color:#075fb2; font:inherit; font-weight:800; text-align:left; text-decoration:underline dotted; text-underline-offset:3px; cursor:pointer; }
    .employee-sales-customer-link:hover { color:#003f7c; text-decoration-style:solid; }
    .employee-sales-customer-link:focus-visible { outline:2px solid #1c82d4; outline-offset:3px; border-radius:2px; }
    .debt-report-row { cursor:pointer; }
    .debt-report-row:hover td { background:#fff5e8 !important; }

    .grid-2 { display: grid; grid-template-columns: 2fr 1fr; gap: 15px; }
    .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
    .form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
    .form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .span-2 { grid-column: span 2; }
    .span-full { grid-column: 1 / -1; }
    .customer-entry-card { margin-bottom: 15px; }
    .customer-entry-row { display: grid; grid-template-columns: 1.35fr 1fr .65fr .7fr 1fr 1.35fr auto; gap: 10px; align-items: end; }
    .customer-entry-row .btn { min-height: 39px; white-space: nowrap; }
    .customer-entry-row > .field, .form-grid > .field, .payment-entry-grid > .field, .toolbar > .field { padding: 9px; border: 1px solid var(--grid-blue); border-left-width: 4px; border-radius: 8px; background: #f8fcff; }
    .customer-entry-row > .field:nth-child(4n+2), .form-grid > .field:nth-child(4n+2), .payment-entry-grid > .field:nth-child(4n+2) { border-color: var(--grid-green); background: #f7fcf8; }
    .customer-entry-row > .field:nth-child(4n+3), .form-grid > .field:nth-child(4n+3), .payment-entry-grid > .field:nth-child(4n+3) { border-color: var(--grid-yellow); background: #fffdf7; }
    .customer-entry-row > .field:nth-child(4n+4), .form-grid > .field:nth-child(4n+4), .payment-entry-grid > .field:nth-child(4n+4) { border-color: var(--grid-purple); background: #fcf9ff; }
    .excel-section { border: 2px solid #9bcdea !important; box-shadow: 0 0 0 1px rgba(255,255,255,.9), var(--shadow); }
    .customer-history-row { display: grid; grid-template-columns: 2.1fr 1fr; gap: 12px; margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--line); align-items: stretch; }
    .history-box { background: #fbfdff; border: 1px solid var(--line); border-radius: 12px; padding: 13px; }
    .history-box-title { margin: 0 0 10px; font-size: 13px; color: #45627d; }
    .history-grid { display: grid; grid-template-columns: repeat(7, minmax(90px,1fr)); gap: 9px; }
    .customer-list-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .patient-workspace { display:grid; grid-template-columns:1fr; gap:15px; margin-bottom:15px; }
    .patient-profile { background:linear-gradient(145deg,#fff,#f4fbff); }
    .patient-profile-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; margin-bottom:13px; }
    .patient-name { margin:0 0 5px; font-size:20px; color:var(--primary); }
    .patient-info-strip { display:grid; grid-template-columns:repeat(6,minmax(145px,1fr)); gap:10px; }
    .patient-info-cell { min-height:67px; padding:10px 12px; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.86); }
    .patient-info-cell span { display:block; margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; }
    .patient-info-cell b { display:block; font-size:13px; line-height:1.35; }
    .patient-finance-row { display:grid; grid-template-columns:minmax(230px,.7fr) minmax(480px,2fr); gap:12px; margin-top:13px; }
    .patient-debt { margin:0; padding:14px; border-radius:12px; background:#fff1f2; border:2px solid #fecdd3; }
    .payment-panel { padding:14px; border:2px solid #9bd9ff; border-radius:13px; background:#f5fbff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.9); }
    .payment-panel-title { margin:0 0 10px; color:var(--primary); font-size:14px; font-weight:900; }
    .payment-entry-grid { display:grid; grid-template-columns:minmax(180px,1fr) minmax(320px,1.7fr) auto; gap:12px; align-items:end; }
    .payment-current-grid { grid-template-columns:minmax(200px,.8fr) minmax(320px,1.4fr); }
    .payment-methods { display:flex; flex-wrap:wrap; gap:8px; }
    .payment-option { position:relative; cursor:pointer; }
    .payment-option input { position:absolute; opacity:0; pointer-events:none; }
    .payment-option span { display:flex; align-items:center; justify-content:center; min-width:132px; min-height:39px; padding:8px 12px; border:1px solid #bfd8e8; border-radius:10px; background:white; color:#45627d; font-size:13px; font-weight:800; transition:.18s; }
    .payment-option input:checked + span { border-color:var(--primary); background:var(--primary); color:white; box-shadow:0 0 0 3px rgba(13,97,183,.12); }
    .visit-history-table { min-width:1050px; }
    .payment-log-table { min-width:850px; }
    .selected-patient-banner { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; margin-bottom:13px; border-radius:12px; background:var(--primary-soft); border:1px solid #c7eaff; }
    .selected-patient-banner strong { color:var(--primary); }
    .check { display: flex; align-items: center; gap: 7px; font-size: 13px; color: #4d657b; }
    .check input { width: auto; }

    .table-wrap { overflow: auto; border: 2px solid #a9cfe7; border-radius: 10px; background: white; }
    table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 820px; }
    th, td { padding: 10px 11px; border-right: 1px solid #c9dce9; border-bottom: 1px solid #c9dce9; text-align: left; font-size: 13px; vertical-align: middle; }
    th:last-child, td:last-child { border-right: 0; }
    th { position: sticky; top: 0; z-index: 1; background: #eaf6ff; color: #315d7c; font-size: 11px; text-transform: uppercase; letter-spacing: .02em; border-bottom: 2px solid #8fc7e8; }
    tbody tr:nth-child(4n+1) td { background: #f8fcff; }
    tbody tr:nth-child(4n+2) td { background: #f7fcf8; }
    tbody tr:nth-child(4n+3) td { background: #fffdf7; }
    tbody tr:nth-child(4n+4) td { background: #fcf9ff; }
    tbody tr:hover td { background: #e9f7ff; }
    tbody tr:hover { box-shadow: inset 3px 0 var(--primary-2); }
    tbody tr:last-child td { border-bottom: 0; }
    .money { font-variant-numeric: tabular-nums; font-weight: 750; white-space: nowrap; }
    .text-danger { color: var(--danger); }
    .text-success { color: var(--success); }
    .muted { color: var(--muted); }
    .small { font-size: 12px; }
    .badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 8px; font-size: 11px; font-weight: 800; white-space: nowrap; }
    .badge-blue { background: var(--primary-soft); color: var(--primary); }
    .badge-green { background: #dcfce7; color: #166534; }
    .badge-yellow { background: #fef3c7; color: #92400e; }
    .badge-red { background: #fee2e2; color: #991b1b; }
    .badge-gray { background: #eef2f6; color: #526273; }
    .alert-row { background: #fff8f8; }
    .alert-row td { background: #fff1f2 !important; }

    .toolbar { display: flex; flex-wrap: wrap; gap: 9px; align-items: end; margin-bottom: 12px; }
    .toolbar .field { min-width: 150px; }
    .toolbar .search { min-width: 270px; flex: 1; }
    .section-divider { margin: 17px 0; border: 0; border-top: 1px solid var(--line); }
    .empty { text-align: center; color: var(--muted); padding: 35px 15px; }
    .kpi-bars { display: grid; gap: 11px; max-height: 430px; overflow-y: auto; padding-right: 4px; }
    .kpi-bars::-webkit-scrollbar { width: 8px; }
    .kpi-bars::-webkit-scrollbar-thumb { background: #c3d3e3; border-radius: 999px; }
    .bar-row { display: grid; grid-template-columns: 140px 1fr auto; gap: 10px; align-items: center; font-size: 12px; }
    .bar-track { height: 9px; border-radius: 999px; background: #eaf0f5; overflow: hidden; }
    .bar-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--primary-2)); }

    .autocomplete { position: relative; }
    .suggestions { position: absolute; z-index: 25; left: 0; right: 0; top: calc(100% + 4px); max-height: 260px; overflow: auto; background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
    .suggestion { padding: 9px 11px; border-bottom: 1px solid #eef3f7; cursor: pointer; }
    .suggestion:hover { background: var(--primary-soft); }
    .suggestion:last-child { border-bottom: 0; }

    .exam-table input, .exam-table select { width: 100%; min-width: 85px; border: 1.5px solid #a9c9df; border-radius: 6px; padding: 7px; background: white; }
    .exam-table .service-select { min-width: 250px; }
    .summary-box { margin-top: 12px; margin-left: auto; width: min(500px, 100%); display: grid; gap: 7px; padding:14px 16px; border:2px solid #9bd9ff; border-radius:13px; background:#f8fcff; }
    .summary-line { display: flex; justify-content: space-between; gap: 20px; padding: 6px 0; border-bottom: 1px dashed var(--line); }
    .summary-line.total { font-size: 18px; font-weight: 900; color: var(--primary); }

    .modal-backdrop { position: fixed; inset: 0; z-index: 80; background: rgba(8, 32, 54, .55); display: grid; place-items: center; align-items: safe center; justify-items: safe center; padding: 20px; height: 100vh; height: -webkit-fill-available; height: 100dvh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
    .modal { width: min(1100px, 100%); max-height: 90vh; overflow: auto; border-radius: 17px; background: white; box-shadow: 0 30px 90px rgba(0,0,0,.28); }
    .modal-head { position: sticky; top: 0; z-index: 2; background: white; border-bottom: 1px solid var(--line); padding: 15px 18px; display: flex; justify-content: space-between; align-items: center; }
    .modal-body { padding: 18px; }
    .login-appointment-popup { width:min(470px,calc(100vw - 28px)); overflow:hidden; border-radius:14px; background:#fff; border:1px solid #b7c7d6; box-shadow:0 24px 75px rgba(8,35,61,.36); }
    .login-appointment-popup-head { padding:14px 18px; background:linear-gradient(135deg,#0d61b7,#249bd8); color:#fff; font-size:17px; font-weight:900; }
    .login-appointment-popup-body { padding:22px 20px 18px; text-align:center; }
    .login-appointment-popup-icon { width:58px; height:58px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; background:#e7f4ff; color:#0d61b7; font-size:28px; }
    .login-appointment-popup-body p { margin:0; color:#34495e; font-size:14px; line-height:1.55; }
    .login-appointment-popup-actions { display:flex; justify-content:center; gap:10px; padding:0 20px 20px; }
    .login-appointment-popup-actions .btn { min-width:130px; min-height:38px; }
    .service-picker-modal { width: min(980px, 100%); overflow: hidden; }
    .service-picker-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 480px; }
    .service-group-list { padding: 14px; background: #f5faff; border-right: 1px solid var(--line); display: grid; align-content: start; gap: 8px; }
    .service-group-btn { width: 100%; border: 1px solid #cfe4f3; border-radius: 11px; background: white; color: #45627d; padding: 12px 13px; text-align: left; font-weight: 800; transition: .18s; }
    .service-group-btn:hover { border-color: var(--primary-2); color: var(--primary); transform: translateX(2px); }
    .service-group-btn.active { background: var(--primary); border-color: var(--primary); color: white; box-shadow: 0 0 0 3px rgba(13,97,183,.11); }
    .service-child-panel { padding: 16px; min-width: 0; }
    .service-picker-hint { margin: 0 0 13px; padding: 10px 12px; border: 1px dashed #8fd3ff; border-radius: 10px; background: var(--primary-soft); color: #45627d; font-size: 13px; }
    .service-child-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; max-height: 520px; overflow: auto; padding-right: 3px; }
    .service-child-item { border: 1px solid var(--line); border-radius: 11px; background: white; padding: 12px; cursor: pointer; user-select: none; transition: .16s; }
    .service-child-item:hover { border-color: var(--primary-2); background: #f7fcff; transform: translateY(-1px); box-shadow: 0 5px 15px rgba(13,97,183,.08); }
    .service-child-item b { display: block; margin-bottom: 5px; color: var(--ink); }
    .service-child-item span { color: var(--primary); font-weight: 900; }
    .service-close-x { width: 38px; height: 38px; border-radius: 10px; border: 1px solid #fecdd3; background: #fff1f2; color: var(--danger); font-size: 20px; font-weight: 900; line-height: 1; }
    .service-cell-button { width: 100%; min-width: 250px; min-height: 36px; border: 1px solid var(--line); border-radius: 8px; background: white; color: #45627d; padding: 7px 10px; text-align: left; font-weight: 700; }
    .service-cell-button:hover, .service-cell-button.has-service { border-color: var(--primary-2); background: #f5fbff; color: var(--primary); }
    .service-cell-button.has-service { font-weight: 900; }
    .discount-percent { min-width: 86px !important; }
    .discount-fixed { min-width: 118px !important; }
    .visit-detail-modal { width: min(1180px, 100%); }
    .visit-detail-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-bottom:14px; }
    .visit-detail-cell { padding:10px 12px; border:1px solid var(--grid-blue); border-left-width:4px; border-radius:8px; background:#f8fcff; }
    .visit-detail-cell:nth-child(4n+2) { border-color:var(--grid-green); background:#f7fcf8; }
    .visit-detail-cell:nth-child(4n+3) { border-color:var(--grid-yellow); background:#fffdf7; }
    .visit-detail-cell:nth-child(4n+4) { border-color:var(--grid-purple); background:#fcf9ff; }
    .visit-detail-cell span { display:block; font-size:11px; color:var(--muted); font-weight:800; text-transform:uppercase; margin-bottom:4px; }

    .toast-wrap { position: fixed; z-index: 120; right: 18px; bottom: 18px; display: grid; gap: 8px; }
    .toast { max-width: 380px; padding: 11px 14px; border-radius: 11px; color: white; box-shadow: var(--shadow); animation: in .2s ease; }
    .toast.ok { background: #15803d; }
    .toast.err { background: #b91c1c; }
    @keyframes in { from { transform: translateY(12px); opacity: 0; } }

    @media (max-width: 1150px) {
      .stats { grid-template-columns: repeat(3, 1fr); }
      .grid-2, .patient-workspace { grid-template-columns: 1fr; }
      .patient-info-strip { grid-template-columns:repeat(3,1fr); }
      .patient-finance-row, .payment-entry-grid, .payment-current-grid { grid-template-columns:1fr; }
      .customer-entry-row { grid-template-columns: repeat(3, 1fr); }
      .customer-history-row { grid-template-columns: 1fr; }
      .history-grid { grid-template-columns: repeat(4, 1fr); }
      .form-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 680px) {
      .topline { padding: 9px 13px; }
      .clinic-home { font-size: 14px; }
      .user-chip { display: none; }
      .page { padding: 14px; }
      .page-head { flex-direction: column; }
      .stats { grid-template-columns: repeat(2, 1fr); }
      .form-grid, .form-grid-3, .grid-3, .history-grid, .customer-entry-row, .patient-info-strip { grid-template-columns: 1fr; }
      .patient-profile-head { flex-direction:column; }
      .payment-methods { display:grid; grid-template-columns:1fr 1fr; }
      .service-picker-layout { grid-template-columns: 1fr; }
      .service-group-list { grid-template-columns: repeat(2, minmax(0,1fr)); border-right: 0; border-bottom: 1px solid var(--line); }
      .service-child-list { grid-template-columns: 1fr; }
      .visit-detail-grid { grid-template-columns: 1fr; }
      .payment-option span { min-width:0; }
      .span-2 { grid-column: auto; }
    }

    .material-catalog-window { border:1px solid #adb8c5; background:#fff; }
    .material-window-title { padding:8px 12px; border-bottom:1px solid #c4ced9; background:#f4f4f4; color:#4b5563; font-size:13px; }
    .material-split-layout { display:grid; grid-template-columns: 310px minmax(0,1fr); }
    .material-pane { min-width:0; border-right:1px solid #cfd7e2; }
    .material-pane:last-child { border-right:0; }
    .material-pane-head { padding:8px 10px; border-bottom:1px solid #cfd7e2; background:#ddecfb; text-align:center; }
    .material-pane-head h3 { margin:0; color:#183bdb; font-family:'Arial',serif; font-size:22px; }
    .material-toolbar-legacy { display:flex; gap:6px; align-items:center; flex-wrap:wrap; padding:6px 10px; border-bottom:1px solid #cfd7e2; background:#f9fafc; }
    .material-tool-btn { display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border:1px solid transparent; background:transparent; color:#1f2937; font-size:12px; }
    .material-tool-btn:hover { background:#eef4fb; border-color:#d1dbe6; }
    .material-tool-btn .tool-ico { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-weight:700; font-size:15px; color:#fff; }
    .material-tool-btn.add .tool-ico { background:#35b339; }
    .material-tool-btn.edit .tool-ico { background:#f0b100; }
    .material-tool-btn.delete .tool-ico { background:#d72626; }
    .material-tool-btn.refresh .tool-ico { background:#3b82f6; }
    .material-tool-btn.close .tool-ico { background:#ef4444; }
    .material-parent-label { padding:6px 10px 0; color:#1d4ed8; font-family:'Arial',serif; font-size:18px; font-weight:700; }
    .material-grid-table table { min-width:100%; }
    .material-grid-table th, .material-grid-table td { padding:4px 6px; font-size:12px; }
    .material-grid-table .selected-row td { background:#dcebff !important; }
    .material-grid-table tbody tr { cursor:pointer; }
    .material-index-col { width:36px; text-align:center; }
    .legacy-form-modal { width:min(680px, 94vw); border:1px solid #adb8c5; background:#fff; box-shadow:0 20px 50px rgba(0,0,0,.28); }
    .legacy-form-modal.small { width:min(470px, 92vw); }
    .legacy-form-title { padding:6px 10px; background:#f2f2f2; border-bottom:1px solid #cfd7e2; color:#4b5563; display:flex; align-items:center; justify-content:space-between; }
    .legacy-form-header { padding:10px 14px; background:#0e68d0; color:#fff; text-align:center; font-family:'Arial',serif; font-size:20px; font-weight:700; }
    .legacy-form-body { padding:14px; }
    .legacy-form-grid { display:grid; grid-template-columns: 120px 1fr 100px 1fr; gap:10px 8px; align-items:center; }
    .legacy-form-grid.one-col { grid-template-columns: 90px 1fr; }
    .legacy-form-grid label { font-size:12px; color:#1f2937; }
    .legacy-form-grid input, .legacy-form-grid select { width:100%; min-height:28px; border:1px solid #9fb2c8; padding:4px 6px; }
    .legacy-form-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:14px; }
    .legacy-action-btn { display:inline-flex; align-items:center; gap:6px; border:0; background:transparent; font-size:12px; }
    .legacy-action-btn .tool-ico { width:24px; height:24px; border-radius:4px; display:grid; place-items:center; color:#fff; }
    .legacy-action-btn .tool-ico svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .legacy-action-btn.save .tool-ico { background:#3b82f6; }
    .legacy-action-btn.close .tool-ico { background:#ef4444; }
    .material-empty-box { padding:30px 16px; color:#64748b; text-align:center; }

    .material-filterbar { display:grid; grid-template-columns:minmax(180px,.8fr) minmax(240px,1.2fr) 160px auto; gap:6px; padding:6px 8px; border-bottom:1px solid #cfd7e2; background:#eef2f6; align-items:end; }
    .material-filterbar .field-mini { display:grid; gap:2px; }
    .material-filterbar label { font-size:10px; color:#435164; }
    .material-filterbar input,.material-filterbar select { height:27px; border:1px solid #9facba; border-radius:0; padding:3px 6px; background:#fff; font-size:11px; }
    .material-tool-btn .tool-ico svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .material-tool-btn .tool-ico { border-radius:4px; }
    .material-tool-btn.import .tool-ico { background:#0ea5e9; }
    .material-tool-btn.export .tool-ico { background:#ef8b17; }
    .material-tool-btn.adjust .tool-ico { background:#7c3aed; }
    .inventory-summary-grid { display:grid; grid-template-columns:repeat(7,minmax(120px,1fr)); border:1px solid #aeb9c6; margin:8px 0; background:#fff; }
    .inventory-summary-cell { min-height:58px; padding:7px 9px; border-right:1px solid #c7d0da; }
    .inventory-summary-cell:last-child { border-right:0; }
    .inventory-summary-cell span { display:block; color:#526273; font-size:10px; text-transform:uppercase; }
    .inventory-summary-cell b { display:block; margin-top:5px; color:#0d61b7; font-size:17px; }
    .inventory-summary-cell.warning b { color:#d97706; }
    .inventory-summary-cell.danger b { color:#dc2626; }
    .inventory-transaction-panel { margin-top:8px; border:1px solid #adb8c5; background:#fff; scroll-margin-top:10px; }
    .inventory-transaction-title { padding:7px 10px; color:#1738cc; background:#ddecfb; border-bottom:1px solid #bec9d4; text-align:center; font:700 19px/1.2 'Arial',serif; }
    .inventory-transaction-filters { display:grid; grid-template-columns:150px minmax(220px,1fr) 135px 135px auto; gap:6px; align-items:end; padding:6px 8px; background:#f4f6f8; border-bottom:1px solid #c4ced9; }
    .inventory-report-title{display:flex;align-items:center;justify-content:center;position:relative;min-height:38px}
    .inventory-report-title .btn{position:absolute;right:8px;top:5px}
    .inventory-report-title .inventory-excel-button{box-sizing:border-box;width:auto!important;min-width:88px!important;height:29px!important;padding:5px 11px!important;font-size:12px!important;line-height:1!important}
    .inventory-balance-table table{min-width:1660px}
    .inventory-balance-table th{white-space:normal;vertical-align:middle;text-align:center}
    .inventory-balance-table tfoot th{position:sticky;bottom:0;background:#dcecff;color:#0a3f7c;border:1px solid #91a9c2;font-weight:900}
    .stock-type-badge { display:inline-flex; min-width:75px; justify-content:center; padding:3px 7px; border:1px solid; font-size:10px; font-weight:800; }
    .stock-type-badge.nhap { color:#08773e; background:#eafaf1; border-color:#9bd7b5; }
    .stock-type-badge.xuat { color:#b45309; background:#fff6e8; border-color:#f2c98e; }
    .stock-type-badge.dieu_chinh { color:#6d28d9; background:#f5efff; border-color:#c9b2ed; }
    .stock-change-positive { color:#15803d; font-weight:800; }
    .stock-change-negative { color:#dc2626; font-weight:800; }
    .stock-current-box { padding:8px 10px; background:#eef7ff; border:1px solid #9dc9e8; font-size:12px; }
    .stock-current-box b { color:#0d61b7; font-size:18px; }
    .stock-modal-note { padding:7px 9px; margin-bottom:10px; background:#fffbe8; border:1px solid #ead594; color:#6b5a17; font-size:11px; }
    @media (max-width: 1050px) {
      .material-filterbar,.inventory-transaction-filters { grid-template-columns:1fr 1fr; }
      .inventory-summary-grid { grid-template-columns:repeat(2,1fr); }
      .inventory-summary-cell { border-bottom:1px solid #c7d0da; }
    }
    @media (max-width: 620px) {
      .material-filterbar,.inventory-transaction-filters { grid-template-columns:1fr; }
      .inventory-summary-grid { grid-template-columns:1fr; }
      .inventory-summary-cell { border-right:0; }
    }
    @media (max-width: 900px) {
      .material-split-layout { grid-template-columns:1fr; }
      .material-pane { border-right:0; border-bottom:1px solid #cfd7e2; }
      .material-pane:last-child { border-bottom:0; }
      .legacy-form-grid { grid-template-columns: 1fr; }
    }


    /* ===== v24 procedure type + inventory synchronization ===== */
    .procedure-page-workspace { min-height:calc(100dvh - 250px); padding:34px 12px; background:linear-gradient(180deg,#f2f4f7,#e8edf2); }
    .procedure-catalog-shell { width:min(1080px,100%); margin:0 auto; border:1px solid #9da9b6; background:#fff; box-shadow:0 12px 32px rgba(31,41,55,.18); }
    .procedure-window-caption { display:flex; justify-content:space-between; align-items:center; min-height:31px; padding:5px 10px; background:#f5f5f5; border-bottom:1px solid #bfc8d2; color:#4b5563; font-size:12px; }
    .procedure-window-close { width:26px; height:23px; border:0; background:transparent; font-size:18px; color:#4b5563; }
    .procedure-window-close:hover { background:#e81123; color:#fff; }
    .procedure-split { display:grid; grid-template-columns:320px minmax(0,1fr); min-height:520px; }
    .procedure-pane { min-width:0; border-right:1px solid #adb9c5; }
    .procedure-pane:last-child { border-right:0; }
    .procedure-pane-title { padding:8px 10px; background:#dcebf9; border-bottom:1px solid #afbdca; text-align:center; }
    .procedure-pane-title h3 { margin:0; color:#1839d8; font:700 23px 'Arial',serif; }
    .procedure-toolbar { display:flex; align-items:center; gap:4px; min-height:39px; padding:3px 8px; background:#f4f5f6; border-bottom:1px solid #b8c3ce; overflow-x:auto; }
    .procedure-tool { display:inline-flex; align-items:center; gap:5px; min-width:max-content; padding:4px 8px; border:1px solid transparent; background:transparent; color:#111827; font-size:12px; }
    .procedure-tool:hover { border-color:#c7d4e0; background:#edf5fd; }
    .procedure-tool-icon { width:24px; height:24px; display:grid; place-items:center; border-radius:50%; color:#fff; font-size:17px; line-height:1; font-weight:900; }
    .procedure-tool.add .procedure-tool-icon { background:#31ba39; }
    .procedure-tool.edit .procedure-tool-icon { background:#e3aa00; }
    .procedure-tool.delete .procedure-tool-icon { background:#d71920; }
    .procedure-tool.refresh .procedure-tool-icon { background:#2f80d8; }
    .procedure-tool.close .procedure-tool-icon { border-radius:4px; background:#ed1c24; }
    .procedure-searchbar { display:grid; grid-template-columns:auto 1fr; gap:7px; align-items:center; padding:5px 8px; border-bottom:1px solid #cbd4de; background:#fbfcfd; font-size:11px; }
    .procedure-searchbar input { min-width:0; height:27px; border:1px solid #a9b6c4; padding:3px 7px; }
    .procedure-parent-banner { min-height:30px; padding:5px 12px; color:#173cdb; font:700 17px 'Arial',serif; border-bottom:1px solid #c1ccd7; }
    .procedure-table-wrap { overflow:auto; max-height:430px; }
    .procedure-table { width:100%; min-width:100%; border-collapse:collapse; }
    .procedure-table th,.procedure-table td { height:25px; padding:3px 6px; border-right:1px solid #c6d0da; border-bottom:1px solid #d0d8e1; font-size:12px; }
    .procedure-table th { position:sticky; top:0; z-index:1; background:#f2f4f6; color:#111827; text-align:center; }
    .procedure-table tbody tr { cursor:pointer; }
    .procedure-table tbody tr:hover td { background:#eef6ff; }
    .procedure-table tbody tr.selected-row td { background:#dcecff !important; }
    .procedure-index { width:38px; text-align:center; }
    .procedure-money { text-align:right; font-variant-numeric:tabular-nums; }
    .procedure-empty { padding:35px 10px !important; text-align:center; color:#64748b; }
    .procedure-form-window { width:min(690px,95vw); border:1px solid #8997a5; background:#fff; box-shadow:0 22px 65px rgba(0,0,0,.32); }
    .procedure-form-window.group-form { width:min(500px,94vw); }
    .procedure-form-caption { display:flex; justify-content:space-between; align-items:center; min-height:29px; padding:4px 8px; background:#f5f5f5; border-bottom:1px solid #b9c4cf; font-size:12px; color:#4b5563; }
    .procedure-form-blue-title { padding:10px; background:#0e68d0; color:#fff; text-align:center; font:700 23px 'Arial',serif; }
    .procedure-form-content { padding:17px; }
    .procedure-form-grid { display:grid; grid-template-columns:110px minmax(0,1fr) 95px minmax(0,1fr); gap:10px 8px; align-items:center; }
    .procedure-form-grid.group-grid { grid-template-columns:90px 1fr; }
    .procedure-form-grid label { font-size:12px; color:#1f2937; }
    .procedure-form-grid input,.procedure-form-grid select { width:100%; min-width:0; height:29px; border:1px solid #98abc0; padding:4px 6px; background:#fff; }
    .procedure-form-actions { display:flex; justify-content:flex-end; gap:18px; margin-top:16px; }
    .procedure-form-action { display:inline-flex; align-items:center; gap:6px; border:0; background:transparent; color:#111827; font-size:12px; }
    .procedure-form-action span:first-child { width:25px; height:25px; display:grid; place-items:center; border-radius:4px; color:#fff; font-size:16px; }
    .procedure-form-action.save span:first-child { background:#2879c8; }
    .procedure-form-action.cancel span:first-child { background:#e31b23; }
    .procedure-status { display:inline-flex; align-items:center; gap:5px; }
    .procedure-status input { width:auto; }

    .supplier-form-window { width:min(850px,96vw); max-height:94vh; overflow:auto; border:1px solid #8997a5; background:#fff; box-shadow:0 22px 65px rgba(0,0,0,.34); }
    .supplier-form-caption { position:sticky; top:0; z-index:3; display:flex; justify-content:space-between; align-items:center; min-height:31px; padding:4px 9px; border-bottom:1px solid #b9c4cf; background:#f5f5f5; color:#4b5563; font-size:12px; }
    .supplier-form-blue-title { padding:11px; background:#0e68d0; color:#fff; text-align:center; font:700 23px Arial,sans-serif; letter-spacing:.2px; }
    .supplier-form-content { padding:14px 16px 16px; }
    .supplier-form-section-title { margin-top:10px; padding:6px 9px; border:1px solid #b9c9d9; border-bottom:0; background:#e8f2fc; color:#164f91; font-size:12px; font-weight:800; }
    .supplier-form-section-title:first-child { margin-top:0; }
    .supplier-form-grid { display:grid; grid-template-columns:145px minmax(180px,1fr) 145px minmax(180px,1fr); align-items:stretch; border-top:1px solid #b9c9d9; border-left:1px solid #b9c9d9; }
    .supplier-form-grid > label { display:flex; align-items:center; min-height:38px; padding:7px 9px; border-right:1px solid #b9c9d9; border-bottom:1px solid #b9c9d9; background:#f5f8fb; color:#26394c; font-size:12px; font-weight:700; line-height:1.3; }
    .supplier-form-grid > label b { margin-left:4px; color:#d71920; }
    .supplier-form-grid > input,.supplier-form-grid > select,.supplier-form-grid > textarea { width:100%; min-width:0; min-height:38px; padding:6px 8px; border:0; border-right:1px solid #b9c9d9; border-bottom:1px solid #b9c9d9; border-radius:0; background:#fff; color:#111827; font-size:12px; outline:none; }
    .supplier-form-grid > textarea { min-height:70px; resize:vertical; line-height:1.45; }
    .supplier-form-grid > input:focus,.supplier-form-grid > select:focus,.supplier-form-grid > textarea:focus { position:relative; z-index:1; box-shadow:inset 0 0 0 2px #2684d9; background:#fafdff; }
    .supplier-form-grid .supplier-wide-control { grid-column:2/-1; }
    .supplier-form-last-grid { grid-template-columns:145px minmax(180px,1fr) 145px minmax(180px,1fr); }
    .supplier-form-hint { margin-top:12px; padding:9px 11px; border:1px dashed #8ebee5; background:#f4faff; color:#315d7c; font-size:12px; line-height:1.45; }
    .supplier-form-actions { display:flex; justify-content:flex-end; gap:20px; padding-top:15px; }

    @media (max-width:760px) {
      .supplier-form-window { width:min(620px,96vw); }
      .supplier-form-grid,.supplier-form-last-grid { grid-template-columns:125px minmax(0,1fr); }
      .supplier-form-grid .supplier-wide-control { grid-column:auto; }
      .supplier-form-blue-title { font-size:19px; }
    }

    @media (max-width:480px) {
      .supplier-form-content { padding:10px; }
      .supplier-form-grid,.supplier-form-last-grid { grid-template-columns:1fr; }
      .supplier-form-grid > label { min-height:30px; border-bottom:0; }
      .supplier-form-grid > input,.supplier-form-grid > select,.supplier-form-grid > textarea { min-height:36px; }
      .supplier-form-actions { justify-content:center; }
    }

    .procedure-type-options { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .procedure-type-choice { display:inline-flex; align-items:center; gap:6px; min-height:30px; padding:4px 10px; border:1px solid #b8c5d4; background:#fff; cursor:pointer; }
    .procedure-type-choice input { width:auto !important; height:auto !important; }
    .procedure-type-choice.service { color:#0d61b7; }
    .procedure-type-choice.product { color:#15803d; }
    .procedure-product-hint { grid-column:1/-1; padding:8px 10px; border:1px dashed #72b58a; background:#f0fff4; color:#166534; font-size:12px; line-height:1.45; }
    .procedure-service-hint { grid-column:1/-1; padding:8px 10px; border:1px dashed #9bc8e7; background:#f4fbff; color:#315d7c; font-size:12px; line-height:1.45; }
    .procedure-kind-badge { display:inline-flex; align-items:center; justify-content:center; min-width:70px; padding:3px 7px; border-radius:12px; font-size:11px; font-weight:800; }
    .procedure-kind-badge.service { background:#e6f4ff; color:#0d61b7; }
    .procedure-kind-badge.product { background:#dcfce7; color:#166534; }
    .procedure-kind-badge.lab-item-badge { min-width:0; margin-left:4px; background:#fff2d9; color:#9a5b00; }
    .service-cell-lab-badge { display:inline-block; margin-left:6px; padding:1px 6px; border-radius:9px; background:#fff2d9; color:#9a5b00; font-size:10px; font-weight:800; vertical-align:middle; }
    .lab-cell-required select { border-color:#e2900a !important; box-shadow:0 0 0 1px #f5c56b inset; }
    .lab-cell-required::after { content:'Cần chọn Labo'; display:block; font-size:9.5px; color:#9a5b00; font-weight:700; margin-top:2px; }
    .sync-source-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 6px; border-radius:10px; background:#dcfce7; color:#166534; font-size:10px; font-weight:800; white-space:nowrap; }
    .synced-material-note { grid-column:1/-1; padding:8px 10px; border:1px dashed #72b58a; background:#f0fff4; color:#166534; font-size:12px; }

    @media (max-width:760px) {
      .procedure-page-workspace { padding:8px 4px; min-height:0; }
      .procedure-split { grid-template-columns:1fr; min-height:0; }
      .procedure-pane { border-right:0; border-bottom:1px solid #adb9c5; }
      .procedure-pane:last-child { border-bottom:0; }
      .procedure-table-wrap { max-height:300px; }
      .procedure-form-grid { grid-template-columns:1fr; }
    }


    /* ===== v30: Nhóm thủ thuật tràn toàn bộ vùng làm việc ===== */
    .procedure-page {
      width: 100%;
      max-width: none;
      padding: 10px 12px 12px;
    }
    .procedure-page .page-head {
      margin-bottom: 8px;
    }
    .procedure-page-workspace {
      --procedure-workspace-height: calc(100dvh - 255px);
      width: 100%;
      height: var(--procedure-workspace-height);
      min-height: 500px;
      padding: 0;
      display: flex;
      align-items: stretch;
      background: linear-gradient(180deg,#f3f6f9,#eaf0f5);
      overflow: hidden;
    }
    .procedure-catalog-shell {
      width: 100%;
      max-width: none;
      height: 100%;
      min-height: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      border: 1px solid #9da9b6;
      box-shadow: none;
      background: #fff;
    }
    .procedure-window-caption,
    .procedure-pane-title,
    .procedure-toolbar,
    .procedure-searchbar,
    .procedure-parent-banner {
      flex: 0 0 auto;
    }
    .procedure-split {
      flex: 1 1 auto;
      min-height: 0;
      height: auto;
      display: grid;
      grid-template-columns: minmax(270px, 30%) minmax(0, 70%);
      align-items: stretch;
    }
    .procedure-pane {
      min-width: 0;
      min-height: 0;
      height: 100%;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    .procedure-table-wrap {
      flex: 1 1 auto;
      min-height: 0;
      max-height: none;
      overflow: auto;
      overscroll-behavior: contain;
      background: #fff;
    }
    .procedure-table {
      min-width: 100%;
    }
    .procedure-pane:last-child .procedure-table {
      min-width: 760px;
    }
    @media (min-width: 1450px) {
      .procedure-split { grid-template-columns: minmax(320px, 26%) minmax(0, 74%); }
    }
    @media (min-width: 901px) and (max-width: 1199px) {
      .procedure-split { grid-template-columns: minmax(260px, 36%) minmax(0, 64%); }
      .procedure-page { padding-inline: 8px; }
    }
    @media (max-width: 900px) {
      .procedure-page { padding: 8px 6px 14px; }
      .procedure-page-workspace {
        width: 100%;
        height: auto !important;
        min-height: 0;
        overflow: visible;
        padding: 0;
      }
      .procedure-catalog-shell {
        width: 100%;
        height: auto;
        min-height: 0;
      }
      .procedure-split {
        display: grid;
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
      }
      .procedure-pane {
        height: auto;
        min-height: 360px;
        border-right: 0;
        border-bottom: 1px solid #adb9c5;
      }
      .procedure-pane:last-child {
        min-height: 470px;
        border-bottom: 0;
      }
      .procedure-table-wrap {
        flex: 0 0 auto;
        max-height: 310px;
        overflow: auto;
      }
      .procedure-pane:last-child .procedure-table-wrap { max-height: 390px; }
      .procedure-toolbar { flex-wrap: nowrap; overflow-x: auto; }
      .procedure-searchbar { grid-template-columns: 78px minmax(180px,1fr); }
    }
    @media (max-width: 520px) {
      .procedure-page { padding-inline: 3px; }
      .procedure-pane-title h3 { font-size: 19px; }
      .procedure-window-caption { padding-inline: 7px; }
      .procedure-tool { padding-inline: 6px; }
      .procedure-tool-icon { width: 22px; height: 22px; font-size: 15px; }
      .procedure-pane { min-height: 330px; }
      .procedure-pane:last-child { min-height: 440px; }
      .procedure-table-wrap { max-height: 285px; }
      .procedure-pane:last-child .procedure-table-wrap { max-height: 355px; }
    }



    /* ===== v34 tooth chart selector ===== */
    .tooth-input-wrap { display:flex; align-items:stretch; min-width:118px; }
    .tooth-input-wrap .tooth { min-width:76px !important; border-right:0 !important; cursor:pointer; background:#fffdf4 !important; }
    .tooth-picker-trigger { flex:0 0 34px; width:34px; border:1px solid #9fb7ca; background:linear-gradient(#ffffff,#e8f1f8); color:#0d61b7; font-weight:900; font-size:18px; line-height:1; cursor:pointer; }
    .tooth-picker-trigger:hover { background:#dff3ff; border-color:#54a9da; box-shadow:0 0 0 2px rgba(84,169,218,.16); }
    .tooth-chart-modal { width:min(1040px, 98vw); max-height:94vh; overflow:hidden; border-radius:3px; }
    .tooth-chart-modal .modal-head { padding:9px 12px; background:linear-gradient(#f9fbfd,#e9eef4); }
    .tooth-chart-layout { display:grid; grid-template-columns:170px minmax(0,1fr); min-height:540px; }
    .tooth-chart-sidebar { padding:14px 12px; border-right:1px solid #bdc9d4; background:#f7f8fa; }
    .tooth-chart-sidebar h4 { margin:0 0 12px; color:#334155; font-size:14px; }
    .tooth-chart-toggle { display:flex; align-items:center; gap:8px; margin:9px 0; font-size:13px; cursor:pointer; }
    .tooth-chart-toggle input { width:16px; height:16px; }
    .tooth-chart-help { margin-top:18px; padding:10px; border:1px dashed #9fc5dc; background:#f3fbff; font-size:12px; line-height:1.5; color:#45627d; }
    .tooth-chart-content { min-width:0; display:flex; flex-direction:column; background:#f4f5f6; }
    .tooth-chart-scroll { flex:1; overflow:auto; padding:14px; }
    .tooth-chart-section { margin-bottom:14px; }
    .tooth-chart-section.hidden { display:none; }
    .tooth-section-title { margin:0 0 6px; padding:5px 8px; border:1px solid #b9c7d2; background:linear-gradient(#fff,#edf2f5); color:#334155; font-size:12px; font-weight:800; }
    .tooth-arch-wrap { overflow-x:auto; padding-bottom:5px; }
    .tooth-arch { display:grid; gap:4px; width:max-content; min-width:100%; justify-content:center; }
    .tooth-arch.adult { grid-template-columns:repeat(16, 48px); }
    .tooth-arch.child { grid-template-columns:repeat(10, 48px); }
    .tooth-tile { position:relative; width:48px; height:88px; padding:2px 2px 19px; border:2px solid #d7e3e8; background:#087f80; cursor:pointer; box-shadow:inset 0 0 0 1px rgba(255,255,255,.35); transition:transform .12s ease, background .12s ease, border-color .12s ease; }
    .tooth-tile:hover { transform:translateY(-2px); border-color:#2f6d9b; background:#079596; }
    .tooth-tile.selected { background:#ffd91a; border-color:#ef3340; box-shadow:0 0 0 2px #fff, 0 0 0 4px #ef3340; z-index:2; }
    .tooth-glyph { width:100%; height:62px; display:grid; place-items:center; }
    .tooth-glyph svg { width:38px; height:59px; overflow:visible; filter:drop-shadow(0 1px 0 rgba(0,0,0,.25)); }
    .tooth-glyph path { fill:#fefefe; stroke:#22313d; stroke-width:1.5; vector-effect:non-scaling-stroke; }
    .tooth-tile.selected .tooth-glyph path { fill:#fff5a8; }
    .tooth-tile.lower .tooth-glyph svg { transform:rotate(180deg); }
    .tooth-tile.molar .tooth-glyph svg { transform:scaleX(1.14); }
    .tooth-tile.lower.molar .tooth-glyph svg { transform:rotate(180deg) scaleX(1.14); }
    .tooth-number { position:absolute; left:0; right:0; bottom:1px; text-align:center; color:#fff; font-size:14px; font-weight:900; text-shadow:0 1px 1px #034d4f; }
    .tooth-tile.selected .tooth-number { color:#17202a; text-shadow:none; }
    .tooth-chart-footer { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:10px 14px; border-top:1px solid #bdc9d4; background:#fff; }
    .tooth-selection-preview { min-height:38px; padding:8px 10px; border:1px solid #a8bfd0; background:#f8fcff; font-size:13px; }
    .tooth-selection-preview b { color:#0d61b7; }
    .tooth-chart-actions { display:flex; flex-wrap:wrap; gap:7px; justify-content:flex-end; }
    .tooth-chart-actions .btn { min-width:92px; }
    @media (max-width:720px) {
      .tooth-chart-modal { width:100vw; height:100vh; max-height:none; border-radius:0; }
      .tooth-chart-layout { grid-template-columns:1fr; min-height:0; height:calc(100vh - 110px); }
      .tooth-chart-sidebar { border-right:0; border-bottom:1px solid #bdc9d4; padding:8px 12px; display:flex; flex-wrap:wrap; gap:4px 18px; }
      .tooth-chart-sidebar h4 { width:100%; margin-bottom:2px; }
      .tooth-chart-help { display:none; }
      .tooth-chart-scroll { padding:9px; }
      .tooth-chart-footer { grid-template-columns:1fr; }
      .tooth-chart-actions { justify-content:stretch; }
      .tooth-chart-actions .btn { flex:1; }
    }


    /* ===== v38 customer registration dialog ===== */
    .customer-record-dialog { width:min(780px,calc(100vw - 28px)); max-height:calc(100vh - 28px); overflow:auto; border:1px solid #8e9aa8; background:#f5f6f8; box-shadow:0 22px 65px rgba(0,0,0,.30); }
    .customer-record-windowbar { min-height:34px; padding:7px 10px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #b8c2ce; background:linear-gradient(#fafafa,#eceff3); color:#344256; font-size:12px; font-weight:700; }
    .customer-record-heading { padding:11px 16px; background:linear-gradient(#1477df,#0862c4); color:#fff; text-align:center; font-family:"Arial",serif; font-size:23px; font-weight:700; letter-spacing:.02em; }
    .customer-record-subheading { margin-top:2px; font-family:"Segoe UI",Arial,sans-serif; font-size:11px; font-weight:600; opacity:.88; }
    .customer-record-body { padding:12px 14px 10px; }
    .customer-record-grid { display:grid; grid-template-columns:92px minmax(150px,1fr) 82px minmax(130px,.85fr); gap:7px 8px; align-items:center; }
    .customer-record-grid label { color:#253244; font-size:12px; white-space:nowrap; }
    .customer-record-grid input,.customer-record-grid select,.customer-record-grid textarea { width:100%; min-height:29px; padding:4px 7px; border:1px solid #9fb0c4; border-radius:0; background:#fff; color:#172334; outline:none; }
    .customer-record-grid input:focus,.customer-record-grid select:focus,.customer-record-grid textarea:focus { border-color:#1677d2; box-shadow:0 0 0 2px rgba(22,119,210,.14); }
    .customer-address-autocomplete { position:relative; min-width:0; }
    .customer-address-suggestions { position:absolute; z-index:30; top:calc(100% + 2px); left:0; right:0; max-height:230px; overflow:auto; border:1px solid #78a7d6; background:#fff; box-shadow:0 10px 24px rgba(22,52,86,.22); }
    .customer-address-suggestions[hidden] { display:none; }
    .customer-address-suggestions button { width:100%; display:flex; justify-content:space-between; gap:10px; padding:7px 9px; border:0; border-bottom:1px solid #e1e8ef; background:#fff; color:#172334; text-align:left; cursor:pointer; }
    .customer-address-suggestions button:hover,.customer-address-suggestions button:focus { background:#eaf4ff; outline:0; }
    .customer-address-suggestions button b { font-size:12px; }
    .customer-address-suggestions button span { color:#58718a; font-size:11px; white-space:nowrap; }
    .customer-record-grid .span-3 { grid-column:span 3; }
    .customer-record-grid .span-all { grid-column:1/-1; }
    .customer-age-wrap { display:grid; grid-template-columns:1fr 50px; gap:5px; }
    .customer-record-note-label { align-self:start; padding-top:6px; }
    .customer-record-note { min-height:64px!important; resize:vertical; }
    .customer-medical-box { margin-top:11px; border:1px solid #c1c9d3; background:#f7f8fa; }
    .customer-medical-caption { padding:5px 8px; border-bottom:1px solid #cbd2dc; background:linear-gradient(#f7f8fa,#e9edf2); color:#344256; font-size:12px; font-weight:700; }
    .customer-medical-options { display:grid; grid-template-columns:repeat(4,minmax(125px,1fr)); gap:8px 12px; padding:10px; }
    .customer-medical-options .check { display:flex; align-items:center; gap:6px; font-size:12px; white-space:nowrap; }
    .customer-record-footer { display:grid; grid-template-columns:105px 150px 130px 1fr auto; gap:8px; align-items:end; margin-top:10px; padding-top:10px; border-top:1px solid #c6ced8; }
    .customer-record-footer .mini-field { display:grid; gap:4px; }
    .customer-record-footer label { color:#344256; font-size:11px; }
    .customer-record-footer input { min-height:28px; padding:4px 6px; border:1px solid #a6b4c5; background:#fff; }
    .customer-record-actions { display:flex; gap:10px; justify-content:flex-end; align-items:center; }
    .customer-record-action { display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:5px 10px; border:1px solid #aeb9c5; background:linear-gradient(#fff,#edf1f5); color:#243244; font-size:12px; font-weight:700; }
    .customer-record-action.save { border-color:#7eabd2; color:#0d5fae; }
    .customer-record-action:hover { transform:translateY(-1px); box-shadow:0 4px 10px rgba(0,0,0,.12); }
    .customer-record-action .record-ico { width:22px; height:22px; border-radius:4px; display:grid; place-items:center; color:#fff; font-size:13px; }
    .customer-record-action.save .record-ico { background:#3486d9; }
    .customer-record-action.close .record-ico { background:#e22626; }
    .customer-record-help { margin-top:7px; color:#66758a; font-size:11px; }
    @media (max-width:760px) { .customer-record-dialog{width:100vw;max-height:100vh;min-height:100vh}.customer-record-grid{grid-template-columns:1fr}.customer-record-grid .span-3,.customer-record-grid .span-all{grid-column:auto}.customer-record-grid label{margin-top:2px}.customer-medical-options{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-record-footer{grid-template-columns:1fr 1fr}.customer-record-actions{grid-column:1/-1} }

    @media print {
      .topbar, .page-head .actions, .btn, .toolbar { display: none !important; }
      .page { max-width: none; padding: 0; }
      .card { box-shadow: none; border-color: #aaa; }
    }
  
    /* ===== v19 legacy desktop-inspired redesign ===== */
    body { background: #e7ebf0; }
    #login-screen { padding: 0; background: #dfe6eb; }
    .legacy-login-window, .legacy-app-window { min-height: 100vh; display: flex; flex-direction: column; background: #f4f4f6; }
    .legacy-caption { height: 26px; display: flex; align-items: center; justify-content: center; padding: 0 12px; background: linear-gradient(#dfe2e8,#cfd5dd); border-bottom: 1px solid #aeb7c3; color: #435164; font-size: 12px; font-weight: 700; letter-spacing: .01em; }
    .legacy-tabs { display: flex; gap: 0; padding: 0 8px; background: #eceff4; border-bottom: 1px solid #bcc5cf; overflow-x: auto; }
    .legacy-tabs .tab, .nav button { min-width: 98px; padding: 9px 14px; border: 1px solid transparent; border-bottom: 0; border-radius: 0; background: transparent; color: #334155; font-size: 12px; font-weight: 700; white-space: nowrap; }
    .legacy-tabs .tab.active, .nav button.active { background: white; border-color: #bcc5cf; color: #0d3f8a; box-shadow: inset 0 3px 0 #0d61b7; }
    .legacy-ribbon, .topbar { background: #fff; border-bottom: 1px solid #bcc5cf; box-shadow: none; position: static; }
    .legacy-ribbon-group, .ribbon-actions { display: flex; align-items: stretch; gap: 0; padding: 0 6px; overflow-x: auto; }
    .ribbon-group { display: flex; gap: 0; border-right: 1px solid #d9dee5; }
    .ribbon-action { width: 92px; min-height: 76px; padding: 8px 6px 10px; border: 1px solid transparent; border-radius: 0; background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; color: #334155; font-size: 11px; font-weight: 700; text-align: center; }
    .ribbon-action:hover { background: #f3f8fd; border-color: #d6e5f4; }
    .ribbon-action .ico { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; font-size: 18px; background: linear-gradient(#ffffff,#e6edf5); border: 1px solid #bfccd9; box-shadow: inset 0 1px 0 #fff; }
    .ribbon-action.danger .ico { background: linear-gradient(#fff5f5,#ffdede); border-color: #efb5b5; }
    .login-workspace { flex: 1; position: relative; background: radial-gradient(circle at 75% 40%, rgba(167,227,255,.9) 0, rgba(167,227,255,.1) 10%, transparent 12%), radial-gradient(circle at 87% 58%, rgba(167,227,255,.9) 0, rgba(167,227,255,.1) 10%, transparent 12%), linear-gradient(180deg,#1f8ab1,#2a90b8); overflow: hidden; }
    .login-workspace::before { content:''; position:absolute; inset: auto -10% -24% auto; width: 56vw; height: 56vw; max-width: 760px; max-height: 760px; border-radius: 50%; background: radial-gradient(circle at center, rgba(146,223,255,.55), rgba(146,223,255,.08) 52%, transparent 56%); }
    .login-workspace::after { content:''; position:absolute; right: 7%; bottom: 10%; width: 38vw; height: 18vw; border-radius: 16px; background: linear-gradient(135deg, rgba(255,255,255,.1), rgba(255,255,255,.02)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.15); transform: skew(-18deg); }
    .login-card { position: absolute; left: 50%; top: 43%; transform: translate(-50%, -50%); width: 320px; padding: 0; border: 1px solid #adb6c1; border-radius: 0; background: #f7f7f7; box-shadow: 0 10px 28px rgba(0,0,0,.18); }
    .login-titlebar { background: linear-gradient(#0f6ad5,#0a55b4); color: white; text-align: center; padding: 10px 12px; font-weight: 900; letter-spacing: .02em; font-size: 15px; }
    .login-body { padding: 16px 18px 14px; }
    .brand-mark { display:none; }
    .login-card h1, .login-card .sub { display:none; }
    .login-grid { gap: 10px; }
    .login-grid .field { display: grid; grid-template-columns: 92px 1fr; align-items: center; gap: 8px; }
    .login-grid .field label { margin: 0; font-size: 13px; color: #1f2937; }
    .login-grid .field input, .login-grid .field select { border-radius: 0; min-height: 24px; padding: 3px 6px; border: 1px solid #aeb8c5; box-shadow: inset 0 1px 2px rgba(0,0,0,.04); }
    .login-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
    .login-actions .btn { min-width: 76px; padding: 6px 10px; border-radius: 3px; }
    .login-actions .btn-primary { background: linear-gradient(#fdfefe,#d9e9fb); color:#1e3a5f; border-color:#9eb5cf; }
    .login-actions .btn-danger { background: linear-gradient(#fff,#f0f0f0); color:#374151; border-color:#bfc7d0; }
    .test-box { margin-top: 10px; background: #f2f6fa; border: 1px dashed #c6d0dd; border-radius: 0; color: #4b5563; }
    .work-titlebar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding: 7px 14px; background: #f6f7fb; border-bottom: 1px solid #cad3dd; }
    .clinic-home { font-size: 13px; font-weight: 700; color: #0d3f8a; }
    .clinic-home span { color: #64748b; font-size: 12px; font-weight: 500; }
    #app-screen { min-height:100vh; background:#e9edf2; }
    .nav-wrap { padding: 0; }
    .nav { display:flex; gap:0; }
    .topline { display:none; }
    .page { max-width: none; margin: 0; padding: 10px 12px 22px; }
    .page-head { display:block; margin: 0 0 10px; padding: 8px 0 10px; border-bottom: 1px solid #c9d2dd; }
    .page-head h2 { text-align:center; color:#1139dc; font-size: 22px; font-family: 'Arial', serif; font-weight:700; margin-bottom:2px; text-transform: uppercase; }
    .page-head p { text-align:left; color:#475569; font-size:12px; }
    .page-head .actions { margin-top: 8px; }
    .card { border-radius: 0; border: 1px solid #bfc9d4; box-shadow: none; background: #fff; }
    .card-pad { padding: 10px; }
    .card-title { font-size: 13px; margin-bottom: 8px; color: #334155; }
    .btn { border-radius: 3px; border: 1px solid #b6c0cb; background: linear-gradient(#ffffff,#eef2f6); color: #334155; padding: 7px 12px; }
    .btn-primary { background: linear-gradient(#1f89ff,#0b64cb); border-color: #0a5dbd; color:#fff; }
    .btn-soft { background: linear-gradient(#ffffff,#edf7ff); color: #0d61b7; border-color: #b7d9ef; }
    .btn-success { background: linear-gradient(#ffffff,#edf8f0); color: #15803d; border-color: #bedbc6; }
    .btn-danger { background: linear-gradient(#fff,#fff1f2); color: #b91c1c; border-color: #e6b7bf; }
    .field, .customer-entry-row > .field, .form-grid > .field, .payment-entry-grid > .field, .toolbar > .field, .visit-detail-cell, .patient-info-cell { border-radius: 0 !important; background: #fff !important; border: 1px solid #cfd8e3 !important; border-left-width: 1px !important; }
    .field label, .history-box-title, .payment-panel-title { color:#374151; }
    .field input, .field select, .field textarea, .exam-table input, .exam-table select, .service-cell-button { border-radius:0; border-color:#aeb8c5; }
    .history-box, .payment-panel, .patient-debt, .summary-box { border-radius:0 !important; }
    .table-wrap { border: 1px solid #bac6d3; }
    th, td { font-size: 12px; padding: 6px 7px; }
    th { background:#edf1f6; border-bottom:1px solid #b9c6d3; color:#334155; }
    tbody tr:nth-child(odd) td { background: #fff; }
    tbody tr:nth-child(even) td { background: #f9fbfd; }
    tbody tr:hover td { background: #e9f2ff; }
    .selected-patient-banner { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:8px; padding:8px 10px; border:1px solid #b7d2e7; background:#eef7ff; }
    .payment-panel { border: 1px solid #7bb6de !important; background: #f4fbff !important; }
    .summary-box { border:1px solid #7bb6de !important; background:#f8fbff !important; }
    .service-picker-modal, .visit-detail-modal, .modal { border-radius:0; border:1px solid #adb8c5; }
    .modal-head { border-bottom:1px solid #cbd5df; }
    .statusbar { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; padding: 4px 10px; background: #e5e9ef; border-top:1px solid #bfc7d1; color:#334155; font-size:12px; }
    .statusbar .left, .statusbar .right { display:flex; gap:12px; align-items:center; }
    @media (max-width: 1100px) {
      .ribbon-action { width: 84px; }
      .login-card { width:min(320px,92vw); }
      .page-head h2 { font-size: 18px; }
    }

  

    /* ===== v20 responsive desktop grid & traditional treatment UI ===== */
    #login-screen { display:block; width:100%; min-height:100svh; min-height:100dvh; }
    .legacy-login-window,.legacy-app-window { width:100%; }
    :root { --desktop-blue:#0c5eb8; --desktop-border:#b8c4d1; --desktop-head:#edf1f6; --desktop-selected:#dcecff; }
    .ribbon-action .ico svg, .legacy-ribbon .ico svg { width:25px; height:25px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .ribbon-action .ico { color:#3b526b; }
    .ribbon-action:hover .ico { color:#0d61b7; }
    .ribbon-action.danger .ico { color:#c62828; }
    .legacy-ribbon .ribbon-action .ico { color:#43566d; }

    .desktop-module { background:#fff; border:1px solid var(--desktop-border); min-height:calc(100vh - 236px); display:flex; flex-direction:column; }
    .workspace-tabs { display:flex; align-items:flex-end; height:28px; padding-left:4px; background:#e7ebf1; border-bottom:1px solid #b7c1cc; overflow-x:auto; }
    .workspace-tab { min-width:115px; height:27px; padding:5px 10px; border:1px solid #b7c1cc; border-bottom:0; background:#edf0f4; color:#526273; font-size:11px; text-align:left; }
    .workspace-tab.active { background:#fff; color:#111827; font-weight:800; }
    .desktop-title { padding:6px 10px; text-align:center; color:#1538d1; font:700 21px/1.25 'Arial',serif; border-bottom:1px solid #c7d0da; text-transform:uppercase; }
    .desktop-command-filter { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; padding:5px 7px; background:#f5f6f8; border-bottom:1px solid #c2ccd7; }
    .desktop-commandbar { display:flex; align-items:center; flex-wrap:wrap; gap:2px; }
    .desktop-command { min-width:66px; padding:4px 7px; border:1px solid transparent; background:transparent; color:#26384d; font-size:11px; display:flex; align-items:center; gap:5px; }
    .desktop-command:hover { border-color:#b8c8d9; background:#edf6ff; }
    .desktop-command svg { width:21px; height:21px; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
    .desktop-command:disabled { opacity:.45; cursor:not-allowed; }
    .desktop-filters { display:flex; align-items:flex-end; justify-content:flex-end; gap:5px; flex-wrap:wrap; }
    .desktop-filter { display:grid; gap:2px; min-width:92px; }
    .desktop-filter.wide { min-width:160px; }
    .desktop-filter label { font-size:10px; color:#435164; }
    .desktop-filter input,.desktop-filter select { height:25px; padding:2px 5px; border:1px solid #aeb9c6; border-radius:0; background:white; font-size:11px; }
    .customer-entry-panel { margin:5px 7px 7px; border:1px solid #aebdca; background:#fbfcfe; }
    .customer-entry-panel .panel-caption { padding:5px 8px; color:#fff; background:linear-gradient(#4f83bd,#2d68a8); font-size:12px; font-weight:800; }
    .customer-entry-panel .panel-body { padding:7px; }
    .customer-entry-panel.hidden { display:none; }
    .customer-entry-row.v20 { grid-template-columns:1.25fr .88fr .72fr .62fr .82fr 1fr 1.15fr; align-items:end; }
    .customer-group-badge { display:inline-flex; align-items:center; padding:3px 8px; border:1px solid #b7d7ef; background:#eef8ff; color:#0d61b7; border-radius:999px; font-size:11px; font-weight:800; white-space:nowrap; }
    .customer-group-badge.empty { border-color:#d8dee6; background:#f5f7f9; color:#64748b; }
    .desktop-grid-wrap { flex:1; min-height:320px; overflow:auto; background:white; }
    table.desktop-grid { min-width:1280px; border-collapse:collapse; }
    .desktop-grid th,.desktop-grid td { padding:4px 6px; height:27px; border-right:1px solid #c4ced9; border-bottom:1px solid #c4ced9; font-size:11px; white-space:nowrap; }
    .desktop-grid th { position:sticky; top:0; z-index:3; background:linear-gradient(#f6f8fa,#e2e7ed); color:#22364d; text-align:center; text-transform:none; font-size:11px; }
    .desktop-grid .row-no { width:38px; text-align:center; color:#59697a; background:#f0f3f6 !important; }
    .desktop-grid tbody tr.selected td { background:var(--desktop-selected) !important; }
    .desktop-grid tbody tr.selected .row-no { box-shadow:inset 3px 0 #0d61b7; }
    .desktop-grid tbody tr { cursor:default; }
    .desktop-grid .cell-actions { display:flex; gap:3px; }
    .desktop-grid-footer { padding:4px 8px; background:#eef1f5; border-top:1px solid #bec9d4; font-size:11px; color:#4b5c6f; }

    .treatment-shell { border:1px solid #adb9c6; background:#fff; min-height:calc(100vh - 234px); display:flex; flex-direction:column; }
    .treatment-title { padding:6px; text-align:center; color:#1538d1; font:700 21px/1.2 'Arial',serif; background:#f8f9fb; border-bottom:1px solid #c2ccd6; text-transform:uppercase; }
    .treatment-patient-area { display:grid; grid-template-columns:minmax(630px,1.65fr) minmax(360px,1fr); border-bottom:1px solid #bfc9d4; background:#f4f5f7; }
    .patient-record-grid { display:grid; grid-template-columns:repeat(8,minmax(85px,1fr)); padding:6px; border-right:1px solid #c5ced8; }
    .record-field { display:grid; grid-template-columns:74px 1fr; align-items:center; min-height:27px; border-right:1px solid #d0d7df; border-bottom:1px solid #d0d7df; padding:2px 5px; background:#fff; }
    .record-field.span-2 { grid-column:span 2; }
    .record-field.span-3 { grid-column:span 3; }
    .record-field.span-4 { grid-column:span 4; }
    .record-field label { color:#24364b; font-size:10px; }
    .record-field b,.record-field input,.record-field select { min-width:0; font-size:11px; }
    .record-field input,.record-field select { width:100%; height:23px; padding:2px 4px; border:1px solid #aeb9c6; border-radius:0; background:#fff; }
    .record-field .red-money { color:#e11d22; font-size:14px; font-weight:900; text-align:right; }
    .patient-search-box { grid-column:1/-1; padding:8px; border:1px solid #8db7dc; background:#eef7ff; }
    .medical-history-panel { padding:6px 8px; }
    .medical-history-panel h4 { margin:0 0 5px; font-size:11px; font-weight:700; }
    .medical-check-grid { display:grid; grid-template-columns:repeat(4,minmax(82px,1fr)); gap:4px 8px; font-size:10px; }
    .medical-check-grid label { white-space:nowrap; }
    .treatment-toolbar { display:flex; align-items:center; gap:3px; padding:4px 7px; background:#f1f3f6; border-bottom:1px solid #bcc7d2; overflow-x:auto; }
    .treatment-toolbar .tool-separator { height:25px; width:1px; background:#c5ced8; margin:0 3px; }
    .treatment-toolbar input,.treatment-toolbar select { height:25px; border:1px solid #aeb9c6; border-radius:0; font-size:11px; }
    .treatment-main { display:grid; grid-template-columns:150px minmax(850px,1fr); flex:1; min-height:340px; overflow:hidden; }
    .visit-date-pane { border-right:1px solid #b8c3cf; background:#f6f7f9; overflow:auto; }
    .visit-date-pane .pane-title { padding:5px 7px; border-bottom:1px solid #c5ced7; font-size:11px; font-weight:800; background:#e9edf2; }
    .visit-date-item { width:100%; display:grid; grid-template-columns:27px 1fr; gap:3px; padding:5px 4px; border:0; border-bottom:1px solid #d3dae2; background:#fff; text-align:left; font-size:10px; }
    .visit-date-item:hover { background:#eaf4ff; }
    .visit-date-item .seq { text-align:center; color:#64748b; }
    .visit-date-item.active { background:#dcecff; font-weight:800; }
    .treatment-grid-pane { overflow:auto; }
    .treatment-grid-pane .exam-table { min-width:1350px; border-collapse:collapse; }
    .treatment-grid-pane .exam-table th,.treatment-grid-pane .exam-table td { height:29px; padding:3px 5px; font-size:10.5px; }
    .treatment-grid-pane .exam-table th { top:0; background:linear-gradient(#f7f9fb,#e3e8ee); text-align:center; text-transform:none; }
    .treatment-grid-pane .exam-table input,.treatment-grid-pane .exam-table select,.treatment-grid-pane .service-cell-button { min-height:23px; padding:2px 4px; font-size:10.5px; }
    .traditional-lower { border-top:1px solid #b8c3ce; }
    .traditional-history-drawer summary { padding:5px 8px; background:#eef1f5; cursor:pointer; font-size:11px; font-weight:700; }
    .traditional-history-content { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:7px; max-height:310px; overflow:auto; }
    .traditional-history-content .table-wrap { max-height:280px; overflow:auto; }
    .treatment-bottom { display:grid; grid-template-columns:minmax(320px,1.2fr) minmax(650px,2fr); gap:5px; padding:5px; background:#eef1f5; border-top:1px solid #b9c4cf; }
    .treatment-payment-box { border:1px solid #aab8c5; background:#fff; padding:5px; }
    .treatment-payment-box .payment-row { display:grid; grid-template-columns:150px minmax(150px,1fr) auto; gap:5px; align-items:end; }
    .finance-strip { display:grid; grid-template-columns:repeat(6,minmax(115px,1fr)); border:1px solid #aab8c5; background:#fff; }
    .finance-cell { padding:4px 6px; border-right:1px solid #c5ced8; text-align:right; }
    .finance-cell:last-child { border-right:0; }
    .finance-cell span { display:block; min-height:18px; color:#405167; font-size:10px; text-align:left; }
    .finance-cell b { color:#e11d22; font-size:16px; white-space:nowrap; }
    .finance-cell.primary b { color:#0d61b7; }

    .responsive-table-note { display:none; }
    @media (max-width: 980px) {
      .legacy-caption { justify-content:flex-start; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
      #login-screen,.legacy-login-window { min-height:100svh; min-height:100dvh; }
      .login-workspace { min-height:0; display:grid; place-items:center; padding:24px; overflow:auto; }
      .login-card { position:relative; inset:auto; transform:none; width:min(420px,100%); }
      .login-grid .field { grid-template-columns:110px minmax(0,1fr); }
      .treatment-patient-area { grid-template-columns:1fr; }
      .patient-record-grid { border-right:0; grid-template-columns:repeat(4,minmax(100px,1fr)); }
      .medical-history-panel { border-top:1px solid #c5ced8; }
      .treatment-main { grid-template-columns:120px minmax(820px,1fr); overflow:auto; }
      .traditional-history-content { grid-template-columns:1fr; }
      .treatment-bottom { grid-template-columns:1fr; }
      .desktop-command-filter { align-items:flex-start; flex-direction:column; }
      .desktop-filters { justify-content:flex-start; }
    }
    @media (max-width: 680px) {
      .legacy-login-window .legacy-tabs,.legacy-login-window .legacy-ribbon { display:none; }
      .legacy-login-window .legacy-caption { height:42px; padding:0 12px; justify-content:center; text-align:center; font-size:0; }
      .legacy-login-window .legacy-caption::after { content:'DENTAL MANAGER V61'; font-size:11px; font-weight:800; }
      .legacy-app-window > .legacy-caption { font-size:0; justify-content:center; }
      .legacy-app-window > .legacy-caption::after { content:'DENTAL MANAGER V61'; font-size:10px; font-weight:800; }
      .login-workspace { padding:14px; background:linear-gradient(180deg,#167da6,#2d9bc1); }
      .login-workspace::before,.login-workspace::after { display:none; }
      .login-card { width:100%; max-width:430px; box-shadow:0 16px 40px rgba(0,0,0,.25); }
      .login-titlebar { padding:13px 10px; font-size:15px; }
      .login-body { padding:16px 14px; }
      .login-grid .field { grid-template-columns:1fr; gap:4px; }
      .login-grid .field input,.login-grid .field select { min-height:42px; padding:8px 10px; font-size:16px; }
      .login-actions { display:grid; grid-template-columns:1fr 1fr; }
      .login-actions .btn { min-height:42px; }
      .test-box { font-size:11px; }
      .topbar { position:static; }
      .ribbon-actions { padding:0; }
      .ribbon-action { width:76px; min-width:76px; min-height:67px; font-size:9px; }
      .ribbon-action .ico { width:30px; height:30px; }
      .work-titlebar { padding:5px 8px; }
      .clinic-home { max-width:70%; font-size:11px; }
      .statusbar { flex-direction:column; align-items:flex-start; gap:2px; font-size:9px; }
      .statusbar .left,.statusbar .right { flex-wrap:wrap; gap:5px; }
      .page { padding:6px; overflow:hidden; }
      .grid-2,.grid-3,.stats { min-width:0; }
      .grid-2 > *,.grid-3 > *,.card,.box-panel { min-width:0; max-width:100%; }
      .table-wrap { width:100%; max-width:100%; overflow-x:auto; }
      .workspace-tabs { height:31px; }
      .workspace-tab { min-width:145px; height:30px; }
      .desktop-title,.treatment-title { font-size:17px; }
      .desktop-command-filter { padding:4px; }
      .desktop-commandbar { width:100%; overflow-x:auto; flex-wrap:nowrap; }
      .desktop-command { min-width:72px; }
      .desktop-filters { display:grid; grid-template-columns:1fr 1fr; width:100%; }
      .desktop-filter,.desktop-filter.wide { min-width:0; width:100%; }
      .desktop-filter.wide { grid-column:1/-1; }
      .customer-entry-row.v20 { grid-template-columns:1fr; }
      .customer-history-row { grid-template-columns:1fr; }
      .history-grid { grid-template-columns:repeat(2,1fr); }
      .desktop-module,.treatment-shell { min-height:calc(100dvh - 260px); }
      .responsive-table-note { display:block; padding:4px 6px; background:#fff7d6; border-bottom:1px solid #e3d39b; font-size:10px; }
      .treatment-patient-area { display:block; }
      .patient-record-grid { grid-template-columns:1fr; padding:4px; }
      .record-field,.record-field.span-2,.record-field.span-3,.record-field.span-4 { grid-column:auto; grid-template-columns:90px 1fr; }
      .medical-check-grid { grid-template-columns:repeat(2,1fr); }
      .treatment-toolbar { overflow-x:auto; }
      .treatment-main { display:block; min-height:0; overflow:visible; }
      .visit-date-pane { max-height:110px; border-right:0; border-bottom:1px solid #b8c3cf; display:flex; overflow-x:auto; }
      .visit-date-pane .pane-title { min-width:92px; display:grid; place-items:center; }
      .visit-date-item { min-width:120px; border-right:1px solid #d3dae2; }
      .treatment-grid-pane { overflow:auto; max-height:410px; }
      .traditional-history-content { padding:4px; }
      .treatment-bottom { padding:4px; }
      .treatment-payment-box .payment-row { grid-template-columns:1fr; }
      .finance-strip { grid-template-columns:repeat(2,1fr); }
      .finance-cell { border-bottom:1px solid #c5ced8; }
      .payment-methods { grid-template-columns:1fr 1fr; }
    }

  

    /* ===== v27 traditional tab header and ribbon ===== */
    .traditional-ribbon-header { background:#f4f5f8; border-bottom:1px solid #9fa9b5; box-shadow:none; }
    .ribbon-tab-row { min-height:34px; display:flex; align-items:flex-end; background:linear-gradient(#e8eaf0 0%,#dfe3ea 100%); border-bottom:1px solid #aeb7c2; }
    .ribbon-app-button { flex:0 0 42px; width:42px; height:34px; margin:0 2px 0 0; border:0; border-right:1px solid #b6bec9; background:linear-gradient(#f8fbff,#dce4ee); color:#31597b; display:grid; place-items:center; }
    .ribbon-app-button:hover { background:#fff; color:#0d61b7; }
    .ribbon-app-button span,.ribbon-app-button svg { width:27px; height:27px; display:block; }
    .ribbon-app-button svg { fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
    .traditional-ribbon-header .nav-wrap { flex:1; min-width:0; padding:0; overflow-x:auto; overflow-y:hidden; }
    .traditional-ribbon-header .nav { min-width:max-content; height:34px; display:flex; align-items:flex-end; gap:0; padding:0; }
    .traditional-ribbon-header .nav button { min-width:auto; height:32px; padding:7px 16px 6px; margin:0; border:1px solid transparent; border-bottom:0; background:transparent; color:#26384c; font-size:11px; font-weight:600; box-shadow:none; text-transform:uppercase; }
    .traditional-ribbon-header .nav button:hover { background:rgba(255,255,255,.55); color:#0b4f94; }
    .traditional-ribbon-header .nav button.active { height:33px; background:#fff; border-color:#aeb7c2; color:#0b4f94; box-shadow:none; }
    .traditional-ribbon-header .ribbon-actions { min-height:98px; display:flex; align-items:stretch; padding:0; overflow-x:auto; overflow-y:hidden; background:linear-gradient(#ffffff 0%,#fbfcfe 72%,#edf0f5 100%); border-bottom:1px solid #aab4c0; }
    .traditional-ribbon-header .ribbon-group { position:relative; flex:0 0 auto; min-width:max-content; min-height:97px; display:flex; flex-direction:column; justify-content:flex-start; padding:2px 5px 17px; border-right:1px solid #cbd2da; }
    .traditional-ribbon-header .ribbon-group-body { display:flex; align-items:stretch; min-height:76px; }
    .traditional-ribbon-header .ribbon-group-label { position:absolute; left:3px; right:3px; bottom:1px; height:14px; display:flex; align-items:center; justify-content:center; color:#99a2af; font-size:9px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .traditional-ribbon-header .ribbon-action { flex:0 0 86px; width:86px; min-width:86px; min-height:74px; padding:5px 4px 3px; border:1px solid transparent; background:transparent; color:#172b42; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:3px; font-size:10px; font-weight:600; line-height:1.15; text-align:center; white-space:normal; }
    .traditional-ribbon-header .ribbon-action:hover { background:linear-gradient(#ffffff,#eaf4ff); border-color:#b7d3ed; }
    .traditional-ribbon-header .ribbon-action .ico { width:39px; height:39px; padding:3px; border:0; border-radius:6px; background:linear-gradient(#ffffff,#edf2f7); color:#326a99; box-shadow:none; display:grid; place-items:center; }
    .traditional-ribbon-header .ribbon-action .ico svg { width:31px; height:31px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
    .traditional-ribbon-header .ribbon-action.danger .ico { color:#d31723; background:linear-gradient(#fff,#ffecee); border:1px solid #efc1c5; }
    .traditional-ribbon-header .ribbon-action[data-ribbon-tone="green"] .ico { color:#159447; background:linear-gradient(#f8fff9,#e1f7e7); }
    .traditional-ribbon-header .ribbon-action[data-ribbon-tone="gold"] .ico { color:#b88600; background:linear-gradient(#fffdf2,#fff1bd); }
    .traditional-ribbon-header .ribbon-action[data-ribbon-tone="red"] .ico { color:#d73030; background:linear-gradient(#fff8f8,#ffe3e3); }
    .traditional-ribbon-header .ribbon-action[data-ribbon-tone="blue"] .ico { color:#1674bd; background:linear-gradient(#f8fcff,#dff2ff); }
    .traditional-ribbon-header .ribbon-action[data-ribbon-tone="purple"] .ico { color:#7253a6; background:linear-gradient(#fcfaff,#eee6ff); }
    .traditional-ribbon-header .ribbon-action .ribbon-action-label { display:block; max-width:82px; }
    .ribbon-feature-modal { width:min(560px,94vw); border-radius:0; border:1px solid #aeb9c5; }
    .ribbon-feature-modal .modal-head { background:linear-gradient(#f8f9fb,#e9edf2); }
    .ribbon-feature-content { padding:22px; text-align:center; }
    .ribbon-feature-content .feature-icon { width:64px; height:64px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; background:#eaf6ff; color:#0d61b7; }
    .ribbon-feature-content .feature-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.7; }
    .ribbon-feature-content h3 { margin:0 0 8px; color:#17324d; }
    .ribbon-feature-content p { margin:0; color:#64748b; line-height:1.55; }
    @media (max-width:900px) {
      .traditional-ribbon-header .nav button { padding-left:12px; padding-right:12px; }
      .traditional-ribbon-header .ribbon-action { flex-basis:78px; width:78px; min-width:78px; font-size:9px; }
      .traditional-ribbon-header .ribbon-action .ribbon-action-label { max-width:74px; }
    }
    @media (max-width:680px) {
      .ribbon-tab-row { min-height:36px; }
      .ribbon-app-button { flex-basis:38px; width:38px; height:35px; }
      .traditional-ribbon-header .nav { height:36px; }
      .traditional-ribbon-header .nav button { height:35px; padding:8px 11px 7px; font-size:9px; }
      .traditional-ribbon-header .nav button.active { height:36px; }
      .traditional-ribbon-header .ribbon-actions { min-height:88px; }
      .traditional-ribbon-header .ribbon-group { min-height:87px; padding-bottom:15px; }
      .traditional-ribbon-header .ribbon-group-body { min-height:68px; }
      .traditional-ribbon-header .ribbon-action { flex-basis:70px; width:70px; min-width:70px; min-height:66px; padding:4px 2px; font-size:8px; }
      .traditional-ribbon-header .ribbon-action .ico { width:33px; height:33px; }
      .traditional-ribbon-header .ribbon-action .ico svg { width:26px; height:26px; }
      .traditional-ribbon-header .ribbon-action .ribbon-action-label { max-width:66px; }
      .traditional-ribbon-header .ribbon-group-label { font-size:8px; }
    }

  
    /* ===== v28 consumable form + raised toolbar ===== */
    .excel-directory-toolbar { padding:7px 10px; background:linear-gradient(180deg,#ffffff 0%,#edf2f7 100%); }
    .excel-tool { min-height:36px; padding:5px 11px; border:1px solid #aebdcb; border-radius:5px; background:linear-gradient(180deg,#ffffff,#e9eef4); box-shadow:0 2px 3px rgba(35,55,75,.14), inset 0 1px 0 #fff; font-weight:700; color:#24384d; }
    .excel-tool:hover { transform:translateY(-3px); border-color:#66a7d8; background:linear-gradient(180deg,#ffffff,#dcefff); box-shadow:0 7px 14px rgba(25,75,115,.22), inset 0 1px 0 #fff; }
    .excel-tool:active { transform:translateY(0); box-shadow:inset 0 2px 5px rgba(30,55,80,.18); }
    .excel-tool .excel-ico { width:25px; height:25px; border-radius:5px; box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 2px rgba(0,0,0,.16); }
    .excel-tool .excel-ico svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
    .excel-tool.add { border-color:#8bcf9b; } .excel-tool.add .excel-ico { background:linear-gradient(#48d55c,#19a438); }
    .excel-tool.edit { border-color:#e5c26c; } .excel-tool.edit .excel-ico { background:linear-gradient(#ffc94a,#e49a00); }
    .excel-tool.delete { border-color:#e9a2a7; } .excel-tool.delete .excel-ico { background:linear-gradient(#f65b64,#c91e2a); }
    .excel-tool.refresh { border-color:#85b8e5; } .excel-tool.refresh .excel-ico { background:linear-gradient(#55a9ef,#2477c5); }
    .excel-tool.close { border-color:#e9a2a7; } .excel-tool.close .excel-ico { background:linear-gradient(#f45660,#bd1520); }

    .consumable-entry-modal { width:min(940px,96vw); border-radius:5px; background:#fff; }
    .consumable-entry-modal .modal-head { padding:9px 12px; background:linear-gradient(#fafafa,#ededed); }
    .consumable-entry-modal .modal-head b { color:#46566a; font-size:14px; }
    .consumable-entry-modal .modal-body { padding:0; background:#f7f9fc; }
    .v28-consumable-banner { padding:10px 14px; text-align:center; background:linear-gradient(180deg,#1677dd,#0860c5); color:#fff; font:700 21px/1.15 'Arial',serif; letter-spacing:.03em; border-bottom:1px solid #084d9a; }
    .v28-form-wrap { padding:16px; }
    .v28-data-panel { border:1px solid #b9c7d5; background:#fff; padding:14px; box-shadow:inset 0 1px 0 #fff; }
    .v28-data-grid { display:grid; grid-template-columns:112px minmax(180px,1fr) 112px minmax(180px,1fr); gap:10px 8px; align-items:center; }
    .v28-data-grid label { color:#394d62; font-size:12px; font-weight:700; }
    .v28-data-grid input,.v28-data-grid select { width:100%; min-height:34px; padding:6px 8px; border:1px solid #9db1c6; border-radius:2px; background:#fff; color:#17324d; outline:none; }
    .v28-data-grid input:focus,.v28-data-grid select:focus { border-color:#0d6dcc; box-shadow:0 0 0 2px rgba(13,109,204,.12); }
    .v28-data-grid input:disabled { background:#e9edf2; color:#8794a2; }
    .v28-wide-input { grid-column:2 / 5; }
    .v28-classification { margin-top:12px; display:grid; grid-template-columns:minmax(220px,.72fr) minmax(420px,1.5fr); gap:12px; }
    .v28-choice-box { border:1px solid #b9c7d5; background:#fff; }
    .v28-choice-title { padding:7px 10px; border-bottom:1px solid #c8d3de; background:linear-gradient(#f8fbff,#e7f0f8); color:#164d7d; font-size:12px; font-weight:900; text-transform:uppercase; }
    .v28-choice-content { padding:10px; display:grid; gap:8px; }
    .v28-choice-content.type-two { grid-template-columns:1fr 1fr; }
    .v28-choice-content.usage-three { grid-template-columns:repeat(3,1fr); }
    .v28-tick-option { position:relative; cursor:pointer; }
    .v28-tick-option input { position:absolute; opacity:0; pointer-events:none; }
    .v28-tick-card { min-height:66px; display:flex; align-items:center; gap:9px; padding:9px; border:1px solid #b6c4d2; border-radius:4px; background:linear-gradient(#fff,#f4f7fa); transition:.16s ease; }
    .v28-tick-card .tick-square { width:22px; height:22px; flex:0 0 22px; display:grid; place-items:center; border:2px solid #8da2b7; border-radius:4px; background:#fff; color:#fff; font-size:14px; font-weight:900; }
    .v28-tick-card b { display:block; color:#274761; font-size:12px; margin-bottom:2px; }
    .v28-tick-card small { display:block; color:#718396; font-size:10px; line-height:1.25; }
    .v28-tick-option:hover .v28-tick-card { transform:translateY(-2px); border-color:#6aa9d8; box-shadow:0 5px 10px rgba(35,80,115,.15); }
    .v28-tick-option input:checked + .v28-tick-card { border-color:#0d61b7; background:#eaf6ff; box-shadow:0 0 0 2px rgba(13,97,183,.10); }
    .v28-tick-option input:checked + .v28-tick-card .tick-square { background:#0d61b7; border-color:#0d61b7; }
    .v28-tick-option input:checked + .v28-tick-card .tick-square::after { content:'✓'; }
    .v28-choice-box.disabled { opacity:.52; filter:grayscale(.25); }
    .v28-consumable-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 16px; border-top:1px solid #b9c7d5; background:linear-gradient(#f9fafc,#e9edf2); }
    .v28-footer-note { color:#66788a; font-size:11px; }
    .v28-footer-actions { display:flex; gap:8px; }
    .v28-footer-btn { min-height:36px; display:inline-flex; align-items:center; gap:7px; padding:6px 13px; border:1px solid #9eb0c2; border-radius:4px; background:linear-gradient(#fff,#e9eef3); color:#31465b; font-weight:700; }
    .v28-footer-btn:hover { transform:translateY(-2px); box-shadow:0 5px 10px rgba(35,70,100,.16); }
    .v28-footer-btn .btn-ico { width:23px; height:23px; display:grid; place-items:center; border-radius:4px; color:#fff; }
    .v28-footer-btn .btn-ico svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2.2; }
    .v28-footer-btn.save .btn-ico { background:#287dd8; }
    .v28-footer-btn.cancel .btn-ico { background:#e23a43; }
    .catalog-type-badge { display:inline-flex; min-width:74px; justify-content:center; padding:3px 7px; border:1px solid; font-size:10px; font-weight:800; }
    .catalog-type-badge.product { color:#12652e; background:#eaf9ef; border-color:#a6d8b6; }
    .catalog-type-badge.service { color:#195b94; background:#eaf5ff; border-color:#a7cae8; }
    @media(max-width:820px){ .v28-data-grid{grid-template-columns:105px 1fr;} .v28-wide-input{grid-column:auto;} .v28-classification{grid-template-columns:1fr;} .v28-choice-content.usage-three{grid-template-columns:1fr;} }
    @media(max-width:520px){ .v28-form-wrap{padding:10px;} .v28-data-grid{grid-template-columns:1fr;gap:5px;} .v28-choice-content.type-two{grid-template-columns:1fr;} .v28-consumable-footer{flex-direction:column;align-items:stretch;} .v28-footer-actions{display:grid;grid-template-columns:1fr 1fr;} }

  
    /* ===== v29 consumable filters, responsive grid, pagination, export ===== */
    .consumable-sheet-wrap { overflow:auto; max-height:calc(100vh - 345px); min-height:360px; border-top:1px solid #b9c8d6; overscroll-behavior:contain; scrollbar-gutter:stable; }
    .consumable-sheet { width:100%; min-width:1340px; table-layout:fixed; }
    .consumable-sheet thead tr.consumable-title-row th { position:sticky; top:0; z-index:7; height:32px; }
    .consumable-sheet thead tr.consumable-filter-row th { position:sticky; top:32px; z-index:6; height:42px; padding:4px; background:#edf5fb; border-bottom:2px solid #83b7db; }
    .consumable-filter-control { width:100%; min-width:0; min-height:29px; padding:3px 5px; border:1px solid #9eb5c9; border-radius:3px; background:#fff; color:#24384d; font-size:11px; outline:none; }
    .consumable-filter-control:focus { border-color:#1677cf; box-shadow:0 0 0 2px rgba(22,119,207,.14); }
    .consumable-range-filter { display:grid; grid-template-columns:1fr 1fr; gap:3px; }
    .consumable-range-filter .consumable-filter-control { padding-left:3px; padding-right:3px; }
    .consumable-filter-clear { width:28px; height:28px; display:grid; place-items:center; margin:auto; border:1px solid #e6a0a5; border-radius:4px; background:linear-gradient(#fff,#fff0f1); color:#c41f2b; font-weight:900; cursor:pointer; }
    .consumable-filter-clear:hover { transform:translateY(-2px); background:#ffe5e7; box-shadow:0 4px 8px rgba(140,30,40,.18); }
    .consumable-sheet .sticky-index { position:sticky; left:0; z-index:3; width:42px; min-width:42px; max-width:42px; background:#f7f9fb; }
    .consumable-sheet .sticky-name { position:sticky; left:42px; z-index:2; background:#fff; box-shadow:2px 0 3px rgba(40,60,80,.08); }
    .consumable-sheet thead .sticky-index,.consumable-sheet thead .sticky-name { z-index:10 !important; }
    .consumable-sheet tbody tr:nth-child(even) .sticky-index,.consumable-sheet tbody tr:nth-child(even) .sticky-name { background:#fbfcfd; }
    .consumable-sheet tbody tr:hover .sticky-index,.consumable-sheet tbody tr:hover .sticky-name { background:#e8f4ff; }
    .consumable-sheet tbody tr.selected-row .sticky-index,.consumable-sheet tbody tr.selected-row .sticky-name { background:#d8ebff !important; }
    .consumable-table-footer { min-height:52px; display:grid; grid-template-columns:minmax(250px,1fr) auto minmax(130px,1fr); gap:12px; align-items:center; padding:7px 10px; border-top:1px solid #becbd7; background:linear-gradient(#f9fbfd,#e9eef3); font-size:12px; color:#405469; }
    .consumable-page-info b { color:#0d61b7; }
    .consumable-pagination { display:flex; align-items:center; justify-content:center; gap:4px; flex-wrap:wrap; }
    .consumable-page-btn { min-width:31px; height:30px; padding:0 8px; border:1px solid #aebdcb; border-radius:4px; background:linear-gradient(#fff,#e8edf2); color:#294057; font-weight:700; cursor:pointer; }
    .consumable-page-btn:hover:not(:disabled) { transform:translateY(-2px); border-color:#5fa3d5; background:#eaf6ff; box-shadow:0 4px 8px rgba(35,80,115,.16); }
    .consumable-page-btn.active { background:linear-gradient(#2385e8,#0d61b7); border-color:#0d61b7; color:#fff; }
    .consumable-page-btn:disabled { opacity:.45; cursor:not-allowed; }
    .consumable-page-size { text-align:right; white-space:nowrap; }
    .excel-tool.export { border-color:#79bb8c; }
    .excel-tool.export .excel-ico { background:linear-gradient(#31bd62,#168b43); }
    .excel-tool.csv { border-color:#a89bd3; }
    .excel-tool.csv .excel-ico { background:linear-gradient(#8c73d8,#634aac); }
    .excel-tool.filter-clear { border-color:#e0a5aa; }
    .excel-tool.filter-clear .excel-ico { background:linear-gradient(#f36b72,#c72a36); }
    .consumable-record-summary { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:5px 8px; border-bottom:1px solid #cbd5df; }
    .consumable-record-summary .filter-status { color:#0d61b7; font-weight:700; }
    @media (min-width:1550px) {
      .consumable-sheet { min-width:100%; }
    }
    @media (max-width:900px) {
      .consumable-sheet-wrap { max-height:calc(100vh - 325px); min-height:330px; }
      .consumable-table-footer { grid-template-columns:1fr; text-align:center; gap:7px; }
      .consumable-page-size { text-align:center; }
      .consumable-record-summary { align-items:flex-start; flex-direction:column; }
    }
    @media (max-width:560px) {
      .consumable-sheet-wrap { max-height:calc(100vh - 300px); min-height:300px; }
      .consumable-sheet { min-width:1220px; }
      .consumable-sheet th,.consumable-sheet td { font-size:11px; padding:3px 5px; }
      .consumable-sheet .sticky-name { left:38px; }
      .consumable-sheet .sticky-index { width:38px; min-width:38px; max-width:38px; }
      .consumable-page-btn { min-width:29px; height:29px; padding:0 6px; }
    }


    /* ===== v31: Vật tư tiêu hao dạng nhóm cha - chi tiết, đồng bộ Kho ===== */
    .consumable-master-page { width:100%; max-width:none; padding:8px 10px 12px; }
    .consumable-master-shell {
      --consumable-work-height: calc(100dvh - 202px);
      width:100%; height:var(--consumable-work-height); min-height:540px;
      display:flex; flex-direction:column; overflow:hidden;
      border:1px solid #9faebb; background:#fff; box-shadow:none;
    }
    .consumable-master-caption { flex:0 0 auto; min-height:30px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:5px 9px; border-bottom:1px solid #bcc8d4; background:linear-gradient(#fafafa,#eceff3); color:#455769; font-size:12px; }
    .consumable-master-caption .sync-caption { color:#0d61b7; font-weight:800; }
    .consumable-master-split { flex:1 1 auto; min-height:0; display:grid; grid-template-columns:minmax(260px,28%) minmax(0,72%); align-items:stretch; overflow:hidden; }
    .consumable-master-pane { min-width:0; min-height:0; display:flex; flex-direction:column; overflow:hidden; border-right:1px solid #adb9c5; }
    .consumable-master-pane:last-child { border-right:0; }
    .consumable-master-title { flex:0 0 auto; min-height:38px; display:flex; align-items:center; justify-content:center; padding:6px 10px; border-bottom:1px solid #b7c4d0; background:#ddecfb; color:#183bdb; text-align:center; font:700 21px/1.1 'Arial',serif; }
    .consumable-master-toolbar { flex:0 0 auto; display:flex; align-items:center; gap:5px; min-height:43px; padding:5px 7px; border-bottom:1px solid #c5d0da; background:linear-gradient(#fafbfd,#eef2f6); overflow-x:auto; }
    .consumable-master-toolbar .excel-tool { flex:0 0 auto; }
    .consumable-master-search { flex:0 0 auto; display:grid; grid-template-columns:auto minmax(110px,1fr) auto; align-items:center; gap:5px; padding:5px 7px; border-bottom:1px solid #c8d2dc; background:#f4f7fa; }
    .consumable-master-search label { font-size:10px; color:#435568; white-space:nowrap; }
    .consumable-master-search input,.consumable-master-search select { width:100%; min-width:0; height:28px; border:1px solid #9db1c4; border-radius:2px; padding:3px 6px; background:#fff; font-size:11px; }
    .consumable-group-wrap,.consumable-detail-wrap { flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; background:#fff; }
    .consumable-group-table { width:100%; min-width:360px; table-layout:fixed; }
    .consumable-group-table th,.consumable-group-table td { padding:5px 6px; font-size:11px; }
    .consumable-group-table tbody tr { cursor:pointer; }
    .consumable-group-table tbody tr.selected-row td { background:#d8ebff !important; }
    .consumable-group-count { display:inline-flex; min-width:28px; justify-content:center; padding:2px 5px; border:1px solid #a8c7df; background:#eef8ff; color:#0d61b7; font-size:10px; font-weight:800; }
    .consumable-sync-banner { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 9px; border-bottom:1px solid #b9c8d6; background:#eef7ff; color:#315a78; font-size:11px; }
    .consumable-sync-banner b { color:#0d61b7; font-family:'Arial',serif; font-size:17px; }
    .warehouse-sync-badge { display:inline-flex; align-items:center; justify-content:center; min-width:92px; padding:3px 7px; border:1px solid; font-size:10px; font-weight:800; white-space:nowrap; }
    .warehouse-sync-badge.synced { color:#12652e; background:#eaf9ef; border-color:#a6d8b6; }
    .warehouse-sync-badge.no-stock { color:#195b94; background:#eaf5ff; border-color:#a7cae8; }
    .consumable-detail-sheet { width:100%; min-width:1260px; table-layout:fixed; }
    .consumable-detail-sheet thead tr.consumable-title-row th { position:sticky; top:0; z-index:7; height:31px; }
    .consumable-detail-sheet thead tr.consumable-filter-row th { position:sticky; top:31px; z-index:6; height:42px; padding:4px; background:#edf5fb; border-bottom:2px solid #83b7db; }
    .consumable-detail-sheet .sticky-index { position:sticky; left:0; z-index:3; width:42px; min-width:42px; max-width:42px; background:#f7f9fb; }
    .consumable-detail-sheet .sticky-name { position:sticky; left:42px; z-index:2; background:#fff; box-shadow:2px 0 3px rgba(40,60,80,.08); }
    .consumable-detail-sheet thead .sticky-index,.consumable-detail-sheet thead .sticky-name { z-index:10 !important; }
    .consumable-detail-sheet tbody tr:nth-child(even) .sticky-index,.consumable-detail-sheet tbody tr:nth-child(even) .sticky-name { background:#fbfcfd; }
    .consumable-detail-sheet tbody tr:hover .sticky-index,.consumable-detail-sheet tbody tr:hover .sticky-name { background:#e8f4ff; }
    .consumable-detail-sheet tbody tr.selected-row .sticky-index,.consumable-detail-sheet tbody tr.selected-row .sticky-name { background:#d8ebff !important; }
    .consumable-master-footer { flex:0 0 auto; min-height:48px; display:grid; grid-template-columns:minmax(220px,1fr) auto minmax(120px,1fr); align-items:center; gap:10px; padding:6px 9px; border-top:1px solid #becbd7; background:linear-gradient(#f9fbfd,#e9eef3); font-size:11px; color:#405469; }
    .consumable-master-footer .consumable-page-size { text-align:right; }
    @media (min-width:1500px) { .consumable-master-split { grid-template-columns:minmax(300px,24%) minmax(0,76%); } .consumable-detail-sheet { min-width:100%; } }
    @media (min-width:901px) and (max-width:1199px) { .consumable-master-split { grid-template-columns:minmax(260px,35%) minmax(0,65%); } .consumable-master-page { padding-inline:6px; } }
    @media (max-width:900px) {
      .consumable-master-page { padding:6px 4px 12px; }
      .consumable-master-shell { height:auto; min-height:0; overflow:visible; }
      .consumable-master-split { grid-template-columns:1fr; height:auto; min-height:0; overflow:visible; }
      .consumable-master-pane { height:auto; min-height:350px; border-right:0; border-bottom:1px solid #adb9c5; }
      .consumable-master-pane:last-child { min-height:520px; border-bottom:0; }
      .consumable-group-wrap { flex:0 0 auto; max-height:270px; }
      .consumable-detail-wrap { flex:0 0 auto; max-height:440px; }
      .consumable-master-footer { grid-template-columns:1fr; text-align:center; }
      .consumable-master-footer .consumable-page-size { text-align:center; }
      .consumable-sync-banner { align-items:flex-start; flex-direction:column; }
    }
    @media (max-width:560px) {
      .consumable-master-title { font-size:18px; }
      .consumable-master-toolbar { padding:4px; }
      .consumable-master-search { grid-template-columns:1fr; }
      .consumable-group-table { min-width:320px; }
      .consumable-detail-sheet { min-width:1160px; }
      .consumable-detail-sheet .sticky-index { width:38px; min-width:38px; max-width:38px; }
      .consumable-detail-sheet .sticky-name { left:38px; }
    }

    /* ===== V83: danh mục vật tư compact theo phong cách Nhóm thủ thuật / Excel ===== */
    .consumable-master-page { padding:3px 5px 6px; }
    .consumable-master-shell {
      --consumable-work-height:calc(100dvh - 176px);
      min-height:520px;
    }
    .consumable-master-caption {
      min-height:24px; padding:2px 7px; gap:6px; font-size:10.5px;
    }
    .consumable-master-split {
      grid-template-columns:minmax(230px,24%) minmax(0,76%);
    }
    .consumable-master-title {
      min-height:29px; padding:3px 7px; font-size:17px; line-height:1.05;
    }
    .consumable-master-toolbar {
      min-height:34px; gap:1px; padding:2px 4px; background:#f4f5f6;
      scrollbar-width:thin;
    }
    .consumable-master-toolbar .procedure-tool {
      flex:0 0 auto; min-height:29px; gap:4px; padding:2px 5px;
      border-radius:2px; font-size:11px; line-height:1.1;
    }
    .consumable-master-toolbar .procedure-tool-icon {
      width:22px; height:22px; flex:0 0 22px; border-radius:50%; font-size:14px;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 1px 2px rgba(0,0,0,.13);
    }
    .consumable-master-toolbar .procedure-tool-icon svg {
      width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2.2;
      stroke-linecap:round; stroke-linejoin:round;
    }
    .consumable-master-toolbar .procedure-tool.warehouse .procedure-tool-icon { background:#0f9f9a; }
    .consumable-master-toolbar .procedure-tool.excel .procedure-tool-icon { background:#168b43; }
    .consumable-master-toolbar .procedure-tool.csv .procedure-tool-icon { background:#7357ba; }
    .consumable-master-toolbar .procedure-tool.filter-clear .procedure-tool-icon { background:#e05252; }
    .consumable-master-search {
      min-height:30px; grid-template-columns:auto minmax(90px,1fr) 26px;
      gap:4px; padding:2px 5px;
    }
    .consumable-master-search label { font-size:9.5px; }
    .consumable-master-search input,.consumable-master-search select {
      height:24px; padding:2px 5px; font-size:10.5px;
    }
    .consumable-master-search .excel-search-button {
      width:26px; height:24px; min-height:24px; padding:3px; border-radius:2px;
    }
    .consumable-master-search .excel-search-button svg { width:14px; height:14px; }
    .consumable-group-table {
      width:100%; min-width:100%; border-collapse:collapse; table-layout:fixed;
    }
    .consumable-group-table th,.consumable-group-table td {
      height:24px; padding:2px 4px; font-size:10.5px; line-height:1.15;
      border-right:1px solid #c7d0d9; border-bottom:1px solid #c7d0d9;
    }
    .consumable-group-table th {
      position:sticky; top:0; z-index:4; background:#e7ecf1; color:#26394d;
      font-size:10px; text-transform:none; text-align:center;
    }
    .consumable-group-table td:nth-child(2) { overflow:hidden; text-overflow:ellipsis; }
    .consumable-group-table .small { font-size:8.5px; line-height:1.05; white-space:nowrap; }
    .consumable-group-count { min-width:22px; padding:1px 3px; font-size:9px; }
    .desktop-grid-footer { padding:3px 6px; font-size:10px; }
    .consumable-sync-banner {
      min-height:34px; gap:7px; padding:3px 6px; font-size:9.5px; line-height:1.15;
    }
    .consumable-sync-banner b { font-size:13px; line-height:1.05; }
    .consumable-sync-banner > div > div { margin-top:1px; font-size:9px; }
    .consumable-record-summary {
      min-height:23px; gap:5px; padding:2px 6px; font-size:9.5px; line-height:1.15;
    }
    .consumable-detail-wrap { overflow:auto; scrollbar-width:thin; }
    .consumable-detail-sheet {
      width:100%; min-width:1014px; border-collapse:collapse; table-layout:fixed;
      font-variant-numeric:tabular-nums;
    }
    .consumable-detail-sheet th,.consumable-detail-sheet td {
      height:24px; padding:2px 4px; border-right:1px solid #bfc9d3;
      border-bottom:1px solid #c8d1da; color:#1f2f3f; font-size:10.5px;
      line-height:1.15; vertical-align:middle; white-space:nowrap;
      overflow:hidden; text-overflow:ellipsis;
    }
    .consumable-detail-sheet thead tr.consumable-title-row th {
      top:0; height:24px; padding:2px 3px; background:#dde5ec; color:#22364a;
      font-size:9.5px; font-weight:700; line-height:1.05; text-align:center;
      text-transform:none; letter-spacing:0; white-space:normal;
    }
    .consumable-detail-sheet thead tr.consumable-filter-row th {
      top:24px; height:29px; padding:2px; background:#edf2f6;
      border-bottom:1px solid #92aec4;
    }
    .consumable-filter-control {
      min-height:21px; height:21px; padding:1px 3px; border-radius:1px; font-size:9px;
    }
    .consumable-range-filter { gap:2px; }
    .consumable-range-filter .consumable-filter-control { padding-inline:2px; }
    .consumable-filter-clear {
      width:21px; height:21px; border-radius:50%; font-size:12px; line-height:1;
    }
    .consumable-detail-sheet .sticky-index {
      left:0; width:30px; min-width:30px; max-width:30px; padding-inline:2px;
      text-align:center; background:#eef1f4;
    }
    .consumable-detail-sheet .sticky-name { left:30px; }
    .consumable-detail-sheet .sticky-name .small { display:none; }
    .consumable-detail-sheet tbody tr:nth-child(odd) td { background:#fff; }
    .consumable-detail-sheet tbody tr:nth-child(even) td { background:#f5f7f9; }
    .consumable-detail-sheet tbody tr:hover td { background:#e8f4ff !important; }
    .consumable-detail-sheet tbody tr.selected-row td { background:#cfe6ff !important; }
    .consumable-detail-sheet .check-cell { padding:1px; text-align:center; }
    .consumable-detail-sheet .check-cell input[type="checkbox"] {
      width:13px; height:13px; margin:0; vertical-align:middle; accent-color:#1677cf;
    }
    .consumable-detail-sheet .catalog-type-badge,
    .consumable-detail-sheet .warehouse-sync-badge {
      width:100%; min-width:0; padding:1px 2px; font-size:8.5px; line-height:1.2;
      overflow:hidden; text-overflow:ellipsis;
    }
    .consumable-master-footer {
      min-height:32px; gap:6px; padding:2px 6px; font-size:10px;
    }
    .consumable-master-footer .consumable-pagination { gap:2px; flex-wrap:nowrap; }
    .consumable-master-footer .consumable-page-btn {
      min-width:24px; height:24px; padding:0 5px; border-radius:2px; font-size:10px;
    }
    @media (min-width:1500px) {
      .consumable-master-split { grid-template-columns:minmax(260px,23%) minmax(0,77%); }
      .consumable-detail-sheet { min-width:100%; }
    }
    @media (min-width:901px) and (max-width:1199px) {
      .consumable-master-split { grid-template-columns:minmax(230px,28%) minmax(0,72%); }
      .consumable-master-page { padding-inline:3px; }
      .consumable-master-toolbar .procedure-tool { padding-inline:4px; }
    }
    @media (max-width:900px) {
      .consumable-master-page { padding:3px 3px 8px; }
      .consumable-master-shell { height:auto; min-height:0; }
      .consumable-master-pane { min-height:330px; }
      .consumable-master-pane:last-child { min-height:500px; }
      .consumable-group-wrap { max-height:245px; }
      .consumable-detail-wrap { max-height:410px; }
      .consumable-master-toolbar { overflow-x:auto; }
      .consumable-detail-sheet { min-width:1014px; }
      .consumable-master-footer { grid-template-columns:1fr; padding-block:5px; }
    }
    @media (max-width:560px) {
      .consumable-master-caption { align-items:flex-start; flex-direction:column; }
      .consumable-master-title { min-height:27px; font-size:15px; }
      .consumable-master-toolbar .procedure-tool { padding-inline:4px; font-size:10px; }
      .consumable-master-toolbar .procedure-tool-icon { width:20px; height:20px; flex-basis:20px; }
      .consumable-master-search { grid-template-columns:1fr 26px; }
      .consumable-master-search label { grid-column:1/-1; }
      .consumable-group-table { min-width:300px; }
      .consumable-detail-sheet { min-width:1014px; }
      .consumable-detail-sheet .sticky-index { width:30px; min-width:30px; max-width:30px; }
      .consumable-detail-sheet .sticky-name { left:30px; }
    }




    /* ===== v50: Danh sách lịch hẹn dạng Excel ===== */
    .appointments-excel-page { max-width:none; padding:0 6px 10px; }
    .appointments-excel-shell { border:1px solid #9eacba; background:#fff; min-height:calc(100dvh - 235px); display:flex; flex-direction:column; overflow:hidden; }
    .appointments-excel-title { height:38px; display:grid; place-items:center; border-bottom:1px solid #aebbc8; background:linear-gradient(#f7f8fa,#e8ecf0); color:#123fd2; font-family:'Arial',serif; font-size:22px; font-weight:800; }
    .appointments-report-toolbar { display:flex; align-items:center; gap:5px; flex-wrap:wrap; padding:7px 8px; border-bottom:1px solid #b7c2cd; background:linear-gradient(#f9fafb,#edf1f5); }
    .appointments-report-toolbar .filter-label { font-size:11px; font-weight:700; color:#34475b; margin-left:3px; }
    .appointments-report-toolbar input,.appointments-report-toolbar select { height:30px; border:1px solid #9fb2c8; background:#fff; padding:3px 6px; font-size:11px; }
    .appointments-report-toolbar input[type="date"] { width:132px; }
    .appointments-report-toolbar .search-box { width:min(250px,30vw); }
    .appointment-report-btn { height:31px; display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border:1px solid #aebbc8; border-radius:3px; background:linear-gradient(#fff,#e8edf3); color:#24384b; font-size:11px; font-weight:800; transition:transform .12s ease,box-shadow .12s ease,background .12s ease; }
    .appointment-report-btn:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 4px 9px rgba(15,23,42,.20); }
    .appointment-report-btn:active:not(:disabled) { transform:translateY(0); box-shadow:inset 0 2px 4px rgba(15,23,42,.15); }
    .appointment-report-btn:disabled { opacity:.42; cursor:not-allowed; }
    .appointment-report-btn svg { width:18px; height:18px; }
    .appointment-report-btn.edit { border-color:#e4bd62; background:linear-gradient(#fffdf7,#fff0bd); color:#8b6100; }
    .appointment-report-btn.delete { border-color:#eea1a1; background:linear-gradient(#fffafa,#ffe5e5); color:#b91c1c; }
    .appointment-report-btn.refresh { border-color:#93c2e8; background:linear-gradient(#fbfdff,#e4f2ff); color:#075da8; }
    .appointment-report-btn.export { border-color:#8ed0a2; background:linear-gradient(#fbfffc,#e5f7ea); color:#087a35; }
    .appointment-report-btn.close { border-color:#e7a2a2; background:linear-gradient(#fffafa,#ffe8e8); color:#ad1b1b; }
    .appointments-report-hint { padding:4px 8px; border-bottom:1px solid #cbd4dd; background:#f8fbfe; color:#506579; font-size:10px; }
    .appointments-excel-wrap { flex:1; min-height:0; overflow:auto; background:#fff; }
    .appointments-excel-table { border-collapse:separate; border-spacing:0; min-width:1700px; width:100%; table-layout:fixed; font-size:10.5px; }
    .appointments-excel-table th,.appointments-excel-table td { border-right:1px solid #c5d4e3; border-bottom:1px solid #c5d4e3; height:28px; padding:4px 6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .appointments-excel-table thead th { position:sticky; top:0; z-index:4; border-top:1px solid #a8bacb; background:linear-gradient(#eaf3fa,#d8e7f3); color:#20384d; text-align:center; font-weight:800; box-shadow:inset 0 -1px #9fb5c8; transition:background .12s ease,color .12s ease,box-shadow .12s ease; }
    .appointments-excel-table thead th:hover { background:linear-gradient(#d9efff,#b9def7); color:#064e87; box-shadow:inset 0 0 0 2px #74b9e6,inset 0 -1px #639cc5; }
    .appointments-excel-table thead th:nth-child(1),.appointments-excel-table thead th:nth-child(2),.appointments-excel-table thead th:nth-child(3) { background:linear-gradient(#e7eff8,#d7e3ef); }
    .appointments-excel-table thead th:nth-child(4),.appointments-excel-table thead th:nth-child(5),.appointments-excel-table thead th:nth-child(6),.appointments-excel-table thead th:nth-child(7),.appointments-excel-table thead th:nth-child(8) { background:linear-gradient(#eef8ff,#dbeefb); }
    .appointments-excel-table thead th:nth-child(9),.appointments-excel-table thead th:nth-child(10) { background:linear-gradient(#f2edff,#e4dafb); }
    .appointments-excel-table thead th:nth-child(11),.appointments-excel-table thead th:nth-child(12) { background:linear-gradient(#ecfff4,#d8f4e3); }
    .appointments-excel-table thead th:nth-child(13),.appointments-excel-table thead th:nth-child(14) { background:linear-gradient(#fff8e8,#ffedc2); }
    .appointments-excel-table tbody tr:nth-child(even) td { background:#fbfdff; }
    .appointments-excel-table tbody tr:hover td { background:#e9f5ff !important; box-shadow:inset 0 1px #b8d9f2,inset 0 -1px #b8d9f2; }
    .appointments-excel-table tbody tr.appointment-row-selected td { background:#dcecff !important; box-shadow:inset 0 1px #8bbce4,inset 0 -1px #8bbce4; }
    .appointments-excel-table tbody tr { cursor:default; }
    .appointments-excel-table .patient-link-cell { color:#0b5fa5; font-weight:700; text-decoration:none; }
    .appointments-excel-table .arrived-check { width:15px; height:15px; accent-color:#16843b; cursor:pointer; }
    .appointment-status-pill { display:inline-flex; min-height:20px; align-items:center; justify-content:center; padding:2px 7px; border-radius:11px; font-weight:800; }
    .appointment-status-pill.arrived { background:#ddf8e5; color:#087a35; border:1px solid #a4deb5; }
    .appointment-status-pill.missed { background:#ffe8e8; color:#b91c1c; border:1px solid #efb0b0; }
    .appointment-status-pill.future { background:#f4f7fa; color:#64748b; border:1px solid #d3dbe3; }
    .appointment-status-pill.canceled { background:#f8e8f1; color:#9f1239; border:1px solid #e8b4ca; }
    .appointments-report-footer { min-height:30px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:5px 8px; border-top:1px solid #b9c5d1; background:#f2f5f8; font-size:10px; color:#526476; }
    @media (max-width:760px) {
      .appointments-excel-page { padding:0 2px 6px; }
      .appointments-report-toolbar { flex-wrap:nowrap; overflow-x:auto; }
      .appointments-report-toolbar > * { flex:0 0 auto; }
      .appointments-report-toolbar .search-box { width:210px; }
      .appointments-excel-shell { min-height:calc(100dvh - 210px); }
      .appointments-excel-table { min-width:1550px; }
    }

    /* ===== v32: Khám bệnh - Điều trị theo bố cục desktop truyền thống ===== */
    .exam-page-v32 { max-width:none; padding:0 3px 10px; overflow:hidden; }
    .exam-page-v32 .workspace-tabs { margin:0; border-left:1px solid #abb7c3; border-right:1px solid #abb7c3; }
    .exam-page-v32 .treatment-shell { width:100%; min-height:calc(100dvh - 245px); height:auto; border-color:#9eabb8; overflow:hidden; }
    .exam-page-v32 .treatment-title { height:34px; padding:5px 8px; font-size:21px; background:linear-gradient(#f8f9fb,#eef1f5); }
    .exam-page-v32 .treatment-patient-area { display:grid; grid-template-columns:minmax(650px,42%) minmax(420px,34%) minmax(180px,1fr); min-height:132px; align-items:stretch; background:#eef1f5; }
    .patient-record-section { min-width:0; border-right:1px solid #b9c4cf; background:#f5f6f8; }
    .treatment-section-caption { height:24px; display:flex; align-items:center; padding:3px 7px; border-bottom:1px solid #c3ccd6; background:linear-gradient(#f9fafb,#e7ebf0); color:#26384d; font-size:11px; font-weight:700; }
    .exam-page-v32 .patient-record-grid { grid-template-columns:repeat(8,minmax(75px,1fr)); padding:3px; border-right:0; background:#f5f6f8; }
    .exam-page-v32 .record-field { min-height:25px; padding:1px 4px; grid-template-columns:68px minmax(0,1fr); background:#fff; }
    .exam-page-v32 .record-field label { font-size:9.5px; }
    .exam-page-v32 .record-field b,.exam-page-v32 .record-field input { font-size:10.5px; }
    .exam-page-v32 .record-field .red-money { font-size:13px; }
    .exam-page-v32 .medical-history-panel { min-width:0; padding:0; border-right:1px solid #b9c4cf; background:#f2f3f5; }
    .exam-page-v32 .medical-history-panel .medical-check-grid { padding:5px 8px 2px; grid-template-columns:repeat(4,minmax(80px,1fr)); gap:4px 8px; }
    .exam-page-v32 .medical-history-panel .medical-check-grid label { font-size:9.5px; white-space:nowrap; }
    .medical-extra-tools { display:flex; flex-wrap:wrap; gap:3px; padding:3px 7px; border-top:1px solid #d1d7de; }
    .legacy-mini-command { min-height:26px; display:inline-flex; align-items:center; gap:4px; border:1px solid transparent; background:transparent; padding:2px 5px; color:#26384d; font-size:9.5px; }
    .legacy-mini-command:hover { border-color:#b9cfdf; background:#fff; }
    .legacy-mini-command svg { width:18px; height:18px; fill:none; stroke:#4d647a; stroke-width:1.7; }
    .medical-note { padding:3px 8px 5px; }
    .treatment-header-spacer { background:#eef1f5; }
    .treatment-command-area { border-bottom:1px solid #aeb9c5; background:#f1f3f6; }
    .treatment-subtitle { height:23px; padding:3px 7px; border-bottom:1px solid #c3ccd6; background:linear-gradient(#f7f8fa,#e7ebef); font-size:10px; font-weight:700; color:#28394d; }
    .exam-page-v32 .treatment-toolbar { min-height:39px; padding:3px 7px; gap:2px; background:#f4f5f7; }
    .toolbar-date-group,.toolbar-select-group { display:grid; grid-template-columns:auto minmax(105px,1fr); align-items:center; gap:4px; }
    .toolbar-date-group label,.toolbar-select-group label { font-size:9.5px; white-space:nowrap; }
    .exam-page-v32 .desktop-command { min-width:auto; height:29px; padding:3px 7px; gap:4px; border:1px solid transparent; border-radius:0; background:transparent; font-size:9.5px; box-shadow:none; }
    .exam-page-v32 .desktop-command:hover { border-color:#aac6de; background:linear-gradient(#fff,#eaf4fc); transform:none; }
    .exam-page-v32 .desktop-command svg { width:21px; height:21px; }
    .exam-page-v32 .primary-command svg { color:#20b83f; }
    .exam-page-v32 .muted-command { color:#7a858f; }
    .exam-page-v32 .danger-command svg { color:#e11d2e; }
    .exam-page-v32 .treatment-main { grid-template-columns:155px minmax(1250px,1fr); flex:1 1 auto; min-height:410px; height:calc(100dvh - 560px); max-height:none; }
    .exam-page-v32 .visit-date-pane { background:#f5f6f8; }
    .exam-page-v32 .visit-date-pane .pane-title { position:sticky; top:0; z-index:2; text-align:center; background:#e7ebef; }
    .exam-page-v32 .visit-date-item { min-height:43px; padding:4px 5px; }
    .exam-page-v32 .visit-date-item .seq { min-width:20px; }
    .exam-page-v32 .treatment-grid-pane { min-width:0; background:#fff; }
    .exam-page-v32 .treatment-grid-pane .exam-table { min-width:1720px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th { height:26px; padding:3px 4px; font-size:9.5px; white-space:nowrap; }
    .exam-page-v32 .treatment-grid-pane .exam-table td { height:28px; padding:2px 3px; font-size:9.5px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(1) { width:32px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(2) { width:120px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(3) { width:150px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(4) { width:90px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(5) { width:185px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(6) { width:185px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(7) { width:135px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(8) { width:70px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(9),
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(10),
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(12),
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(14) { width:105px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(11) { width:60px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(13) { width:62px; }
    .doctor-assistant-cell { min-width:130px; color:#1f4f9a; line-height:1.15; }
    .doctor-assistant-cell span,.doctor-assistant-cell small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .doctor-assistant-cell small { color:#64748b; font-size:8.5px; }
    .line-gross { color:#27374a; }
    .exam-page-v32 .traditional-history-drawer summary { height:24px; padding:4px 7px; }
    .exam-page-v32 .treatment-bottom { grid-template-columns:minmax(520px,1.15fr) minmax(850px,2fr); padding:3px; gap:3px; }
    .exam-page-v32 .treatment-payment-box { padding:3px; }
    .exam-page-v32 .finance-cell { padding:3px 5px; }
    .exam-page-v32 .finance-cell b { font-size:14px; }

    @media (max-width: 1250px) {
      .exam-page-v32 .treatment-patient-area { grid-template-columns:minmax(620px,1.5fr) minmax(390px,1fr); }
      .exam-page-v32 .treatment-header-spacer { display:none; }
      .exam-page-v32 .medical-history-panel .medical-check-grid { grid-template-columns:repeat(3,minmax(85px,1fr)); }
      .exam-page-v32 .treatment-main { height:420px; }
      .exam-page-v32 .treatment-bottom { grid-template-columns:1fr; }
    }
    @media (max-width: 980px) {
      .exam-page-v32 .treatment-patient-area { grid-template-columns:1fr; }
      .exam-page-v32 .patient-record-section,.exam-page-v32 .medical-history-panel { border-right:0; border-bottom:1px solid #b9c4cf; }
      .exam-page-v32 .patient-record-grid { grid-template-columns:repeat(4,minmax(95px,1fr)); }
      .exam-page-v32 .treatment-main { grid-template-columns:135px minmax(1250px,1fr); height:430px; overflow:auto; }
    }
    @media (max-width: 680px) {
      .exam-page-v32 { padding:0 2px 6px; }
      .exam-page-v32 .treatment-shell { min-height:calc(100dvh - 230px); }
      .exam-page-v32 .treatment-title { font-size:17px; height:30px; }
      .exam-page-v32 .patient-record-grid { grid-template-columns:1fr; }
      .exam-page-v32 .record-field,.exam-page-v32 .record-field.span-2,.exam-page-v32 .record-field.span-3,.exam-page-v32 .record-field.span-4 { grid-column:auto; grid-template-columns:92px 1fr; }
      .exam-page-v32 .medical-history-panel .medical-check-grid { grid-template-columns:repeat(2,minmax(110px,1fr)); overflow-x:auto; }
      .exam-page-v32 .treatment-toolbar { flex-wrap:nowrap; overflow-x:auto; }
      .toolbar-date-group,.toolbar-select-group { flex:0 0 auto; }
      .exam-page-v32 .treatment-main { display:block; height:auto; min-height:0; overflow:visible; }
      .exam-page-v32 .visit-date-pane { display:flex; max-height:112px; overflow-x:auto; border-right:0; border-bottom:1px solid #b8c3cf; }
      .exam-page-v32 .visit-date-pane .pane-title { min-width:105px; display:grid; place-items:center; }
      .exam-page-v32 .visit-date-item { min-width:125px; }
      .exam-page-v32 .treatment-grid-pane { max-height:430px; overflow:auto; }
      .exam-page-v32 .treatment-bottom { grid-template-columns:1fr; }
    }

  
    /* v35: kế hoạch điều trị chỉ mở bằng click, hover chỉ là hiệu ứng thị giác */
    .treatment-plan-select { cursor: pointer; }
    .treatment-plan-select:hover { box-shadow: inset 3px 0 #74d0ff; }

  
    /* v37: bác sĩ và trợ thủ được chọn riêng theo từng dòng thủ thuật */
    .doctor-assistant-cell { min-width: 178px !important; padding: 3px 4px !important; }
    .doctor-assistant-cell .row-doctor-select,
    .doctor-assistant-cell .row-assistant-select { width: 100%; min-width: 165px; height: 27px; margin: 1px 0; padding: 2px 5px; border: 1px solid #9fb8ce; background: #fff; color: #17324d; font-size: 10px; }
    .doctor-assistant-cell .row-doctor-select:focus,
    .doctor-assistant-cell .row-assistant-select:focus { border-color: #0d61b7; box-shadow: 0 0 0 2px rgba(13,97,183,.12); outline: none; }
    @media (max-width: 760px) {
      .doctor-assistant-cell { min-width: 155px !important; }
      .doctor-assistant-cell .row-doctor-select,
      .doctor-assistant-cell .row-assistant-select { min-width: 145px; }
    }


    /* ===== v40: Popup chọn thủ thuật điều trị 3 vùng + hồ sơ bệnh nhân ngang ===== */
    .exam-page-v32 .treatment-patient-area { grid-template-columns:minmax(880px,1.35fr) minmax(500px,.85fr); min-height:132px; }
    .exam-page-v32 .treatment-header-spacer { display:none !important; }
    .exam-page-v32 .patient-record-grid { grid-template-columns:repeat(12,minmax(60px,1fr)); gap:0; }
    .exam-page-v32 .record-field.span-5 { grid-column:span 5; }
    .exam-page-v32 .record-field { min-width:0; }
    .exam-page-v32 .record-field b,.exam-page-v32 .record-field input { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

    .treatment-picker-backdrop { padding:10px; }
    .traditional-treatment-picker { width:min(1220px,calc(100vw - 20px)); height:min(790px,calc(100dvh - 20px)); max-height:none; overflow:hidden; border-radius:0; border:1px solid #8f9dab; display:flex; flex-direction:column; background:#f6f7f9; }
    .treatment-picker-caption { height:31px; flex:0 0 31px; padding:4px 8px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #b7c1cc; background:linear-gradient(#fafafa,#eceff3); color:#34465a; font-size:11px; }
    .treatment-picker-caption .service-close-x { width:32px; height:25px; border-radius:0; font-size:17px; }
    .treatment-picker-title { flex:0 0 43px; display:grid; place-items:center; border-bottom:1px solid #aeb9c5; background:linear-gradient(#fff,#edf1f5); color:#1239d5; font-family:'Arial',serif; font-size:23px; font-weight:700; }
    .treatment-picker-workspace { flex:1 1 auto; min-height:0; display:grid; grid-template-columns:285px minmax(0,1fr); border-bottom:1px solid #aeb9c5; }
    .picker-group-pane,.picker-right-pane,.picker-detail-section,.picker-selected-section { min-width:0; min-height:0; }
    .picker-group-pane { display:flex; flex-direction:column; border-right:1px solid #aeb9c5; background:#f3f5f7; }
    .picker-right-pane { display:grid; grid-template-rows:minmax(230px,1fr) minmax(230px,.9fr); background:#fff; }
    .picker-detail-section,.picker-selected-section { display:flex; flex-direction:column; overflow:hidden; }
    .picker-detail-section { border-bottom:2px solid #9ba8b6; }
    .picker-pane-heading { flex:0 0 31px; display:flex; align-items:center; justify-content:center; padding:4px 8px; border-bottom:1px solid #b8c3ce; background:#dceafb; color:#1239d5; font-family:'Arial',serif; font-size:17px; font-weight:700; }
    .picker-search-row { flex:0 0 37px; display:flex; align-items:center; gap:8px; padding:4px 7px; border-bottom:1px solid #cbd3dc; background:#f4f6f8; }
    .picker-search-row input { width:100%; min-width:0; height:27px; border:1px solid #9fb1c4; border-radius:0; padding:3px 7px; }
    .picker-help { white-space:nowrap; font-size:10px; color:#607286; }
    .picker-table-scroll { flex:1 1 auto; min-height:0; overflow:auto; background:#fff; }
    .picker-table { width:100%; min-width:100%; border-collapse:collapse; table-layout:auto; }
    .picker-table th,.picker-table td { border:1px solid #c9d2dc; padding:5px 6px; font-size:10.5px; text-align:left; white-space:nowrap; }
    .picker-table th { position:sticky; top:0; z-index:2; background:linear-gradient(#f8fafc,#e7ecf1); color:#24364a; text-align:center; }
    .picker-table tbody tr { cursor:pointer; }
    .picker-table tbody tr:hover td { background:#eaf4ff; }
    .picker-table tbody tr.selected-row td { background:#d7eaff !important; }
    .picker-table td:first-child,.picker-table th:first-child { width:38px; text-align:center; }
    .picker-child-scroll .picker-table { min-width:760px; }
    .picker-selected-scroll .picker-table { min-width:930px; }
    .picker-add-service { width:27px; height:25px; border:1px solid #18a53b; background:#29be4d; color:#fff; font-size:18px; font-weight:900; line-height:1; }
    .picker-remove-service { width:27px; height:25px; border:1px solid #dc2635; background:#ef3344; color:#fff; font-size:16px; font-weight:900; }
    .selected-procedure-table input { width:82px; min-width:70px; height:25px; padding:2px 4px; border:1px solid #9fb1c4; border-radius:0; text-align:right; }
    .selected-procedure-table td:nth-child(2) { min-width:230px; white-space:normal; }
    .picker-selected-summary { flex:0 0 34px; display:flex; justify-content:flex-end; align-items:center; gap:28px; padding:5px 10px; border-top:1px solid #c5ced8; background:#f4f6f8; font-size:11px; }
    .picker-selected-summary b { color:#d51f2d; font-size:13px; }
    .treatment-picker-actions { flex:0 0 48px; display:flex; justify-content:flex-end; align-items:center; gap:8px; padding:6px 10px; background:#eef1f5; }

    @media (max-width: 1100px) {
      .exam-page-v32 .treatment-patient-area { grid-template-columns:1fr; }
      .exam-page-v32 .patient-record-section,.exam-page-v32 .medical-history-panel { border-right:0; border-bottom:1px solid #b9c4cf; }
      .traditional-treatment-picker { width:calc(100vw - 10px); height:calc(100dvh - 10px); }
      .treatment-picker-workspace { grid-template-columns:240px minmax(720px,1fr); overflow:auto; }
    }
    @media (max-width: 760px) {
      .exam-page-v32 .patient-record-grid { grid-template-columns:repeat(2,minmax(120px,1fr)); }
      .exam-page-v32 .record-field[class*="span-"] { grid-column:span 1; }
      .treatment-picker-backdrop { padding:0; }
      .traditional-treatment-picker { width:100vw; height:100dvh; }
      .treatment-picker-workspace { grid-template-columns:1fr; grid-template-rows:minmax(180px,.65fr) minmax(520px,1.6fr); overflow:hidden; }
      .picker-group-pane { border-right:0; border-bottom:1px solid #aeb9c5; }
      .picker-right-pane { grid-template-rows:minmax(240px,1fr) minmax(260px,1fr); }
      .picker-help { display:none; }
      .treatment-picker-title { font-size:19px; }
      .treatment-picker-actions { justify-content:stretch; }
      .treatment-picker-actions .btn { flex:1; }
    }

  

    /* ===== v44: bảng điều trị tách Bác sĩ/Trợ thủ, kéo giãn cột và toolbar nổi bật ===== */
    .exam-page-v32 .treatment-toolbar {
      gap: 5px;
      padding: 6px 8px;
      background: linear-gradient(180deg,#f9fbfd 0%,#e8eef5 100%);
      border-top: 1px solid #c3ced9;
      border-bottom: 1px solid #9eafbf;
      box-shadow: inset 0 1px 0 #fff;
    }
    .exam-page-v32 .treatment-toolbar .desktop-command {
      --command-accent:#4f6f8e;
      --command-bg:#f5f8fb;
      min-height: 32px;
      padding: 4px 9px;
      border: 1px solid color-mix(in srgb, var(--command-accent) 55%, #ffffff);
      border-radius: 4px;
      background: linear-gradient(180deg,#ffffff 0%,var(--command-bg) 100%);
      color: #17324d;
      box-shadow: 0 1px 2px rgba(30,50,70,.18), inset 0 1px 0 rgba(255,255,255,.95);
      font-weight: 700;
      transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease, filter .12s ease;
    }
    .exam-page-v32 .treatment-toolbar .desktop-command:hover {
      transform: translateY(-2px);
      border-color: var(--command-accent);
      box-shadow: 0 4px 9px rgba(30,50,70,.22), inset 0 1px 0 #fff;
      filter: saturate(1.12);
    }
    .exam-page-v32 .treatment-toolbar .desktop-command:active {
      transform: translateY(0);
      box-shadow: inset 0 2px 4px rgba(20,40,60,.18);
    }
    .exam-page-v32 .treatment-toolbar .desktop-command svg { color: var(--command-accent); }
    #exam-add-row { --command-accent:#1aa84b; --command-bg:#eaf9ef; }
    #exam-delete-current { --command-accent:#d44949; --command-bg:#fff0f0; color:#8a2525; }
    #exam-payment-toggle { --command-accent:#d28a00; --command-bg:#fff7df; }
    .exam-page-v32 .treatment-toolbar .exam-feature-stub { --command-accent:#7650c8; --command-bg:#f4efff; }
    #exam-open-appointments { --command-accent:#0787b7; --command-bg:#eaf8fd; }
    #exam-save-print { --command-accent:#1768bd; --command-bg:#edf5ff; }
    #exam-print-vat { --command-accent:#e26a00; --command-bg:#fff3e7; color:#8a3f00; }
    #exam-print-receipt { --command-accent:#0b8c68; --command-bg:#eafaf5; }
    #exam-payment-history { --command-accent:#5f55b5; --command-bg:#f1efff; }
    #exam-close-treatment { --command-accent:#d92738; --command-bg:#fff0f2; color:#9b1d2a; }
    .exam-page-v32 .toolbar-date-group,
    .exam-page-v32 .toolbar-select-group {
      min-height: 32px;
      padding: 3px 6px;
      border: 1px solid #a9bdd0;
      border-radius: 4px;
      background: #fff;
      box-shadow: inset 0 1px 2px rgba(20,50,80,.08);
    }
    .exam-page-v32 .toolbar-date-group label,
    .exam-page-v32 .toolbar-select-group label { color:#27445f; font-weight:700; }
    .exam-page-v32 .treatment-toolbar .tool-separator { height:30px; background:#aebbc8; }

    .exam-page-v32 .treatment-grid-pane { position:relative; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table {
      table-layout: fixed;
      width: 1685px;
      min-width: 1685px;
      border-collapse: separate;
      border-spacing: 0;
    }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table th,
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table td {
      box-sizing: border-box;
      overflow: hidden;
    }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th {
      position: sticky;
      top: 0;
      z-index: 5;
      height: 31px;
      padding: 4px 13px 4px 5px;
      border-top: 1px solid #8098ad;
      border-right: 1px solid #91a8bc;
      border-bottom: 2px solid #5b7892;
      color: #17324d;
      font-weight: 800;
      text-align: center;
      white-space: nowrap;
      user-select: none;
      width: auto !important;
    }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(1) { background:linear-gradient(#f7f9fb,#dfe6ed); }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(n+2):nth-child(-n+4) { background:linear-gradient(#eff8ff,#cee8fb); border-bottom-color:#3e91c8; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(n+5):nth-child(-n+6) { background:linear-gradient(#ecfbff,#cdeff5); border-bottom-color:#268ea1; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(7) { background:linear-gradient(#f5efff,#dfd1fa); border-bottom-color:#7b55b5; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(8) { background:linear-gradient(#edfff9,#ccefe4); border-bottom-color:#278568; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(n+9):nth-child(-n+11) { background:linear-gradient(#fff8e9,#f4dfb8); border-bottom-color:#bb7b18; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(n+12):nth-child(-n+13) { background:linear-gradient(#fff0f6,#f5cfdf); border-bottom-color:#b44f78; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(14) { background:linear-gradient(#f7f0ff,#dfd0f5); border-bottom-color:#7550a5; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(15) { background:linear-gradient(#effcef,#ccebcf); border-bottom-color:#3e8b45; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(16) { background:linear-gradient(#eef9ff,#cfe9f7); border-bottom-color:#2a87b6; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table thead th:nth-child(17) { background:linear-gradient(#fff1f1,#f5cccc); border-bottom-color:#c54a4a; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody td {
      border-right: 1px solid #c4d1dc;
      border-bottom: 1px solid #d4dde5;
      background:#fff;
    }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody tr:nth-child(even) td { background:#f8fbfd; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody tr.exam-row-selected td { background:#eaf4ff; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .doctor-cell,
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .assistant-cell { padding:2px 3px; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .doctor-cell select { border-color:#a88bd1; background:#fbf8ff; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .assistant-cell select { border-color:#79b9a6; background:#f5fffb; }
    .row-staff-picker { width:100%; min-width:130px; min-height:30px; border:1px solid #9fb8ce; background:#fff; color:#17324d; padding:3px 6px; text-align:left; cursor:pointer; line-height:1.25; }
    .doctor-cell .row-staff-picker { border-color:#a88bd1; background:#fbf8ff; }
    .assistant-cell .row-staff-picker { border-color:#79b9a6; background:#f5fffb; }
    .row-staff-picker span,.row-staff-picker small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .row-staff-picker span { font-weight:700; }
    .row-staff-picker small { color:#64748b; font-size:9px; margin-top:2px; }
    .row-staff-picker.has-selection { box-shadow:inset 3px 0 #1670c5; }
    .row-staff-picker:focus { outline:none; box-shadow:0 0 0 2px rgba(13,97,183,.14); }
    .treatment-staff-picker-modal { width:min(720px,96vw); max-height:min(760px,90vh); display:flex; flex-direction:column; }
    .treatment-staff-picker-body { padding:14px; overflow:auto; min-height:260px; }
    .treatment-staff-selected { display:flex; flex-wrap:wrap; gap:7px; min-height:48px; padding:9px; margin-bottom:12px; border:1px dashed #8eb5d8; background:#f5faff; align-items:center; }
    .treatment-staff-chip { display:inline-flex; align-items:center; gap:8px; border:1px solid #3b82c4; border-radius:18px; background:#e8f4ff; color:#0d4f8e; padding:6px 9px; cursor:pointer; font-weight:700; }
    .treatment-staff-chip b { color:#c62828; font-size:15px; }
    .treatment-staff-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .treatment-staff-option { position:relative; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; column-gap:8px; min-height:58px; padding:9px 12px; border:1px solid #b7c9d9; border-radius:5px; background:#fff; color:#17324d; text-align:left; cursor:pointer; user-select:none; }
    .treatment-staff-option span { font-weight:800; }
    .treatment-staff-option small { color:#64748b; grid-column:1; }
    .treatment-staff-option b { grid-column:2; grid-row:1/3; align-self:center; color:#08763a; font-size:20px; }
    .treatment-staff-option:hover { border-color:#1c76bf; background:#f3f9ff; }
    .treatment-staff-option.is-selected { border-color:#159447; background:#eafff0; box-shadow:inset 4px 0 #159447; }
    .treatment-staff-picker-modal .modal-actions { justify-content:space-between; }
    @media(max-width:640px){.treatment-staff-list{grid-template-columns:1fr}.treatment-staff-picker-body{padding:10px}.treatment-staff-picker-modal{width:96vw}}
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .lab-cell select { border-color:#6ba9c7; background:#f2fbff; font-weight:700; color:#145c7c; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .warranty-code-cell input.row-warranty-code { width:100%; border-color:#d9a441; background:#fffaf0; font-weight:800; letter-spacing:.03em; color:#8a5a00; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table input.row-warranty-date,
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table input.row-warranty-years { border-color:#d9a441; background:#fffdf7; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .line-before-vat { color:#27374a; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody tr:nth-child(odd) td { background:#ffffff; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody tr:nth-child(even) td { background:#eef3f8; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody tr:hover td { background:#fff6da !important; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody tr.exam-row-selected td { background:#cfe6ff !important; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table tbody tr .row-no { font-weight:800; text-align:center; }
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table input,
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table select,
    .exam-page-v32 .treatment-grid-pane .exam-table.resizable-treatment-table .service-cell-button {
      width:100%;
      max-width:100%;
      box-sizing:border-box;
    }
    .column-resizer {
      position:absolute;
      top:0;
      right:-3px;
      width:8px;
      height:100%;
      cursor:col-resize;
      z-index:9;
      touch-action:none;
    }
    .column-resizer::after {
      content:'';
      position:absolute;
      right:3px;
      top:5px;
      bottom:5px;
      width:1px;
      background:rgba(55,85,110,.42);
    }
    .column-resizer:hover::after,
    body.is-resizing-column .column-resizer::after { width:2px; background:#0d72c8; }
    body.is-resizing-column { cursor:col-resize !important; user-select:none !important; }
    .column-resize-help { color:#49657e; font-size:9px; font-weight:600; white-space:nowrap; }

    @media (max-width:680px) {
      .exam-page-v32 .treatment-toolbar .desktop-command { min-width:96px; min-height:37px; }
      .exam-page-v32 .toolbar-date-group,.exam-page-v32 .toolbar-select-group { min-width:190px; }
      .column-resize-help { display:none; }
    }

  
    /* ===== v44 payment/refund by plan + highlighted patient toolbar ===== */
    .treatment-payment-box .payment-row { grid-template-columns:minmax(150px,.75fr) minmax(185px,.9fr) minmax(270px,1.25fr) auto; }
    .payment-input-invalid { border-color:#dc2626 !important; background:#fff1f2 !important; box-shadow:0 0 0 2px rgba(220,38,38,.12) !important; }
    .refund-command { --command-accent:#d93025 !important; --command-bg:#fff0f0 !important; }
    .refund-command:not(:disabled) { border-color:#ef9a9a !important; color:#a81919 !important; }
    .refund-finance-cell { background:#fff8f8; }
    .refund-finance-cell b { color:#64748b; }
    .refund-finance-cell b.refund-needed { color:#dc2626; animation:refundPulse 1.3s ease-in-out infinite alternate; }
    @keyframes refundPulse { from{transform:scale(1)} to{transform:scale(1.035)} }
    .finance-strip.finance-strip-seven { grid-template-columns:repeat(7,minmax(112px,1fr)); }
    .payment-log-refund td { background:#fff3f3 !important; }
    .payment-log-income td { background:#f4fff7 !important; }
    .plan-refund-modal { width:min(760px,96vw); border:2px solid #dc2626; border-radius:4px; }
    .or-modal { width:min(980px,97vw); max-height:92vh; display:flex; flex-direction:column; }
    .or-body { overflow-y:auto; }
    .or-section-title { font-weight:800; font-size:13px; text-transform:uppercase; color:#1b4f8c; margin:14px 0 6px; padding-bottom:3px; border-bottom:2px solid #dbe6f2; }
    .or-section-title:first-of-type { margin-top:4px; }
    .or-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px 10px; }
    .or-field { display:flex; flex-direction:column; gap:3px; }
    .or-field label { font-size:11px; font-weight:700; color:#5b6470; }
    .or-field input, .or-field textarea, .or-field select { border:1px solid #cfd6de; border-radius:6px; padding:6px 8px; font-size:13px; font-family:inherit; width:100%; background:#fff; }
    .or-field textarea { resize:vertical; }
    .or-radio-field .or-radio-row { display:flex; gap:12px; align-items:center; height:32px; }
    .or-radio-option { display:inline-flex; align-items:center; gap:4px; font-size:12.5px; font-weight:600; }
    .or-hint { margin-top:12px; padding:8px 10px; background:#f4f8fc; border:1px solid #dbe6f2; border-radius:6px; font-size:12px; color:#3a4b5c; }
    .or-actions { position:sticky; bottom:0; background:#fff; padding-top:10px; margin-top:6px; }
    @media(max-width:800px){ .or-grid{grid-template-columns:repeat(2,1fr);} .or-field[style*="span"]{grid-column:span 2 !important;} }
    .plan-refund-modal .modal-head { background:linear-gradient(#fff,#ffe8e8); border-bottom:1px solid #efaaaa; }
    .refund-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px; }
    .refund-summary-grid > div { padding:10px; border:1px solid #cbd5e1; background:#f8fafc; }
    .refund-summary-grid span { display:block; color:#64748b; font-size:11px; }
    .refund-summary-grid b { display:block; margin-top:4px; font-size:18px; color:#0d61b7; }
    .refund-summary-grid .required { border-color:#ef9a9a; background:#fff1f2; }
    .refund-summary-grid .required b { color:#dc2626; }
    .refund-form-grid { grid-template-columns:1fr 1fr; }
    .refund-warning { margin-top:10px; padding:9px 11px; border:1px solid #f2c078; background:#fff8e8; color:#7c4b00; font-size:12px; line-height:1.45; }

    /* ===== v58 kế hoạch trả góp toàn chiều ngang + báo cáo tiến độ ===== */
    .installment-config { margin:0; padding:8px 10px 9px; border:1px solid #6f9fc8; background:linear-gradient(180deg,#fbfdff,#edf6fd); box-shadow:inset 0 1px #fff; }
    .installment-config.installment-wide { grid-column:1 / -1; width:100%; min-width:0; }
    .installment-config-title { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; color:#0d4f86; font-weight:900; font-size:12px; border-bottom:1px solid #bfd4e5; padding-bottom:5px; }
    .installment-grid { display:grid; grid-template-columns:minmax(180px,1.25fr) minmax(145px,.95fr) minmax(135px,.75fr) minmax(120px,.72fr) minmax(155px,.88fr) minmax(150px,.9fr) minmax(125px,.75fr); gap:8px; align-items:end; width:100%; }
    .installment-grid .field { margin:0; min-width:0; }
    .installment-grid label { white-space:nowrap; }
    .installment-grid select,.installment-grid input { min-height:34px; width:100%; }
    .installment-grid input[readonly] { background:#f3f7fb; color:#0d4f86; font-weight:800; }
    .installment-day-select { min-width:120px; }
    .installment-debt-box { border:1px solid #e1b65c; background:#fff8e8; padding:6px 9px; min-height:34px; display:flex; flex-direction:column; justify-content:center; }
    .installment-debt-box span { font-size:9px; color:#7a6842; text-transform:uppercase; font-weight:800; }
    .installment-debt-box b { color:#c45f00; font-size:14px; margin-top:2px; }
    .installment-hint { margin-top:7px; padding:6px 8px; border-left:3px solid #2a8bc5; background:#fff; color:#526a7d; font-size:11px; line-height:1.4; }
    .installment-hint strong { color:#0d61b7; }
    .installment-hidden { opacity:.45; pointer-events:none; }
    .installment-report-toolbar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:8px;border:1px solid #b8c8d7;background:linear-gradient(#fff,#eef4f9);margin-bottom:8px}
    .installment-report-toolbar .field{margin:0;min-width:150px}.installment-report-toolbar .search-field{min-width:260px;flex:1}
    .installment-summary{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:8px;margin-bottom:8px}.installment-summary .stat{min-height:78px}
    .installment-report-wrap{border:1px solid #aebdcb;background:#fff;overflow:auto;max-height:calc(100vh - 350px)}
    .installment-report-table{border-collapse:separate;border-spacing:0;min-width:1650px;width:100%;font-size:11px}.installment-report-table th,.installment-report-table td{border-right:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1;padding:5px 7px;white-space:nowrap;vertical-align:middle}.installment-report-table th{position:sticky;top:0;z-index:3;background:linear-gradient(#e9f4fd,#d9eafa);color:#173a58;font-weight:900}.installment-report-table th:hover{background:linear-gradient(#d7edff,#bfe0fa);box-shadow:inset 0 -2px #2684c6}.installment-report-table tr:hover td{background:#fff8d9}.installment-report-table tr.overdue td{background:#fff0f0}.installment-report-table tr.completed td{background:#eefaf0;color:#55705d}.installment-report-table .customer-cell{cursor:pointer;color:#075da8;font-weight:800}.installment-report-table .customer-cell:hover{text-decoration:underline}.installment-status{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-weight:800}.installment-status.overdue{background:#ffe0e0;color:#b91c1c}.installment-status.upcoming{background:#fff1c4;color:#8a6200}.installment-status.today{background:#dceeff;color:#075da8}.installment-status.completed{background:#dcf7e4;color:#087a35}
    @media(max-width:1200px){ .installment-grid { grid-template-columns:repeat(4,minmax(150px,1fr)); }.installment-summary{grid-template-columns:repeat(3,1fr)} }
    @media(max-width:780px){ .installment-grid { grid-template-columns:repeat(2,minmax(150px,1fr)); }.installment-summary{grid-template-columns:repeat(2,1fr)}.installment-report-toolbar{flex-wrap:nowrap;overflow-x:auto}.installment-report-toolbar>*{flex:0 0 auto} }
    @media(max-width:520px){ .installment-grid { grid-template-columns:1fr; }.installment-summary{grid-template-columns:1fr 1fr} }


    /* ===== v61: payment area responsive + bidirectional installment calculator ===== */
    .exam-page-v32 .treatment-bottom {
      grid-template-columns:minmax(720px,1.25fr) minmax(610px,.9fr);
      align-items:stretch;
      gap:5px;
    }
    .exam-page-v32 .treatment-payment-box { min-width:0; }
    .exam-page-v32 .treatment-payment-box .payment-row {
      grid-template-columns:minmax(120px,.72fr) minmax(175px,.95fr) minmax(235px,1.28fr) minmax(108px,.58fr);
      gap:6px;
      align-items:end;
    }
    .exam-page-v32 .treatment-payment-box .payment-row > * { min-width:0; }
    .exam-page-v32 .treatment-payment-box .payment-row .btn {
      min-width:108px;
      min-height:36px;
      white-space:normal;
      line-height:1.15;
      padding:5px 8px;
    }
    .finance-strip.finance-strip-seven {
      grid-template-columns:repeat(7,minmax(82px,1fr));
      min-width:0;
      overflow:hidden;
    }
    .finance-strip.finance-strip-seven .finance-cell { min-width:0; padding:4px 5px; }
    .finance-strip.finance-strip-seven .finance-cell span { min-height:16px; font-size:9px; line-height:1.15; }
    .finance-strip.finance-strip-seven .finance-cell b { font-size:13px; overflow:hidden; text-overflow:ellipsis; display:block; }
    #exam-installment-amount {
      background:#fff !important;
      color:#0b4f86 !important;
      font-weight:900;
      border:2px solid #5b9bd5;
      box-shadow:inset 0 1px 2px rgba(0,0,0,.06);
    }
    #exam-installment-periods {
      border:2px solid #8bb7df;
      font-weight:800;
      color:#163a59;
    }
    .installment-sync-badge {
      display:inline-flex;
      align-items:center;
      gap:4px;
      padding:2px 6px;
      border:1px solid #9dc4e4;
      border-radius:10px;
      background:#edf7ff;
      color:#0d61b7;
      font-size:9px;
      font-weight:800;
      white-space:nowrap;
    }
    @media(max-width:1360px) {
      .exam-page-v32 .treatment-bottom { grid-template-columns:1fr; }
      .finance-strip.finance-strip-seven { grid-template-columns:repeat(7,minmax(105px,1fr)); overflow-x:auto; }
    }
    @media(max-width:860px) {
      .exam-page-v32 .treatment-payment-box .payment-row { grid-template-columns:1fr 1fr; }
    }
    @media(max-width:560px) {
      .exam-page-v32 .treatment-payment-box .payment-row { grid-template-columns:1fr; }
      .finance-strip.finance-strip-seven { grid-template-columns:repeat(7,minmax(120px,1fr)); overflow-x:auto; }
    }
    .customer-command-zone { margin:6px 8px 0; padding:6px; border:2px solid #7aaed6; background:linear-gradient(#f8fcff,#eaf5ff); box-shadow:inset 0 0 0 1px #fff,0 2px 6px rgba(36,86,128,.14); }
    .customer-commandbar { gap:6px; padding:4px; border:1px solid #b9c9d8; background:#fff; }
    .customer-commandbar .desktop-command { min-height:37px; border:1px solid #aebdcc; border-radius:4px; box-shadow:0 2px 4px rgba(30,64,96,.12); }
    .customer-commandbar .desktop-command:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 5px 10px rgba(30,64,96,.2); }
    #customer-add-btn { --command-accent:#139c43; --command-bg:#ecfff2; border-color:#8ed4a7; }
    #customer-edit-btn { --command-accent:#b77900; --command-bg:#fff8df; border-color:#e4c36d; }
    #customer-delete-selected { --command-accent:#d92d20; --command-bg:#fff0f0; border-color:#efa19b; }
    #customer-exam-selected { --command-accent:#0877bd; --command-bg:#eef8ff; border-color:#8fc6e8; }
    #customer-close-btn { --command-accent:#6b7280; --command-bg:#f4f5f7; border-color:#b9bec7; }
    .customer-command-zone .desktop-filters { padding:4px 6px; border:1px solid #b9c9d8; background:#fff; }
    .customer-command-zone .desktop-filter { padding:4px; border:1px solid #c9d7e4; background:#f8fbff; }
    .customer-command-zone .desktop-filter:nth-child(2) { background:#fffaf0; border-color:#ead6a5; }
    .customer-command-zone .desktop-filter:nth-child(3) { background:#f5fff7; border-color:#b9dfc1; }
    .customer-command-zone .desktop-filter:nth-child(4) { background:#faf7ff; border-color:#d2c1e8; }
    @media (max-width:1100px) {
      .treatment-payment-box .payment-row { grid-template-columns:1fr 1fr; }
      .finance-strip.finance-strip-seven { grid-template-columns:repeat(4,minmax(120px,1fr)); overflow:auto; }
    }
    @media (max-width:680px) {
      .refund-summary-grid,.refund-form-grid,.treatment-payment-box .payment-row { grid-template-columns:1fr; }
      .finance-strip.finance-strip-seven { grid-template-columns:repeat(7,minmax(125px,1fr)); overflow-x:auto; }
    }

  
    /* ===== v47: lịch sử lịch hẹn và trạng thái đến/bỏ lỡ ===== */
    .appointment-dialog { width:min(820px,96vw); max-height:92vh; display:flex; flex-direction:column; background:#f8f9fb; border:1px solid #9faaba; box-shadow:0 24px 60px rgba(15,23,42,.34); }
    .appointment-dialog .legacy-form-title { flex:0 0 auto; }
    .appointment-dialog-title { padding:10px 14px; background:linear-gradient(#eaf4ff,#cfe3f7); border-bottom:1px solid #aebdce; color:#1538d1; text-align:center; font-family:'Arial',serif; font-size:24px; font-weight:700; }
    .appointment-dialog-body { padding:10px; display:grid; gap:9px; overflow:auto; }
    .appointment-detail-grid { display:grid; grid-template-columns:150px minmax(160px,1fr) 110px minmax(170px,1.1fr); gap:7px 8px; align-items:center; }
    .appointment-detail-grid label { font-size:12px; color:#263548; }
    .appointment-detail-grid input,.appointment-detail-grid select,.appointment-detail-grid textarea { width:100%; min-height:30px; border:1px solid #9fb2c8; padding:5px 7px; background:#fff; }
    .appointment-detail-grid textarea { min-height:58px; resize:vertical; }
    .appointment-toolbar { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:7px; background:#eef2f7; border:1px solid #c7d1dc; }
    .appointment-tool { min-height:34px; padding:5px 10px; display:inline-flex; align-items:center; gap:6px; border:1px solid #aebbc9; border-radius:4px; background:linear-gradient(#fff,#e8eef5); font-weight:700; color:#25364a; }
    .appointment-tool > svg,.legacy-action-btn > svg { width:17px; height:17px; flex:0 0 17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .appointment-tool:hover { transform:translateY(-1px); box-shadow:0 3px 8px rgba(15,23,42,.18); }
    .appointment-tool.add { color:#15803d; border-color:#9cd2ac; background:linear-gradient(#fbfffc,#e9f8ed); }
    .appointment-tool.edit { color:#9a6700; border-color:#e4c066; background:linear-gradient(#fffdf5,#fff3c9); }
    .appointment-tool.save { color:#075da8; border-color:#8bbbe5; background:linear-gradient(#fafdff,#e5f2ff); }
    .appointment-tool.delete { color:#b91c1c; border-color:#efaaaa; background:linear-gradient(#fffafa,#ffe8e8); }
    .appointment-tool.refresh { color:#075da8; }
    .appointment-tool.close { color:#b91c1c; }
    .appointment-history-wrap { border:1px solid #aebac7; background:#fff; min-height:210px; overflow:auto; }
    .appointment-history-wrap table { min-width:720px; }
    .appointment-history-wrap tr.selected-row td { background:#dcecff !important; }
    .appointment-history-wrap tbody tr { cursor:pointer; }
    .appointment-history-wrap { min-height:300px; max-height:390px; }
    .appointment-history-wrap thead th { position:sticky; top:0; z-index:2; background:#e8eef6; }
    .appointment-history-wrap td:last-child { min-width:190px; }
    .appointment-attendance { display:inline-flex; align-items:center; gap:6px; min-width:88px; font-weight:700; white-space:nowrap; }
    .appointment-attendance input { width:16px; height:16px; accent-color:#16843b; }
    .appointment-attendance.arrived { color:#087a35; }
    .appointment-attendance.missed { color:#c71f1f; }
    .appointment-attendance.future { color:#64748b; }
    .appointment-attendance.canceled { color:#9f1239; }
    .appointment-attendance .missed-mark { width:16px; height:16px; display:inline-grid; place-items:center; border:1px solid #e39b9b; background:#fff0f0; color:#c71f1f; font-size:12px; font-weight:900; }
    .appointment-history-wrap tr.appointment-past-missed td { background:#fff7f7; }
    .appointment-history-wrap tr.appointment-arrived td { background:#f2fff5; }
    .appointment-history-wrap tr.appointment-future td { background:#fbfdff; }

    .employee-manager-shell { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(300px,.8fr); gap:14px; }
    .employee-toolbar { display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:8px; border:1px solid #b9c6d5; background:linear-gradient(#fbfdff,#edf2f7); }
    .employee-filter-grid { display:grid; grid-template-columns:180px 180px minmax(220px,1fr); gap:8px; margin-left:auto; }
    .employee-filter-grid select,.employee-filter-grid input { min-height:32px; border:1px solid #9fb2c8; padding:5px 7px; }
    .employee-table tr.selected-row td { background:#ddecff !important; }
    .employee-table tbody tr { cursor:pointer; }
    .employee-role-badge { display:inline-flex; padding:3px 8px; border-radius:999px; font-weight:700; font-size:11px; border:1px solid transparent; }
    .employee-role-badge.bac_si { background:#e6f1ff; color:#075da8; border-color:#b4d1ef; }
    .employee-role-badge.tro_thu { background:#eaf8ee; color:#166534; border-color:#b9dfc4; }
    .employee-role-badge.phu_ta { background:#f3eaff; color:#6b21a8; border-color:#d8bdf1; }
    .employee-role-badge.ke_toan { background:#fff7dc; color:#92400e; border-color:#ecd28b; }
    .employee-role-badge.le_tan { background:#ffeaf1; color:#9d174d; border-color:#efbfd1; }
    .employee-form-modal { width:min(1320px,98vw); max-height:94vh; overflow:auto; background:#fff; border:1px solid #a7b2c0; box-shadow:0 20px 55px rgba(15,23,42,.3); }
    .employee-form-grid { display:grid; grid-template-columns:155px minmax(250px,1fr); gap:10px 12px; align-items:center; align-content:start; padding:16px; }
    .employee-form-grid>label { font-weight:800; color:#334b60; white-space:normal; line-height:1.3; }
    .employee-form-grid input,.employee-form-grid select,.employee-form-grid textarea { width:100%; min-height:31px; border:1px solid #9fb2c8; padding:5px 7px; }
    .employee-form-grid textarea { min-height:70px; resize:vertical; }
    .employee-form-layout { display:grid; grid-template-columns:minmax(430px,.75fr) minmax(650px,1.25fr); gap:0; }
    .employee-form-layout.employee-profile-only { grid-template-columns:minmax(430px,680px); justify-content:center; gap:12px; padding:14px; }
    .employee-form-layout.employee-profile-only .employee-form-grid { padding:0; }
    .employee-policy-note { align-self:start; display:grid; gap:6px; padding:12px 14px; border:1px solid #9fc5ee; border-radius:6px; background:#eef7ff; color:#174f7e; line-height:1.45; }
    .employee-policy-note > b { color:#0b4d86; }
    .employee-working-branches { grid-column:2; display:grid; gap:6px; padding:9px 10px; border:1px solid #a9c9e7; border-radius:6px; background:#f3f9ff; color:#244b69; }
    .employee-working-branches>b { color:#0b5797; font-size:12px; }.employee-working-branches>small { color:#5d7488; font-size:10px; line-height:1.35; }.employee-working-branches>div { display:flex; flex-wrap:wrap; gap:7px 12px; }.employee-working-branches label { display:flex; align-items:center; gap:5px; font-weight:700; color:#244b69; }.employee-working-branches input { width:auto; min-height:auto; }
    .employee-commission-panel { border-left:1px solid #aebdcb; background:#f5f8fb; padding:12px; min-width:0; }
    .employee-commission-panel h3 { margin:0 0 4px; color:#0b4d86; font-size:14px; }
    .employee-commission-search { width:100%; height:32px; margin:8px 0; border:1px solid #94abc0; padding:5px 8px; box-sizing:border-box; }
    .employee-commission-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) minmax(220px,1fr); gap:8px; align-items:end; margin:9px 0; }
    .employee-commission-toolbar label { display:grid; gap:3px; min-width:0; color:#334b60; font-size:11px; font-weight:800; }
    .employee-commission-toolbar select,.employee-commission-toolbar input { width:100%; height:34px; box-sizing:border-box; border:1.5px solid #93a7bb; border-radius:5px; padding:4px 7px; background:#fff; }
    .commission-branch-cell { font-weight:800; color:#0b4d86; overflow-wrap:anywhere; }
    .employee-commission-scroll { max-height:460px; overflow-y:auto; overflow-x:hidden; border:1px solid #8fa2b4; background:#fff; width:100%; box-sizing:border-box; }
    .commission-row { display:grid; grid-template-columns:minmax(170px,.9fr) minmax(260px,1.8fr) minmax(110px,.55fr); align-items:center; gap:7px; padding:7px 8px; border-bottom:1px solid #dbe3ea; box-sizing:border-box; width:100%; min-width:0; }
    .commission-row-head { position:sticky; top:0; z-index:2; background:#c6efce; color:#173342; font-weight:800; font-size:12px; letter-spacing:.01em; }
    .commission-row-name { min-width:0; font-size:12px; overflow-wrap:break-word; word-break:break-word; color:#1f2f3d; }
    .commission-row-name.empty { color:#8a97a5; font-style:italic; }
    .commission-row select,.commission-row input { width:100%; min-width:0; height:32px; border:1.5px solid #93a7bb; border-radius:5px; padding:3px 6px; box-sizing:border-box; font-size:12px; color:#17324d; background:#fbfdff; text-overflow:ellipsis; }
    .commission-row input { text-align:center; font-weight:800; font-size:13px; color:#0b4d86; }
    .commission-service-label { min-width:0; font-size:13px; color:#172f45; overflow-wrap:anywhere; }
    .commission-branch-picker { position:relative; min-width:0; }
    .commission-branch-picker summary { box-sizing:border-box; height:32px; padding:7px 28px 5px 8px; border:1.5px solid #93a7bb; border-radius:5px; background:#fbfdff; color:#17324d; cursor:pointer; list-style:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .commission-branch-picker summary::-webkit-details-marker { display:none; }
    .commission-branch-picker summary::after { content:'▾'; position:absolute; right:9px; top:7px; color:#496b86; }
    .commission-branch-menu { position:absolute; z-index:20; top:35px; left:0; width:max(230px,100%); max-height:210px; overflow:auto; padding:6px; border:1px solid #8199ad; border-radius:5px; background:#fff; box-shadow:0 10px 24px rgba(15,23,42,.22); }
    .commission-branch-menu label { display:flex; align-items:center; gap:7px; padding:6px; cursor:pointer; font-size:12px; }
    .commission-branch-menu label:hover { background:#eaf4ff; }
    .commission-branch-menu input { width:16px; height:16px; flex:0 0 auto; accent-color:#0d61b7; }
    .commission-row-remove { width:30px; height:30px; border:1px solid #e3a2a2; border-radius:5px; background:#fff4f4; color:#c92727; font-weight:900; cursor:pointer; }
    .commission-row-remove:hover { background:#ffe0e0; }
    .employee-commission-actions { display:flex; justify-content:flex-end; margin:8px 0 0; }
    .commission-row-input input:focus { outline:none; border-color:#2f6fb0; box-shadow:0 0 0 2px rgba(47,111,176,.18); background:#fff; }
    .commission-row:nth-child(odd) { background:#ffffff; }
    .commission-row:nth-child(even) { background:#eef3f8; }
    .commission-row:hover { background:#fff8d9; }
    .commission-row-head:hover { background:#c6efce; }
    .appointment-tool.policy { color:#55318a; }
    .appointment-tool.policy svg { color:#6f42c1; }
    .commission-policy-modal { width:min(1380px,98vw); max-height:94vh; overflow:auto; background:#f7f9fc; border:1px solid #6f8397; box-shadow:0 20px 55px rgba(12,35,58,.35); }
    .commission-policy-meta { display:grid; grid-template-columns:minmax(260px,1.5fr) minmax(150px,.7fr) minmax(150px,.7fr) minmax(120px,.45fr); gap:8px; padding:12px; background:#fff; border-bottom:1px solid #b8c7d5; }
    .commission-policy-meta label { display:grid; gap:4px; font-size:11px; font-weight:800; color:#28445f; }
    .commission-policy-meta input,.commission-policy-meta textarea { width:100%; box-sizing:border-box; border:1.5px solid #91a8bd; border-radius:5px; padding:6px 8px; min-height:34px; background:#fff; }
    .commission-policy-meta .policy-note { grid-column:1/-1; }
    .commission-policy-meta textarea { min-height:56px; resize:vertical; }
    .commission-policy-help { margin:10px 12px 0; padding:9px 11px; border:1px solid #92bde8; border-radius:6px; background:#eaf5ff; color:#174e7b; font-size:12px; }
    .commission-policy-selectors { grid-template-columns:minmax(175px,1fr) minmax(165px,.9fr) minmax(155px,.8fr) minmax(205px,1.1fr) minmax(200px,1.1fr) auto; padding:0 12px; }
    .policy-rule-count { align-self:end; min-height:34px; display:flex; align-items:center; gap:5px; padding:0 10px; border-radius:5px; background:#e8f2ff; color:#0a4d8c; white-space:nowrap; }
    .policy-rule-count span { display:inline-flex; align-items:center; gap:5px; }
    .commission-policy-rule-scroll { margin:0 12px; max-height:48vh; }
    .commission-policy-actions { padding:10px 12px 14px; }
    .policy-manager-toolbar { display:flex; align-items:center; gap:8px; padding:12px; border-bottom:1px solid #b8c7d5; background:#fff; }
    .policy-current-banner { margin-left:auto; display:grid; min-width:280px; padding:7px 12px; border:1px solid #70a9e0; border-radius:7px; background:#eaf5ff; color:#174e7b; }
    .policy-current-banner span,.policy-current-banner small { font-size:11px; }
    .commission-policy-list { margin:12px; max-height:64vh; border:1px solid #a9bac9; }
    .commission-policy-list th { position:sticky; top:0; z-index:2; }
    .policy-row-actions { display:flex; flex-wrap:wrap; gap:5px; }
    .policy-list-modal .legacy-form-actions { padding:0 12px 12px; }
    .policy-history-cell { min-width:260px; white-space:normal; line-height:1.35; }
    .report-filter-card .toolbar { align-items:end; }
    .report-filter-card .field.report-kind { min-width:205px; }
    .report-filter-card .field.report-employee { min-width:210px; }
    .report-panel-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
    .report-panel-title .card-title { margin:0; }
    .report-detail-btn { border:1px solid #075b9d; background:linear-gradient(#2186d7,#0965ad); color:#fff; border-radius:3px; padding:5px 10px; font-size:11px; font-weight:900; cursor:pointer; white-space:nowrap; box-shadow:0 1px 2px rgba(15,78,125,.18); }
    .report-detail-btn:hover,.report-detail-btn:focus-visible { background:linear-gradient(#0f70bd,#07518e); color:#fff; box-shadow:0 2px 7px rgba(15,78,125,.3); }
    .report-detail-btn:disabled { background:#cbd5e1; border-color:#94a3b8; color:#475569; box-shadow:none; }
    #gt-preview-btn,#v92-admin-price-preview,.portal-media-report { border-color:#075b9d; background:linear-gradient(#2186d7,#0965ad); color:#fff; }
    #gt-preview-btn:hover,#v92-admin-price-preview:hover,.portal-media-report:hover { background:linear-gradient(#0f70bd,#07518e); color:#fff; }

    .lab-master-toolbar .procedure-tool-icon svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; }
    .lab-master-toolbar .procedure-tool.warehouse .procedure-tool-icon { background:#0f9f9a; }
    .audit-filter-card { padding:8px; }
    .audit-filter-grid { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:6px; align-items:end; }
    .audit-filter-grid .field { gap:3px; }
    .audit-filter-grid label { font-size:10px; }
    .audit-filter-grid input,.audit-filter-grid select { min-height:30px; padding:4px 7px; font-size:11px; }
    .audit-search-field { grid-column:span 2; }
    .audit-integrity { display:flex; gap:10px; align-items:center; justify-content:space-between; margin-bottom:7px; font-size:11px; }
    .audit-table-wrap { max-height:calc(100vh - 360px); min-height:300px; overflow:auto; }
    .audit-table { min-width:1450px; font-size:10.5px; }
    .audit-table th { position:sticky; top:0; z-index:2; white-space:nowrap; }
    .audit-table td { padding:4px 5px; vertical-align:top; }
    .audit-detail-cell { min-width:280px; max-width:460px; overflow-wrap:anywhere; }
    .audit-user-agent { max-width:230px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .audit-pagination { display:flex; justify-content:center; align-items:center; gap:12px; padding-top:8px; }
    @media (max-width:1100px) { .audit-filter-grid { grid-template-columns:repeat(3,minmax(120px,1fr)); } }
    @media (max-width:700px) { .audit-filter-grid { grid-template-columns:1fr 1fr; } .audit-search-field { grid-column:1/-1; } .audit-table-wrap { max-height:60vh; } }
    .report-section-card { transition:opacity .15s ease; }
    .report-detail-modal { width:min(1500px,98vw); height:min(900px,94vh); display:grid; grid-template-rows:auto auto 1fr auto; background:#eef2f5; border:1px solid #8296a8; box-shadow:0 24px 70px rgba(0,0,0,.38); }
    .report-detail-summary { display:flex; gap:16px; flex-wrap:wrap; padding:8px 12px; border-bottom:1px solid #b5c2cd; background:#fff; color:#40566b; font-size:11px; }
    .report-detail-table-wrap { overflow:auto; margin:10px; border:1px solid #788c9e; background:#fff; }
    .report-detail-table { min-width:1180px; width:100%; border-collapse:separate; border-spacing:0; table-layout:auto; font-size:11px; }
    .report-detail-table th,.report-detail-table td { border-right:1px solid #b9c7d2; border-bottom:1px solid #b9c7d2; padding:6px 8px; vertical-align:top; white-space:nowrap; }
    .report-detail-table th { position:sticky; top:0; z-index:3; background:#c6efce; color:#183746; font-weight:900; text-align:center; }
    .report-detail-table tbody tr:nth-child(even) td { background:#f6f9fb; }
    .report-detail-table tbody tr:hover td { background:#fff3c4; }
    .report-detail-table td.wrap { white-space:normal; min-width:180px; overflow-wrap:anywhere; }
    .report-detail-table td.number { text-align:right; font-weight:800; }
    .report-detail-footer { display:flex; justify-content:flex-end; gap:8px; padding:0 10px 10px; }
    .employee-summary-box { border:1px solid #c3cfdb; background:#f8fbfe; padding:12px; }
    .employee-summary-box h3 { margin:0 0 10px; color:#0d3f8a; }
    .employee-summary-list { display:grid; gap:7px; }
    .employee-summary-item { display:flex; justify-content:space-between; gap:10px; border-bottom:1px dashed #c8d2dc; padding-bottom:6px; }
    @media (max-width:900px) {
      .appointment-detail-grid,.employee-form-grid,.employee-form-layout { grid-template-columns:1fr; }
      .employee-commission-panel { border-left:0; border-top:1px solid #aebdcb; }
      .employee-manager-shell { grid-template-columns:1fr; }
      .employee-filter-grid { grid-template-columns:1fr; width:100%; margin-left:0; }
      .appointment-dialog { width:100vw; height:100vh; max-height:none; }
    }
    @media (max-width:540px) {
      .commission-row { grid-template-columns:1fr; }
      .commission-row-head { display:none; }
      .commission-row [data-commission-service] { grid-column:1 / 3; grid-row:1; }
      .commission-row [data-commission-branch] { grid-column:1; grid-row:2; }
      .commission-row [data-commission-percent] { grid-column:2; grid-row:2; }
      .commission-row-remove { grid-column:3; grid-row:1 / 3; }
      .commission-policy-meta { grid-template-columns:1fr 1fr; }
      .commission-policy-meta .policy-note { grid-column:1/-1; }
      .commission-policy-selectors { grid-template-columns:1fr 1fr; }
      .policy-rule-count { grid-column:1/-1; }
      .policy-manager-toolbar { align-items:stretch; flex-wrap:wrap; }
      .policy-current-banner { width:100%; min-width:0; margin-left:0; box-sizing:border-box; }
    }


    /* ===== v51 public login + secure customer portal ===== */
    #login-screen { background:#e8edf3 !important; min-height:100svh; }
    .public-login-shell { min-height:100svh; display:flex; flex-direction:column; background:linear-gradient(180deg,#eef3f8 0,#dce9f2 138px,#1d8db5 139px,#2b96bd 100%); }
    .public-login-header { min-height:138px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px clamp(18px,4vw,70px); background:linear-gradient(180deg,#f8fafc,#edf1f5); border-bottom:1px solid #aebac6; box-shadow:0 3px 12px rgba(27,53,79,.14); }
    .public-brand-block { display:flex; align-items:center; gap:16px; min-width:0; }
    .public-brand-badge { width:62px; height:62px; flex:0 0 62px; display:grid; place-items:center; border-radius:16px; color:#fff; font:900 22px/1 Arial; background:linear-gradient(145deg,#0d61b7,#25a4df); border:3px solid rgba(255,255,255,.9); box-shadow:0 5px 16px rgba(13,97,183,.28); }
    .public-brand-name { color:#0d3f8a; font-size:19px; font-weight:900; letter-spacing:.02em; }
    .public-brand-welcome { margin-top:5px; color:#334155; font-size:14px; font-weight:700; }
    .public-brand-wish { margin-top:4px; color:#0d61b7; font-size:13px; }
    .public-header-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
    .public-header-btn { height:38px; padding:0 16px; border:1px solid #9fb6ca; border-radius:7px; background:linear-gradient(#fff,#edf4fa); color:#0d4d83; font-weight:800; cursor:pointer; box-shadow:0 2px 5px rgba(15,50,80,.08); transition:.14s ease; }
    .public-header-btn.contact { border-color:#e0a4a4; color:#b42323; background:linear-gradient(#fff,#fff2f2); }
    .public-header-btn:hover { transform:translateY(-2px); box-shadow:0 7px 14px rgba(15,50,80,.16); }
    .public-auth-workspace { flex:1; min-height:620px; display:grid; grid-template-columns:minmax(300px,360px) minmax(340px,430px); align-content:start; justify-content:center; gap:28px; padding:clamp(70px,10vh,120px) 24px 60px; position:relative; overflow:auto; }
    .public-auth-workspace::before { content:''; position:absolute; right:4%; bottom:5%; width:min(46vw,720px); height:min(26vw,360px); border:1px solid rgba(255,255,255,.22); border-radius:18px; transform:skew(-12deg); background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.01)); pointer-events:none; }
    .staff-login-panel,.portal-login-card { position:relative; z-index:2; }
    .public-auth-workspace .login-card.public-staff-card { position:relative !important; inset:auto !important; left:auto !important; top:auto !important; transform:none !important; width:100% !important; border-radius:8px !important; overflow:hidden; border:1px solid #9fb0c0; box-shadow:0 14px 34px rgba(0,40,75,.24); }
    .public-auth-workspace .login-titlebar { padding:13px; font-size:16px; }
    .public-auth-workspace .login-body { padding:18px; }
    .public-auth-workspace .login-grid .field { grid-template-columns:105px minmax(0,1fr); }
    .public-auth-workspace .login-grid .field input,.public-auth-workspace .login-grid .field select { min-height:34px; border:1px solid #98aec2; background:#fff; }
    .login-security-note { margin-top:13px; padding:9px 10px; border:1px dashed #b6c9da; background:#eef6fc; color:#546679; font-size:11px; line-height:1.5; }
    .portal-login-card { background:rgba(249,252,255,.96); border:1px solid #99afc2; border-radius:9px; box-shadow:0 14px 34px rgba(0,40,75,.24); overflow:hidden; }
    .portal-card-head { min-height:58px; display:flex; align-items:center; gap:10px; padding:10px 14px; background:linear-gradient(180deg,#fafdff,#dcecf7); border-bottom:1px solid #aebfce; color:#0d3f8a; }
    .portal-card-head b { display:block; font-size:16px; }
    .portal-card-head span:not(.portal-lock) { display:block; margin-top:2px; color:#5a6b7d; font-size:11px; }
    .portal-lock { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#1684c2; }
    .portal-card-body { padding:16px; }
    .portal-method-switch { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-bottom:13px; }
    .portal-method { min-height:34px; border:1px solid #afbdca; background:#f4f7fa; color:#45576a; font-weight:800; cursor:pointer; }
    .portal-method.active { color:#fff; background:linear-gradient(#238fe0,#0f68ba); border-color:#0d61b7; }
    .portal-label { display:block; margin:8px 0 5px; color:#334155; font-size:12px; font-weight:800; }
    .portal-input { width:100%; min-height:38px; border:1px solid #95abc0; padding:7px 9px; background:#fff; font-size:14px; }
    .portal-primary-btn { width:100%; min-height:38px; margin-top:9px; border:1px solid #0e65b3; border-radius:4px; color:#fff; background:linear-gradient(#2594e4,#0c67bb); font-weight:900; cursor:pointer; }
    .portal-primary-btn:hover { filter:brightness(1.05); box-shadow:0 4px 10px rgba(13,97,183,.22); }
    .portal-otp-row { display:grid; grid-template-columns:1fr 120px; gap:7px; }
    .portal-otp-row .portal-primary-btn { margin-top:0; }
    .portal-input.otp { font-size:19px; font-weight:900; letter-spacing:.2em; text-align:center; }
    .portal-demo-otp { margin-top:8px; padding:7px 9px; border:1px dashed #e2ad45; background:#fff8df; color:#8a5b00; font-size:12px; font-weight:800; }
    .portal-privacy-note,.portal-email-note { margin-top:11px; padding:8px 9px; border-left:3px solid #7fb1d6; background:#eef6fb; color:#526475; font-size:11px; line-height:1.45; }
    .portal-email-note { border-left-color:#e7ae45; background:#fff8e7; }

    .customer-portal-shell { flex:1; min-height:calc(100svh - 138px); background:#edf2f6; }
    .customer-portal-topbar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px clamp(14px,3vw,40px); border-bottom:1px solid #b8c5d1; background:#fff; box-shadow:0 2px 7px rgba(15,40,60,.08); }
    .customer-portal-topbar b { display:block; color:#0d3f8a; font-size:17px; }
    .customer-portal-topbar span { display:block; margin-top:3px; color:#64748b; font-size:12px; }
    .customer-portal-actions { display:flex; gap:7px; }
    .customer-portal-content { max-width:1480px; margin:0 auto; padding:16px clamp(12px,3vw,34px) 40px; display:grid; gap:14px; }
    .portal-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(160px,1fr)); gap:10px; }
    .portal-summary-card { padding:14px; border:1px solid #b7c7d6; border-top:4px solid #2b8ccf; background:#fff; box-shadow:0 3px 10px rgba(18,55,80,.07); }
    .portal-summary-card span { color:#64748b; font-size:11px; font-weight:800; text-transform:uppercase; }
    .portal-summary-card b { display:block; margin-top:7px; color:#0d3f8a; font-size:22px; }
    .portal-section-card { border:1px solid #b7c5d2; background:#fff; box-shadow:0 3px 10px rgba(18,55,80,.06); }
    .portal-section-title { padding:9px 11px; color:#0d3f8a; font-family:'Arial',serif; font-size:17px; font-weight:800; background:linear-gradient(#f8fbfd,#eaf2f8); border-bottom:1px solid #bfccd8; }
    .portal-section-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-right:12px; background:linear-gradient(#f8fbfd,#eaf2f8); border-bottom:1px solid #bfccd8; }
    .portal-section-head .portal-section-title { border-bottom:0; background:transparent; }
    .portal-table-wrap { overflow:auto; max-height:330px; }
    .portal-table { width:100%; min-width:900px; border-collapse:collapse; font-size:12px; }
    .portal-table th,.portal-table td { border-right:1px solid #cad5df; border-bottom:1px solid #cad5df; padding:7px 8px; text-align:left; }
    .portal-table th { position:sticky; top:0; background:#e7f0f7; color:#28445c; z-index:2; }
    .portal-treatment-list { max-height:430px; overflow:auto; padding:10px; display:grid; gap:9px; }
    .portal-treatment-card { border:1px solid #c2cfda; background:#fbfdff; }
    .portal-treatment-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; background:#edf6fd; border-bottom:1px solid #c4d2de; }
    .portal-treatment-head b { color:#0b5898; }
    .portal-treatment-items { width:100%; border-collapse:collapse; font-size:12px; }
    .portal-treatment-items th,.portal-treatment-items td { border-bottom:1px solid #d6dfe7; padding:6px 8px; }
    .portal-treatment-items th { background:#f7f9fb; color:#526579; }
    .portal-media-grid { padding:12px; display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; }
    .portal-media-card { border:1px solid #c2ced9; background:#fff; overflow:hidden; }
    .portal-media-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; background:#edf2f6; }
    .portal-media-meta { padding:8px; }
    .portal-media-meta b { display:block; color:#24435e; }
    .portal-media-empty { grid-column:1/-1; padding:28px; text-align:center; color:#718096; background:#f8fafc; border:1px dashed #c8d2dc; }
    .portal-email-register { padding:12px; display:grid; grid-template-columns:1fr minmax(320px,500px); gap:14px; align-items:center; }
    .portal-email-row { display:grid; grid-template-columns:1fr 110px; gap:7px; }
    .portal-email-row input { min-height:36px; border:1px solid #a6b7c7; padding:6px 8px; }

    .customer-media-modal { width:min(1000px,96vw); max-height:92vh; background:#fff; border:1px solid #9eacba; box-shadow:0 20px 55px rgba(0,0,0,.28); overflow:hidden; }
    .customer-media-form { display:grid; grid-template-columns:140px 1fr 110px 160px; gap:8px; align-items:center; padding:12px; border-bottom:1px solid #c5d0db; background:#f7fafc; }
    .customer-media-form input,.customer-media-form select,.customer-media-form textarea { width:100%; min-height:32px; border:1px solid #9fb2c8; padding:5px 7px; }
    .customer-media-form textarea { min-height:54px; resize:vertical; }
    .customer-media-form .span-3 { grid-column:2/-1; }
    .customer-media-list { padding:12px; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; max-height:520px; overflow:auto; }
    .customer-media-admin-card { border:1px solid #c4d0db; background:#fff; }
    .customer-media-admin-card img { width:100%; aspect-ratio:4/3; object-fit:cover; background:#eef2f6; display:block; }
    .customer-media-admin-card .meta { padding:7px; font-size:11px; }

    @media (max-width:900px) {
      .public-login-header { align-items:flex-start; padding:14px; }
      .public-brand-badge { width:50px; height:50px; flex-basis:50px; }
      .public-brand-name { font-size:16px; }
      .public-brand-welcome { font-size:12px; }
      .public-brand-wish { font-size:11px; }
      .public-header-actions { flex-direction:column; }
      .public-header-btn { height:32px; padding:0 10px; font-size:11px; }
      .public-auth-workspace { grid-template-columns:minmax(0,480px); padding:28px 14px 50px; }
      .portal-summary-grid { grid-template-columns:repeat(2,1fr); }
      .portal-email-register { grid-template-columns:1fr; }
      .customer-media-form { grid-template-columns:1fr; }
      .customer-media-form .span-3 { grid-column:auto; }
    }
    @media (max-width:560px) {
      .public-login-header { min-height:auto; display:grid; grid-template-columns:1fr; }
      .public-header-actions { flex-direction:row; }
      .public-brand-wish { display:none; }
      .public-auth-workspace .login-grid .field { grid-template-columns:1fr; }
      .portal-summary-grid { grid-template-columns:1fr; }
      .customer-portal-topbar { align-items:flex-start; flex-direction:column; }
      .portal-email-row,.portal-otp-row { grid-template-columns:1fr; }
    }

    /* ===== v52: staff login centered + Portal opened only from header ===== */
    .public-header-btn.portal { border-color:#58a7d7; color:#07588f; background:linear-gradient(#f9fdff,#e4f4ff); }
    .public-header-btn.portal:hover { border-color:#1684c2; background:linear-gradient(#ffffff,#d7efff); }
    .public-auth-workspace {
      grid-template-columns:minmax(300px,380px) !important;
      place-items:center !important;
      align-content:center !important;
      justify-content:center !important;
      padding:36px 20px 54px !important;
      min-height:calc(100svh - 138px) !important;
    }
    .staff-login-panel { width:100%; max-width:380px; }
    .portal-login-backdrop { position:fixed; inset:0; z-index:9990; background:rgba(12,32,48,.48); backdrop-filter:blur(1.5px); }
    .portal-login-card {
      position:fixed !important; z-index:9991 !important; left:50%; top:50%;
      width:min(430px,calc(100vw - 28px)); max-height:min(720px,calc(100svh - 30px)); overflow:auto;
      transform:translate(-50%,-50%); margin:0 !important;
      box-shadow:0 24px 70px rgba(0,25,50,.42) !important;
      animation:portalDialogIn .16s ease-out;
    }
    .portal-login-card[hidden], .portal-login-backdrop[hidden] { display:none !important; }
    .portal-card-head { position:relative; padding-right:48px !important; }
    .portal-dialog-close {
      position:absolute; right:10px; top:10px; width:32px; height:32px; border:1px solid #e1a4a4;
      border-radius:6px; background:#fff4f4; color:#c51d1d; font-size:21px; font-weight:900; line-height:1; cursor:pointer;
    }
    .portal-dialog-close:hover { transform:translateY(-1px); background:#ffe7e7; box-shadow:0 4px 10px rgba(150,20,20,.16); }
    @keyframes portalDialogIn { from { opacity:0; transform:translate(-50%,-47%) scale(.98); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
    @media (max-width:900px) {
      .public-header-actions { flex-direction:row !important; flex-wrap:wrap; justify-content:flex-end; }
      .public-auth-workspace { grid-template-columns:minmax(0,420px) !important; min-height:calc(100svh - 120px) !important; padding:26px 14px 44px !important; }
    }
    @media (max-width:560px) {
      .public-header-actions { justify-content:flex-start; }
      .public-header-btn.portal { order:-1; }
      .public-auth-workspace { min-height:calc(100svh - 170px) !important; padding:22px 12px 36px !important; }
      .staff-login-panel { max-width:100%; }
      .portal-login-card { top:50%; width:calc(100vw - 18px); max-height:calc(100svh - 18px); }
    }

    /* ===== v68 Portal account authentication ===== */
    .portal-account-form[hidden] { display:none !important; }
    .portal-register-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 9px; }
    .portal-register-grid .portal-field-full { grid-column:1/-1; }
    .portal-account-note { margin-top:10px; padding:8px 9px; border-left:3px solid #36a36d; background:#edf9f2; color:#246043; font-size:11px; line-height:1.45; }
    .portal-forgot-link { width:100%; margin:8px 0 0; border:0; background:transparent; color:#0d61b7; font-weight:800; text-decoration:underline; cursor:pointer; }
    .portal-forgot-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:9px; }
    .portal-password-rules { margin-top:8px; padding:8px 10px; border:1px solid #c7d8e8; background:#f3f8fd; color:#36536d; font-size:11px; line-height:1.5; }
    .portal-reset-modal { width:min(660px,96vw); background:#fff; border:1px solid #8fa8bf; box-shadow:0 22px 70px rgba(15,40,65,.34); }
    .portal-reset-result { padding:12px; display:grid; gap:10px; }
    .portal-reset-password-box { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; padding:9px; border:1px solid #e1b95a; background:#fff8df; }
    .portal-reset-password-box code { font-size:18px; font-weight:900; letter-spacing:.05em; color:#8a5700; }
    .portal-reset-template { width:100%; min-height:220px; resize:vertical; border:1px solid #a8b9c8; padding:10px; font:13px/1.55 Arial,sans-serif; }
    .consultation-modal { width:min(720px,96vw); max-height:92vh; overflow:auto; background:#fff; border:1px solid #8fa8bf; box-shadow:0 22px 70px rgba(15,40,65,.34); }
    .consultation-form { padding:14px; display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; }
    .consultation-form label { display:grid; gap:5px; color:#263e55; font-size:12px; font-weight:800; }
    .consultation-form input,.consultation-form select,.consultation-form textarea { width:100%; min-height:38px; border:1px solid #8aa7bd; padding:7px 9px; background:#fff; }
    .consultation-form textarea { min-height:120px; resize:vertical; }
    .consultation-form .full { grid-column:1/-1; }
    .consultation-admin-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
    .consultation-admin-table { min-width:1180px; font-size:11px; }
    .consultation-admin-table thead tr.filters th { position:sticky; top:32px; z-index:3; padding:3px; background:#f5f9fc; }
    .consultation-admin-table thead tr.labels th { position:sticky; top:0; z-index:4; height:32px; }
    .consultation-admin-table thead input,.consultation-admin-table thead select { width:100%; min-width:70px; height:27px; border:1px solid #9fb5c8; padding:2px 5px; font-size:10px; background:#fff; }
    .consultation-admin-table td { vertical-align:top; white-space:normal; line-height:1.4; }
    .server-contract-warning { margin:8px 0; padding:8px 10px; border:1px solid #f3bf58; background:#fff8df; color:#7a4a00; font-size:12px; font-weight:700; }
    @media (max-width:560px) { .portal-register-grid { grid-template-columns:1fr; } .portal-register-grid .portal-field-full { grid-column:auto; } }
    @media (max-width:640px) { .consultation-form { grid-template-columns:1fr; } .consultation-form .full { grid-column:auto; } .portal-forgot-actions { grid-template-columns:1fr; } }

    /* ===== v66 language selector ===== */
    .language-switcher { display:flex; align-items:center; gap:6px; min-width:180px; height:32px; padding:3px 7px; border:1px solid #9fb1c2; border-radius:4px; background:linear-gradient(#fff,#edf3f8); color:#294b68; box-sizing:border-box; }
    .language-switcher .language-icon { color:#0d6db7; font-size:15px; line-height:1; }
    .language-switcher label { font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
    .language-switcher select { min-width:0; flex:1; height:25px; border:0; outline:0; background:transparent; color:#173d5e; font:700 11px Arial,sans-serif; cursor:pointer; }
    .ribbon-language-switcher { flex:0 0 194px; margin:0 6px 1px auto; }
    .public-language-switcher { width:194px; height:38px; }
    @media (max-width:960px) { .ribbon-language-switcher { flex-basis:155px; min-width:155px; } .language-switcher label { display:none; } }
    @media (max-width:680px) { .ribbon-language-switcher { flex-basis:126px; min-width:126px; margin-right:2px; } .language-switcher { padding:2px 4px; } .language-switcher .language-icon { display:none; } }

.media53-modal{width:min(1480px,98vw);height:min(920px,94vh);background:#fff;border:1px solid #8ea2b8;box-shadow:0 22px 70px rgba(15,38,64,.34);display:grid;grid-template-rows:auto 1fr;overflow:hidden}
  .media53-body{min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr);background:#f6f9fc}
  .media53-history{border-right:1px solid #c8d4e0;background:#eef4fa;display:flex;flex-direction:column;min-width:0}
  .media53-history-head{padding:10px;border-bottom:1px solid #c8d4e0;background:#e1ebf5;color:#183d63;font-weight:800}
  .media53-history-list{overflow:auto;min-height:0;padding:6px}
  .media53-history-row{width:100%;text-align:left;border:1px solid transparent;background:#fff;padding:9px 10px;margin-bottom:6px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04)}
  .media53-history-row:hover{border-color:#2f8edb;transform:translateY(-1px);box-shadow:0 5px 12px rgba(47,142,219,.14)}
  .media53-history-row b{display:block;color:#174d7d}.media53-history-row span{font-size:11px;color:#66798b}
  .media53-workspace{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr;background:#fff}
  .media53-toolbar{display:grid;grid-template-columns:130px 1fr auto auto;gap:8px;align-items:end;padding:9px 10px;border-bottom:1px solid #c8d4e0;background:#f9fbfd}
  .media53-toolbar label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;color:#40566c}.media53-toolbar input{height:32px;border:1px solid #aabccd;padding:4px 7px}
  .media53-grid-scroll{overflow:auto;min-height:0;padding:10px}
  .media53-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:8px;min-width:980px}
  .media53-slot{position:relative;aspect-ratio:1.18/1;border:1px dashed #a9bfd5;background:#f9fbfe;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:.16s ease}
  .media53-slot:hover{border-color:#178be0;box-shadow:0 5px 14px rgba(23,139,224,.18);transform:translateY(-1px)}
  .media53-slot.has-image{border-style:solid;border-color:#55a6dc;background:#fff}.media53-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .media53-slot-empty{display:flex;flex-direction:column;align-items:center;gap:7px;color:#92a9bf;text-align:center;padding:10px}.media53-slot-empty .glyph{font-size:37px;line-height:1;opacity:.55}
  .media53-slot-label{position:absolute;left:5px;right:5px;bottom:5px;padding:4px 5px;background:rgba(255,255,255,.92);border:1px solid rgba(117,145,172,.35);font-size:10px;font-weight:800;color:#1f5f91;text-align:center;z-index:2}
  .media53-slot-remove{position:absolute;right:5px;top:5px;z-index:3;border:1px solid #ff9b9b;background:#fff;color:#c51e1e;border-radius:3px;width:23px;height:23px;display:none;cursor:pointer}.media53-slot.has-image .media53-slot-remove{display:block}
  .media53-section-title{grid-column:1/-1;padding:6px 8px;background:linear-gradient(#e8f4ff,#d9ebfb);border:1px solid #b8d0e5;color:#0b5f9c;font-weight:800;font-size:12px}
  .media53-actions{display:flex;gap:6px}.media53-actions .btn{white-space:nowrap}
  .media53-report-modal{width:min(1180px,97vw);height:min(930px,95vh);background:#eef2f5;border:1px solid #91a1b2;display:grid;grid-template-rows:auto 1fr;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.35)}
  .media53-report-scroll{overflow:auto;padding:14px}.media53-report-page{width:min(900px,100%);min-height:1100px;margin:0 auto 16px;background:#fff;border:1px solid #bdc8d2;box-shadow:0 4px 18px rgba(0,0,0,.12);padding:14px}
  .media53-report-title{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:2px solid #1a7db7;padding-bottom:7px;margin-bottom:10px}.media53-report-title strong{font-size:18px;color:#16395a;text-align:center}.media53-report-title .date{font-size:11px;color:#d32f2f;text-align:right}
  .media53-patient-info{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;font-size:11px;padding:7px 4px;border-bottom:1px solid #cfd9e2;margin-bottom:8px}
  .media53-report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.media53-report-grid.xray{grid-template-columns:1fr 1fr}.media53-report-grid.xray .panorama{grid-column:1/-1}
  .media53-report-photo{border:1px solid #c5d2df;background:#f8fafc;min-height:190px;display:flex;flex-direction:column}.media53-report-photo img{width:100%;height:100%;min-height:180px;object-fit:contain;background:#111}.media53-report-photo span{padding:4px 6px;font-size:10px;font-weight:700;color:#36566e;background:#fff}
  .media53-report-section{font-weight:900;color:#087fb8;border-bottom:1px solid #51a7cf;padding:5px 4px;margin:10px 0 7px}
  .portal-media-batch{border:1px solid #b9cad9;background:#fff;box-shadow:0 2px 7px rgba(20,54,88,.07);overflow:hidden}.portal-media-batch:hover{border-color:#258ed0;box-shadow:0 7px 16px rgba(37,142,208,.16)}
  .portal-media-batch-preview{display:grid;grid-template-columns:repeat(3,1fr);height:120px;background:#eef3f7}.portal-media-batch-preview img{width:100%;height:120px;object-fit:cover}.portal-media-batch-preview .empty{display:grid;place-items:center;color:#8298ac}
  .portal-media-batch-meta{padding:8px}.portal-media-batch-meta .btn{margin-top:6px}
  .media-command{border-color:#4aa3d8!important;background:linear-gradient(#f0fbff,#dff4ff)!important;color:#075b8e!important}.media-command:hover{box-shadow:0 5px 14px rgba(26,132,194,.2)!important}
  .outpatient-record-command{border-color:#8a63d2!important;background:linear-gradient(#f7f2ff,#ede2ff)!important;color:#4c2a8f!important}.outpatient-record-command:hover{box-shadow:0 5px 14px rgba(107,63,194,.22)!important}
  .media54-fixed-page{box-sizing:border-box;width:794px!important;min-width:794px;min-height:1123px!important;padding:10px!important;font-family:Arial,sans-serif;color:#172535;overflow:hidden;position:relative}
  .media57-brand-watermark{position:absolute;inset:42px 0 0;z-index:20;pointer-events:none;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:space-around;gap:95px;transform:rotate(-31deg) scale(1.08);transform-origin:center;opacity:.10}
  .media57-brand-watermark span{font-size:39px;font-weight:900;color:#0d61b7;white-space:nowrap;letter-spacing:1px;text-shadow:0 0 1px #fff}
  .media57-back-btn{border-color:#64a7d6!important;background:linear-gradient(#f4fbff,#e1f2ff)!important;color:#075b8e!important;font-weight:800!important}
  @media print{.media57-brand-watermark{opacity:.075!important}.media57-brand-watermark span{color:#0d61b7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
  .media54-topbar{height:42px;display:grid;grid-template-columns:140px 1fr 250px;align-items:center;border-bottom:2px solid #1e9aca;background:#fff;margin:-10px -10px 10px}.media54-topbar strong{height:42px;display:grid;place-items:center;background:#31a8d0;color:#fff;font-size:15px}.media54-topbar span{text-align:left;padding-left:16px;font-size:12px;font-weight:700}.media54-topbar b{text-align:right;padding-right:16px;font-size:15px;color:#0c2f58}
  .media54-report-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:125px;margin-bottom:10px}.media54-patient-block,.media54-adjust-block{border-bottom:1px solid #d6e2ec;padding:8px 12px;display:flex;flex-direction:column;gap:4px;font-size:11px}.media54-patient-block b,.media54-adjust-block b{font-size:13px;border-bottom:1px solid #d9e5ef;padding-bottom:6px;margin-bottom:3px}.media54-adjust-block em{margin-top:auto;color:#e12c2c;font-style:normal;font-size:12px}
  .media54-clinical-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:290px 260px 260px;gap:4px}.media54-fixed-photo{position:relative;border:1px solid #c7d5e2;background:#f8fbfd;overflow:hidden;min-width:0}.media54-fixed-photo img{width:100%;height:100%;object-fit:cover;background:#111}.media54-fixed-photo.ceph img,.media54-fixed-photo.panorama img{object-fit:contain}.media54-fixed-photo.is-empty{display:grid;place-items:center;background:#f7fafc}.media54-fixed-placeholder{text-align:center;color:#a0afbd;font-size:14px}.media54-fixed-placeholder small{display:block;margin-top:6px;font-size:10px}.media54-fixed-caption{position:absolute;left:0;right:0;bottom:0;padding:3px 5px;background:rgba(255,255,255,.9);color:#e12626;text-align:center;font-size:10px;font-weight:700}.media54-record-center{border:1px solid #c7d5e2;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px;font-size:11px;color:#6a7885}.media54-record-center b{color:#263c4e;margin:8px 0 24px;font-size:12px}.media54-record-center strong{font-size:13px;color:#263c4e;margin-top:4px}.media54-extra-title{margin-top:10px;border-bottom:2px solid #31a8d0;color:#087dab;font-weight:800;padding:5px}.media54-extra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:5px}.media54-extra-grid .media54-fixed-photo{height:170px}.media54-extra-grid.report-extra-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 8px}.media54-extra-grid.report-extra-grid .media54-fixed-photo{height:300px}
  .media54-xray-date{color:#e12626;font-size:13px;margin:12px 18px}.media54-xray-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:430px 540px;gap:5px}.media54-xray-grid .panorama{grid-column:1/-1}.media54-xray-grid .media54-fixed-caption{font-size:12px;padding:6px}.media54-xray-grid .media54-fixed-photo img{background:#101010}
  @media(max-width:820px){.media53-body{grid-template-columns:1fr;grid-template-rows:150px minmax(0,1fr)}.media53-history{border-right:0;border-bottom:1px solid #c8d4e0}.media53-history-list{display:flex;gap:6px;overflow:auto}.media53-history-row{min-width:190px}.media53-toolbar{grid-template-columns:1fr 1fr}.media53-toolbar .media53-note{grid-column:1/-1}.media53-grid{grid-template-columns:repeat(3,minmax(140px,1fr));min-width:650px}.media53-report-grid{grid-template-columns:1fr 1fr}.media53-patient-info{grid-template-columns:1fr}}

html,body{width:100%;max-width:100%;min-width:0;min-height:100%;overflow-x:hidden}
  *,*::before,*::after{box-sizing:border-box}
  #login-screen,#app-screen,.public-login-shell,.legacy-app-window{width:100%;max-width:none;min-width:0}
  #login-screen{min-height:100dvh!important;padding:0!important;background:#eef4f8!important}
  .public-login-shell{min-height:100dvh;background:#eef5fa!important}
  .public-login-header{width:100%;min-height:112px;padding:14px clamp(14px,3vw,48px);gap:18px;background:linear-gradient(135deg,#fff 0%,#f1f7fb 58%,#e7f3fb 100%);box-shadow:0 4px 18px rgba(13,61,99,.10)}
  .public-brand-block{flex:1}.public-brand-badge{overflow:hidden}.public-brand-badge img{width:100%;height:100%;object-fit:contain;background:#fff}
  .public-header-actions{flex-wrap:wrap;justify-content:flex-end}
  .public-main-tabs{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0 clamp(10px,3vw,46px);border-bottom:1px solid #8fb5cf;background:#e8f2f9;box-shadow:0 2px 8px rgba(14,68,106,.08);position:relative;z-index:10}
  .public-main-tab{min-height:46px;padding:8px 12px;border:0;border-right:1px solid #b9d0e0;background:transparent;color:#315d7b;font-size:13px;font-weight:900;cursor:pointer;transition:.16s ease}
  .public-main-tab:first-child{border-left:1px solid #b9d0e0}.public-main-tab:hover{background:#f7fcff;color:#075b9d}.public-main-tab.active{color:#fff;background:linear-gradient(180deg,#1988ca,#0b68ae);box-shadow:inset 0 -3px #f7c948}
  .public-tab-stage.public-auth-workspace{display:block!important;min-height:calc(100dvh - 159px)!important;padding:0!important;overflow:auto!important;background:linear-gradient(180deg,#f6fbfe,#e7f2f8)!important}
  .public-tab-stage.public-auth-workspace::before{display:none!important}
  .public-tab-panel{width:100%;min-width:0}.public-tab-panel[hidden]{display:none!important}
  .public-intro-panel{padding:0 0 34px}.public-showcase-loading{padding:80px 20px;text-align:center;color:#567189;font-weight:800}
  .showcase-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:28px;align-items:center;min-height:380px;padding:clamp(34px,6vw,82px) clamp(18px,6vw,92px);overflow:hidden;background:linear-gradient(115deg,#063d72 0%,#087eb5 56%,#19a7c7 100%);color:#fff}
  .showcase-hero::before,.showcase-hero::after{content:'';position:absolute;z-index:-1;border-radius:50%;background:rgba(255,255,255,.10)}.showcase-hero::before{width:420px;height:420px;right:-90px;top:-210px}.showcase-hero::after{width:260px;height:260px;left:42%;bottom:-190px}
  .showcase-eyebrow{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid rgba(255,255,255,.38);border-radius:99px;background:rgba(255,255,255,.10);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
  .showcase-hero h1{max-width:820px;margin:16px 0 12px;font-size:clamp(28px,4.2vw,58px);line-height:1.08;letter-spacing:-.035em}.showcase-hero p{max-width:800px;margin:0;color:#e1f4ff;font-size:clamp(14px,1.4vw,18px);line-height:1.65}
  .showcase-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.showcase-cta{min-height:42px;padding:9px 17px;border:1px solid rgba(255,255,255,.55);border-radius:7px;background:#fff;color:#07558d;font-weight:900;cursor:pointer}.showcase-cta.secondary{background:rgba(255,255,255,.09);color:#fff}.showcase-cta:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,26,56,.22)}
  .showcase-hero-visual{min-height:260px;display:grid;place-items:center;position:relative}.showcase-hero-logo{width:min(300px,72vw);height:220px;object-fit:contain;padding:18px;border:1px solid rgba(255,255,255,.28);border-radius:28px;background:rgba(255,255,255,.94);box-shadow:0 24px 60px rgba(0,35,70,.28)}
  .showcase-smile-mark{width:240px;height:240px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.42);border-radius:42% 58% 54% 46%/54% 46% 54% 46%;font-size:92px;transform:rotate(-7deg);background:rgba(255,255,255,.08);box-shadow:inset 0 0 60px rgba(255,255,255,.08)}
  .showcase-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;background:#bed5e4;border-bottom:1px solid #bed5e4}.showcase-kpi{padding:17px clamp(10px,2vw,28px);background:#fff}.showcase-kpi b{display:block;color:#075b99;font-size:clamp(21px,3vw,32px)}.showcase-kpi span{display:block;margin-top:4px;color:#60778a;font-size:11px;font-weight:800;text-transform:uppercase}
  .showcase-section{padding:clamp(30px,5vw,64px) clamp(16px,4.5vw,72px)}.showcase-section.alt{background:#fff}.showcase-section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:20px}.showcase-section-head h2{margin:0;color:#103f65;font-size:clamp(23px,3vw,36px)}.showcase-section-head p{max-width:680px;margin:5px 0 0;color:#667c8e;line-height:1.55}.showcase-section-tag{color:#0c7bb6;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
  .showcase-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.showcase-service-card{min-width:0;padding:18px;border:1px solid #bfd1df;border-radius:14px;background:linear-gradient(145deg,#fff,#f2f8fc);box-shadow:0 6px 18px rgba(14,69,105,.07);transition:.16s ease}.showcase-service-card:hover{transform:translateY(-4px);border-color:#4aa4d4;box-shadow:0 14px 30px rgba(14,69,105,.14)}.showcase-service-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#dff3ff;color:#0879b5;font-size:24px}.showcase-service-card h3{margin:12px 0 7px;color:#104a74}.showcase-service-card ul{margin:10px 0 0;padding-left:18px;color:#5a7081;line-height:1.65;font-size:12px}.showcase-service-count{color:#1180b9;font-size:11px;font-weight:900}
  .showcase-equipment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.showcase-equipment-card{display:flex;align-items:center;gap:13px;min-height:92px;padding:15px;border:1px solid #b8d4e4;border-radius:12px;background:#f6fbfe}.showcase-equipment-icon{flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#0b6fb2,#27a8cc);color:#fff;font-size:23px}.showcase-equipment-card b{color:#174e73}.showcase-equipment-card span{display:block;margin-top:4px;color:#6a7d8d;font-size:11px;line-height:1.45}
  .showcase-gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:190px;gap:10px}.showcase-gallery-card{position:relative;grid-column:span 4;overflow:hidden;border-radius:12px;background:#dceaf3}.showcase-gallery-card:nth-child(1),.showcase-gallery-card:nth-child(5){grid-column:span 6}.showcase-gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.showcase-gallery-card:hover img{transform:scale(1.04)}.showcase-gallery-caption{position:absolute;inset:auto 0 0;padding:30px 12px 11px;background:linear-gradient(transparent,rgba(0,25,45,.84));color:#fff}.showcase-gallery-caption b{display:block}.showcase-gallery-caption span{font-size:10px;color:#cdeaff}
  .showcase-case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.showcase-case-card{overflow:hidden;border:1px solid #c0d1dd;border-radius:14px;background:#fff;box-shadow:0 7px 20px rgba(15,60,90,.08)}.showcase-case-card img,.showcase-case-placeholder{width:100%;height:210px;object-fit:cover;background:linear-gradient(135deg,#d9eef9,#eef8fc)}.showcase-case-placeholder{display:grid;place-items:center;color:#207aa8;font-size:50px}.showcase-case-body{padding:15px}.showcase-case-body h3{margin:0 0 6px;color:#104a74}.showcase-case-body p{margin:0;color:#607587;line-height:1.55;font-size:12px}
  .showcase-empty{grid-column:1/-1;min-height:150px;display:grid;place-items:center;padding:24px;border:1px dashed #9fc3d9;border-radius:12px;background:#f5fbfe;color:#5e7688;text-align:center;line-height:1.6}.showcase-contact{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:26px clamp(16px,4.5vw,72px);background:#073e6a;color:#fff}.showcase-contact b{display:block;font-size:20px}.showcase-contact span{display:block;margin-top:5px;color:#cce9f8}.showcase-contact-links{display:flex;gap:8px;flex-wrap:wrap}.showcase-contact-links a{padding:9px 12px;border:1px solid rgba(255,255,255,.42);border-radius:6px;color:#fff;text-decoration:none;font-weight:800}
  .public-tab-stage .staff-login-panel{width:100%;max-width:none;min-height:calc(100dvh - 159px);display:grid;place-items:center;padding:32px 14px;background:linear-gradient(135deg,#0a6ca3,#28a6c5)}.public-tab-stage .staff-login-panel .public-staff-card{width:min(440px,100%)!important;max-width:440px}
  .public-portal-panel{min-height:calc(100dvh - 159px);display:grid;place-items:start center;padding:38px 14px 54px;background:linear-gradient(135deg,#e7f4fb,#f8fcff)}
  .warranty-lookup-shell{min-height:calc(100dvh - 159px);display:grid;place-items:center;padding:38px 14px 54px;background:linear-gradient(135deg,#eef7f0,#f8fcff)}
  .warranty-lookup-card{width:100%;max-width:560px;background:#fff;border:1px solid #d8e6de;border-radius:18px;box-shadow:0 24px 70px rgba(23,80,38,.1);padding:28px 26px;box-sizing:border-box}
  .warranty-lookup-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}
  .warranty-lookup-icon{font-size:34px;line-height:1}
  .warranty-lookup-head b{display:block;font-size:16px;color:#0e3d24;letter-spacing:.02em}
  .warranty-lookup-head span{display:block;font-size:12.5px;color:#5b7266;margin-top:2px}
  .warranty-lookup-form{display:flex;gap:8px}
  .warranty-lookup-input{flex:1 1 auto;min-width:0;height:44px;border:1px solid #c7d8cd;border-radius:9px;padding:0 14px;font-size:14px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
  .warranty-lookup-input:focus{outline:none;border-color:#2f8a56;box-shadow:0 0 0 3px rgba(47,138,86,.14)}
  .warranty-lookup-btn{height:44px;padding:0 22px;border-radius:9px;flex:0 0 auto}
  .warranty-lookup-loading{margin-top:18px;color:#5b7266;font-size:13px}
  .warranty-result-card{margin-top:20px;border-radius:12px;padding:18px 20px;border:1px solid #cfe7d7;background:#f3fbf5}
  .warranty-result-card.expired{border-color:#f0d5ae;background:#fff8ef}
  .warranty-result-card.notfound{border-color:#f1c3c3;background:#fef4f4}
  .warranty-result-status{font-weight:900;font-size:14px;letter-spacing:.02em;margin-bottom:12px;color:#116b3c}
  .warranty-result-card.expired .warranty-result-status{color:#96650f}
  .warranty-result-card.notfound .warranty-result-status{color:#a12727}
  .warranty-result-message{font-size:13px;color:#7a3a3a}
  .warranty-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 18px}
  .warranty-result-grid div{display:flex;flex-direction:column;gap:2px}
  .warranty-result-grid span{font-size:11px;color:#6c8177;text-transform:uppercase;letter-spacing:.03em}
  .warranty-result-grid b{font-size:14px;color:#17301f}
  @media(max-width:480px){.warranty-lookup-form{flex-direction:column}.warranty-lookup-btn{width:100%}.warranty-result-grid{grid-template-columns:1fr}}
  .public-tab-stage .portal-login-card{position:relative!important;z-index:2!important;left:auto!important;top:auto!important;transform:none!important;width:min(520px,100%)!important;max-height:none!important;margin:0!important;overflow:visible!important;box-shadow:0 18px 46px rgba(8,52,83,.20)!important}.public-tab-stage .portal-login-backdrop{display:none!important}.public-tab-stage .portal-dialog-close{display:none}
  #app-screen{min-height:100dvh;overflow-x:hidden}.legacy-app-window{min-height:100dvh}.traditional-ribbon-header,.ribbon-tab-row,.traditional-ribbon-header .ribbon-actions,#page-root,.page{width:100%;max-width:none;min-width:0}.traditional-ribbon-header .ribbon-actions,.traditional-ribbon-header .nav-wrap,.table-wrap{overscroll-behavior-inline:contain}.page{box-sizing:border-box}.desktop-module,.card,.employee-manager-shell{max-width:100%;min-width:0}
  .clinic-profile-modal{width:min(1180px,97vw)!important;max-height:96dvh!important}.showcase-admin-section{margin:0 14px 14px;padding:12px;border:1px solid #aebfcd;background:#f7fafc}.showcase-admin-section h3{margin:0 0 4px;color:#0d4e84}.showcase-admin-grid{display:grid;grid-template-columns:160px minmax(0,1fr);gap:8px;align-items:center;margin-top:10px}.showcase-admin-grid textarea{min-height:76px}.showcase-admin-media{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.showcase-admin-box{min-width:0;border:1px solid #bdcad5;background:#fff;padding:10px}.showcase-admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.showcase-admin-list{display:grid;gap:7px;max-height:300px;overflow:auto}.showcase-admin-item{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px;border:1px solid #ccd6df;background:#f9fbfd}.showcase-admin-item img{width:78px;height:58px;object-fit:cover;background:#e8f1f6}.showcase-admin-item input,.showcase-admin-item textarea{box-sizing:border-box;width:100%;border:1px solid #a8b8c5;padding:5px}.showcase-admin-item textarea{min-height:48px;resize:vertical}.showcase-admin-remove{border:1px solid #e2a1a1;background:#fff1f1;color:#b51d1d;width:28px;height:28px;font-weight:900}.showcase-file-input{display:none}
  @media(max-width:900px){.public-login-header{min-height:auto;display:grid;grid-template-columns:1fr;padding:12px 14px}.public-header-actions{justify-content:flex-start}.showcase-hero{grid-template-columns:1fr;min-height:0}.showcase-hero-visual{min-height:190px}.showcase-kpis{grid-template-columns:repeat(2,1fr)}.showcase-gallery-card,.showcase-gallery-card:nth-child(1),.showcase-gallery-card:nth-child(5){grid-column:span 6}.showcase-contact{grid-template-columns:1fr}.showcase-admin-media{grid-template-columns:1fr}.clinic-profile-modal{width:min(1100px,98vw)!important}.traditional-ribbon-header .ribbon-actions{overflow-x:auto}.report-detail-modal{width:100vw;height:100dvh;max-height:none}}
  @media(max-width:620px){.public-brand-badge{width:46px;height:46px;flex-basis:46px;border-radius:12px}.public-brand-name{font-size:14px}.public-brand-welcome{font-size:10px}.public-header-btn{height:32px;padding:0 9px;font-size:10px}.public-header-btn:not(.portal):not(.contact){display:none}.public-language-switcher{width:132px;min-width:132px;height:32px}.public-main-tabs{padding:0}.public-main-tab{min-height:43px;padding:6px 4px;font-size:10px}.showcase-hero{padding:32px 16px;gap:18px}.showcase-hero h1{font-size:31px}.showcase-hero p{font-size:13px}.showcase-smile-mark{width:165px;height:165px;font-size:66px}.showcase-hero-logo{height:160px}.showcase-kpis{grid-template-columns:1fr 1fr}.showcase-kpi{padding:12px}.showcase-section{padding:30px 12px}.showcase-section-head{align-items:start;flex-direction:column}.showcase-service-grid,.showcase-equipment-grid,.showcase-case-grid{grid-template-columns:1fr}.showcase-gallery-grid{grid-auto-rows:160px}.showcase-gallery-card,.showcase-gallery-card:nth-child(1),.showcase-gallery-card:nth-child(5){grid-column:1/-1}.public-tab-stage .staff-login-panel,.public-portal-panel{min-height:calc(100dvh - 170px);padding:18px 9px}.public-tab-stage .login-grid .field{grid-template-columns:1fr}.showcase-admin-grid{grid-template-columns:1fr}.showcase-admin-item{grid-template-columns:62px minmax(0,1fr) auto}.showcase-admin-item img{width:62px;height:52px}.legacy-caption{height:24px}.ribbon-tab-row{align-items:stretch}.traditional-ribbon-header .nav button{font-size:8px;padding-left:9px;padding-right:9px}.page{padding:8px!important}.stats{grid-template-columns:1fr 1fr}.toolbar{max-width:100%;overflow-x:auto;flex-wrap:nowrap}.toolbar>*{flex:0 0 auto}.form-grid,.form-grid-3,.grid-2,.grid-3{grid-template-columns:1fr!important}}

:root{--public-navy:#172650;--public-blue:#2c66b8;--public-ink:#24324b;--public-soft:#f3f6fb;--public-gold:#c7a15a}
  .public-login-shell{background:#fff!important;color:var(--public-ink)}
  .public-login-header{min-height:96px!important;padding:13px clamp(16px,4.4vw,74px)!important;background:#fff!important;border-bottom:1px solid #e2e7f0!important;box-shadow:0 4px 24px rgba(20,37,77,.06)!important}
  .public-brand-block{max-width:760px}.public-brand-badge{width:60px;height:60px;flex:0 0 60px;border:1px solid #e2e7f0;border-radius:16px!important;background:#fff!important;box-shadow:0 7px 22px rgba(31,53,96,.12)!important}.public-brand-name{color:var(--public-navy)!important;font-size:18px!important;letter-spacing:.01em}.public-brand-welcome{margin-top:3px;color:#4c5870!important;font-weight:700}.public-brand-wish{color:#768198!important}
  .public-header-actions{gap:10px}.public-header-btn,.public-language-switcher{border-color:#d9e0eb!important;border-radius:999px!important;background:#fff!important;color:var(--public-navy)!important;box-shadow:none!important}.public-header-btn:hover{border-color:#91a8cc!important;background:#f4f7fc!important}.public-header-btn.contact{background:var(--public-navy)!important;border-color:var(--public-navy)!important;color:#fff!important}
  .public-main-tabs{position:sticky;top:0;z-index:40;padding:0 clamp(14px,8vw,150px)!important;border:0!important;border-bottom:1px solid #e1e6ef!important;background:rgba(255,255,255,.96)!important;box-shadow:0 7px 18px rgba(28,42,75,.06)!important;backdrop-filter:blur(14px)}
  .public-main-tab{min-height:54px!important;border:0!important;background:transparent!important;color:#566178!important;font-size:13px!important;letter-spacing:.01em;transition:.2s ease!important}.public-main-tab:hover{color:var(--public-blue)!important}.public-main-tab.active{background:#fff!important;color:var(--public-navy)!important;box-shadow:inset 0 -3px var(--public-gold)!important}
  .public-tab-stage.public-auth-workspace{min-height:calc(100dvh - 150px)!important;background:#fff!important;overflow:visible!important}.public-intro-panel{padding:0!important;background:#fff}
  .showcase-hero{min-height:520px!important;grid-template-columns:minmax(0,1fr) minmax(390px,.85fr)!important;gap:clamp(28px,5vw,80px)!important;padding:clamp(55px,8vw,105px) clamp(22px,8vw,145px) clamp(80px,9vw,125px)!important;background:radial-gradient(circle at 82% 18%,rgba(202,216,244,.72),transparent 32%),linear-gradient(135deg,#fff 0%,#f9faff 54%,#edf2fb 100%)!important;color:var(--public-ink)!important}
  .showcase-hero::before{width:240px!important;height:240px!important;right:8%!important;top:10%!important;background:transparent!important;border:1px solid rgba(34,68,128,.12)!important}.showcase-hero::after{width:410px!important;height:410px!important;left:auto!important;right:-240px!important;bottom:-230px!important;background:rgba(42,91,165,.06)!important}
  .showcase-hero-copy{position:relative;z-index:2}.showcase-eyebrow{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--public-blue)!important;font-size:12px!important;letter-spacing:.16em!important}.showcase-hero h1{max-width:760px!important;margin:19px 0 16px!important;color:var(--public-navy)!important;font-family:Georgia,'Arial',serif;font-size:clamp(38px,4.7vw,68px)!important;font-weight:700;line-height:1.08!important;letter-spacing:-.035em!important}.showcase-hero p{max-width:700px!important;color:#667086!important;font-size:clamp(14px,1.35vw,18px)!important;line-height:1.8!important}
  .showcase-trust-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;color:#43516b;font-size:12px;font-weight:800}.showcase-trust-row span::first-letter{color:var(--public-gold)}
  .showcase-hero-actions{margin-top:28px!important}.showcase-cta{min-height:48px!important;padding:11px 22px!important;border:1px solid var(--public-navy)!important;border-radius:999px!important;background:var(--public-navy)!important;color:#fff!important;box-shadow:0 10px 25px rgba(23,38,80,.18)!important}.showcase-cta.secondary{background:#fff!important;color:var(--public-navy)!important;box-shadow:none!important}.showcase-cta:hover{transform:translateY(-3px)!important}
  .showcase-hero-visual{min-height:350px!important}.showcase-hero-photo{position:relative;width:min(520px,100%);height:390px;margin:0;overflow:hidden;border-radius:48% 48% 12px 12px;box-shadow:0 26px 70px rgba(25,43,83,.22)}.showcase-hero-photo::after{content:'';position:absolute;inset:0;border:1px solid rgba(255,255,255,.55);border-radius:inherit;pointer-events:none}.showcase-hero-photo img{width:100%;height:100%;object-fit:cover}.showcase-hero-photo figcaption{position:absolute;inset:auto 18px 18px;padding:14px 16px;border-radius:10px;background:rgba(255,255,255,.92);color:var(--public-navy);backdrop-filter:blur(10px)}.showcase-hero-photo figcaption b,.showcase-hero-photo figcaption span{display:block}.showcase-hero-photo figcaption span{margin-top:3px;color:#6e7990;font-size:11px}.showcase-hero-brand{width:min(410px,100%);min-height:320px;display:grid;place-items:center;align-content:center;gap:20px;padding:38px;border:1px solid #dde4f0;border-radius:48% 48% 18px 18px;background:#fff;box-shadow:0 25px 65px rgba(30,49,88,.16)}.showcase-hero-brand span{color:#6a7488;text-align:center}.showcase-hero-logo{width:260px!important;height:190px!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}.showcase-smile-mark{border-color:#b9c8e1!important;background:#fff!important;color:var(--public-navy);box-shadow:0 22px 60px rgba(30,49,88,.14)!important}
  .showcase-quick-actions{position:relative;z-index:5;width:min(1180px,calc(100% - 32px));display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:-52px auto 0;padding:18px 12px;border:1px solid #e2e7ef;border-radius:18px;background:#fff;box-shadow:0 18px 48px rgba(24,40,78,.12)}.showcase-quick-item{min-width:0;display:grid;place-items:center;align-content:start;gap:7px;padding:8px 10px;text-align:center;border-right:1px solid #edf0f5}.showcase-quick-item:last-child{border-right:0}.showcase-quick-item>span{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:#edf3fc;color:var(--public-blue);font-size:27px;transition:.2s}.showcase-quick-item:hover>span{transform:translateY(-4px);background:var(--public-navy);color:#fff}.showcase-quick-item b{max-width:100%;color:var(--public-navy);font-size:12px;overflow-wrap:anywhere}.showcase-quick-item small{color:#8a94a7}
  .showcase-kpis{width:min(1040px,calc(100% - 32px));grid-template-columns:repeat(4,1fr)!important;gap:0!important;margin:34px auto 0!important;border:0!important;background:#fff!important}.showcase-kpi{position:relative;padding:14px 24px!important;text-align:center;border-right:1px solid #e2e7ef}.showcase-kpi:last-child{border-right:0}.showcase-kpi b{color:var(--public-navy)!important;font-family:Georgia,serif;font-size:34px!important}.showcase-kpi span{color:#778198!important;letter-spacing:.08em}
  .showcase-section{max-width:1320px;margin:0 auto;padding:clamp(58px,7vw,100px) clamp(18px,5vw,68px)!important;background:#fff!important}.showcase-section.technology{max-width:none;padding-left:clamp(18px,8vw,145px)!important;padding-right:clamp(18px,8vw,145px)!important;background:linear-gradient(135deg,#f3f6fc,#edf2fa)!important}.showcase-section.gallery-section{max-width:none;padding-left:clamp(18px,8vw,145px)!important;padding-right:clamp(18px,8vw,145px)!important;background:#f8f9fc!important}.showcase-section-head{margin-bottom:34px!important}.showcase-section-head.centered{justify-content:center!important;text-align:center}.showcase-section-head.centered>div{max-width:760px}.showcase-section-head h2{margin-top:8px!important;color:var(--public-navy)!important;font-family:Georgia,'Arial',serif;font-size:clamp(29px,3.4vw,46px)!important;font-weight:700}.showcase-section-head p{margin:10px auto 0!important;color:#748095!important;line-height:1.75!important}.showcase-section-tag{color:var(--public-blue)!important;letter-spacing:.15em!important}
  .showcase-service-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;gap:20px!important}.showcase-service-card{position:relative;min-height:330px;padding:26px!important;border:1px solid #e0e5ee!important;border-radius:14px!important;background:#fff!important;box-shadow:0 12px 35px rgba(28,43,78,.07)!important}.showcase-service-card:hover{border-color:#a9bad6!important;box-shadow:0 22px 45px rgba(28,43,78,.14)!important}.showcase-service-icon{width:64px!important;height:64px!important;border-radius:50%!important;background:#edf3fc!important;color:var(--public-navy)!important;font-size:29px!important}.showcase-service-card h3{margin-top:18px!important;color:var(--public-navy)!important;font-family:Georgia,serif;font-size:21px}.showcase-service-count{color:var(--public-blue)!important}.showcase-service-card ul{color:#6c778c!important}.showcase-service-link{position:absolute;left:26px;right:26px;bottom:22px;display:flex;justify-content:space-between;padding-top:13px;border-top:1px solid #e8ebf1;color:var(--public-navy);font-size:11px;font-weight:900}.showcase-service-link span{color:var(--public-gold);font-size:17px}
  .showcase-equipment-grid{max-width:1180px;margin:0 auto;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;gap:16px!important}.showcase-equipment-card{min-height:116px!important;padding:20px!important;border:1px solid rgba(70,94,141,.16)!important;border-radius:14px!important;background:rgba(255,255,255,.86)!important}.showcase-equipment-icon{width:58px!important;height:58px!important;flex-basis:58px!important;background:var(--public-navy)!important}.showcase-equipment-card b{color:var(--public-navy)!important}.showcase-equipment-card span{color:#778198!important;line-height:1.6!important}
  .showcase-case-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;gap:24px!important}.showcase-case-card{border:0!important;border-radius:16px!important;box-shadow:0 14px 40px rgba(25,42,79,.12)!important}.showcase-case-card img,.showcase-case-placeholder{height:270px!important}.showcase-case-body{padding:23px!important}.showcase-case-body h3{margin-top:9px!important;color:var(--public-navy)!important;font-family:Georgia,serif;font-size:21px}.showcase-case-body p{color:#758095!important;line-height:1.7!important}
  .showcase-gallery-grid{max-width:1180px;margin:0 auto;grid-auto-rows:230px!important;gap:14px!important}.showcase-gallery-card{border-radius:14px!important;box-shadow:0 10px 28px rgba(25,42,79,.10)}.showcase-gallery-caption{padding:45px 18px 16px!important;background:linear-gradient(transparent,rgba(17,32,68,.9))!important}.showcase-gallery-caption span{color:#dce5f5!important}
  .showcase-branch-section{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(360px,1.3fr);gap:70px;padding:clamp(60px,8vw,110px) clamp(22px,9vw,160px);background:var(--public-navy);color:#fff}.showcase-branch-section h2{margin:10px 0;color:#fff;font-family:Georgia,serif;font-size:clamp(30px,3.5vw,48px)}.showcase-branch-section>div>p{color:#b9c5dc;line-height:1.7}.showcase-branch-list{display:grid;gap:12px}.showcase-branch-card{display:flex;gap:16px;align-items:center;padding:18px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.06)}.showcase-branch-card>span{font-family:Georgia,serif;font-size:28px;color:#d7bd86}.showcase-branch-card b,.showcase-branch-card p{display:block;margin:0}.showcase-branch-card p{margin-top:4px;color:#c2ccde;line-height:1.5}
  .showcase-contact{padding:28px clamp(22px,8vw,145px)!important;background:#101c3d!important}.showcase-contact span{color:#bdc8dc!important}.showcase-contact-links a,.showcase-contact-links button{padding:10px 15px;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:transparent;color:#fff;text-decoration:none;font:inherit;font-weight:900;cursor:pointer}.showcase-contact-links a:hover,.showcase-contact-links button:hover{background:#fff;color:var(--public-navy)}
  .showcase-empty{border-color:#ccd5e4!important;background:#f8faff!important;color:#788399!important}
  .public-tab-stage .staff-login-panel{background:radial-gradient(circle at 80% 15%,#dbe5f6,transparent 35%),linear-gradient(135deg,#f9faff,#eef2f8)!important}.public-tab-stage .staff-login-panel .public-staff-card{border-radius:14px!important;overflow:hidden;box-shadow:0 24px 70px rgba(23,38,80,.18)!important}
  .public-portal-panel{padding:48px 14px 70px!important;background:linear-gradient(135deg,#f8faff,#eef3fa)!important}.public-portal-panel.portal-authenticated{display:block!important;padding:0!important;background:#f4f6fa!important}.public-tab-stage .portal-login-card{border:1px solid #d8dfeb!important;border-radius:16px!important;overflow:hidden!important;box-shadow:0 24px 70px rgba(23,38,80,.17)!important}.portal-card-head{background:var(--public-navy)!important;color:#fff!important}.portal-card-head span{color:#cdd7e9!important}.portal-lock{background:#fff!important;color:var(--public-navy)!important}.portal-primary-btn,.portal-method.active{background:var(--public-navy)!important;border-color:var(--public-navy)!important}.portal-input{border-radius:7px!important;border-color:#c7d0df!important}.portal-input:focus{border-color:#5679b5!important;box-shadow:0 0 0 3px rgba(54,101,174,.12)!important}
  .public-portal-panel .customer-portal-shell{width:100%;min-height:calc(100dvh - 150px)!important;background:#f4f6fa!important}.public-portal-panel .customer-portal-topbar{position:sticky;top:54px;z-index:20;padding:16px clamp(16px,4vw,58px)!important;border-bottom:1px solid #dce2eb!important;box-shadow:0 8px 22px rgba(26,42,77,.07)!important}.public-portal-panel .customer-portal-topbar b{color:var(--public-navy)!important;font-size:19px!important}.public-portal-panel .customer-portal-content{max-width:1500px!important;padding:24px clamp(12px,3vw,46px) 52px!important;gap:18px!important}.public-portal-panel .portal-summary-card,.public-portal-panel .portal-section-card{border-color:#dce2eb!important;border-radius:12px!important;box-shadow:0 8px 25px rgba(27,43,78,.06)!important}.public-portal-panel .portal-section-title{color:var(--public-navy)!important}
  .public-brand-badge{color:var(--public-blue)!important;font-size:18px!important;font-weight:900}.showcase-hero h1,.showcase-section-head h2,.showcase-service-card h3,.showcase-case-body h3,.showcase-branch-section h2,.showcase-branch-card>span{font-family:'Segoe UI',Arial,sans-serif!important}.showcase-hero h1,.showcase-section-head h2{font-weight:850!important}
  @media(max-width:1000px){.showcase-hero{grid-template-columns:1fr!important;padding-bottom:90px!important}.showcase-hero-copy{text-align:center}.showcase-hero p{margin-left:auto!important;margin-right:auto!important}.showcase-trust-row,.showcase-hero-actions{justify-content:center}.showcase-hero-visual{min-height:280px!important}.showcase-quick-actions{grid-template-columns:repeat(3,1fr)}.showcase-quick-item:nth-child(3n){border-right:0}.showcase-quick-item:nth-child(-n+3){border-bottom:1px solid #edf0f5}.showcase-branch-section{grid-template-columns:1fr;gap:35px}.showcase-kpis{grid-template-columns:repeat(2,1fr)!important}.showcase-kpi:nth-child(2){border-right:0}.showcase-kpi:nth-child(-n+2){border-bottom:1px solid #e2e7ef}}
  @media(max-width:620px){.public-login-header{padding:11px 12px!important}.public-brand-badge{width:48px;height:48px;flex-basis:48px}.public-brand-name{font-size:14px!important}.public-brand-wish{display:none}.public-header-actions{width:100%;justify-content:space-between!important}.public-language-switcher{width:146px!important}.public-main-tab{min-height:48px!important;font-size:9px!important}.showcase-hero{padding:42px 16px 90px!important}.showcase-hero h1{font-size:38px!important}.showcase-hero-photo{height:300px;border-radius:42% 42% 12px 12px}.showcase-trust-row{gap:9px;font-size:10px}.showcase-hero-actions{display:grid!important}.showcase-cta{width:100%}.showcase-quick-actions{width:calc(100% - 20px);grid-template-columns:repeat(2,1fr);padding:12px 8px}.showcase-quick-item{border-bottom:1px solid #edf0f5!important}.showcase-quick-item:nth-child(2n){border-right:0}.showcase-quick-item:nth-last-child(-n+2){border-bottom:0!important}.showcase-kpis{width:calc(100% - 20px)}.showcase-section{padding:52px 12px!important}.showcase-section.technology,.showcase-section.gallery-section{padding-left:12px!important;padding-right:12px!important}.showcase-section-head h2{font-size:31px!important}.showcase-service-grid,.showcase-equipment-grid,.showcase-case-grid{grid-template-columns:1fr!important}.showcase-service-card{min-height:315px}.showcase-gallery-grid{grid-auto-rows:190px!important}.showcase-branch-section{padding:55px 16px}.showcase-contact{grid-template-columns:1fr!important}.public-portal-panel{padding:22px 8px 40px!important}.public-portal-panel .customer-portal-topbar{top:48px!important}.public-portal-panel .customer-portal-content{padding:12px 7px 36px!important}.customer-portal-actions{width:100%;display:flex}.customer-portal-actions .btn{flex:1}}

/* Khôi phục đầy đủ bố cục Portal V67 trong tab Portal V70.2. */
  .public-portal-panel .customer-portal-content{grid-template-columns:minmax(0,1fr)}.public-portal-panel .portal-section-card,.public-portal-panel .portal-finance-strip,.public-portal-panel .portal-table-wrap,.public-portal-panel .portal-treatment-list{min-width:0;max-width:100%}
  .showcase-site-nav{min-height:48px;display:flex;align-items:center;justify-content:center;gap:2px;padding:0 clamp(12px,7vw,130px);border-bottom:1px solid #e0e5ed;background:#fff;box-shadow:0 4px 14px rgba(20,37,77,.05);overflow-x:auto;scrollbar-width:thin}.showcase-site-nav button,.showcase-site-nav a{flex:0 0 auto;min-height:47px;display:inline-flex;align-items:center;padding:0 15px;border:0;border-bottom:3px solid transparent;background:transparent;color:#243653;text-decoration:none;font:800 11px 'Segoe UI',Arial,sans-serif;text-transform:uppercase;letter-spacing:.035em;cursor:pointer;transition:.18s}.showcase-site-nav button:hover{color:#2c66b8;border-bottom-color:#c7a15a}.showcase-site-nav a{min-height:34px;margin-left:auto;padding:0 17px;border:1px solid #172650;border-radius:999px;background:#172650;color:#fff}.showcase-site-nav a:hover{background:#2c66b8;border-color:#2c66b8}
  .public-portal-panel .portal-appointments-section{border-color:#78add9!important;box-shadow:0 5px 16px rgba(13,97,183,.13)!important}
  .public-portal-panel .portal-treatment-section{border-color:#6ab9a0!important;box-shadow:0 5px 16px rgba(20,126,91,.13)!important}
  .public-portal-panel .portal-appointments-section>.portal-section-title,
  .public-portal-panel .portal-treatment-section>.portal-section-title{position:relative;padding:10px 14px 10px 42px!important;border-bottom:0!important;border-radius:11px 11px 0 0;color:#fff!important;letter-spacing:.025em;text-shadow:0 1px 1px rgba(0,0,0,.18)}
  .public-portal-panel .portal-appointments-section>.portal-section-title{background:linear-gradient(110deg,#075da5,#198bd3 62%,#51afe2)!important}
  .public-portal-panel .portal-treatment-section>.portal-section-title{background:linear-gradient(110deg,#08745a,#19a176 62%,#55c7a0)!important}
  .public-portal-panel .portal-appointments-section>.portal-section-title::before,
  .public-portal-panel .portal-treatment-section>.portal-section-title::before{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.16);font:900 12px Arial,sans-serif}
  .public-portal-panel .portal-appointments-section>.portal-section-title::before{content:'⌚'}
  .public-portal-panel .portal-treatment-section>.portal-section-title::before{content:'✚'}
  .public-portal-panel .portal-appointments-five{height:216px;max-height:216px;overflow-x:auto;overflow-y:auto;scrollbar-color:#70a9d2 #e9f2f8;scrollbar-width:thin;background:#f8fbfe}
  .public-portal-panel .portal-appointments-five::-webkit-scrollbar{width:10px;height:10px}.public-portal-panel .portal-appointments-five::-webkit-scrollbar-track{background:#e9f2f8}.public-portal-panel .portal-appointments-five::-webkit-scrollbar-thumb{border:2px solid #e9f2f8;border-radius:8px;background:#70a9d2}
  .public-portal-panel .portal-appointments-five .portal-table{table-layout:fixed;min-width:980px}.public-portal-panel .portal-appointments-five .portal-table thead tr{height:36px}.public-portal-panel .portal-appointments-five .portal-table thead th{height:36px;padding:7px 9px;background:linear-gradient(#e8f4fd,#cfe7f7);border-bottom:2px solid #66a8d4;color:#164b73;font-size:11px;text-transform:uppercase;letter-spacing:.02em;box-shadow:0 1px 0 #fff inset}
  .public-portal-panel .portal-appointments-five .portal-table tbody tr{height:36px;transition:background-color .16s ease,box-shadow .16s ease,color .16s ease}.public-portal-panel .portal-appointments-five .portal-table tbody td{height:36px;padding:6px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent}
  .public-portal-panel .portal-appointments-five .portal-table tbody tr:nth-child(even){background:#f2f7fb}.public-portal-panel .portal-appointments-five .portal-table tbody tr:nth-child(odd){background:#fff}
  .public-portal-panel .portal-appointments-five .portal-table tbody tr.is-upcoming{background:#fff9e8}.public-portal-panel .portal-appointments-five .portal-table tbody tr.is-arrived{background:#edf9f2}.public-portal-panel .portal-appointments-five .portal-table tbody tr.is-missed{background:#fff1f1}.public-portal-panel .portal-appointments-five .portal-table tbody tr.is-canceled{background:#f1f3f5;color:#65717b}
  .public-portal-panel .portal-appointments-five .portal-table tbody tr:hover{position:relative;z-index:1;background:#dff0ff;box-shadow:inset 5px 0 #1684c2,0 2px 7px rgba(15,95,150,.18);color:#0b3e66}.public-portal-panel .portal-appointments-five .portal-table tbody tr.is-arrived:hover{background:#d9f4e5;box-shadow:inset 5px 0 #15905f,0 2px 7px rgba(21,144,95,.18)}.public-portal-panel .portal-appointments-five .portal-table tbody tr.is-missed:hover{background:#ffe0e0;box-shadow:inset 5px 0 #d43b3b,0 2px 7px rgba(190,45,45,.18)}
  .portal-status-badge{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 9px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:900;line-height:1;white-space:nowrap}.portal-status-badge::before{content:'';width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.74)}.portal-status-badge.upcoming{border-color:#e6b64d;background:#fff1bf;color:#9b5c00}.portal-status-badge.arrived{border-color:#58bb86;background:#dff6e9;color:#087543}.portal-status-badge.missed{border-color:#e18484;background:#ffe1e1;color:#b51f2b}.portal-status-badge.canceled{border-color:#aeb8c1;background:#e9edf0;color:#5c6872}
  .public-portal-panel .portal-treatment-section .portal-treatment-list{padding:12px;background:linear-gradient(#f2fbf7,#f8fbfd)}.public-portal-panel .portal-treatment-section .portal-treatment-card{border:1px solid #a7d2c2;border-left:5px solid #15946c;background:#fff;box-shadow:0 2px 7px rgba(20,90,70,.07);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.public-portal-panel .portal-treatment-section .portal-treatment-card:nth-child(even){border-left-color:#2b86c5}.public-portal-panel .portal-treatment-section .portal-treatment-card:hover{transform:translateY(-2px);border-color:#39a77e;box-shadow:0 8px 18px rgba(17,114,82,.17)}.public-portal-panel .portal-treatment-section .portal-treatment-head{background:linear-gradient(100deg,#e2f6ed,#edf7ff);border-bottom:1px solid #9bcdbb}.public-portal-panel .portal-treatment-section .portal-treatment-head b{color:#066d51}.public-portal-panel .portal-treatment-section .portal-treatment-items tbody tr{transition:background-color .14s ease,box-shadow .14s ease}.public-portal-panel .portal-treatment-section .portal-treatment-items tbody tr:nth-child(even){background:#f7fafc}.public-portal-panel .portal-treatment-section .portal-treatment-items tbody tr:hover{background:#dff5ec;box-shadow:inset 4px 0 #19a176}.public-portal-panel .portal-treatment-section .portal-treatment-items th{background:#e5f2ee;color:#245d4d;font-weight:900}
  .portal-installment-badge{display:inline-block;margin:4px 0 0 8px;padding:3px 7px;border:1px solid #8fc2e3;border-radius:11px;background:#edf8ff;color:#0b5f96;font-size:10px;font-weight:800}
  .portal-finance-history .portal-table-wrap{max-height:280px}.portal-finance-log-payment td{background:#fbfffc}.portal-finance-log-refund td{background:#fff6f6}.portal-amount-plus{color:#15803d;font-weight:900}.portal-amount-minus{color:#c62828;font-weight:900}
  .portal-finance-strip{display:grid;grid-template-columns:1.05fr 1.05fr 1.05fr 1.35fr 1.5fr;border:1px solid #aabccb;border-radius:12px;background:#fff;box-shadow:0 8px 25px rgba(27,43,78,.06);overflow:hidden}.portal-finance-box{min-height:92px;padding:12px 14px;border-right:1px solid #c5d2dc;display:flex;flex-direction:column;justify-content:center}.portal-finance-box:last-child{border-right:0}.portal-finance-box span{font-size:11px;color:#64748b;font-weight:800;text-transform:uppercase}.portal-finance-box b{margin-top:6px;font-size:19px;color:#0d61b7}.portal-finance-box.debt b{color:#d62828}.portal-finance-box.next{background:linear-gradient(135deg,#fff9e9,#fff)}.portal-finance-box.next b{font-size:15px;color:#a15a00}.portal-finance-box small{margin-top:4px;color:#667788;line-height:1.35}.portal-finance-box.history b{font-size:14px;color:#155e75}
  @media(max-width:1050px){.portal-finance-strip{grid-template-columns:repeat(2,1fr)}.portal-finance-box{border-bottom:1px solid #c5d2dc}.portal-finance-box:last-child{grid-column:1/-1}.public-portal-panel .portal-treatment-head{align-items:flex-start;flex-direction:column}}
  @media(max-width:620px){.showcase-site-nav{justify-content:flex-start;padding:0 9px}.showcase-site-nav button{padding:0 11px;font-size:9px}.showcase-site-nav a{margin-left:8px;font-size:9px}.portal-finance-strip{grid-template-columns:1fr}.portal-finance-box:last-child{grid-column:auto}.public-portal-panel .portal-appointments-five{height:216px;max-height:216px}.public-portal-panel .portal-treatment-list{overflow-x:auto}.public-portal-panel .portal-treatment-card{min-width:760px}.public-portal-panel .portal-email-register{grid-template-columns:1fr}.public-portal-panel .portal-email-row{grid-template-columns:1fr}}

  /* ===== V84: báo cáo compact + danh sách bệnh nhân khám kiểu Excel truyền thống ===== */
  .report-page-compact { max-width:none; padding:6px 8px 12px; }
  .report-page-compact .page-head { margin-bottom:5px; }
  .report-page-compact .page-head h2 { font-size:20px; line-height:1.15; }
  .report-page-compact .page-head p { font-size:11px; line-height:1.25; }
  .report-filter-card { padding:5px 6px; border-radius:2px; box-shadow:none; }
  .report-filter-card .toolbar {
    display:grid; grid-template-columns:118px 118px minmax(150px,1.2fr) minmax(130px,.9fr)
      minmax(145px,1fr) minmax(170px,1.05fr) minmax(170px,1.05fr) auto auto;
    align-items:end; gap:4px; margin:0;
  }
  .report-filter-card .toolbar .field {
    min-width:0; gap:2px; padding:3px 4px; border-width:1px; border-left-width:2px;
    border-radius:2px; background:#fbfcfd;
  }
  .report-filter-card .field.report-kind,
  .report-filter-card .field.report-employee { min-width:0; }
  .report-filter-card .field label { font-size:9.5px; line-height:1.1; }
  .report-filter-card .field input,
  .report-filter-card .field select {
    height:26px; min-height:26px; padding:2px 5px; border-width:1px; border-radius:2px;
    font-size:11px;
  }
  .report-filter-card .toolbar > .btn {
    min-height:30px; height:30px; padding:4px 8px; border-radius:3px; font-size:10.5px;
    white-space:nowrap;
  }
  .report-page-compact > .stats,
  .employee-sales-report-page > .stats {
    grid-template-columns:repeat(6,minmax(120px,1fr)); gap:6px;
    margin-top:7px !important; margin-bottom:8px;
  }
  .employee-sales-report-page > .stats { grid-template-columns:repeat(5,minmax(135px,1fr)); }
  .report-page-compact > .stats .stat,
  .employee-sales-report-page > .stats .stat {
    min-height:62px; padding:8px 10px; border-radius:7px; box-shadow:0 3px 10px rgba(20,70,110,.06);
  }
  .report-page-compact > .stats .stat::after,
  .employee-sales-report-page > .stats .stat::after { width:48px; height:48px; right:-17px; top:-17px; }
  .report-page-compact > .stats .label,
  .employee-sales-report-page > .stats .label { font-size:9.5px; }
  .report-page-compact > .stats .value,
  .employee-sales-report-page > .stats .value { margin-top:4px; font-size:18px; line-height:1.1; }
  .report-page-compact .report-section-card { margin-top:7px !important; padding:7px; border-radius:3px; }
  .report-page-compact .report-panel-title { min-height:25px; margin-bottom:4px; }
  .report-page-compact .report-panel-title .card-title { font-size:12px; }
  .report-panel-actions { display:flex; align-items:center; gap:4px; }
  .report-page-compact .report-detail-btn { padding:3px 7px; font-size:10px; }
  .report-page-compact .report-section-card table th,
  .report-page-compact .report-section-card table td { height:25px; padding:3px 5px; font-size:10.5px; }

  .compact-report-toolbar {
    gap:4px; padding:4px 5px; margin-bottom:6px; border-radius:2px; box-shadow:none;
  }
  .compact-report-toolbar .field {
    min-width:118px; gap:2px; padding:3px 4px; border-width:1px; border-left-width:2px;
    border-radius:2px; background:#fbfcfd;
  }
  .compact-report-toolbar .field:nth-child(3),
  .compact-report-toolbar .field:nth-child(4),
  .compact-report-toolbar .field:nth-child(5) { min-width:165px; flex:1 1 165px; }
  .compact-report-toolbar .field label { font-size:9.5px; line-height:1.1; }
  .compact-report-toolbar .field input,
  .compact-report-toolbar .field select {
    height:26px; min-height:26px; padding:2px 5px; border-radius:2px; font-size:11px;
  }
  .compact-report-toolbar > .btn {
    min-height:30px; height:30px; padding:4px 8px; border-radius:3px; font-size:10.5px;
    white-space:nowrap;
  }
  .employee-sales-report-page .excel-section { margin-top:8px !important; padding:8px !important; border-radius:3px; }
  .employee-sales-report-page .excel-section .card-title { font-size:12px; margin-bottom:6px; }
  .employee-sales-report-page .excel-section table th,
  .employee-sales-report-page .excel-section table td { height:25px; padding:3px 5px; font-size:10.5px; }

  .patient-visit-report-meta {
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    min-height:24px; padding:3px 6px; border:1px solid #b8c5d0; border-bottom:0;
    background:#edf1f4; color:#405369; font-size:10px;
  }
  .patient-visit-report-wrap {
    max-height:calc(100dvh - 390px); min-height:270px; overflow:auto;
    border:1px solid #8798a8; background:#fff; scrollbar-gutter:stable;
  }
  .patient-visit-report-table {
    width:100%; min-width:1050px; border-collapse:separate; border-spacing:0;
    table-layout:fixed; font-variant-numeric:tabular-nums;
  }
  .patient-visit-report-table th,
  .patient-visit-report-table td {
    height:25px; padding:3px 5px; border-right:1px solid #c5cdd5;
    border-bottom:1px solid #cbd2d9; color:#1f2d3b; font-size:10.5px;
    line-height:1.15; vertical-align:middle;
  }
  .patient-visit-report-table th {
    position:sticky; top:0; z-index:5; height:27px; background:linear-gradient(#f4f6f8,#dfe5ea);
    color:#1d3044; font-size:10px; font-weight:800; text-align:center;
    text-transform:none; letter-spacing:0;
  }
  .patient-visit-report-table tbody tr:nth-child(even) td:not([rowspan]) { background:#f8fafb; }
  .patient-visit-report-table tbody tr:hover td { background:#e8f4ff !important; }
  .patient-visit-report-table td[rowspan] { background:#f5f7f9; }
  .patient-visit-report-table td.day-cell {
    background:#edf4fb; color:#164b73; font-weight:900; text-align:center;
    border-right:2px solid #95afc4;
  }
  .patient-visit-report-table td.patient-cell { font-weight:800; }
  .patient-visit-report-table td.patient-cell small {
    display:block; margin-top:2px; color:#718096; font-size:8.5px; font-weight:600;
  }
  .patient-visit-report-table td.compact-text {
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .patient-visit-report-table .staff-line { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .patient-visit-report-table .staff-role { color:#0d61b7; font-size:8.5px; font-weight:900; }
  .patient-visit-report-loading { padding:42px 12px !important; text-align:center; color:#64748b; }

  .procedure-group-report-wrap {
    max-height:calc(100dvh - 390px); min-height:270px; overflow:auto;
    border:1px solid #8798a8; background:#fff; scrollbar-gutter:stable;
  }
  .procedure-group-report-table {
    width:100%; min-width:1120px; border-collapse:separate; border-spacing:0;
    table-layout:fixed; font-variant-numeric:tabular-nums;
  }
  .procedure-group-report-table .col-index { width:45px; }
  .procedure-group-report-table .col-patient { width:190px; }
  .procedure-group-report-table .col-phone { width:112px; }
  .procedure-group-report-table .col-service { width:235px; }
  .procedure-group-report-table .col-date { width:135px; }
  .procedure-group-report-table .col-money,
  .procedure-group-report-table .col-discount,
  .procedure-group-report-table .col-total { width:120px; }
  .procedure-group-report-table .col-quantity { width:105px; }
  .procedure-group-report-table th,
  .procedure-group-report-table td {
    height:27px; padding:4px 6px; border-right:1px solid #9cadbd;
    border-bottom:1px solid #aab8c5; vertical-align:middle; font-size:10.5px;
  }
  .procedure-group-report-table thead th {
    position:sticky; top:0; z-index:5; background:#244f9e; color:#fff;
    text-align:center; font-size:10px; font-weight:900;
  }
  .procedure-group-report-table tbody tr:nth-child(even) td { background:#f7f9fb; }
  .procedure-group-report-table tbody tr:hover td { background:#fff4c7; }
  .procedure-group-report-table tfoot th {
    position:sticky; bottom:0; z-index:4; padding:6px; border:1px solid #86a4bf;
    background:#d8e9fb; color:#173d68; text-align:right; font-weight:900;
  }
  .procedure-group-patient small,.report-patient-link small {
    display:block; margin-top:2px; color:#687a8d; font-size:8.5px; font-weight:700;
  }
  .report-patient-link {
    display:block; color:#075fb2; text-decoration:underline dotted; cursor:pointer;
    overflow-wrap:anywhere;
  }
  .report-patient-link:focus-visible { outline:2px solid #1c82d4; outline-offset:2px; }
  .procedure-group-service { font-weight:700; color:#243b53; overflow-wrap:anywhere; }
  .procedure-group-total { color:#d47400; font-weight:900; }
  .procedure-group-report-hint { padding-top:5px; }
  .procedure-group-print-header { display:none; }

  @media (max-width:1280px) {
    .report-filter-card .toolbar { grid-template-columns:repeat(4,minmax(130px,1fr)); }
    .report-page-compact > .stats,
    .employee-sales-report-page > .stats { grid-template-columns:repeat(3,minmax(140px,1fr)); }
  }
  @media (max-width:760px) {
    .report-page-compact { padding-inline:4px; }
    .report-filter-card .toolbar { grid-template-columns:repeat(2,minmax(130px,1fr)); }
    .compact-report-toolbar { flex-wrap:nowrap; overflow-x:auto; }
    .compact-report-toolbar > * { flex:0 0 auto; }
    .patient-visit-report-wrap { max-height:440px; min-height:300px; }
    .procedure-group-report-wrap { max-height:440px; min-height:300px; }
  }
  @media (max-width:480px) {
    .report-filter-card .toolbar { grid-template-columns:1fr; }
    .report-page-compact > .stats,
    .employee-sales-report-page > .stats { grid-template-columns:repeat(2,minmax(125px,1fr)); }
  }

  @media print {
    .report-page-compact.report-type-services { page:procedureGroupReport; }
    .report-page-compact.report-type-services > .page-head,
    .report-page-compact.report-type-services > .report-filter-card,
    .report-page-compact.report-type-services > .stats,
    .report-page-compact.report-type-services .report-section-card:not([data-report-section="services"]) { display:none !important; }
    .procedure-group-report-section { break-before:auto; break-inside:auto; }
    .report-page-compact.report-type-services .procedure-group-report-section {
      display:block !important; margin:0 !important; padding:0 !important;
      border:0; background:#fff; box-shadow:none;
    }
    .procedure-group-report-section .report-panel-title { display:none; }
    .procedure-group-print-header { display:block; margin:0 0 5mm; color:#111; }
    .procedure-group-print-header .v63-report-clinic {
      grid-template-columns:25mm 1fr; min-height:23mm; padding:0 2mm 2.5mm;
      border:0; border-bottom:1px solid #222;
    }
    .procedure-group-print-header .v63-report-clinic.no-logo { grid-template-columns:1fr; }
    .procedure-group-print-header .v63-report-clinic-logo { width:23mm; height:20mm; }
    .procedure-group-print-header .v63-report-clinic-info { text-align:left; line-height:1.25; }
    .procedure-group-print-header .v63-report-clinic-info strong { font-size:9pt; }
    .procedure-group-print-header .v63-report-clinic-info b { color:#123f73; font-size:12pt; }
    .procedure-group-print-header .v63-report-clinic-info span { color:#222; font-size:7.5pt; }
    .procedure-group-print-title { text-align:center; }
    .procedure-group-print-title h1 { margin:5mm 0 3mm; color:#198238; font:700 15pt "Times New Roman",serif; }
    .procedure-group-print-title p { margin:1.5mm 0; font:10pt "Times New Roman",serif; }
    .procedure-group-report-wrap { max-height:none; min-height:0; overflow:visible; border-color:#555; }
    .procedure-group-report-table { width:100%; min-width:0; border-collapse:collapse; table-layout:fixed; font-family:"Times New Roman",serif; }
    .procedure-group-report-table .col-index { width:4%; }
    .procedure-group-report-table .col-patient { width:17%; }
    .procedure-group-report-table .col-phone { width:10%; }
    .procedure-group-report-table .col-service { width:20%; }
    .procedure-group-report-table .col-date { width:11%; }
    .procedure-group-report-table .col-money { width:10%; }
    .procedure-group-report-table .col-quantity { width:7%; }
    .procedure-group-report-table .col-discount { width:10%; }
    .procedure-group-report-table .col-total { width:11%; }
    .procedure-group-report-table thead { display:table-header-group; }
    .procedure-group-report-table tfoot { display:table-row-group; }
    .procedure-group-report-table tr { break-inside:avoid; page-break-inside:avoid; }
    .procedure-group-report-table thead th,
    .procedure-group-report-table tfoot th {
      position:static; background:#fff !important; color:#111 !important;
      -webkit-print-color-adjust:exact; print-color-adjust:exact;
    }
    .procedure-group-report-table th,
    .procedure-group-report-table td { height:auto; padding:2.2mm 1.2mm; border:1px solid #333; font-size:7.5pt; line-height:1.15; }
    .procedure-group-report-table thead th { background:#f3f3f3 !important; color:#111 !important; text-align:center; }
    .procedure-group-report-table tbody tr:nth-child(even) td { background:#fff; }
    .procedure-group-report-table .report-patient-link { color:#111; text-decoration:none; }
    .procedure-group-report-table .procedure-group-total { color:#c97900; }
    .procedure-group-report-hint { display:none; }
  }

  @page procedureGroupReport { size:A4 portrait; margin:10mm 8mm 12mm; }

:root{--v82-cobalt:#123ea6;--v82-cobalt-dark:#08236f;--v82-cobalt-bright:#245bd5;--v82-sky:#eef4ff;--v82-ink:#14234a;--v82-muted:#66728d;--v82-gold:#d6a63c;--v82-font:'Be Vietnam Pro','Segoe UI',Arial,sans-serif}
.public-intro-panel{background:#fff!important}.public-showcase-loading{min-height:70vh;background:#fff}.v82-site{min-height:100vh;color:var(--v82-ink);background:#fff;font-family:var(--v82-font)}.v82-site *{box-sizing:border-box}
.v82-nav{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;min-height:68px;padding:8px clamp(16px,5vw,72px);background:rgba(8,35,111,.97);color:#fff;box-shadow:0 7px 24px rgba(3,18,68,.2)}.v82-brand{display:flex;align-items:center;gap:10px;min-width:0}.v82-brand img{width:48px;height:48px;object-fit:contain;border-radius:10px;background:#fff}.v82-brand-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.5);border-radius:50%;font-weight:900}.v82-brand b{display:block;max-width:280px;font-size:13px}.v82-brand small{display:block;color:#bcd0ff;margin-top:2px}.v82-nav-links{display:flex;justify-content:center;gap:4px}.v82-nav-links button{padding:10px 12px;border:0;background:transparent;color:#dce7ff;font-size:11px;font-weight:800;cursor:pointer}.v82-nav-links button:hover{color:#fff;background:rgba(255,255,255,.1)}.v82-hotline{padding:10px 15px;border-radius:999px;background:#fff;color:var(--v82-cobalt-dark);font-weight:900;text-decoration:none;white-space:nowrap}
.v82-hero{position:relative;width:100%;aspect-ratio:2.8/1;overflow:hidden;background:linear-gradient(110deg,var(--v82-cobalt-dark),var(--v82-cobalt))}.v82-hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}.v82-hero-slide.active{opacity:1}.v82-hero-slide img{width:100%;height:100%;object-fit:cover;display:block}.v82-hero-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#cfe0ff;font-family:var(--v82-font);font-weight:700;background:radial-gradient(circle at 78% 30%,#3f72e2 0,transparent 32%),linear-gradient(130deg,#071d61,#164dbd)}.v82-slide-dots{position:absolute;z-index:4;left:50%;bottom:16px;display:flex;gap:8px;transform:translateX(-50%)}.v82-slide-dot{width:9px;height:9px;padding:0;border:1.5px solid #fff;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer}.v82-slide-dot.active{background:#fff}.v82-hero-arrow{position:absolute;top:50%;z-index:4;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:0;background:rgba(6,20,60,.4);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center}.v82-hero-arrow.prev{left:14px}.v82-hero-arrow.next{right:14px}.v82-hero-arrow:hover{background:rgba(6,20,60,.65)}
@media(max-width:680px){.v82-hero{aspect-ratio:4/3.1}.v82-hero-arrow{width:30px;height:30px;font-size:14px}}
.v82-section{padding:clamp(40px,6vw,76px) max(18px,calc((100% - 1240px)/2));background:#fff}.v82-section.tint{background:var(--v82-sky)}.v82-heading{text-align:center;margin:0 auto 32px;max-width:820px}.v82-heading span{display:inline-block;padding:5px 15px;border-radius:999px;background:var(--v82-sky);color:var(--v82-cobalt);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.v82-section.tint .v82-heading span{background:#fff}.v82-heading h2{margin:14px 0 0;color:var(--v82-cobalt-dark);font-family:var(--v82-font);font-weight:800;letter-spacing:-.01em;font-size:clamp(23px,2.6vw,34px)}.v82-heading h2::after{content:'';display:block;width:54px;height:4px;margin:14px auto 0;border-radius:99px;background:linear-gradient(90deg,var(--v82-cobalt),var(--v82-cobalt-bright))}.v82-heading p{margin:14px 0 0;color:var(--v82-muted);line-height:1.7;font-size:14.5px}
.v82-service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.v82-service-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #dce4f3;border-radius:12px;background:#fff;box-shadow:0 6px 18px rgba(20,55,125,.07);cursor:pointer;transition:.2s}.v82-service-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(20,55,125,.15)}.v82-card-image{position:relative;height:150px;overflow:hidden;background:linear-gradient(135deg,#cddcff,#eef3ff)}.v82-card-image img,.v82-card-slides img{width:100%;height:100%;object-fit:cover;transition:.25s}.v82-service-card:hover .v82-card-image img{transform:scale(1.04)}.v82-image-placeholder{width:100%;height:100%;display:grid;place-items:center;color:var(--v82-cobalt);font-size:40px}.v82-card-badge{position:absolute;left:9px;top:9px;z-index:2;padding:4px 9px;border-radius:99px;background:var(--v82-cobalt);color:#fff;font-size:9px;font-weight:900}.v82-service-card h3{min-height:auto;margin:0;padding:12px 12px 4px;color:var(--v82-cobalt-dark);font-family:var(--v82-font);font-weight:700;font-size:13.5px;text-align:left;line-height:1.4}.v82-card-summary{padding:0 12px 10px;color:var(--v82-muted);font-size:11.5px;line-height:1.55;flex:1}.v82-card-price{display:block;margin-top:6px;color:var(--v82-cobalt);font-weight:800;font-size:12px}.v82-card-actions{padding:0 12px 12px;display:flex;gap:7px;margin-top:auto}.v82-card-btn{flex:1;padding:8px 6px;border-radius:7px;border:1.5px solid var(--v82-cobalt);background:#fff;color:var(--v82-cobalt);font-family:var(--v82-font);font-size:11.5px;font-weight:700;cursor:pointer;text-align:center;transition:.15s}.v82-card-btn.solid{background:var(--v82-cobalt);color:#fff}.v82-card-btn:hover{background:var(--v82-cobalt);color:#fff}
.v82-card-slides{position:absolute;inset:0}.v82-card-slides img{position:absolute;inset:0;opacity:0}.v82-card-slides img.active{opacity:1}.v82-card-dots{position:absolute;left:0;right:0;bottom:7px;z-index:2;display:flex;justify-content:center;gap:4px}.v82-card-dots span{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.6)}.v82-card-dots span.active{background:#fff;width:12px;border-radius:4px}
.v82-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.v82-product-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid #cad6ed;border-radius:12px;background:#fff;box-shadow:0 6px 18px rgba(18,62,166,.07);cursor:pointer;transition:.2s}.v82-product-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(18,62,166,.14)}.v82-product-card .v82-card-image{height:170px}.v82-product-body{padding:14px;display:flex;flex-direction:column;flex:1}.v82-product-body h3{margin:0 0 6px;color:var(--v82-cobalt-dark);font-family:var(--v82-font);font-weight:700;font-size:14.5px}.v82-product-body p{margin:0;color:var(--v82-muted);font-size:12px;line-height:1.55;flex:1}
.v82-case-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.v82-case{display:grid;grid-template-columns:minmax(0,.9fr) minmax(260px,1.1fr);gap:16px;padding:18px;border:1px solid #dbe3f1;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(20,55,125,.07)}.v82-case-copy{display:flex;flex-direction:column}.v82-case-copy h3{margin:4px 0 7px;color:var(--v82-cobalt);font-family:var(--v82-font);font-weight:700}.v82-case-copy p{margin:0 0 8px;color:#4c5872;font-size:12px;line-height:1.6;white-space:pre-line}.v82-case-actions{display:flex;gap:7px;margin-top:auto;padding-top:8px}.v82-case-pair{display:grid;grid-template-rows:1fr 1fr;gap:10px}.v82-case-photo{position:relative;min-height:125px;overflow:hidden;border-radius:8px;background:#e6ecf8}.v82-case-photo img{width:100%;height:100%;object-fit:cover}.v82-case-photo b{position:absolute;inset:auto 0 0;padding:6px;background:rgba(3,14,45,.78);color:#fff;font-size:10px;text-align:center}
.v82-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.v82-gallery figure{position:relative;height:210px;margin:0;overflow:hidden;border-radius:10px;background:#e5ecf8}.v82-gallery img{width:100%;height:100%;object-fit:cover}.v82-gallery figcaption{position:absolute;inset:auto 0 0;padding:28px 11px 10px;background:linear-gradient(transparent,rgba(3,20,67,.85));color:#fff}.v82-gallery figcaption b,.v82-gallery figcaption span{display:block}.v82-gallery figcaption span{font-size:10px;color:#d7e4ff}
.v82-news-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.v82-news-main,.v82-news-row{border:1px solid #dce4f2;border-radius:10px;overflow:hidden;background:#fff;cursor:pointer;transition:.2s}.v82-news-main:hover,.v82-news-row:hover{box-shadow:0 10px 24px rgba(20,55,125,.1);transform:translateY(-2px)}.v82-news-main{padding:0}.v82-news-main .v82-card-image{height:280px}.v82-news-main-body{padding:16px}.v82-news-main h3{margin:0 0 8px;color:var(--v82-cobalt-dark);font-family:var(--v82-font);font-weight:800;font-size:19px;line-height:1.35}.v82-news-meta{color:var(--v82-cobalt);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.v82-news-main p,.v82-news-row p{color:var(--v82-muted);line-height:1.55;font-size:12.5px}.v82-news-side{display:grid;gap:12px}.v82-news-row{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:0}.v82-news-row .v82-card-image{height:95px;border-radius:10px 0 0 10px}.v82-news-row-body{padding:9px 12px 9px 0}.v82-news-row h3{margin:4px 0 5px;color:var(--v82-cobalt-dark);font-family:var(--v82-font);font-weight:700;font-size:13px;line-height:1.4}.v82-news-row p{margin:0;font-size:10.5px}
.v82-contact{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:36px max(18px,calc((100% - 1240px)/2));background:var(--v82-cobalt-dark);color:#fff}.v82-contact h2{margin:0 0 7px;font-family:Georgia,serif}.v82-contact p{margin:0;color:#c8d8ff}.v82-contact-actions{display:flex;gap:8px;flex-wrap:wrap}.v82-contact a,.v82-contact button{padding:10px 13px;border:1px solid #fff;background:transparent;color:#fff;text-decoration:none;font-weight:900;cursor:pointer}
.v122-product-video{width:100%!important;max-width:none!important;display:grid!important;grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);gap:clamp(28px,4vw,68px);align-items:center;padding:clamp(44px,6vw,86px) max(18px,calc((100% - 1380px)/2))!important;background:linear-gradient(135deg,#061a35 0%,#0b376b 54%,#0e6bc9 100%);color:#fff}.v122-video-copy h2{margin:0 0 14px;color:#fff;font:900 clamp(30px,3.3vw,52px)/1.08 Georgia,serif}.v122-video-copy p{margin:0;color:#d4e6fa;font-size:clamp(15px,1.25vw,19px);line-height:1.7;white-space:pre-line}.v122-video-frame{position:relative;padding:8px;border-radius:24px;background:linear-gradient(135deg,#74e2ff,#2b75e8 55%,#fff);box-shadow:0 28px 70px #00152e99}.v122-video-frame:before{content:"VIDEO GIỚI THIỆU";position:absolute;z-index:2;right:25px;top:23px;padding:7px 11px;border-radius:999px;background:#061a35cc;color:#fff;font-size:11px;font-weight:900;pointer-events:none}.v122-video-frame video{display:block;width:100%;aspect-ratio:16/9;border-radius:17px;background:#041326;object-fit:contain}.v123-video-empty{display:grid;place-items:center;min-height:260px;aspect-ratio:16/9;border-radius:17px;background:#041326;color:#d4e6fa;font-weight:800}.v124-video-nav{position:absolute;z-index:3;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;background:#061a35c7;color:#fff}.v124-video-nav span{margin-right:2px;font-size:10px;font-weight:800}.v124-video-nav button{width:9px;height:9px;padding:0;border:1px solid #fff;border-radius:50%;background:transparent;cursor:pointer}.v124-video-nav button.active{width:22px;border-radius:6px;background:#fff}
.v123-video-admin{display:grid;gap:16px}.v123-video-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border:1px solid #c8d7ec;background:#f5f9ff}.v123-video-admin-head h3{margin:0 0 6px;color:#0b4ea2}.v123-video-admin-head p{margin:0;color:#50647d}.v123-video-admin-grid{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(480px,1.25fr);gap:16px}.v123-video-admin-fields{display:grid;align-content:start;gap:8px;padding:16px;border:1px solid #b8c9df;background:#fff}.v123-video-admin-fields>label{font-weight:800;color:#24405f}.v123-video-admin-fields input,.v123-video-admin-fields textarea{width:100%;padding:9px;border:1px solid #91a8c6;background:#fff}.v123-video-admin-fields textarea{min-height:130px;resize:vertical}.v123-video-file-row,.v123-video-admin-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.v123-video-file-row input{flex:1;min-width:220px}.v123-video-admin-actions{justify-content:flex-end;margin-top:10px}.v123-video-admin-preview{display:grid;grid-template-columns:.75fr 1.25fr;gap:16px;align-items:center;padding:22px;border-radius:12px;background:linear-gradient(135deg,#061a35,#0e6bc9);color:#fff}.v123-video-preview-copy span{color:#7be2ff;font-size:10px;font-weight:900;letter-spacing:.7px}.v123-video-preview-copy h2{margin:12px 0 9px;color:#fff;font:900 26px/1.08 Georgia,serif}.v123-video-preview-copy p{margin:0;color:#d4e6fa;line-height:1.6;white-space:pre-line}.v123-video-preview-frame{padding:5px;border-radius:13px;background:#65d4ff}.v123-video-preview-frame video{display:block;width:100%;aspect-ratio:16/9;border-radius:9px;background:#041326;object-fit:contain}
.v124-video-head-actions{display:flex;gap:8px;flex-wrap:wrap}.v124-video-admin-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}.v124-video-list{display:grid;gap:8px;align-content:start;padding:10px;border:1px solid #b8c9df;background:#f7faff;max-height:650px;overflow:auto}.v124-video-list-row{display:grid;grid-template-columns:1fr auto;gap:7px;padding:9px;border:1px solid #c4d1e2;background:#fff}.v124-video-list-row.active{border:2px solid #1976d2;background:#eef7ff}.v124-video-select{grid-column:1/-1;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.v124-video-select b,.v124-video-select small{display:block}.v124-video-select b{color:#173d85}.v124-video-select small{margin-top:4px;color:#65778e}.v124-video-list-row label{font-size:11px;font-weight:800;color:#31506e}.v124-video-list-row>div{display:flex;gap:4px}.v124-video-list-row>div button{width:28px;height:25px;border:1px solid #9eb3ce;background:#fff;color:#173d85;cursor:pointer}.v124-video-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;color:#173d85}.v124-video-no-selection{grid-column:1/-1;display:grid;place-items:center;min-height:260px;border:1px dashed #9eb3ce;background:#f7faff;color:#65778e}.v123-video-preview-copy h2{margin:0 0 9px}
.v82-detail-modal{width:min(920px,96vw);max-height:92vh;overflow:auto;background:#fff;font-family:var(--v82-font)}.v82-detail-media{position:relative;height:min(420px,48vh);background:#e8eef9}.v82-detail-media img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}.v82-detail-thumbs{display:flex;gap:8px;flex-wrap:wrap;padding:12px 22px 0}.v82-detail-thumbs img{width:74px;height:56px;object-fit:cover;border-radius:6px;cursor:pointer;opacity:.6;border:2px solid transparent;transition:.15s}.v82-detail-thumbs img:hover{opacity:.9}.v82-detail-thumbs img.active{opacity:1;border-color:var(--v82-cobalt)}.v82-detail-body{padding:22px}.v82-detail-body h2{margin:0;color:var(--v82-cobalt-dark);font-weight:800}.v82-detail-body p{color:#526079;line-height:1.7;white-space:pre-line}.v82-detail-list{margin:14px 0;padding-left:20px;color:#354466;line-height:1.75}.v82-admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 14px}.v82-admin-tabs button{padding:7px 10px;border:1px solid #9fb1cc;background:#fff;color:#173d85;font-weight:800}.v82-editor-list{display:grid;gap:9px}.v82-editor-card{display:grid;grid-template-columns:112px 1fr auto;gap:10px;padding:10px;border:1px solid #bdc9dc;background:#fff}.v82-editor-preview{height:92px;display:grid;place-items:center;overflow:hidden;background:#edf2fa;color:#4566ae;text-align:center;font-size:11px}.v82-editor-preview img{width:100%;height:100%;object-fit:cover}.v82-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.v82-editor-fields .wide{grid-column:1/-1}.v82-editor-fields input,.v82-editor-fields textarea{width:100%;padding:6px;border:1px solid #aab8cb}.v82-editor-fields textarea{min-height:58px;resize:vertical}.v82-editor-actions{display:flex;flex-direction:column;gap:6px}.v82-editor-actions label,.v82-editor-actions button{padding:6px;border:1px solid #a8b8d0;background:#f5f8ff;color:#173d85;font-size:10px;font-weight:900;cursor:pointer;text-align:center}.v82-editor-actions button{color:#aa1d2b;background:#fff3f4;border-color:#e0adb3}
@media(max-width:1050px){.v82-service-grid{grid-template-columns:repeat(3,1fr)}.v82-product-grid,.v82-gallery{grid-template-columns:repeat(2,1fr)}.v82-case-grid{grid-template-columns:1fr}.v82-nav-links{display:none}}
@media(max-width:900px){.v122-product-video{grid-template-columns:1fr!important}.v122-video-copy{text-align:center}.v123-video-admin-grid,.v123-video-admin-preview,.v124-video-admin-layout{grid-template-columns:1fr}.v123-video-admin-head{flex-direction:column}.v124-video-list{max-height:260px}}
@media(max-width:680px){.v82-nav{grid-template-columns:1fr auto}.v82-brand small{display:none}.v82-hotline{font-size:10px;padding:8px}.v82-service-grid,.v82-product-grid,.v82-gallery{grid-template-columns:1fr 1fr;gap:10px}.v82-card-image,.v82-product-card .v82-card-image{height:135px}.v82-case{grid-template-columns:1fr}.v82-news-layout{grid-template-columns:1fr}.v82-news-row{grid-template-columns:110px 1fr}.v82-contact{grid-template-columns:1fr}.v82-editor-card{grid-template-columns:1fr}.v82-editor-preview{height:160px}.v82-editor-fields{grid-template-columns:1fr}.v82-editor-fields .wide{grid-column:auto}.v122-product-video{padding:38px 14px!important}.v122-video-frame{padding:4px;border-radius:15px}.v122-video-frame video{border-radius:11px}.v122-video-frame:before{right:13px;top:13px;font-size:9px}}
@media(max-width:420px){.v82-service-grid,.v82-product-grid,.v82-gallery{grid-template-columns:1fr}.v82-hero h1{font-size:35px}}
/* ===== V83: top info bar, gallery badges/lightbox, footer, intro-page CMS ===== */
.v82-topbar{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:6px clamp(16px,5vw,72px);background:#08245c;color:#cfe0ff;font-size:11px}
.v82-topbar span{opacity:.9}.v82-topbar a{color:#fff;font-weight:800;text-decoration:none}
.v82-topbar-search{flex:1;max-width:280px;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);border-radius:999px;padding:4px 10px}
.v82-topbar-search input{flex:1;background:transparent;border:0;outline:0;color:#fff;font-size:11px}
.v82-topbar-search input::placeholder{color:#9db4e6}
.v82-topbar-book{padding:6px 14px;border:0;border-radius:999px;background:#ffb020;color:#3a2200;font:900 12px Arial,sans-serif;text-decoration:none;white-space:nowrap;cursor:pointer}
@media(max-width:900px){.v82-topbar{display:none}}
.v82-gallery-badge{position:absolute;right:8px;bottom:8px;z-index:2;padding:4px 9px;border-radius:999px;background:rgba(6,20,60,.72);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;gap:4px}
.v82-gallery-badge::before{content:'🖼';font-size:11px}
.v82-thumb-row{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}
.v82-thumb-row img{width:78px;height:60px;object-fit:cover;border-radius:6px;cursor:pointer;border:1px solid #dde5f4;transition:.15s}
.v82-thumb-row img:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(20,55,125,.2)}
.v82-thumb-more{width:78px;height:60px;border-radius:6px;background:#eef3ff;color:#173d85;display:grid;place-items:center;font-weight:900;font-size:11px;cursor:pointer;border:1px solid #dde5f4}
.v82-case-more{margin-top:8px;padding:7px 12px;border:1px solid var(--v82-cobalt);background:#fff;color:var(--v82-cobalt);font-weight:800;font-size:11px;cursor:pointer;border-radius:6px}
.gt-lightbox-backdrop{position:fixed;inset:0;z-index:4000;background:rgba(4,12,34,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}
.gt-lightbox-stage{position:relative;width:min(920px,94vw);max-height:74vh;display:grid;place-items:center}
.gt-lightbox-stage img{max-width:100%;max-height:74vh;object-fit:contain;border-radius:6px;background:#0d1730}
.gt-lightbox-close{position:absolute;top:-42px;right:0;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.1);color:#fff;font-size:18px;cursor:pointer}
.gt-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:20px;cursor:pointer}
.gt-lightbox-nav.prev{left:-52px}.gt-lightbox-nav.next{right:-52px}
@media(max-width:640px){.gt-lightbox-nav.prev{left:4px}.gt-lightbox-nav.next{right:4px}.gt-lightbox-nav{background:rgba(0,0,0,.4)}}
.gt-lightbox-count{margin-top:14px;color:#cfe0ff;font-size:12px;font-weight:700}
.gt-lightbox-strip{display:flex;gap:8px;margin-top:12px;max-width:92vw;overflow-x:auto;padding-bottom:4px}
.gt-lightbox-strip img{width:64px;height:48px;object-fit:cover;border-radius:5px;cursor:pointer;opacity:.55;border:2px solid transparent}
.gt-lightbox-strip img.active{opacity:1;border-color:#5b9dff}
.v82-footer{background:#111827;color:#c7d0e0}
.v82-footer-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px clamp(16px,5vw,72px);border-bottom:1px solid rgba(255,255,255,.08)}
.v82-footer-brand{display:flex;align-items:center;gap:12px}
.v82-footer-brand img{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:10px}
.v82-footer-brand b{display:block;color:#fff;font-size:15px}
.v82-footer-tag{color:#8fb2ff;font-weight:800}
.v82-footer-social{display:flex;gap:10px}
.v82-footer-social a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;display:grid;place-items:center;text-decoration:none;font-size:14px}
.v82-footer-cols{display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:26px;padding:28px clamp(16px,5vw,72px)}
.v82-footer-cols h4{color:#fff;margin:0 0 12px;font-size:14px}
.v82-footer-cols p,.v82-footer-cols li,.v82-footer-cols div{color:#a9b4c8;font-size:12.5px;line-height:1.9}
.v82-footer-cols ul{list-style:none;margin:0;padding:0}
.v82-footer-cols a{color:#a9b4c8;text-decoration:none}
.v82-footer-cols a:hover{color:#fff}
.v82-footer-bottom{text-align:center;padding:14px;background:#0a0f1a;color:#7c879c;font-size:11px}
@media(max-width:900px){.v82-footer-cols{grid-template-columns:1fr}}
/* Intro-page CMS admin page */
.gt-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.gt-tabs button{padding:9px 14px;border:1px solid #b7c7db;background:#fff;color:#25507e;font-weight:800;font-size:12.5px;border-radius:8px 8px 0 0;cursor:pointer}
.gt-tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.gt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.gt-toolbar .small{color:#64748b}
.gt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.gt-card{border:1px solid #d3dee9;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 4px 14px rgba(20,55,125,.06)}
.gt-card-cover{position:relative;height:150px;background:#eef3fb;display:grid;place-items:center;color:#8aa2c8;cursor:pointer;overflow:hidden}
.gt-card-cover img{width:100%;height:100%;object-fit:contain;background:#eef3f8}
.gt-card-body{padding:10px 12px}
.gt-card-body input,.gt-card-body textarea,.gt-card-body select{width:100%;box-sizing:border-box;border:1px solid #b9c7d8;border-radius:6px;padding:7px 8px;margin-bottom:6px;font-size:12.5px}
.gt-card-body textarea{min-height:56px;resize:vertical}
.gt-card-body label.gt-label{display:block;font-size:10.5px;font-weight:800;color:#5b7291;margin:6px 0 2px;text-transform:uppercase}
.gt-subimg-row{display:flex;gap:8px;margin-bottom:6px}
.gt-subimg-slot{flex:1;height:64px;border:1px dashed #b9c7d8;border-radius:6px;background:#f7fafc;display:grid;place-items:center;cursor:pointer;overflow:hidden;position:relative;color:#8aa2c8;font-size:10px;text-align:center}
.gt-subimg-slot img{width:100%;height:100%;object-fit:contain;background:#eef3f8}
.gt-gallery-strip{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.gt-gallery-strip img{width:52px;height:42px;object-fit:cover;border-radius:5px;cursor:pointer;border:1px solid #cfd9e6}
.gt-gallery-add{width:52px;height:42px;border-radius:5px;border:1px dashed #97b0d4;background:#f2f6fc;color:#3060a8;font-size:16px;font-weight:900;display:grid;place-items:center;cursor:pointer}
.gt-card-actions{display:flex;gap:6px;padding:8px 12px;border-top:1px solid #e3e9f1;background:#f8fafc}
.gt-card-actions button{flex:1;padding:7px;border-radius:6px;border:1px solid #b9c7d8;background:#fff;color:#25507e;font-weight:800;font-size:11.5px;cursor:pointer}
.gt-card-actions button.danger{color:#b91c1c;border-color:#f0b8b8;background:#fff5f5}
.gt-empty{padding:34px;text-align:center;color:#64748b;border:1px dashed #c6d3e3;border-radius:10px}
/* ===== V86: website giới thiệu – thẻ nội dung, bài chi tiết và slider ===== */
.v82-nav{background:#fff!important;color:var(--v82-cobalt-dark)!important;border-bottom:1px solid #e3e9f4;box-shadow:0 7px 24px rgba(12,37,92,.10)!important}
.v82-brand b{color:var(--v82-cobalt-dark)}.v82-brand small{color:#61708f!important}.v82-brand-mark{border-color:#b9c8e7!important;color:var(--v82-cobalt)!important}
.v82-nav-links button{color:#263d73!important;font-size:13.2px!important}.v82-nav-links button:hover{color:var(--v82-cobalt)!important;background:#eef4ff!important}
.v82-hotline{background:var(--v82-cobalt-dark)!important;color:#fff!important}
.v82-section{padding-left:max(18px,calc((100% - 1320px)/2));padding-right:max(18px,calc((100% - 1320px)/2))}
.v82-service-grid{grid-template-columns:repeat(auto-fit,220px)!important;justify-content:center;gap:20px!important}
.v82-service-card{width:220px;border-radius:10px!important}
.v82-service-card .v82-card-image{width:220px;height:206px!important;flex:0 0 206px}
.v86-service-caption{width:220px;height:55px;display:grid;place-items:center;padding:6px 10px;background:linear-gradient(135deg,var(--v82-cobalt),var(--v82-cobalt-bright));border:1px solid var(--v82-cobalt);border-top-width:2px;color:#fff;text-align:center}
.v86-service-caption h3{max-width:100%;margin:0!important;padding:0!important;color:#fff!important;font-size:14px!important;line-height:1.35!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v82-service-card:hover .v86-service-caption{background:var(--v82-cobalt-dark)}
.v82-product-grid{grid-template-columns:repeat(auto-fit,300px)!important;justify-content:center;gap:18px!important}
.v82-product-card{width:300px}.v82-product-card .v82-card-image{width:300px;height:205px!important;flex:0 0 205px}
.v86-product-title{width:300px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 12px;text-align:center;border-bottom:1px solid #e1e7f2}
.v86-product-title h3{max-width:100%;margin:3px 0 0!important;font-size:15px!important;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v86-price-list{width:auto;margin:6px 10px 0;border:1px solid var(--v82-cobalt);border-radius:7px;overflow:hidden}.v86-price-row{width:100%;height:55px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 12px;border:0;border-bottom:1px solid rgba(255,255,255,.3);background:linear-gradient(135deg,var(--v82-cobalt),var(--v82-cobalt-bright));color:#fff;font-size:12px;cursor:pointer}.v86-price-row:last-child{border-bottom:0}.v86-price-row input{width:13px;height:13px;margin:0;accent-color:#fff}.v86-price-row span{overflow:hidden;text-overflow:ellipsis}.v86-price-row b{color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums}.v86-price-row:hover{background:var(--v82-cobalt-dark)}
.v82-product-card>.v82-card-actions{min-height:64px;align-items:center;padding:12px 14px}
.v82-case-grid{grid-template-columns:repeat(auto-fit,565px)!important;justify-content:center;gap:24px!important}
.v82-case{width:565px;height:435px;grid-template-columns:minmax(0,278px) 245px!important;gap:12px!important;padding:17px!important;overflow:hidden}
.v82-case-copy{min-width:0;overflow:hidden}.v82-case-copy p{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.v82-case-pair{width:245px;height:388px;grid-template-rows:184px 184px!important;gap:12px!important}.v82-case-photo{width:245px;height:184px;min-height:184px!important}
.v86-gallery-shell{position:relative;max-width:1664px;margin:0 auto}.v86-gallery-viewport{width:100%;overflow:hidden;scroll-behavior:smooth}.v82-gallery{display:flex!important;grid-template-columns:none!important;gap:16px!important;width:max-content}.v82-gallery figure{flex:0 0 400px;width:400px;height:270px!important}.v86-gallery-nav{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:50%;background:rgba(8,35,111,.78);color:#fff;font-size:22px;cursor:pointer}.v86-gallery-nav.prev{left:8px}.v86-gallery-nav.next{right:8px}.v86-gallery-nav:hover{background:var(--v82-cobalt)}
.v86-detail-modal{width:min(1190px,98vw)!important;max-height:96vh!important;border-radius:12px;overflow:auto}.v86-detail-content{padding:20px}.v86-detail-top{display:grid;grid-template-columns:minmax(0,814px) minmax(260px,1fr);gap:24px;align-items:start}.v86-detail-gallery{min-width:0}.v86-detail-main{width:100%;max-width:814px;aspect-ratio:814/467;display:grid;place-items:center;overflow:hidden;background:#edf2fb;border:1px solid #dae2ef}.v86-detail-main img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}.v86-detail-main .v82-image-placeholder{font-size:76px}.v86-detail-thumbs{width:100%;max-width:814px;display:grid;grid-template-columns:repeat(4,minmax(0,203px));gap:0;margin-top:8px}.v86-detail-thumb{position:relative;width:100%;aspect-ratio:203/117;padding:0;border:3px solid #fff;background:#e8eef8;cursor:pointer;overflow:hidden}.v86-detail-thumb img{width:100%;height:100%;object-fit:cover;opacity:.72}.v86-detail-thumb.active{border-color:var(--v82-cobalt)}.v86-detail-thumb.active img,.v86-detail-thumb:hover img{opacity:1}.v86-detail-thumb-more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(8,27,75,.58);color:#fff;font-size:28px;font-weight:900}.v86-detail-side{position:sticky;top:0;display:grid;gap:14px}.v86-detail-price{border:1px solid #dce3ef;border-radius:10px;overflow:hidden;background:#fff}.v86-detail-price h3{margin:0;padding:13px 15px;background:#f1f4f9;color:var(--v82-cobalt-dark);font-size:15px}.v86-detail-price .v86-price-row{height:64px}.v86-detail-actions{display:grid;gap:9px}.v86-detail-actions .v82-card-btn{min-height:44px}.v86-detail-article{max-width:814px;padding:24px 0 6px;color:#3e4d6a;line-height:1.75}.v86-detail-article h2{margin:0 0 12px;color:var(--v82-cobalt-dark)}.v86-detail-article p{white-space:pre-line}.v86-detail-article ul{padding-left:21px}
.gt-branch-price-list{display:grid;gap:6px;margin:6px 0}.gt-branch-price-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 28px;gap:5px}.gt-branch-price-row input{margin:0!important}.gt-branch-price-remove{border:1px solid #efb4b4;border-radius:5px;background:#fff3f3;color:#b91c1c;font-weight:900;cursor:pointer}.gt-branch-price-add{width:100%;padding:7px;border:1px dashed #86a4d1;border-radius:6px;background:#f4f7fd;color:#2452a1;font-weight:800;cursor:pointer}
.v92-price-page{display:none;background:#fff;min-height:calc(100vh - 120px);padding:30px clamp(14px,3vw,48px) 54px}.v82-site.v92-price-mode>.v82-hero,.v82-site.v92-price-mode>.v82-section,.v82-site.v92-price-mode>.v82-contact,.v82-site.v92-price-mode>.v82-footer{display:none!important}.v82-site.v92-price-mode>.v92-price-page{display:block}.v92-price-shell{width:min(1500px,100%);margin:0 auto}.v92-price-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;border-left:4px solid #1776e5;padding:2px 0 2px 12px;margin-bottom:20px}.v92-price-heading h1{margin:0;color:#102d68;font-size:clamp(22px,2.4vw,34px)}.v92-price-heading p{margin:5px 0 0;color:#60708b}.v92-price-back{border:1px solid #c4d5ea;background:#fff;color:#164a91;border-radius:8px;padding:9px 14px;font-weight:800;cursor:pointer}.v92-price-filter{display:grid;grid-template-columns:minmax(220px,520px) 1fr;gap:14px;align-items:end;margin:0 0 22px}.v92-price-filter label{font-size:12px;font-weight:900;color:#273a5e}.v92-price-filter select{display:block;width:100%;height:40px;margin-top:7px;border:1px solid #c7d2e1;border-radius:20px;background:#fff;padding:0 14px;color:#142c57;font-weight:700}.v92-price-filter-note{text-align:right;color:#697892;font-size:12px}.v92-price-groups{display:grid;gap:34px}.v92-price-group[hidden]{display:none}.v92-price-group-title{margin:0;padding:13px 14px;background:#354582;color:#fff;border-radius:12px 12px 0 0;font-size:15px;text-transform:uppercase;letter-spacing:.2px}.v92-price-table-wrap{overflow:auto;border:1px solid #d9e0ea;border-top:0}.v92-price-table{width:100%;min-width:980px;border-collapse:collapse;table-layout:auto;color:#12315d;font-size:12.5px}.v92-price-table th,.v92-price-table td{border-right:1px solid #d9e0ea;border-bottom:1px solid #e1e6ed;padding:9px 10px;vertical-align:middle}.v92-price-table th:last-child,.v92-price-table td:last-child{border-right:0}.v92-price-table thead th{position:sticky;top:0;background:#3c4b85;color:#fff;text-align:center;white-space:normal;line-height:1.1;z-index:1}.v92-price-table thead th:first-child,.v92-price-table tbody td:first-child{min-width:260px;text-align:left}.v92-price-table tbody tr:nth-child(even){background:#fbfcfe}.v92-price-table tbody tr:hover{background:#f3f7ff}.v92-price-value{text-align:right;white-space:nowrap;font-weight:750}.v92-price-promo{color:#e11d2e}.v92-price-unit,.v92-price-warranty,.v92-price-detail{text-align:center}.v92-price-detail button{border:0;background:transparent;color:#174da0;font-weight:800;cursor:pointer;padding:6px}.v92-price-detail button:hover{text-decoration:underline}.v92-price-footnote{margin:13px 0 0;color:#334155;font-size:12px;line-height:1.65}.v92-price-empty{border:1px dashed #bbc9da;border-radius:10px;padding:34px;text-align:center;color:#64748b}.v92-price-admin{display:grid;gap:14px}.v92-price-admin-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;background:#edf5ff;border:1px solid #c7dcf6;border-radius:8px}.v92-price-admin-toolbar label{font-size:11px;font-weight:900;color:#274873;min-width:260px}.v92-price-admin-toolbar select{display:block;width:100%;height:36px;margin-top:4px;border:1px solid #abc1dd;border-radius:6px;background:#fff;padding:0 9px}.v92-price-admin-table-wrap{overflow:auto;max-height:calc(100vh - 330px);border:1px solid #b7c8dc;border-radius:7px}.v92-price-admin-table{width:100%;min-width:1100px;border-collapse:separate;border-spacing:0;font-size:11.5px}.v92-price-admin-table th,.v92-price-admin-table td{border-right:1px solid #cbd8e7;border-bottom:1px solid #d6e0eb;padding:4px;background:#fff}.v92-price-admin-table th{position:sticky;top:0;z-index:3;background:#244f87;color:#fff;height:36px;text-align:center}.v92-price-admin-table th:first-child,.v92-price-admin-table td:first-child{position:sticky;left:0;z-index:2;min-width:230px}.v92-price-admin-table th:first-child{z-index:4}.v92-price-admin-table td:first-child{background:#f5f9ff;font-weight:800;color:#143c70}.v92-price-admin-table input{width:100%;height:30px;border:1px solid #b9c8da;border-radius:4px;padding:3px 6px;font:inherit;color:#17365f}.v92-price-admin-table input[type=number]{text-align:right}.v92-price-admin-hint{font-size:11px;color:#5d6f87}.v92-price-save{display:flex;justify-content:flex-end;gap:8px}.v92-price-save button{min-width:160px}
.v92-nav-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.v92-mobile-price{display:none;align-items:center;justify-content:center;min-height:36px;padding:7px 11px;border:1px solid #b8caea;border-radius:999px;background:#eef4ff;color:var(--v82-cobalt-dark);font:800 11px/1 var(--v82-font);cursor:pointer;white-space:nowrap}
@media(max-width:1180px){.v86-detail-top{grid-template-columns:1fr}.v86-detail-side{position:static;grid-template-columns:1fr 240px}.v82-case-grid{grid-template-columns:1fr!important}.v82-case{margin:auto}}
@media(max-width:1050px){.v92-mobile-price{display:inline-flex}}
@media(max-width:760px){.v82-nav{grid-template-columns:1fr auto!important;gap:9px!important}.v82-nav-links{display:none}.v92-nav-actions{gap:5px}.v82-service-grid,.v82-product-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}.v82-service-card,.v82-service-card .v82-card-image,.v86-service-caption{width:100%}.v82-product-card,.v82-product-card .v82-card-image,.v86-product-title{width:100%}.v82-case{width:100%;height:auto;grid-template-columns:1fr!important}.v82-case-pair{width:100%;height:auto;grid-template-columns:1fr 1fr;grid-template-rows:184px!important}.v82-case-photo{width:100%}.v86-detail-content{padding:10px}.v86-detail-side{grid-template-columns:1fr}.v86-detail-thumbs{gap:2px}.v82-gallery figure{flex-basis:min(400px,84vw);width:min(400px,84vw)}.gt-branch-price-row{grid-template-columns:1fr 1fr 28px}}
@media(max-width:760px){.v92-price-page{padding:18px 10px 36px}.v92-price-heading{align-items:flex-start}.v92-price-filter{grid-template-columns:1fr}.v92-price-filter-note{text-align:left}.v92-price-table{font-size:11.5px}.v92-price-table th,.v92-price-table td{padding:7px}.v92-price-table thead th:first-child,.v92-price-table tbody td:first-child{min-width:210px}.v92-price-admin-toolbar label{min-width:100%}.v92-price-admin-table-wrap{max-height:calc(100vh - 300px)}}
@media(max-width:480px){.v82-service-grid,.v82-product-grid{grid-template-columns:1fr!important}.v82-case-pair{grid-template-columns:1fr;grid-template-rows:184px 184px!important;height:380px}.v86-product-title,.v86-service-caption{width:100%}.v86-price-row{height:55px}.v86-detail-thumbs{grid-template-columns:repeat(4,1fr)}}

${document.getElementById('v54-media-styles').textContent}@page{size:A4 portrait;margin:0}@media print{body{background:#fff;margin:0}.media53-report-page{box-shadow:none;border:0;margin:0;width:210mm;height:297mm;min-height:297mm;page-break-after:always;overflow:hidden}.media53-report-page:last-child{page-break-after:auto}.media54-fixed-photo{break-inside:avoid}}

body{font-family:Arial,sans-serif}table{border-collapse:collapse}th,td{border:1px solid #9fb4c8;padding:5px}th{background:#dcebf7}

@page{size:A4 portrait;margin:6mm} *{box-sizing:border-box} body{margin:0;background:#d8dde4;font-family:Arial,sans-serif;color:#111;font-size:11px}.toolbar{position:sticky;top:0;z-index:5;display:flex;justify-content:center;gap:7px;padding:8px;background:#f5f7fa;border-bottom:1px solid #aeb7c1;box-shadow:0 2px 8px #0002}.toolbar button{padding:8px 11px;border:1px solid #9aa8b5;border-radius:4px;background:#fff;font-weight:700;cursor:pointer}.toolbar button:hover{transform:translateY(-1px);box-shadow:0 3px 8px #0002}.toolbar .sign{background:#eaf5ff;color:#0b61a4;border-color:#79b5e1}.toolbar .issue{background:#fff0e5;color:#a14700;border-color:#e9a66d}.toolbar .close{color:#a31522}.sheet{width:194mm;min-height:282mm;margin:12px auto;background:#fff;border:2px solid #ef8a19;border-radius:8px;padding:6mm 5mm 5mm;box-shadow:0 3px 16px #0003;position:relative}.draft-watermark{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;overflow:hidden}.draft-watermark span{transform:rotate(-34deg);font-size:52px;font-weight:900;color:#df3b3b12;white-space:nowrap}.invoice-head{display:grid;grid-template-columns:32mm 1fr 34mm;gap:3mm;align-items:start}.logo{font-size:23px;font-weight:900;color:#078ac0;padding-top:4mm;text-align:center}.logo small{display:block;font-size:7px;color:#e98b00}.title{text-align:center}.title h1{font-size:18px;color:#e21818;margin:1mm 0}.title .en{font-style:italic;font-weight:700}.meta{text-align:right;line-height:1.6}.qr{width:25mm;height:25mm;margin:2mm 0 0 auto;border:1px solid #222;display:grid;place-items:center;font-size:9px;text-align:center;background:repeating-linear-gradient(45deg,#111 0 2px,#fff 2px 4px);color:#fff;text-shadow:0 1px #000}.date-line{text-align:center;margin:2mm 0 4mm}.party{border-top:1px solid #ddd;padding-top:2mm;line-height:1.65}.party-row{display:grid;grid-template-columns:34mm 1fr;gap:2mm}.party-row .label{font-style:italic}.editable{outline:none;border-bottom:1px dotted #777;min-height:16px}.items{width:100%;border-collapse:collapse;margin-top:3mm;table-layout:fixed}.items th,.items td{border:1px solid #555;padding:3px 4px;vertical-align:top}.items th{text-align:center;background:#f7f7f7}.center{text-align:center}.num,.money{text-align:right;white-space:nowrap}.item-note{font-size:9px;color:#555;margin-top:1px}.summary{margin-top:2mm;margin-left:auto;width:58%}.tax-line,.sum-line{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #aaa;padding:3px 2px}.sum-line.total{font-size:13px;font-weight:900;border-top:1.5px solid #222;border-bottom:1.5px solid #222}.words{border:1px solid #888;padding:4px;margin-top:2mm}.signatures{display:grid;grid-template-columns:1fr 1fr;gap:10mm;text-align:center;margin-top:5mm;min-height:42mm}.sig-box{position:relative}.sig-box b{display:block}.sig-hint{font-style:italic;color:#555;margin-top:2px}.digital-signature{margin:5mm auto 0;width:58mm;min-height:24mm;border:1.5px dashed #e32636;color:#d71e2b;padding:3mm;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800}.tax-footer{margin-top:4mm;border-top:1px solid #444;padding-top:2mm;font-size:9px;line-height:1.45}.legal-note{margin-top:3mm;padding:2.5mm;border:1px solid #e79b57;background:#fff7ee;color:#914500;font-weight:700}.muted{color:#666}@media(max-width:800px){.sheet{width:100%;min-height:0;margin:0;border-radius:0;padding:10px}.toolbar{justify-content:flex-start;overflow-x:auto}.invoice-head{grid-template-columns:75px 1fr}.meta{grid-column:1/-1;text-align:left}.summary{width:100%}.items{min-width:700px}.table-scroll{overflow:auto}}@media print{body{background:#fff}.toolbar{display:none}.sheet{width:auto;min-height:auto;margin:0;box-shadow:none}.editable{border-bottom:0}.draft-watermark span{color:#df3b3b0d}.items th{background:#f7f7f7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

@page{size:A4 portrait;margin:8mm}
        *{box-sizing:border-box} body{margin:0;background:#d9dde3;color:#111;font-family:"Arial",Times,serif;font-size:13px}
        .viewer-toolbar{position:sticky;top:0;z-index:5;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(#f9fafc,#e4e8ed);border-bottom:1px solid #9ca7b3;box-shadow:0 2px 8px rgba(0,0,0,.16);font-family:Arial,sans-serif}
        .viewer-toolbar button{padding:8px 14px;border:1px solid #8fa4b8;border-radius:4px;background:linear-gradient(#fff,#eaf2f9);font-weight:700;color:#163d61;cursor:pointer}.viewer-toolbar button:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.2)}
        .viewer-toolbar .close{color:#a21b24;border-color:#d5a3a8;background:linear-gradient(#fff,#ffecee)}
        .sheet{width:194mm;min-height:281mm;margin:14px auto;padding:9mm 10mm 8mm;background:white;box-shadow:0 3px 16px rgba(0,0,0,.3);border:1px solid #c5c5c5}
        .clinic-header{display:grid;grid-template-columns:25mm 1fr;gap:5mm;align-items:center;border-bottom:1.5px solid #111;padding-bottom:4mm}
        .brand-logo{width:23mm;height:23mm;border:2px solid #1786d3;border-radius:50%;display:grid;place-items:center;color:#0d61b7;font-family:Arial,sans-serif;text-align:center;font-weight:900;line-height:1}.brand-logo span{font-size:17px}.brand-logo small{font-size:7px;display:block;margin-top:2px}.v63-print-logo{width:23mm;height:23mm;object-fit:contain}
        .clinic-info{text-align:center}.clinic-name{font-weight:800;font-size:16px;line-height:1.2}.clinic-brand{font-weight:800;font-size:17px;margin-top:2px}.clinic-contact{font-size:12px;line-height:1.45;margin-top:3px}
        .doc-title{text-align:center;margin:4mm 0 1mm;font-size:21px;font-weight:900}.doc-subtitle{text-align:center;font-style:italic;font-size:12px;margin-bottom:4mm}
        .meta-line{display:flex;justify-content:space-between;gap:10px;margin:2px 0}.meta-line b{font-weight:800}.patient-grid{width:100%;border-collapse:collapse;margin:2mm 0 3mm}.patient-grid td{padding:2px 4px;border:0;vertical-align:top}.patient-grid .label{font-style:italic;width:20mm}.patient-grid .value{font-weight:700}
        .section-title{font-weight:900;font-size:14px;margin:3mm 0 1.5mm;text-transform:uppercase}.service-table,.history-table{width:100%;border-collapse:collapse}.service-table th,.service-table td,.history-table th,.history-table td{border:1px solid #222;padding:4px 5px;vertical-align:top}.service-table th,.history-table th{background:#f1f1f1;text-align:center;font-weight:800}.item-note{font-size:11px;font-style:italic;margin-top:2px}.center{text-align:center}.money{text-align:right;white-space:nowrap}.strong{font-weight:800}.muted{color:#666}.refund{color:#c40000;font-weight:800}
        .summary{display:grid;grid-template-columns:1fr 1fr;gap:2mm 9mm;margin:3mm 0}.summary-row{display:flex;justify-content:space-between;border-bottom:1px dotted #777;padding:2px 0}.summary-row.total{font-size:15px;font-weight:900;border-bottom:2px solid #111}.summary-row.due{color:#b40000;font-weight:900}
        .blank-section{min-height:15mm;border-bottom:1px dotted #aaa;padding-top:1mm}.payment-highlight{margin:3mm 0;padding:3mm;border:1.5px solid #111;background:#fafafa;display:grid;grid-template-columns:repeat(3,1fr);gap:3mm}.payment-highlight div{text-align:center}.payment-highlight span{display:block;font-size:11px}.payment-highlight b{display:block;font-size:16px;margin-top:2px}.payment-highlight .paid b{color:#0b7a36}.payment-highlight .debt b{color:#c00000}
        .note{font-style:italic;margin-top:3mm}.sign-date{text-align:right;margin:4mm 12mm 1mm 0;font-style:italic}.signatures{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;min-height:35mm}.signatures b{display:block}.signature-name{align-self:end;font-weight:800;text-transform:uppercase}.footer-note{text-align:center;border-top:1px solid #333;padding-top:2mm;font-size:10px;font-style:italic}
        @media(max-width:800px){.sheet{width:100%;min-height:0;margin:0;padding:12px;box-shadow:none}.viewer-toolbar{justify-content:flex-start;padding:0 8px;overflow-x:auto}.clinic-header{grid-template-columns:62px 1fr}.brand-logo{width:58px;height:58px}.summary{grid-template-columns:1fr}.payment-highlight{grid-template-columns:1fr}}
        @media print{body{background:#fff}.viewer-toolbar{display:none}.sheet{width:auto;min-height:auto;margin:0;padding:0;box-shadow:none;border:0}.service-table th,.history-table th{background:#f1f1f1!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

@page{size:A4 portrait;margin:8mm}
        *{box-sizing:border-box} body{margin:0;background:#d9dde3;color:#111;font-family:"Arial",Times,serif;font-size:12.5px}
        .viewer-toolbar{position:sticky;top:0;z-index:5;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(#f9fafc,#e4e8ed);border-bottom:1px solid #9ca7b3;box-shadow:0 2px 8px rgba(0,0,0,.16);font-family:Arial,sans-serif}
        .viewer-toolbar button{padding:8px 14px;border:1px solid #8fa4b8;border-radius:4px;background:linear-gradient(#fff,#eaf2f9);font-weight:700;color:#163d61;cursor:pointer}.viewer-toolbar button:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.2)}
        .viewer-toolbar .close{color:#a21b24;border-color:#d5a3a8;background:linear-gradient(#fff,#ffecee)}
        .sheet{width:194mm;min-height:281mm;margin:14px auto;padding:9mm 10mm 8mm;background:white;box-shadow:0 3px 16px rgba(0,0,0,.3);border:1px solid #c5c5c5;position:relative}
        .sheet + .sheet{page-break-before:always}
        .moh-top-row{display:flex;justify-content:space-between;font-size:11px;font-style:italic}
        .clinic-header{display:grid;grid-template-columns:22mm 1fr;gap:5mm;align-items:center;border-bottom:1.5px solid #111;padding-bottom:3mm;margin-top:2mm}
        .brand-logo{width:20mm;height:20mm;border:2px solid #1786d3;border-radius:50%;display:grid;place-items:center;color:#0d61b7;font-family:Arial,sans-serif;text-align:center;font-weight:900;line-height:1}.brand-logo span{font-size:15px}.brand-logo small{font-size:6px;display:block;margin-top:2px}.v63-print-logo{width:20mm;height:20mm;object-fit:contain}
        .clinic-info{text-align:center}.clinic-name{font-weight:800;font-size:14px;line-height:1.2}.clinic-brand{font-weight:800;font-size:15px;margin-top:2px}.clinic-contact{font-size:11px;line-height:1.4;margin-top:2px}
        .doc-title{text-align:center;margin:3mm 0 0.5mm;font-size:18px;font-weight:900}.doc-subtitle{text-align:center;font-weight:800;font-size:13px;margin-bottom:3mm}
        .moh-section-title{font-weight:900;font-size:12.5px;margin:3mm 0 1mm;text-transform:uppercase}
        .moh-row{display:flex;gap:6mm;margin:1mm 0;align-items:flex-end}
        .moh-field{display:flex;align-items:flex-end;gap:2mm;flex:1}
        .moh-field .moh-label{white-space:nowrap;font-style:italic}
        .moh-fill{flex:1;border-bottom:1px dotted #555;min-height:4.2mm;font-weight:700;padding:0 1mm}
        .moh-check{display:inline-flex;align-items:center;gap:1.5mm;margin-right:5mm;font-size:11.5px}
        .moh-box{width:3mm;height:3mm;border:1px solid #333;display:inline-flex;align-items:center;justify-content:center;font-size:8px;font-weight:900}
        .moh-blank-block{border-bottom:1px dotted #aaa;min-height:16mm;padding:1mm 1mm 2mm;white-space:pre-wrap;font-size:12px}
        .moh-blank-block.short{min-height:9mm}
        .sign-date{text-align:right;margin:4mm 12mm 1mm 0;font-style:italic;font-size:11.5px}
        .signatures2{display:grid;grid-template-columns:1fr 1fr;text-align:center;min-height:26mm;margin-top:2mm}
        .signatures2 b{display:block;font-size:12px}
        .signatures2 span{font-size:11px;font-style:italic}
        .footer-note{text-align:center;border-top:1px solid #333;padding-top:2mm;margin-top:4mm;font-size:9.5px;font-style:italic}
        @media(max-width:800px){.sheet{width:100%;min-height:0;margin:0;padding:12px;box-shadow:none}.viewer-toolbar{justify-content:flex-start;padding:0 8px;overflow-x:auto}.clinic-header{grid-template-columns:56px 1fr}.brand-logo{width:52px;height:52px}.moh-row{flex-direction:column;align-items:stretch;gap:1mm}.signatures2{grid-template-columns:1fr}}
        @media print{body{background:#fff}.viewer-toolbar{display:none}.sheet{width:auto;min-height:auto;margin:0;padding:0;box-shadow:none;border:0}}

body{font-family:Arial,sans-serif}table{border-collapse:collapse}th,td{border:1px solid #9fb4c8;padding:6px}th{background:#dcebf7;font-weight:bold}

    /* ===== v32: Khám bệnh - Điều trị theo bố cục desktop truyền thống ===== */
    .exam-page-v32 { max-width:none; padding:0 3px 10px; overflow:hidden; }
    .exam-page-v32 .workspace-tabs { margin:0; border-left:1px solid #abb7c3; border-right:1px solid #abb7c3; }
    .exam-page-v32 .treatment-shell { width:100%; min-height:calc(100dvh - 245px); height:auto; border-color:#9eabb8; overflow:hidden; }
    .exam-page-v32 .treatment-title { height:34px; padding:5px 8px; font-size:21px; background:linear-gradient(#f8f9fb,#eef1f5); }
    .exam-page-v32 .treatment-patient-area { display:grid; grid-template-columns:minmax(650px,42%) minmax(420px,34%) minmax(180px,1fr); min-height:132px; align-items:stretch; background:#eef1f5; }
    .patient-record-section { min-width:0; border-right:1px solid #b9c4cf; background:#f5f6f8; }
    .treatment-section-caption { height:24px; display:flex; align-items:center; padding:3px 7px; border-bottom:1px solid #c3ccd6; background:linear-gradient(#f9fafb,#e7ebf0); color:#26384d; font-size:11px; font-weight:700; }
    .exam-page-v32 .patient-record-grid { grid-template-columns:repeat(8,minmax(75px,1fr)); padding:3px; border-right:0; background:#f5f6f8; }
    .exam-page-v32 .record-field { min-height:25px; padding:1px 4px; grid-template-columns:68px minmax(0,1fr); background:#fff; }
    .exam-page-v32 .record-field label { font-size:9.5px; }
    .exam-page-v32 .record-field b,.exam-page-v32 .record-field input { font-size:10.5px; }
    .exam-page-v32 .record-field .red-money { font-size:13px; }
    .exam-page-v32 .medical-history-panel { min-width:0; padding:0; border-right:1px solid #b9c4cf; background:#f2f3f5; }
    .exam-page-v32 .medical-history-panel .medical-check-grid { padding:5px 8px 2px; grid-template-columns:repeat(4,minmax(80px,1fr)); gap:4px 8px; }
    .exam-page-v32 .medical-history-panel .medical-check-grid label { font-size:9.5px; white-space:nowrap; }
    .medical-extra-tools { display:flex; flex-wrap:wrap; gap:3px; padding:3px 7px; border-top:1px solid #d1d7de; }
    .legacy-mini-command { min-height:26px; display:inline-flex; align-items:center; gap:4px; border:1px solid transparent; background:transparent; padding:2px 5px; color:#26384d; font-size:9.5px; }
    .legacy-mini-command:hover { border-color:#b9cfdf; background:#fff; }
    .legacy-mini-command svg { width:18px; height:18px; fill:none; stroke:#4d647a; stroke-width:1.7; }
    .medical-note { padding:3px 8px 5px; }
    .treatment-header-spacer { background:#eef1f5; }
    .treatment-command-area { border-bottom:1px solid #aeb9c5; background:#f1f3f6; }
    .treatment-subtitle { height:23px; padding:3px 7px; border-bottom:1px solid #c3ccd6; background:linear-gradient(#f7f8fa,#e7ebef); font-size:10px; font-weight:700; color:#28394d; }
    .exam-page-v32 .treatment-toolbar { min-height:39px; padding:3px 7px; gap:2px; background:#f4f5f7; }
    .toolbar-date-group,.toolbar-select-group { display:grid; grid-template-columns:auto minmax(105px,1fr); align-items:center; gap:4px; }
    .toolbar-date-group label,.toolbar-select-group label { font-size:9.5px; white-space:nowrap; }
    .exam-page-v32 .desktop-command { min-width:auto; height:29px; padding:3px 7px; gap:4px; border:1px solid transparent; border-radius:0; background:transparent; font-size:9.5px; box-shadow:none; }
    .exam-page-v32 .desktop-command:hover { border-color:#aac6de; background:linear-gradient(#fff,#eaf4fc); transform:none; }
    .exam-page-v32 .desktop-command svg { width:21px; height:21px; }
    .exam-page-v32 .primary-command svg { color:#20b83f; }
    .exam-page-v32 .muted-command { color:#7a858f; }
    .exam-page-v32 .danger-command svg { color:#e11d2e; }
    .exam-page-v32 .treatment-main { grid-template-columns:155px minmax(1250px,1fr); flex:1 1 auto; min-height:410px; height:calc(100dvh - 560px); max-height:none; }
    .exam-page-v32 .visit-date-pane { background:#f5f6f8; }
    .exam-page-v32 .visit-date-pane .pane-title { position:sticky; top:0; z-index:2; text-align:center; background:#e7ebef; }
    .exam-page-v32 .visit-date-item { min-height:43px; padding:4px 5px; }
    .exam-page-v32 .visit-date-item .seq { min-width:20px; }
    .exam-page-v32 .treatment-grid-pane { min-width:0; background:#fff; }
    .exam-page-v32 .treatment-grid-pane .exam-table { min-width:1720px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th { height:26px; padding:3px 4px; font-size:9.5px; white-space:nowrap; }
    .exam-page-v32 .treatment-grid-pane .exam-table td { height:28px; padding:2px 3px; font-size:9.5px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(1) { width:32px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(2) { width:120px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(3) { width:150px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(4) { width:90px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(5) { width:185px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(6) { width:185px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(7) { width:135px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(8) { width:70px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(9),
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(10),
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(12),
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(14) { width:105px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(11) { width:60px; }
    .exam-page-v32 .treatment-grid-pane .exam-table th:nth-child(13) { width:62px; }
    .doctor-assistant-cell { min-width:130px; color:#1f4f9a; line-height:1.15; }
    .doctor-assistant-cell span,.doctor-assistant-cell small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .doctor-assistant-cell small { color:#64748b; font-size:8.5px; }
    .line-gross { color:#27374a; }
    .exam-page-v32 .traditional-history-drawer summary { height:24px; padding:4px 7px; }
    .exam-page-v32 .treatment-bottom { grid-template-columns:minmax(520px,1.15fr) minmax(850px,2fr); padding:3px; gap:3px; }
    .exam-page-v32 .treatment-payment-box { padding:3px; }
    .exam-page-v32 .finance-cell { padding:3px 5px; }
    .exam-page-v32 .finance-cell b { font-size:14px; }

    @media (max-width: 1250px) {
      .exam-page-v32 .treatment-patient-area { grid-template-columns:minmax(620px,1.5fr) minmax(390px,1fr); }
      .exam-page-v32 .treatment-header-spacer { display:none; }
      .exam-page-v32 .medical-history-panel .medical-check-grid { grid-template-columns:repeat(3,minmax(85px,1fr)); }
      .exam-page-v32 .treatment-main { height:420px; }
      .exam-page-v32 .treatment-bottom { grid-template-columns:1fr; }
    }
    @media (max-width: 980px) {
      .exam-page-v32 .treatment-patient-area { grid-template-columns:1fr; }
      .exam-page-v32 .patient-record-section,.exam-page-v32 .medical-history-panel { border-right:0; border-bottom:1px solid #b9c4cf; }
      .exam-page-v32 .patient-record-grid { grid-template-columns:repeat(4,minmax(95px,1fr)); }
      .exam-page-v32 .treatment-main { grid-template-columns:135px minmax(1250px,1fr); height:430px; overflow:auto; }
    }
    @media (max-width: 680px) {
      .exam-page-v32 { padding:0 2px 6px; }
      .exam-page-v32 .treatment-shell { min-height:calc(100dvh - 230px); }
      .exam-page-v32 .treatment-title { font-size:17px; height:30px; }
      .exam-page-v32 .patient-record-grid { grid-template-columns:1fr; }
      .exam-page-v32 .record-field,.exam-page-v32 .record-field.span-2,.exam-page-v32 .record-field.span-3,.exam-page-v32 .record-field.span-4 { grid-column:auto; grid-template-columns:92px 1fr; }
      .exam-page-v32 .medical-history-panel .medical-check-grid { grid-template-columns:repeat(2,minmax(110px,1fr)); overflow-x:auto; }
      .exam-page-v32 .treatment-toolbar { flex-wrap:nowrap; overflow-x:auto; }
      .toolbar-date-group,.toolbar-select-group { flex:0 0 auto; }
      .exam-page-v32 .treatment-main { display:block; height:auto; min-height:0; overflow:visible; }
      .exam-page-v32 .visit-date-pane { display:flex; max-height:112px; overflow-x:auto; border-right:0; border-bottom:1px solid #b8c3cf; }
      .exam-page-v32 .visit-date-pane .pane-title { min-width:105px; display:grid; place-items:center; }
      .exam-page-v32 .visit-date-item { min-width:125px; }
      .exam-page-v32 .treatment-grid-pane { max-height:430px; overflow:auto; }
      .exam-page-v32 .treatment-bottom { grid-template-columns:1fr; }
    }

  
    /* ===== v33 inline treatment plan editor ===== */
    .exam-page-v32 .visit-date-pane .pane-title {
      display:flex; align-items:center; justify-content:space-between; gap:6px;
      padding:4px 6px;
    }
    .exam-plan-new {
      border:1px solid #8fb7d8; background:linear-gradient(#fff,#e6f3ff); color:#0b5fa5;
      min-height:24px; padding:2px 7px; font-size:10px; font-weight:800; cursor:pointer;
    }
    .exam-plan-new:hover { background:#dceeff; border-color:#4f94c8; }
    .plan-editor-head {
      min-height:28px; display:flex; align-items:center; justify-content:space-between; gap:10px;
      padding:4px 8px; border-bottom:1px solid #b8c4cf; background:linear-gradient(#f9fbfd,#e9eef3);
      color:#27445f; font-size:10.5px;
    }
    .plan-editor-head b { color:#0b4f94; font-size:11px; }
    .plan-editor-head .plan-mode-badge {
      display:inline-flex; align-items:center; min-height:20px; padding:2px 7px;
      border:1px solid #9bc4e2; background:#eaf6ff; color:#0b5f9f; font-weight:800;
    }
    .visit-date-item { cursor:pointer; }
    .visit-date-item.preview-active,
    .visit-date-item.active { background:#dcecff !important; box-shadow:inset 3px 0 #0d61b7; }
    .visit-inline-select {
      border:0; background:transparent; color:#0b5fa5; text-decoration:underline; cursor:pointer;
      padding:0; font:inherit;
    }
    .visit-inline-select:hover { color:#083f73; }
    .exam-table tbody tr { cursor:default; }
    .exam-table tbody tr.exam-row-selected td { background:#dcecff !important; }
    .exam-table tbody tr.exam-row-selected { box-shadow:inset 3px 0 #0d61b7; }
    .existing-plan-payment-note {
      margin-top:4px; padding:4px 6px; border:1px solid #d5dde6; background:#f5f7f9;
      color:#64748b; font-size:10px;
    }
    #exam-paid[readonly] { background:#eef1f4; color:#475569; }
    @media (max-width:700px) {
      .plan-editor-head { align-items:flex-start; flex-direction:column; }
      .exam-page-v32 .visit-date-pane .pane-title { min-width:135px; }
    }

    /* v35: kế hoạch điều trị chỉ mở bằng click, hover chỉ là hiệu ứng thị giác */
    .treatment-plan-select { cursor: pointer; }
    .treatment-plan-select:hover { box-shadow: inset 3px 0 #74d0ff; }

  


  


    /* ===== v51 public login + secure customer portal ===== */
    #login-screen { background:#e8edf3 !important; min-height:100svh; }
    .public-login-shell { min-height:100svh; display:flex; flex-direction:column; background:linear-gradient(180deg,#eef3f8 0,#dce9f2 138px,#1d8db5 139px,#2b96bd 100%); }
    .public-login-header { min-height:138px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px clamp(18px,4vw,70px); background:linear-gradient(180deg,#f8fafc,#edf1f5); border-bottom:1px solid #aebac6; box-shadow:0 3px 12px rgba(27,53,79,.14); }
    .public-brand-block { display:flex; align-items:center; gap:16px; min-width:0; }
    .public-brand-badge { width:62px; height:62px; flex:0 0 62px; display:grid; place-items:center; border-radius:16px; color:#fff; font:900 22px/1 Arial; background:linear-gradient(145deg,#0d61b7,#25a4df); border:3px solid rgba(255,255,255,.9); box-shadow:0 5px 16px rgba(13,97,183,.28); }
    .public-brand-name { color:#0d3f8a; font-size:19px; font-weight:900; letter-spacing:.02em; }
    .public-brand-welcome { margin-top:5px; color:#334155; font-size:14px; font-weight:700; }
    .public-brand-wish { margin-top:4px; color:#0d61b7; font-size:13px; }
    .public-header-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
    .public-header-btn { height:38px; padding:0 16px; border:1px solid #9fb6ca; border-radius:7px; background:linear-gradient(#fff,#edf4fa); color:#0d4d83; font-weight:800; cursor:pointer; box-shadow:0 2px 5px rgba(15,50,80,.08); transition:.14s ease; }
    .public-header-btn.contact { border-color:#e0a4a4; color:#b42323; background:linear-gradient(#fff,#fff2f2); }
    .public-header-btn:hover { transform:translateY(-2px); box-shadow:0 7px 14px rgba(15,50,80,.16); }
    .public-auth-workspace { flex:1; min-height:620px; display:grid; grid-template-columns:minmax(300px,360px) minmax(340px,430px); align-content:start; justify-content:center; gap:28px; padding:clamp(70px,10vh,120px) 24px 60px; position:relative; overflow:auto; }
    .public-auth-workspace::before { content:''; position:absolute; right:4%; bottom:5%; width:min(46vw,720px); height:min(26vw,360px); border:1px solid rgba(255,255,255,.22); border-radius:18px; transform:skew(-12deg); background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.01)); pointer-events:none; }
    .staff-login-panel,.portal-login-card { position:relative; z-index:2; }
    .public-auth-workspace .login-card.public-staff-card { position:relative !important; inset:auto !important; left:auto !important; top:auto !important; transform:none !important; width:100% !important; border-radius:8px !important; overflow:hidden; border:1px solid #9fb0c0; box-shadow:0 14px 34px rgba(0,40,75,.24); }
    .public-auth-workspace .login-titlebar { padding:13px; font-size:16px; }
    .public-auth-workspace .login-body { padding:18px; }
    .public-auth-workspace .login-grid .field { grid-template-columns:105px minmax(0,1fr); }
    .public-auth-workspace .login-grid .field input,.public-auth-workspace .login-grid .field select { min-height:34px; border:1px solid #98aec2; background:#fff; }
    .login-security-note { margin-top:13px; padding:9px 10px; border:1px dashed #b6c9da; background:#eef6fc; color:#546679; font-size:11px; line-height:1.5; }
    .portal-login-card { background:rgba(249,252,255,.96); border:1px solid #99afc2; border-radius:9px; box-shadow:0 14px 34px rgba(0,40,75,.24); overflow:hidden; }
    .portal-card-head { min-height:58px; display:flex; align-items:center; gap:10px; padding:10px 14px; background:linear-gradient(180deg,#fafdff,#dcecf7); border-bottom:1px solid #aebfce; color:#0d3f8a; }
    .portal-card-head b { display:block; font-size:16px; }
    .portal-card-head span:not(.portal-lock) { display:block; margin-top:2px; color:#5a6b7d; font-size:11px; }
    .portal-lock { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#1684c2; }
    .portal-card-body { padding:16px; }
    .portal-method-switch { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-bottom:13px; }
    .portal-method { min-height:34px; border:1px solid #afbdca; background:#f4f7fa; color:#45576a; font-weight:800; cursor:pointer; }
    .portal-method.active { color:#fff; background:linear-gradient(#238fe0,#0f68ba); border-color:#0d61b7; }
    .portal-label { display:block; margin:8px 0 5px; color:#334155; font-size:12px; font-weight:800; }
    .portal-input { width:100%; min-height:38px; border:1px solid #95abc0; padding:7px 9px; background:#fff; font-size:14px; }
    .portal-primary-btn { width:100%; min-height:38px; margin-top:9px; border:1px solid #0e65b3; border-radius:4px; color:#fff; background:linear-gradient(#2594e4,#0c67bb); font-weight:900; cursor:pointer; }
    .portal-primary-btn:hover { filter:brightness(1.05); box-shadow:0 4px 10px rgba(13,97,183,.22); }
    .portal-otp-row { display:grid; grid-template-columns:1fr 120px; gap:7px; }
    .portal-otp-row .portal-primary-btn { margin-top:0; }
    .portal-input.otp { font-size:19px; font-weight:900; letter-spacing:.2em; text-align:center; }
    .portal-demo-otp { margin-top:8px; padding:7px 9px; border:1px dashed #e2ad45; background:#fff8df; color:#8a5b00; font-size:12px; font-weight:800; }
    .portal-privacy-note,.portal-email-note { margin-top:11px; padding:8px 9px; border-left:3px solid #7fb1d6; background:#eef6fb; color:#526475; font-size:11px; line-height:1.45; }
    .portal-email-note { border-left-color:#e7ae45; background:#fff8e7; }

    .customer-portal-shell { flex:1; min-height:calc(100svh - 138px); background:#edf2f6; }
    .customer-portal-topbar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px clamp(14px,3vw,40px); border-bottom:1px solid #b8c5d1; background:#fff; box-shadow:0 2px 7px rgba(15,40,60,.08); }
    .customer-portal-topbar b { display:block; color:#0d3f8a; font-size:17px; }
    .customer-portal-topbar span { display:block; margin-top:3px; color:#64748b; font-size:12px; }
    .customer-portal-actions { display:flex; gap:7px; }
    .customer-portal-content { max-width:1480px; margin:0 auto; padding:16px clamp(12px,3vw,34px) 40px; display:grid; gap:14px; }
    .portal-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(160px,1fr)); gap:10px; }
    .portal-summary-card { padding:14px; border:1px solid #b7c7d6; border-top:4px solid #2b8ccf; background:#fff; box-shadow:0 3px 10px rgba(18,55,80,.07); }
    .portal-summary-card span { color:#64748b; font-size:11px; font-weight:800; text-transform:uppercase; }
    .portal-summary-card b { display:block; margin-top:7px; color:#0d3f8a; font-size:22px; }
    .portal-section-card { border:1px solid #b7c5d2; background:#fff; box-shadow:0 3px 10px rgba(18,55,80,.06); }
    .portal-section-title { padding:9px 11px; color:#0d3f8a; font-family:'Arial',serif; font-size:17px; font-weight:800; background:linear-gradient(#f8fbfd,#eaf2f8); border-bottom:1px solid #bfccd8; }
    .portal-section-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-right:12px; background:linear-gradient(#f8fbfd,#eaf2f8); border-bottom:1px solid #bfccd8; }
    .portal-section-head .portal-section-title { border-bottom:0; background:transparent; }
    .portal-table-wrap { overflow:auto; max-height:330px; }
    .portal-table { width:100%; min-width:900px; border-collapse:collapse; font-size:12px; }
    .portal-table th,.portal-table td { border-right:1px solid #cad5df; border-bottom:1px solid #cad5df; padding:7px 8px; text-align:left; }
    .portal-table th { position:sticky; top:0; background:#e7f0f7; color:#28445c; z-index:2; }
    .portal-treatment-list { max-height:430px; overflow:auto; padding:10px; display:grid; gap:9px; }
    .portal-treatment-card { border:1px solid #c2cfda; background:#fbfdff; }
    .portal-treatment-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; background:#edf6fd; border-bottom:1px solid #c4d2de; }
    .portal-treatment-head b { color:#0b5898; }
    .portal-treatment-items { width:100%; border-collapse:collapse; font-size:12px; }
    .portal-treatment-items th,.portal-treatment-items td { border-bottom:1px solid #d6dfe7; padding:6px 8px; }
    .portal-treatment-items th { background:#f7f9fb; color:#526579; }
    .portal-media-grid { padding:12px; display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; }
    .portal-media-card { border:1px solid #c2ced9; background:#fff; overflow:hidden; }
    .portal-media-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; background:#edf2f6; }
    .portal-media-meta { padding:8px; }
    .portal-media-meta b { display:block; color:#24435e; }
    .portal-media-empty { grid-column:1/-1; padding:28px; text-align:center; color:#718096; background:#f8fafc; border:1px dashed #c8d2dc; }
    .portal-email-register { padding:12px; display:grid; grid-template-columns:1fr minmax(320px,500px); gap:14px; align-items:center; }
    .portal-email-row { display:grid; grid-template-columns:1fr 110px; gap:7px; }
    .portal-email-row input { min-height:36px; border:1px solid #a6b7c7; padding:6px 8px; }

    .customer-media-modal { width:min(1000px,96vw); max-height:92vh; background:#fff; border:1px solid #9eacba; box-shadow:0 20px 55px rgba(0,0,0,.28); overflow:hidden; }
    .customer-media-form { display:grid; grid-template-columns:140px 1fr 110px 160px; gap:8px; align-items:center; padding:12px; border-bottom:1px solid #c5d0db; background:#f7fafc; }
    .customer-media-form input,.customer-media-form select,.customer-media-form textarea { width:100%; min-height:32px; border:1px solid #9fb2c8; padding:5px 7px; }
    .customer-media-form textarea { min-height:54px; resize:vertical; }
    .customer-media-form .span-3 { grid-column:2/-1; }
    .customer-media-list { padding:12px; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; max-height:520px; overflow:auto; }
    .customer-media-admin-card { border:1px solid #c4d0db; background:#fff; }
    .customer-media-admin-card img { width:100%; aspect-ratio:4/3; object-fit:cover; background:#eef2f6; display:block; }
    .customer-media-admin-card .meta { padding:7px; font-size:11px; }

    @media (max-width:900px) {
      .public-login-header { align-items:flex-start; padding:14px; }
      .public-brand-badge { width:50px; height:50px; flex-basis:50px; }
      .public-brand-name { font-size:16px; }
      .public-brand-welcome { font-size:12px; }
      .public-brand-wish { font-size:11px; }
      .public-header-actions { flex-direction:column; }
      .public-header-btn { height:32px; padding:0 10px; font-size:11px; }
      .public-auth-workspace { grid-template-columns:minmax(0,480px); padding:28px 14px 50px; }
      .portal-summary-grid { grid-template-columns:repeat(2,1fr); }
      .portal-email-register { grid-template-columns:1fr; }
      .customer-media-form { grid-template-columns:1fr; }
      .customer-media-form .span-3 { grid-column:auto; }
    }
    @media (max-width:560px) {
      .public-login-header { min-height:auto; display:grid; grid-template-columns:1fr; }
      .public-header-actions { flex-direction:row; }
      .public-brand-wish { display:none; }
      .public-auth-workspace .login-grid .field { grid-template-columns:1fr; }
      .portal-summary-grid { grid-template-columns:1fr; }
      .customer-portal-topbar { align-items:flex-start; flex-direction:column; }
      .portal-email-row,.portal-otp-row { grid-template-columns:1fr; }
    }

table{border-collapse:collapse;font-family:Arial;font-size:11pt}th{background:#c6efce;font-weight:bold}th,td{border:1px solid #333;padding:6px;vertical-align:top}td{mso-number-format:'\@'}

@page{size:landscape;margin:0.35in}body{font-family:Arial,sans-serif;color:#111;font-size:9pt;margin:0}
        .clinic{text-align:center;margin-bottom:6px}.clinic strong,.clinic b,.clinic span{display:block}.clinic strong{font-size:10pt}.clinic b{font-size:12pt;color:#173f72;margin-top:2px}.clinic span{font-size:8pt;margin-top:2px}
        h1{margin:8px 0 4px;text-align:center;font-size:14pt;color:#1538d1}.meta{margin:0 0 7px;text-align:center;font-size:8.5pt}
        table{width:100%;border-collapse:collapse;table-layout:fixed}th,td{border:1px solid #8f9ba7;padding:3px 5px;height:20px;vertical-align:middle;font-size:8.5pt}
        th{background:#dfe5ea;color:#1d3044;text-align:center;font-weight:bold}.day-cell{background:#edf4fb;text-align:center;font-weight:bold;mso-number-format:'\\@'}.patient-cell{font-weight:bold}.patient-cell small{display:block;color:#64748b;font-size:7.5pt}.phone-cell{mso-number-format:'\\@'}.staff-line{display:block}.staff-role{color:#0d61b7;font-size:7.5pt;font-weight:bold}.compact-text{white-space:normal}.patient-visit-report-loading{display:none}

body{font-family:Arial;font-size:11pt}h2{color:#0d61b7}table{border-collapse:collapse;width:100%}th,td{border:1px solid #9fb6c8;padding:6px}th{background:#ddecfb;color:#17324d}.r0 td{background:#f8fcff}.r1 td{background:#f7fcf8}.r2 td{background:#fffdf7}.r3 td{background:#fcf9ff}td:nth-child(n+6){mso-number-format:'0'}

body{font-family:Arial,sans-serif}table{border-collapse:collapse}th,td{border:1px solid #9fb4c8;padding:5px}th{background:#dcebf7}

table{border-collapse:collapse;font-family:Arial;font-size:11pt}th,td{border:1px solid #7f8fa0;padding:5px;vertical-align:top}th{background:#244a9b;color:white}

.permission-modal{width:min(1320px,98vw);height:min(880px,94vh);display:grid;grid-template-rows:auto auto 1fr auto;background:#eef2f5;border:1px solid #8799aa;box-shadow:0 24px 70px rgba(0,0,0,.38)}
.permission-toolbar,.permission-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:#fff;border-bottom:1px solid #b8c5cf}.permission-footer{justify-content:flex-end;border-top:1px solid #b8c5cf;border-bottom:0}.permission-table-wrap{overflow:auto;margin:8px;border:1px solid #778b9b;background:#fff}.permission-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0}.permission-table th,.permission-table td{padding:6px 8px;border-right:1px solid #b9c7d2;border-bottom:1px solid #b9c7d2;font-size:11px}.permission-table th{position:sticky;top:0;z-index:2;background:#ddecfb;color:#1738cc;text-align:center;font-weight:900}.permission-table th:nth-child(2){text-align:left}.permission-table tbody tr:nth-child(even) td{background:#f7f9fb}.permission-table tbody tr:hover td{background:#fff4c7}.permission-index{width:42px;text-align:center}.permission-check{width:78px;text-align:center}.permission-check input{width:17px;height:17px;accent-color:#0d61b7;cursor:pointer}.permission-check input:disabled{cursor:not-allowed;opacity:.65}

.clinic-profile-modal{width:min(980px,96vw);max-height:94vh;overflow:auto;background:#eef3f7;border:1px solid #8fa3b5;box-shadow:0 24px 70px rgba(0,0,0,.35)}.clinic-profile-body{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;padding:14px}.clinic-profile-fields{display:grid;grid-template-columns:155px minmax(0,1fr);gap:9px;align-items:center}.clinic-profile-fields label{font-weight:800;color:#2f475d}.clinic-profile-fields input,.clinic-profile-fields textarea{box-sizing:border-box;width:100%;border:1px solid #9eb2c3;background:#fff;padding:8px}.clinic-profile-fields input{height:36px}.clinic-profile-fields textarea{min-height:68px;resize:vertical}.clinic-profile-logo-panel{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid #b7c6d2;background:#fff}.clinic-profile-logo-panel h4{margin:0;color:#0d3f8a}.clinic-logo-preview{height:210px;display:grid;place-items:center;border:1px dashed #8eacbf;background:#f8fbfd;overflow:hidden}.clinic-logo-preview img{max-width:94%;max-height:190px;object-fit:contain}.clinic-logo-placeholder{text-align:center;color:#718096;font-size:12px}.clinic-logo-actions{display:flex;gap:7px;flex-wrap:wrap}.clinic-logo-actions input{display:none}.clinic-profile-note{font-size:11px;line-height:1.5;color:#64748b}.clinic-profile-footer{display:flex;justify-content:flex-end;gap:8px;padding:0 14px 14px}.v63-report-clinic{position:relative;z-index:2;display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:center;min-height:72px;padding:7px 10px;border:1px solid #c7d3dd;background:#fff}.v63-report-clinic.no-logo{grid-template-columns:1fr}.v63-report-clinic-logo{width:70px;height:58px;object-fit:contain}.v63-report-clinic-info{text-align:center;line-height:1.3}.v63-report-clinic-info b{display:block;color:#0d3f8a;font-size:16px}.v63-report-clinic-info strong{display:block;font-size:12px}.v63-report-clinic-info span{display:block;font-size:10px;color:#4f6272}.v63-top-brand{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0}.v63-top-brand img{width:28px;height:28px;object-fit:contain;flex:0 0 auto}.v63-top-brand b{min-width:0;overflow-wrap:anywhere}.v63-print-logo{width:23mm;height:23mm;object-fit:contain}.v63-vat-logo{width:90px;max-height:70px;object-fit:contain}@media(max-width:720px){.clinic-profile-body{grid-template-columns:1fr}.clinic-profile-fields{grid-template-columns:1fr}.clinic-profile-logo-panel{order:-1}}

.payment-history-command{min-width:104px}.payment-history-modal{width:min(1080px,96vw);max-height:92vh;overflow:hidden;background:#f2f5f8;border:1px solid #8ea2b4;box-shadow:0 24px 70px rgba(0,0,0,.38)}.payment-history-loading{padding:55px;text-align:center;color:#587086;font-weight:800}.payment-history-body{padding:12px;overflow:auto;max-height:calc(92vh - 62px)}.payment-history-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.payment-history-summary>div{padding:10px 12px;border:1px solid #aec0ce;background:#fff}.payment-history-summary span{display:block;font-size:11px;font-weight:800;color:#617589;text-transform:uppercase}.payment-history-summary b{display:block;margin-top:5px;font-size:18px;color:#153f68}.payment-history-summary .paid b{color:#08783c}.payment-history-summary .debt b{color:#c01620}.payment-history-table-wrap{overflow:auto;border:1px solid #75899b;background:#fff}.payment-history-table{width:100%;min-width:790px;border-collapse:collapse;table-layout:fixed;font-family:Arial,sans-serif}.payment-history-table th,.payment-history-table td{border:1px solid #8fa1b0;padding:8px;vertical-align:middle;overflow-wrap:anywhere}.payment-history-table thead th{position:sticky;top:0;z-index:2;background:#c6efce;color:#102a3a;text-align:center;font-size:12px}.payment-history-table thead th:nth-child(1){width:31%}.payment-history-table thead th:nth-child(2){width:37%}.payment-history-table thead th:nth-child(3),.payment-history-table thead th:nth-child(4){width:16%}.payment-history-table tbody tr:nth-child(even) td:not(.payment-plan-cell){background:#f7fafc}.payment-history-table .payment-plan-start td{border-top-width:2px;border-top-color:#526979}.payment-plan-cell{background:#ffe699!important;text-align:left}.payment-plan-cell b{display:block;color:#4d3700;font-size:13px}.payment-plan-cell span{display:block;margin-top:3px;font-size:11px;font-weight:800;color:#7a5d00}.payment-plan-cell small{display:block;margin-top:6px;color:#5e6570;line-height:1.35}.payment-plan-total{margin-top:8px;padding-top:6px;border-top:1px solid #d3b94d;font-weight:900;color:#273b4d}.payment-time-cell b,.payment-time-cell span,.payment-time-cell small{display:block}.payment-time-cell b{color:#173d60}.payment-time-cell span{margin-top:3px;font-size:11px;color:#516b80}.payment-time-cell small{margin-top:3px;color:#788895}.payment-amount-cell,.payment-debt-cell{text-align:right;white-space:nowrap;font-weight:900}.payment-amount-cell.income{color:#08783c}.payment-amount-cell.refund{color:#c01620}.payment-debt-cell.has-debt{color:#c01620}.payment-debt-cell.paid-off{color:#08783c}.payment-history-table tfoot th{background:#dce9f5;text-align:right;font-size:13px}.payment-history-table tfoot th:first-child{text-align:center}.payment-history-empty{padding:35px!important;text-align:center;color:#718096}.payment-history-note{margin-top:9px;padding:8px 10px;border:1px solid #b8c9d6;background:#edf6fd;color:#4b6377;font-size:11px}.payment-history-actions{display:flex;justify-content:flex-end;margin-top:10px}@media(max-width:720px){.payment-history-summary{grid-template-columns:1fr 1fr}.payment-history-body{padding:7px}}

.v65-date-control{position:relative;display:inline-flex;align-items:stretch;width:100%;min-width:122px;max-width:100%;vertical-align:middle}.v65-date-control.datetime{min-width:178px}.v65-date-control.time{min-width:92px}.v65-date-display{box-sizing:border-box!important;width:100%!important;min-width:0!important;padding-right:32px!important;font-variant-numeric:tabular-nums}.v65-date-icon{position:absolute;right:1px;top:1px;bottom:1px;width:29px;display:grid;place-items:center;border-left:1px solid #b2c0cc;background:linear-gradient(#fff,#e8eef3);color:#1769aa;font-size:14px;pointer-events:none}.v65-native-picker{position:absolute!important;right:0!important;top:0!important;width:31px!important;min-width:31px!important;height:100%!important;margin:0!important;padding:0!important;opacity:0!important;cursor:pointer!important;z-index:2}.v65-date-display:invalid{border-color:#d7333f!important;background:#fff8f8!important}.v65-date-display:focus{outline:0;box-shadow:0 0 0 2px rgba(15,111,191,.2)}

/* ===== v61 image + diagnosis/protocol manager ===== */
.v61-media-modal{width:min(1460px,98vw);height:min(96vh,980px);display:grid;grid-template-rows:auto 1fr;background:#eef3f7;border:1px solid #8ea5b8;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.v61-media-layout{min-height:0;display:grid;grid-template-columns:290px minmax(0,1fr)}
.v61-history{min-height:0;display:flex;flex-direction:column;border-right:1px solid #b9c7d3;background:#f8fbfd}.v61-history-title{padding:11px 12px;font-weight:900;color:#0d3f8a;border-bottom:1px solid #c7d3dd;background:linear-gradient(#fff,#edf4f9)}
.v61-history-scroll{overflow:auto;padding:9px;display:grid;gap:12px}.v61-history-group{display:grid;gap:6px}.v61-history-label{font-size:11px;font-weight:900;text-transform:uppercase;color:#63778b}.v61-history-row{display:grid;gap:3px;width:100%;padding:9px;text-align:left;border:1px solid #c3d0da;background:#fff;border-radius:5px;cursor:pointer;color:#29475f}.v61-history-row:hover,.v61-history-row.active{border-color:#4e9ed8;box-shadow:0 5px 13px rgba(13,97,183,.14);background:#f5fbff}.v61-history-row span{font-size:11px;color:#718096}
.v61-work{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr}.v61-tabsbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid #bdcbd6;background:#fff}.v61-tabs{display:flex;gap:7px}.v61-tab{padding:8px 14px;border:1px solid #9db4c7;background:#edf3f7;color:#29475f;border-radius:4px;font-weight:900;cursor:pointer}.v61-tab.active{color:#fff;border-color:#0d61b7;background:linear-gradient(#2c99e1,#0d67bb)}.v61-content{overflow:auto;padding:10px}
.v61-upload-toolbar{display:grid;grid-template-columns:170px minmax(250px,1fr) auto;gap:9px;align-items:end;margin-bottom:9px}.v61-upload-toolbar label{font-size:11px;font-weight:900;color:#4b6174}.v61-upload-toolbar input{width:100%;height:34px;border:1px solid #a4b7c8;padding:5px 7px}.v61-upload-actions{display:flex;gap:7px}
.v61-patient{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;padding:9px 10px;margin-bottom:9px;background:#fff;border:1px solid #bac8d4}.v61-patient b{display:block;font-size:10px;color:#718096;text-transform:uppercase;margin-bottom:3px}.v61-patient strong{color:#0d3f8a}
.v61-chart-row{display:grid;grid-template-columns:minmax(620px,1.2fr) minmax(300px,.8fr);gap:10px}.v61-box{background:#fff;border:1px solid #b7c7d4;padding:10px}.v61-box-title{font-weight:900;color:#0d3f8a;margin-bottom:8px}.v61-chart-options{display:flex;gap:16px;margin-bottom:8px;font-size:12px}.v61-chart-options label{display:flex;align-items:center;gap:5px}.v61-chart-scroll{overflow:auto}.v61-chart-scroll .tooth-arch-wrap{margin-bottom:6px}.v61-chart-scroll .tooth-arch{min-width:max-content}.v61-selected-teeth{margin-top:7px;padding:6px 8px;border:1px dashed #a7bdd0;background:#f7fbff;font-size:12px;color:#4d667c}
.v61-issues{max-height:360px;overflow:auto}.v61-issue-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:7px}.v61-issue-btn{padding:8px;border:1px solid #a9bdd0;background:#f4f8fb;border-radius:4px;cursor:pointer;color:#29475f;font-weight:800}.v61-issue-btn:hover{background:#e8f5ff;border-color:#4f9ed5}.v61-add-issue{display:grid;grid-template-columns:1fr 100px;gap:6px;margin-top:9px}.v61-add-issue input{height:34px;border:1px solid #9fb4c6;padding:5px 7px}.v61-issue-map{margin-top:9px;border:1px solid #ccd7df;max-height:170px;overflow:auto}.v61-issue-map table{width:100%;border-collapse:collapse;font-size:11px}.v61-issue-map th,.v61-issue-map td{border-bottom:1px solid #dce4ea;padding:5px 7px;text-align:left}.v61-issue-map th{position:sticky;top:0;background:#edf4f9}.v61-remove-issue{border:1px solid #e4b1b1;background:#fff6f6;color:#b21f1f;border-radius:3px;cursor:pointer}
.v61-protocol-form{display:grid;gap:9px;margin-top:10px}.v61-meta{display:grid;grid-template-columns:180px 1fr;gap:8px}.v61-meta input{height:34px;border:1px solid #9fb4c6;padding:5px 7px}.v61-protocol-section{background:#fff;border:1px solid #b7c7d4}.v61-protocol-head{padding:7px 9px;background:#5f98cb;color:#fff;font:900 18px 'Arial',serif}.v61-protocol-body{padding:8px}.v61-protocol-body textarea{width:100%;min-height:115px;border:1px solid #a4b6c5;padding:7px;resize:vertical}.v61-auto-diagnosis{white-space:pre-wrap;min-height:70px;margin-top:7px;padding:7px;border:1px dashed #b9cedd;background:#f8fbfd;font-size:12px}.v61-stage-list{display:grid;gap:7px}.v61-stage{border:1px solid #d4dfe7}.v61-stage-head{display:grid;grid-template-columns:110px 1fr;gap:7px;align-items:center;padding:6px;background:#f7eadc}.v61-stage-head b{color:#a33800}.v61-stage-head input{height:31px;border:1px solid #a9b8c5;padding:4px 6px;font-weight:800}.v61-stage textarea{width:100%;min-height:74px;border:0;border-top:1px solid #d4dfe7;padding:7px;resize:vertical}.v61-protocol-actions{display:flex;justify-content:flex-end;gap:7px;margin-bottom:10px}
/* v62 compact chart + spreadsheet protocol */
.v61-chart-row{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.v61-chart-scroll{overflow-x:hidden}.v61-chart-scroll .tooth-arch-wrap{overflow:visible}.v61-chart-scroll .tooth-arch{width:100%;min-width:0;gap:2px}.v61-chart-scroll .tooth-arch.adult{grid-template-columns:repeat(16,minmax(0,1fr))}.v61-chart-scroll .tooth-arch.child{grid-template-columns:repeat(10,minmax(0,1fr));max-width:65%;margin:auto}.v61-chart-scroll .tooth-tile{width:100%;height:70px;padding:1px 1px 17px}.v61-chart-scroll .tooth-glyph{height:48px}.v61-chart-scroll .tooth-glyph svg{width:30px;height:46px}.v61-stage-table{width:100%;border-collapse:collapse;table-layout:fixed}.v61-stage-table th,.v61-stage-table td{border:1px solid #b9c7d3;padding:0}.v61-stage-table th{padding:8px;background:#e8eef7;color:#4d3d73}.v61-stage-table .v61-stage-label{width:105px;padding:8px;background:#f7e3d2;color:#9d3900;font-weight:900;vertical-align:top}.v61-stage-table input{width:100%;min-height:38px;border:0;padding:7px}.v61-stage-table .wire{width:25%}.v61-stage-table .size{width:17%}.v61-stage-table .duration{width:18%}.v61-stage-table .note{width:40%}.v61-stage-row-actions{display:flex;gap:5px;padding:5px;background:#fafcfd}.v61-stage-add,.v61-stage-remove{border:1px solid #9fb4c6;background:#fff;border-radius:3px;padding:4px 7px;cursor:pointer}.v61-stage-remove{color:#b21f1f}
.v61-protocol-report-grid{display:block!important}.v61-report-sec{margin-top:7px}.v61-report-text{min-height:120px}.v61-stage-head-report,.v61-stage-report{grid-template-columns:25% 17% 18% 40%}.v61-stage-report .stage-name{grid-column:1/-1}.v61-stage-report.is-row .stage-name{display:none}
/* Protocol report page, patterned after the traditional treatment-plan sheet */
.v61-protocol-report{position:relative;box-sizing:border-box;width:794px;min-width:794px;min-height:1123px;margin:0 auto 16px;padding:10px;background:#fff;border:1px solid #bdc8d2;box-shadow:0 4px 18px rgba(0,0,0,.12);font-family:Arial,sans-serif;color:#172535;overflow:hidden}.v61-protocol-banner{padding:18px 10px;text-align:center;background:#ffc21a;color:#665176;font:700 27px 'Arial',serif;border:1px solid #d9bd67}.v61-protocol-report-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:7px;margin-top:4px}.v61-report-sec{border:1px solid #c7d3dd;background:#f7f7f7}.v61-report-title{padding:6px 8px;background:#5f98cb;color:#fff;font:900 18px 'Arial',serif}.v61-report-text{min-height:190px;padding:9px;white-space:pre-wrap;line-height:1.55}.v61-stage-head-report{display:grid;grid-template-columns:115px 90px 65px 1fr;background:#e8e8f5;color:#77518c;font-weight:900;text-align:center}.v61-stage-head-report div,.v61-stage-report div{padding:6px;border-right:1px solid #ccd5df;border-bottom:1px solid #ccd5df}.v61-stage-report{display:grid;grid-template-columns:115px 90px 65px 1fr}.v61-stage-report .stage-name{background:#f7e3d2;color:#a53900;font-weight:900}.v61-report-actions{display:flex;gap:7px}
.v61-modal-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.v61-history-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border:1px solid #c3d0da;border-radius:5px;background:#fff;overflow:hidden}.v61-history-entry.active{border-color:#238bd0;box-shadow:0 0 0 2px rgba(35,139,208,.15)}.v61-history-entry .v61-history-row{border:0;border-radius:0;box-shadow:none}.v61-history-actions{display:flex;flex-direction:column;border-left:1px solid #d5e0e8}.v61-history-actions button{flex:1;min-width:44px;padding:3px 6px;border:0;border-bottom:1px solid #d5e0e8;background:#f4f8fb;color:#075aa8;font-size:10px;font-weight:900;cursor:pointer}.v61-history-actions button:last-child{border-bottom:0}.v61-history-actions button:hover{background:#e1f2ff}.v61-history-actions button.danger{color:#b42318;background:#fff5f5}.v61-history-actions button.danger:hover{background:#ffe1e1}.v61-edit-banner{display:flex;align-items:center;gap:12px;margin-bottom:9px;padding:8px 10px;border:1px solid #73add7;border-left:4px solid #0d67bb;background:#edf8ff;color:#244c69}.v61-edit-banner b{color:#075aa8}.v61-edit-banner span{font-size:11px}.v61-edit-banner.is-new{border-color:#72c394;border-left-color:#159447;background:#effcf4}.v61-edit-banner.is-new b{color:#08772d}.v61-upload-actions{flex-wrap:wrap;justify-content:flex-end}.v61-upload-actions .btn,.v61-protocol-actions .btn,.v61-modal-head-actions .btn{white-space:nowrap}
@media(max-width:900px){.v61-media-modal{width:100vw;height:100vh}.v61-media-layout{grid-template-columns:1fr}.v61-history{max-height:185px;border-right:0;border-bottom:1px solid #b9c7d3}.v61-history-scroll{grid-template-columns:1fr 1fr}.v61-chart-row{grid-template-columns:1fr}.v61-patient{grid-template-columns:repeat(2,1fr)}.v61-upload-toolbar{grid-template-columns:1fr}.v61-tabsbar{align-items:flex-start;flex-direction:column}.v61-content{padding:7px}}
/* v62.1 final Excel layout: keep after legacy declarations so it wins the cascade */
.v61-stage-list{display:block;overflow-x:auto}.v61-stage-table{min-width:860px;border:2px solid #27343d;border-collapse:collapse;table-layout:fixed;font-family:Arial,sans-serif}.v61-stage-table th,.v61-stage-table td{border:1px solid #27343d}.v61-stage-table thead th{height:42px;padding:7px;background:#c6efce;color:#111;font-weight:900;text-align:center}.v61-stage-table .stage-col{width:15%}.v61-stage-table .wire{width:24%}.v61-stage-table .size{width:20%}.v61-stage-table .duration{width:20%}.v61-stage-table .note{width:21%}.v61-stage-table .v61-stage-label{padding:8px;background:#ffe699;color:#111;text-align:center;vertical-align:middle;font-weight:900}.v61-stage-table tbody td{height:38px;background:#fff;vertical-align:middle}.v61-stage-table input{box-sizing:border-box;width:100%;height:38px;min-height:38px;border:0;outline:0;padding:6px 8px;background:transparent;font:14px Arial,sans-serif}.v61-stage-table input:focus{box-shadow:inset 0 0 0 2px #1f8f45;background:#f7fff8}.v61-stage-row-actions{justify-content:center;background:transparent;padding:7px 0 0}.v61-stage-add{border:1px solid #38761d;background:#e2f0d9;color:#245b13;font-weight:900}.v61-stage-remove{float:right;margin:6px 5px 0 0;padding:2px 6px;border-color:#d89b9b;background:#fff3f3;font-size:11px}.v61-protocol-report-grid,.v61-report-sec{box-sizing:border-box;width:100%;max-width:100%}.v61-protocol-report-grid{display:block!important}.v61-report-sec{margin-top:7px;overflow:visible}.v61-report-text{min-height:120px}.v62-report-table{box-sizing:border-box;width:100%!important;max-width:100%!important;min-width:0!important;margin:0;border:2px solid #27343d;border-collapse:collapse;table-layout:fixed!important;font-size:12px}.v62-report-table th,.v62-report-table td{box-sizing:border-box;min-width:0;border:1px solid #27343d;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:break-word!important;line-height:1.35}.v62-report-table th{height:auto;min-height:38px;padding:7px 5px;background:#c6efce;color:#111;text-align:center;font-weight:900}.v62-report-table td{height:auto!important;min-height:29px;padding:6px;background:#fff;vertical-align:top}.v62-report-table .stage-cell{background:#ffe699;color:#111;text-align:center;vertical-align:middle;font-weight:900}.v62-report-table.is-compact{font-size:11px}.v62-report-table.is-compact th,.v62-report-table.is-compact td{padding:4px}.v62-report-table.is-dense{font-size:9.5px}.v62-report-table.is-dense th,.v62-report-table.is-dense td{padding:3px;line-height:1.25}

${v61CombinedReportCss()}

${v61CombinedReportCss()}@page{size:A4 portrait;margin:0}@media print{body{background:#fff;margin:0}.media53-report-page,.v61-protocol-report{box-shadow:none;border:0;margin:0;width:210mm;height:297mm;min-height:297mm;page-break-after:always;overflow:hidden}.media53-report-page:last-child,.v61-protocol-report:last-child{page-break-after:auto}}
/* ===== V101: mobile workspace, responsive public media and adaptive price list ===== */
html,body{max-width:100%;min-width:0}
.v82-hero-slide picture,.v82-card-image picture,.v82-case-photo picture{display:block;width:100%;height:100%}
.v82-hero-slide picture img,.v82-card-image picture img,.v82-case-photo picture img{width:100%;height:100%;object-fit:cover}
.v82-card-slides picture{display:contents}
.gt-cover-pair{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(90px,.75fr);gap:2px;background:#dbe5f1}
.gt-banner-quality-note{display:grid;gap:3px;padding:9px 11px;border-top:1px solid #b8d4f4;border-bottom:1px solid #b8d4f4;background:#edf6ff;color:#315777;font-size:11px;line-height:1.45}.gt-banner-quality-note b{color:#0751a5;font-size:12px}.gt-banner-quality-note span{display:block}
.gt-cover-pair .gt-card-cover{height:150px}
.gt-cover-pair .gt-card-cover.mobile{height:150px}
.gt-media-label{position:absolute;top:6px;left:6px;z-index:2;padding:3px 6px;border-radius:10px;background:#0b3c91dd;color:#fff;font-size:9px;font-weight:900;letter-spacing:.3px}
.gt-responsive-media-editor{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 10px 0;background:#f5f8fc}
.gt-responsive-media-editor>div>b{display:block;margin:0 0 4px;color:#24476f;font-size:10px;text-transform:uppercase}
.gt-responsive-media-editor .gt-subimg-row{padding:0;gap:4px}
.gt-responsive-media-editor .gt-subimg-slot{height:110px}
.gt-responsive-media-editor .gt-subimg-row.mobile .gt-subimg-slot{height:130px}
.mobile-view-controls{display:none;position:fixed;z-index:10050;right:8px;bottom:max(8px,env(safe-area-inset-bottom));padding:3px;border:1px solid #9db7d6;border-radius:20px;background:#fffffff2;box-shadow:0 5px 18px #17365f33;backdrop-filter:blur(8px)}
.mobile-view-controls button{min-height:30px;border:0;border-radius:16px;padding:0 9px;background:transparent;color:#23446e;font-size:10px;font-weight:800}
.mobile-view-controls button.active{background:#1769d2;color:#fff}
.v101-price-fit-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;color:#52647e;font-size:11px}
.v101-price-fit-toolbar button{height:32px;border:1px solid #b8cbe2;border-radius:16px;padding:0 11px;background:#fff;color:#24518a;font-size:11px;font-weight:800;cursor:pointer}
.v101-price-fit-toolbar button.active{border-color:#1769d2;background:#1769d2;color:#fff}
.v92-price-page[data-price-fit="fit"] .v92-price-table{min-width:0;table-layout:fixed;font-size:11px}
.v92-price-page[data-price-fit="fit"] .v92-price-table th,.v92-price-page[data-price-fit="fit"] .v92-price-table td{padding:6px 4px;overflow-wrap:anywhere;white-space:normal}
.v92-price-page[data-price-fit="fit"] .v92-price-table thead th:first-child,.v92-price-page[data-price-fit="fit"] .v92-price-table tbody td:first-child{min-width:0;width:24%}
.v92-price-page[data-price-fit="scroll"] .v92-price-table{min-width:max(980px,calc(var(--v101-price-columns,7) * 135px))}

@media(max-width:900px){
  body.v101-mobile-controls-visible .mobile-view-controls{display:flex}
  #app-screen{height:100dvh;min-height:0;overflow:hidden}
  #app-screen .legacy-app-window{height:100dvh;min-height:0;overflow:hidden}
  #app-screen .legacy-caption,#app-screen .traditional-ribbon-header,#app-screen .work-titlebar,#app-screen .statusbar{flex:0 0 auto}
  .ribbon-tab-row{align-items:stretch;overflow:hidden}
  .ribbon-tab-row .nav-wrap{flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .ribbon-tab-row .nav{width:max-content;min-width:100%;flex-wrap:nowrap}
  .ribbon-tab-row .nav button{flex:0 0 auto;white-space:nowrap;min-height:38px}
  .ribbon-language-switcher{flex:0 0 auto;max-width:132px}
  .traditional-ribbon-header .ribbon-actions{min-height:78px;max-height:88px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;touch-action:pan-x}
  .traditional-ribbon-header .ribbon-actions>*{flex:0 0 auto}
  .work-titlebar{min-height:42px;padding:4px 8px;gap:6px;overflow:hidden}
  .clinic-home{min-width:0;max-width:62vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .user-chip{max-width:36vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #page-root{flex:1 1 auto;min-height:0;width:100%;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;padding-bottom:48px}
  #page-root>.page{min-height:max-content;max-width:100%;overflow:visible}
  #page-root .desktop-module,#page-root .card,#page-root .desktop-panel,#page-root .employee-manager-shell{min-width:0;max-width:100%}
  #page-root .table-wrap,#page-root .portal-table-wrap,#page-root .report-table-wrap,#page-root [class*="table-wrap"],#page-root [class*="grid-pane"]{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
  #page-root table{max-width:none}
  .statusbar{min-height:26px;padding:3px 7px 4px!important;padding-bottom:max(4px,env(safe-area-inset-bottom))!important;flex-direction:row!important;align-items:center!important;overflow-x:auto;white-space:nowrap}
  .statusbar .left,.statusbar .right{flex-wrap:nowrap!important}
  .modal-backdrop{padding:0;align-items:stretch}
  .modal,.clinic-profile-modal,.report-detail-modal,.v82-detail-modal{width:100vw!important;max-width:100vw!important;max-height:100dvh!important;border-radius:0!important;margin:0!important}
  .modal-body,.clinic-profile-body,.v86-detail-content{overflow:auto;-webkit-overflow-scrolling:touch}
  body[data-mobile-view="compact"] #page-root{font-size:10px}
  body[data-mobile-view="compact"] #page-root .page{padding:4px!important}
  body[data-mobile-view="compact"] #page-root th,body[data-mobile-view="compact"] #page-root td{padding:2px 3px!important;font-size:9.5px!important}
  body[data-mobile-view="compact"] .traditional-ribbon-header .ribbon-actions{min-height:64px;max-height:70px}
  body[data-mobile-view="compact"] .ribbon-action,body[data-mobile-view="compact"] .ribbon-item{transform:scale(.88);transform-origin:center bottom;margin-inline:-4px}
  body[data-mobile-view="desktop"] #page-root>.page{min-width:1280px;max-width:none}
  body[data-mobile-view="desktop"] #page-root{overflow:auto}
  body[data-mobile-view="desktop"] .traditional-ribbon-header{min-width:1180px}
  body[data-mobile-view="desktop"] #app-screen .legacy-app-window{overflow:auto}
  .gt-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
  .gt-responsive-media-editor{grid-template-columns:1fr}
  .v82-hero{min-height:clamp(320px,68dvh,620px)}
  .v82-section{padding-inline:14px}
  .v92-price-filter{align-items:start}
  .v101-price-fit-toolbar{justify-content:flex-start}
}

/* V120 SEO publishing: crawlable links and content-editor metadata. */
.v150-seo-card-link,.v150-seo-title-link{color:inherit;text-decoration:none}
.v150-seo-card-link{display:block;height:100%}
.v150-seo-title-link:hover{text-decoration:underline;text-underline-offset:3px}
.v82-card-actions a.v82-card-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.gt-seo-editor{margin:16px 0;padding:15px;border:1px solid #c9dcf7;border-radius:12px;background:#f7faff}
.gt-seo-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:10px;color:#0b3c88}
.gt-seo-heading span{font-size:12px;font-weight:500;color:#657795}
.gt-seo-preview{overflow-wrap:anywhere;margin:-2px 0 9px;color:#1761bd;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}

/* V145: chấm công nhân sự, cấu hình ca làm và tổng hợp đi muộn/về sớm/tăng ca. */
.attendance-modal{box-sizing:border-box;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1500px,97vw);max-height:94vh;border:1px solid #8cabc6;border-radius:10px;background:#f5f8fb;box-shadow:0 22px 70px rgba(10,42,72,.34);overflow:hidden}
.attendance-modal>.modal-head{padding:11px 14px;background:linear-gradient(90deg,#eaf5ff,#fff)}
.attendance-modal>.modal-head b{color:#124f89;font-size:16px}.attendance-content{min-height:0;padding:12px;overflow:auto}
.attendance-actions{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(180px,1fr) max-content max-content;align-items:end;gap:8px;padding:10px;border:1px solid #a9c8e2;border-radius:8px;background:#fff}
.attendance-actions label,.attendance-settings label,.attendance-filter label{display:grid;gap:4px;min-width:0;color:#31546f;font-size:11px;font-weight:800}
.attendance-actions select,.attendance-settings input,.attendance-filter input,.attendance-filter select{box-sizing:border-box;width:100%;min-width:0;height:36px;padding:5px 8px;border:1px solid #9cb7cd;border-radius:5px;background:#fff;color:#17324a;font:inherit}
.attendance-actions .btn{min-height:36px;white-space:nowrap}
.attendance-settings{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr)) max-content;align-items:end;gap:8px;margin-top:9px;padding:10px;border:1px solid #b9cad8;border-radius:8px;background:#fff}
.attendance-settings-title{grid-column:1/-1;display:flex;align-items:baseline;gap:10px;color:#174f83}.attendance-settings-title b{font-size:13px}.attendance-settings-title span{color:#65798b;font-size:10px}
.attendance-settings label{position:relative}.attendance-settings label small{position:absolute;right:7px;bottom:9px;color:#708495;font-size:9px;pointer-events:none}.attendance-settings label:has(small) input{padding-right:68px}
.attendance-workdays{grid-column:1/7;display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:34px;padding:0 6px;border:1px solid #d2dce5;border-radius:5px;background:#f8fafc;color:#31546f;font-size:10px}.attendance-workdays>b{margin-right:4px}.attendance-workdays label{display:flex;grid-auto-flow:column;align-items:center;gap:3px}.attendance-workdays input{width:auto;height:auto}
.attendance-filter{display:grid;grid-template-columns:145px 145px minmax(200px,1.3fr) minmax(170px,1fr) max-content;align-items:end;gap:8px;margin-top:9px;padding:9px;border:1px solid #b9cad8;border-radius:8px;background:#eef5fb}.attendance-filter .btn{min-height:36px}
.attendance-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:7px;margin-top:9px}.attendance-summary>div{display:grid;gap:4px;min-height:58px;padding:9px;border:1px solid #cbd9e5;border-radius:8px;background:#fff}.attendance-summary span{color:#65798a;font-size:10px;font-weight:800;text-transform:uppercase}.attendance-summary b{color:#164f82;font-size:17px}.attendance-summary .warn b{color:#d78200}.attendance-summary .bad b{color:#d02a35}.attendance-summary .good b{color:#078242}
.attendance-table-wrap{margin-top:9px;max-height:48vh;border:1px solid #9eb6ca;border-radius:8px;background:#fff}.attendance-table{min-width:1240px}.attendance-table th{position:sticky;top:0;z-index:1}.attendance-table td{vertical-align:middle}.appointment-tool.attendance{border-color:#89b8df!important;background:#eef7ff!important;color:#1265a8!important}
@media(max-width:900px){
  .attendance-modal{width:100vw;max-height:100dvh;border-radius:0}.attendance-content{padding:7px}
  .attendance-actions{grid-template-columns:1fr 1fr}.attendance-actions .btn{box-sizing:border-box;width:100%;min-width:0;white-space:normal}
  .attendance-settings{grid-template-columns:1fr 1fr}.attendance-settings-title,.attendance-workdays{grid-column:1/-1}.attendance-settings>button{grid-column:1/-1;width:100%}
  .attendance-filter{grid-template-columns:1fr 1fr}.attendance-filter>button{grid-column:1/-1;width:100%}
  .attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-summary>div{min-height:48px;padding:6px}.attendance-summary span{font-size:8px}.attendance-summary b{font-size:13px}
  .attendance-table-wrap{max-height:50vh}.attendance-actions label,.attendance-settings label,.attendance-filter label{font-size:9px}
}

/* V107.2 - Báo cáo lịch sử phân bổ độc lập */
#report-filter,
#allocation-history-search {
  background:linear-gradient(#2189da,#0965ad)!important;
  border:1px solid #075a99!important;
  color:#fff!important;
  font-weight:800;
  text-shadow:0 1px 0 rgba(0,0,0,.16);
  box-shadow:inset 0 1px rgba(255,255,255,.28),0 1px 2px rgba(4,63,111,.22);
}
#report-filter:hover,
#report-filter:focus,
#allocation-history-search:hover,
#allocation-history-search:focus {
  background:linear-gradient(#1477c4,#064f91)!important;
  color:#fff!important;
}
.allocation-history-page .page-head { margin-bottom:8px; }
.allocation-history-filter { padding:9px 10px; border-radius:3px; }
.allocation-history-filter-grid {
  display:grid;
  grid-template-columns:minmax(220px,.75fr) minmax(360px,1.6fr) max-content max-content;
  gap:8px;
  align-items:end;
}
.allocation-history-filter-grid .field { min-width:0; }
.allocation-history-filter-grid .field label { display:block; margin-bottom:4px; font-size:11px; font-weight:800; color:#314e72; }
.allocation-history-filter-grid input,
.allocation-history-filter-grid select { width:100%; min-height:32px; }
.allocation-history-filter-grid > .btn { min-height:32px; white-space:nowrap; }
.allocation-history-results { margin-top:9px; padding:8px; border-radius:3px; }
.allocation-history-results .report-panel-title { margin-bottom:6px; }
.allocation-history-table-wrap { max-height:calc(100vh - 360px); overflow:auto; }
.allocation-history-table { min-width:1380px; table-layout:fixed; }
.allocation-history-table th { position:sticky; top:0; z-index:2; background:#2453a0; color:#fff; text-align:center; }
.allocation-history-table th:nth-child(1) { width:54px; }
.allocation-history-table th:nth-child(2) { width:190px; }
.allocation-history-table th:nth-child(3) { width:125px; }
.allocation-history-table th:nth-child(4) { width:250px; }
.allocation-history-table th:nth-child(5),
.allocation-history-table th:nth-child(6),
.allocation-history-table th:nth-child(8) { width:145px; }
.allocation-history-table th:nth-child(7) { width:175px; }
.allocation-history-table th:nth-child(9) { width:225px; }
.allocation-history-table td { vertical-align:top; line-height:1.35; }
.allocation-history-table td[rowspan] { background:#f5f8fc; border-right-color:#a9bad0; }
.allocation-history-table small { display:block; margin-top:3px; color:#62768e; font-size:10px; }
.allocation-history-table .allocation-stt { text-align:center; font-weight:900; color:#0b4c91; }
.allocation-history-table .allocation-phone { white-space:nowrap; }
.allocation-history-table .allocation-note { white-space:normal; }
.allocation-search-placeholder { padding:50px 15px!important; color:#60758e; }
.allocation-history-results .report-detail-btn:disabled { opacity:.45; cursor:not-allowed; }
@media (max-width:900px) {
  .allocation-history-filter-grid { grid-template-columns:1fr 1fr; }
  .allocation-history-customer-field { grid-column:1/-1; }
}
@media (max-width:560px) {
  .allocation-history-filter-grid { grid-template-columns:1fr; }
  .allocation-history-customer-field { grid-column:auto; }
}

@media(max-width:640px) and (orientation:portrait){
  .public-login-header{padding:8px 10px}
  .public-brand-welcome,.public-brand-wish{display:none}
  .public-main-tabs{overflow-x:auto;justify-content:flex-start;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .public-main-tab{flex:0 0 38%;scroll-snap-align:start}
  .v82-nav{position:sticky;top:0;z-index:30;padding:7px 10px!important}
  .v82-brand small{display:none}
  .v82-hotline{font-size:0;padding:8px!important}.v82-hotline::before{content:'☎';font-size:17px}
  .v82-hero{height:min(76dvh,640px);min-height:410px}
  .v82-service-grid,.v82-product-grid{grid-template-columns:1fr!important}
  .v82-service-card,.v82-product-card{max-width:100%;margin-inline:auto}
  .v82-card-image{height:auto;aspect-ratio:3/4}
  .v82-case-pair{grid-template-columns:1fr!important;grid-template-rows:260px 260px!important}
  .v82-gallery figure{flex-basis:86vw;width:86vw}
  .v92-price-heading{display:grid;grid-template-columns:1fr;margin-bottom:14px}
  .v92-price-back{width:max-content}
  .v101-price-fit-toolbar{display:grid;grid-template-columns:auto repeat(3,1fr);width:100%}
  .v101-price-fit-toolbar button{padding:0 5px;font-size:9.5px}
  .v92-price-page[data-price-fit="auto"] .v92-price-table-wrap{overflow:visible;border:0;background:transparent}
  .v92-price-page[data-price-fit="auto"] .v92-price-table{display:block;min-width:0;background:transparent}
  .v92-price-page[data-price-fit="auto"] .v92-price-table thead{display:none}
  .v92-price-page[data-price-fit="auto"] .v92-price-table tbody{display:grid;gap:10px}
  .v92-price-page[data-price-fit="auto"] .v92-price-table tr{display:block;border:1px solid #c8d5e5;border-radius:10px;background:#fff!important;box-shadow:0 2px 7px #17365f12;overflow:hidden}
  .v92-price-page[data-price-fit="auto"] .v92-price-table td{display:grid;grid-template-columns:minmax(105px,42%) minmax(0,1fr);gap:8px;align-items:center;min-width:0!important;width:auto!important;padding:7px 9px;border:0;border-bottom:1px solid #e3e9f1;text-align:right;white-space:normal}
  .v92-price-page[data-price-fit="auto"] .v92-price-table td:last-child{border-bottom:0}
  .v92-price-page[data-price-fit="auto"] .v92-price-table td::before{content:attr(data-label);color:#526985;font-size:10px;font-weight:800;text-align:left}
  .v92-price-page[data-price-fit="auto"] .v92-price-table td:first-child{display:block;padding:10px;background:#edf4ff;color:#123b78;text-align:left;font-size:13px;font-weight:900}
  .v92-price-page[data-price-fit="auto"] .v92-price-table td:first-child::before{display:none}
  .v92-price-page[data-price-fit="fit"] .v92-price-table{font-size:8.5px}
  .v92-price-page[data-price-fit="fit"] .v92-price-table th,.v92-price-page[data-price-fit="fit"] .v92-price-table td{padding:4px 2px}
  .v92-price-page[data-price-fit="scroll"] .v92-price-table{min-width:max(820px,calc(var(--v101-price-columns,7) * 112px))}
  .gt-cover-pair{grid-template-columns:1fr 38%}
  .gt-cover-pair .gt-card-cover{height:125px}.gt-cover-pair .gt-card-cover.mobile{height:125px}
}

@media(max-width:900px) and (orientation:landscape){
  .v82-hero{height:calc(100dvh - 88px);min-height:280px}
  .v92-price-page[data-price-fit="auto"] .v92-price-table{min-width:0;table-layout:fixed;font-size:9px}
  .v92-price-page[data-price-fit="auto"] .v92-price-table th,.v92-price-page[data-price-fit="auto"] .v92-price-table td{padding:4px 3px;white-space:normal;overflow-wrap:anywhere}
  .v92-price-page[data-price-fit="auto"] .v92-price-table thead th:first-child,.v92-price-page[data-price-fit="auto"] .v92-price-table tbody td:first-child{min-width:0;width:25%}
}

/* V102: liên hệ nổi và nút về đầu trang trên website công khai */
.v102-contact-widget{position:fixed;right:22px;bottom:22px;z-index:460;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.v102-contact-panel{width:248px;padding:12px;border-radius:18px;background:linear-gradient(145deg,#0756c7,#063c91);box-shadow:0 14px 40px #001b4b45;color:#fff;display:grid;gap:8px;opacity:0;visibility:hidden;transform:translateY(14px) scale(.96);transition:.22s ease;pointer-events:auto}
.v102-contact-widget.open .v102-contact-panel{opacity:1;visibility:visible;transform:none}
.v102-contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:2px 2px 4px}
.v102-contact-head b{display:block;font-size:15px}.v102-contact-head small{display:block;margin-top:3px;color:#d9e9ff;line-height:1.3}
.v102-contact-head button{border:0;background:transparent;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.v102-contact-panel>a,.v102-contact-panel>button:not(.v102-contact-head button){height:46px;border:0;border-radius:12px;background:#fff;color:#0c315f;display:flex;align-items:center;gap:10px;padding:0 12px;text-decoration:none;cursor:pointer;font:inherit}
.v102-contact-panel>a:hover,.v102-contact-panel>button:hover{background:#edf5ff}
.v102-contact-panel>a span,.v102-contact-panel>button span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-weight:900;color:#0756c7;background:#e5efff}
.v102-contact-panel .messenger{background:#1677ff;color:#fff}.v102-contact-panel .zalo{background:#06a7e2;color:#fff}.v102-contact-panel .appointment span{background:#ffebd8;color:#ed5a12}
.v102-contact-launcher{width:58px;height:58px;border:3px solid #dceaff;border-radius:50%;background:#0756c7;color:#fff;box-shadow:0 8px 24px #00285a4d;font-size:26px;cursor:pointer;pointer-events:auto}
.v102-contact-widget.open .v102-contact-launcher{background:#063c91}
.v102-back-to-top{position:fixed;right:94px;bottom:27px;z-index:455;width:46px;height:46px;border:1px solid #c6daf7;border-radius:50%;background:#fff;color:#0756c7;box-shadow:0 7px 20px #052b5f35;font-size:24px;font-weight:900;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s ease}
.v102-back-to-top.visible{opacity:1;visibility:visible;transform:none}

/* V102: sổ thanh toán theo từng dòng dịch vụ */
.service-payment-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}
.service-payment-heading h3{margin-bottom:2px}.service-unallocated-warning{max-width:360px;padding:8px 10px;border:1px solid #f0bd68;border-radius:8px;background:#fff8e8;color:#8b5100;font-size:12px}
.service-payment-table td{vertical-align:middle}.service-payment-actions{display:flex;gap:5px;white-space:nowrap}
.service-payment-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.service-payment-status.paid{background:#dff8e8;color:#087333}.service-payment-status.partial{background:#fff1ce;color:#925400}.service-payment-status.unpaid{background:#ffe3e3;color:#a51e1e}
.service-payment-modal{width:min(720px,96vw)}.service-payment-selected{display:grid;gap:4px;padding:14px;border:1px solid #bfd7f4;border-radius:10px;background:#f4f9ff}
.service-payment-selected>span{font-size:11px;text-transform:uppercase;color:#59728f;font-weight:800}.service-payment-selected>b{font-size:18px;color:#064397}.service-payment-selected>small{color:#667b91}
.service-payment-selected>div{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:6px}.service-payment-fields{margin-top:14px}.service-payment-help{margin-top:12px;padding:9px 11px;border-left:4px solid #1477d4;background:#edf6ff;color:#31516f;font-size:12px;line-height:1.5}

@media(max-width:760px){
  .v102-contact-widget{right:12px;bottom:14px}.v102-contact-panel{width:min(270px,calc(100vw - 24px));max-height:calc(100dvh - 110px);overflow:auto}.v102-contact-launcher{width:52px;height:52px}
  .v102-back-to-top{right:76px;bottom:17px;width:44px;height:44px}
  .service-payment-heading{display:grid}.service-unallocated-warning{max-width:none}.service-payment-table-wrap{overflow-x:auto}.service-payment-table{min-width:760px}.service-payment-fields{grid-template-columns:1fr}.service-payment-selected>div{display:grid;grid-template-columns:1fr 1fr}
}

/* V107.5 - Danh mục thuốc, mẫu đơn và kê đơn theo phiếu khám */
.rx-admin-layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:650px;border-top:1px solid #aab8c6}
.rx-template-pane{border-right:1px solid #aab8c6;background:#f7f9fc}.rx-catalog-pane{min-width:0;background:#fff}
.rx-pane-head{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #aab8c6;background:linear-gradient(#fff,#eef3f8)}
.rx-pane-head>div:first-child{display:grid;gap:2px}.rx-pane-head small{color:#61758a}.rx-pane-head svg,.rx-detail-head svg,.rx-dialog svg{width:16px;height:16px;vertical-align:middle}
.icon-btn{width:32px;height:30px;display:inline-grid;place-items:center;padding:4px;border:1px solid #91a7bb;border-radius:4px;background:#fff;color:#086db5;cursor:pointer}.icon-btn.success{color:#089c45}.icon-btn.danger{color:#d32929;border-color:#e6aaaa}
.rx-template-list{display:grid;align-content:start;max-height:590px;overflow:auto}.rx-template-row{width:100%;display:grid;grid-template-columns:26px minmax(0,1fr);gap:2px 6px;padding:9px 10px;border:0;border-bottom:1px solid #d4dde6;background:#fff;text-align:left;cursor:pointer}.rx-template-row span{grid-row:1/3;color:#677c90}.rx-template-row b{overflow-wrap:anywhere}.rx-template-row small{color:#73879a}.rx-template-row.active{background:#dceeff;color:#064c83;box-shadow:inset 4px 0 #087ac1}
.rx-medicine-table{height:360px;overflow:auto}.rx-medicine-table table,.rx-template-detail table,.rx-dialog table{width:100%;border-collapse:collapse}.rx-medicine-table th,.rx-medicine-table td,.rx-template-detail th,.rx-template-detail td,.rx-dialog th,.rx-dialog td{padding:6px;border:1px solid #b9c6d2;vertical-align:top}.rx-medicine-table thead,.rx-template-detail thead,.rx-dialog thead{position:sticky;top:0;z-index:1;background:#24539c;color:#fff}.rx-medicine-table tbody tr,.dialog-medicine-list tbody tr{cursor:pointer}.rx-medicine-table tbody tr:hover,.dialog-medicine-list tbody tr:hover{background:#eaf5ff}.rx-medicine-table tbody tr.selected,.dialog-medicine-list tbody tr.selected{background:#cfe9ff;outline:2px solid #2082c4;outline-offset:-2px}
.rx-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-top:2px solid #1a61a7;border-bottom:1px solid #b5c3d0;background:#eef5fd}.rx-detail-head>div{display:flex;align-items:center;gap:12px}.rx-detail-head span{color:#0a54a0;font-weight:800}.rx-template-detail{max-height:245px;overflow:auto}
.rx-dialog{width:min(1280px,97vw);max-height:96dvh;overflow:hidden}.rx-dialog .modal-head>div{display:grid}.rx-dialog .modal-head span{font-size:12px;font-weight:400;color:#5d7185}.rx-dialog-body{max-height:calc(96dvh - 58px);overflow:auto;padding:10px;background:#f4f7fa}.rx-patient-strip{display:grid;grid-template-columns:220px minmax(260px,1fr) minmax(300px,1.4fr);gap:8px;padding:9px;border:1px solid #9db4c9;background:#fff}.rx-picker-grid{display:grid;grid-template-columns:310px minmax(0,1fr);gap:10px;margin-top:10px}.rx-picker-grid>section,.rx-patient-prescription{min-width:0;padding:9px;border:1px solid #aebdcc;background:#fff}.rx-picker-grid h3,.rx-patient-prescription h3{margin:0 0 8px;color:#0d4f8b;font-size:13px}.rx-picker-grid .dialog-list{height:250px;border:1px solid #c2cdd7;margin-bottom:8px}.dialog-medicine-list{height:250px;overflow:auto;margin-bottom:8px}.rx-patient-prescription{margin-top:10px}.rx-patient-prescription input,.rx-patient-prescription textarea,.rx-prescription-fields input,.rx-prescription-fields textarea{box-sizing:border-box;width:100%;border:1px solid #9eafbf;padding:6px;font:inherit}.rx-prescription-fields{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:10px;margin-top:10px}.rx-prescription-fields label{display:grid;gap:4px;font-weight:800}.rx-dialog .modal-actions{position:sticky;bottom:-10px;margin:10px -10px -10px;padding:10px;background:#fff;border-top:1px solid #b6c3cf}
@media(max-width:850px){.rx-admin-layout{grid-template-columns:1fr}.rx-template-pane{border-right:0;border-bottom:1px solid #aab8c6}.rx-template-list{max-height:220px}.rx-picker-grid{grid-template-columns:1fr}.rx-patient-strip,.rx-prescription-fields{grid-template-columns:1fr}.rx-dialog{width:100vw;max-height:100dvh}.rx-dialog-body{max-height:calc(100dvh - 50px)}}

/* V105: Đội ngũ 4.0 và hồ sơ bác sĩ */
.v105-team-section{padding:70px clamp(18px,5vw,80px);background:linear-gradient(180deg,#fff,#f3f7ff);overflow:hidden}
.v105-team-section>.v82-heading{max-width:980px;margin:0 auto 34px;text-align:center}
.v105-team-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(430px,1fr));gap:18px;max-width:1500px;margin:auto}
.v105-team-card{min-height:320px;display:grid;grid-template-columns:minmax(0,1fr) 245px;overflow:hidden;border:1px solid #d9e4f5;border-radius:22px;background:#eaf2ff;box-shadow:0 14px 34px #12376914}
.v105-team-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:34px}.v105-team-copy>span{color:#5f6c80}.v105-team-copy h3{margin:12px 0;color:#202f6c;font-size:27px}.v105-team-copy p{min-height:58px;margin:4px 0 24px;color:#5e6877;line-height:1.6}.v105-team-copy>div{display:flex;gap:10px;flex-wrap:wrap}
.v105-team-detail,.v105-team-book{min-height:38px;padding:8px 18px;border:0;border-radius:999px;cursor:pointer;font-weight:800}.v105-team-detail{background:#f7fbff;color:#1763b0}.v105-team-book{background:#283681;color:#fff}
.v105-team-photo{height:320px;align-self:end}.v105-team-photo picture,.v105-team-photo img{display:block;width:100%;height:100%}.v105-team-photo img{object-fit:contain;object-position:center bottom}.v105-team-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#d7e7ff,#f8fbff);color:#184b8e;font-size:52px;font-weight:900}
.v105-team-modal{width:min(1220px,96vw);max-height:94dvh;overflow:auto;border-radius:16px;background:#fff}.v105-team-detail-layout{display:grid;grid-template-columns:minmax(300px,450px) minmax(0,1fr);gap:24px;padding:28px}
.v105-team-detail-photo{height:min(650px,72dvh);overflow:hidden;border-radius:45px;background:#f0f1f3}.v105-team-detail-photo picture,.v105-team-detail-photo img{display:block;width:100%;height:100%}.v105-team-detail-photo img{object-fit:contain;object-position:center bottom}
.v105-team-detail-content{display:grid;gap:22px}.v105-team-intro,.v105-team-article{padding:32px 38px;border-radius:28px;background:#e4f1ff}.v105-team-intro{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start}.v105-team-intro h1{margin:0 0 8px;color:#202f6c;font-size:34px}.v105-team-intro p{grid-column:1/-1;margin:10px 0 0;white-space:pre-line;line-height:1.7}.v105-team-intro button{padding:11px 22px;border:0;border-radius:999px;background:#29367d;color:#fff;font-weight:800;cursor:pointer}.v105-team-article{background:#f7f7f5;color:#222;line-height:1.75}.v105-team-article h2,.v105-team-article h3{color:#202f6c}.v105-team-article p{white-space:pre-line}.v105-team-article li{margin:7px 0}
.gt-team-active{display:flex;align-items:center;gap:8px;margin-top:10px;font-weight:800;color:#164c86}.gt-team-active input{width:16px;height:16px}

/* V105: phân bổ một lần thu cho nhiều dòng dịch vụ */
.service-allocation-modal{width:min(1040px,97vw)}.service-allocation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.service-allocation-summary>div{padding:12px;border:1px solid #c9d9ec;border-radius:9px;background:#f5f9ff}.service-allocation-summary span,.service-allocation-summary b{display:block}.service-allocation-summary span{color:#60758d;font-size:11px}.service-allocation-summary b{margin-top:4px;color:#074895;font-size:20px}.service-allocation-table [data-service-allocation]{width:150px;max-width:100%;text-align:right;font-weight:800;color:#174f86}.service-allocation-table [data-service-allocation]:disabled{background:#eef2f6;color:#9aa8b8;cursor:not-allowed}.service-allocation-table tr.has-allocation{background:#eaf5ff;box-shadow:inset 4px 0 #1670ca}.service-allocation-table tr.is-paid{background:#eff9f2;color:#53705b}.service-allocation-check-cell{width:58px;text-align:center}.service-allocation-check{display:inline-grid;place-items:center;width:28px;height:28px;cursor:pointer}.service-allocation-check input{width:19px;height:19px;accent-color:#126dca;cursor:pointer}.service-allocation-total{display:flex;justify-content:flex-end;gap:20px;align-items:center;padding:11px 13px;border-top:2px solid #1e68b7;background:#eff6ff;font-size:15px}.service-allocation-total b{color:#0751a5;font-size:22px}.service-allocation-help{margin:12px 0;padding:9px 12px;border-left:4px solid #1670ca;background:#edf6ff;color:#365a7c;line-height:1.5}
.service-allocation-modal:has(.service-allocation-modal-report){width:min(1420px,98vw)}
.service-allocation-tabs{display:flex;gap:8px;padding:10px 18px 0;border-bottom:1px solid #d4deeb;background:#f7f9fc}
.service-allocation-tab{min-height:44px;padding:7px 20px;border:1px solid #bdd0e6;border-bottom:3px solid transparent;border-radius:8px 8px 0 0;background:#fff;color:#16467d;font-weight:800;cursor:pointer}
.service-allocation-tab:hover{transform:translateY(-1px);box-shadow:0 4px 12px #163f7820}
.service-allocation-tab.active{border-color:#1570c8;border-bottom-color:#1570c8;background:#eaf4ff;color:#0751a5}
.service-allocation-tab.report{color:#b95600}.service-allocation-tab.report.active{border-color:#ed8a2c;border-bottom-color:#ed8a2c;background:#fff5ea;color:#a64b00}
.service-allocation-panel.hidden{display:none!important}
.service-allocation-report-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:10px;padding:10px 12px;border:1px solid #cbd9e9;border-radius:8px;background:#f4f8fd}
.service-allocation-report-heading small{display:block;margin-top:4px;color:#63778f}.service-allocation-report-heading>div:last-child{text-align:right;color:#345b86}
.service-allocation-modal-report-wrap{max-height:min(58vh,580px);overflow:auto;border:1px solid #b9cbe0}
.service-allocation-modal-report{min-width:1280px;table-layout:fixed}.service-allocation-modal-report th{position:sticky;top:0;z-index:2;background:#2453a0;color:#fff;text-align:center}
.service-allocation-report-table.service-allocation-modal-report th:nth-child(1){width:52px}.service-allocation-report-table.service-allocation-modal-report th:nth-child(2){width:160px}.service-allocation-report-table.service-allocation-modal-report th:nth-child(3){width:120px}.service-allocation-report-table.service-allocation-modal-report th:nth-child(4){width:210px}.service-allocation-report-table.service-allocation-modal-report th:nth-child(5){width:145px}.service-allocation-report-table.service-allocation-modal-report th:nth-child(6){width:230px}.service-allocation-report-table.service-allocation-modal-report th:nth-child(7){width:145px}.service-allocation-report-table.service-allocation-modal-report th:nth-child(8){width:250px}
.service-allocation-modal-report td[rowspan]{background:#f5f8fc}.service-allocation-modal-report .allocation-history-entry b,.service-allocation-modal-report .allocation-history-entry span,.service-allocation-modal-report .allocation-history-entry small{display:block}.service-allocation-modal-report .allocation-history-entry span{margin-top:4px;font-weight:700}.service-allocation-modal-report .allocation-note textarea{width:100%;min-height:54px;resize:vertical;border:1px solid transparent;background:transparent;padding:6px}.service-allocation-modal-report .allocation-note textarea:hover,.service-allocation-modal-report .allocation-note textarea:focus{border-color:#5b91cb;background:#fff;outline:none}.service-allocation-modal-report .allocation-note-status{display:block;margin-top:3px;color:#718197;font-size:10px}
.service-allocation-source{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 14px}.service-allocation-source label{display:grid;grid-template-columns:auto 1fr auto;gap:5px 9px;align-items:center;padding:12px;border:1px solid #c8d6e7;border-radius:10px;background:#fff;cursor:pointer}.service-allocation-source label.selected{border-color:#176fc4;background:#edf6ff;box-shadow:0 0 0 2px #176fc422}.service-allocation-source input{width:16px;height:16px}.service-allocation-source span{font-weight:800;color:#164677}.service-allocation-source b{color:#0751a5}.service-allocation-source small{grid-column:2/-1;color:#64778b}

@media(max-width:760px){
  .v105-team-section{padding:50px 12px}.v105-team-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.v105-team-card{min-width:88vw;grid-template-columns:1fr 150px;min-height:270px;scroll-snap-align:center}.v105-team-copy{padding:22px 16px}.v105-team-copy h3{font-size:21px}.v105-team-copy p{font-size:12px}.v105-team-photo{height:270px}.v105-team-detail-layout{grid-template-columns:1fr;padding:12px}.v105-team-detail-photo{height:390px;border-radius:26px}.v105-team-intro,.v105-team-article{padding:22px 18px;border-radius:20px}.v105-team-intro{grid-template-columns:1fr}.v105-team-intro p{grid-column:auto}.v105-team-intro h1{font-size:27px}.service-allocation-summary,.service-allocation-source{grid-template-columns:1fr}.service-allocation-table-wrap{overflow-x:auto}.service-allocation-table{min-width:760px}.service-allocation-total{position:sticky;left:0;justify-content:space-between}.service-allocation-fields{grid-template-columns:1fr!important}
}

/* V105 Hotfix 2: bố cục Đội ngũ 4.0 theo ba thẻ và hồ sơ bác sĩ có vùng cuộn */
.v105-team-section{padding:64px clamp(18px,4vw,64px)}
.v105-team-section>.v82-heading{margin-bottom:30px}
.v105-team-track{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:1740px}
.v105-team-card{width:100%;min-width:0;min-height:350px;grid-template-columns:minmax(0,56%) minmax(0,44%);border-radius:16px}
.v105-team-copy{min-width:0;padding:28px 22px}
.v105-team-copy>span{font-size:14px}.v105-team-copy h3{font-size:23px;line-height:1.2}.v105-team-copy p{display:-webkit-box;min-height:66px;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:14px}
.v105-team-photo{height:350px}.v105-team-photo img{object-fit:contain;object-position:center bottom}
.v105-team-modal{width:min(980px,96vw);max-height:96dvh;overflow:hidden}
.v105-team-modal-body{max-height:calc(96dvh - 54px);overflow-y:auto;padding:24px;scrollbar-gutter:stable}
.v105-team-detail-layout{grid-template-columns:448px minmax(0,1fr);gap:16px;padding:0;align-items:start}
.v105-team-detail-photo{width:448px;height:512px;border-radius:34px}
.v105-team-detail-content{height:512px;min-height:0;display:flex;flex-direction:column;gap:16px}
.v105-team-intro{flex:0 0 auto;padding:24px 26px;border-radius:24px}.v105-team-intro h1{font-size:27px}.v105-team-intro p{line-height:1.55}
.v105-team-article{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px 26px;border-radius:24px;scrollbar-color:#2e6bb7 #e4ebf2;scrollbar-width:thin}
.v105-team-article h2{margin-top:0}.v105-team-article::-webkit-scrollbar{width:8px}.v105-team-article::-webkit-scrollbar-thumb{border-radius:8px;background:#2e6bb7}.v105-team-article::-webkit-scrollbar-track{background:#e4ebf2}
.v105-team-related{margin-top:18px;padding-top:14px;border-top:1px solid #d9e1ea}.v105-team-related>h2{margin:0 0 14px;text-align:center;color:#202f6c;font-size:20px}
.v105-team-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.v105-team-related-card{min-width:0;overflow:hidden;padding:0 0 12px;border:1px solid #d7e0eb;border-radius:12px;background:#f1f2f3;color:#202f6c;cursor:pointer;text-align:center}
.v105-team-related-card:hover{border-color:#2d6db7;box-shadow:0 8px 20px #173e6c20;transform:translateY(-2px)}
.v105-team-related-photo{display:block;width:100%;aspect-ratio:272/378;overflow:hidden;background:#eceeef}.v105-team-related-photo picture,.v105-team-related-photo img{display:block;width:100%;height:100%}.v105-team-related-photo img{object-fit:contain;object-position:center bottom}
.v105-team-related-card b,.v105-team-related-card small{display:block;padding:0 8px}.v105-team-related-card b{margin-top:10px;font-size:13px}.v105-team-related-card small{margin-top:6px;min-height:34px;color:#3f4653;font-size:11px;line-height:1.35}

/* Công tắc bật/tắt công khai từng hồ sơ bác sĩ */
.gt-team-active{position:relative;min-height:58px;padding:10px 12px;border:1px solid #b7c9dc;border-radius:10px;background:#f5f9fd;cursor:pointer}
.gt-team-active input{position:absolute;opacity:0;pointer-events:none}.gt-team-switch{position:relative;flex:0 0 46px;width:46px;height:24px;border-radius:99px;background:#9aa8b8;box-shadow:inset 0 1px 3px #0003;transition:.2s}.gt-team-switch::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0004;transition:.2s}.gt-team-active.is-on{border-color:#58aa78;background:#effaf3;color:#126634}.gt-team-active.is-on .gt-team-switch{background:#24a852}.gt-team-active.is-on .gt-team-switch::after{transform:translateX(22px)}.gt-team-active.is-off{border-color:#d2a5a8;background:#fff5f5;color:#9f2730}.gt-team-active>span:last-child{display:grid;gap:2px}.gt-team-active small{font-weight:500;color:#627286}

/* Labo: chữ dễ đọc, phân vùng rõ và toolbar đồng bộ Nhóm thủ thuật */
@media(min-width:761px){
  .traditional-ribbon-header .nav button{font-size:12px;font-weight:700;border-left:1px solid #d3dbe4;border-right:1px solid transparent}
  .traditional-ribbon-header .ribbon-action{width:92px;min-width:92px;margin:2px;border:1px solid #d0d9e3;border-radius:4px;font-size:11.5px;line-height:1.22;background:#fff}
  .traditional-ribbon-header .ribbon-action:hover{border-color:#7eb1dc}.traditional-ribbon-header .ribbon-action .ribbon-action-label{max-width:86px}
}
.labo-ui{font-size:13px}.labo-ui .excel-directory-title,.labo-ui .card-title{font-size:14px}.labo-ui table{font-size:12.5px}.labo-ui table th{padding:7px 6px;font-size:12px}.labo-ui table td{padding:7px 6px;font-size:13px;line-height:1.35}.labo-ui table td b{font-size:13.5px}.labo-ui .small{font-size:11.5px}.labo-ui .field label{font-size:12px}.labo-ui input,.labo-ui select{font-size:13px}
.supplier-master-toolbar{justify-content:space-between;gap:10px;padding:5px 8px}.supplier-master-toolbar .left-tools{display:flex;align-items:center;gap:3px;min-width:max-content}.supplier-master-toolbar .procedure-tool{font-size:12.5px}.supplier-master-toolbar .procedure-tool-icon{width:26px;height:26px}.supplier-master-toolbar .supplier-toolbar-search{display:flex;align-items:center;gap:5px;margin-left:auto}.supplier-master-toolbar .excel-search-input{height:30px;font-size:13px}

@media(max-width:1180px) and (min-width:761px){.v105-team-track{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .v105-team-section{padding:44px 12px}.v105-team-track{display:grid;grid-template-columns:1fr;gap:14px;overflow:visible;padding-bottom:0}.v105-team-card{min-width:0;min-height:300px;grid-template-columns:minmax(0,56%) minmax(0,44%)}.v105-team-copy{padding:20px 14px}.v105-team-copy h3{font-size:20px}.v105-team-copy p{font-size:12.5px}.v105-team-photo{height:300px}
  .v105-team-modal{width:100vw;max-height:100dvh;border-radius:0}.v105-team-modal-body{max-height:calc(100dvh - 52px);padding:12px}.v105-team-detail-layout{grid-template-columns:1fr;gap:12px}.v105-team-detail-photo{width:min(100%,448px);height:auto;aspect-ratio:448/512;margin:auto;border-radius:24px}.v105-team-detail-content{height:auto}.v105-team-intro{padding:20px 17px}.v105-team-intro h1{font-size:24px}.v105-team-article{max-height:360px;padding:20px 17px}.v105-team-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .supplier-master-toolbar{align-items:flex-start;overflow-x:auto}.supplier-master-toolbar .supplier-toolbar-search{min-width:330px}.labo-ui table{font-size:12px}.labo-ui table td{font-size:12px}
}

/* V106: ảnh dịch vụ 4:3 và ảnh bác sĩ 259x359px xếp chồng lên thẻ thông tin */
.v82-service-card .v82-card-image{width:220px!important;height:auto!important;aspect-ratio:4/3;flex:0 0 auto!important}
.v82-service-card .v82-card-image picture,.v82-service-card .v82-card-image img,.v82-service-card .v82-card-slides{width:100%;height:100%}
.v82-service-card .v82-card-image img{object-fit:cover}
.v105-team-track{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1180px}

@media(min-width:761px){
  .v105-team-card{position:relative;height:320px;min-height:320px;margin:20px 0 19px;padding-right:232px;overflow:visible;grid-template-columns:1fr;border-radius:16px}
  .v105-team-copy{position:relative;z-index:1;min-width:0;width:100%;padding:28px 22px}
  .v105-team-photo{position:absolute;z-index:2;right:0;bottom:0;width:259px;height:359px;filter:drop-shadow(0 10px 12px rgba(25,54,94,.16));pointer-events:none}
  .v105-team-photo picture,.v105-team-photo img{width:259px;height:359px}
  .v105-team-photo img{object-fit:contain;object-position:center bottom}
}

@media(max-width:760px){
  .v82-service-card .v82-card-image{width:100%!important;aspect-ratio:4/3}
}

@media(max-width:900px) and (min-width:761px){
  .v105-team-track{grid-template-columns:1fr;max-width:590px}
}

/* V107: carousel 3 bác sĩ và ảnh hiển thị nguyên vẹn trong khung */
.v107-team-carousel{position:relative;max-width:1280px;margin:0 auto;padding:0 48px 38px}
.v107-team-viewport{position:relative;height:500px;overflow:hidden}
.v107-team-carousel .v105-team-track{position:relative!important;display:block!important;width:100%;max-width:none!important;height:100%;margin:0!important;overflow:visible!important}
.v107-team-carousel .v105-team-card{position:absolute!important;top:8px!important;left:50%!important;z-index:0;width:min(360px,31%)!important;height:462px!important;min-height:0!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column;overflow:hidden!important;border-radius:20px;cursor:pointer;opacity:0;filter:saturate(.65) brightness(.9);pointer-events:none;transform:translateX(-50%) scale(.86);transition:left .55s ease,transform .55s ease,opacity .4s ease,filter .4s ease,box-shadow .35s ease;will-change:left,transform,opacity}
.v107-team-carousel .v105-team-card.is-prev{left:17%!important;z-index:1;opacity:.52;pointer-events:auto;transform:translateX(-50%) scale(.9)}
.v107-team-carousel .v105-team-card.is-active{left:50%!important;z-index:3;opacity:1;filter:none;pointer-events:auto;transform:translateX(-50%) scale(1);box-shadow:0 20px 45px rgba(19,55,105,.2)}
.v107-team-carousel .v105-team-card.is-next{left:83%!important;z-index:1;opacity:.52;pointer-events:auto;transform:translateX(-50%) scale(.9)}
.v107-team-carousel .v105-team-card.is-hidden{visibility:hidden}
.v107-team-carousel .v105-team-card:not(.is-active):hover{z-index:4;opacity:.94;filter:none;transform:translateX(-50%) translateY(-8px) scale(.94);box-shadow:0 22px 46px rgba(19,55,105,.24)}
.v107-team-carousel .v105-team-card.is-active:hover{transform:translateX(-50%) translateY(-8px) scale(1.015);box-shadow:0 26px 52px rgba(19,55,105,.26)}
.v107-team-carousel .v105-team-photo{position:relative!important;inset:auto!important;display:block!important;flex:0 0 auto;width:100%!important;height:auto!important;aspect-ratio:9/6;margin:0!important;overflow:hidden;background:#eef3f9;filter:none!important;pointer-events:none}
.v107-team-carousel .v105-team-photo picture,.v107-team-carousel .v105-team-photo img{display:block;width:100%!important;height:100%!important}
.v107-team-carousel .v105-team-photo img{object-fit:contain!important;object-position:center!important;background:#eef3f9}
.v107-team-carousel .v105-team-copy{position:relative!important;z-index:auto!important;display:flex!important;flex:1 1 auto;width:100%!important;min-height:0;padding:20px 22px!important;justify-content:flex-start}
.v107-team-carousel .v105-team-copy>span{font-size:12px}.v107-team-carousel .v105-team-copy h3{margin:8px 0 6px;font-size:22px}.v107-team-carousel .v105-team-copy p{display:-webkit-box;min-height:44px;margin:0 0 14px;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5}
.v107-team-carousel .v105-team-copy>div{margin-top:auto}
.v107-team-nav{position:absolute;top:210px;z-index:8;width:42px;height:42px;border:1px solid #cbd9ed;border-radius:50%;background:#fff;color:#174f98;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(25,64,116,.16)}
.v107-team-nav:hover{background:#145eb7;color:#fff;transform:translateY(-2px)}.v107-team-nav.prev{left:0}.v107-team-nav.next{right:0}
.v107-team-dots{position:absolute;right:60px;bottom:8px;left:60px;display:flex;justify-content:center;gap:8px}.v107-team-dots button{width:9px;height:9px;padding:0;border:0;border-radius:99px;background:#aebdd0;cursor:pointer;transition:.25s}.v107-team-dots button.active{width:28px;background:#155eb8}

.v82-service-card .v82-card-image img,.v82-product-card .v82-card-image img,.v82-service-card .v82-card-slides img,.v82-product-card .v82-card-slides img{object-fit:contain!important;object-position:center!important;background:#eef3f8}
.v82-service-card .v82-card-image picture,.v82-product-card .v82-card-image picture{display:block;width:100%;height:100%}

@media(max-width:760px){
  .v107-team-carousel{padding:0 22px 34px}.v107-team-viewport{height:454px}
  .v107-team-carousel .v105-team-card{top:10px!important;width:78vw!important;max-width:340px;height:420px!important}
  .v107-team-carousel .v105-team-card.is-prev{left:-9%!important;opacity:.28;transform:translateX(-50%) scale(.8)}
  .v107-team-carousel .v105-team-card.is-next{left:109%!important;opacity:.28;transform:translateX(-50%) scale(.8)}
  .v107-team-carousel .v105-team-card.is-active{left:50%!important}
  .v107-team-carousel .v105-team-copy{padding:16px!important}.v107-team-carousel .v105-team-copy h3{font-size:20px}.v107-team-carousel .v105-team-copy p{font-size:12px}
  .v107-team-nav{top:190px;width:36px;height:36px;font-size:26px}.v107-team-nav.prev{left:2px}.v107-team-nav.next{right:2px}
  .v107-team-dots{right:24px;left:24px}
}

.service-allocation-report-table{min-width:820px}.service-allocation-report-table th:nth-child(1){width:54px}.service-allocation-report-table th:nth-child(2){width:34%}.service-allocation-report-table th:nth-child(3){width:18%}.service-allocation-report-table th:nth-child(4){width:27%}.service-allocation-report-table th:nth-child(5){width:18%}
.service-allocation-report-table td{vertical-align:top}.service-allocation-report-table td small,.service-allocation-report-table td span{display:block;margin-top:4px;color:#64758a;font-size:11px;line-height:1.35}.service-allocation-report-table .allocation-stt{text-align:center;font-weight:900;color:#17589e;background:#f3f8ff}.service-allocation-report-table .allocation-service{border-right:2px solid #bdd0e6;background:#f8fbff}.service-allocation-report-table .allocation-service b{color:#163f78;font-size:13px}.service-allocation-report-table tr.allocation-refund{background:#fff7f7}.service-allocation-report-table tr.allocation-payment:hover{background:#f2f8ff}.service-allocation-report-table .money small{font-weight:500}

/* V107.4 - Cột dữ liệu tự co giãn theo nội dung trên toàn hệ thống */
table.adaptive-data-table:not(.exam-table):not(.v61-stage-table):not(.v62-report-table){table-layout:auto!important}
table.adaptive-data-table th,table.adaptive-data-table td{box-sizing:border-box}
table.adaptive-data-table .adaptive-index-column{
  width:1%!important;min-width:34px!important;max-width:48px!important;
  padding-right:4px!important;padding-left:4px!important;text-align:center!important;
  white-space:nowrap!important;font-variant-numeric:tabular-nums
}
table.adaptive-data-table .adaptive-name-column{
  width:auto!important;min-width:180px!important;max-width:none!important;
  white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important
}
table.adaptive-data-table .adaptive-wrap-column{
  width:auto!important;min-width:120px!important;max-width:360px!important;
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
  overflow-wrap:anywhere;word-break:normal;line-height:1.35;height:auto
}
table.adaptive-data-table .adaptive-empty-column{
  width:1%!important;min-width:42px!important;padding-right:4px!important;padding-left:4px!important;
  white-space:nowrap!important
}
.desktop-grid.adaptive-data-table{min-width:max(100%,1120px)}
.desktop-grid.adaptive-data-table th,.desktop-grid.adaptive-data-table td{height:auto;min-height:27px}
.desktop-grid.adaptive-data-table .adaptive-name-column b{white-space:nowrap}
@media(max-width:760px){
  table.adaptive-data-table .adaptive-name-column{min-width:160px!important}
  table.adaptive-data-table .adaptive-wrap-column{min-width:110px!important;max-width:280px!important}
  table.adaptive-data-table .adaptive-index-column{min-width:30px!important;max-width:42px!important}
}

/* V107.5.1 - Biểu mẫu đơn thuốc đồng bộ giao diện Nhóm thủ thuật */
.rx-template-pane .procedure-pane-title,.rx-catalog-pane .procedure-pane-title{min-height:36px}.rx-template-pane .procedure-toolbar,.rx-catalog-pane .procedure-toolbar{min-height:45px}.rx-template-pane .procedure-toolbar{justify-content:flex-start}.rx-catalog-pane .procedure-toolbar{justify-content:flex-end}.rx-template-list.procedure-table-wrap{display:block;max-height:590px;overflow:auto}.rx-template-list .procedure-table{width:100%}.rx-template-list .procedure-table tbody tr{cursor:pointer}.rx-template-list .procedure-table tbody tr:hover{background:#eaf5ff}.rx-entry-window{width:min(520px,94vw)}.rx-medicine-form-window{width:min(660px,95vw)}
.rx-medicine-entry-grid{display:grid;grid-template-columns:110px minmax(0,1fr) 130px minmax(0,1fr);gap:9px;align-items:center;padding:6px}.rx-medicine-entry-grid label{font-weight:800;color:#294b70}.rx-medicine-entry-grid input,.rx-medicine-entry-grid textarea{box-sizing:border-box;width:100%;border:1px solid #98aabd;padding:7px;font:inherit}.rx-medicine-entry-grid .wide{grid-column:2/-1}.rx-medicine-entry-grid textarea.wide{grid-column:2/-1;resize:vertical}
@media(max-width:620px){.rx-medicine-entry-grid{grid-template-columns:1fr}.rx-medicine-entry-grid .wide,.rx-medicine-entry-grid textarea.wide{grid-column:auto}.rx-catalog-pane .procedure-toolbar{justify-content:flex-start;overflow-x:auto}}

/* V108 - Mẫu tin nhắn sinh nhật, ngày lễ và quảng cáo */
.message-template-manager{width:min(1180px,97vw);max-height:92vh;background:#fff;border-radius:8px;box-shadow:0 22px 60px rgba(15,38,80,.28);display:flex;flex-direction:column;overflow:hidden}
.message-template-tabs,.crm-message-tabs{display:flex;gap:6px;padding:10px 14px;background:#eef5ff;border-bottom:1px solid #b8ccea}
.message-template-tabs button,.crm-message-tabs button{border:1px solid #9eb9df;background:#fff;color:#174b91;font-weight:800;padding:9px 18px;border-radius:7px;cursor:pointer}
.message-template-tabs button.active,.crm-message-tabs button.active{background:#1269c7;color:#fff;border-color:#1269c7;box-shadow:0 3px 9px rgba(18,105,199,.22)}
.message-template-toolbar{display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid #d2deee}.message-template-toolbar>span{font-size:13px;color:#53657d}
.message-template-table-wrap{margin:0 14px;max-height:58vh}.message-template-table-wrap table{table-layout:auto}.message-content-cell{min-width:360px;white-space:normal!important;line-height:1.45}.message-row-actions{white-space:nowrap}
.message-template-form{width:min(760px,96vw)!important}.message-template-form textarea{resize:vertical;min-height:132px}.message-template-token-note{margin:10px 0;padding:9px 12px;background:#edf6ff;border-left:4px solid #1976d2;color:#35587e}
.message-compose-modal{width:min(820px,96vw);background:#fff;border-radius:8px;box-shadow:0 22px 60px rgba(15,38,80,.28);overflow:hidden}.message-compose-body{padding:16px}.message-compose-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.message-compose-grid label,.message-compose-content-label{display:grid;gap:5px;font-weight:700;color:#27466c}.message-compose-grid select,.message-compose-content-label textarea{width:100%;border:1px solid #abc0dc;border-radius:5px;padding:9px;background:#fff}.message-compose-content-label{margin-top:12px}.message-compose-content-label textarea{font:inherit;line-height:1.55;resize:vertical}.message-recipient-contact{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 12px;margin-top:10px;background:#f4f8fd;border:1px solid #d4e0ef;border-radius:6px}.message-recipient-contact span{color:#53657d}.message-compose-hint{margin-top:9px;color:#66778d;font-size:12px}
.crm-message-page{padding-bottom:24px}.crm-message-tabs{margin:0 0 12px;border:1px solid #b8ccea;border-radius:8px}.crm-message-panel h3,.crm-followup-summary h3{margin:0 0 4px;color:#113f83}.crm-message-panel p{margin:0;color:#64748b}.crm-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.crm-birthday-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:10px}.crm-birthday-filter label{display:grid;gap:4px;font-weight:700;color:#38577c}.crm-birthday-filter input{padding:7px;border:1px solid #abc0dc;border-radius:4px}.crm-result-note{margin:8px 0}.holiday-upcoming{background:#eef7ff}.holiday-today{background:#ecfdf3}.holiday-past{color:#6f7c8c;background:#f7f8fa}.crm-followup-summary{margin-top:14px}
.crm-advertising-filter{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));align-items:end;gap:8px;padding:10px;margin-bottom:8px;border:1px solid #b8ccea;border-radius:7px;background:#f4f8fe}.crm-advertising-filter label{display:grid;gap:4px;min-width:0;font-weight:700;color:#38577c}.crm-advertising-filter input,.crm-advertising-filter select{box-sizing:border-box;width:100%;min-width:0;padding:7px;border:1px solid #abc0dc;border-radius:4px;background:#fff}.crm-advertising-filter .btn{white-space:nowrap}.crm-ad-search{min-width:220px}
@media(max-width:760px){.message-compose-grid{grid-template-columns:1fr}.message-template-tabs,.crm-message-tabs{overflow-x:auto}.message-template-tabs button,.crm-message-tabs button{white-space:nowrap}.crm-panel-head{align-items:flex-start;flex-direction:column}.message-content-cell{min-width:260px}.message-template-manager{max-height:96vh}}
@media(max-width:1200px){.crm-advertising-filter{grid-template-columns:repeat(3,minmax(160px,1fr))}.crm-advertising-filter .btn{width:100%}}
@media(max-width:760px){.crm-advertising-filter{grid-template-columns:1fr}.crm-ad-search{min-width:0}}
.catalog-excel-modal{width:min(1500px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.catalog-excel-manager-modal{width:min(1120px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;background:#eef3f8}
.catalog-excel-manager-note{margin:12px 14px 0;padding:10px 12px;border:1px solid #9ec1df;background:#f6fbff;color:#33536e;font-size:12px}
.catalog-excel-manager-table-wrap{margin:10px 14px 2px;border:1px solid #91a8bf;background:#fff;overflow:auto}
.catalog-excel-manager-table{width:100%;min-width:780px;border-collapse:collapse;font-size:12px}
.catalog-excel-manager-table th{padding:9px 8px;border:1px solid #89a4c1;background:#2454a6;color:#fff;text-align:center;text-transform:uppercase}
.catalog-excel-manager-table td{padding:8px;border:1px solid #b5c4d3;vertical-align:middle;text-align:center}
.catalog-excel-manager-table tbody tr:nth-child(even) td{background:#f5f8fb}
.catalog-excel-manager-table td:nth-child(1){width:54px;font-weight:800}
.catalog-excel-manager-table td:nth-child(2){min-width:330px;text-align:left}
.catalog-excel-manager-table td:nth-child(2) b{display:block;color:#153f70;font-size:13px}
.catalog-excel-manager-table td:nth-child(2) small{display:block;margin-top:4px;color:#667789}
.catalog-transfer-action{min-width:116px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 10px;border:1px solid #86a7c5;background:linear-gradient(#fff,#e8f2fa);color:#154d7a;cursor:pointer;font:700 11px Arial,sans-serif}
.catalog-transfer-action span{width:22px;height:22px;display:grid;place-items:center;border-radius:3px;background:#1689ce;color:#fff}
.catalog-transfer-action span svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.catalog-transfer-action.export span{background:#e88b16}.catalog-transfer-action.template span{background:#7b61c9}
.catalog-transfer-action:hover{border-color:#167cc2;background:#e7f5ff}.catalog-transfer-action:disabled{opacity:.42;cursor:not-allowed}
.catalog-excel-summary{display:flex;gap:10px;flex-wrap:wrap;padding:12px 16px;background:#f2f7ff;border-bottom:1px solid #c8d8ed}
.catalog-excel-summary span{padding:7px 13px;border:1px solid #b9cce6;border-radius:6px;background:#fff;color:#244467}
.catalog-excel-summary .duplicate{border-color:#f3c46d;background:#fff8e8;color:#8c5700}
.catalog-excel-summary .error{border-color:#f1a5a5;background:#fff1f1;color:#b42318}
.catalog-excel-choice{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:11px 16px;border-bottom:1px solid #d5dee9;background:#fff}
.catalog-excel-choice label{display:flex;align-items:center;gap:6px;cursor:pointer}
.catalog-excel-choice small{flex-basis:100%;color:#5f7186}
.catalog-excel-table-wrap{overflow:auto;min-height:180px;max-height:58vh;margin:0 16px;border:1px solid #b7c6d8}
.catalog-excel-table{border-collapse:collapse;width:100%;min-width:980px;font-size:12px}
.catalog-excel-table th{position:sticky;top:0;z-index:1;background:#2454a6;color:#fff;text-align:center;padding:8px;border:1px solid #8da6c8}
.catalog-excel-table td{padding:6px 8px;border:1px solid #bcc9d8;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.catalog-excel-table tr:nth-child(even) td{background:#f7f9fc}
.catalog-excel-table tr.excel-import-duplicate td{background:#fff9e9}
.catalog-excel-table tr.excel-import-error td{background:#fff0f0}
.excel-import-status{display:inline-block;padding:3px 7px;border-radius:10px;font-weight:700;white-space:nowrap}
.excel-import-status.ready{background:#dcfce7;color:#15703b}.excel-import-status.duplicate{background:#fef3c7;color:#8a5200}.excel-import-status.error{background:#fee2e2;color:#b42318;white-space:normal}
.excel-command{color:#075ca8}
@media(max-width:800px){.catalog-excel-choice{align-items:flex-start;flex-direction:column;gap:8px}.catalog-excel-summary{padding:8px}.catalog-excel-table-wrap{margin:0 8px}.catalog-excel-modal{width:98vw}}

/* V109 - Quản lý công nợ Labo và lời dặn sau điều trị */
.lab-price-modal{width:min(980px,96vw)}.lab-price-modal .money-input{width:180px;text-align:right}.lab-payment-modal{width:min(760px,96vw)}
.lab-payment-summary{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:12px;padding:12px 14px;border:1px solid #f0c36b;background:#fff8e7;color:#714b05}.lab-payment-summary .money{font-size:18px;color:#c56800}
.lab-summary-grid{display:grid;gap:10px;margin:10px 0}.grid-4.lab-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-5.lab-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.lab-summary-grid .metric{min-height:74px;padding:12px 15px;border:1px solid #b9cee8;border-radius:8px;background:linear-gradient(135deg,#fff,#eef6ff)}.lab-summary-grid .metric span{display:block;color:#5d7189;font-size:12px;font-weight:700;text-transform:uppercase}.lab-summary-grid .metric b{display:block;margin-top:7px;color:#124c97;font-size:20px}.lab-summary-grid .metric b.debt{color:#d21d1d}
.lab-debt-filter{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.lab-debt-filter label{display:grid;gap:4px;min-width:145px;color:#38577c;font-weight:700}.lab-debt-filter input,.lab-debt-filter select{box-sizing:border-box;width:100%;padding:7px;border:1px solid #abc0dc;border-radius:4px;background:#fff}.money.paid{color:#069447}.money.debt{color:#d11c1c}
.purchase-receipt-modal{height:min(940px,96vh);grid-template-rows:auto auto minmax(120px,1fr);overflow:auto;background:#f4f6f8}.purchase-receipt-modal form{background:#fff;border-bottom:1px solid #9eacba}.purchase-header-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;padding:12px}.purchase-header-grid label{display:grid;gap:4px;font-weight:700;color:#324c69}.purchase-header-grid input,.purchase-header-grid select{box-sizing:border-box;width:100%;min-width:0;padding:7px;border:1px solid #aab9c9;background:#fff}.purchase-header-grid input[readonly]{background:#f0f3f6;color:#53657a}.purchase-description{grid-column:span 2}.purchase-lines-head{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;background:#087b3c;color:#fff}.purchase-lines-table select,.purchase-lines-table input{box-sizing:border-box;width:100%;min-width:70px;padding:6px;border:1px solid #aebcca}.purchase-lines-table th:nth-child(2){min-width:300px}.purchase-lines-table th:nth-child(3){width:85px}.purchase-lines-table th:nth-child(4),.purchase-lines-table th:nth-child(6),.purchase-lines-table th:nth-child(7){width:95px}.purchase-lines-table th:nth-child(5),.purchase-lines-table th:nth-child(8){width:135px}.purchase-totals{display:flex;justify-content:flex-end;gap:24px;flex-wrap:wrap;padding:10px 14px;background:#edf7ef;border-top:2px solid #16814b}.purchase-totals span{display:grid;gap:3px;min-width:120px}.purchase-totals b{font-size:16px;color:#084e9a}.purchase-recent{padding:10px 12px;overflow:auto}.purchase-recent h3{margin:0 0 8px;color:#123f82}
.material-name-picker{position:relative;min-width:0}.material-name-picker>input:first-child{box-sizing:border-box;width:100%;min-width:0}.material-picker-suggestions{position:absolute;z-index:40;top:calc(100% + 3px);left:0;right:0;max-height:250px;overflow:auto;border:1px solid #86a7c6;border-radius:4px;background:#fff;box-shadow:0 8px 24px #173b5d38}.material-picker-suggestions[hidden]{display:none}.material-picker-suggestions button{display:grid;width:100%;gap:2px;padding:7px 9px;border:0;border-bottom:1px solid #d6e0e9;background:#fff;color:#153b61;text-align:left;cursor:pointer}.material-picker-suggestions button:last-child{border-bottom:0}.material-picker-suggestions button:hover,.material-picker-suggestions button.active{background:#e5f2ff}.material-picker-suggestions button b{white-space:normal}.material-picker-suggestions button span{color:#5b7085;font-size:10px;white-space:normal}.material-picker-empty{padding:9px;color:#9b2b24;background:#fff7f6}.purchase-material-picker{min-width:300px}.purchase-material-picker .material-picker-suggestions{position:static;margin-top:3px;max-height:170px}.purchase-receipt-actions{align-items:center;padding:8px 12px!important}.purchase-receipt-actions .btn{display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;width:auto!important;min-width:0!important;height:34px!important;padding:7px 13px!important;font-size:12px!important;line-height:1!important}.purchase-receipt-actions svg{width:14px!important;height:14px!important}
.advice-layout{display:grid;grid-template-columns:minmax(300px,34%) minmax(0,1fr);gap:12px}.advice-template-list{display:grid;gap:9px;max-height:69vh;overflow:auto}.advice-template-card{padding:11px;border:1px solid #b8cce5;border-left:5px solid #1976d2;border-radius:6px;background:#f8fbff}.advice-template-card.inactive{opacity:.58}.advice-template-card>div{display:flex;justify-content:space-between;gap:9px}.advice-template-card>div span{color:#4e6a8e;font-size:12px}.advice-template-card p{white-space:pre-wrap;line-height:1.45;color:#354c68}.advice-template-card footer{display:flex;justify-content:flex-end;gap:7px}.advice-recipient-pane{min-width:0}
@media(max-width:980px){.advice-layout{grid-template-columns:1fr}.advice-template-list{max-height:360px}.lab-debt-filter label{min-width:130px}.grid-4.lab-summary-grid,.grid-5.lab-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.purchase-header-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.purchase-description{grid-column:span 2}.purchase-lines-table th:nth-child(2){min-width:220px}}

/* V115 - cẩm nang hướng dẫn sử dụng có ảnh minh họa */
.help-manual-page{background:#eef3f9;min-height:100vh}.help-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 34px;background:linear-gradient(115deg,#073d86,#0978cc);color:#fff;border-bottom:4px solid #ffb425}.help-hero h1{margin:5px 0 7px;font-size:28px}.help-hero p{margin:0;max-width:820px;line-height:1.5}.help-kicker{font-size:12px;font-weight:900;letter-spacing:1.5px;color:#ffd36b}.help-hero-actions{display:flex;gap:8px;flex-wrap:wrap}.help-toolbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 22px;background:#fff;border-bottom:1px solid #b9cce1;box-shadow:0 2px 8px #1d44641a}.help-toolbar label{display:flex;align-items:center;gap:8px;flex:1;max-width:720px}.help-toolbar input{box-sizing:border-box;width:100%;padding:9px 12px;border:1px solid #91acca;border-radius:6px;font-size:14px}.help-toolbar span{color:#42617f;font-weight:700}.help-manual-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;max-width:1600px;margin:auto;padding:16px}.help-toc{position:sticky;top:62px;align-self:start;max-height:calc(100vh - 78px);overflow:auto;background:#fff;border:1px solid #b8cbe1;border-radius:8px;padding:10px;box-shadow:0 4px 16px #25455c16}.help-toc>b{display:block;padding:8px 10px;color:#073f8b}.help-toc a{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:5px;color:#254b73;text-decoration:none;font-weight:700}.help-toc a:hover{background:#e5f2ff;color:#0066b4}.help-toc a span{width:22px;text-align:center}.help-hotline{margin-top:10px;padding:10px;border-radius:6px;background:#fff7df;border:1px solid #efcb76;color:#70500a;line-height:1.45}.help-manual-content{display:grid;gap:14px;min-width:0}.help-quick-flow,.help-manual-section{background:#fff;border:1px solid #b9cce1;border-radius:8px;box-shadow:0 4px 14px #1a3c5512;scroll-margin-top:70px}.help-quick-flow{padding:15px 18px}.help-quick-flow h2{margin:0 0 12px;color:#073f88}.help-quick-flow>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.help-quick-flow span{padding:8px 12px;background:#e7f3ff;border:1px solid #a9cdec;border-radius:18px;color:#075c9d;font-weight:800}.help-quick-flow i{color:#f09a00}.help-manual-section>header{display:flex;align-items:center;gap:13px;padding:14px 17px;background:linear-gradient(90deg,#eaf4ff,#fff);border-bottom:1px solid #bfd1e5}.help-manual-section h2{margin:0;color:#073f88;font-size:20px}.help-manual-section header p{margin:4px 0 0;color:#536f8b}.help-step-no{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#0a6fc2;color:#fff;font-weight:900}.help-section-grid{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(420px,1.15fr);gap:16px;padding:16px}.help-instructions h3{margin:0 0 8px;color:#174d81}.help-instructions ol{margin:0;padding-left:22px}.help-instructions li{padding:5px 0;line-height:1.5}.help-note{margin-top:12px;padding:10px 12px;border-left:4px solid #f0a000;background:#fff8e6;color:#6e4c00;line-height:1.45}.help-shot-button{display:grid;gap:0;padding:0;overflow:hidden;border:1px solid #8eb1d3;border-radius:7px;background:#eef6ff;cursor:zoom-in;min-width:0;text-align:center}.help-shot-button img{display:block;width:100%;height:280px;object-fit:contain;background:#f3f5f8}.help-shot-button span{padding:7px;color:#075a9d;font-weight:800}.help-shot-button:hover{box-shadow:0 7px 22px #075c9c36;transform:translateY(-1px)}.help-empty{padding:30px;text-align:center;background:#fff;border:1px dashed #9bb3cb;color:#607890}.help-image-modal{width:min(1600px,96vw);height:min(920px,94vh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff;box-shadow:0 25px 80px #0008}.help-image-scroll{overflow:auto;display:grid;place-items:center;padding:12px;background:#e7ebef}.help-image-scroll img{max-width:100%;height:auto;box-shadow:0 2px 12px #0003}.help-image-modal .modal-actions{padding:9px 12px;text-align:right;border-top:1px solid #ccd7e1}
@media(max-width:1050px){.help-manual-layout{grid-template-columns:1fr}.help-toc{position:static;max-height:none;display:flex;gap:5px;overflow-x:auto}.help-toc>b,.help-hotline{display:none}.help-toc a{white-space:nowrap}.help-section-grid{grid-template-columns:1fr}.help-shot-button img{height:auto;max-height:430px}}
@media(max-width:650px){.help-hero{align-items:flex-start;flex-direction:column;padding:20px}.help-hero h1{font-size:22px}.help-toolbar{align-items:stretch;flex-direction:column;padding:8px 12px}.help-manual-layout{padding:8px}.help-section-grid{padding:11px}.help-manual-section>header{align-items:flex-start}.help-quick-flow i{display:none}.help-quick-flow span{width:100%;box-sizing:border-box}.help-image-modal{width:98vw;height:96vh}}
@media print{body{background:#fff!important}.help-manual-page .workspace-tabs,.help-hero-actions,.help-toolbar,.help-toc,.help-shot-button span{display:none!important}.help-hero{background:#fff!important;color:#123f73!important;border:0;padding:10mm 8mm}.help-kicker{color:#123f73}.help-manual-layout{display:block;padding:0}.help-manual-section,.help-quick-flow{box-shadow:none;break-inside:avoid;margin:0 0 5mm}.help-section-grid{grid-template-columns:1fr 1fr}.help-shot-button img{height:58mm}.main-ribbon,.topbar{display:none!important}}
.action-confirm-backdrop{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:18px;background:#10243599;backdrop-filter:blur(2px)}.action-confirm-dialog{width:min(460px,94vw);box-sizing:border-box;padding:22px;border:1px solid #9eb2c5;border-radius:10px;background:#fff;text-align:center;box-shadow:0 24px 70px #0008}.action-confirm-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 10px;border-radius:50%;background:#e5f2ff;color:#0767ad;font-size:30px;font-weight:900}.action-confirm-icon.danger{background:#ffe4e4;color:#d21d1d}.action-confirm-dialog h3{margin:5px 0;color:#143e68}.action-confirm-dialog p{margin:10px 0 18px;line-height:1.55;color:#465e74;white-space:pre-wrap}.action-confirm-dialog>div:last-child{display:flex;justify-content:center;gap:9px}.staff-account-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.staff-account-card-head h3{margin:0}.staff-account-create-modal{width:min(760px,96vw)}.staff-account-create-grid{display:grid;grid-template-columns:170px minmax(0,1fr);gap:9px 12px;align-items:center}.staff-account-create-grid>label{font-weight:800;color:#294b6d}.staff-account-create-grid input,.staff-account-create-grid select{box-sizing:border-box;width:100%;padding:8px;border:1px solid #9eb4ca}.staff-account-branch-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px;border:1px solid #bed0e1;background:#f7fbff}.staff-account-branch-list label{display:flex;align-items:center;gap:6px}.staff-account-branch-list input{width:auto}@media(max-width:620px){.staff-account-create-grid{grid-template-columns:1fr}.staff-account-branch-list{grid-template-columns:1fr}}
/* V112 - tiến trình điều trị theo từng dịch vụ */
.service-cell-stack{display:flex;align-items:center;gap:4px;min-width:0}.service-cell-stack .service-cell-button{min-width:0;flex:1}.service-change-trigger{flex:0 0 auto;border:1px solid #8fb7d8;background:#eef7ff;color:#075d9e;border-radius:3px;padding:2px 5px;font-size:10px;cursor:pointer}
.treatment-course-linked{cursor:pointer;border-color:var(--primary-2,#8fb7d8);background:#f5fbff;color:var(--primary,#075d9e);font-weight:700}.treatment-course-linked:hover{background:#eaf5ff}
.treatment-progress-modal{width:min(1180px,97vw);max-height:94vh;overflow:auto;background:#fff;border:1px solid #8aa6be;box-shadow:0 22px 60px #18344b66}.treatment-progress-patient{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 14px;background:#eaf4ff;border-bottom:1px solid #a9c6df}.treatment-progress-patient>div{display:grid;gap:2px}.treatment-progress-patient span{font-size:11px;color:#536d82}.treatment-progress-patient b{font-size:15px;color:#073f88}.treatment-progress-patient small{color:#64798c}.treatment-progress-form{padding:12px 14px;border-bottom:1px solid #a8bdd0}.treatment-progress-fields{display:grid;grid-template-columns:190px 230px minmax(300px,1fr) minmax(220px,.7fr);gap:9px}.treatment-progress-fields label,.progress-next-fields label{display:grid;gap:4px;font-weight:700;color:#23445f}.treatment-progress-fields input,.treatment-progress-fields textarea,.progress-next-fields input{width:100%;border:1px solid #9eb4c8;padding:7px;background:#fff}.progress-content-field textarea{min-height:68px}.progress-next-toggle{display:flex;align-items:center;gap:7px;margin:10px 0 7px;font-weight:800;color:#075a9c}.progress-next-fields{display:grid;grid-template-columns:150px 130px 220px minmax(260px,1fr);gap:8px;padding:9px;background:#f2f8ff;border:1px dashed #71a7d4}.treatment-progress-actions{display:flex;gap:7px;margin-top:11px}.treatment-progress-table-wrap{padding:12px 14px;overflow:auto;max-height:390px}.treatment-progress-table{width:100%;border-collapse:collapse;table-layout:fixed}.treatment-progress-table th,.treatment-progress-table td{border:1px solid #7998b4;padding:7px;vertical-align:top}.treatment-progress-table th{background:#174f9f;color:#fff}.treatment-progress-table th:nth-child(1){width:48px}.treatment-progress-table th:nth-child(2){width:105px}.treatment-progress-table th:nth-child(4){width:145px}.treatment-progress-table th:nth-child(5){width:210px}.treatment-progress-table th:nth-child(6){width:132px}.treatment-progress-table .wrap{white-space:normal;overflow-wrap:anywhere}.progress-appointment-badge{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:10px;background:#dff6e5;color:#087637;font-size:10px}.appointment-reminder-cell{white-space:normal!important;min-width:360px}.appointment-reminder-cell span{display:block;line-height:1.35}.copy-reminder-btn{margin-top:5px;border:1px solid #1684ce;background:#e9f6ff;color:#075b98;border-radius:3px;padding:3px 8px;cursor:pointer}.appointment-link-hint{grid-column:1/-1;padding:5px 8px;background:#eef7ff;border-left:3px solid #1684ce}.portal-service-progress{margin:10px;border:1px solid #8ab9a8;overflow:auto}.portal-service-progress-title{padding:7px 9px;background:#dff4eb;color:#075f46;font-weight:900}.portal-service-progress table{width:100%;min-width:720px;border-collapse:collapse}.portal-service-progress th,.portal-service-progress td{padding:6px;border:1px solid #abc9be;white-space:normal;vertical-align:top}.portal-service-progress th{background:#edf8f4;color:#245d4d}.portal-service-progress th:first-child{width:44px}.portal-service-progress th:nth-child(2){width:100px}.portal-service-progress th:nth-child(4){width:150px}.portal-no-progress{padding:9px 12px;color:#718096;font-style:italic}
.v112-ledger-actions{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#eef6ff;border-bottom:1px solid #aac2d8}.v112-ledger-scroll{padding:14px;overflow:auto;background:#eef1f5;display:grid;gap:16px}.v112-ledger-sheet{width:min(900px,100%);margin:auto;background:#fff;border:1px solid #7890a5;padding:18px;box-shadow:0 3px 14px #1b344633}.v112-ledger-sheet h2,.v112-ledger-sheet h3{text-align:center;color:#06489b;margin:9px 0}.v112-ledger-sheet h3{font-size:14px}.v112-ledger-patient{display:flex;gap:22px;flex-wrap:wrap;margin:8px 0}.v112-ledger-sheet table{width:100%;border-collapse:collapse;table-layout:fixed}.v112-ledger-sheet th,.v112-ledger-sheet td{border:1px solid #697f90;padding:8px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}.v112-ledger-sheet th{background:#cdeed9;color:#1f4c3a}.v112-ledger-sheet th:first-child{width:45px}.v112-ledger-sheet th:nth-child(2){width:105px}.v112-ledger-sheet th:nth-child(4){width:145px}.v112-ledger-sheet th:nth-child(5){width:180px}
@media(max-width:850px){.treatment-progress-fields,.progress-next-fields{grid-template-columns:1fr 1fr}.treatment-progress-patient{grid-template-columns:1fr}.v112-ledger-sheet{min-width:720px}}
@media print{body.v112-ledger-print{background:#fff;margin:0}.v112-ledger-print .v112-ledger-sheet{box-shadow:none;border:0;width:auto;page-break-after:always}.v112-ledger-print .v112-ledger-sheet:last-child{page-break-after:auto}}
.treatment-progress-table th:nth-child(2){width:185px}.treatment-progress-table th:nth-child(3){width:105px}.treatment-progress-table th:nth-child(5){width:145px}.treatment-progress-table th:nth-child(6){width:210px}.treatment-progress-table th:nth-child(7){width:132px}.progress-service-cell{font-weight:900;color:#074f87;background:#eef7ff;vertical-align:middle!important}.progress-service-cell small{display:block;margin-top:4px;color:#60788c;font-weight:600}.portal-service-progress table{min-width:860px}.portal-service-progress th:nth-child(2){width:180px}.portal-service-progress th:nth-child(3){width:105px}.portal-service-progress th:nth-child(5){width:150px}
.v112-treatment-report-page{position:relative;width:210mm;min-height:297mm;margin:12px auto;background:#fff;padding:11mm 9mm;page-break-before:always;overflow:hidden}.v112-treatment-report-page h2{text-align:center;color:#06489b;margin:7mm 0 5mm}.v112-report-ledger{position:relative;z-index:2;width:100%;border-collapse:collapse;table-layout:fixed}.v112-report-ledger th,.v112-report-ledger td{border:1px solid #61798d;padding:6px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}.v112-report-ledger th{background:#cdeed9;color:#174b38}.v112-report-ledger th:first-child{width:10mm}.v112-report-ledger th:nth-child(2){width:30mm}.v112-report-ledger th:nth-child(3){width:20mm}.v112-report-ledger th:nth-child(4){width:52mm}.v112-report-ledger th:nth-child(5){width:24mm}.v112-report-ledger th:nth-child(6){width:28mm}.media57-brand-watermark.is-image{transform:none;justify-content:center;opacity:.11}.media57-brand-watermark.is-image img{display:block;max-width:70%;max-height:55%;object-fit:contain}.watermark-settings-modal{width:min(760px,96vw);background:#fff;border:1px solid #8fa3b5;box-shadow:0 24px 70px #0006}.watermark-settings-body{display:grid;gap:13px;padding:16px}.watermark-enable{display:flex;gap:8px;align-items:center;padding:10px;background:#e9f6ff;border:1px solid #9bc7e7;font-weight:900;color:#075a98}.watermark-type-row{display:flex;gap:24px;flex-wrap:wrap}.watermark-settings-body>label:not(.watermark-enable){display:grid;gap:5px;font-weight:800}.watermark-settings-body input[name=watermarkText]{padding:8px;border:1px solid #9eb2c3}.watermark-image-panel{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:center}.watermark-preview{height:150px;display:grid;place-items:center;border:1px dashed #8eacbf;background:#f5f8fb;overflow:hidden}.watermark-preview img{max-width:92%;max-height:135px;object-fit:contain;opacity:.35}.watermark-preview span{font-size:25px;font-weight:900;color:#0d61b755;transform:rotate(-25deg)}.watermark-image-panel input{display:none}@media(max-width:650px){.watermark-image-panel{grid-template-columns:1fr}}

/* V116 - nhận diện Vclinic và ribbon navy gradient */
.traditional-ribbon-header{border-bottom-color:#061a36;background:#f7f9fc}
.traditional-ribbon-header .ribbon-tab-row{background:linear-gradient(115deg,#05162f 0%,#0a315c 48%,#10558a 100%);border-top:1px solid #183f67;border-bottom:1px solid #031329;box-shadow:inset 0 1px 0 #ffffff1f,0 2px 5px #061a3638}
.traditional-ribbon-header .ribbon-app-button{border-right-color:#ffffff2e;background:linear-gradient(145deg,#123f78,#061a36);color:#dff6ff}
.traditional-ribbon-header .ribbon-app-button:hover{background:linear-gradient(145deg,#17659c,#0a315c);color:#fff}
.traditional-ribbon-header .nav button{border-left-color:#ffffff22;border-right-color:#00152b66;color:#edf8ff;text-shadow:0 1px 1px #00152b}
.traditional-ribbon-header .nav button:hover{background:linear-gradient(#ffffff26,#64c9ff24);color:#fff}
.traditional-ribbon-header .nav button.active{background:linear-gradient(#fafdff,#dceeff);border-color:#8bb9dc;color:#073b69;text-shadow:none;box-shadow:inset 0 3px 0 #35b9dc,0 -1px 0 #fff}
.traditional-ribbon-header .ribbon-language-switcher{margin:3px 5px;border-color:#6c98bc;background:#f7fcff;box-shadow:0 1px 3px #00152b55}

/* V117 - cobalt Facebook, Unicode tiếng Việt và chữ làm việc dễ đọc */
:root{--v117-cobalt:#1877f2;--v117-cobalt-dark:#0b5fd7;--v117-cobalt-light:#eaf3ff;--public-blue:#1877f2;--public-navy:#0b5fd7}
html,body,button,input,select,textarea,table,h1,h2,h3,h4,h5,h6{font-family:Arial,"Segoe UI","Noto Sans",Tahoma,sans-serif!important;text-rendering:optimizeLegibility}
body{font-size:14px;font-variant-numeric:tabular-nums}
.traditional-ribbon-header .ribbon-tab-row{background:linear-gradient(120deg,#0b5fd7 0%,#1877f2 56%,#2d88ff 100%)!important;border-top:1px solid #0753bd!important;border-bottom:2px solid #064ba9!important;box-shadow:inset 0 1px #ffffff38!important}
.traditional-ribbon-header .nav button{min-height:38px!important;border-right:1px solid #ffffff48!important;border-left:1px solid #04419673!important;background:transparent!important;color:#fff!important;font-size:14px!important;font-weight:800!important;text-shadow:0 1px #002a66}
.traditional-ribbon-header .nav button:hover{background:#ffffff29!important}.traditional-ribbon-header .nav button.active{background:#fff!important;color:#0b5fd7!important;border-top:2px solid #64a8ff!important;text-shadow:none!important}
.traditional-ribbon-header .ribbon-actions{background:linear-gradient(180deg,#fff 0%,#f5f9ff 70%,#e5f0ff 100%)!important;border-bottom:2px solid #1877f2!important}
.traditional-ribbon-header .ribbon-group{border-right:1px solid #b7d3f8!important}.traditional-ribbon-header .ribbon-action{border:1px solid #b8d4f7!important;font-size:13px!important;line-height:1.24!important}.traditional-ribbon-header .ribbon-action:hover{border-color:#1877f2!important;background:#eaf3ff!important;box-shadow:0 2px 8px #1877f22e!important}
.workspace-tabs{border-bottom:1px solid #1877f2!important;background:#eaf3ff!important}.workspace-tab{min-height:34px!important;border-color:#8fbcf6!important;color:#0b55b5!important;font-size:13px!important;font-weight:800!important}.workspace-tab.active{background:#1877f2!important;color:#fff!important;border-color:#0b5fd7!important}
.gt-tabs,.message-template-tabs,.crm-message-tabs{border-color:#8fbcf6!important;background:#eaf3ff!important}.gt-tabs button,.message-template-tabs button,.crm-message-tabs button{border-color:#8fbcf6!important;color:#0b55b5!important;font-size:14px!important}.gt-tabs button.active,.message-template-tabs button.active,.crm-message-tabs button.active{background:#1877f2!important;border-color:#0b5fd7!important;color:#fff!important}
.public-main-tabs{background:linear-gradient(120deg,#0b5fd7,#1877f2 58%,#2d88ff)!important;border-bottom:2px solid #0753bd!important;box-shadow:0 5px 15px #1877f238!important}.public-main-tab{min-height:54px!important;border-right:1px solid #ffffff4d!important;background:transparent!important;color:#fff!important;font-size:15px!important;font-weight:800!important}.public-main-tab:first-child{border-left:1px solid #ffffff4d!important}.public-main-tab:hover{background:#ffffff24!important;color:#fff!important}.public-main-tab.active{background:#fff!important;color:#0b5fd7!important;box-shadow:inset 0 -4px #1877f2!important}
.portal-card-head,.portal-primary-btn,.portal-method.active,.v92-price-group-title,.v92-price-table thead th,.desktop-title,.procedure-pane-title{background:linear-gradient(110deg,#0b5fd7,#1877f2)!important;color:#fff!important;border-color:#0753bd!important}
.v82-nav{background:linear-gradient(120deg,#0b5fd7,#1877f2 62%,#2d88ff)!important;border-top:1px solid #4b9cff!important;border-bottom:2px solid #0753bd!important}.v82-nav-links button,.v82-hotline,.v92-mobile-price{color:#fff!important;border-color:#ffffff59!important}.v82-nav-links button:hover,.v82-nav-links button.active{background:#ffffff24!important;color:#fff!important}.v82-brand b,.v82-brand small{color:#fff!important}
.help-hero{background:linear-gradient(115deg,#0b5fd7,#1877f2 64%,#2d88ff)!important;border-bottom-color:#82b8ff!important;color:#fff!important}.help-hero h1,.help-hero p,.help-kicker{color:#fff!important;text-shadow:0 1px 1px #002d6e42}
#page-root input,#page-root select,#page-root textarea,#page-root button{font-size:14px}.table-wrap table:not(.exam-table),.desktop-grid,.procedure-table,.portal-table{font-size:14px!important}.table-wrap table:not(.exam-table) th,.desktop-grid th,.procedure-table th,.portal-table th{font-size:13px!important;padding:8px 7px!important}.table-wrap table:not(.exam-table) td,.desktop-grid td,.procedure-table td,.portal-table td{font-size:14px!important;line-height:1.4!important;padding:7px!important}.money,.amount,[class*="money"],td[style*="text-align:right"]{font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}
.small,.muted,small{font-size:12px}.statusbar{font-size:12px}.btn{font-size:14px!important;min-height:32px}.field label,.gt-label{font-size:13px!important}
.v117-location-section{padding:64px clamp(18px,8vw,145px);background:linear-gradient(180deg,#f5f9ff,#fff)}.v117-location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,300px));justify-content:center;gap:20px;margin-top:24px}.v117-location-card{aspect-ratio:1;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:26px;border:2px solid #a9caf7;border-radius:20px;background:radial-gradient(circle at 50% 20%,#fff,#eaf3ff);color:#123b73;text-align:center;text-decoration:none;box-shadow:0 12px 32px #1877f21f;transition:.2s}.v117-location-card:hover{transform:translateY(-6px);border-color:#1877f2;box-shadow:0 20px 42px #1877f23d}.v117-location-pin{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#1877f2;color:#fff;font-size:38px;box-shadow:0 8px 20px #1877f240}.v117-location-card strong{font-size:20px;color:#0b55b5}.v117-location-card small{font-size:14px;line-height:1.5;color:#546b88}.v117-location-card b{margin-top:5px;color:#1877f2}
.v117-location-admin{padding:12px}.v117-location-admin-head,.v117-location-admin-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.v117-location-admin-head h3{margin:0;color:#0b55b5}.v117-location-admin-head p{margin:4px 0 0;color:#60728b}.v117-location-admin-list{display:grid;gap:9px;margin:14px 0}.v117-location-admin-row{display:grid;grid-template-columns:42px minmax(180px,.7fr) minmax(260px,1fr) minmax(300px,1.2fr) auto auto;gap:8px;align-items:end;padding:10px;border:1px solid #a9caf7;border-radius:8px;background:#f7fbff}.v117-location-admin-row label{display:grid;gap:5px;color:#2f4f75;font-weight:800}.v117-location-admin-row input[type=text],.v117-location-admin-row input[type=url]{box-sizing:border-box;width:100%;min-height:36px;border:1px solid #92b5e4;border-radius:5px;padding:7px 9px}.v117-location-admin-no{align-self:center;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#1877f2;color:#fff;font-weight:900}.v117-location-admin-row .active{display:flex;align-items:center;min-height:36px;white-space:nowrap}.v117-location-admin-actions{justify-content:flex-end}
@media(max-width:1000px){.v117-location-admin-row{grid-template-columns:38px 1fr 1fr}.v117-location-admin-row .map-link{grid-column:2/-1}.v117-location-admin-row .active{grid-column:2}}
@media(max-width:620px){.traditional-ribbon-header .nav button{font-size:11px!important}.public-main-tab{font-size:11px!important}.v117-location-grid{grid-template-columns:1fr}.v117-location-admin-row{grid-template-columns:34px 1fr}.v117-location-admin-row label,.v117-location-admin-row .map-link{grid-column:2}.v117-location-admin-row .active{grid-column:2}}

/* V118 - sổ quỹ thu chi và phiếu thu/phiếu chi độc lập */
.cash-voucher-modal{width:min(1320px,97vw);max-height:94vh;overflow:auto;border:2px solid #1c70bf;border-radius:4px}
.cash-voucher-form{padding:12px 14px;border-bottom:1px solid #8799aa;background:#eef3f7}
.cash-voucher-entry-table{width:100%;table-layout:fixed;border-collapse:collapse;background:#fff;border:1px solid #71869a}
.cash-voucher-entry-table th,.cash-voucher-entry-table td{height:38px;border:1px solid #9aa9b7;padding:0;vertical-align:middle}
.cash-voucher-entry-table th{width:12%;padding:7px 9px;background:#dce5ec;color:#183b5b;text-align:left;font-size:12px;white-space:nowrap}
.cash-voucher-entry-table td{width:21.333%;background:#fff}
.cash-voucher-entry-table th i{color:#c52222;font-style:normal}
.cash-voucher-entry-table input,.cash-voucher-entry-table select,.cash-voucher-entry-table textarea{display:block;width:100%;height:100%;min-height:37px;margin:0!important;padding:7px 9px;border:0!important;border-radius:0!important;background:#fff;box-shadow:none!important;font:600 12px Arial,sans-serif;color:#122f49}
.cash-voucher-entry-table textarea{min-height:58px;resize:vertical;line-height:1.4}
.cash-voucher-entry-table input:focus,.cash-voucher-entry-table select:focus,.cash-voucher-entry-table textarea:focus{outline:2px solid #1877f2;outline-offset:-2px;background:#f7fbff}
.cash-voucher-entry-table input[readonly]{background:#f5f6f7;color:#677786}
.cash-voucher-kind{display:block;padding:8px 10px;color:#08783c}.cash-voucher-kind.expense{color:#ba1e2d}
.cash-voucher-amount{font-size:16px!important;text-align:right;color:#b51625!important;font-weight:900!important}
.cash-voucher-total-row{display:grid;grid-template-columns:36% 21.333%;justify-content:end;align-items:center;min-height:42px;border:1px solid #71869a;border-top:0;background:#dce5ec}
.cash-voucher-total-row span{padding:8px 12px;text-align:right;font-weight:900;color:#173b5a}.cash-voucher-total-row b{height:100%;padding:10px;border-left:1px solid #71869a;background:#fff;text-align:right;font-size:17px;color:#c01826}
.cash-voucher-actions{justify-content:flex-start;margin:9px 0 0;padding:0}
.cash-voucher-history{padding:14px}
.cash-voucher-history h3{margin:0 0 10px;color:#134f87}
.cash-voucher-history table{min-width:1180px}
.cash-voucher-content{min-width:220px;white-space:normal}
.cashbook-report-table{min-width:1160px}
.cashbook-report-table th:nth-child(1){width:54px}.cashbook-report-table th:nth-child(2){width:115px}.cashbook-report-table th:nth-child(6),.cashbook-report-table th:nth-child(7){width:145px}
[data-report-section="cashbook_unallocated"] .cashbook-report-table :is(th,td):nth-child(3),[data-report-section="income_summary"] .cashbook-report-table :is(th,td):nth-child(3),[data-report-section="cashbook_allocated"] .cashbook-report-table :is(th,td):nth-child(2){width:128px;min-width:128px;max-width:128px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cashbook-report-table tbody tr.cashbook-income-row td{background:#fbfffc}.cashbook-report-table tbody tr.cashbook-expense-row td{background:#fffafa}
.cashbook-report-table tfoot th{position:sticky;bottom:0;background:#dcecff;border-top:2px solid #1877f2;font-size:13px}
.report-allocation-cell{white-space:pre-line;line-height:1.55;min-width:260px}.cashbook-report-table tfoot .report-allocation-cell{text-align:left}

/* Báo cáo họp điều hành */
.executive-report-page{background:#f4f7fb}.executive-filter{display:grid;grid-template-columns:170px 190px minmax(230px,1fr) auto minmax(260px,auto);gap:10px;align-items:end;border-top:3px solid #176bd6}.executive-filter .field{margin:0}.executive-period-caption{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:6px 12px;border-left:1px solid #c7d7e8;background:#f7fbff}.executive-period-caption b{color:#0a4ea3}.executive-period-caption span{font-size:11px;color:#66788a;margin-top:3px}
.executive-kpis{display:grid;grid-template-columns:repeat(6,minmax(155px,1fr));gap:9px;margin-top:10px}.executive-kpi{position:relative;overflow:hidden;min-height:106px;padding:13px 14px;border:1px solid #b9cbe0;border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(15,67,125,.06)}.executive-kpi:after{content:"";position:absolute;width:56px;height:56px;border-radius:50%;right:-18px;top:-18px;background:#e3f0ff}.executive-kpi.cost:after{background:#ffeded}.executive-kpi>span{display:block;font-size:10px;font-weight:900;color:#60748a;letter-spacing:.25px}.executive-kpi>b{display:block;margin:10px 0 8px;color:#073b84;font-size:20px}.executive-kpi.cost>b{color:#b42318}.executive-kpi>div{display:flex;align-items:center;gap:6px}.executive-kpi small{font-size:10px;color:#738397}
.executive-change{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:3px 7px;border-radius:12px;font-size:11px;font-weight:900}.executive-change.good{color:#087443;background:#dcf7e8}.executive-change.bad{color:#b42318;background:#ffe5e5}.executive-change.neutral{color:#596b7e;background:#edf1f5}
.executive-grid{display:grid;gap:10px;margin-top:10px}.executive-chart-grid,.executive-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-summary-grid{grid-template-columns:minmax(460px,.9fr) minmax(0,1.1fr)}.executive-card-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.executive-card-title h3{margin:0;color:#0a4697;font-size:15px}.executive-card-title p{margin:3px 0 0;color:#718096;font-size:11px}.executive-legend{display:flex;gap:12px;font-size:10px;color:#617286}.executive-legend span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:4px;border-radius:2px;vertical-align:-1px;background:#1d78e8}.executive-legend .previous:before{background:#aebdcd}.executive-legend .expense:before{background:#f08a24}
.executive-column-chart{height:245px;display:flex;align-items:stretch;gap:5px;padding:20px 8px 0;border-left:1px solid #d5e0eb;border-bottom:1px solid #aebfd0;background:repeating-linear-gradient(to top,#fff 0,#fff 48px,#e7eef5 49px,#fff 50px);overflow-x:auto}.executive-column-group{flex:1;min-width:52px;display:grid;grid-template-rows:minmax(0,1fr) 20px 26px;align-items:end;text-align:center}.executive-column-values{height:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px}.executive-column-values span,.executive-column-values b{display:block;width:min(18px,36%);min-height:0;border-radius:3px 3px 0 0;background:#aebdcd}.executive-column-values b{background:linear-gradient(#43a0ff,#1666cf)}.executive-chart-card:nth-child(2) .executive-column-values b{background:linear-gradient(#ffbd66,#e6780b)}.executive-column-label{font-size:10px;font-weight:900;color:#425a72;padding-top:4px}.executive-column-group small{font-size:9px;color:#63768a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.executive-activity-chart{display:grid;gap:13px}.executive-activity-row{display:grid;grid-template-columns:120px minmax(0,1fr) 70px;gap:10px;align-items:center}.executive-activity-row>b{font-size:11px;color:#314c69}.executive-activity-row>div{display:grid;gap:3px}.executive-activity-row span,.executive-activity-row i{display:block;height:8px;min-width:2px;border-radius:5px;background:#b8c5d2}.executive-activity-row i{background:linear-gradient(90deg,#1774df,#48b4ee)}.executive-activity-row strong{text-align:right;color:#0a4ea3}.executive-activity-row small{color:#75869a;font-weight:500}.executive-activity-foot{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.executive-activity-foot span{padding:5px 9px;border-radius:13px;background:#edf5ff;color:#1b5797;font-size:10px;font-weight:800}.executive-overview>p{font-size:13px;line-height:1.65;color:#334d68;margin:6px 0 13px}.executive-overview-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.executive-overview-numbers span{padding:9px;background:#f2f7fc;border:1px solid #d4e1ee;border-radius:7px;font-size:10px;color:#61758b}.executive-overview-numbers b{display:block;color:#064da5;font-size:14px;margin-bottom:3px}
.executive-service-bars{display:grid;gap:8px}.executive-service-row{display:grid;grid-template-columns:27px minmax(0,1fr);gap:8px;align-items:center}.executive-service-rank{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#e4f1ff;color:#0755ad;font-weight:900}.executive-service-main>div:first-child{display:flex;justify-content:space-between;gap:12px}.executive-service-main b{font-size:11px;color:#244564}.executive-service-main span{font-size:10px;color:#6c7e90;white-space:nowrap}.executive-service-track{height:7px;margin-top:4px;background:#e6edf4;border-radius:5px;overflow:hidden}.executive-service-track i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#1173df,#40b5ed)}.executive-service-grid article:nth-child(2) .executive-service-track i{background:linear-gradient(90deg,#f5ad46,#e77a16)}.executive-no-activity{margin-top:10px}.executive-no-activity>div:last-child{display:flex;gap:6px;flex-wrap:wrap}.executive-no-activity>div:last-child span{padding:5px 9px;border:1px solid #edbd7b;background:#fff8eb;color:#8a5505;border-radius:14px;font-size:10px;font-weight:800}
.executive-comparison,.executive-advice{margin-top:10px}.executive-comparison table td,.executive-comparison table th{padding:6px 8px}.executive-advice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.executive-advice-list article{display:grid;grid-template-columns:30px 1fr;gap:9px;padding:10px;border:1px solid #cad8e6;border-left:4px solid #2678d8;border-radius:7px;background:#f9fcff}.executive-advice-list article.warning{border-left-color:#d97706;background:#fffaf0}.executive-advice-list article.improve{border-left-color:#8b5cf6;background:#fbf9ff}.executive-advice-list article.positive,.executive-advice-list article.strength{border-left-color:#15945c;background:#f3fff8}.executive-advice-list article>span{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#e2effe;color:#0a58b0;font-weight:900}.executive-advice-list b{color:#173d64}.executive-advice-list p{margin:4px 0 0;color:#536b82;font-size:11px;line-height:1.5}.executive-advice-note{margin-top:10px;padding:8px 10px;border:1px dashed #9eb2c6;background:#f7f9fb;color:#65778a;font-size:10px}
@media(max-width:1200px){.executive-filter{grid-template-columns:repeat(4,minmax(150px,1fr))}.executive-period-caption{grid-column:1/-1;border-left:0;border-top:1px solid #c7d7e8}.executive-kpis{grid-template-columns:repeat(3,1fr)}.executive-summary-grid{grid-template-columns:1fr}}
@media(max-width:760px){.executive-filter{grid-template-columns:1fr 1fr}.executive-filter .executive-branch,.executive-filter .executive-period-caption{grid-column:1/-1}.executive-kpis{grid-template-columns:1fr 1fr}.executive-chart-grid,.executive-service-grid,.executive-advice-list{grid-template-columns:1fr}.executive-column-chart{height:210px}.executive-overview-numbers{grid-template-columns:1fr 1fr}.executive-activity-row{grid-template-columns:100px minmax(0,1fr) 58px}}
@media print{.executive-report-page .executive-filter,.executive-report-page .page-head .actions{display:none!important}.executive-report-page{background:#fff}.executive-report-page .card,.executive-report-page .executive-kpi{box-shadow:none;break-inside:avoid}.executive-chart-grid,.executive-service-grid,.executive-summary-grid{grid-template-columns:1fr 1fr}.executive-kpis{grid-template-columns:repeat(3,1fr)}.executive-advice{break-before:page}.executive-column-chart{height:205px}}
@media(max-width:760px){.cash-voucher-modal{width:100vw;height:100dvh;max-height:none;border-radius:0}.cash-voucher-form{overflow-x:auto}.cash-voucher-entry-table{min-width:920px}.cash-voucher-total-row{min-width:920px}.cash-voucher-actions{min-width:920px}}
.treatment-plan-readonly .plan-editor-head{background:#fff7df;border-color:#d8a73b}
.treatment-plan-readonly .plan-mode-badge{background:#fff0c2!important;color:#785100!important;border-color:#d6a431!important}
.treatment-plan-readonly .exam-table input:disabled,.treatment-plan-readonly .exam-table select:disabled,.treatment-plan-readonly .exam-table textarea:disabled{opacity:1;background:#f4f5f6;color:#3e5264;cursor:not-allowed}

/* ===== V118 - tương phản cobalt và bản đồ xem trước ===== */
.procedure-pane-title h3,.procedure-pane-title h2,.procedure-pane-title span,
.portal-card-head *,.desktop-title *,.v92-price-group-title *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 1px rgba(0,38,92,.28)!important;
}
.procedure-pane-title h3{font-family:Arial,"Segoe UI","Noto Sans",Tahoma,sans-serif!important}
.traditional-ribbon-header .ribbon-tab-row button:not(.active) *,
.v82-nav *,.help-hero *{color:#fff!important;-webkit-text-fill-color:#fff!important}
.v118-location-grid{grid-template-columns:repeat(auto-fit,minmax(300px,380px))}
.v117-location-card.v118-location-card{aspect-ratio:1;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:0;overflow:hidden;align-items:stretch;justify-items:stretch;gap:0;background:#fff;text-align:left}
.v117-location-card.v118-location-card:hover{transform:translateY(-5px)}
.v118-location-map{position:relative;min-height:210px;background:#eaf3ff;overflow:hidden}
.v118-location-map iframe{display:block;width:100%;height:100%;min-height:210px;border:0;background:#eaf3ff}
.v118-location-map>.v117-location-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.v118-location-info{display:grid;gap:7px;padding:16px 18px;background:#fff;border-top:1px solid #a9caf7;text-align:center}
.v118-location-info strong{font-size:19px;color:#0b55b5}
.v118-location-info small{min-height:42px;font-size:14px;line-height:1.45;color:#4b6380}
.v118-location-info a{display:block;padding:9px 12px;border-radius:7px;background:linear-gradient(110deg,#0b5fd7,#1877f2);color:#fff!important;font-size:14px;font-weight:900;text-decoration:none}
.v118-location-info a:hover{background:#0753bd;box-shadow:0 4px 12px #1877f24d}
@media(max-width:620px){.v118-location-grid{grid-template-columns:1fr}.v117-location-card.v118-location-card{aspect-ratio:auto;min-height:420px}}

/* ===== Mobile WebApp V119: giao diện cảm ứng dọc, tách biệt bản desktop ===== */
.mobile-app-header,.mobile-bottom-nav,.mobile-dashboard,.public-mobile-bottom-nav{display:none}
.mobile-treatment-cart-head,.mobile-treatment-checkout,.mobile-picker-tabs,.mobile-picker-cart-jump{display:none}
.mobile-menu-backdrop[hidden]{display:none!important}
.public-main-tabs{grid-template-columns:minmax(180px,1fr) repeat(3,minmax(145px,.55fr))!important}
.public-home-access{min-height:46px;border:0;border-left:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;font:800 12px Arial,"Segoe UI",sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
.public-home-access span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.17);font-size:15px}
.public-home-access:hover,.public-home-access:focus-visible{background:rgba(255,255,255,.16);outline:0}
.public-home-tab{font-size:13px!important}
.v82-access-link{min-height:34px;padding:0 10px;border:1px solid #bdd8ff;border-radius:18px;background:#fff;color:#0b56b4;font-weight:900;cursor:pointer;white-space:nowrap}
.v82-access-link.warranty{color:#087253}.v82-access-link.login{background:#0b5fd7;color:#fff;border-color:#0b5fd7}

@media(max-width:900px){
  :root{--mobile-purple:#7859dd;--mobile-purple-dark:#6543ce;--mobile-green:#91c77b;--mobile-ink:#1c2230;--mobile-muted:#6e7480;--mobile-surface:#fff;--mobile-bg:#f6f7fb}
  body.v101-mobile-controls-visible .mobile-view-controls,.mobile-view-controls{display:none!important}
  #login-screen{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  #login-screen .public-main-tabs{display:none!important}
  .public-mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:1200;padding:6px 5px calc(6px + env(safe-area-inset-bottom));border-top:1px solid #dfe5ef;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(17,43,80,.13);backdrop-filter:blur(14px)}
  .public-mobile-bottom-nav button{min-width:0;min-height:52px;border:0;border-radius:12px;background:transparent;color:#526073;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
  .public-mobile-bottom-nav button span{font-size:21px;line-height:1}.public-mobile-bottom-nav button b{font-size:10px;white-space:nowrap}.public-mobile-bottom-nav button.active{background:#eaf3ff;color:#0758bd}
  #app-screen{height:100dvh;background:var(--mobile-bg)}
  #app-screen .legacy-app-window{height:100dvh;display:flex;flex-direction:column;background:var(--mobile-bg)}
  #app-screen .legacy-caption,#app-screen .traditional-ribbon-header,#app-screen .statusbar{display:none!important}
  .mobile-app-header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;min-height:88px;padding:calc(16px + env(safe-area-inset-top)) 20px 14px;background:linear-gradient(135deg,var(--mobile-purple-dark),#9476ea);color:#fff;box-shadow:0 5px 18px rgba(82,50,167,.2);position:relative;z-index:120}
  .mobile-app-header small{display:block;margin-bottom:3px;color:#eee9ff;font-size:11px;white-space:nowrap;max-width:76vw;overflow:hidden;text-overflow:ellipsis}
  .mobile-app-header h1{margin:0;font-size:25px;line-height:1.1;color:#fff}
  .mobile-header-notification{position:relative;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;font-size:19px;cursor:pointer}
  .mobile-header-notification span{position:absolute;right:-2px;top:-3px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:12px;background:#ff4e67;color:#fff;font-size:10px;font-weight:900;border:2px solid #8769e2}
  #page-root{flex:1 1 auto;min-height:0;padding:0 0 calc(78px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;background:var(--mobile-bg);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  #page-root>.page{padding:12px!important;min-height:100%;overflow:visible}
  .mobile-bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:1000;min-height:66px;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-top:1px solid #e3e4ea;background:rgba(255,255,255,.97);box-shadow:0 -7px 22px rgba(24,31,51,.1);backdrop-filter:blur(14px)}
  .mobile-bottom-nav button{min-width:0;min-height:52px;border:0;border-radius:12px;background:transparent;color:#4c5260;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
  .mobile-bottom-nav button[hidden]{display:none!important}
  .mobile-bottom-nav button.active{color:var(--mobile-purple-dark);background:#f2effd}
  .mobile-nav-icon{font-size:22px;line-height:1}.mobile-bottom-nav b{font-size:10px;white-space:nowrap}
  .mobile-menu-backdrop{position:fixed;inset:0;z-index:20000;display:flex;align-items:flex-end;background:rgba(17,21,34,.48);opacity:0;transition:opacity .18s ease}
  .mobile-menu-backdrop.open{opacity:1}
  .mobile-menu-sheet{width:100%;max-height:88dvh;display:flex;flex-direction:column;border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -18px 50px rgba(23,27,46,.25);transform:translateY(16px);transition:transform .18s ease;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}
  .mobile-menu-backdrop.open .mobile-menu-sheet{transform:translateY(0)}
  .mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px;border-bottom:1px solid #ececf2}.mobile-menu-head small{font-size:9px;color:var(--mobile-purple-dark);font-weight:900;letter-spacing:.8px}.mobile-menu-head h2{margin:3px 0 0;font-size:21px}.mobile-menu-head button{width:40px;height:40px;border:0;border-radius:50%;background:#f1f1f6;font-size:25px}
  .mobile-menu-user{margin:12px 16px 4px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#f1edff,#faf9ff);display:grid;gap:3px}.mobile-menu-user b{color:#3f2b8e}.mobile-menu-user span{font-size:11px;color:#696d7a}
  .mobile-menu-grid{padding:8px 14px 16px;overflow:auto;display:grid;gap:14px}.mobile-menu-group h3{margin:5px 3px 8px;font-size:11px;text-transform:uppercase;color:#858996;letter-spacing:.5px}.mobile-menu-group>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mobile-menu-group button{min-height:82px;padding:9px 5px;border:1px solid #e4e2ec;border-radius:14px;background:#fff;color:#303443;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.mobile-menu-group button span{font-size:22px;color:var(--mobile-purple-dark)}.mobile-menu-group button b{font-size:10px;line-height:1.25;text-align:center}
  .mobile-menu-logout{margin:0 16px 12px;min-height:46px;border:1px solid #f2b7bd;border-radius:13px;background:#fff4f5;color:#bb2637;font-weight:900}

  /* Dashboard mobile */
  .dashboard-page{padding:0 14px 18px!important}.mobile-dashboard{display:grid;gap:14px}.dashboard-desktop{display:none!important}
  .mobile-period-switch{margin-top:2px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:4px;border-radius:15px;background:#e9e9ee}.mobile-period-switch button{min-height:42px;border:0;border-radius:12px;background:transparent;color:#343845;font-size:12px;font-weight:800}.mobile-period-switch button.active{background:#fff;color:var(--mobile-purple-dark);box-shadow:0 2px 7px rgba(30,35,55,.2)}
  .mobile-dashboard-caption{display:flex;align-items:center;justify-content:space-between;color:var(--mobile-muted);font-size:11px}.mobile-dashboard-caption button{width:34px;height:34px;border:0;border-radius:10px;background:#ece9f9;color:var(--mobile-purple-dark);font-size:20px}
  .mobile-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.mobile-kpi-card{min-height:116px;padding:17px 14px;border:1px solid #e0e1e8;border-radius:18px;background:#fff;box-shadow:0 5px 16px rgba(34,37,50,.05);text-align:left}.mobile-kpi-card span{display:flex;align-items:center;gap:6px;color:#252936;font-size:13px}.mobile-kpi-card i{width:17px;height:17px;display:grid;place-items:center;border:1px solid #626774;border-radius:50%;font:800 10px Arial}.mobile-kpi-card b{display:block;margin-top:21px;color:var(--mobile-purple-dark);font-size:18px;line-height:1.15;overflow-wrap:anywhere}
  .mobile-dashboard-card{padding:17px;border:1px solid #e3e4ea;border-radius:19px;background:#fff;box-shadow:0 5px 16px rgba(34,37,50,.05)}.mobile-card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-card-heading h2{margin:0;font-size:18px;color:var(--mobile-ink)}.mobile-card-heading p{margin:4px 0 0;font-size:10px;color:var(--mobile-muted)}.mobile-card-heading>button{min-height:34px;border:0;border-radius:10px;padding:0 11px;background:#f0edfb;color:var(--mobile-purple-dark);font-weight:900;font-size:10px}
  .mobile-donut-wrap{display:grid;grid-template-columns:minmax(170px,1fr) minmax(120px,.8fr);align-items:center;gap:15px;margin-top:15px}.mobile-donut{width:min(52vw,220px);aspect-ratio:1;margin:auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--mobile-green) 0 var(--mobile-done),#8968df var(--mobile-done) 100%);position:relative}.mobile-donut:before{content:"";position:absolute;width:54%;height:54%;border-radius:50%;background:#fff}.mobile-donut>div{position:relative;z-index:1;display:grid;text-align:center}.mobile-donut small{font-size:12px}.mobile-donut b{font-size:28px}.mobile-donut-legend{display:grid;gap:17px}.mobile-donut-legend span{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:7px;color:#565c68;font-size:11px}.mobile-donut-legend i{width:13px;height:13px;border-radius:50%;background:var(--mobile-green)}.mobile-donut-legend .pending i{background:#8968df}.mobile-donut-legend b{color:#252936}
  .mobile-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-quick-actions button{min-height:52px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--mobile-purple-dark),#8d70e4);color:#fff;font-weight:900}.mobile-quick-actions button:last-child{background:#fff;color:var(--mobile-purple-dark);border:1px solid #cfc5f3}.mobile-quick-actions span{font-size:18px;margin-right:5px}
  .mobile-appointment-list{padding-bottom:7px}.mobile-appointment-card{width:100%;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border:0;border-bottom:1px solid #ececf1;background:transparent;text-align:left}.mobile-appointment-card>span:nth-child(2){display:grid;gap:3px}.mobile-appointment-card small{color:#737783;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-appointment-time{width:48px;height:40px;display:grid;place-items:center;border-radius:11px;background:#eeeafd;color:#6044c3;font-weight:900}.mobile-empty-state{padding:25px 5px;text-align:center;color:#858995}

  /* Danh sách và biểu mẫu khách hàng dạng thẻ */
  .workspace-tabs{overflow-x:auto;white-space:nowrap}.desktop-title{border-radius:12px 12px 0 0;font-size:17px!important}
  .customer-command-zone{margin:0!important;padding:8px!important;border:0!important;border-radius:0 0 14px 14px!important;background:#fff!important}.customer-command-zone .desktop-commandbar{display:grid!important;grid-template-columns:repeat(5,1fr);gap:5px;overflow:visible!important}.customer-command-zone .desktop-command{min-width:0!important;min-height:48px!important;height:auto!important;padding:6px 3px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;gap:2px!important;border:1px solid #d9e1eb!important;border-radius:10px!important;background:#f8fbff!important;font-size:9px!important}.customer-command-zone .desktop-command svg{width:20px!important;height:20px!important}
  .customer-command-zone .desktop-filters{display:grid!important;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px;padding:0!important;border:0!important}.customer-command-zone .desktop-filter{min-width:0!important;padding:5px!important}.customer-command-zone .desktop-filter.wide{grid-column:1/-1}.customer-command-zone #customer-search-btn{grid-column:1/-1;min-height:44px!important;flex-direction:row!important;font-size:12px!important;background:#eaf3ff!important;color:#0757af!important}.customer-command-zone input,.customer-command-zone select{min-height:42px!important;font-size:16px!important}
  .responsive-table-note{display:none!important}.customer-mobile-grid-wrap{overflow:visible!important;max-height:none!important;margin-top:10px}.customer-mobile-grid{display:block!important;width:100%!important;min-width:0!important;border:0!important}.customer-mobile-grid thead{display:none}.customer-mobile-grid tbody{display:grid;gap:10px}.customer-mobile-grid tr.customer-grid-row{display:grid!important;grid-template-columns:1fr 1fr;gap:0;position:relative;padding:13px 12px 10px;border:1px solid #dedfe7;border-radius:16px;background:#fff;box-shadow:0 4px 13px rgba(31,36,54,.05)}.customer-mobile-grid tr.customer-grid-row.selected{border:2px solid var(--mobile-purple);background:#fbfaff}.customer-mobile-grid td{display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:34px;padding:6px 3px!important;border:0!important;border-bottom:1px dashed #ececf1!important;background:transparent!important;font-size:12px!important;text-align:right!important;white-space:normal!important}.customer-mobile-grid td:before{content:attr(data-label);color:#777c88;font-size:10px;font-weight:800;text-align:left}.customer-mobile-grid td:nth-child(2),.customer-mobile-grid td:nth-child(3),.customer-mobile-grid td:nth-child(6),.customer-mobile-grid td:nth-child(7),.customer-mobile-grid td:nth-child(8),.customer-mobile-grid td:nth-child(9),.customer-mobile-grid td:nth-child(13){grid-column:1/-1}.customer-mobile-grid td:nth-child(3){order:-3;justify-content:flex-start;border-bottom:0!important}.customer-mobile-grid td:nth-child(3):before{display:none}.customer-mobile-grid .customer-name-cell{font-size:16px;color:#5539b7;text-align:left}.customer-mobile-grid td:nth-child(2){order:-2}.customer-mobile-grid td.row-no{position:absolute;right:10px;top:10px;width:28px;height:28px;min-height:28px;display:grid!important;place-items:center;padding:0!important;border:0!important;border-radius:50%;background:#eeeafd!important;color:#6044c3}.customer-mobile-grid td.row-no:before{display:none}.customer-mobile-grid tr:not(.customer-grid-row) td.empty{display:block!important;padding:28px!important;text-align:center!important}.desktop-grid-footer{border-radius:12px;font-size:10px}
  .customer-record-dialog{width:100vw!important;height:100dvh!important;max-height:none!important;border-radius:0!important}.customer-record-body{overflow:auto!important;padding-bottom:calc(88px + env(safe-area-inset-bottom))!important}.customer-record-grid{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;padding:12px!important}.customer-record-grid>label{margin-top:7px}.customer-record-grid input,.customer-record-grid select,.customer-record-grid textarea{grid-column:1!important;width:100%!important;min-height:46px!important;font-size:16px!important;border-radius:10px!important}.customer-record-grid .span-3{grid-column:1!important}.customer-age-wrap{grid-column:1!important;display:grid!important;grid-template-columns:1fr 76px!important}.customer-medical-options{grid-template-columns:1fr 1fr!important}.customer-medical-options label{min-height:42px}.customer-record-footer{position:sticky!important;bottom:0!important;z-index:4;display:grid!important;grid-template-columns:1fr 1fr!important;padding:9px 12px calc(9px + env(safe-area-inset-bottom))!important;background:#fff!important;box-shadow:0 -7px 18px rgba(20,30,50,.12)}.customer-record-footer .mini-field:nth-child(3),.customer-record-footer>div:nth-child(4){display:none}.customer-record-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr!important}.customer-record-action{min-height:50px!important}

  /* Phiếu khám và kế hoạch điều trị thành thẻ nhập liệu cảm ứng */
  .exam-page-v32{padding:0!important;overflow:visible!important}.exam-page-v32 .workspace-tabs{display:none}.exam-page-v32 .treatment-shell{min-height:0!important;height:auto!important;border:0!important;overflow:visible!important}.exam-page-v32 .treatment-title{height:auto!important;min-height:48px!important;padding:12px!important;font-size:18px!important;border-radius:12px 12px 0 0}.exam-page-v32 .treatment-patient-area{display:block!important;min-height:0!important}.exam-page-v32 .patient-record-grid{grid-template-columns:1fr!important;padding:8px!important}.exam-page-v32 .record-field,.exam-page-v32 .record-field[class*="span-"]{grid-column:auto!important;grid-template-columns:105px minmax(0,1fr)!important;min-height:39px!important}.exam-page-v32 .record-field label{font-size:10px!important}.exam-page-v32 .record-field b,.exam-page-v32 .record-field input{font-size:12px!important;white-space:normal!important}.exam-page-v32 .medical-history-panel .medical-check-grid{grid-template-columns:1fr 1fr!important;overflow:visible!important}.exam-page-v32 .medical-history-panel .medical-check-grid label{min-height:40px;font-size:11px!important}.exam-page-v32 .treatment-toolbar{position:sticky!important;top:0;z-index:20;min-height:58px!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;padding:7px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 4px 12px rgba(24,35,55,.12)}.exam-page-v32 .treatment-toolbar .desktop-command{flex:0 0 86px!important;min-height:46px!important;height:auto!important;padding:5px!important;border:1px solid #d8e0ea!important;border-radius:10px!important;display:flex!important;flex-direction:column!important;white-space:normal!important}.exam-page-v32 .toolbar-date-group,.exam-page-v32 .toolbar-select-group{flex:0 0 170px!important;min-width:170px!important}.exam-page-v32 .treatment-main{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important}.exam-page-v32 .visit-date-pane{display:flex!important;max-height:none!important;overflow-x:auto!important;border:0!important;padding:5px 0!important}.exam-page-v32 .visit-date-pane .pane-title{position:sticky!important;left:0!important;min-width:112px!important;z-index:3}.exam-page-v32 .visit-date-item{flex:0 0 145px!important;min-height:64px!important;border:1px solid #d7dde7!important;border-radius:12px!important;margin:0 4px!important}.exam-page-v32 .treatment-grid-pane{max-height:none!important;overflow:visible!important;background:transparent!important}.exam-page-v32 .plan-editor-head{display:grid!important;gap:8px;padding:12px!important;border-radius:12px!important}.exam-page-v32 .column-resize-help{display:none!important}
  .exam-page-v32 .resizable-treatment-table{display:block!important;width:100%!important;min-width:0!important;table-layout:auto!important;border:0!important;background:transparent!important}.exam-page-v32 .resizable-treatment-table colgroup,.exam-page-v32 .resizable-treatment-table thead{display:none!important}.exam-page-v32 .resizable-treatment-table tbody{display:grid!important;gap:13px!important}.exam-page-v32 .resizable-treatment-table tbody tr{position:relative;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:42px 10px 12px!important;border:1px solid #dcdde5!important;border-radius:17px!important;background:#fff!important;box-shadow:0 5px 15px rgba(31,37,55,.07)!important}.exam-page-v32 .resizable-treatment-table tbody tr.exam-row-selected{border:2px solid var(--mobile-purple)!important;background:#fbfaff!important}.exam-page-v32 .resizable-treatment-table tbody td{display:grid!important;grid-template-rows:auto minmax(44px,auto)!important;align-items:stretch!important;gap:4px!important;width:auto!important;min-width:0!important;height:auto!important;padding:0!important;border:0!important;background:transparent!important;font-size:12px!important}.exam-page-v32 .resizable-treatment-table tbody td:before{font-size:9px;font-weight:900;text-transform:uppercase;color:#727785;letter-spacing:.25px}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(1){position:absolute;left:10px;top:9px;width:28px!important;height:28px!important;min-height:28px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:#eae5fb!important;color:#5e40be!important}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(1):before{display:none}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(2):before{content:"Liệu trình"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(3):before{content:"Chẩn đoán"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(4):before{content:"Răng"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(5):before{content:"Thủ thuật"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(6):before{content:"Nội dung điều trị"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(7):before{content:"Bác sĩ"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(8):before{content:"Trợ thủ"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(9):before{content:"Số lượng"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(10):before{content:"Đơn giá"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(11):before{content:"Giảm %"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(12):before{content:"Giảm tiền"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(13):before{content:"VAT"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(14):before{content:"Trước VAT"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(15):before{content:"Phải thanh toán"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(16):before{content:"Labo"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(17):before{content:"Mã bảo hành"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(18):before{content:"Ngày trả thẻ"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(19):before{content:"Số năm BH"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(20):before{content:"Thao tác"}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(2),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(3),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(4),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(5),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(6),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(7),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(8),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(16),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(17),.exam-page-v32 .resizable-treatment-table tbody td:nth-child(20){grid-column:1/-1!important}.exam-page-v32 .resizable-treatment-table input,.exam-page-v32 .resizable-treatment-table select,.exam-page-v32 .resizable-treatment-table button{min-height:44px!important;width:100%!important;font-size:16px!important;border-radius:9px!important}.exam-page-v32 .resizable-treatment-table .money{min-height:44px;display:flex!important;align-items:center!important;justify-content:flex-end!important;padding:8px!important;border:1px solid #d8dde5!important;border-radius:9px!important;background:#f7f8fa!important;font-size:14px!important}.exam-page-v32 .resizable-treatment-table .remove-row{background:#fff1f2!important;color:#be2436!important;border:1px solid #efb8bf!important}.exam-page-v32 .treatment-bottom{display:grid!important;grid-template-columns:1fr!important;padding:8px 0!important}.exam-page-v32 .treatment-payment-box .payment-row{grid-template-columns:1fr!important}.exam-page-v32 .traditional-history-content{grid-template-columns:1fr!important}.exam-page-v32 .finance-summary{display:grid!important;grid-template-columns:1fr 1fr!important}.exam-page-v32 .installment-config{overflow-x:auto!important}

  /* Luồng khám mobile như giỏ hàng: chọn dịch vụ -> giỏ -> lưu/thanh toán */
  .mobile-treatment-cart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;padding:13px 14px;border:1px solid #d8d1f2;border-radius:15px;background:linear-gradient(135deg,#f4f0ff,#fff);box-shadow:0 5px 14px rgba(86,59,164,.07)}
  .mobile-treatment-cart-head>div{display:grid;gap:3px}.mobile-treatment-cart-head small{font-size:9px;font-weight:900;color:#7459c8;letter-spacing:.5px}.mobile-treatment-cart-head b{font-size:14px}.mobile-treatment-cart-head strong{font-size:17px;color:#6243c0;white-space:nowrap}
  .exam-page-v32 .treatment-shell{padding-bottom:82px!important}.mobile-treatment-checkout{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:6px;position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:80;margin:8px 0 0;padding:8px;border:1px solid #ded8ef;border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 -7px 24px rgba(35,31,55,.15);backdrop-filter:blur(12px)}
  .mobile-treatment-checkout button{min-width:0;min-height:52px;border:1px solid #d9d2ef;border-radius:12px;background:#f6f3ff;color:#6042bb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.mobile-treatment-checkout button span{font-size:17px}.mobile-treatment-checkout button b{font-size:9px;line-height:1.15}.mobile-treatment-checkout button.primary{border-color:#6949ca;background:linear-gradient(135deg,#6848cc,#8b70e1);color:#fff}
  .treatment-payment-box.mobile-checkout-focus{outline:3px solid #8968df;box-shadow:0 0 0 7px rgba(137,104,223,.16);transition:.2s}

  .treatment-picker-backdrop{z-index:30000!important;padding:0!important}.traditional-treatment-picker{width:100vw!important;height:100dvh!important;border:0!important;border-radius:0!important;background:#f7f7fb!important}.treatment-picker-caption{height:auto!important;min-height:46px!important;padding:calc(8px + env(safe-area-inset-top)) 14px 8px!important;background:#fff!important}.treatment-picker-title{flex:0 0 auto!important;min-height:42px!important;font-size:17px!important;background:linear-gradient(135deg,#6543ce,#9174e7)!important;color:#fff!important}
  .mobile-picker-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:7px 9px;border-bottom:1px solid #dddfea;background:#fff}.mobile-picker-tabs button{min-height:42px;border:0;border-radius:11px;background:#eeeef3;color:#555b68;font-weight:900}.mobile-picker-tabs button span{display:inline-grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#fff}.mobile-picker-tabs button.active{background:#ece6ff;color:#6041bd}.mobile-picker-tabs button b{display:inline-grid;min-width:19px;height:19px;place-items:center;border-radius:10px;background:#7456d1;color:#fff;font-size:10px}
  .treatment-picker-workspace{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,1fr)!important;overflow:hidden!important}.picker-group-pane{display:block!important;border:0!important;background:#fff!important}.picker-group-pane>.picker-pane-heading{display:none!important}.picker-group-pane .picker-search-row{height:auto!important;padding:7px!important;border:0!important}.picker-group-pane .picker-search-row input,.picker-detail-section .picker-search-row input{height:42px!important;border:1px solid #d7d9e3!important;border-radius:11px!important;font-size:16px!important}.picker-group-pane .picker-table-scroll{padding:0 7px 7px;overflow-x:auto!important}.picker-group-pane .picker-table,.picker-group-pane .picker-table tbody{display:flex!important;width:max-content!important;min-width:100%!important;gap:6px}.picker-group-pane .picker-table thead{display:none!important}.picker-group-pane .picker-table tr{display:block!important}.picker-group-pane .picker-table td:first-child{display:none!important}.picker-group-pane .picker-table td:nth-child(2){display:block!important;min-width:124px!important;max-width:190px!important;padding:9px 12px!important;border:1px solid #dfe0e8!important;border-radius:18px!important;background:#f7f7fa!important;text-align:center!important;white-space:normal!important}.picker-group-pane .picker-table tr.selected-row td:nth-child(2){border-color:#7254cf!important;background:#eee9ff!important;color:#5739b6!important}
  .picker-right-pane{display:block!important;min-height:0!important;overflow:hidden!important}.picker-detail-section,.picker-selected-section{height:100%!important}.picker-selected-section{display:none!important}.traditional-treatment-picker.mobile-cart-open .picker-group-pane{display:none!important}.traditional-treatment-picker.mobile-cart-open .picker-detail-section{display:none!important}.traditional-treatment-picker.mobile-cart-open .picker-selected-section{display:flex!important}.picker-pane-heading{min-height:35px!important;flex:0 0 auto!important;font-size:13px!important;background:#eef0f8!important;color:#3e4655!important}.picker-search-row{height:auto!important;flex:0 0 auto!important;padding:7px!important}.picker-child-scroll,.picker-selected-scroll{padding:8px!important;background:#f7f7fb!important}.picker-child-scroll .picker-table,.picker-selected-scroll .picker-table{display:block!important;min-width:0!important}.picker-child-scroll thead,.picker-selected-scroll thead{display:none!important}.picker-child-scroll tbody,.picker-selected-scroll tbody{display:grid!important;gap:8px!important}.picker-child-scroll tr{display:grid!important;grid-template-columns:minmax(0,1fr) auto 48px!important;gap:8px!important;align-items:center;padding:12px!important;border:1px solid #e0e1e8!important;border-radius:14px!important;background:#fff!important;box-shadow:0 3px 10px rgba(30,35,50,.05)}.picker-child-scroll td{display:block!important;padding:0!important;border:0!important;white-space:normal!important;font-size:12px!important}.picker-child-scroll td:nth-child(1),.picker-child-scroll td:nth-child(3),.picker-child-scroll td:nth-child(4),.picker-child-scroll td:nth-child(6){display:none!important}.picker-child-scroll td:nth-child(2){grid-column:1}.picker-child-scroll td:nth-child(5){grid-column:2;color:#6043bc;font-weight:900;white-space:nowrap!important}.picker-child-scroll td:nth-child(7){grid-column:3}.picker-add-service{width:44px!important;height:44px!important;border:0!important;border-radius:50%!important;background:#7456d1!important;font-size:23px!important}
  .picker-selected-scroll tr{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;position:relative;padding:40px 11px 12px!important;border:1px solid #dfe0e8!important;border-radius:15px!important;background:#fff!important}.picker-selected-scroll td{display:grid!important;gap:4px;padding:0!important;border:0!important;white-space:normal!important}.picker-selected-scroll td:first-child{position:absolute;left:11px;top:10px;width:24px!important;height:24px;display:grid!important;place-items:center;background:#eee9ff;border-radius:50%!important;color:#6041bd}.picker-selected-scroll td:nth-child(2){grid-column:1/-1;min-width:0!important;font-size:14px}.picker-selected-scroll td:nth-child(3)::before{content:"Số lượng"}.picker-selected-scroll td:nth-child(4)::before{content:"Đơn giá"}.picker-selected-scroll td:nth-child(5){display:none!important}.picker-selected-scroll td:nth-child(6)::before{content:"Giảm %"}.picker-selected-scroll td:nth-child(7)::before{content:"Giảm tiền"}.picker-selected-scroll td:nth-child(8){grid-column:1/-1;display:flex!important;align-items:center;justify-content:space-between;color:#6041bd;font-size:15px;font-weight:900}.picker-selected-scroll td:nth-child(8)::before{content:"Phải trả";font-size:10px;color:#737985}.picker-selected-scroll td:nth-child(9){position:absolute;right:10px;top:8px}.picker-selected-scroll td::before{font-size:9px;font-weight:900;text-transform:uppercase;color:#777c88}.selected-procedure-table input{width:100%!important;height:43px!important;border:1px solid #d8dae4!important;border-radius:9px!important;font-size:16px!important}.picker-remove-service{width:32px!important;height:32px!important;border:0!important;border-radius:50%!important}.picker-selected-summary{min-height:48px!important;justify-content:space-between!important;padding:8px 12px!important;gap:8px!important;background:#f0ecff!important}.picker-selected-summary span{display:grid!important;font-size:9px!important}.picker-selected-summary b{font-size:14px!important}
  .treatment-picker-actions{min-height:66px!important;padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important;display:grid!important;grid-template-columns:1fr 1.2fr!important;gap:7px!important;background:#fff!important}.mobile-picker-cart-jump{display:flex!important;min-height:48px;border:1px solid #cfc6ef;border-radius:11px;background:#f2eeff;color:#5c3cb8;flex-direction:column;align-items:flex-start;justify-content:center;padding:5px 10px}.mobile-picker-cart-jump small{font-size:9px}.treatment-picker-actions .btn{min-height:48px!important}.treatment-picker-actions #service-picker-cancel{display:none!important}

  .mobile-promotion-backdrop{z-index:31000!important;align-items:flex-end!important;padding:0!important}.mobile-promotion-modal{width:100%!important;max-width:none!important;border-radius:22px 22px 0 0!important;padding-bottom:env(safe-area-inset-bottom)}.mobile-promotion-form{display:grid;gap:14px;padding:16px}.mobile-promotion-total{display:flex;align-items:center;justify-content:space-between;padding:14px;border-radius:13px;background:#f1edff}.mobile-promotion-total b{font-size:18px;color:#6041bd}.mobile-promotion-types{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-promotion-types label{min-height:50px;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #dcdde5;border-radius:12px}.mobile-promotion-form input[type="number"]{min-height:48px;font-size:18px;border-radius:11px}.mobile-promotion-form .modal-actions{display:grid;grid-template-columns:1fr 1fr}.mobile-promotion-form .btn{min-height:48px}

  /* Trang công khai trên điện thoại */
  .public-login-header{padding:8px 10px calc(8px + env(safe-area-inset-top))}.public-brand-welcome,.public-brand-wish{display:none}.public-header-actions .public-header-btn{display:none!important}.public-language-switcher{max-width:132px}
  .public-main-tabs{position:sticky!important;top:0!important;z-index:90!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;padding:5px!important;gap:4px!important;background:#0b5fd7!important}.public-home-tab{grid-column:1/-1!important;min-height:36px!important;border-radius:8px!important;background:#fff!important;color:#0755b8!important}.public-home-access{min-height:42px!important;border:0!important;border-radius:9px!important;background:rgba(255,255,255,.14)!important;padding:4px!important;font-size:10px!important}.public-home-access span{display:none}.public-tab-stage .staff-login-panel,.public-portal-panel,.public-warranty-panel{min-height:calc(100dvh - 126px)!important;padding:12px 8px!important}.public-staff-card{width:100%!important;border-radius:18px!important;overflow:hidden}.public-staff-card input,.public-staff-card select,.public-staff-card button{min-height:48px!important;font-size:16px!important}
  .v82-nav{padding:7px 9px!important;gap:7px}.v82-nav-links{display:none!important}.v92-nav-actions{margin-left:auto;display:flex!important;gap:4px;overflow-x:auto}.v82-access-link{min-height:34px!important;padding:0 8px!important;font-size:9px!important}.v82-hotline{display:none!important}.v82-hero{height:auto!important;min-height:52vw!important;max-height:72dvh}.v82-contact-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}.v82-contact-actions>*{min-height:46px!important;display:grid!important;place-items:center!important}.v122-product-video{grid-template-columns:1fr!important;padding:28px 14px!important}.v122-video-copy h2{font-size:28px!important}.v122-video-frame{min-width:0!important}.v122-video-frame video{width:100%!important;height:auto!important}.v102-contact-widget{bottom:calc(10px + env(safe-area-inset-bottom))!important}
}

@media(max-width:430px){
  .mobile-app-header{min-height:80px;padding-left:15px;padding-right:15px}.mobile-app-header h1{font-size:22px}.mobile-kpi-card{min-height:104px;padding:14px 12px}.mobile-kpi-card b{margin-top:17px;font-size:16px}.mobile-donut-wrap{grid-template-columns:1fr}.mobile-donut{width:min(66vw,225px)}.mobile-donut-legend{grid-template-columns:1fr 1fr}.mobile-menu-group>div{grid-template-columns:repeat(3,1fr)}
  .customer-command-zone .desktop-commandbar{grid-template-columns:repeat(4,1fr)}.customer-command-zone #customer-close-btn{display:none!important}.customer-mobile-grid tr.customer-grid-row{grid-template-columns:1fr 1fr}.exam-page-v32 .finance-summary{grid-template-columns:1fr!important}
}

/* V136: dành tối đa chiều cao cho vùng làm việc mobile. Thanh điều hướng dưới
   tự trượt khỏi màn hình khi đọc xuống và trở lại khi người dùng cuộn lên. */
@media(max-width:900px){
  #app-screen .mobile-app-header{display:none!important}
  #app-screen .mobile-bottom-nav{transition:transform .2s ease,opacity .18s ease,visibility .2s ease;will-change:transform}
  #app-screen .mobile-bottom-nav.mobile-nav-hidden{transform:translateY(calc(100% + env(safe-area-inset-bottom)));opacity:0;visibility:hidden;pointer-events:none}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
  #app-screen .mobile-bottom-nav{transition:none}
}

/* --- Khung "Thanh toán cho kế hoạch": xếp thành 2 hàng ngang (thay vì 2 cột
   cạnh nhau như trước), mỗi hàng tự co giãn và xuống dòng khi màn hình hẹp,
   để nút "Cập nhật kế hoạch"/"Lưu phiếu" không còn bị che khuất. Đặt cuối
   file để thắng các quy tắc lưới cột cũ (nhiều media query chồng chéo phía
   trên) mà không phải dò sửa từng chỗ, tránh rủi ro ảnh hưởng chỗ khác. */
.treatment-bottom,
.exam-page-v32 .treatment-bottom {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px;
}
.treatment-payment-box .payment-row,
.exam-page-v32 .treatment-payment-box .payment-row {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end;
  gap: 10px;
}
.treatment-payment-box .payment-row > .field,
.exam-page-v32 .treatment-payment-box .payment-row > .field {
  flex: 1 1 170px;
  min-width: 150px;
}
.treatment-payment-box .payment-row > #exam-submit-button,
.exam-page-v32 .treatment-payment-box .payment-row > #exam-submit-button {
  flex: 0 0 auto;
  margin-left: auto;
}
.finance-strip.finance-strip-seven {
  display: flex !important;
  flex-wrap: wrap !important;
  overflow-x: visible !important;
}
.finance-strip.finance-strip-seven .finance-cell {
  flex: 1 1 130px;
  min-width: 110px;
}
@media (max-width: 480px) {
  .treatment-payment-box .payment-row > .field,
  .exam-page-v32 .treatment-payment-box .payment-row > .field { flex-basis: 100%; }
  .treatment-payment-box .payment-row > #exam-submit-button,
  .exam-page-v32 .treatment-payment-box .payment-row > #exam-submit-button { flex-basis: 100%; margin-left: 0; }
  .finance-strip.finance-strip-seven .finance-cell { flex-basis: 45%; }
}

/* ===== Mobile UX V48: lịch hẹn, giỏ điều trị, dashboard vận hành ===== */
.appointments-mobile-list,.mobile-cart-add-inline,.mobile-cart-add-service{display:none}

@media(max-width:900px){
  /* Trung tâm thông báo của dashboard */
  .mobile-notification-backdrop{z-index:32000!important;align-items:flex-end!important;padding:0!important;background:rgba(20,20,34,.55)!important}
  .mobile-notification-sheet{width:100%;max-height:88dvh;display:flex;flex-direction:column;border-radius:24px 24px 0 0;background:#f7f7fb;box-shadow:0 -18px 60px rgba(21,20,40,.3);overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}
  .mobile-notification-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-bottom:1px solid #e3e1ec;background:#fff}.mobile-notification-head small{font-size:9px;font-weight:900;letter-spacing:.8px;color:#7154ce}.mobile-notification-head h2{margin:4px 0 0;font-size:20px}.mobile-notification-head button{width:42px;height:42px;border:0;border-radius:50%;background:#f1eff8;color:#51416f;font-size:25px}
  .mobile-notification-body{min-height:0;padding:10px 12px 18px;overflow:auto;display:grid;gap:12px}.mobile-notification-section{border:1px solid #e2e1e9;border-radius:16px;background:#fff;overflow:hidden}.mobile-notification-section-title{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;background:#f4f1ff;color:#3f3275;font-size:12px}.mobile-notification-section-title span{min-width:24px;height:24px;display:grid;place-items:center;border-radius:12px;background:#7558d3;color:#fff;font-weight:900}.mobile-notification-item{width:100%;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 12px;border:0;border-bottom:1px solid #efeff3;background:#fff;text-align:left;color:#252936}.mobile-notification-item:last-child{border-bottom:0}.mobile-notification-item>span:nth-child(2){display:grid;gap:3px;min-width:0}.mobile-notification-item small{color:#747986;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-time,.notification-icon{width:42px;height:38px;display:grid;place-items:center;border-radius:10px;background:#eee9ff;color:#6042be;font-weight:900}.mobile-notification-empty{padding:18px;text-align:center;color:#848895;font-size:11px}

  /* Các danh sách vận hành trên dashboard được giữ lại khi cuộn mobile */
  .mobile-operations-card{padding-bottom:7px!important}.mobile-operation-list{margin-top:8px;display:grid}.mobile-operation-row{min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 0;border:0;border-bottom:1px solid #ececf1;background:transparent;text-align:left;color:#252936}.mobile-operation-row:last-child{border-bottom:0}.mobile-operation-row>span:nth-child(2){display:grid;gap:3px;min-width:0}.mobile-operation-row small{display:block;color:#747986;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-operation-leading{width:44px;min-height:38px;display:grid;place-items:center;border-radius:10px;background:#eee9ff;color:#6042be;font-weight:900}.mobile-operation-leading.warning{background:#fff0e3;color:#c45b00}.mobile-operation-row strong{color:#c53535;font-size:11px;white-space:nowrap}

  /* Danh sách lịch hẹn mobile không còn bảng rộng/cuộn ngang */
  .appointments-excel-page{padding:0!important}.appointments-excel-shell{min-height:0!important;border:0!important;border-radius:15px!important;background:transparent!important;overflow:visible!important}.appointments-excel-title{height:auto!important;min-height:49px!important;border:0!important;border-radius:14px 14px 0 0!important;background:#fff!important;color:#1649bd!important;font-size:20px!important}
  .appointments-report-toolbar{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:10px!important;overflow:visible!important;background:#fff!important;border-radius:0 0 14px 14px!important}.appointments-report-toolbar .filter-label{display:none!important}.appointments-report-toolbar input,.appointments-report-toolbar select{width:100%!important;min-width:0!important;height:46px!important;border-radius:10px!important;font-size:16px!important}.appointments-report-toolbar .search-box,.appointments-report-toolbar #appointment-status-filter{grid-column:1/-1!important}.appointment-report-btn{width:100%!important;height:44px!important;justify-content:center!important;border-radius:10px!important;font-size:11px!important}.appointments-report-hint{margin-top:9px;padding:9px 11px!important;border:0!important;border-radius:10px!important;background:#edf5ff!important;line-height:1.45!important}.appointments-excel-wrap{overflow:visible!important;background:transparent!important}.appointments-desktop-table{display:none!important}.appointments-mobile-list{display:grid!important;gap:11px;padding:10px 0!important}
  .appointment-mobile-card{display:grid;gap:10px;padding:13px;border:1px solid #dedfe8;border-radius:17px;background:#fff;box-shadow:0 5px 15px rgba(31,36,54,.06);color:#242936}.appointment-mobile-card.appointment-row-selected{border:2px solid var(--mobile-purple);background:#fbfaff}.appointment-mobile-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center}.appointment-mobile-number{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#eee9ff;color:#6042be;font-weight:900}.appointment-mobile-head>div{display:grid;gap:3px;min-width:0}.appointment-mobile-head>div>b{font-size:15px;overflow-wrap:anywhere}.appointment-mobile-head small{color:#737986}.appointment-mobile-datetime{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:11px;background:#f1edff;color:#5a3db3}.appointment-mobile-datetime span{font-size:18px;font-weight:900}.appointment-mobile-service{display:grid;gap:4px}.appointment-mobile-service small,.appointment-mobile-note small,.appointment-mobile-meta small{font-size:9px;font-weight:900;color:#777d88}.appointment-mobile-service b{font-size:14px;line-height:1.35}.appointment-mobile-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.appointment-mobile-meta>span{display:grid;gap:4px;padding:9px;border-radius:10px;background:#f7f8fa}.appointment-mobile-meta b{font-size:11px;overflow-wrap:anywhere}.appointment-mobile-note{display:grid;gap:3px;padding:9px;border-left:3px solid #d6c9ff;background:#faf8ff}.appointment-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.appointment-mobile-actions label{grid-column:1/-1;min-height:40px;display:flex;align-items:center;gap:8px;padding:0 10px;border-radius:10px;background:#eef9f1;color:#17723a;font-weight:800}.appointment-mobile-actions input{width:20px;height:20px}.appointment-mobile-actions button{min-height:42px;border:1px solid #d6d2e5;border-radius:10px;background:#f7f5ff;color:#5f42b9;font-weight:900}.appointment-mobile-actions .appointment-open-record{background:#7254cf;color:#fff;border-color:#7254cf}.appointments-report-footer{border:0!important;border-radius:10px!important;flex-wrap:wrap!important;background:#fff!important}

  /* Thủ thuật trong kế hoạch: tên luôn ở đầu thẻ, nút Đổi nhỏ gọn */
  .exam-page-v32 .resizable-treatment-table tbody td:nth-child(5){order:-5!important;grid-column:1/-1!important;padding:0 0 5px!important;border-bottom:1px solid #ece9f6!important}.exam-page-v32 .resizable-treatment-table tbody td:nth-child(5):before{font-size:10px!important;color:#6543c3!important}.exam-page-v32 .resizable-treatment-table .service-cell-stack{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:stretch!important;gap:7px!important;width:100%!important;min-width:0!important}.exam-page-v32 .resizable-treatment-table .service-cell-button{width:100%!important;min-width:0!important;min-height:48px!important;padding:9px 10px!important;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;line-height:1.25!important;font-size:16px!important;font-weight:900!important;color:#075eaa!important}.exam-page-v32 .resizable-treatment-table .service-change-trigger{width:auto!important;min-width:58px!important;max-width:72px!important;min-height:48px!important;padding:6px 9px!important;font-size:12px!important;white-space:nowrap!important}.mobile-cart-add-inline{display:flex!important;width:calc(100% - 2px);min-height:50px;align-items:center;justify-content:center;margin:10px 1px 2px;border:2px dashed #bbaeed;border-radius:13px;background:#f7f4ff;color:#6041bd;font-size:14px;font-weight:900}.exam-page-v32 .finance-strip.finance-strip-seven{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;padding:7px!important;border:0!important;background:transparent!important}.exam-page-v32 .finance-strip.finance-strip-seven .finance-cell{min-width:0!important;min-height:70px;padding:10px!important;border:1px solid #dedfe7!important;border-radius:12px!important;background:#fff!important}.exam-page-v32 .finance-strip.finance-strip-seven .finance-cell:nth-child(3),.exam-page-v32 .finance-strip.finance-strip-seven .finance-cell:last-child{grid-column:1/-1!important;background:#f1edff!important}.exam-page-v32 .finance-strip.finance-strip-seven .finance-cell span{font-size:9px!important}.exam-page-v32 .finance-strip.finance-strip-seven .finance-cell b{margin-top:6px;font-size:15px!important;overflow:visible!important;white-space:normal!important}

  /* Giỏ chọn dịch vụ: mỗi thủ thuật là một thẻ hai cột, đủ VAT và tổng tiền */
  .picker-selected-scroll td:nth-child(5){display:grid!important}.picker-selected-scroll td:nth-child(5)::before{content:"Thành tiền"}.picker-selected-scroll td:nth-child(8)::before{content:"VAT"}.picker-selected-scroll td:nth-child(8){grid-column:auto!important;display:grid!important;color:inherit!important;font-size:inherit!important;font-weight:normal!important}.picker-selected-scroll td:nth-child(9)::before{content:"Tiền VAT"}.picker-selected-scroll td:nth-child(9){position:static!important;display:flex!important;align-items:center;justify-content:space-between}.picker-selected-scroll td:nth-child(10){grid-column:1/-1!important;display:flex!important;align-items:center;justify-content:space-between;padding:10px!important;border-radius:10px!important;background:#f1edff!important;color:#6041bd;font-size:16px!important;font-weight:900}.picker-selected-scroll td:nth-child(10)::before{content:"Phải trả";font-size:10px;color:#737985}.picker-selected-scroll td:nth-child(11){position:absolute;right:10px;top:8px}.selected-procedure-table select{width:100%!important;height:43px!important;border:1px solid #d8dae4!important;border-radius:9px!important;background:#fff!important;font-size:16px!important}.mobile-cart-add-service{display:flex!important;width:100%;min-height:48px;align-items:center;justify-content:center;margin:10px 0 2px;border:2px dashed #bbaeed;border-radius:12px;background:#fff;color:#6041bd;font-weight:900}.picker-selected-summary{display:grid!important;grid-template-columns:1fr 1fr!important;min-height:0!important}.picker-selected-summary span{min-height:43px;padding:4px 6px;border-radius:8px;background:#fff}.picker-selected-summary .summary-payable{grid-column:1/-1;display:flex!important;align-items:center;justify-content:space-between;background:#6647c7!important;color:#fff!important}.picker-selected-summary .summary-payable b{color:#fff!important;font-size:18px!important}

  /* Chuẩn chung cho popup và biểu mẫu chi tiết trên màn hình cảm ứng */
  #modal-root>.modal-backdrop:not(.treatment-picker-backdrop){padding:0!important;align-items:flex-end!important}.legacy-form-modal{width:100vw!important;max-height:94dvh!important;border-radius:20px 20px 0 0!important;overflow:auto!important}.legacy-form-grid{grid-template-columns:1fr!important;gap:5px!important;padding:12px!important}.legacy-form-grid>label{margin-top:7px!important}.legacy-form-grid input,.legacy-form-grid select,.legacy-form-grid textarea{grid-column:1!important;width:100%!important;min-height:46px!important;font-size:16px!important;border-radius:9px!important}.legacy-form-actions{position:sticky!important;bottom:0!important;z-index:4;display:grid!important;grid-template-columns:1fr 1fr!important;padding:9px!important;background:#fff!important;box-shadow:0 -6px 18px rgba(20,30,50,.12)}.page-head{align-items:flex-start!important;flex-direction:column!important;gap:10px!important}.page-head .actions{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.page-head .actions .btn{min-height:44px!important;white-space:normal!important}.field input,.field select,.field textarea{font-size:16px}

  /* V49: nhóm dịch vụ thành lưới 2 cột x 2 hàng, cuộn dọc để xem tiếp */
  .treatment-picker-workspace{grid-template-rows:190px minmax(0,1fr)!important}
  .picker-group-pane{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
  .picker-group-pane .picker-search-row{flex:0 0 55px!important;padding:7px 8px 6px!important}
  .picker-group-pane .picker-table-scroll{flex:1 1 auto!important;min-height:0!important;height:auto!important;padding:0 8px 8px!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important}
  .picker-group-pane .picker-table{display:block!important;width:100%!important;min-width:0!important}
  .picker-group-pane .picker-table tbody{display:grid!important;width:100%!important;min-width:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .picker-group-pane .picker-table tr{display:block!important;min-width:0!important}
  .picker-group-pane .picker-table td:nth-child(2){display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-width:0!important;max-width:none!important;min-height:52px!important;padding:7px 8px!important;border-radius:11px!important;line-height:1.2!important;overflow-wrap:anywhere!important}
  .picker-group-pane .picker-table tr.selected-row td:nth-child(2){box-shadow:inset 0 0 0 2px #7254cf!important}

  /* Giỏ dịch vụ: không chồng chân trang, mỗi ô là một khối nhập liệu rõ ràng */
  .picker-selected-section{min-height:0!important;overflow:hidden!important}.picker-selected-scroll{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding:9px 9px 20px!important;overscroll-behavior:contain!important}.picker-selected-scroll tbody{padding-bottom:4px!important}
  .picker-selected-scroll tr{padding:48px 10px 12px!important;gap:8px!important;overflow:visible!important}.picker-selected-scroll td:nth-child(n+3):nth-child(-n+9){min-width:0!important;min-height:64px!important;padding:7px!important;border:1px solid #e0e1e9!important;border-radius:10px!important;background:#fafbfc!important;align-content:start!important}.picker-selected-scroll td:nth-child(2){padding:0 38px 9px 0!important;border-bottom:1px solid #eceaf3!important}.picker-selected-scroll td:nth-child(2)>b{display:block!important;font-size:15px!important;line-height:1.3!important;overflow-wrap:anywhere!important}.picker-selected-scroll td:nth-child(2) .small{margin-top:3px!important}.picker-selected-scroll td::before{display:block!important;margin-bottom:4px!important;line-height:1.2!important}.picker-selected-scroll td:nth-child(10){min-height:48px!important}.picker-selected-scroll td:nth-child(11){min-height:0!important;padding:0!important;border:0!important;background:transparent!important}.selected-procedure-table input,.selected-procedure-table select{box-sizing:border-box!important;min-width:0!important;width:100%!important;height:42px!important;padding:6px 8px!important}.picker-selected-summary{flex:0 0 auto!important;max-height:none!important;padding:8px 9px!important;box-shadow:0 -5px 16px rgba(31,35,50,.08)!important}.treatment-picker-actions{position:relative!important;z-index:2!important;flex:0 0 auto!important}

  /* Ba thao tác của phiếu khám nằm cuối nội dung, không bám theo màn hình */
  .mobile-treatment-checkout{position:static!important;bottom:auto!important;z-index:auto!important;margin:18px 0 calc(12px + env(safe-area-inset-bottom))!important;box-shadow:0 5px 16px rgba(35,31,55,.10)!important;backdrop-filter:none!important}.exam-page-v32 .treatment-shell{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}

  /* Trang giới thiệu đã có thanh điều hướng dưới: bỏ nút trùng và giữ thương hiệu một dòng */
  .v82-nav{grid-template-columns:minmax(0,1fr)!important;padding:7px 12px!important}.v92-nav-actions{display:none!important}.v82-brand{width:100%!important;min-width:0!important}.v82-brand>div{min-width:0!important}.v82-brand b{display:block!important;max-width:none!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:13px!important}.public-brand-block>div:last-child{min-width:0!important}.public-brand-name{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:13px!important}
}

.service-cart-flyer{position:fixed;z-index:40000;max-width:180px;height:44px;display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:22px;background:linear-gradient(135deg,#6e4bd1,#9075e7);color:#fff;box-shadow:0 10px 26px rgba(72,46,151,.34);pointer-events:none;opacity:1;transform:translate(0,0) scale(1);transition:transform .58s cubic-bezier(.2,.8,.2,1),opacity .58s ease}.service-cart-flyer span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#6442c4;font-weight:900}.service-cart-flyer b{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.service-cart-flyer.fly{transform:translate(var(--fly-x),var(--fly-y)) scale(.35);opacity:.08}.cart-received{animation:cart-received-pulse .55s ease}@keyframes cart-received-pulse{0%,100%{transform:scale(1)}45%{transform:scale(1.08);box-shadow:0 0 0 7px rgba(117,84,207,.18)}}
@media(prefers-reduced-motion:reduce){.service-cart-flyer{display:none!important}.cart-received{animation:none!important}}

@media(min-width:901px){.appointments-desktop-table{display:block}}

/* Tên bệnh nhân trong danh sách Hồ sơ bệnh nhân: chạm/bấm trực tiếp vào tên
   để mở ngay thẻ Khám bệnh - Điều trị (không cần bấm đúp — bấm đúp không có
   cơ chế tương ứng đáng tin cậy trên màn hình cảm ứng). Gạch chân giống link
   để người dùng biết đây là chỗ bấm được. */
.customer-name-cell { color: var(--primary); text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 2px; cursor: pointer; }
.customer-name-cell:hover { color: var(--primary-2); }

/* Nút "Lấy phiếu khám" ở thanh trên cùng trang giới thiệu */
.v82-topbar-queue{background:#0d61b7;color:#fff}

/* V127: menu giới thiệu mobile, thẻ đăng nhập gọn và dashboard cuộn 5 dòng. */
.public-brand-home{appearance:none;border:0;background:transparent;padding:0;text-align:left;font:inherit;cursor:pointer}
.public-brand-home:focus-visible{outline:3px solid rgba(24,119,211,.28);outline-offset:5px;border-radius:12px}
.v127-mobile-public-menu{display:none}
.mobile-dashboard-counter{color:#a12c2c!important;font-weight:800!important}
.mobile-customer-link{color:#212531;text-decoration:underline dotted;text-underline-offset:3px}
.mobile-scroll-five{scrollbar-width:thin;overscroll-behavior:contain}
@media(max-width:760px){
  .v127-mobile-public-menu{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;z-index:5;border-bottom:1px solid #bfd0e4;background:#fff}
  .v127-mobile-public-menu button{min-width:0;min-height:38px;padding:5px 2px;border:0;border-right:1px solid #d7e1eb;background:#fff;color:#075ab2;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}
  .v127-mobile-public-menu button:last-child{border-right:0}.v127-mobile-public-menu button:active{background:#eaf4ff}
  .public-tab-stage .staff-login-panel:not([hidden]){display:grid!important;place-items:center!important;padding:18px 12px!important}
  .public-tab-stage .staff-login-panel .public-staff-card{width:min(310px,calc(100vw - 48px))!important;max-width:310px!important;border-radius:13px!important}
  .public-tab-stage .public-staff-card .login-titlebar{padding:9px 10px!important;font-size:14px!important}
  .public-tab-stage .public-staff-card .login-body{padding:12px!important}
  .public-tab-stage .public-staff-card .login-grid{gap:7px!important}
  .public-tab-stage .public-staff-card .login-grid .field{gap:3px!important}
  .public-tab-stage .public-staff-card input,.public-tab-stage .public-staff-card select,.public-tab-stage .public-staff-card button{min-height:38px!important;font-size:14px!important}
  .public-tab-stage .public-staff-card .login-actions{margin-top:9px!important;gap:6px!important}
  .public-tab-stage .public-staff-card .login-security-note{margin-top:9px!important;padding:7px 8px!important;font-size:9px!important;line-height:1.35!important}
  .public-portal-panel:not(.portal-authenticated):not([hidden]){display:grid!important;place-items:center!important;padding:18px 10px!important}
  .public-tab-stage .portal-login-card{width:min(326px,calc(100vw - 36px))!important;max-width:326px!important;margin:auto!important;border-radius:13px!important}
  .public-tab-stage .portal-card-head{min-height:48px!important;padding:7px 42px 7px 10px!important}.public-tab-stage .portal-card-head b{font-size:14px!important}.public-tab-stage .portal-card-head span:not(.portal-lock){font-size:9px!important}
  .public-tab-stage .portal-lock{width:29px!important;height:29px!important}.public-tab-stage .portal-dialog-close{right:7px!important;top:7px!important;width:29px!important;height:29px!important}
  .public-tab-stage .portal-card-body{padding:11px!important}.public-tab-stage .portal-method-switch{margin-bottom:8px!important}.public-tab-stage .portal-method{min-height:31px!important;font-size:11px!important}
  .public-tab-stage .portal-label{margin:6px 0 3px!important;font-size:10px!important}.public-tab-stage .portal-input{min-height:36px!important;padding:5px 7px!important;font-size:14px!important}.public-tab-stage .portal-primary-btn{min-height:36px!important;margin-top:7px!important}.public-tab-stage .portal-privacy-note{margin-top:7px!important;padding:6px 7px!important;font-size:9px!important}
  .login-appointment-popup{width:min(306px,calc(100vw - 52px))!important;border-radius:12px!important}
  #login-appointment-backdrop{display:grid!important;place-items:center!important;align-items:center!important;justify-items:center!important;padding:20px!important}
  #login-appointment-backdrop .login-appointment-popup{align-self:center!important;justify-self:center!important}
  .login-appointment-popup-head{padding:10px 13px!important;font-size:14px!important}.login-appointment-popup-body{padding:14px 13px 11px!important}.login-appointment-popup-icon{width:44px!important;height:44px!important;margin-bottom:8px!important;font-size:21px!important}.login-appointment-popup-body p{font-size:12px!important;line-height:1.4!important}.login-appointment-popup-actions{gap:7px!important;padding:0 13px 13px!important}.login-appointment-popup-actions .btn{min-width:0!important;min-height:34px!important;flex:1;padding:6px 8px!important;font-size:11px!important}
  .mobile-appointment-scroll{max-height:318px;overflow-y:auto;padding-right:3px}
  .mobile-operation-list.mobile-scroll-five{max-height:304px;overflow-y:auto;padding-right:3px}
}

/* V126: chỉ giữ nhận diện thương hiệu ở header trắng phía trên. Thanh điều
   hướng nội dung desktop không lặp logo; trên mobile thanh này được bỏ hẳn. */
.v126-nav-brandless{grid-template-columns:minmax(0,1fr) auto!important}
.v126-nav-brandless .v82-nav-links{justify-content:center;min-width:0}
.v126-video-play{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;min-height:44px;padding:0 18px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(4,19,38,.84);color:#fff;font:800 13px/1 system-ui,-apple-system,sans-serif;box-shadow:0 10px 28px rgba(0,0,0,.3);cursor:pointer;backdrop-filter:blur(6px)}
.v126-video-play[hidden]{display:none!important}
@media(max-width:760px){
  .v126-nav-brandless{display:none!important}
  .v82-hero{width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:3/4!important}
  .v82-hero-slide,.v82-hero-slide picture,.v82-hero-slide picture img,.v82-hero-slide>img{width:100%!important;height:100%!important}
  .v82-hero-slide picture img,.v82-hero-slide>img{object-fit:cover!important;object-position:center center!important}
  .v126-video-play{min-height:42px;padding:0 14px;font-size:12px}
}

/* Popup lấy số thứ tự công khai (4 cột: phân loại / dịch vụ / số hiện tại / lấy số) */
.queue-ticket-modal{width:min(880px,96vw);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.queue-ticket-body{padding:16px 18px 20px}
.queue-ticket-table-wrap{overflow-x:auto;border:1px solid #cfe0f2;border-radius:8px}
.queue-ticket-table{width:100%;border-collapse:collapse;min-width:560px}
.queue-ticket-table th{background:#0d4ea6;color:#fff;font-size:13.5px;text-transform:none;font-weight:800;padding:12px 14px;text-align:left;white-space:nowrap}

/* V128: thẻ đa nhiệm giữa các phân hệ. Mỗi thẻ giữ nguyên DOM và dữ liệu nhập. */
.workspace-session-tabs{flex:0 0 auto;display:flex;align-items:flex-end;gap:3px;min-height:33px;padding:4px 8px 0;border-bottom:1px solid #91a9c5;background:linear-gradient(#eef5fc,#dce9f6);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-inline:contain}
.workspace-session-tabs[hidden]{display:none!important}
.workspace-session-tab{flex:0 0 auto;display:flex;align-items:stretch;max-width:260px;height:29px;border:1px solid #9bb3ce;border-bottom:0;border-radius:6px 6px 0 0;background:#f7fbff;color:#284d75;overflow:hidden}
.workspace-session-tab.active{background:#fff;color:#075db9;border-color:#428fd5;box-shadow:inset 0 3px #1478d4}
.workspace-session-open{min-width:78px;max-width:220px;padding:3px 8px;border:0;background:transparent;color:inherit;font:800 11px/1.15 Arial,sans-serif;cursor:pointer}
.workspace-session-open span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-session-close{width:28px;border:0;border-left:1px solid rgba(104,134,167,.28);background:transparent;color:#6a7f94;font:700 17px/1 Arial,sans-serif;cursor:pointer}
.workspace-session-close:hover{background:#ffe5e7;color:#d4202d}

/* V128: bảng giá mobile vẫn giữ hình thức bảng desktop, tự co theo hướng máy. */
@media(max-width:900px){
  .v92-price-page[data-price-fit="auto"] .v92-price-table-wrap{overflow:hidden!important;border:1px solid #c1d2e6!important;background:#fff!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table{display:table!important;width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important;background:#fff!important;font-size:clamp(6.8px,1.95vw,9.5px)!important;line-height:1.2!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table thead{display:table-header-group!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table tbody{display:table-row-group!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table tr{display:table-row!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table th,
  .v92-price-page[data-price-fit="auto"] .v92-price-table td{display:table-cell!important;box-sizing:border-box!important;min-width:0!important;width:auto!important;height:auto!important;padding:5px 2px!important;border:1px solid #d1dce9!important;text-align:center!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:normal!important;vertical-align:middle!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table td::before{display:none!important;content:none!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table th:first-child,
  .v92-price-page[data-price-fit="auto"] .v92-price-table td:first-child{display:table-cell!important;width:27%!important;padding:5px 3px!important;background:inherit!important;color:inherit!important;text-align:left!important;font-size:inherit!important;font-weight:700!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table th:last-child,
  .v92-price-page[data-price-fit="auto"] .v92-price-table td:last-child{width:10%!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table a,
  .v92-price-page[data-price-fit="auto"] .v92-price-table button{max-width:100%;padding:2px 1px!important;font-size:inherit!important;white-space:normal!important;line-height:1.15!important}
}
@media(max-width:900px) and (orientation:landscape){
  .v92-price-page[data-price-fit="auto"] .v92-price-table{font-size:clamp(8px,1.25vw,10.5px)!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table th,.v92-price-page[data-price-fit="auto"] .v92-price-table td{padding:6px 4px!important}
  .v92-price-page[data-price-fit="auto"] .v92-price-table th:first-child,.v92-price-page[data-price-fit="auto"] .v92-price-table td:first-child{width:25%!important}
}

/* V128: ba hộp xác thực công khai đồng kích thước, cùng tâm và cùng tone coban. */
@media(max-width:760px){
  .public-tab-stage .staff-login-panel:not([hidden]),
  .public-tab-stage .public-portal-panel:not(.portal-authenticated):not([hidden]),
  .public-tab-stage .public-warranty-panel:not([hidden]){box-sizing:border-box!important;display:grid!important;place-items:center!important;align-content:center!important;min-height:calc(100dvh - 126px)!important;padding:16px!important;background-color:#e8f3ff!important}
  .public-tab-stage .staff-login-panel .public-staff-card,
  .public-tab-stage .portal-login-card,
  .public-tab-stage .warranty-lookup-card{box-sizing:border-box!important;width:min(296px,calc(100vw - 46px))!important;max-width:296px!important;margin:auto!important;border:1px solid rgba(21,101,201,.42)!important;border-radius:13px!important;background:rgba(248,252,255,.84)!important;box-shadow:0 18px 48px rgba(0,54,126,.25)!important;backdrop-filter:blur(10px) saturate(1.12)!important;-webkit-backdrop-filter:blur(10px) saturate(1.12)!important;overflow:hidden!important}
  .public-tab-stage .public-staff-card .login-titlebar,
  .public-tab-stage .portal-card-head{background:linear-gradient(135deg,#167ee8,#0758c5)!important;color:#fff!important}
  .public-tab-stage .public-staff-card .login-body,.public-tab-stage .portal-card-body{background:transparent!important}
  .public-tab-stage .warranty-lookup-shell{box-sizing:border-box!important;display:grid!important;place-items:center!important;width:100%!important;min-height:100%!important;padding:0!important;background:transparent!important}
  .public-tab-stage .warranty-lookup-card{padding:0 12px 13px!important}
  .public-tab-stage .warranty-lookup-head{margin:0 -12px 11px!important;padding:9px 11px!important;gap:8px!important;background:linear-gradient(135deg,#167ee8,#0758c5)!important;color:#fff!important}
  .public-tab-stage .warranty-lookup-icon{font-size:23px!important}.public-tab-stage .warranty-lookup-head b{font-size:12px!important;color:#fff!important}.public-tab-stage .warranty-lookup-head span{font-size:9px!important;color:#ddecff!important}
  .public-tab-stage .warranty-lookup-form{gap:6px!important}.public-tab-stage .warranty-lookup-input,.public-tab-stage .warranty-lookup-btn{height:36px!important;min-height:36px!important;font-size:11px!important}.public-tab-stage .warranty-lookup-input{padding:0 8px!important}.public-tab-stage .warranty-lookup-btn{padding:0 10px!important;background:#0965d1!important;border-color:#0756b8!important}
}

/* V128: Hình ảnh + phác đồ gọn theo màn hình dọc, không còn lưới rộng 650/980px. */
@media(max-width:760px){
  #v61-media-backdrop{padding:0!important;align-items:stretch!important}
  .v61-media-modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;grid-template-rows:auto minmax(0,1fr)!important;border:0!important}
  .v61-media-modal>.modal-head{min-height:54px!important;padding:7px 9px!important;gap:6px!important;align-items:center!important}
  .v61-media-modal>.modal-head>div:first-child{min-width:0}.v61-media-modal>.modal-head b{font-size:13px!important}.v61-media-modal>.modal-head .small{font-size:9px!important;line-height:1.2!important;white-space:normal!important}
  .v61-modal-head-actions{gap:5px!important}.v61-modal-head-actions .btn-danger{max-width:122px!important;padding:5px 6px!important;font-size:9px!important;white-space:normal!important;line-height:1.1!important}.v61-modal-head-actions .service-close-x{flex:0 0 34px!important;width:34px!important;height:34px!important}
  .v61-media-layout{grid-template-columns:1fr!important;grid-template-rows:150px minmax(0,1fr)!important;min-height:0!important}
  .v61-history{max-height:none!important;min-height:0!important;border-right:0!important;border-bottom:1px solid #aebfce!important}
  .v61-history-title{padding:6px 9px!important;font-size:11px!important}
  .v61-history-scroll{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important;padding:5px!important;overflow:auto!important}
  .v61-history-group{gap:3px!important;min-width:0!important}.v61-history-label{font-size:8px!important}.v61-history-entry{min-width:0!important}.v61-history-row{min-width:0!important;padding:5px!important;gap:1px!important}.v61-history-row b{font-size:9px!important;overflow-wrap:anywhere!important}.v61-history-row span{font-size:8px!important;line-height:1.15!important;overflow-wrap:anywhere!important}.v61-history-actions button{min-width:32px!important;padding:2px 3px!important;font-size:8px!important}
  .v61-work{min-height:0!important;grid-template-rows:auto minmax(0,1fr)!important;overflow:hidden!important}
  .v61-tabsbar{display:block!important;padding:5px!important}.v61-tabsbar>.small{display:none!important}.v61-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important}.v61-tab{min-width:0!important;padding:6px 2px!important;font-size:9px!important;line-height:1.15!important;white-space:normal!important}
  .v61-content{min-height:0!important;padding:5px!important;overflow:auto!important}
  .v61-edit-banner{display:grid!important;gap:2px!important;margin-bottom:5px!important;padding:5px 7px!important}.v61-edit-banner b{font-size:10px!important}.v61-edit-banner span{font-size:8px!important}
  .v61-upload-toolbar{grid-template-columns:110px minmax(0,1fr)!important;gap:5px!important;margin-bottom:5px!important}.v61-upload-toolbar label{font-size:8px!important}.v61-upload-toolbar input{height:30px!important;padding:3px 5px!important;font-size:11px!important}.v61-upload-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important}.v61-upload-actions .btn{min-width:0!important;padding:5px 3px!important;font-size:9px!important;white-space:normal!important}
  .media53-grid-scroll{padding:0!important;overflow:visible!important}.media53-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;width:100%!important;min-width:0!important}.media53-section-title{padding:5px 6px!important;font-size:9px!important}.media53-slot{min-width:0!important;aspect-ratio:1/1!important}.media53-slot-empty{gap:3px!important;padding:4px!important;font-size:9px!important}.media53-slot-empty .glyph{font-size:25px!important}.media53-slot-label{left:3px!important;right:3px!important;bottom:3px!important;padding:3px!important;font-size:8px!important}
  .v61-patient{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;padding:5px!important;margin-bottom:5px!important}.v61-patient b{font-size:8px!important}.v61-patient strong{font-size:10px!important;overflow-wrap:anywhere!important}
  .v61-chart-row{grid-template-columns:1fr!important;gap:5px!important}.v61-box{padding:5px!important}.v61-box-title{margin-bottom:4px!important;font-size:11px!important}.v61-chart-options{gap:8px!important;margin-bottom:4px!important;font-size:9px!important}.v61-chart-scroll{max-width:100%!important;overflow:hidden!important}.v61-chart-scroll .tooth-tile{height:48px!important;padding-bottom:13px!important}.v61-chart-scroll .tooth-glyph{height:32px!important}.v61-chart-scroll .tooth-glyph svg{width:20px!important;height:31px!important}.v61-selected-teeth{margin-top:4px!important;padding:4px!important;font-size:9px!important}
  .v61-issues{max-height:220px!important}.v61-issue-buttons{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important}.v61-issue-btn{padding:5px 3px!important;font-size:9px!important}.v61-add-issue{grid-template-columns:minmax(0,1fr) 58px!important;gap:4px!important;margin-top:5px!important}.v61-add-issue input{height:30px!important;font-size:10px!important}.v61-add-issue .btn{padding:4px!important;font-size:9px!important}
  .v61-meta{grid-template-columns:105px minmax(0,1fr)!important;gap:4px!important}.v61-meta input{height:30px!important;padding:3px 5px!important;font-size:10px!important}.v61-protocol-form{gap:5px!important;margin-top:5px!important}.v61-protocol-head{padding:5px 6px!important;font-size:11px!important}.v61-protocol-body{padding:5px!important}.v61-protocol-body textarea{min-height:72px!important;font-size:10px!important}.v61-auto-diagnosis{min-height:46px!important;padding:5px!important;font-size:9px!important}
  .v61-stage-list{width:100%!important;overflow-x:hidden!important}.v61-stage-table{width:100%!important;min-width:0!important;table-layout:fixed!important;font-size:8px!important}.v61-stage-table th{height:auto!important;padding:4px 2px!important;font-size:8px!important;overflow-wrap:anywhere!important}.v61-stage-table .stage-col{width:15%!important}.v61-stage-table .wire{width:24%!important}.v61-stage-table .size{width:20%!important}.v61-stage-table .duration{width:20%!important}.v61-stage-table .note{width:21%!important}.v61-stage-table .v61-stage-label{padding:3px 2px!important;font-size:8px!important}.v61-stage-table input{height:31px!important;min-height:31px!important;padding:3px!important;font-size:9px!important}.v61-stage-remove{margin:2px!important;padding:1px 3px!important;font-size:8px!important}.v61-stage-row-actions{padding:4px 0 0!important}.v61-protocol-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;margin-bottom:5px!important}.v61-protocol-actions .btn{min-width:0!important;padding:5px 3px!important;font-size:9px!important;white-space:normal!important}
}

@media(max-width:760px){
  .workspace-session-tabs{min-height:31px;padding:3px 5px 0;gap:2px;scroll-snap-type:x proximity}
  .workspace-session-tab{height:27px;max-width:190px;scroll-snap-align:start}
  .workspace-session-open{max-width:155px;padding:3px 6px;font-size:9px}.workspace-session-close{width:25px;font-size:15px}
}
.queue-ticket-table td{border-bottom:1px solid #e2e8f0;padding:14px;text-align:left;vertical-align:middle;font-size:15px}
.queue-ticket-table tbody tr:last-child td{border-bottom:0}
.queue-type-cell{width:150px;text-align:center;background:#f4f8fd;border-right:1px solid #cfe0f2}
.queue-type-option{display:block;width:100%;margin:6px 0;padding:10px 8px;border:1px solid #b9cfe8;border-radius:8px;background:#fff;color:#1a3a63;font-weight:800;font-size:14px;cursor:pointer}
.queue-type-option.selected{background:#0d61b7;border-color:#0d61b7;color:#fff}
.queue-service-cell{cursor:pointer;font-size:16px}
.queue-service-cell.selected{background:#0d61b7;color:#fff}
.queue-service-cell.selected b{color:#fff}
.queue-current-number{font-size:24px;font-weight:900;color:#0d61b7;text-align:center;width:110px}
.queue-current-number.selected{background:#0d61b7;color:#fff}
.queue-action-cell{width:150px;text-align:center;background:#f4f8fd;border-left:1px solid #cfe0f2}
.queue-draw-btn{width:100%;padding:18px 10px;font-size:17px;font-weight:900;border-radius:8px;letter-spacing:.5px}
.queue-autoprint-toggle{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 12px;background:#eef6ff;border:1px solid #bfe2fb;border-radius:8px;font-size:13px;color:#274873;cursor:pointer}
@media (max-width:600px){
  .queue-ticket-table th,.queue-ticket-table td{padding:10px 8px;font-size:13.5px}
  .queue-type-cell,.queue-action-cell{width:100px}
  .queue-type-option{font-size:12.5px;padding:8px 4px}
  .queue-current-number{font-size:19px;width:70px}
  .queue-draw-btn{padding:14px 6px;font-size:14px}
}

/* Ô menu ribbon: cố định chiều cao ~85px, chữ dài thì tự giãn RỘNG sang hai
   bên thay vì đẩy cao xuống dưới (trước đây ngược lại: rộng cố định, cao thì
   không giới hạn trên nên chữ dài làm ô bị kéo dài xuống, lệch cả hàng ribbon).
   Đặt cuối file để thắng các quy tắc rộng/cao cũ ở phía trên. */
.traditional-ribbon-header .ribbon-action {
  flex: 0 0 auto;
  width: auto;
  min-width: 86px;
  max-width: 125px;
  height: 85px;
  min-height: 0;
  max-height: 85px;
  padding: 6px 10px 4px;
  overflow: hidden;
}
.traditional-ribbon-header .ribbon-action .ribbon-action-label {
  max-width: none;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.traditional-ribbon-header .ribbon-group { min-height: 106px; }
.traditional-ribbon-header .ribbon-group-body { min-height: 85px; align-items: stretch; }
@media (max-width: 900px) {
  .traditional-ribbon-header .ribbon-action { height: 74px; max-height: 74px; min-width: 76px; max-width: 125px; }
  .traditional-ribbon-header .ribbon-group { min-height: 95px; }
  .traditional-ribbon-header .ribbon-group-body { min-height: 74px; }
}

/* V119 - khung làm việc cố định: caption + hai tầng ribbon ở đầu trang,
   thanh trạng thái ở chân trang và chỉ cuộn phần nội dung ở giữa. */
#app-screen {
  height: 100vh;
  height: 100dvh;
  min-height: 0 !important;
  overflow: hidden !important;
}
#app-screen .legacy-app-window {
  height: 100vh;
  height: 100dvh;
  min-height: 0 !important;
  overflow: hidden !important;
}
#app-screen .legacy-caption,
#app-screen .traditional-ribbon-header,
#app-screen .statusbar {
  flex: 0 0 auto;
}
.traditional-ribbon-header {
  position: relative;
  z-index: 120;
}
.ribbon-command-row {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  background: linear-gradient(180deg,#fff 0%,#f5f9ff 70%,#e5f0ff 100%);
  border-bottom: 2px solid #1877f2;
}
.traditional-ribbon-header .ribbon-command-row > .ribbon-actions {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  border-bottom: 0 !important;
}
.ribbon-context-panel {
  flex: 0 0 142px;
  width: 142px;
  min-width: 142px;
  height: 78px;
  max-height: 78px;
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 3px;
  padding: 4px 5px;
  border-left: 2px solid #1877f2;
  background: linear-gradient(180deg,#fff 0%,#f3f8ff 100%);
  box-sizing: border-box;
}
.ribbon-context-panel .clinic-home {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 2px 3px;
  border: 0;
  border-bottom: 1px solid #dbe8f7;
  background: transparent;
  color: #0b3f84;
  font-size: 10.5px;
  font-weight: 800;
  line-height: 1.25;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}
.ribbon-context-panel .clinic-home:hover {
  background: #eaf3ff;
}
.ribbon-context-panel .clinic-home span {
  display: block;
  margin-top: 2px;
  color: #62758e;
  font-size: 9.5px;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ribbon-context-panel .user-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  padding: 2px 3px;
  border: 1px solid #b9d8f7;
  border-radius: 18px;
  background: #edf7ff;
  color: #075aa8;
  font-size: 8px;
  font-weight: 800;
  line-height: 1.08;
  text-align: center;
  overflow: hidden;
  overflow-wrap: anywhere;
  white-space: normal;
  box-sizing: border-box;
}
#app-screen #page-root {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}
#app-screen #page-root > .page {
  min-height: max-content;
  max-width: 100%;
  overflow: visible;
}
#app-screen .statusbar {
  min-height: 26px;
  margin-top: 0;
  padding: 3px 8px 4px !important;
  padding-bottom: max(4px,env(safe-area-inset-bottom)) !important;
  overflow-x: auto;
  white-space: nowrap;
  box-sizing: border-box;
  position: relative;
  z-index: 120;
}
#app-screen .statusbar .left,
#app-screen .statusbar .right {
  flex-wrap: nowrap;
}
@media (max-width: 900px) {
  .ribbon-context-panel {
    flex-basis: 142px;
    width: 142px;
    min-width: 142px;
    gap: 3px;
    padding: 4px 5px;
  }
  .ribbon-context-panel .clinic-home { font-size: 11px; padding: 3px 5px; }
  .ribbon-context-panel .clinic-home span { font-size: 10px; }
  .ribbon-context-panel .user-chip { font-size: 8px; padding: 2px 3px; }
}
@media (max-width: 620px) {
  .ribbon-context-panel {
    flex-basis: 118px;
    width: 118px;
    min-width: 118px;
  }
  .ribbon-context-panel .clinic-home { font-size: 10px; }
  .ribbon-context-panel .clinic-home span { font-size: 9px; }
  .ribbon-context-panel .user-chip { font-size: 8px; }
}

/* V120 - popup luôn nằm trên ribbon và ribbon desktop chỉ cao 100px. */
#modal-root > .modal-backdrop {
  z-index: 10000 !important;
}
#modal-root > .modal-backdrop .modal-head {
  z-index: 6;
}

@media (min-width: 901px) {
  #app-screen .traditional-ribbon-header {
    height: 100px;
    min-height: 100px;
    max-height: 100px;
    overflow: hidden;
    box-sizing: border-box;
  }
  #app-screen .ribbon-tab-row {
    height: 22px;
    min-height: 22px;
    max-height: 22px;
    align-items: stretch;
    box-sizing: border-box;
  }
  #app-screen .ribbon-app-button {
    flex-basis: 31px;
    width: 31px;
    height: 21px;
    min-height: 21px;
  }
  #app-screen .ribbon-app-button span,
  #app-screen .ribbon-app-button svg {
    width: 19px;
    height: 19px;
  }
  #app-screen .traditional-ribbon-header .nav {
    height: 22px;
  }
  #app-screen .traditional-ribbon-header .nav button,
  #app-screen .traditional-ribbon-header .nav button.active {
    height: 21px !important;
    min-height: 21px !important;
    padding: 2px 10px 1px !important;
    border-top-width: 1px !important;
    font-size: 10.5px !important;
    line-height: 16px;
  }
  #app-screen .ribbon-language-switcher {
    flex: 0 0 160px;
    min-width: 160px;
    max-width: 160px;
    height: 19px;
    min-height: 19px;
    margin: 1px 4px !important;
    padding: 0 4px;
    gap: 3px;
  }
  #app-screen .ribbon-language-switcher .language-icon { font-size: 11px; }
  #app-screen .ribbon-language-switcher label { font-size: 8px; }
  #app-screen .ribbon-language-switcher select {
    height: 17px;
    font-size: 9px;
  }
  #app-screen .ribbon-command-row {
    height: 78px;
    min-height: 78px;
    max-height: 78px;
    box-sizing: border-box;
  }
  #app-screen .traditional-ribbon-header .ribbon-command-row > .ribbon-actions {
    height: 78px;
    min-height: 78px;
    max-height: 78px;
  }
  #app-screen .traditional-ribbon-header .ribbon-group {
    height: 76px;
    min-height: 76px;
    max-height: 76px;
    padding: 1px 3px 11px;
    box-sizing: border-box;
  }
  #app-screen .traditional-ribbon-header .ribbon-group-body {
    height: 63px;
    min-height: 63px;
    max-height: 63px;
  }
  #app-screen .traditional-ribbon-header .ribbon-action {
    min-width: 68px;
    max-width: 108px;
    height: 61px;
    min-height: 61px;
    max-height: 61px;
    padding: 2px 5px;
    gap: 1px;
    font-size: 10.5px !important;
    line-height: 1.08 !important;
  }
  #app-screen .traditional-ribbon-header .ribbon-action .ico {
    width: 27px;
    height: 27px;
    padding: 1px;
  }
  #app-screen .traditional-ribbon-header .ribbon-action .ico svg {
    width: 23px;
    height: 23px;
  }
  #app-screen .traditional-ribbon-header .ribbon-action .ribbon-action-label {
    -webkit-line-clamp: 2;
  }
  #app-screen .traditional-ribbon-header .ribbon-group-label {
    bottom: 0;
    height: 10px;
    font-size: 7.5px;
  }
  #app-screen .ribbon-context-panel {
    flex-basis: 142px;
    width: 142px;
    min-width: 142px;
    height: 78px;
    max-height: 78px;
  }
}

/* Hình nền riêng cho Đăng nhập quản lý, Portal khách hàng và Tra cứu bảo hành. */
.public-tab-stage .staff-login-panel{background-image:linear-gradient(rgba(238,247,253,.34),rgba(226,240,249,.42)),var(--staff-bg-desktop)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.public-portal-panel{background-image:linear-gradient(rgba(238,247,253,.32),rgba(232,243,250,.40)),var(--portal-bg-desktop)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.warranty-lookup-shell{background-image:linear-gradient(rgba(245,250,248,.30),rgba(237,247,243,.40)),var(--warranty-bg-desktop)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.public-tab-stage .public-staff-card,.public-tab-stage .portal-login-card,.warranty-lookup-card{backdrop-filter:blur(7px);background:rgba(255,255,255,.94)!important;box-shadow:0 24px 68px rgba(7,45,82,.25)!important}

.public-background-modal{width:min(1180px,97vw);max-height:95dvh;overflow:auto;border-radius:16px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.3)}
.public-background-guide{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin:14px;padding:12px 14px;border:1px solid #b9d8ee;border-radius:10px;background:#edf8ff;color:#315d7c;font-size:12px}
.public-background-guide b{color:#0d61b7;font-size:14px}.public-background-guide span:last-child{flex:1 1 320px}
.public-background-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 14px 14px}
.public-background-card{min-width:0;padding:12px;border:1px solid #bdcada;border-radius:12px;background:#f8fbfe}
.public-background-card h3{margin:0 0 10px;color:#0b4f8a;text-align:center;font-size:15px}
.public-background-pair{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:10px;margin-bottom:10px}
.public-background-pair article{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:7px}
.public-background-pair article>b{font-size:10px;color:#526b80;text-align:center}.public-background-pair .btn{text-align:center;padding:7px 5px;font-size:10px}
.public-background-preview{overflow:hidden;border:2px solid #fff;border-radius:9px;background:#dce9f3;box-shadow:0 0 0 1px #aebfce}
.public-background-preview.desktop{aspect-ratio:16/9}.public-background-preview.mobile{width:100%;aspect-ratio:9/16}
.public-background-preview img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
@media(max-width:900px){.public-background-grid{grid-template-columns:1fr}.public-background-pair{grid-template-columns:minmax(0,1fr) 126px}}
@media(max-width:620px){.public-tab-stage .staff-login-panel{background-image:linear-gradient(rgba(238,247,253,.30),rgba(226,240,249,.40)),var(--staff-bg-mobile)!important}.public-portal-panel{background-image:linear-gradient(rgba(238,247,253,.28),rgba(232,243,250,.38)),var(--portal-bg-mobile)!important}.warranty-lookup-shell{background-image:linear-gradient(rgba(245,250,248,.26),rgba(237,247,243,.38)),var(--warranty-bg-mobile)!important}.public-background-guide{display:grid}.public-background-pair{grid-template-columns:minmax(0,1fr) 110px}}
.portal-visibility-settings{margin:12px 14px;padding:14px;border:1px solid #b8d3e8;border-radius:8px;background:#f4f9fe}
.portal-visibility-settings h3{margin:0 0 5px;color:#0b4c8f;font-size:16px}
.portal-visibility-settings p{margin:0 0 12px;color:#4c657e;font-size:12px}
.portal-visibility-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.portal-visibility-grid label{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 10px;border:1px solid #cbddec;border-radius:5px;background:#fff;color:#173c5f;font-weight:700;cursor:pointer}
.portal-visibility-grid input{width:17px;height:17px;flex:none;accent-color:#0e67c1}
@media(max-width:650px){.portal-visibility-grid{grid-template-columns:1fr}}
.public-portal-panel .portal-appointments-five .portal-table.personnel-hidden{min-width:650px}
.public-portal-panel .portal-treatment-card.no-personnel{min-width:600px}
.portal-service-progress.no-performer table{min-width:650px}
.v112-report-ledger.no-performer th:nth-child(4){width:80mm}
.v112-report-ledger.no-performer th:nth-child(5){width:52mm}
.payment-edit-modal{width:min(620px,94vw);max-height:92vh;overflow:auto;border-radius:10px;background:#fff}
.payment-edit-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}
.payment-edit-summary>div{padding:10px;border:1px solid #c9daeb;border-radius:6px;background:#f5faff}
.payment-edit-summary span{display:block;color:#526a7e;font-size:11px;font-weight:700}
.payment-edit-summary b{display:block;margin-top:5px;color:#0d4ea6;font-size:17px}
.payment-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.payment-edit-wide{grid-column:1/-1}
.payment-edit-warning{margin:12px 0;padding:9px 11px;border:1px solid #e7cb77;border-radius:6px;background:#fff9e7;color:#735319;font-size:12px}
.payment-time-cell [data-history-edit-payment]{display:block;margin-top:6px}
.payment-log-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px}.payment-log-actions .btn{white-space:nowrap}.payment-time-cell .payment-log-actions{display:flex}
.payment-delete-modal{width:min(680px,100%)}.payment-delete-warning{display:grid;gap:6px;padding:12px 14px;margin-bottom:12px;border:1px solid #f2a0a0;border-radius:8px;background:#fff3f3;color:#9f1d1d}.payment-delete-warning b{font-size:15px}.payment-delete-warning span{color:#6e2525}
.plan-payment-confirm{width:min(440px,92vw);border-radius:12px;background:#fff;box-shadow:0 25px 70px #0005}
.plan-payment-confirm .modal-body{padding:20px}
.plan-payment-confirm-amount,.plan-payment-confirm-debt{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 14px;border:1px solid #bad5ed;border-radius:7px;background:#eff7ff}
.plan-payment-confirm-amount strong{font-size:25px;color:#0963b5}
.plan-payment-confirm-debt{margin-top:10px;background:#fff8ec;border-color:#ead5a8}
.plan-payment-confirm-debt b{font-size:20px;color:#b63820}
.vietqr-confirm-note{margin:12px 0;padding:12px 14px;border:1px solid #9fd4c5;border-radius:8px;background:#effbf7;color:#185c4b;display:grid;gap:4px}
.vietqr-confirm-note span{font-size:12px;line-height:1.45}
.vietqr-payment-modal{width:min(760px,96vw);border-radius:14px;background:#fff;box-shadow:0 25px 70px #0006;overflow:hidden}
.vietqr-payment-modal .modal-body{padding:18px}
.vietqr-layout{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:20px;align-items:center}
.vietqr-image-wrap{padding:10px;border:1px solid #c8d9ea;border-radius:12px;background:#fff;box-shadow:0 8px 24px #0a3b6720}
.vietqr-image-wrap img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain}
.vietqr-payment-info{display:grid;gap:9px}
.vietqr-payment-info>div:not(.vietqr-status){display:grid;gap:4px;padding:10px 12px;border:1px solid #d5e1ed;border-radius:8px;background:#f8fbfe}
.vietqr-payment-info span{font-size:12px;color:#53687d}
.vietqr-payment-info strong{font-size:28px;color:#08754d;letter-spacing:.2px}
.vietqr-payment-info b{overflow-wrap:anywhere;color:#123f68}
.vietqr-status{display:flex;align-items:center;gap:9px;padding:12px;border-radius:8px;font-weight:700}
.vietqr-status i{width:11px;height:11px;border-radius:50%;flex:0 0 11px;background:currentColor;box-shadow:0 0 0 4px currentColor inset,0 0 0 4px #fff8}
.vietqr-status.pending{background:#fff7da;color:#946200}
.vietqr-status.paid{background:#dff7e8;color:#08754d}
.vietqr-status.review{background:#fff0de;color:#a54b00}
.vietqr-status.cancelled{background:#f0f2f5;color:#5f6872}
.vietqr-status.pending i{animation:vietqr-pulse 1.2s ease-in-out infinite}
.vietqr-security-note{margin-top:14px;padding:10px 12px;border-left:4px solid #1a73bf;background:#edf6ff;color:#34546f;font-size:12px;line-height:1.5}
.vietqr-checkout-link{text-decoration:none}
@keyframes vietqr-pulse{50%{opacity:.35;transform:scale(.8)}}
@media(max-width:550px){.payment-edit-summary{grid-template-columns:1fr}.payment-edit-grid{grid-template-columns:1fr}.plan-payment-confirm-amount,.plan-payment-confirm-debt{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.vietqr-backdrop{padding:8px}.vietqr-payment-modal{width:100%;max-height:calc(100dvh - 16px);overflow:auto}.vietqr-payment-modal .modal-body{padding:12px}.vietqr-layout{grid-template-columns:1fr;gap:10px}.vietqr-image-wrap{width:min(72vw,280px);margin:auto}.vietqr-payment-info{gap:6px}.vietqr-payment-info>div:not(.vietqr-status){padding:8px 10px}.vietqr-payment-info strong{font-size:24px}.vietqr-payment-modal .modal-actions{display:grid;grid-template-columns:1fr}.vietqr-payment-modal .modal-actions>*{width:100%;justify-content:center}}
@media print{
  .v112-treatment-report-page{
    box-sizing:border-box!important;
    width:210mm!important;
    height:297mm!important;
    min-height:0!important;
    margin:0!important;
    padding:11mm 9mm!important;
    page-break-before:auto!important;
    page-break-after:auto!important;
    overflow:hidden!important;
  }
}

/* Báo cáo điều hành v2: bộ chọn kỳ, biểu đồ tròn và khuyến nghị mở rộng */
.executive-filter{grid-template-columns:145px 110px minmax(150px,210px) minmax(210px,1fr) auto minmax(235px,auto)}
.executive-filter select{width:100%}
.executive-year-note>div{height:34px;display:flex;align-items:center;padding:0 9px;border:1px solid #b7c9dc;background:#f7fbff;color:#4d647b}
.executive-donut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.executive-donut-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:center;min-height:205px}
.executive-donut{width:178px;height:178px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(15,67,125,.08)}
.executive-donut>div{width:102px;height:102px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;box-shadow:0 2px 8px rgba(16,62,115,.12)}
.executive-donut b{font-size:20px;color:#0a4ea3}.executive-donut span{font-size:10px;color:#657a90;margin-top:3px}
.executive-donut-legend{display:grid;gap:8px}.executive-donut-legend>span{display:grid;grid-template-columns:11px minmax(0,1fr) auto;gap:7px;align-items:center;padding-bottom:6px;border-bottom:1px dashed #dce5ee}
.executive-donut-legend i{width:10px;height:10px;border-radius:3px}.executive-donut-legend b{font-size:11px;color:#304d69;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.executive-donut-legend em{font-style:normal;font-size:10px;color:#718499;white-space:nowrap}
.executive-advice-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.executive-advice-heading em{font-style:normal;font-size:9px;font-weight:900;color:#fff;background:#4178b7;border-radius:10px;padding:3px 7px;white-space:nowrap}
.executive-advice-list article strong{display:block;margin-top:6px;padding:6px 8px;border-radius:5px;background:rgba(255,255,255,.72);color:#214e78;font-size:10px;line-height:1.45}
@media(max-width:1200px){.executive-filter{grid-template-columns:repeat(4,minmax(140px,1fr))}}
@media(max-width:760px){.executive-filter{grid-template-columns:1fr 1fr}.executive-donut-grid{grid-template-columns:1fr}.executive-donut-layout{grid-template-columns:145px minmax(0,1fr)}.executive-donut{width:138px;height:138px}.executive-donut>div{width:78px;height:78px}.executive-donut b{font-size:16px}}
@media print{.executive-donut-grid{grid-template-columns:1fr 1fr!important}.executive-donut{print-color-adjust:exact;-webkit-print-color-adjust:exact}.executive-advice-list{grid-template-columns:1fr 1fr!important}}

/* Xem trước báo cáo điều hành ngay trong ứng dụng, không mở tab mới. */
.executive-print-backdrop{
  z-index:10060!important;
  padding:12px;
  background:rgba(9,29,49,.72);
}
.executive-print-modal{
  width:min(1600px,98vw);
  height:min(95vh,1040px);
  max-height:calc(100dvh - 24px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #b8c9d9;
  border-radius:12px;
  background:#fff;
  box-shadow:0 30px 90px rgba(0,0,0,.38);
}
.executive-print-head{
  position:relative;
  top:auto;
  flex:0 0 auto;
  gap:14px;
  padding:10px 14px;
}
.executive-print-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.executive-print-actions .btn{min-height:34px}
.executive-print-frame-wrap{
  flex:1 1 auto;
  min-height:0;
  padding:8px;
  background:#dce5ee;
}
.executive-print-frame-wrap iframe{
  display:block;
  width:100%;
  height:100%;
  border:1px solid #aebdcb;
  border-radius:5px;
  background:#fff;
}
@media(max-width:700px){
  .executive-print-backdrop{padding:0}
  .executive-print-modal{width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0}
  .executive-print-head{align-items:flex-start;padding:8px 10px}
  .executive-print-head .small{display:none}
  .executive-print-actions{gap:5px}
  .executive-print-actions .btn{padding:7px 9px;font-size:11px}
  .executive-print-frame-wrap{padding:4px}
}

/* Phân tích danh mục dịch vụ theo doanh thu và vai trò trong phễu */
.executive-revenue-bars{display:grid;gap:10px}.executive-revenue-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-items:start}.executive-revenue-head{display:flex;justify-content:space-between;gap:12px}.executive-revenue-head b{color:#244564;font-size:11px}.executive-revenue-head strong{color:#087443;white-space:nowrap}.executive-revenue-row .executive-service-track i{background:linear-gradient(90deg,#0f72dd,#19aa75)}.executive-revenue-row.low .executive-service-track i{background:linear-gradient(90deg,#f4b45d,#e47a22)}.executive-revenue-row p{margin:4px 0 0;color:#6a7d90;font-size:10px;line-height:1.45}
.executive-portfolio-grid{grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr)}.executive-core-services{display:grid;gap:8px}.executive-core-services article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px;border:1px solid #c8ddec;border-radius:7px;background:#f6fbff}.executive-core-services article>span{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#0c67c8;color:#fff;font-weight:900}.executive-core-services b{color:#17466f}.executive-core-services p{margin:3px 0 0;color:#6b7e90;font-size:10px}.executive-core-services strong{padding:4px 8px;border-radius:11px;background:#dff7ea;color:#087443;font-size:9px;text-transform:uppercase}
.executive-portfolio-cards{display:grid;gap:8px}.executive-portfolio-cards article{padding:10px;border:1px solid #d2ddea;border-radius:7px;background:#fbfdff}.executive-portfolio-cards article>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.executive-portfolio-cards article>div>b{color:#173f68}.executive-segment{padding:4px 8px;border-radius:11px;font-size:9px;font-weight:900;color:#fff;background:#805ad5}.executive-segment.closing{background:#d97706}.executive-segment.support{background:#718096}.executive-portfolio-cards p{margin:6px 0;color:#536b82;font-size:11px;line-height:1.45}.executive-portfolio-cards footer{display:flex;gap:6px;flex-wrap:wrap}.executive-portfolio-cards footer span{padding:4px 7px;border-radius:10px;background:#edf4fb;color:#42627e;font-size:9px;font-weight:700}
.executive-segment.business{background:#087443}
.executive-segmentation-note{margin-top:10px;border-left:4px solid #6d55bd;background:#faf9ff}.executive-segmentation-note>b{color:#4f369e}.executive-segmentation-note>p{margin:6px 0 0;color:#566b81;font-size:11px;line-height:1.6}.executive-reconciliation{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.executive-reconciliation span{padding:6px 9px;border:1px solid #d9d2f2;border-radius:5px;background:#fff;color:#596f85;font-size:10px}.executive-reconciliation b{color:#0a4ea3}
@media(max-width:900px){.executive-portfolio-grid{grid-template-columns:1fr}}
@media print{.executive-revenue-grid,.executive-portfolio-grid{grid-template-columns:1fr 1fr!important}.executive-segmentation-note{break-inside:avoid-page}}

/* Phân tích khách hàng theo độ tuổi và thời điểm phát sinh phục vụ */
.executive-age-grid,.executive-traffic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.executive-age-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.executive-age-services article{min-width:0;padding:9px;border:1px solid #c8d9ea;border-radius:7px;background:#f9fcff}
.executive-age-services article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-bottom:7px;border-bottom:1px dashed #cfdeeb}
.executive-age-services header div{min-width:0}.executive-age-services header b{display:block;color:#124b86;font-size:12px}.executive-age-services header span{display:block;margin-top:2px;color:#708398;font-size:9px}.executive-age-services header>strong{color:#087443;font-size:10px;white-space:nowrap}
.executive-age-services article>div{display:grid;gap:5px;padding-top:6px}.executive-age-services p{display:grid;grid-template-columns:19px minmax(0,1fr);gap:0 6px;margin:0;align-items:center}.executive-age-services p>i{grid-row:1/3;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#e2effe;color:#0b5bb0;font-size:9px;font-style:normal;font-weight:900}.executive-age-services p>b{overflow:hidden;color:#274964;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.executive-age-services p>span{grid-column:2;color:#74869a;font-size:8.5px}.executive-age-services p.empty{display:block;padding:5px 0;text-align:left}
.executive-behavior-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:6px;align-items:end;min-height:170px;padding:14px 7px 7px;border-left:1px solid #d5e0eb;border-bottom:1px solid #aebfd0;background:repeating-linear-gradient(to top,#fff 0,#fff 39px,#e7eef5 40px,#fff 41px)}
.executive-behavior-columns.compact{grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:3px}
.executive-behavior-column{min-width:0;display:grid;grid-template-rows:105px 18px 18px;align-items:end;text-align:center}.executive-behavior-pair{height:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.executive-behavior-pair span,.executive-behavior-pair b{display:block;width:min(16px,40%);border-radius:3px 3px 0 0;background:#aebdcd}.executive-behavior-pair b{background:linear-gradient(#4eb7f1,#1673d9)}.executive-traffic-grid article:first-child .executive-behavior-pair b{background:linear-gradient(#55c99a,#159163)}
.executive-behavior-column>strong{overflow:hidden;padding-top:4px;color:#405b74;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.executive-behavior-column>small{color:#0a4ea3;font-size:9px;font-weight:900}.executive-behavior-column>small em{color:#7a8b9c;font-style:normal;font-weight:500}
.executive-traffic-summary{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:10px;margin-top:10px}
.executive-traffic-highlights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.executive-traffic-highlights article{min-width:0;padding:11px 12px;border:1px solid #bad3e8;border-left:4px solid #1774df;border-radius:7px;background:#f6fbff}.executive-traffic-highlights article.quiet{border-left-color:#805ad5;background:#fbf9ff}.executive-traffic-highlights span{display:block;color:#667b90;font-size:9px;font-weight:900;text-transform:uppercase}.executive-traffic-highlights b{display:block;overflow:hidden;margin:6px 0 3px;color:#104d8b;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.executive-traffic-highlights article.quiet b{color:#6241a2}.executive-traffic-highlights small{color:#718397;font-size:9px}
.executive-traffic-evidence{padding:10px 12px;border:1px solid #c9d8e6;border-radius:7px;background:#fff}.executive-traffic-evidence>b{color:#174a79}.executive-traffic-evidence>p{margin:5px 0 8px;color:#62768a;font-size:10px;line-height:1.45}.executive-traffic-evidence>div{display:flex;gap:5px;flex-wrap:wrap}.executive-traffic-evidence span{padding:4px 6px;border-radius:10px;background:#edf4fb;color:#4e6680;font-size:8.5px}.executive-traffic-evidence span b{color:#0a4ea3}
@media(max-width:1100px){.executive-traffic-summary{grid-template-columns:1fr}.executive-traffic-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.executive-age-grid,.executive-traffic-grid{grid-template-columns:1fr}.executive-age-services{grid-template-columns:1fr}.executive-traffic-highlights{grid-template-columns:1fr 1fr}.executive-behavior-columns{grid-template-columns:repeat(auto-fit,minmax(46px,1fr));min-height:155px}.executive-behavior-column{grid-template-rows:90px 18px 18px}}
@media(max-width:480px){.executive-traffic-highlights{grid-template-columns:1fr}.executive-age-services{grid-template-columns:1fr}}
@media print{.executive-age-grid,.executive-traffic-grid{grid-template-columns:1fr 1fr!important}.executive-audience-start,.executive-traffic-grid{break-before:page}.executive-age-services{grid-template-columns:1fr 1fr!important}.executive-traffic-summary{grid-template-columns:1.35fr .65fr!important;break-inside:avoid-page}.executive-traffic-highlights{grid-template-columns:1fr 1fr!important}.executive-behavior-columns{overflow:visible!important}.executive-age-services article,.executive-traffic-highlights article{break-inside:avoid-page}}


/* ===== Ô tìm kiếm hồ sơ bệnh nhân có nút × ===== */
.customer-search-wrap{position:relative;display:flex;align-items:center}
.customer-search-wrap input{width:100%;padding-right:24px!important;box-sizing:border-box}
.customer-search-clear{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:20px;height:20px;padding:0;border:0;border-radius:50%;background:#e3ebf3;color:#35506b;font-size:15px;line-height:18px;text-align:center;cursor:pointer}
.customer-search-clear:hover{background:#cfdceb;color:#b42318}
.customer-search-clear[hidden]{display:none}
@media(max-width:900px){.customer-search-clear{width:26px;height:26px;font-size:18px;line-height:24px;right:3px}.customer-search-wrap input{padding-right:32px!important}}

/* ===== Báo cáo họp điều hành: tối ưu điện thoại ===== */
@media(max-width:760px){
  .executive-report-page{max-width:100%;overflow-x:hidden;box-sizing:border-box;padding-left:8px!important;padding-right:8px!important}
  .executive-report-page .page-head{gap:8px;margin-bottom:8px}
  .executive-report-page .page-head h2{font-size:17px;line-height:1.25;text-align:left}
  .executive-report-page .page-head p{font-size:11px}
  .executive-report-page .page-head .actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;margin-top:6px}
  .executive-report-page .page-head .actions .btn{padding:8px 4px;font-size:11px;line-height:1.2;white-space:normal;text-align:center}
  .executive-report-page .card-pad{padding:10px}
  /* Mọi lưới: cột co được, không để nội dung đẩy tràn khỏi màn hình */
  .executive-report-page .executive-grid,.executive-report-page .executive-traffic-summary{grid-template-columns:minmax(0,1fr)!important}
  .executive-report-page .executive-grid>*,.executive-report-page .executive-traffic-summary>*,.executive-report-page .executive-kpis>*{min-width:0}
  .executive-report-page .card{max-width:100%;box-sizing:border-box;overflow:hidden}
  .executive-report-page p,.executive-report-page h3,.executive-report-page .executive-card-title>div{overflow-wrap:anywhere}
  .executive-card-title{flex-direction:column;gap:6px}
  .executive-card-title h3{font-size:14px}
  .executive-legend{flex-wrap:wrap;gap:4px 12px}
  /* Bộ lọc */
  .executive-filter{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px}
  .executive-filter .field,.executive-filter select{min-width:0;width:100%}
  .executive-filter .executive-week-field,.executive-filter .executive-branch,.executive-filter .executive-period-caption,.executive-filter>.btn{grid-column:1/-1}
  .executive-filter>.btn{width:100%;min-height:40px}
  .executive-period-caption{border-left:0;border-top:1px solid #c7d7e8;padding:8px 2px 0}
  /* Thẻ chỉ số */
  .executive-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px}
  .executive-kpi{min-height:0;padding:10px}
  .executive-kpi>span{font-size:9px;line-height:1.25}
  .executive-kpi>b{margin:6px 0;font-size:15px;line-height:1.2;overflow-wrap:anywhere}
  .executive-kpi>div{flex-wrap:wrap;gap:4px}
  .executive-change{min-width:0;padding:2px 6px;font-size:10px}
  /* Biểu đồ cột: cuộn ngang trong khung, có gợi ý vuốt */
  .executive-column-chart{height:200px;padding:16px 4px 0;-webkit-overflow-scrolling:touch}
  .executive-column-group{min-width:46px}
  .executive-column-group small{font-size:8px}
  .executive-behavior-columns,.executive-behavior-columns.compact{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:46px;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;min-height:150px}
  /* Donut */
  .executive-donut-layout{grid-template-columns:minmax(0,1fr)!important;justify-items:center;gap:10px;min-height:0}
  .executive-donut-legend{width:100%}
  .executive-donut-legend>span{grid-template-columns:11px minmax(0,1fr) auto}
  .executive-donut-legend b{white-space:normal;overflow:visible;text-overflow:clip}
  /* Hoạt động, tóm tắt */
  .executive-activity-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}
  .executive-activity-row>div{grid-column:1/-1;grid-row:2}
  .executive-overview-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .executive-overview-numbers b{font-size:12px;overflow-wrap:anywhere}
  .executive-overview>p{font-size:12px;line-height:1.55}
  /* Độ tuổi / giờ / dịch vụ */
  .executive-age-services p>b{white-space:normal;overflow:visible;text-overflow:clip}
  .executive-traffic-highlights{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .executive-traffic-highlights b{font-size:14px;white-space:normal}
  .executive-service-main>div:first-child,.executive-revenue-head{flex-wrap:wrap;gap:2px 8px}
  .executive-service-main span{white-space:normal}
  .executive-core-services article{grid-template-columns:30px minmax(0,1fr)}
  .executive-core-services article>strong{grid-column:2;justify-self:start}
  .executive-reconciliation span{flex:1 1 100%}
  .executive-segmentation-note>p{font-size:11px;line-height:1.55}
  /* Bảng so sánh kỳ -> dạng thẻ, không phải kéo ngang */
  .executive-comparison .table-wrap{overflow:visible}
  .executive-compare-table{min-width:0!important;width:100%;display:block;border:0}
  .executive-compare-table thead{display:none}
  .executive-compare-table tbody{display:grid;gap:8px}
  .executive-compare-table tr{display:block;border:1px solid #cfdbe8;border-radius:8px;background:#fff;overflow:hidden}
  #page-root .executive-compare-table td{display:flex;justify-content:space-between;align-items:center;gap:10px;width:auto!important;padding:6px 10px!important;border:0!important;border-bottom:1px solid #edf2f7!important;text-align:right;white-space:normal!important;font-size:12px!important}
  .executive-compare-table td:last-child{border-bottom:0!important}
  .executive-compare-table td:first-child{background:#eef5fc;justify-content:flex-start;text-align:left;font-size:12.5px!important}
  .executive-compare-table td:first-child:before{display:none}
  .executive-compare-table td:before{content:attr(data-label);flex:0 0 auto;color:#61758b;font-size:11px;font-weight:700;text-align:left}
  /* Khuyến nghị */
  .executive-advice-list{grid-template-columns:minmax(0,1fr)!important}
  .executive-advice-heading{flex-wrap:wrap}
}
@media(max-width:400px){
  .executive-report-page .page-head .actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .executive-kpi>b{font-size:14px}
  .executive-traffic-highlights{grid-template-columns:minmax(0,1fr)!important}
  .executive-overview-numbers{grid-template-columns:minmax(0,1fr)}
}

/* ===== V119: thanh toán tách khỏi lưu kế hoạch + thanh công cụ mobile dạng lưới ===== */
.treatment-payment-launcher{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid #9fc4e8;border-left:5px solid #0c70d4;border-radius:9px;background:linear-gradient(100deg,#f2f8ff,#fff);box-shadow:0 3px 10px rgba(24,92,157,.08)}
.treatment-payment-launcher-copy{min-width:0;display:flex;align-items:center;gap:10px}.treatment-payment-launcher-icon{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#dceeff;color:#075cb3}.treatment-payment-launcher-icon svg{width:23px;height:23px}.treatment-payment-launcher-copy b{display:block;color:#0b4d8d;font-size:14px}.treatment-payment-launcher-copy small{display:block;margin-top:3px;color:#61778d;line-height:1.4}
.treatment-payment-launcher-debt{min-width:145px;padding:7px 11px;border-left:1px solid #cbdced}.treatment-payment-launcher-debt span{display:block;color:#6c7f91;font-size:10px;text-transform:uppercase;font-weight:800}.treatment-payment-launcher-debt b{display:block;margin-top:3px;color:#d22632;font-size:17px;text-align:right}.treatment-payment-launcher-actions{display:flex;gap:7px}.treatment-payment-launcher-actions .btn{min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.treatment-payment-launcher-actions svg{width:16px;height:16px}
.service-general-payment-field{display:grid;grid-template-columns:minmax(220px,360px) minmax(220px,1fr);align-items:end;gap:12px;padding:12px 14px;border:1px solid #b8d2ed;border-top:0;background:#f8fbff}.service-general-payment-field input{width:100%;height:38px;text-align:right;font-size:16px;font-weight:800;color:#0751a5}.service-general-payment-field small{padding-bottom:8px;color:#5b7087;line-height:1.45}.service-general-payment-field:has(input:disabled){opacity:.62;background:#f2f4f7}

@media(max-width:900px){
  .exam-page-v32 .treatment-toolbar{position:static!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important;gap:7px!important;min-height:0!important;overflow:visible!important;padding:8px!important;background:#f7f9fc!important;box-shadow:none!important}
  .exam-page-v32 .treatment-toolbar .tool-separator{display:none!important}
  .exam-page-v32 .toolbar-date-group,.exam-page-v32 .toolbar-select-group{grid-column:1/-1!important;min-width:0!important;width:100%!important;max-width:none!important;display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:8px!important;padding:4px 7px!important;border:1px solid #d5e0eb!important;border-radius:10px!important;background:#fff!important}
  .exam-page-v32 .toolbar-date-group input,.exam-page-v32 .toolbar-select-group select{width:100%!important;min-width:0!important;min-height:39px!important;font-size:15px!important;border-radius:8px!important}
  .exam-page-v32 .treatment-toolbar .desktop-command{width:100%!important;min-width:0!important;min-height:62px!important;height:auto!important;display:flex!important;flex:initial!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;padding:7px 4px!important;border:1px solid #d5dfeb!important;border-radius:11px!important;white-space:normal!important;line-height:1.18!important;text-align:center!important;overflow-wrap:anywhere!important}
  .exam-page-v32 .treatment-toolbar .desktop-command svg{flex:0 0 auto!important;width:20px!important;height:20px!important}.exam-page-v32 .treatment-toolbar .desktop-command span{font-size:10px!important}
  .treatment-payment-launcher{grid-template-columns:minmax(0,1fr)!important;gap:9px;margin:4px 0;padding:12px;border-radius:14px}.treatment-payment-launcher-copy small{font-size:11px}.treatment-payment-launcher-debt{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:8px 0;border-left:0;border-top:1px solid #d5e3f0;border-bottom:1px solid #d5e3f0}.treatment-payment-launcher-debt b{text-align:right}.treatment-payment-launcher-actions{display:grid;grid-template-columns:1.25fr 1fr}.treatment-payment-launcher-actions .btn{width:100%;min-width:0;white-space:normal}
  .service-general-payment-field{grid-template-columns:minmax(0,1fr);gap:5px}.service-general-payment-field small{padding-bottom:0}
}
@media(max-width:360px){.exam-page-v32 .treatment-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* ===== V120: lịch sử khám và thanh toán nằm trong popup thanh toán ===== */
.service-payment-history-panel{padding-top:12px}.service-popup-history-summary{margin-bottom:12px}.service-popup-history-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px}.service-popup-history-grid section{min-width:0;border:1px solid #c4d5e7;border-radius:9px;background:#fff;overflow:hidden}.service-popup-history-grid h3{margin:0;padding:9px 11px;border-bottom:1px solid #c4d5e7;background:#edf5fd;color:#114f8b;font-size:13px}.service-popup-history-grid .table-wrap{max-height:53vh;overflow:auto}.service-popup-history-grid table{min-width:720px}.service-popup-history-grid section:last-child table{min-width:980px}.service-popup-history-grid tr.is-current-plan{background:#e9f4ff;box-shadow:inset 4px 0 #0b70d1}.service-popup-history-grid .visit-inline-select{font-weight:900}.service-allocation-tab.history{color:#5a3ca5}.service-allocation-tab:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:900px){.service-popup-history-grid{grid-template-columns:minmax(0,1fr)}.service-popup-history-grid .table-wrap{max-height:42vh}.service-popup-history-summary{grid-template-columns:1fr 1fr!important}.service-allocation-tabs{overflow-x:auto}.service-allocation-tab{flex:0 0 auto}}

/* ===== V121: trung tâm in ấn hợp nhất ===== */
.unified-print-launcher{border-color:#8e77d8!important;color:#5b3db2!important;background:#f6f2ff!important}.unified-print-launcher:hover{background:#ede5ff!important}
.unified-print-backdrop{z-index:3300!important;padding:10px!important}.unified-print-modal{width:min(1540px,98vw)!important;height:min(930px,96vh);max-height:96vh;display:flex;flex-direction:column;overflow:hidden!important;background:#f2f5f8}.unified-print-head{flex:0 0 auto;background:#fff}.unified-print-layout{min-height:0;flex:1;display:grid;grid-template-columns:188px minmax(0,1fr) 178px;gap:10px;padding:10px}.unified-print-types,.unified-print-actions{min-width:0;align-self:start;position:sticky;top:0;display:grid;gap:9px;padding:11px;border:1px solid #c6d3df;border-radius:10px;background:#fff;box-shadow:0 3px 12px rgba(26,61,94,.08)}.unified-print-side-title{padding-bottom:8px;border-bottom:1px solid #dde6ee;color:#234f78;font-size:12px;font-weight:900;text-transform:uppercase}.unified-print-type{width:100%;min-height:76px;display:grid;grid-template-columns:29px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px 7px;padding:10px;border:1px solid #ccd9e5;border-radius:9px;background:#f8fbfe;color:#173e63;text-align:left;cursor:pointer}.unified-print-type>span{grid-row:1/3;display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#e1effc;color:#0866bd;font-size:18px}.unified-print-type>b{font-size:13px}.unified-print-type>small{color:#687d91;font-size:10px;line-height:1.25}.unified-print-type:hover{border-color:#5d9bd4;background:#eef7ff}.unified-print-type.active{border-color:#126ec7;background:#e7f3ff;box-shadow:inset 4px 0 #126ec7}.unified-print-type:disabled{opacity:.42;cursor:not-allowed}.unified-print-preview{position:relative;min-width:0;min-height:0;border:1px solid #b8c8d8;border-radius:9px;overflow:hidden;background:#dfe3e8}.unified-print-preview iframe{display:block;width:100%;height:100%;min-height:680px;border:0;background:#dfe3e8}.unified-print-loading{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:rgba(241,246,250,.9);color:#23537f;font-size:14px;font-weight:900}.unified-print-loading[hidden]{display:none}.unified-print-actions .btn{width:100%;min-height:40px;white-space:normal}.unified-print-paper{display:grid;gap:5px;color:#4c6378;font-size:11px;font-weight:800}.unified-print-paper select{width:100%;min-height:40px;border:1px solid #9fb2c5;border-radius:7px;background:#fff;padding:6px 9px;font-weight:900;color:#17466f}
@media(max-width:900px){
  .treatment-payment-launcher-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}.treatment-payment-launcher-actions .btn{padding:7px 5px!important;font-size:11px!important}
  .unified-print-backdrop{padding:0!important}.unified-print-modal{width:100vw!important;height:100dvh;max-height:100dvh;border-radius:0!important}.unified-print-head{padding:9px 11px!important}.unified-print-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:7px;padding:7px}.unified-print-types{position:static;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:6px}.unified-print-side-title{display:none}.unified-print-type{min-height:52px;display:flex;justify-content:center;gap:4px;padding:6px;text-align:center}.unified-print-type>span{width:23px;height:23px;font-size:14px}.unified-print-type>b{font-size:10px}.unified-print-type>small{display:none}.unified-print-preview iframe{min-height:0;height:100%}.unified-print-actions{position:static;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:6px}.unified-print-actions .btn{min-height:43px;padding:6px 3px;font-size:10px}.unified-print-paper{gap:2px;font-size:9px}.unified-print-paper select{min-height:29px;padding:3px 5px}.unified-print-actions #unified-print-dismiss{display:none}
}
@media(max-width:380px){.treatment-payment-launcher-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}.treatment-payment-launcher-actions #exam-submit-button{grid-column:1/-1}.unified-print-type>span{display:none}.unified-print-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V141: đầu trang giới thiệu hai hàng — công cụ ở trên, logo và toàn bộ menu ở dưới. */
.public-login-shell.public-intro-active>.public-login-header,.public-login-shell.public-intro-active>.public-main-tabs{display:none!important}
.v140-topbar{min-height:46px;box-sizing:border-box;gap:10px!important;padding:6px clamp(12px,2.7vw,48px)!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;white-space:nowrap}
.v140-topbar .v82-topbar-search{min-width:210px;max-width:none;flex:1 1 260px}
.v140-topbar-tools{flex:0 0 auto;display:flex;align-items:center;min-width:0}
.v140-topbar-tools .public-header-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:nowrap!important;gap:6px!important;width:auto!important}
.v140-topbar-tools .public-header-btn,.v140-topbar-tools .public-language-switcher{height:34px!important;min-height:34px!important;border-radius:18px!important;font-size:10px!important}
.v140-topbar-tools .public-header-btn{display:inline-flex!important;align-items:center!important;padding:0 11px!important}
.v82-nav[data-v140-unified]{grid-template-columns:auto minmax(0,1fr) auto!important;gap:8px!important;min-height:56px!important;padding:5px clamp(12px,2.7vw,48px)!important}
.v140-nav-brand{flex:0 0 auto;width:46px;height:46px;display:grid;place-items:center;padding:2px;border:0;border-radius:10px;background:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(2,39,100,.18);overflow:hidden}
.v140-nav-brand img{display:block;width:100%;height:100%;object-fit:contain}.v140-nav-brand .v82-brand-mark{width:40px;height:40px;border-color:#1c72db;color:#1263c9!important;-webkit-text-fill-color:#1263c9!important}
.v82-nav[data-v140-unified] .v82-nav-links{display:flex!important;justify-content:center!important;gap:0!important;min-width:0;overflow-x:auto;scrollbar-width:none}.v82-nav[data-v140-unified] .v82-nav-links::-webkit-scrollbar{display:none}.v82-nav[data-v140-unified] .v82-nav-links button{flex:0 0 auto;padding:9px 10px!important;font-size:11px!important;white-space:nowrap}
.v140-nav-access{display:flex;align-items:center;gap:5px}.v140-nav-access button{min-height:34px;padding:0 10px;border:1px solid rgba(255,255,255,.5);border-radius:18px;background:rgba(255,255,255,.13);color:#fff;font-size:10px;font-weight:900;white-space:nowrap;cursor:pointer}.v140-nav-access button:hover{background:#fff;color:#0758bc!important;-webkit-text-fill-color:#0758bc!important}
@media(max-width:1180px){.v82-nav[data-v140-unified] .v82-nav-links button{padding:8px 7px!important;font-size:9.5px!important}.v140-nav-access button{padding:0 7px;font-size:9px}}
@media(max-width:900px){
  .v140-topbar{display:flex!important;min-height:48px;padding:5px 8px!important;gap:6px!important}
  .v140-topbar .v82-topbar-search{flex:0 0 185px;min-width:185px}.v140-topbar>span{font-size:9px}.v140-topbar-book{padding:6px 9px!important;font-size:9px!important}
  .v140-topbar-tools .public-header-actions .public-header-btn{display:inline-flex!important}.v140-topbar-tools .public-language-switcher{flex:0 0 38px!important;width:38px!important;min-width:38px!important}
  .v82-nav[data-v140-unified]{grid-template-columns:auto minmax(0,1fr) auto!important;padding:5px 8px!important}.v140-nav-brand{width:40px;height:40px}.v140-nav-access{gap:3px}.v140-nav-access button{min-height:32px;padding:0 6px;font-size:8px}
}
@media(max-width:760px){.v82-nav[data-v140-unified]{display:none!important}}

/* V142: tìm kiếm nội dung công khai trên trang giới thiệu. */
.v82-topbar-search[data-v142-public-search]{position:relative}
.v82-topbar-search[data-v142-public-search] input[type="search"]::-webkit-search-cancel-button{filter:invert(1);opacity:.8}
.v142-search-results{position:fixed;z-index:3600;max-height:min(520px,70vh);overflow:auto;border:1px solid #c8d8ea;border-radius:12px;background:#fff;color:#17324d;white-space:normal;box-shadow:0 18px 45px rgba(3,30,70,.3)}
.v142-search-results[hidden]{display:none!important}.v142-search-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #e4ebf2;background:#f7faff}.v142-search-heading b{font-size:12px;color:#0b4f95}.v142-search-heading span{color:#6a7c8f;font-size:10px}
.v142-search-results>button{width:100%;display:grid;grid-template-columns:76px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid #edf1f5;background:#fff;color:#1e3348;text-align:left;cursor:pointer}.v142-search-results>button:last-child{border-bottom:0}.v142-search-results>button:hover,.v142-search-results>button:focus{outline:0;background:#eef6ff}.v142-search-results>button i{color:#1475d1;font-size:22px;font-style:normal;text-align:right}
.v142-search-type{display:inline-flex;justify-content:center;padding:4px 6px;border-radius:999px;background:#eaf4ff;color:#0864bd;font-size:9px;font-weight:900}.v142-search-type.news{background:#fff1dd;color:#9a5700}.v142-search-type.knowledge{background:#eee9ff;color:#6243bb}.v142-search-type.price{background:#e5f8ec;color:#14743a}.v142-search-type.team{background:#f4eaff;color:#833ca9}.v142-search-type.product{background:#eaf7f7;color:#167076}
.v142-search-copy{display:grid;gap:3px;min-width:0}.v142-search-copy b{font-size:12px;line-height:1.3}.v142-search-copy small{display:-webkit-box;overflow:hidden;color:#68798a;font-size:10px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.v142-search-empty{display:grid;gap:5px;padding:18px;text-align:center}.v142-search-empty b{color:#234e78;font-size:13px}.v142-search-empty span{color:#738496;font-size:11px;line-height:1.5}
@media(max-width:600px){.v142-search-results{max-height:62vh}.v142-search-heading{align-items:flex-start;flex-direction:column;gap:2px}.v142-search-results>button{grid-template-columns:68px minmax(0,1fr) 12px;padding:9px}.v142-search-copy b{font-size:11px}}

/* V143: chữ công khai dễ đọc, logo sát Trang chủ và màn hình xác thực độc lập. */
.public-auth-home-back{display:none}
.public-login-shell.public-auth-active>.public-login-header,
.public-login-shell.public-auth-active>.public-main-tabs,
.public-login-shell.public-auth-active>.public-mobile-bottom-nav{display:none!important}
#login-screen .public-login-shell.public-auth-active>.public-login-header,
#login-screen .public-login-shell.public-auth-active>.public-main-tabs,
#login-screen .public-login-shell.public-auth-active>.public-mobile-bottom-nav{display:none!important}
.public-login-shell.public-auth-active .public-auth-home-back{position:fixed;top:14px;left:14px;z-index:2500;display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 15px;border:1px solid rgba(10,91,186,.35);border-radius:22px;background:rgba(255,255,255,.94);color:#0759b8;font:900 14px Arial,"Segoe UI",sans-serif;box-shadow:0 7px 24px rgba(0,45,105,.2);cursor:pointer;backdrop-filter:blur(8px)}
.public-login-shell.public-auth-active .public-auth-home-back:hover{background:#075fcb;color:#fff}
.public-login-shell.public-auth-active .public-tab-stage.public-auth-workspace{min-height:100dvh!important}
.public-login-shell.public-auth-active .staff-login-panel,
.public-login-shell.public-auth-active .public-portal-panel,
.public-login-shell.public-auth-active .public-warranty-panel{min-height:100dvh!important}
.public-login-shell.public-auth-active .public-staff-card label,.public-login-shell.public-auth-active .portal-label{font-size:13px!important}
.public-login-shell.public-auth-active .public-staff-card input,.public-login-shell.public-auth-active .public-staff-card select,.public-login-shell.public-auth-active .portal-input{font-size:15px!important}
.public-login-shell.public-auth-active .portal-card-head b,.public-login-shell.public-auth-active .warranty-lookup-head b{font-size:16px!important}.public-login-shell.public-auth-active .portal-card-head span:not(.portal-lock),.public-login-shell.public-auth-active .warranty-lookup-head span{font-size:12px!important}
.public-login-shell.public-auth-active .warranty-lookup-input,.public-login-shell.public-auth-active .warranty-lookup-btn{font-size:14px!important}
.v140-topbar{font-size:13px!important}.v140-topbar .v82-topbar-search input{font-size:13px!important}.v140-topbar-book{font-size:12px!important}.v140-topbar-tools .public-header-btn,.v140-topbar-tools .public-language-switcher{font-size:12px!important}
.v82-nav[data-v140-unified]{grid-template-columns:minmax(0,1fr) auto!important;gap:16px!important;min-height:64px!important;padding:6px clamp(16px,3.2vw,62px)!important}
.v143-nav-main{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden}.v143-home-pair{flex:0 0 auto;display:flex;align-items:center;gap:3px}.v143-nav-main .v140-nav-brand{width:50px;height:50px;margin-right:0}.v143-home-link{min-height:44px;padding:9px 12px;border:0;background:transparent;color:#fff;font:900 14px Arial,"Segoe UI",sans-serif;white-space:nowrap;cursor:pointer}.v143-home-link:hover{background:rgba(255,255,255,.14)}.v143-nav-main .v82-nav-links{flex:1 1 auto;justify-content:space-evenly!important}
.v82-nav[data-v140-unified] .v82-nav-links button{flex:1 0 auto;min-height:44px!important;padding:9px 13px!important;font-size:14px!important;font-weight:900!important}
.v140-nav-access{gap:8px}.v140-nav-access button{min-height:40px!important;padding:0 15px!important;font-size:13px!important}
.v92-price-group-title{font-size:17px!important}.v92-price-table{font-size:14.5px!important;line-height:1.35}.v92-price-table th,.v92-price-table td{padding:12px 11px!important}.v92-price-table thead th{font-size:13px!important}.v92-price-detail button{font-size:13px!important}.v92-price-footnote{font-size:13.5px!important}.v92-price-filter label,.v92-price-filter select,.v101-price-fit-toolbar{font-size:13px!important}
.v92-price-page[data-price-fit="fit"] .v92-price-table{font-size:13px!important}.v92-price-page[data-price-fit="fit"] .v92-price-table th,.v92-price-page[data-price-fit="fit"] .v92-price-table td{padding:9px 6px!important}
@media(max-width:1280px) and (min-width:761px){.v82-nav[data-v140-unified]{gap:9px!important;padding-inline:14px!important}.v143-nav-main .v140-nav-brand{width:46px;height:46px}.v143-home-link{padding-inline:8px;font-size:12px}.v82-nav[data-v140-unified] .v82-nav-links button{padding-inline:9px!important;font-size:12px!important}.v140-nav-access button{padding-inline:10px!important;font-size:11.5px!important}}

/* V144: vị trí và mạng xã hội cùng một lưới, tối đa 5 thẻ mỗi hàng. */
.v144-location-section{padding-inline:clamp(18px,4vw,72px)!important}.v144-location-grid{box-sizing:border-box;width:min(1450px,100%);margin:24px auto 0!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:16px!important}.v117-location-card.v144-location-card{aspect-ratio:auto!important;min-width:0;min-height:318px;padding:0!important;display:grid!important;grid-template-rows:160px minmax(0,1fr);overflow:hidden;border-width:1px!important;border-radius:16px!important;background:#fff!important}.v144-location-preview{box-sizing:border-box;width:100%;min-height:160px!important;border-radius:0!important;overflow:hidden;background:linear-gradient(145deg,#eaf4ff,#f8fbff)}.v144-location-preview iframe{display:block;width:100%;height:160px!important;min-height:160px!important;border:0}.v144-social-preview{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:100%;height:160px;padding:15px;color:#fff;background:linear-gradient(145deg,#2378e8,#1054b4)}.v144-social-preview .v144-social-icon{display:grid;place-items:center;width:52px;height:52px;border:2px solid rgba(255,255,255,.82);border-radius:50%;background:rgba(255,255,255,.13);font:900 30px Arial}.v144-social-preview b{font-size:19px}.v144-social-preview small{max-width:100%;color:#fff!important;font-size:11px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v144-location-card.is-zalo .v144-social-preview{background:linear-gradient(145deg,#1685f8,#0068d9)}.v144-location-card.is-tiktok .v144-social-preview{background:linear-gradient(145deg,#111,#252525);box-shadow:inset 5px 0 #25f4ee,inset -5px 0 #fe2c55}.v144-location-card .v118-location-info{box-sizing:border-box;width:100%;padding:13px!important;gap:7px!important}.v144-location-card .v118-location-info strong{font-size:16px!important;line-height:1.25}.v144-location-card .v118-location-info small{min-height:36px;font-size:12px!important;line-height:1.45}.v144-location-card .v118-location-info a{box-sizing:border-box;width:100%;margin-top:auto;padding:9px 7px!important;font-size:12px!important}
.v144-location-admin-row{grid-template-columns:42px minmax(160px,.7fr) minmax(210px,1fr) minmax(280px,1.2fr) 115px auto auto!important}.v144-link-preview{align-self:end;display:flex;align-items:center;justify-content:center;min-height:36px;padding:0 9px;border:1px solid #9bb8d2;border-radius:6px;background:#fff;color:#3f5870;font-weight:900;white-space:nowrap}.v144-link-preview.is-facebook{border-color:#1877f2;background:#eaf3ff;color:#1260bf}.v144-link-preview.is-zalo{border-color:#1685f8;background:#eaf6ff;color:#0068d9}.v144-link-preview.is-tiktok{border-color:#333;background:#171717;color:#fff}.v144-link-preview.is-google{border-color:#4ca969;background:#effbf3;color:#247943}.v144-link-preview.is-empty{border-style:dashed;color:#788b9e;font-size:10px}
@media(max-width:1180px){.v144-location-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.v144-location-admin-row{grid-template-columns:38px 1fr 1fr!important}.v144-location-admin-row .map-link{grid-column:2/-1}.v144-location-admin-row .v144-link-preview,.v144-location-admin-row .active{grid-column:auto}}
@media(max-width:760px){.v144-location-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.v117-location-card.v144-location-card{min-height:285px!important;grid-template-rows:132px minmax(0,1fr)}.v144-location-preview,.v144-social-preview{height:132px!important;min-height:132px!important}.v144-location-preview iframe{height:132px!important;min-height:132px!important}.v144-location-card .v118-location-info{padding:10px!important}.v144-location-card .v118-location-info strong{font-size:14px!important}.v144-location-card .v118-location-info small{font-size:10px!important}.v144-location-admin-row{grid-template-columns:34px 1fr!important}.v144-location-admin-row label,.v144-location-admin-row .map-link,.v144-location-admin-row .v144-link-preview,.v144-location-admin-row .active{grid-column:2!important}}
@media(max-width:440px){.v144-location-grid{grid-template-columns:1fr!important}.v117-location-card.v144-location-card{min-height:300px!important}}
@media(max-width:900px){.v140-topbar{font-size:11px!important}.v140-topbar .v82-topbar-search input,.v140-topbar-book,.v140-topbar-tools .public-header-btn{font-size:11px!important}.public-login-shell.public-auth-active .public-auth-home-back{top:calc(10px + env(safe-area-inset-top));left:10px;min-height:38px;padding:0 12px;font-size:12px}.v92-price-page[data-price-fit="auto"] .v92-price-table{font-size:clamp(8.5px,2.25vw,11px)!important}.v92-price-page[data-price-fit="auto"] .v92-price-table th,.v92-price-page[data-price-fit="auto"] .v92-price-table td{padding:6px 3px!important}}
@media(max-width:760px){.public-login-shell.public-auth-active .public-staff-card label,.public-login-shell.public-auth-active .portal-label{font-size:11px!important}.public-login-shell.public-auth-active .portal-card-head b,.public-login-shell.public-auth-active .warranty-lookup-head b{font-size:14px!important}.public-login-shell.public-auth-active .portal-card-head span:not(.portal-lock),.public-login-shell.public-auth-active .warranty-lookup-head span{font-size:10px!important}}

/* V123 — cấu hình định dạng chữ số trong Thông tin phòng khám. */
.clinic-profile-fields select{box-sizing:border-box;width:100%;height:36px;padding:8px;border:1px solid #9eb2c3;background:#fff;color:#102d49}

/* ===== V122: header công khai và biểu mẫu kế hoạch mobile mật độ cao ===== */
.public-mobile-language-toggle,.public-mobile-language-menu{display:none}
@media(max-width:900px){
  #login-screen .public-login-header{width:100%!important;min-height:56px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;grid-template-columns:none!important;gap:7px!important;padding:6px 9px!important;background:#fff!important}
  #login-screen .public-brand-block{min-width:0!important;flex:1 1 auto!important;display:flex!important;align-items:center!important;gap:8px!important}
  #login-screen .public-brand-badge{flex:0 0 38px!important;width:38px!important;height:38px!important;border-radius:9px!important}
  #login-screen .public-brand-name{display:block!important;max-width:100%!important;font-size:12px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  #login-screen .public-brand-welcome,#login-screen .public-brand-wish{display:none!important}
  #login-screen .public-header-actions{flex:0 0 auto!important;width:auto!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:nowrap!important;gap:0!important}
  #login-screen .public-language-switcher{position:relative!important;width:38px!important;min-width:38px!important;max-width:38px!important;height:38px!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;overflow:visible!important}
  #login-screen .public-language-switcher>.language-icon,#login-screen .public-language-switcher>label,#login-screen .public-language-switcher>.app-language-select{display:none!important}
  #login-screen .public-mobile-language-toggle{width:38px;height:38px;display:grid;place-items:center;padding:0;border:1px solid #d5dfeb;border-radius:50%;background:#f7fbff;color:#075fb8;font-size:19px;line-height:1;box-shadow:0 2px 7px rgba(20,65,105,.12);cursor:pointer}
  #login-screen .public-mobile-language-toggle[aria-expanded="true"]{border-color:#1877d3;background:#e8f3ff;box-shadow:0 0 0 3px rgba(24,119,211,.12)}
  #login-screen .public-mobile-language-menu{position:absolute;right:0;top:44px;z-index:1400;width:max-content;display:flex;gap:4px;padding:5px;border:1px solid #c8d6e4;border-radius:10px;background:#fff;box-shadow:0 10px 28px rgba(20,48,78,.22)}
  #login-screen .public-mobile-language-menu[hidden]{display:none!important}
  #login-screen .public-mobile-language-menu button{min-width:43px;height:34px;padding:0 7px;border:1px solid #d8e1ea;border-radius:7px;background:#f8fafc;color:#36546f;font-size:10px;font-weight:900;cursor:pointer}
  #login-screen .public-mobile-language-menu button.active{border-color:#1475cf;background:#e8f3ff;color:#0758ae}

  .exam-page-v32 .resizable-treatment-table tbody{gap:8px!important}
  .exam-page-v32 .resizable-treatment-table tbody tr{grid-template-columns:1fr 1fr!important;gap:5px 7px!important;padding:34px 7px 8px!important;border-radius:12px!important;box-shadow:0 3px 10px rgba(31,37,55,.06)!important}
  .exam-page-v32 .resizable-treatment-table tbody td{grid-template-rows:auto minmax(35px,auto)!important;gap:2px!important;font-size:11px!important}
  .exam-page-v32 .resizable-treatment-table tbody td:before{font-size:7.5px!important;line-height:1.1!important;letter-spacing:.1px!important}
  .exam-page-v32 .resizable-treatment-table tbody td:nth-child(1){left:7px!important;top:7px!important;width:23px!important;height:23px!important;min-height:23px!important;font-size:10px!important}
  .exam-page-v32 .resizable-treatment-table input,.exam-page-v32 .resizable-treatment-table select,.exam-page-v32 .resizable-treatment-table button{min-height:35px!important;height:35px!important;padding:4px 6px!important;border-radius:7px!important;font-size:13px!important;line-height:1.15!important}
  .exam-page-v32 .resizable-treatment-table .money{min-height:35px!important;padding:5px 6px!important;border-radius:7px!important;font-size:11px!important;line-height:1.15!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .exam-page-v32 .mobile-treatment-cart-head{margin:7px 0!important;padding:9px 10px!important;border-radius:11px!important}.exam-page-v32 .mobile-treatment-cart-head b{font-size:12px!important}.exam-page-v32 .mobile-treatment-cart-head strong{font-size:14px!important}
  .exam-page-v32 .plan-editor-head{gap:5px!important;padding:8px!important}.exam-page-v32 .treatment-grid-pane{font-size:11px!important}
  .picker-selected-scroll tbody{gap:7px!important}.picker-selected-scroll tr{gap:5px 7px!important;padding:33px 8px 8px!important;border-radius:12px!important}.picker-selected-scroll td{gap:2px!important;font-size:11px!important}.picker-selected-scroll td:nth-child(2){font-size:12px!important;line-height:1.2!important}.picker-selected-scroll td::before{font-size:7.5px!important}.selected-procedure-table input{height:35px!important;min-height:35px!important;padding:4px 6px!important;border-radius:7px!important;font-size:13px!important}.picker-selected-scroll td:nth-child(8){font-size:13px!important}.picker-remove-service{width:28px!important;height:28px!important;min-height:28px!important}
}

/* ===== V124: phân bổ mobile dạng thẻ dọc + báo cáo thu tiền hiển thị nội tuyến ===== */
.cashbook-report-table{width:100%;table-layout:fixed}
[data-report-section="cashbook_unallocated"] .cashbook-report-table :is(th,td):nth-child(3),
[data-report-section="income_summary"] .cashbook-report-table :is(th,td):nth-child(3),
[data-report-section="cashbook_allocated"] .cashbook-report-table :is(th,td):nth-child(2){width:170px!important;min-width:170px!important;max-width:170px!important}
.report-inline-detail{margin-top:12px;border:1px solid #b9cce0;border-radius:9px;overflow:hidden;background:#fff}
.report-inline-loading{padding:38px;text-align:center;color:#53708d;font-weight:800}
.report-inline-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid #c8d7e6;background:#eef6fd;color:#174d7e}
.report-inline-head b{display:block;font-size:14px}.report-inline-head small{display:block;margin-top:3px;color:#6c7f91}
.report-inline-summary{border-radius:0!important;border-width:0 0 1px!important;margin:0!important}
.report-inline-table-wrap{max-height:62vh;border:0!important;border-radius:0!important}
.report-inline-payment-table .report-patient-link{min-width:150px}

@media(max-width:700px){
  .service-allocation-modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}
  .service-allocation-panel{padding:10px!important}
  .service-allocation-table-wrap{overflow:visible!important;border:0!important;background:transparent!important}
  .service-allocation-table{display:block!important;width:100%!important;min-width:0!important;border:0!important;background:transparent!important}
  .service-allocation-table thead{display:none!important}
  .service-allocation-table tbody{display:grid!important;gap:10px!important;width:100%!important}
  .service-allocation-table tr{position:relative;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;width:auto!important;padding:12px!important;border:1px solid #b9cee4!important;border-radius:12px!important;background:#fff!important;box-shadow:0 3px 10px rgba(29,75,119,.08)!important}
  .service-allocation-table tr.has-allocation{border-color:#2480dc!important;box-shadow:0 0 0 2px rgba(36,128,220,.12)!important}
  .service-allocation-table tr.is-paid{background:#f3fbf6!important;border-color:#b7d9c2!important}
  .service-allocation-table td{display:grid!important;align-content:start!important;gap:4px!important;min-width:0!important;width:auto!important;padding:0!important;border:0!important;background:transparent!important;white-space:normal!important;text-align:left!important}
  .service-allocation-table td::before{display:block;color:#6b7f94;font-size:9px;font-weight:900;line-height:1.15;text-transform:uppercase}
  .service-allocation-table td:nth-child(1){position:absolute!important;right:10px!important;top:10px!important;z-index:2!important;display:block!important}
  .service-allocation-table td:nth-child(1)::before{display:none}
  .service-allocation-table td:nth-child(2){grid-column:1/-1!important;order:-2!important;padding-right:46px!important;min-height:31px!important;color:#164a7c!important;font-size:14px!important;line-height:1.3!important}
  .service-allocation-table td:nth-child(2)::before{content:"Dịch vụ"}
  .service-allocation-table td:nth-child(3)::before{content:"Giá trị"}
  .service-allocation-table td:nth-child(4)::before{content:"Đã trả riêng"}
  .service-allocation-table td:nth-child(5)::before{content:"Còn lại"}
  .service-allocation-table td:nth-child(6)::before{content:"Phân bổ lần này"}
  .service-allocation-table td:nth-child(7)::before{content:"Chọn nhanh"}
  .service-allocation-table td.money{min-height:42px;padding:8px!important;border:1px solid #d6e1ec!important;border-radius:8px!important;background:#f8fbfe!important;text-align:right!important;font-size:13px!important}
  .service-allocation-table [data-service-allocation]{box-sizing:border-box;width:100%!important;min-width:0!important;height:42px!important;padding:7px 8px!important;border-radius:8px!important;text-align:right!important;font-size:15px!important;font-weight:900!important}
  .service-allocation-table [data-service-fill],.service-allocation-table .service-payment-status{box-sizing:border-box;width:100%!important;min-height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:6px!important;white-space:normal!important;text-align:center!important}
  .service-allocation-check{width:34px!important;height:34px!important;border-radius:9px!important;background:#eef6ff!important;display:grid!important;place-items:center!important}
  .service-allocation-check input{width:22px!important;height:22px!important}
  .service-allocation-total{position:static!important;margin-top:10px!important;border-radius:9px!important}
  .report-inline-head{align-items:flex-start;padding:10px;flex-wrap:wrap}.report-inline-head .btn{width:100%}
  .report-inline-summary{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;padding:9px 10px!important}
  .report-inline-table-wrap{max-height:none!important;-webkit-overflow-scrolling:touch}
}

/* ===== V125: popup phân bổ và lịch sử thanh toán tối ưu cho màn hình dọc ===== */
@media(max-width:700px){
  /* Ba thẻ luôn nằm trọn trong chiều rộng điện thoại, không còn phải vuốt ngang. */
  .service-allocation-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;width:100%!important;padding:6px 7px 0!important;overflow:visible!important}
  .service-allocation-tab{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:50px!important;display:flex!important;align-items:center!important;justify-content:center!important;flex:initial!important;padding:5px 3px!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:center!important;font-size:9.5px!important;line-height:1.15!important}

  /* Mỗi thủ thuật tự giãn theo nội dung; nút chọn nhanh luôn ở trong thẻ. */
  .service-allocation-table tbody{gap:7px!important}
  .service-allocation-table tr{height:auto!important;min-height:0!important;grid-auto-rows:auto!important;align-items:stretch!important;gap:5px 6px!important;padding:9px!important;overflow:hidden!important}
  .service-allocation-table td{height:auto!important;min-height:0!important;align-self:stretch!important;gap:2px!important}
  .service-allocation-table td::before{font-size:7.5px!important;line-height:1.05!important}
  .service-allocation-table td:nth-child(1){right:8px!important;top:8px!important}
  .service-allocation-table td:nth-child(2){min-height:27px!important;padding-right:38px!important;font-size:12px!important;line-height:1.2!important}
  .service-allocation-table td:nth-child(7){grid-column:1/-1!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto 34px!important;gap:3px!important;padding-top:1px!important}
  .service-allocation-table td.money{min-height:35px!important;padding:5px 6px!important;font-size:11.5px!important;line-height:1.15!important}
  .service-allocation-table [data-service-allocation]{height:35px!important;min-height:35px!important;padding:5px 6px!important;font-size:13px!important}
  .service-allocation-table [data-service-fill],.service-allocation-table .service-payment-status{height:34px!important;min-height:34px!important;padding:4px 7px!important;font-size:11px!important;line-height:1.1!important}
  .service-allocation-check{width:30px!important;height:30px!important;border-radius:8px!important}
  .service-allocation-check input{width:19px!important;height:19px!important}

  /* Lịch sử khám và nhật ký thanh toán chuyển từ bảng rộng thành thẻ dọc. */
  .service-payment-history-panel{padding:8px!important}
  .service-popup-history-summary{gap:5px!important;margin-bottom:8px!important}
  .service-popup-history-grid{grid-template-columns:minmax(0,1fr)!important;gap:9px!important}
  .service-popup-history-grid section{overflow:visible!important;border-radius:9px!important}
  .service-popup-history-grid h3{padding:7px 9px!important;font-size:11px!important}
  .service-popup-history-grid .table-wrap{max-height:none!important;overflow:visible!important;padding:7px!important}
  .service-popup-history-grid table{display:block!important;width:100%!important;min-width:0!important;border:0!important;background:transparent!important}
  .service-popup-history-grid thead{display:none!important}
  .service-popup-history-grid tbody{display:grid!important;gap:7px!important;width:100%!important}
  .service-popup-history-grid tr{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:5px!important;width:auto!important;padding:7px!important;border:1px solid #c8d8e8!important;border-radius:9px!important;background:#fff!important;box-shadow:0 2px 7px rgba(30,71,109,.06)!important}
  .service-popup-history-grid tr.is-current-plan{box-shadow:inset 3px 0 #0b70d1,0 2px 7px rgba(30,71,109,.06)!important}
  .service-popup-history-grid td{box-sizing:border-box!important;min-width:0!important;width:auto!important;display:grid!important;gap:2px!important;padding:5px 6px!important;border:0!important;border-radius:6px!important;background:#f6f9fc!important;white-space:normal!important;overflow-wrap:anywhere!important;font-size:10.5px!important;line-height:1.25!important;text-align:left!important}
  .service-popup-history-grid td::before{content:attr(data-label);display:block;color:#6b7e92;font-size:7.5px;font-weight:900;line-height:1.05;text-transform:uppercase}
  .service-popup-history-grid td[data-mobile-wide="true"]{grid-column:1/-1!important}
  .service-popup-history-grid td.money{text-align:right!important;font-size:11.5px!important}
  .service-popup-history-grid td.empty{grid-column:1/-1!important;display:block!important;padding:16px 8px!important;text-align:center!important}
  .service-popup-history-grid td.empty::before{display:none!important}
  .service-popup-history-grid .visit-inline-select{width:100%;padding:0;border:0;background:transparent;text-align:left;font-size:11.5px}
  .service-popup-history-grid .payment-log-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important}
  .service-popup-history-grid .payment-log-actions .btn{width:100%!important;min-width:0!important;padding:5px 3px!important;font-size:9.5px!important}

  /* Báo cáo phân bổ cũng dùng thẻ dọc, kể cả các dòng có ô gộp trên desktop. */
  .service-allocation-report-heading{gap:5px!important;padding:7px!important;font-size:10px!important}
  .service-allocation-modal-report-wrap{max-height:none!important;overflow:visible!important;border:0!important;background:transparent!important}
  .service-allocation-modal-report{display:block!important;width:100%!important;min-width:0!important;border:0!important;background:transparent!important}
  .service-allocation-modal-report thead{display:none!important}
  .service-allocation-modal-report tbody{display:grid!important;gap:7px!important;width:100%!important}
  .service-allocation-modal-report tr{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:5px!important;padding:7px!important;border:1px solid #c8d8e8!important;border-radius:9px!important;background:#fff!important}
  .service-allocation-modal-report td{box-sizing:border-box!important;min-width:0!important;width:auto!important;display:grid!important;gap:2px!important;padding:5px 6px!important;border:0!important;border-radius:6px!important;background:#f6f9fc!important;white-space:normal!important;overflow-wrap:anywhere!important;font-size:10.5px!important;line-height:1.25!important;text-align:left!important}
  .service-allocation-modal-report td::before{content:attr(data-label);display:block;color:#6b7e92;font-size:7.5px;font-weight:900;line-height:1.05;text-transform:uppercase}
  .service-allocation-modal-report td[data-mobile-wide="true"]{grid-column:1/-1!important}
  .service-allocation-modal-report td.empty{grid-column:1/-1!important;display:block!important;text-align:center!important}
  .service-allocation-modal-report td.empty::before{display:none!important}
  .service-allocation-modal-report textarea{box-sizing:border-box;width:100%!important;min-width:0!important;min-height:54px!important;font-size:11px!important}
}

@media(max-width:360px){
  .service-allocation-tab{font-size:8.7px!important;padding-inline:2px!important}
  .service-allocation-panel{padding:7px!important}
  .service-allocation-table tr{padding:8px 7px!important}
}

/* ===== V126: thẻ dữ liệu mobile độc lập, không dùng thuật toán bố cục table/rowspan ===== */
.payment-mobile-list,.service-allocation-report-mobile{display:none}
@media(max-width:700px){
  .service-popup-history-grid .table-wrap,.service-allocation-modal-report-wrap{display:none!important}
  .payment-mobile-list,.service-allocation-report-mobile{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;min-width:0!important;padding:7px!important}
  .service-allocation-report-mobile{padding:7px 0!important}

  .payment-mobile-card{position:relative;box-sizing:border-box;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:6px;padding:9px;border:1px solid #c5d6e7;border-radius:10px;background:#fff;box-shadow:0 2px 7px rgba(26,67,105,.07)}
  .payment-mobile-card.is-current-plan{border-color:#2380d7;box-shadow:inset 3px 0 #2380d7,0 2px 7px rgba(26,67,105,.08)}
  .payment-mobile-card.refund{border-color:#efc3c3;background:#fffafa}
  .payment-mobile-field{box-sizing:border-box;min-width:0;min-height:49px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;padding:7px 8px;border:1px solid #e0e8f0;border-radius:7px;background:#f7fafd;overflow:visible}
  .payment-mobile-field.wide{grid-column:1/-1}
  .payment-mobile-field>span{display:block;width:100%;color:#657a8f;font-size:8px!important;font-weight:900;line-height:1.15!important;text-transform:uppercase;white-space:normal!important}
  .payment-mobile-field>b,.payment-mobile-field>p,.payment-mobile-field>small{display:block;box-sizing:border-box;width:100%;max-width:100%;margin:0!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
  .payment-mobile-field>b{color:#183e64;font-size:11.5px!important;line-height:1.35!important}
  .payment-mobile-field>p{color:#263f57;font-size:11px!important;line-height:1.4!important}
  .payment-mobile-field>small{color:#6d8092;font-size:9px!important;line-height:1.3!important}
  .payment-mobile-field.paid>b{color:#0a8b43}.payment-mobile-field.debt>b{color:#d12c36}.payment-mobile-field.amount>b{font-size:13px!important}
  .payment-mobile-field .visit-inline-select{display:block;width:100%;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;color:#075fb8!important;text-align:left!important;font-size:12px!important;font-weight:900!important;line-height:1.3!important}
  .payment-mobile-field .payment-log-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important}
  .payment-mobile-field .payment-log-actions .btn{box-sizing:border-box;width:100%!important;min-width:0!important;min-height:32px!important;padding:5px 3px!important;font-size:9.5px!important}
  .payment-mobile-empty{padding:18px 10px;border:1px dashed #b9c9d8;border-radius:8px;background:#f8fafc;color:#65788b;text-align:center;font-size:11px}

  .allocation-mobile-card{position:relative;box-sizing:border-box;min-width:0;display:grid;gap:8px;padding:10px;border:1px solid #bfd2e5;border-radius:11px;background:#fff;box-shadow:0 2px 8px rgba(25,66,105,.08)}
  .allocation-mobile-index{position:absolute;top:9px;right:9px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#e4f1fe;color:#075eb3;font-size:10px;font-weight:900}
  .allocation-mobile-card>header{min-width:0;padding:2px 36px 7px 2px;border-bottom:1px solid #dce6ef}
  .allocation-mobile-card>header b,.allocation-mobile-card>header small{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .allocation-mobile-card>header b{color:#163f68;font-size:13px;line-height:1.3}.allocation-mobile-card>header small{margin-top:2px;color:#6e8091;font-size:9px}
  .allocation-mobile-overview{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}
  .allocation-mobile-history{min-width:0;display:grid;gap:7px}
  .allocation-mobile-history h4{margin:0;padding:6px 8px;border-radius:6px;background:#edf5fd;color:#185084;font-size:10px;text-transform:uppercase}
  .allocation-mobile-entry{box-sizing:border-box;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;padding:7px;border:1px solid #d4e0eb;border-radius:8px;background:#fbfdff}
  .allocation-mobile-entry.refund{border-color:#edc6c6;background:#fff9f9}
  .allocation-mobile-note textarea{box-sizing:border-box;width:100%!important;max-width:100%!important;min-width:0!important;min-height:62px!important;height:auto!important;padding:7px!important;border:1px solid #c5d3e0!important;border-radius:6px!important;background:#fff!important;font-size:11px!important;line-height:1.4!important;resize:vertical!important}
  .allocation-mobile-note .allocation-note-status{font-size:8.5px!important;color:#718397!important}
}

@media(max-width:360px){
  .payment-mobile-card,.allocation-mobile-entry,.allocation-mobile-overview{grid-template-columns:minmax(0,1fr)}
  .payment-mobile-field.wide{grid-column:1}
}

/* ===== V127: bộ chọn báo cáo mobile, tiêu đề động và bảng báo cáo dạng thẻ ===== */
.mobile-report-menu,.mobile-report-table-cards{display:none}
.cashbook-report-table tfoot th{background:#d8e9fb!important;color:#173d68!important;border-color:#86a4bf!important;text-shadow:none!important}
.cashbook-report-table tfoot .text-success{color:#08783c!important}
.cashbook-report-table tfoot .text-danger{color:#c5202b!important}

@media(max-width:700px){
  .report-page-compact>.page-head{margin:0 0 6px!important;padding:7px 4px 8px!important;gap:3px!important}
  .report-page-compact>.page-head h2{font-size:16px!important;line-height:1.2!important;text-align:center!important}
  .report-page-compact>.page-head p{font-size:9.5px!important;line-height:1.3!important;text-align:center!important}
  .mobile-report-menu{box-sizing:border-box;width:100%;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0 0 8px;padding:7px;border:1px solid #c7d6e5;border-radius:10px;background:#f4f8fc}
  .mobile-report-menu-item{box-sizing:border-box;min-width:0;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px 3px;border:1px solid #cbd9e7;border-radius:9px;background:#fff;color:#234a70;text-align:center;cursor:pointer;box-shadow:0 2px 6px rgba(26,65,102,.05)}
  .mobile-report-menu-item>span{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:#ffeded;color:#e3323d}
  .mobile-report-menu-item>span svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
  .mobile-report-menu-item>b{max-width:100%;font-size:8.7px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
  .mobile-report-menu-item.active{border-color:#1774ce;background:#eaf4ff;color:#0757a5;box-shadow:0 0 0 2px rgba(23,116,206,.12)}
  .mobile-report-menu-item.active>span{background:#ddecff;color:#0764bd}

  .report-page-compact .report-filter-card{padding:7px!important}
  .report-page-compact .report-filter-card .toolbar{grid-template-columns:1fr 1fr!important;gap:5px!important}
  .report-page-compact .report-filter-card .field{box-sizing:border-box;min-width:0!important;width:100%!important}
  .report-page-compact .report-filter-card .report-branch-field,.report-page-compact .report-filter-card .report-employee,.report-page-compact .report-filter-card .toolbar>.btn{grid-column:1/-1}
  .report-page-compact .report-filter-card .report-kind{display:none!important}
  .report-page-compact .report-filter-card input,.report-page-compact .report-filter-card select{box-sizing:border-box;width:100%!important;min-width:0!important;height:35px!important;min-height:35px!important;font-size:12px!important}
  .report-page-compact .report-filter-card .toolbar>.btn{width:100%;height:37px!important;min-height:37px!important}

  .report-page-compact>.stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin:7px 0!important}
  .report-page-compact>.stats .stat{box-sizing:border-box;min-width:0!important;min-height:57px!important;padding:7px 8px!important}
  .report-page-compact>.stats .label{font-size:7.5px!important}.report-page-compact>.stats .value{font-size:14px!important;overflow-wrap:anywhere!important}
  .report-page-compact .report-section-card{box-sizing:border-box;width:100%;min-width:0;padding:7px!important;overflow:visible!important}
  .report-page-compact .report-panel-title{align-items:flex-start!important;gap:5px!important;flex-wrap:wrap!important}
  .report-page-compact .report-panel-title>div:first-child{min-width:0;flex:1 1 190px}
  .report-page-compact .report-panel-title .card-title{font-size:11px!important;line-height:1.3!important;white-space:normal!important}
  .report-page-compact .report-panel-title .small{font-size:8.5px!important;line-height:1.35!important}
  .report-page-compact .report-detail-btn{flex:0 0 auto;padding:5px 7px!important;font-size:9px!important}

  .mobile-report-source{display:none!important}
  .mobile-report-table-cards{box-sizing:border-box;width:100%;min-width:0;display:grid!important;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:6px}
  .mobile-report-data-card{box-sizing:border-box;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:5px;padding:8px;border:1px solid #c7d7e7;border-radius:9px;background:#fff;box-shadow:0 2px 7px rgba(24,63,99,.07)}
  .mobile-report-data-card.summary{border-color:#81a7cc;background:#eaf3fc;box-shadow:none}
  .mobile-report-data-card.empty{display:block;padding:18px 9px;color:#687b8d;text-align:center;font-size:10.5px}
  .mobile-report-data-field{box-sizing:border-box;min-width:0;min-height:47px;display:flex;flex-direction:column;gap:3px;padding:6px 7px;border:1px solid #e1e8ef;border-radius:6px;background:#f8fafc;overflow:visible}
  .mobile-report-data-field.wide{grid-column:1/-1}
  .mobile-report-data-field>span{display:block;color:#687c90;font-size:7.5px;font-weight:900;line-height:1.1;text-transform:uppercase;white-space:normal}
  .mobile-report-data-value,.mobile-report-data-value *{box-sizing:border-box;max-width:100%}
  .mobile-report-data-value{min-width:0;color:#233e58;font-size:10.5px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
  .mobile-report-data-value small,.mobile-report-data-value span{white-space:normal!important;overflow-wrap:anywhere!important}
  .mobile-report-data-field.amount .mobile-report-data-value{text-align:right;font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}
  .mobile-report-data-card.summary .mobile-report-data-field{background:#fff;border-color:#c6d8e9}
  .mobile-report-data-card.summary .mobile-report-data-value{color:#173d68!important;font-weight:900;text-shadow:none!important}
  .mobile-report-data-value .report-patient-link{font-size:11px;line-height:1.35}
  .mobile-report-data-value .btn,.mobile-report-data-value button{max-width:100%;min-height:32px!important;white-space:normal!important;font-size:9px!important}

  .patient-visit-report-meta{min-height:0!important;display:grid!important;gap:3px!important;padding:6px!important;font-size:8.5px!important}
  .procedure-group-print-header{display:none!important}
  .procedure-group-report-hint{font-size:8.5px!important;line-height:1.35!important}
  .report-inline-detail{overflow:visible!important}
  .report-inline-head{padding:8px!important}.report-inline-head b{font-size:11px!important}.report-inline-head small{font-size:8.5px!important}
  .report-inline-summary{font-size:8.5px!important;line-height:1.35!important}

  .report-detail-modal .report-detail-table-wrap{display:none!important}
  .report-detail-modal .mobile-report-table-cards{padding:8px;overflow:auto}
  .report-detail-modal{grid-template-rows:auto auto minmax(0,1fr) auto!important}
  .report-detail-modal>.mobile-report-table-cards{overflow:auto!important}
}

@media(max-width:360px){
  .mobile-report-menu-item{min-height:66px}.mobile-report-menu-item>b{font-size:8px}
  .mobile-report-data-card{grid-template-columns:minmax(0,1fr)}
  .mobile-report-data-field.wide{grid-column:1}
}

/* Giữ độ trong suốt V128 ở cuối cascade, sau các thiết lập hình nền công khai. */
@media(max-width:760px){
  .public-tab-stage .staff-login-panel .public-staff-card,
  .public-tab-stage .public-portal-panel .portal-login-card,
  .public-tab-stage .public-warranty-panel .warranty-lookup-card{background:rgba(248,252,255,.84)!important;box-shadow:0 18px 48px rgba(0,54,126,.25)!important;backdrop-filter:blur(10px) saturate(1.12)!important;-webkit-backdrop-filter:blur(10px) saturate(1.12)!important}
}

/* V129: nhóm Hồ sơ bệnh án trong menu mobile dùng đúng lưới ribbon 3 cột. */
.customer-mobile-medical-ribbon{display:none}
@media(max-width:900px){
  .mobile-medical-ribbon-group>div{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
  .mobile-medical-ribbon-group button{min-width:0!important;min-height:78px!important;padding:7px 4px!important}
  .mobile-medical-ribbon-group button span{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:#edf4ff;color:#1768c4;font-size:20px!important;font-weight:900}
  .mobile-medical-ribbon-group button b{max-width:100%;font-size:9.5px!important;line-height:1.2!important;white-space:normal!important;overflow-wrap:anywhere}
  .customer-mobile-medical-ribbon{display:block!important;padding:7px 8px 8px;border-bottom:1px solid #b9d2ec;background:linear-gradient(180deg,#eef6ff,#fff)}
  .customer-mobile-medical-ribbon-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .customer-mobile-medical-command{box-sizing:border-box;min-width:0;min-height:66px;padding:6px 3px;border:1px solid #bdd3ea;border-radius:9px;background:#fff;color:#174f87;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 2px 6px rgba(29,79,128,.07)}
  .customer-mobile-medical-command span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#e9f3ff;color:#1265bd;font-size:18px;font-weight:900}
  .customer-mobile-medical-command b{max-width:100%;font-size:9px;line-height:1.16;text-align:center;white-space:normal;overflow-wrap:anywhere}
  .customer-mobile-medical-command:active{border-color:#1474d4;background:#eaf4ff;transform:translateY(1px)}
}

/* V131: nén phần thông tin và tiền sử bệnh ở màn Khám bệnh trên điện thoại. */
@media(max-width:900px){
  .exam-page-v32 .patient-record-grid{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:4px!important;padding:5px!important;background:#eef3f8!important}
  .exam-page-v32 .patient-record-grid .record-field,.exam-page-v32 .patient-record-grid .record-field[class*="span-"]{box-sizing:border-box;grid-column:span 2!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto minmax(18px,auto)!important;align-content:center!important;gap:2px!important;min-width:0!important;min-height:43px!important;padding:4px 5px!important;border:1px solid #d5dfe9!important;border-radius:7px!important;background:#fff!important}
  .exam-page-v32 .patient-record-grid .record-field label{font-size:8px!important;line-height:1.05!important;color:#68798a!important;white-space:nowrap!important}
  .exam-page-v32 .patient-record-grid .record-field b,.exam-page-v32 .patient-record-grid .record-field input{min-width:0!important;font-size:10.5px!important;line-height:1.22!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .exam-page-v32 .patient-record-grid .patient-field-name{grid-column:span 4!important}
  .exam-page-v32 .patient-record-grid .patient-field-birth{grid-column:span 2!important}
  .exam-page-v32 .patient-record-grid .patient-field-phone{grid-column:span 2!important}
  .exam-page-v32 .patient-record-grid .patient-field-address{grid-column:span 4!important}
  .exam-page-v32 .patient-record-grid .patient-field-reason{grid-column:1/-1!important;grid-template-columns:72px minmax(0,1fr)!important;grid-template-rows:1fr!important;align-items:center!important;min-height:38px!important}
  .exam-page-v32 .patient-record-grid .patient-field-reason input{height:28px!important;padding:3px 5px!important}
  .exam-page-v32 .patient-record-grid .patient-field-money .red-money{font-size:11px!important;text-align:left!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .exam-page-v32 .medical-history-panel .medical-check-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;padding:5px!important;overflow:visible!important}
  .exam-page-v32 .medical-history-panel .medical-check-grid label{box-sizing:border-box;min-width:0!important;min-height:34px!important;margin:0!important;padding:4px 2px!important;border:1px solid #d8e0e8;border-radius:6px;background:#fff;display:flex!important;align-items:flex-start!important;gap:3px!important;font-size:8px!important;line-height:1.15!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .exam-page-v32 .medical-history-panel .medical-check-grid input{flex:0 0 auto;width:12px;height:12px;margin:0!important}
  .exam-page-v32 .medical-history-panel .medical-extra-tools{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;padding:4px 5px!important}
  .exam-page-v32 .medical-history-panel .medical-extra-tools button{box-sizing:border-box;min-width:0!important;min-height:35px!important;padding:3px!important;justify-content:center!important;font-size:8.5px!important;line-height:1.1!important;white-space:normal!important}
  .exam-page-v32 .medical-history-panel .medical-extra-tools svg{width:14px!important;height:14px!important}
  .exam-page-v32 .medical-history-panel .medical-note{padding:3px 6px!important;font-size:8.5px!important;line-height:1.25!important}
}

@media(max-width:360px){
  .exam-page-v32 .patient-record-grid{gap:3px!important;padding:4px!important}
  .exam-page-v32 .patient-record-grid .record-field,.exam-page-v32 .patient-record-grid .record-field[class*="span-"]{padding:3px 4px!important}
  .exam-page-v32 .medical-history-panel .medical-check-grid label{font-size:7.5px!important}
}

/* V132: thẻ khách hàng mobile gom các dữ liệu ngắn lên cùng một hàng. */
@media(max-width:900px){
  .customer-mobile-grid tr.customer-grid-row{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:3px!important;padding:10px 9px 8px!important}
  .customer-mobile-grid tr.customer-grid-row td{box-sizing:border-box;grid-column:span 3;min-width:0!important;min-height:27px!important;padding:3px 4px!important;gap:5px!important;border:1px solid #dbe4ed!important;border-radius:6px!important;background:#f9fbfd!important;font-size:10px!important;overflow-wrap:anywhere}
  .customer-mobile-grid tr.customer-grid-row td:before{flex:0 0 auto;font-size:9.5px!important;line-height:1.1!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-name{order:-30;grid-column:1/-1!important;min-height:34px!important;padding-right:38px!important;border-color:#d8cff5!important;background:#fbfaff!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-code,.customer-mobile-grid tr.customer-grid-row td.customer-card-age,.customer-mobile-grid tr.customer-grid-row td.customer-card-gender{order:-20;grid-column:span 2!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-phone,.customer-mobile-grid tr.customer-grid-row td.customer-card-group{order:-10;grid-column:span 3!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-address{order:0;grid-column:1/-1!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-note{order:10;grid-column:1/-1!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-created,.customer-mobile-grid tr.customer-grid-row td.customer-card-last-visit{order:20;grid-column:span 3!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-visit-count,.customer-mobile-grid tr.customer-grid-row td.customer-card-debt{order:30;grid-column:span 3!important}
  .customer-mobile-grid tr.customer-grid-row td.row-no{border:0!important;border-radius:50%!important;background:#eeeafd!important;padding:0!important}
  .customer-mobile-grid tr.customer-grid-row .customer-name-cell{font-size:14px!important;line-height:1.2!important}
  .customer-mobile-grid tr.customer-grid-row .customer-group-badge{max-width:100%;padding:3px 6px!important;font-size:9px!important;white-space:normal!important}
  .customer-mobile-grid tr.customer-grid-row td.customer-card-debt{border-color:#f0d1d4!important;background:#fffafb!important;font-size:10.5px!important;white-space:nowrap!important}
}

@media(max-width:360px){
  .customer-mobile-grid tr.customer-grid-row{padding-left:8px!important;padding-right:8px!important}
  .customer-mobile-grid tr.customer-grid-row td{font-size:9px!important}
  .customer-mobile-grid tr.customer-grid-row td:before{font-size:9px!important}
}

/* V133: bộ lọc khách hàng ba cột và KPI dashboard mobile thấp gọn. */
@media(max-width:900px){
  .customer-command-zone .desktop-filters{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;margin-top:6px!important}
  .customer-command-zone .desktop-filter{box-sizing:border-box;min-width:0!important;padding:4px!important;border-radius:6px!important}
  .customer-command-zone .desktop-filter label{display:block;margin-bottom:2px;font-size:8px!important;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .customer-command-zone .desktop-filter select{width:100%!important;min-width:0!important;min-height:36px!important;height:36px!important;padding:3px 19px 3px 5px!important;font-size:10.5px!important}
  .customer-command-zone .desktop-filter.wide{grid-column:1/span 2!important}
  .customer-command-zone .desktop-filter.wide input{min-height:38px!important;height:38px!important;padding:4px 29px 4px 7px!important;font-size:12px!important}
  .customer-command-zone #customer-search-btn{grid-column:3!important;min-height:38px!important;height:38px!important;padding:3px!important;font-size:9.5px!important;align-self:end!important}

  .dashboard-page{padding:0 8px 12px!important}
  .mobile-dashboard{gap:8px!important}
  .mobile-dashboard-caption{min-height:29px;font-size:10px!important}
  .mobile-dashboard-caption button{width:29px!important;height:29px!important;border-radius:8px!important;font-size:17px!important}
  .mobile-kpi-grid{gap:6px!important}
  .mobile-kpi-card{box-sizing:border-box;min-height:70px!important;padding:9px 10px!important;border-radius:12px!important;box-shadow:0 3px 9px rgba(34,37,50,.05)!important}
  .mobile-kpi-card span{gap:4px!important;font-size:10.5px!important;line-height:1.15!important}
  .mobile-kpi-card i{width:14px!important;height:14px!important;font-size:8px!important}
  .mobile-kpi-card b{margin-top:8px!important;font-size:14px!important;line-height:1.1!important}
  .mobile-dashboard-card{padding:12px!important;border-radius:14px!important}
  .mobile-card-heading h2{font-size:16px!important}.mobile-card-heading p{margin-top:2px!important;font-size:9px!important}
  .mobile-card-heading>button{min-height:31px!important;padding:0 9px!important;font-size:9.5px!important}
}

@media(max-width:360px){
  .customer-command-zone .desktop-filter select{font-size:9.5px!important;padding-left:3px!important}
  .mobile-kpi-card{min-height:66px!important;padding:8px!important}
  .mobile-kpi-card span{font-size:9.5px!important}.mobile-kpi-card b{font-size:13px!important}
}

/* V135: toàn bộ trang CSKH dùng thẻ dọc, bộ lọc và tab vừa màn hình mobile. */
.crm-priority-tab{display:none!important}
@media(max-width:900px){
  .crm-message-page{box-sizing:border-box;width:100%;padding:0 7px 82px!important;overflow-x:hidden!important}
  .crm-message-page .page-head{gap:5px!important;margin-bottom:6px!important;padding:7px!important;border-radius:9px!important}
  .crm-message-page .page-head h2{font-size:16px!important}.crm-message-page .page-head p{font-size:9px!important;line-height:1.3!important}
  .crm-message-page .page-head .actions{margin:0!important}.crm-message-page .page-head .actions .btn{min-height:34px!important;font-size:9.5px!important}
  .crm-message-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;margin:0 0 7px!important;padding:4px!important;overflow:visible!important;border-radius:9px!important}
  .crm-message-tabs .crm-priority-tab{display:block!important}
  .crm-message-tabs button{box-sizing:border-box;min-width:0!important;min-height:46px!important;padding:5px 2px!important;border-radius:7px!important;font-size:9px!important;line-height:1.15!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .crm-message-tabs:not(.crm-active-priority)~.crm-followup-summary{display:none!important}
  .crm-message-tabs.crm-active-priority~.crm-followup-summary{display:block!important;margin-top:0!important}
  .crm-message-panel,.crm-followup-summary{margin:0!important;padding:8px!important;border-radius:11px!important}
  .crm-followup-summary{margin-top:8px!important}.crm-message-panel h3,.crm-followup-summary h3{font-size:14px!important}
  .crm-panel-head{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:7px!important;margin-bottom:7px!important}
  .crm-panel-head p{font-size:9px!important;line-height:1.35!important}.crm-panel-head>.btn,.crm-panel-head>div:last-child:not(:first-child){width:100%!important}
  .crm-panel-head>div:last-child:not(:first-child){display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important}.crm-panel-head .btn{min-width:0!important;min-height:36px!important;padding:5px!important;font-size:9.5px!important;white-space:normal!important}
  .crm-birthday-filter{display:grid!important;grid-template-columns:1fr 1fr!important;align-items:end!important;gap:5px!important;margin-bottom:6px!important}
  .crm-birthday-filter label{min-width:0!important;font-size:8.5px!important}.crm-birthday-filter input{box-sizing:border-box;width:100%!important;min-width:0!important;height:37px!important;padding:4px!important;font-size:11px!important}
  .crm-birthday-filter .btn{width:100%!important;min-width:0!important;min-height:36px!important;padding:5px 3px!important;font-size:9px!important;white-space:normal!important}
  .crm-birthday-filter #crm-birthday-compose{grid-column:1/-1!important}
  .crm-advertising-filter{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important;padding:6px!important;margin-bottom:6px!important}
  .crm-advertising-filter label{min-width:0!important;font-size:8.5px!important}.crm-advertising-filter input,.crm-advertising-filter select{min-width:0!important;height:37px!important;padding:4px 5px!important;font-size:10.5px!important}
  .crm-advertising-filter .crm-ad-search{grid-column:1/-1!important;min-width:0!important}.crm-advertising-filter .btn{width:100%!important;min-height:36px!important;padding:4px!important;font-size:9.5px!important}
  .crm-result-note{margin:5px 1px!important;padding:5px 7px;border-radius:7px;background:#eef5fc;font-size:9px!important;line-height:1.3!important}
  .crm-table-wrap{max-width:100%!important;overflow:visible!important;border:0!important}
  .crm-data-table,.crm-message-panel .table-wrap table,.crm-followup-summary table{display:block!important;width:100%!important;min-width:0!important;border:0!important;background:transparent!important}
  .crm-data-table thead,.crm-message-panel .table-wrap table thead,.crm-followup-summary table thead{display:none!important}
  .crm-data-table tbody,.crm-message-panel .table-wrap table tbody,.crm-followup-summary table tbody{display:grid!important;gap:7px!important;width:100%!important}
  .crm-data-table tbody>tr,.crm-message-panel .table-wrap table tbody>tr,.crm-followup-summary table tbody>tr{box-sizing:border-box;display:grid!important;grid-template-columns:1fr 1fr!important;gap:4px!important;width:100%!important;padding:7px!important;border:1px solid #d5e0ea!important;border-radius:10px!important;background:#fff!important;box-shadow:0 2px 7px rgba(27,64,101,.06)}
  .crm-data-table td,.crm-message-panel .table-wrap table td,.crm-followup-summary table td{box-sizing:border-box;min-width:0!important;min-height:31px!important;padding:5px!important;border:1px solid #e0e7ee!important;border-radius:6px!important;background:#f9fbfd!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;font-size:10px!important;line-height:1.25!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:right!important}
  .crm-data-table td:before{content:attr(data-label);flex:0 0 auto;color:#607386;font-size:8.5px;font-weight:900;text-align:left}
  .crm-data-table td[data-mobile-wide="true"]{grid-column:1/-1!important;text-align:left!important}
  .crm-data-table td[data-mobile-wide="true"]:before{align-self:flex-start}
  .crm-data-table input[type="checkbox"],.crm-data-table input[type="radio"],.crm-message-panel table input[type="checkbox"]{width:19px!important;height:19px!important;margin:0!important}
  .crm-data-table tr.empty,.crm-data-table td.empty,.crm-message-panel table td.empty{grid-column:1/-1!important;display:block!important;padding:18px!important;text-align:center!important}
  .crm-holiday-table tbody>tr{grid-template-columns:repeat(4,minmax(0,1fr))!important}.crm-holiday-table td{grid-column:span 2}.crm-holiday-table td:nth-child(1),.crm-holiday-table td:nth-child(4){grid-column:span 1}.crm-holiday-table td:nth-child(3),.crm-holiday-table td:nth-child(5){grid-column:1/-1!important}
  .crm-holiday-table tr.holiday-today{border-color:#87d4a6!important;background:#f4fff8!important}.crm-holiday-table tr.holiday-upcoming{border-color:#a9cce9!important;background:#f5faff!important}.crm-holiday-table tr.holiday-past{opacity:.78}
  .crm-birthday-table td:nth-child(2){grid-column:1/-1!important}.crm-birthday-table td:nth-child(2):before{align-self:flex-start}
  .crm-message-panel .table-wrap table:not(.crm-data-table) td:before,.crm-followup-summary table td:before{flex:0 0 auto;color:#607386;font-size:8.5px;font-weight:900;text-align:left}
  .crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(1):before{content:"STT"}.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(2):before{content:"Khách hàng"}.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(3):before{content:"Điện thoại"}.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(4):before{content:"Phân loại"}.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(5):before{content:"Công nợ"}.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(6):before{content:"Trả góp"}.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(7):before{content:"Lịch hẹn"}.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(8):before{content:"Chọn"}
  .crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(2),.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(6),.crm-message-panel .table-wrap table:not(.crm-data-table) td:nth-child(7){grid-column:1/-1!important;text-align:left!important}
  .crm-followup-summary table td:nth-child(1),.crm-followup-summary table td:nth-child(4),.crm-followup-summary table td:nth-child(5){grid-column:1/-1!important}
  .crm-followup-summary table td:nth-child(1):before{content:"Khách hàng"}.crm-followup-summary table td:nth-child(2):before{content:"Khám gần nhất"}.crm-followup-summary table td:nth-child(3):before{content:"Công nợ"}.crm-followup-summary table td:nth-child(4):before{content:"Ưu tiên"}.crm-followup-summary table td:nth-child(5):before{content:"Liên hệ"}
  .crm-followup-summary table td:nth-child(5) .btn{width:100%!important;min-height:33px!important;display:flex!important;align-items:center!important;justify-content:center!important}
}

@media(max-width:360px){
  .crm-message-tabs button{font-size:8px!important}.crm-data-table td,.crm-message-panel .table-wrap table td,.crm-followup-summary table td{font-size:9px!important;padding:4px!important}
}

/* V137: bộ lọc lịch hẹn mobile gọn thành lưới 6 phần. Hai ngày và hai điều
   kiện lọc dùng nửa hàng; sáu thao tác dùng lưới ba cột để bớt chiều cao. */
@media(max-width:900px){
  .appointments-report-toolbar{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important;padding:7px!important}
  .appointments-report-toolbar #appointment-from,.appointments-report-toolbar #appointment-to,.appointments-report-toolbar #appointment-search,.appointments-report-toolbar #appointment-status-filter{grid-column:span 3!important;height:38px!important;min-height:38px!important;padding:3px 6px!important;border-radius:8px!important;font-size:16px!important}
  .appointments-report-toolbar .appointment-report-btn{grid-column:span 2!important;min-width:0!important;width:100%!important;height:36px!important;min-height:36px!important;padding:3px 4px!important;gap:3px!important;border-radius:8px!important;font-size:9.5px!important;line-height:1.1!important;white-space:nowrap!important}
  .appointments-report-toolbar .appointment-report-btn svg{width:14px!important;height:14px!important;flex:0 0 14px!important}
}
@media(max-width:360px){
  .appointments-report-toolbar{gap:4px!important;padding:6px!important}
  .appointments-report-toolbar .appointment-report-btn{font-size:8.5px!important;padding:2px!important}
}

/* V138: tên khách hàng trong cảnh báo tái khám mở trực tiếp hồ sơ điều trị. */
.recall-customer-link{appearance:none;padding:0;border:0;background:transparent;color:#005eb8;font:inherit;font-weight:900;text-align:left;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}
.recall-customer-link:hover{color:#003f86;text-decoration-style:solid}.recall-customer-link:focus-visible{outline:2px solid #2185e5;outline-offset:3px;border-radius:3px}

/* V129: trình xem báo cáo ảnh tự co A4, có pinch zoom và thanh công cụ gọn. */
.v129-report-viewer{grid-template-rows:auto minmax(0,1fr)!important}
.v129-report-toolbar{display:grid!important;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:8px;transition:max-height .2s ease,opacity .18s ease,transform .2s ease,padding .2s ease;max-height:170px;overflow:hidden}
.v129-report-title{min-width:0}.v129-report-title b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v129-report-title .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v129-report-toolbar .v61-report-actions{display:flex;align-items:center;gap:5px;min-width:0}.v129-report-toolbar .v61-report-actions .btn{min-width:0;white-space:nowrap}
.v129-report-zoom{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid #b7c8d9;border-radius:7px;background:#fff;white-space:nowrap}
.v129-report-zoom button{height:29px;min-width:29px;padding:0 7px;border:1px solid #c3d1df;border-radius:5px;background:#f5f9fd;color:#17568d;font-weight:900;cursor:pointer}.v129-report-zoom output{min-width:43px;text-align:center;color:#294b6d;font-size:11px;font-weight:900}
.v129-report-viewer .media53-report-scroll{position:relative;min-height:0;overflow:auto!important;overscroll-behavior:contain;padding:8px!important;background:#dfe7ee;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
.v129-report-stage{position:relative;margin:0 auto;min-width:1px;min-height:1px}
.v129-report-canvas{position:absolute;left:0;top:0;width:794px;transform-origin:top left;will-change:transform}
.v129-report-canvas>.media53-report-page,.v129-report-canvas>.v61-protocol-report{box-sizing:border-box!important;width:794px!important;min-width:794px!important;max-width:794px!important;margin:0 0 14px!important}

@media(max-width:760px){
  #media53-report-backdrop{padding:0!important;align-items:stretch!important}
  .v129-report-viewer{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border:0!important}
  .v129-report-toolbar{grid-template-columns:1fr!important;grid-template-rows:auto auto auto!important;gap:5px!important;padding:6px!important;align-items:stretch!important;background:rgba(247,251,255,.98)!important}
  .v129-report-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:25px}.v129-report-title b{font-size:11px!important}.v129-report-title .small{font-size:8.5px!important;text-align:right!important;max-width:45%}
  .v129-report-toolbar .v61-report-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;width:100%!important}
  .v129-report-toolbar .v61-report-actions .btn{box-sizing:border-box!important;width:100%!important;min-height:31px!important;height:31px!important;padding:3px 2px!important;font-size:8.5px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;border-radius:5px!important}
  .v129-report-zoom{justify-content:center!important;padding:2px!important}.v129-report-zoom button{height:27px!important;min-width:31px!important;font-size:11px!important}.v129-report-zoom #media53-zoom-fit{min-width:76px!important}.v129-report-zoom output{font-size:10px!important}
  .v129-report-viewer.toolbar-hidden{grid-template-rows:0 minmax(0,1fr)!important}
  .v129-report-viewer.toolbar-hidden>.v129-report-toolbar{max-height:0!important;min-height:0!important;padding-top:0!important;padding-bottom:0!important;border:0!important;opacity:0!important;transform:translateY(-100%)!important;pointer-events:none!important}
  .v129-report-viewer .media53-report-scroll{padding:6px!important;scrollbar-width:thin}
}

/* V139: thư viện mẫu phác đồ dây cung dùng chung. */
.v61-template-toolbar{display:grid;grid-template-columns:minmax(250px,1.4fr) repeat(4,max-content);align-items:end;gap:6px;margin-bottom:8px;padding:9px;border:1px solid #8cb9df;border-radius:7px;background:linear-gradient(90deg,#eef7ff,#f8fbff)}
.v61-template-toolbar label{display:grid;gap:4px;min-width:0;color:#164e82;font-size:11px;font-weight:900}.v61-template-toolbar select{box-sizing:border-box;width:100%;min-height:35px;border:1px solid #8faac2;border-radius:5px;background:#fff;padding:5px 8px;color:#17324d;font-weight:700}
.v61-template-toolbar .btn{min-height:35px;padding:6px 10px;white-space:nowrap}.v61-template-toolbar>.small{grid-column:1/-1;color:#526b82!important;line-height:1.35}
@media(max-width:900px){
  .v61-template-toolbar{grid-template-columns:1fr 1fr!important;gap:5px!important;padding:7px!important}
  .v61-template-toolbar label,.v61-template-toolbar>.small{grid-column:1/-1!important}.v61-template-toolbar .btn{box-sizing:border-box;width:100%!important;min-width:0!important;min-height:34px!important;padding:4px!important;font-size:9px!important;white-space:normal!important}
}

/* V140: thư viện mẫu phác đồ đầy đủ I + II + III và hộp thoại trong vùng làm việc. */
.v61-template-panel{margin:10px 0;padding:11px;border:1px solid #73a9d7;border-radius:9px;background:linear-gradient(135deg,#eef7ff,#fff);box-shadow:0 2px 8px rgba(24,83,133,.12)}
.v61-template-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.v61-template-panel-head>div{min-width:0}.v61-template-panel-head b{display:block;color:#174f86;font-size:14px}.v61-template-panel-head span{display:block;margin-top:3px;color:#536d83;font-size:11px;line-height:1.35}.v61-template-panel-head .btn{flex:0 0 auto;min-height:34px}
.v61-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.v61-template-card{box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:7px;align-items:start;min-width:0;min-height:66px;padding:9px;border:1px solid #b9cad9;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.v61-template-card:hover{border-color:#4b96d5;box-shadow:0 2px 7px rgba(30,105,166,.15)}.v61-template-card.selected{border:2px solid #147ce5;padding:8px;background:#eaf5ff;box-shadow:0 0 0 2px rgba(20,124,229,.12)}.v61-template-card input{grid-row:1/3;margin:2px 0 0}.v61-template-card span{min-width:0;color:#164d7d;font-weight:900;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.v61-template-card small{min-width:0;margin-top:5px;color:#64798b;font-size:10px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.v61-template-empty{grid-column:1/-1;padding:13px;border:1px dashed #a9bdce;border-radius:7px;color:#60768a;text-align:center;background:#fff}.v61-template-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.v61-template-panel>.small{display:block;margin-top:7px;line-height:1.35}
.v61-work-dialog-layer{position:fixed;inset:0;z-index:100050;display:grid;place-items:center;padding:18px;background:rgba(10,31,50,.55);backdrop-filter:blur(1px)}.v61-work-confirm{box-sizing:border-box;width:min(480px,94vw);padding:18px;border:1px solid #86a9c7;border-radius:12px;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.28)}.v61-work-dialog-title{color:#164e82;font-size:17px;font-weight:900}.v61-work-dialog-message{margin-top:10px;color:#344d63;font-size:13px;line-height:1.55;white-space:pre-line}.v61-work-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.v61-work-notice{position:fixed;left:50%;top:50%;z-index:100100;box-sizing:border-box;min-width:280px;max-width:min(520px,90vw);padding:15px 18px;border:1px solid #54a777;border-radius:11px;background:#effff5;color:#126438;font-size:13px;font-weight:800;line-height:1.4;text-align:center;box-shadow:0 16px 50px rgba(0,0,0,.25);transform:translate(-50%,-50%);animation:v61NoticeIn .18s ease-out}.v61-work-notice.is-error{border-color:#dd6b6b;background:#fff1f1;color:#a51e1e}@keyframes v61NoticeIn{from{opacity:0;transform:translate(-50%,-44%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.v61-template-editor-layer{padding:12px}.v61-template-editor{box-sizing:border-box;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;width:min(1180px,96vw);max-height:94vh;border:1px solid #80a8ca;border-radius:10px;background:#fff;box-shadow:0 20px 70px rgba(0,0,0,.34);overflow:hidden}.v61-template-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #c5d6e5;background:linear-gradient(90deg,#edf7ff,#fff)}.v61-template-editor-head>div{min-width:0}.v61-template-editor-head b{display:block;color:#164e82;font-size:15px}.v61-template-editor-head span{display:block;margin-top:3px;color:#607589;font-size:10.5px;line-height:1.3}.v61-template-editor-content{min-height:0;padding:12px;overflow:auto}.v61-template-name{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:10px}.v61-template-name label{color:#244b6f;font-weight:900}.v61-template-name input{box-sizing:border-box;width:100%;min-height:37px;padding:6px 9px;border:1px solid #93adc3;border-radius:6px;font:inherit}.v61-template-editor-section{margin-top:9px;border:1px solid #a9bfd2;border-radius:7px;overflow:hidden}.v61-template-editor-section-title{padding:7px 10px;background:#2c79b7;color:#fff;font-size:12px;font-weight:900}.v61-template-editor-section>textarea{box-sizing:border-box;display:block;width:100%;min-height:78px;padding:9px;border:0;resize:vertical;font:inherit;line-height:1.45}.v61-template-editor-scroll{max-width:100%;overflow:auto;background:#fff}.v61-template-editor-table{min-width:820px}.v61-template-editor-error{min-height:18px;padding:0 14px;color:#b52222;font-size:11px;font-weight:800}.v61-template-editor-actions{display:flex;justify-content:flex-end;gap:7px;padding:10px 14px;border-top:1px solid #d4e0ea;background:#f7fafc}
@media(max-width:760px){
  .v61-template-panel{margin:7px 0;padding:7px}.v61-template-panel-head{align-items:stretch;gap:6px}.v61-template-panel-head b{font-size:11px}.v61-template-panel-head span{font-size:8.5px}.v61-template-panel-head .btn{min-width:105px;padding:4px;font-size:8.5px;white-space:normal}
  .v61-template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.v61-template-card{min-height:61px;padding:5px;column-gap:4px;border-radius:6px}.v61-template-card.selected{padding:4px}.v61-template-card input{width:12px;height:12px}.v61-template-card span{font-size:8.5px;line-height:1.18}.v61-template-card small{font-size:7px;line-height:1.15}.v61-template-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.v61-template-actions .btn{box-sizing:border-box;width:100%;min-width:0;min-height:32px;padding:3px;font-size:8px;white-space:normal}.v61-template-panel>.small{font-size:8px}
  .v61-work-dialog-layer{padding:5px}.v61-template-editor{width:100%;max-height:98dvh;border-radius:7px}.v61-template-editor-head{padding:8px}.v61-template-editor-head b{font-size:11px}.v61-template-editor-head span{font-size:8px}.v61-template-editor-content{padding:7px}.v61-template-name{grid-template-columns:74px minmax(0,1fr);gap:4px;margin-bottom:6px}.v61-template-name label{font-size:9px}.v61-template-name input{min-height:32px;padding:4px 6px;font-size:10px}.v61-template-editor-section{margin-top:6px}.v61-template-editor-section-title{padding:5px 7px;font-size:9px}.v61-template-editor-section>textarea{min-height:60px;padding:6px;font-size:10px}.v61-template-editor-actions{padding:7px}.v61-template-editor-error{padding:0 8px;font-size:9px}
}

/* V146: chấm công ngay tại màn hình đăng nhập và báo cáo tháng 31 ngày. */
.public-attendance-open{margin-right:auto!important;border:1px solid #ef5d62!important;background:#fff7f7!important;color:#d61f2a!important;font-weight:900!important}
.public-attendance-open:hover,.public-attendance-open:focus{background:#ffe9e9!important;color:#a90f18!important}
.public-attendance-backdrop{z-index:100080;padding:16px;background:rgba(7,32,57,.6);backdrop-filter:blur(2px)}
.public-attendance-mode,.public-attendance-modal,.public-attendance-result{box-sizing:border-box;width:min(860px,96vw);max-height:92vh;border:1px solid #7ea9cf;border-radius:12px;background:#fff;box-shadow:0 24px 70px rgba(3,31,59,.38);overflow:hidden}
.public-attendance-mode{width:min(620px,96vw)}
.public-attendance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #bdd2e4;background:linear-gradient(90deg,#e8f5ff,#fff)}
.public-attendance-head>div{min-width:0}.public-attendance-head b{display:block;color:#14548e;font-size:16px}.public-attendance-head span{display:block;margin-top:4px;color:#5a7185;font-size:11px;line-height:1.35}
.public-attendance-mode-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:26px}
.public-attendance-mode-actions button{display:grid;place-items:center;gap:6px;min-height:150px;border:2px solid;border-radius:12px;background:#fff;font:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.public-attendance-mode-actions button:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(18,68,110,.16)}.public-attendance-mode-actions button span{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;font-size:24px;font-weight:900}.public-attendance-mode-actions button b{font-size:20px}.public-attendance-mode-actions button small{font-size:11px}
.public-attendance-mode-actions .check-in{border-color:#5fbd7b;color:#08752d;background:#f2fff6}.public-attendance-mode-actions .check-in span{background:#c9f1d4}.public-attendance-mode-actions .check-out{border-color:#ed7b82;color:#bd1922;background:#fff5f5}.public-attendance-mode-actions .check-out span{background:#ffd7d9}
.public-attendance-loading,.public-attendance-empty{padding:34px;color:#607488;text-align:center}
.public-attendance-picker{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;min-height:0;max-height:63vh;padding:12px;overflow:hidden;background:#f4f8fb}.public-attendance-column{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;border:1px solid #b5cbe0;border-radius:8px;background:#fff;overflow:hidden}.public-attendance-column h4{margin:0;padding:9px 11px;border-bottom:1px solid #bdd0e1;background:#2368a7;color:#fff;font-size:12px}.public-attendance-column>div{min-height:0;padding:7px;overflow:auto}
.public-attendance-choice{box-sizing:border-box;display:grid;gap:3px;width:100%;margin-bottom:5px;padding:9px 10px;border:1px solid #c2d2df;border-radius:6px;background:#fff;color:#25445f;text-align:left;cursor:pointer}.public-attendance-choice:hover{border-color:#4b98d6;background:#f2f9ff}.public-attendance-choice.selected{border-color:#0879df;background:#e6f3ff;box-shadow:inset 4px 0 #0879df}.public-attendance-choice b{font-size:12px}.public-attendance-choice small{color:#6c7e8d;font-size:10px}.public-attendance-choice.employee.selected{border-color:#2ba456;background:#edfff3;box-shadow:inset 4px 0 #2ba456}
.public-attendance-confirm-bar{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid #c7d6e2;background:#fff}.public-attendance-confirm-bar .btn{min-height:38px}.public-attendance-result{display:grid;place-items:center;gap:8px;width:min(480px,94vw);padding:28px;text-align:center}.public-attendance-result-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#27aa5b;color:#fff;font-size:34px;font-weight:900}.public-attendance-result h3{margin:4px 0;color:#087637}.public-attendance-result span{color:#60778b}.public-attendance-result strong{color:#144f83;font-size:18px}.public-attendance-result .btn{margin-top:8px;min-width:140px}

.attendance-report-page{min-width:0}.attendance-report-settings{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr)) max-content;align-items:end;gap:7px;padding:9px;border:1px solid #9fbed8;border-radius:7px;background:#f7fbff}.attendance-report-settings-title{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;color:#174e80}.attendance-report-settings-title b{font-size:13px}.attendance-report-settings-title span{color:#60768a;font-size:11px}.attendance-report-settings label,.attendance-report-toolbar label{display:grid;gap:3px;min-width:0;color:#31516c;font-size:10px;font-weight:900}.attendance-report-settings input,.attendance-report-toolbar input,.attendance-report-toolbar select{box-sizing:border-box;width:100%;height:34px;min-width:0;padding:4px 7px;border:1px solid #9bb5ca;border-radius:5px;background:#fff;color:#19364e;font:inherit}.attendance-report-workdays{grid-column:1/7;display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;padding:0 8px;border:1px solid #c9d7e2;border-radius:5px;background:#fff;color:#34546e;font-size:10px}.attendance-report-workdays label{display:flex;grid-auto-flow:column;align-items:center;gap:3px}.attendance-report-workdays input{width:auto;height:auto}
.attendance-report-toolbar{display:grid;grid-template-columns:170px minmax(220px,360px) max-content max-content;align-items:end;gap:7px;margin-top:8px;padding:8px;border:1px solid #b5c9d9;border-radius:7px;background:#edf5fc}.attendance-report-toolbar .btn{min-height:34px}.attendance-report-legend{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0}.attendance-report-legend span{padding:4px 8px;border:1px solid;border-radius:999px;font-size:9px;font-weight:900}.attendance-report-legend .present{border-color:#7fc89b;background:#edfff3;color:#13763a}.attendance-report-legend .warning{border-color:#efaa78;background:#fff4ea;color:#a64b08}.attendance-report-legend .overtime{border-color:#73aee1;background:#edf7ff;color:#175d9c}.attendance-report-legend .absent{border-color:#e28d94;background:#fff0f1;color:#a91e29}.attendance-report-legend .off{border-color:#bbc5cd;background:#f2f4f6;color:#61707c}
.attendance-monthly-wrap{position:relative;max-width:100%;max-height:calc(100vh - 350px);min-height:260px;overflow:auto;border:1px solid #7898b4;border-radius:6px;background:#fff}.attendance-monthly-table{width:max-content;min-width:4180px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:10px}.attendance-monthly-table th,.attendance-monthly-table td{box-sizing:border-box;width:112px;min-width:112px;height:50px;padding:4px;border-right:1px solid #9fb0bf;border-bottom:1px solid #9fb0bf;text-align:center;vertical-align:middle}.attendance-monthly-table thead th{position:sticky;top:0;z-index:4;height:44px;background:#28569d;color:#fff}.attendance-monthly-table thead th b,.attendance-monthly-table thead th small{display:block}.attendance-monthly-table thead th small{margin-top:2px;font-size:8px}.attendance-monthly-table .attendance-sticky-index{position:sticky;left:0;z-index:5;width:52px;min-width:52px;background:#eef4fa;color:#173f65;font-weight:900}.attendance-monthly-table thead .attendance-sticky-index{z-index:7;background:#234c8b;color:#fff}.attendance-monthly-table .attendance-sticky-name{position:sticky;left:52px;z-index:5;width:210px;min-width:210px;background:#fff;text-align:left;box-shadow:3px 0 4px rgba(23,54,79,.12)}.attendance-monthly-table thead .attendance-sticky-name{z-index:7;background:#234c8b;color:#fff;text-align:center}.attendance-sticky-name b,.attendance-sticky-name span,.attendance-sticky-name small{display:block}.attendance-sticky-name span{margin-top:2px;font-weight:900}.attendance-sticky-name small{margin-top:2px;color:#6a7e90;font-size:8px}.attendance-monthly-table thead .attendance-sticky-name small{color:#fff}.attendance-day-cell b,.attendance-day-cell small,.attendance-day-cell span{display:block;line-height:1.35}.attendance-day-cell small{margin-top:3px;font-size:8px;font-weight:800}.attendance-day-cell.present{background:#effcf3;color:#126c34}.attendance-day-cell.warning{background:#fff1e6;color:#a54100}.attendance-day-cell.overtime{background:#eaf6ff;color:#0d5b9f}.attendance-day-cell.absent{background:#ffebed;color:#a41d27;font-weight:900}.attendance-day-cell.off{background:#f0f2f4;color:#6d7983}.attendance-day-cell.unavailable,.attendance-monthly-table th.unavailable{background:#e6eaed;color:#89949c}.attendance-monthly-table th.off{background:#566f8f}.attendance-total{font-size:12px;font-weight:900}.attendance-total.late{color:#bd4f00;background:#fff4eb}.attendance-total.early{color:#b51f2a;background:#fff0f1}.attendance-total.overtime{color:#0c6caf;background:#edf7ff}
.employee-kpi-filter{display:grid;grid-template-columns:170px 170px minmax(220px,1fr) max-content minmax(260px,1.3fr);align-items:end;gap:8px}.employee-kpi-filter label{display:grid;gap:4px;color:#31516c;font-size:11px;font-weight:900}.employee-kpi-filter select,.employee-kpi-filter input{box-sizing:border-box;width:100%;height:35px;border:1px solid #9bb5ca;border-radius:5px;padding:5px 8px;background:#fff;color:#173650;font:inherit}.employee-kpi-filter>div{display:grid;gap:4px;color:#1b4e7f}.employee-kpi-filter small{color:#657d91;font-size:10px;line-height:1.35}.employee-kpi-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:11px 0}.employee-kpi-summary article{display:grid;gap:7px;min-height:72px;padding:11px;border:1px solid #b9d0e5;border-radius:8px;background:linear-gradient(135deg,#f8fcff,#fff)}.employee-kpi-summary span{color:#52718a;font-size:10px;font-weight:900}.employee-kpi-summary b{color:#075eaa;font-size:18px;overflow-wrap:anywhere}.employee-kpi-title p{margin:4px 0 10px;color:#5f788d;font-size:11px}.employee-kpi-table td small{display:block;margin-top:3px;color:#6e8495;font-size:9px}.employee-kpi-progress{display:grid;grid-template-columns:minmax(65px,1fr) auto;align-items:center;gap:6px}.employee-kpi-progress>span,.employee-kpi-revenue-bar{height:8px;border-radius:999px;background:#e6eff6;overflow:hidden}.employee-kpi-progress>span{display:block}.employee-kpi-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1f9c62,#72cf9a)}.employee-kpi-progress b{font-size:11px;color:#157443}.employee-kpi-revenue-bar{display:block;margin-top:5px}.employee-kpi-revenue-bar i{display:block;height:100%;border-radius:inherit;background:#2d75c7}
.attendance-payroll-card{margin-top:12px}.attendance-payroll-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.attendance-payroll-head p{max-width:780px;margin:4px 0 9px;color:#5f788d;font-size:11px;line-height:1.4}.attendance-payroll-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:9px 0}.attendance-payroll-summary span{display:grid;gap:4px;padding:8px;border:1px solid #c4d7e6;border-radius:6px;background:#f7fbff;color:#5b7489;font-size:9px}.attendance-payroll-summary b{color:#145a96;font-size:14px;overflow-wrap:anywhere}.attendance-payroll-table td small{display:block;margin-top:3px;color:#6c8294;font-size:9px}
@media(max-width:900px){
  .public-attendance-backdrop{padding:5px}.public-attendance-mode,.public-attendance-modal{width:100%;max-height:98dvh}.public-attendance-head{padding:10px}.public-attendance-head b{font-size:13px}.public-attendance-mode-actions{gap:8px;padding:12px}.public-attendance-mode-actions button{min-height:120px}.public-attendance-picker{grid-template-columns:1fr 1fr;max-height:72dvh;padding:6px}.public-attendance-choice{padding:7px}.public-attendance-choice b{font-size:10px}.public-attendance-choice small{font-size:8px}.public-attendance-confirm-bar .btn{flex:1;min-width:0}
  .attendance-report-settings{grid-template-columns:1fr 1fr}.attendance-report-settings-title,.attendance-report-workdays{grid-column:1/-1}.attendance-report-settings>button{grid-column:1/-1;width:100%}.attendance-report-toolbar{grid-template-columns:1fr 1fr}.attendance-report-toolbar .btn{width:100%}.attendance-monthly-wrap{max-height:62dvh}.attendance-monthly-table{font-size:9px}.attendance-monthly-table .attendance-sticky-name{width:150px;min-width:150px}.employee-kpi-filter{grid-template-columns:1fr 1fr}.employee-kpi-filter>div,.employee-kpi-filter>button{grid-column:1/-1}.employee-kpi-summary{grid-template-columns:1fr 1fr}.employee-kpi-summary article:last-child{grid-column:1/-1}
}

/* V147: mỗi ngày là tiêu đề gộp trên hai cột IN và OUT. */
.attendance-monthly-table{min-width:4560px}
.attendance-monthly-table thead tr:first-child>th{height:34px}
.attendance-monthly-table thead th[rowspan="2"]{height:60px}
.attendance-monthly-table .attendance-day-group{width:128px;min-width:128px;padding:3px}
.attendance-monthly-table .attendance-day-subhead,.attendance-monthly-table .attendance-day-cell{width:64px;min-width:64px}
.attendance-monthly-table .attendance-day-subhead{position:sticky;top:34px;z-index:4;height:26px;padding:2px;background:#3470b8;color:#fff;font-size:8px;letter-spacing:.3px}
.attendance-monthly-table .attendance-in-cell{border-right-color:#cbd5de}.attendance-monthly-table .attendance-out-cell{border-right:2px solid #7f96aa}
.attendance-monthly-table .attendance-day-cell b{font-size:9px;white-space:nowrap}.attendance-monthly-table .attendance-day-cell small{white-space:normal}
@media(max-width:900px){
  .attendance-monthly-table{min-width:4120px}.attendance-monthly-table .attendance-day-group{width:116px;min-width:116px}.attendance-monthly-table .attendance-day-subhead,.attendance-monthly-table .attendance-day-cell{width:58px;min-width:58px}.attendance-monthly-table .attendance-day-cell b{font-size:8px}
}

/* V148: xác thực chấm công, nhiều lượt trong ngày, lý do và lời chúc. */
.public-attendance-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}
.public-attendance-modal .public-attendance-picker{max-height:none}
.public-attendance-verification{display:grid;grid-template-columns:minmax(230px,1fr) minmax(320px,1.5fr);gap:9px;padding:10px 12px;border-top:1px solid #c7d6e2;background:#f8fbfe}.public-attendance-verification>label,.public-attendance-reason label{display:grid;gap:4px;color:#284d6c;font-size:11px;font-weight:900}.public-attendance-verification input,.public-attendance-verification textarea{box-sizing:border-box;width:100%;min-height:36px;padding:6px 9px;border:1px solid #91adc5;border-radius:6px;background:#fff;color:#173650;font:inherit}.public-attendance-config-error{align-self:end;padding:9px;border:1px solid #e8a6aa;border-radius:6px;background:#fff1f2;color:#ab1e28;font-size:11px;font-weight:800}.public-attendance-reason{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr);align-items:end;gap:8px}.public-attendance-reason[hidden]{display:none}.public-attendance-reason>b{align-self:center;padding:7px 9px;border-left:4px solid #e78a16;background:#fff4e5;color:#994d00;font-size:11px;line-height:1.35}.public-attendance-reason textarea{resize:vertical}
.public-attendance-result-warning{padding:6px 10px;border-radius:999px;background:#fff0dc;color:#9b5100;font-size:10px;font-weight:900}.public-attendance-greeting{max-width:380px;margin:7px 0;padding:11px 14px;border:1px solid #8fd1a6;border-radius:9px;background:#effff4;color:#126b35;font-size:14px;font-weight:900;line-height:1.4}
.attendance-security-settings{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.8fr) minmax(240px,1.1fr) minmax(240px,1.1fr);gap:8px;padding:9px;border:1px solid #99bddb;border-radius:6px;background:#eef7ff}.attendance-security-settings label{font-size:10px}.attendance-greeting-builder{grid-column:1/-1;border:1px solid #8fb6d8;border-radius:7px;background:#f7fbff;overflow:hidden}.attendance-greeting-builder summary{padding:10px 12px;background:#2e7fbb;color:#fff;font-size:11px;font-weight:900;cursor:pointer}.attendance-placeholder-help{display:flex;gap:10px;align-items:center;padding:9px 11px;border-bottom:1px solid #c9dce9;background:#edf7ff;color:#31546e;font-size:10px}.attendance-placeholder-help span{line-height:1.45}.attendance-placeholder-help code{padding:1px 4px;border:1px solid #b9d1e2;border-radius:4px;background:#fff;color:#075da1}.attendance-greeting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px}.attendance-greeting-grid label{display:grid;gap:5px;color:#214f73;font-size:10px;font-weight:900}.attendance-greeting-grid textarea{box-sizing:border-box;width:100%;min-height:92px;padding:8px;border:1px solid #9db9d0;border-radius:5px;background:#fff;color:#173650;font:inherit;line-height:1.4;resize:vertical}.attendance-greeting-grid .attendance-holiday-greetings{grid-column:1/-1}.attendance-greeting-grid .attendance-holiday-greetings textarea{min-height:155px}.attendance-greeting-grid small{color:#627b8f;font-weight:500;line-height:1.4}.public-attendance-greeting{white-space:pre-line}.attendance-session-time,.attendance-cell-session{display:grid;gap:2px;margin-bottom:4px;padding-bottom:4px;border-bottom:1px dashed #ccd7e0}.attendance-session-time:last-child,.attendance-cell-session:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.attendance-session-time b{font-size:9px;white-space:nowrap}.attendance-session-time small,.attendance-cell-session small{display:block;color:#9d4a00;font-size:8px;line-height:1.25;white-space:normal}.attendance-session-count{display:block;margin-top:3px;color:#5f7488}.attendance-day-cell .attendance-cell-session b{font-size:8px}
@media(max-width:900px){
  .public-attendance-verification{grid-template-columns:1fr;padding:7px}.public-attendance-reason{grid-template-columns:1fr}.public-attendance-verification>label,.public-attendance-reason label{font-size:9px}.attendance-security-settings{grid-template-columns:1fr}.attendance-security-settings label{font-size:9px}.attendance-greeting-grid{grid-template-columns:1fr;padding:7px}.attendance-greeting-grid .attendance-holiday-greetings{grid-column:auto}.attendance-placeholder-help{align-items:flex-start;flex-direction:column}
}

/* V149: đa chi nhánh nhân sự và hiệu chỉnh chấm công có kiểm soát. */
.attendance-report-legend .attendance-correction-hint{border-color:#a7bdd0;background:#f7fbff;color:#45647d;font-weight:700}.attendance-correction-cell{display:block;width:100%;min-height:40px;padding:2px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.attendance-correction-cell:hover{outline:2px solid #1e7dde;outline-offset:-2px;background:rgba(255,255,255,.5)}.attendance-adjust-modal{width:min(720px,96vw);background:#fff;border:1px solid #8caecc;border-radius:9px;box-shadow:0 22px 60px rgba(9,42,71,.28);overflow:hidden}.attendance-adjust-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.attendance-adjust-form label{display:grid;gap:5px;color:#294e6d;font-size:11px;font-weight:900}.attendance-adjust-form input,.attendance-adjust-form select,.attendance-adjust-form textarea{box-sizing:border-box;width:100%;min-height:36px;padding:6px 8px;border:1px solid #9db8cf;border-radius:5px;background:#fff;color:#183750;font:inherit}.attendance-adjust-form textarea{min-height:72px;resize:vertical}.attendance-adjust-form .full{grid-column:1/-1}
.executive-team-kpi{margin:12px 0}.executive-team-kpi .executive-card-title{align-items:flex-start}.executive-team-kpi table td:last-child{min-width:220px}.executive-team-kpi table td small{display:block;margin-top:4px;font-size:10px}.executive-team-advice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.executive-team-advice article{display:grid;gap:5px;padding:10px 11px;border:1px solid #c7d9e7;border-left:4px solid #2477be;border-radius:6px;background:#f7fbff;color:#35566f;font-size:11px;line-height:1.4}.executive-team-advice article.positive{border-left-color:#19955e;background:#f0fff6}.executive-team-advice article.watch{border-left-color:#d98714;background:#fff8eb}.executive-team-advice b{color:#174e7e}.executive-team-empty{margin-top:8px}
@media(max-width:700px){.employee-working-branches{grid-column:auto}.attendance-adjust-form{grid-template-columns:1fr}.attendance-adjust-form .full{grid-column:auto}.executive-team-advice{grid-template-columns:1fr}}

/* V150: carousel 5 thẻ cho dịch vụ và sản phẩm nổi bật trên trang giới thiệu. */
.v150-feature-section{padding-left:max(10px,calc((100% - 1640px)/2))!important;padding-right:max(10px,calc((100% - 1640px)/2))!important;overflow:hidden}
.v150-showcase-carousel{position:relative;width:min(1600px,100%);margin:0 auto;padding:0 52px 38px}
.v150-showcase-viewport{position:relative;width:100%;overflow:hidden}
.v150-showcase-carousel.is-service .v150-showcase-viewport{height:330px}
.v150-showcase-carousel.is-product .v150-showcase-viewport{height:530px}
.v150-showcase-track{position:relative!important;display:block!important;width:100%!important;max-width:none!important;height:100%!important;margin:0!important}
.v150-showcase-track>article{--v150-scale:.86;--v150-lift:0px;position:absolute!important;top:18px;left:50%;z-index:0;width:300px!important;min-width:300px!important;margin:0!important;opacity:0;filter:saturate(.72) brightness(.94);pointer-events:none;transform:translateX(-50%) translateY(var(--v150-lift)) scale(var(--v150-scale));transition:left .58s cubic-bezier(.22,.7,.28,1),transform .58s cubic-bezier(.22,.7,.28,1),opacity .4s ease,filter .4s ease,box-shadow .35s ease;will-change:left,transform,opacity}
.v150-showcase-carousel .v82-service-card,.v150-showcase-carousel .v82-product-card{width:300px!important}
.v150-showcase-carousel .v82-service-card .v82-card-image,.v150-showcase-carousel .v82-product-card .v82-card-image{width:300px!important;height:205px!important;aspect-ratio:auto!important;flex:0 0 205px!important}
.v150-showcase-carousel .v86-service-caption,.v150-showcase-carousel .v86-product-title{width:300px!important}
.v150-showcase-track>article.is-far-prev{left:10%;z-index:1;opacity:.52;pointer-events:auto}
.v150-showcase-track>article.is-near-prev{left:30%;z-index:2;opacity:.78;--v150-scale:.93;pointer-events:auto}
.v150-showcase-track>article.is-center{left:50%;z-index:4;opacity:1;filter:none;--v150-scale:1.04;pointer-events:auto;box-shadow:0 22px 48px rgba(19,55,105,.23)}
.v150-showcase-track>article.is-near-next{left:70%;z-index:2;opacity:.78;--v150-scale:.93;pointer-events:auto}
.v150-showcase-track>article.is-far-next{left:90%;z-index:1;opacity:.52;pointer-events:auto}
.v150-showcase-track>article.is-carousel-hidden{visibility:hidden;opacity:0;pointer-events:none}
.v150-showcase-track>article.is-pointer-hovered{left:var(--v150-hover-left)!important;transition:left 0s,transform .24s cubic-bezier(.22,.7,.28,1),opacity .2s ease,filter .2s ease,box-shadow .24s ease!important}
.v150-showcase-track>article:not(.is-carousel-hidden):hover,.v150-showcase-track>article:not(.is-carousel-hidden):focus-within{z-index:8;opacity:1;filter:none;--v150-scale:1.035;--v150-lift:-11px;transform:translateX(-50%) translateY(var(--v150-lift)) scale(var(--v150-scale))!important;transform-origin:50% 50%!important;box-shadow:0 26px 54px rgba(19,55,105,.27);outline:none}
.v150-showcase-track>article.is-center:hover,.v150-showcase-track>article.is-center:focus-within{--v150-scale:1.075}
.v150-showcase-track>.showcase-empty{position:absolute;inset:30px 10%;display:grid;place-items:center}
.v150-showcase-nav{position:absolute;top:44%;z-index:12;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #c5d6ed;border-radius:50%;background:#fff;color:#174f98;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 9px 22px rgba(25,64,116,.18);transition:.2s}
.v150-showcase-nav.prev{left:2px}.v150-showcase-nav.next{right:2px}.v150-showcase-nav:hover,.v150-showcase-nav:focus-visible{background:#145eb7;color:#fff;transform:translateY(-3px);outline:3px solid rgba(20,94,183,.18)}
.v150-showcase-dots{position:absolute;right:58px;bottom:5px;left:58px;z-index:10;display:flex;justify-content:center;gap:7px;max-width:calc(100% - 116px);overflow:hidden}
.v150-showcase-dots button{flex:0 0 auto;width:8px;height:8px;padding:0;border:0;border-radius:99px;background:#aebdd0;cursor:pointer;transition:width .25s ease,background .25s ease}
.v150-showcase-dots button.active{width:27px;background:#155eb8}
@media(max-width:1100px){
  .v150-showcase-carousel{padding-right:40px;padding-left:40px}.v150-showcase-track>article.is-far-prev,.v150-showcase-track>article.is-far-next{visibility:hidden;opacity:0;pointer-events:none}.v150-showcase-track>article.is-near-prev{left:23%}.v150-showcase-track>article.is-near-next{left:77%}
}
@media(max-width:760px){
  .v150-feature-section{padding-right:4px!important;padding-left:4px!important}.v150-showcase-carousel{padding:0 20px 34px}.v150-showcase-carousel.is-service .v150-showcase-viewport{height:315px}.v150-showcase-carousel.is-product .v150-showcase-viewport{height:510px}.v150-showcase-track>article{top:15px;width:min(300px,78vw)!important;min-width:0!important}.v150-showcase-carousel .v82-service-card,.v150-showcase-carousel .v82-product-card{width:min(300px,78vw)!important}.v150-showcase-carousel .v82-service-card .v82-card-image,.v150-showcase-carousel .v82-product-card .v82-card-image,.v150-showcase-carousel .v86-service-caption,.v150-showcase-carousel .v86-product-title{width:100%!important}.v150-showcase-track>article.is-near-prev{left:-6%;opacity:.3;--v150-scale:.8}.v150-showcase-track>article.is-near-next{left:106%;opacity:.3;--v150-scale:.8}.v150-showcase-track>article.is-center{left:50%;--v150-scale:1}.v150-showcase-track>article.is-far-prev,.v150-showcase-track>article.is-far-next{visibility:hidden}.v150-showcase-nav{top:43%;width:36px;height:36px;font-size:25px}.v150-showcase-nav.prev{left:1px}.v150-showcase-nav.next{right:1px}.v150-showcase-dots{right:28px;left:28px;max-width:calc(100% - 56px)}
}
@media(prefers-reduced-motion:reduce){.v150-showcase-track>article,.v150-showcase-nav,.v150-showcase-dots button{transition:none!important}}
