: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; display: grid; place-items: center; padding: 24px; 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-appointments-card { border:2px solid #8fbde7; box-shadow:0 5px 14px rgba(39,93,145,.10); }
    .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-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; }
    .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; }
    .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; padding: 20px; }
    .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; }
    .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-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; }
    .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 { border:1px solid #cfd6de; border-radius:6px; padding:6px 8px; font-size:13px; font-family:inherit; width:100%; }
    .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-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(220px,1fr) minmax(220px,1fr) minmax(260px,1.2fr) 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; }
    .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; }

  @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; }
  }
  @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)); }
  }

: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}
.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: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}}
@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:#fff;border:1px solid var(--v82-cobalt);border-top-width:2px;text-align:center}
.v86-service-caption h3{max-width:100%;margin:0!important;padding:0!important;font-size:14px!important;line-height:1.35!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.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}
@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-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}
}

/* 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(980px,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 input[type=number]{width:150px;max-width:100%;text-align:right}.service-allocation-table tr.has-allocation{background:#eaf5ff}.service-allocation-table tr.is-paid{background:#eff9f2;color:#53705b}.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-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}
.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}}
/* 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-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:11mm}.v112-report-ledger th:nth-child(2){width:38mm}.v112-report-ledger th:nth-child(3){width:27mm}.v112-report-ledger th:nth-child(5){width:34mm}.v112-report-ledger th:nth-child(6){width:34mm}.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}}
