:root{--navy:#0c2757;--blue:#2367e8;--teal:#09b69f;--green:#0fae79;--orange:#ff9a35;--purple:#8b5cf6;--red:#ef4444;--bg:#f6f9fd;--line:#e3eaf4;--muted:#67758f;--shadow:0 8px 26px rgba(24,58,110,.07)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--navy);background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}button,a{transition:.18s ease}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#fff;border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:10}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 22px}.brand-mark{font-size:36px;color:var(--teal);line-height:1}.brand strong{font-size:25px}.brand strong span{color:var(--teal)}.brand small{display:block;color:var(--muted);font-size:11px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;align-items:center;gap:13px;color:#334a70;text-decoration:none;padding:13px 15px;border-radius:12px;font-weight:600}.sidebar nav a:hover,.sidebar nav a.active{background:#eaf2ff;color:var(--blue)}.nav-icon{font-size:20px;width:22px;text-align:center}.sidebar-bottom{margin-top:auto;display:grid;gap:20px;color:var(--muted);padding:10px}.help-card{border:1px solid var(--line);border-radius:13px;padding:14px;display:grid}.workspace{min-width:0}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:8}.global-search{width:min(620px,55vw);border:1px solid var(--line);border-radius:13px;padding:12px 16px;color:var(--muted);display:flex;gap:10px}.global-search input{border:0;outline:0;width:100%}.top-actions{display:flex;align-items:center;gap:14px}.icon-btn{border:0;background:transparent;color:var(--navy);font-size:21px;text-decoration:none;position:relative}.badge-dot{position:absolute;top:-7px;right:-6px;background:var(--red);color:#fff;border-radius:99px;font-size:9px;padding:2px 5px}.profile{display:flex;align-items:center;gap:9px}.profile small{display:block;color:var(--muted)}.avatar,.mini-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800}.avatar.large{width:58px;height:58px}.mini-avatar{width:27px;height:27px;margin-right:8px}.content{padding:26px 28px 50px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.page-head h1{margin:0 0 5px;font-size:25px}.page-head p{margin:0;color:var(--muted)}.head-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:var(--navy);padding:10px 15px;border-radius:10px;cursor:pointer;text-decoration:none;font-weight:700}.btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(35,103,232,.12)}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.success{background:var(--teal);color:#fff;border-color:var(--teal)}.btn.danger{color:var(--red);border-color:#ffd0d0}.btn.mini{padding:6px 10px;font-size:12px}.btn.full{width:100%}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center}.metric-icon{width:42px;height:42px;border-radius:12px;background:#edf4ff;color:var(--blue);display:grid;place-items:center;font-size:20px}.metric.green .metric-icon{background:#e8faf4;color:var(--green)}.metric.orange .metric-icon{background:#fff3e7;color:var(--orange)}.metric.purple .metric-icon{background:#f2ecff;color:var(--purple)}.metric small,.metric span{display:block;color:var(--muted)}.metric strong{font-size:24px;display:block;margin:5px 0}.metric span{font-size:11px;color:var(--green)}.spark{font-size:28px;color:var(--blue)}.metric.green .spark{color:var(--green)}.metric.orange .spark{color:var(--orange)}.metric.purple .spark{color:var(--purple)}.grid{display:grid;gap:16px}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:16px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.card-head h2{font-size:15px;margin:0}.card-head a{color:var(--blue);text-decoration:none;font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{font-size:11px;color:var(--muted);text-align:left;padding:10px;border-bottom:1px solid var(--line)}td{padding:11px 10px;border-bottom:1px solid #edf1f7;font-size:12px}.status{display:inline-flex;padding:4px 8px;border-radius:7px;font-size:11px;font-weight:700}.status.green{background:#e6f8f1;color:#07865e}.status.blue{background:#eaf2ff;color:#1d62da}.status.orange{background:#fff1df;color:#d16c00}.status.red{background:#ffebeb;color:#dc3030}.list{display:grid}.list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf1f7}.list-row:last-child{border-bottom:0}.list-row small{display:block;color:var(--muted);margin-top:3px}.chart.bars{height:210px;display:flex;align-items:flex-end;gap:16px;padding:20px}.chart.bars>div{height:100%;flex:1;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:7px}.chart.bars span{display:block;width:70%;background:linear-gradient(var(--teal),#66dfcc);border-radius:7px 7px 2px 2px}.chart.bars small{color:var(--muted)}.chart.tall{height:230px}.donut{width:170px;height:170px;border-radius:50%;margin:20px auto;background:conic-gradient(var(--green) 0 56%,var(--orange) 56% 86%,var(--red) 86%);position:relative}.donut:after{content:"";position:absolute;inset:37px;border-radius:50%;background:#fff}.legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;color:var(--muted);font-size:11px}.legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.green-bg{background:var(--green)}.orange-bg{background:var(--orange)}.red-bg{background:var(--red)}.blue-bg{background:var(--blue)}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(480px,1fr);gap:18px}.tabs{display:flex;gap:10px;margin-bottom:13px;overflow:auto}.tabs button,.filters-row button{padding:10px 18px;border:1px solid var(--line);background:#fff;border-radius:10px;color:var(--navy);white-space:nowrap}.tabs button.active{background:#eaf2ff;border-color:#bad1ff;color:var(--blue)}.tabs.small button{padding:7px 11px}.search-large{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:12px;margin-bottom:14px}.search-large input,.toolbar input{border:0;outline:0;flex:1;min-width:180px}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.product{border:1px solid var(--line);border-radius:12px;padding:13px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.product-icon{width:45px;height:45px;border-radius:10px;background:#eef6ff;display:grid;place-items:center;color:var(--teal)}.product small,.product span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.product>div:last-child{text-align:right}.product .btn{display:block;margin-top:8px}.quick-actions{display:flex;gap:10px;flex-wrap:wrap}.quick{min-width:115px;flex:1;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;color:var(--blue);font-size:21px}.quick span{font-size:11px;color:var(--navy);font-weight:700;display:block;margin-top:6px}.checkout{align-self:start;position:sticky;top:100px}.customer-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border-bottom:1px solid var(--line);padding-bottom:14px}.customer-strip small{display:block;color:var(--muted)}.cart-head,.cart-row{display:grid;grid-template-columns:1fr 100px 90px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.cart-head{font-size:11px;color:var(--muted)}.cart-row small{display:block;color:var(--muted)}.qty{display:flex;justify-content:center;gap:9px;align-items:center}.qty button{border:1px solid var(--line);background:#fff;border-radius:7px}.tax-note{margin:14px 0;padding:10px;background:#ebfbf6;color:#087456;border-radius:10px;font-size:12px}.totals{display:grid;gap:9px}.totals>div{display:flex;justify-content:space-between}.totals .grand{font-size:18px;border-top:1px solid var(--line);padding-top:12px}.totals .grand strong{color:var(--green)}.payment-methods{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:17px 0}.payment-methods button{padding:10px 4px;border:1px solid var(--line);background:#fff;border-radius:9px}.payment-methods button.active{border-color:var(--teal);color:var(--green);background:#effcf8}.payment-entry,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}label{display:grid;gap:6px;font-size:12px;font-weight:700;margin-bottom:12px}input,select,textarea{border:1px solid var(--line);border-radius:9px;padding:10px;color:var(--navy);background:#fff}textarea{min-height:110px;resize:vertical}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.toolbar input{border:1px solid var(--line);padding:9px;border-radius:9px}.toolbar button,.chip{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px}.chip.active{color:var(--blue);background:#edf4ff}.split-detail{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.detail-panel{align-self:start}.patient-summary{display:flex;align-items:center;gap:13px;padding-bottom:15px;border-bottom:1px solid var(--line);margin-bottom:14px}.patient-summary h3,.patient-summary p{margin:3px 0}.patient-summary p{color:var(--muted)}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.info-grid.cols-3{grid-template-columns:repeat(3,1fr)}.info-grid section{border:1px solid var(--line);border-radius:10px;padding:11px}.info-grid h3{font-size:12px;margin:0 0 8px}.info-grid p{font-size:11px;color:var(--muted);margin:5px 0}.danger-text{color:var(--red)!important}.alert{padding:11px;border-radius:9px;margin:10px 0}.alert.danger{background:#ffeded;color:#b62222}.alert.warning{background:#fff5e7;color:#925700}.filters-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}.line-chart{height:230px;color:var(--blue);padding:20px}.line-chart svg{width:100%;height:100%}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.report-tile{border:1px solid var(--line);background:#fff;border-radius:11px;padding:14px;text-align:left;display:grid;grid-template-columns:1fr auto}.report-tile small{display:block;color:var(--muted);margin-top:5px}.report-tile span{grid-column:2;grid-row:1/3;align-self:center;font-size:23px}.toggle-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.toggle-list label{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;margin:0}.toggle-list small{display:block;color:var(--muted);font-weight:400}.toggle-list input{width:20px;height:20px}.brand.preview{border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px}.device-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.device{display:flex;gap:10px;align-items:center;border:1px solid var(--line);padding:13px;border-radius:10px}.device>span{color:var(--green)}.device small{display:block;color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;z-index:50;background:#073e34;color:#fff;padding:14px 18px;border-radius:10px;box-shadow:var(--shadow);max-width:420px}.toast.bad{background:#8c2020}.mobile-menu{display:none}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#dcfff8,transparent 30%),radial-gradient(circle at 90% 80%,#dce8ff,transparent 30%),var(--bg)}.login-card{width:min(430px,92vw);background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:0 20px 70px rgba(23,54,105,.14)}.login-card h1{margin-bottom:4px}.login-card>p{color:var(--muted)}.brand-large{padding-left:0}.muted{color:var(--muted)}.tiny{font-size:11px}@media(max-width:1100px){.app-shell{grid-template-columns:210px 1fr}.metrics{grid-template-columns:1fr 1fr}.pos-layout{grid-template-columns:1fr}.checkout{position:static}.grid.cols-3{grid-template-columns:1fr 1fr}.split-detail{grid-template-columns:1fr}.device-grid{grid-template-columns:1fr 1fr}.span-3{grid-column:span 2}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:-260px;width:250px;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:block;border:0;background:transparent;font-size:22px}.topbar{padding:0 14px}.profile div:not(.avatar){display:none}.global-search{width:55vw}.content{padding:18px 12px}.page-head{align-items:flex-start;flex-direction:column}.metrics,.grid.cols-3,.product-grid,.filters-row,.payment-entry,.form-grid,.toggle-list,.device-grid,.info-grid,.info-grid.cols-3{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}.customer-strip{grid-template-columns:1fr 1fr}.payment-methods{grid-template-columns:1fr 1fr}.report-grid{grid-template-columns:1fr}.pos-layout{display:block}.checkout{margin-top:15px}}
.flash{padding:13px 16px;border-radius:11px;margin-bottom:16px;font-weight:700}.flash.good{background:#e8fbf4;color:#087456;border:1px solid #b8eedc}.flash.bad{background:#ffeded;color:#a92424;border:1px solid #ffcaca}.setup-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;margin-bottom:18px;border:1px solid #bad1ff;border-radius:14px;background:linear-gradient(90deg,#edf4ff,#effcf8)}.setup-banner p{margin:4px 0 0;color:var(--muted)}.empty{text-align:center;padding:38px 18px;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.empty strong{display:block;color:var(--navy);font-size:16px}.empty p{margin:7px 0 15px}.empty.compact{padding:18px}.action-stack{display:grid;gap:10px}.modal{width:min(620px,94vw);border:0;border-radius:18px;padding:0;box-shadow:0 30px 100px rgba(12,39,87,.28)}.modal.wide{width:min(820px,94vw)}.modal::backdrop{background:rgba(9,23,49,.58);backdrop-filter:blur(2px)}.modal form{padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{margin:0}.modal-head button{border:0;background:#eef3fa;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-form select,.inline-form input{padding:7px;font-size:11px}.small-input{width:100px}.qty-input{width:55px;padding:6px}.checkout-form{margin-top:16px}.check{display:flex;align-items:center;gap:9px}.check input{width:auto}.span-2{grid-column:span 2}.report-tile{text-decoration:none;color:inherit}.btn[disabled],button[disabled]{opacity:.5;cursor:not-allowed}.product form{margin:0}.product .btn{margin-top:8px}.card small{display:block;color:var(--muted)}@media print{.sidebar,.topbar,.head-actions,.btn,.tabs,.filters-row{display:none!important}.app-shell{display:block}.content{padding:0}.card{box-shadow:none;break-inside:avoid}}

.tabs a{display:inline-flex;align-items:center;text-decoration:none;color:var(--navy);border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 14px}.tabs a.active{color:var(--blue);background:#edf4ff;border-color:#b9d1ff}.qty-control{display:flex;align-items:center;gap:5px}.qty-step{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--navy);font-weight:800;cursor:pointer}.qty-step:hover{background:#edf4ff}.list-row>div:last-child{display:flex;align-items:center;gap:6px}

.pos-cart-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px 130px;
    gap: 18px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid #dbe4f2;
}

.pos-cart-item {
    min-width: 0;
}

.pos-cart-qty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.pos-cart-total {
    text-align: right;
    white-space: nowrap;
    font-weight: 700;
}

@media (max-width: 900px) {
    .pos-cart-row {
        grid-template-columns: 1fr;
    }

    .pos-cart-qty {
        justify-content: flex-start;
    }

    .pos-cart-total {
        text-align: left;
    }
}

/* v0.4.4 operational refinements */
.pos-cart-grid,.pos-cart-row{display:grid;grid-template-columns:minmax(0,1fr) 210px 130px;gap:14px;align-items:center}
.pos-cart-grid{padding:11px 0;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line)}
.pos-cart-row{padding:14px 0;border-bottom:1px solid var(--line)}
.pos-cart-item{min-width:0}.pos-cart-item small{display:block;color:var(--muted);margin-top:3px}
.pos-cart-qty{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:0}.pos-cart-total{text-align:right;white-space:nowrap;font-weight:800}
.product-visual{width:62px;height:62px;border-radius:12px;background:#eef6ff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;color:var(--teal);font-size:22px}
.product-visual img,.table-product img{width:100%;height:100%;object-fit:contain;background:#fff}
.table-product{display:flex;align-items:center;gap:10px}.table-product img{width:42px;height:42px;border:1px solid var(--line);border-radius:9px}
.payment-panel{border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 14px;background:#fbfdff}.payment-panel[hidden]{display:none!important}
.payment-panel small{color:var(--muted)}.password-reset-box{border-top:1px solid var(--line);margin:0 22px 22px;padding:18px 0 0!important}
@media(max-width:900px){.pos-cart-grid{display:none}.pos-cart-row{grid-template-columns:1fr}.pos-cart-qty{justify-content:flex-start}.pos-cart-total{text-align:left}.product{grid-template-columns:auto minmax(0,1fr)}.product>div:last-child{grid-column:2;text-align:left}}

.settings-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
}

.settings-tabs button {
    appearance: none;
    border: 1px solid #d9e4f3;
    background: #ffffff;
    color: #17315f;
    border-radius: 12px;
    padding: 12px 20px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        box-shadow 0.18s ease;
}

.settings-tabs button:hover {
    border-color: #8eb4ff;
    background: #f6f9ff;
}

.settings-tabs button.active {
    color: #2468ef;
    background: #edf4ff;
    border-color: #9bbdff;
    box-shadow: 0 5px 16px rgba(36, 104, 239, 0.08);
}

.settings-panel {
    animation: settingsPanelIn 0.16s ease;
}

.settings-panel[hidden] {
    display: none !important;
}

@keyframes settingsPanelIn {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =========================================================
   PharmeSoft v0.5 shared shell refresh
   ========================================================= */
svg{display:block;width:1.25em;height:1.25em}
.app-shell{grid-template-columns:272px minmax(0,1fr)}
.sidebar{padding:20px 16px 18px}
.brand{padding:0 10px 24px;gap:12px}
.brand-mark{width:38px;height:38px;display:grid;place-items:center;font-size:38px;font-weight:900}
.brand strong{font-size:27px;letter-spacing:-.8px}
.brand small{font-size:11px;margin-top:2px}
.sidebar nav{gap:6px}
.sidebar nav a{min-height:50px;padding:13px 16px;border-radius:14px;font-size:14px}
.sidebar nav a.active{box-shadow:inset 3px 0 0 var(--blue)}
.nav-icon{width:25px;height:25px;display:grid;place-items:center;font-size:20px}
.nav-icon svg{width:21px;height:21px}
.sidebar-bottom{gap:18px;padding:10px 6px 0}
.help-card.support-link{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:11px;text-decoration:none;color:var(--navy);padding:13px;border-radius:14px;background:#fff}
.help-card.support-link:hover{border-color:#9edfd4;box-shadow:0 8px 20px rgba(9,182,159,.10);transform:translateY(-1px)}
.support-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e9fbf6;color:#0aaf7a}
.support-icon svg{width:23px;height:23px}
.support-arrow{color:var(--muted)}
.support-arrow svg{width:17px;height:17px}
.topbar{height:88px;padding:0 30px;gap:24px}
.mobile-menu svg{width:24px;height:24px}
.global-search-wrap{position:relative;flex:1;max-width:760px}
.global-search{width:100%;height:54px;border-radius:14px;padding:0 16px;align-items:center;box-shadow:0 2px 8px rgba(25,58,105,.03)}
.global-search:focus-within{border-color:#9ebeff;box-shadow:0 0 0 4px rgba(35,103,232,.08)}
.global-search-icon{display:grid;place-items:center;color:#516885}
.global-search-icon svg{width:22px;height:22px}
.global-search input{font-size:14px;background:transparent}
.global-search kbd{border:1px solid var(--line);background:#f9fbfe;color:var(--muted);border-radius:7px;padding:4px 7px;font-size:10px;white-space:nowrap}
.global-search-results{position:absolute;left:0;right:0;top:62px;z-index:40;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 20px 60px rgba(23,54,105,.18);padding:7px;max-height:480px;overflow:auto}
.global-result{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:10px;border-radius:10px;color:var(--navy);text-decoration:none}
.global-result:hover{background:#f1f6ff}
.global-result-icon{width:38px;height:38px;border-radius:10px;background:#edf4ff;color:var(--blue);display:grid;place-items:center}
.global-result-icon svg{width:19px;height:19px}
.global-result-copy{min-width:0}
.global-result-copy strong,.global-result-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-result-copy small{color:var(--muted);font-size:11px;margin-top:3px}
.global-result-arrow{font-size:22px;color:#8b9ab0}
.search-empty,.search-loading{padding:18px;text-align:center;color:var(--muted)}
.top-actions{gap:15px}
.icon-btn{width:44px;height:44px;border:1px solid transparent;border-radius:12px;display:grid;place-items:center;padding:0;cursor:pointer}
.icon-btn:hover{background:#f5f8fd;border-color:var(--line)}
.icon-btn svg{width:22px;height:22px}
.power-button{border-color:var(--line);background:#fff}
.notification-wrap{position:relative}
.notification-button{background:transparent}
.badge-dot{top:2px;right:1px;min-width:18px;text-align:center;border:2px solid #fff;padding:1px 4px}
.notification-menu{position:absolute;right:0;top:54px;width:min(390px,90vw);background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 22px 65px rgba(23,54,105,.20);z-index:45;overflow:hidden}
.notification-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line)}
.notification-head strong,.notification-head small{display:block}
.notification-head small{color:var(--muted);font-size:11px;margin-top:3px}
.plain-icon{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:7px;border-radius:8px}
.plain-icon:hover{background:#f2f6fb;color:var(--navy)}
.notification-list{max-height:430px;overflow:auto}
.notification-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center;padding:12px 15px;border-bottom:1px solid #eef2f7;text-decoration:none;color:var(--navy)}
.notification-item:hover{background:#f8fbff}
.notification-item strong,.notification-item small{display:block}
.notification-item small{color:var(--muted);font-size:11px;margin-top:3px}
.notification-symbol{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#edf4ff;color:var(--blue)}
.notification-symbol svg{width:19px;height:19px}
.notification-symbol.orange{background:#fff2e3;color:var(--orange)}
.notification-symbol.purple{background:#f3edff;color:var(--purple)}
.notification-empty{padding:26px;text-align:center;color:var(--muted)}
.profile{padding-left:2px}
.profile strong{font-size:13px;max-width:210px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile small{font-size:11px;margin-top:2px}
.avatar{width:42px;height:42px}
.content{padding:25px 28px 48px}
.metrics{gap:18px}
.metric{grid-template-columns:44px minmax(0,1fr) 86px;min-height:142px;padding:18px;border-radius:16px}
.metric-icon{width:44px;height:44px}
.metric-icon svg{width:22px;height:22px}
.metric-copy{min-width:0}
.metric-copy small{font-size:12px;color:#415576;font-weight:700}
.metric-copy strong{font-size:25px;line-height:1.15;margin:8px 0}
.metric-copy span{font-size:11px;font-weight:700}
.spark{width:86px;height:48px;align-self:end}
.spark svg{width:100%;height:100%}
.sidebar-scrim{position:fixed;inset:0;background:rgba(9,23,49,.48);z-index:9}

@media(max-width:1100px){
  .app-shell{grid-template-columns:220px minmax(0,1fr)}
  .topbar{padding:0 20px}
  .global-search kbd{display:none}
  .metric{grid-template-columns:42px minmax(0,1fr) 72px}
}

@media(max-width:760px){
  .sidebar{z-index:30}
  .topbar{height:72px;gap:10px}
  .global-search-wrap{max-width:none}
  .global-search{height:46px;padding:0 12px}
  .global-search input{font-size:13px}
  .global-search-icon svg{width:19px;height:19px}
  .top-actions{gap:6px}
  .notification-menu{position:fixed;left:10px;right:10px;top:78px;width:auto}
  .power-button{width:40px;height:40px}
  .metric{grid-template-columns:42px minmax(0,1fr) 68px;min-height:120px}
  .profile{display:none}
}
/* Dashboard v0.6 */
.dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}

.dashboard-metric {
    min-width: 0;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 96px;
    align-items: center;
    gap: 14px;
    padding: 18px;
    color: var(--navy);
    text-decoration: none;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--shadow);
}

.dashboard-metric:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(24, 58, 110, 0.11);
}

.dashboard-metric-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #edf4ff;
    color: var(--blue);
}

.dashboard-metric-icon svg,
.card-icon svg,
.dashboard-product-dot svg,
.followup-icon svg,
.activity-icon svg {
    width: 22px;
    height: 22px;
}

.dashboard-metric-copy {
    min-width: 0;
}

.dashboard-metric-copy small {
    color: var(--navy);
    font-weight: 700;
}

.dashboard-metric-copy strong {
    display: block;
    margin: 7px 0 5px;
    font-size: 25px;
    line-height: 1;
}

.dashboard-metric-copy span {
    color: var(--muted);
    font-size: 11px;
}

.metric-sparkline {
    width: 100%;
    height: 46px;
    color: var(--blue);
}

.metric-green .dashboard-metric-icon {
    color: var(--green);
    background: #e8faf4;
}

.metric-green .metric-sparkline {
    color: var(--green);
}

.metric-orange .dashboard-metric-icon {
    color: var(--orange);
    background: #fff3e7;
}

.metric-orange .metric-sparkline {
    color: var(--orange);
}

.metric-purple .dashboard-metric-icon {
    color: var(--purple);
    background: #f2ecff;
}

.metric-purple .metric-sparkline {
    color: var(--purple);
}

.dashboard-grid {
    display: grid;
    gap: 16px;
    margin-bottom: 16px;
}

.dashboard-grid-top {
    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(310px, 0.95fr)
        minmax(310px, 0.95fr);
}

.dashboard-grid-bottom {
    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(310px, 0.95fr)
        minmax(310px, 0.95fr);
}

.card-title-with-icon {
    display: flex;
    align-items: center;
    gap: 9px;
}

.card-icon {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
}

.card-icon.blue {
    color: var(--blue);
    background: #edf4ff;
}

.card-icon.green {
    color: var(--green);
    background: #e8faf4;
}

.card-icon.red {
    color: var(--red);
    background: #ffebeb;
}

.card-icon.purple {
    color: var(--purple);
    background: #f2ecff;
}

.dashboard-table th,
.dashboard-table td {
    padding-left: 9px;
    padding-right: 9px;
}

.dashboard-alert-list,
.dashboard-followup-list,
.dashboard-activity-list {
    display: grid;
}

.dashboard-alert-row {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px solid #edf1f7;
}

.dashboard-alert-row:last-child {
    border-bottom: 0;
}

.dashboard-product-dot,
.followup-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--teal);
    background: #ecfbf8;
}

.dashboard-alert-copy {
    min-width: 0;
}

.dashboard-alert-copy strong,
.dashboard-alert-copy small {
    display: block;
}

.dashboard-alert-copy small {
    margin-top: 3px;
    color: var(--muted);
}

.stock-danger {
    color: var(--red);
    font-size: 11px;
    white-space: nowrap;
}

.stock-good {
    color: var(--green);
    font-size: 11px;
    white-space: nowrap;
}

.dashboard-claims-main {
    display: grid;
    grid-template-columns: 165px minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    padding: 10px 0 18px;
}

.dashboard-donut {
    position: relative;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    background:
        conic-gradient(
            var(--blue) 0 var(--claim-submitted),
            var(--orange) var(--claim-submitted) var(--claim-pending),
            var(--green) var(--claim-pending) var(--claim-approved),
            var(--red) var(--claim-approved) 100%
        );
}

.dashboard-donut::before {
    content: "";
    position: absolute;
    inset: 32px;
    border-radius: 50%;
    background: #fff;
}

.dashboard-donut > div {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-content: center;
    text-align: center;
}

.dashboard-donut strong {
    font-size: 24px;
}

.dashboard-donut small {
    margin-top: 3px;
    color: var(--muted);
}

.dashboard-claims-legend {
    display: grid;
    gap: 12px;
}

.dashboard-claims-legend > div {
    display: grid;
    grid-template-columns: 9px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
}

.dashboard-claims-legend i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.dashboard-claims-legend strong {
    white-space: nowrap;
}

.dashboard-claims-legend strong small {
    display: inline;
    color: var(--muted);
    font-weight: 500;
}

.dashboard-claim-totals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--line);
}

.dashboard-claim-totals > div {
    padding: 14px 5px 2px;
}

.dashboard-claim-totals > div + div {
    padding-left: 18px;
    border-left: 1px solid var(--line);
}

.dashboard-claim-totals small {
    color: var(--muted);
}

.dashboard-claim-totals strong {
    display: block;
    margin-top: 6px;
    font-size: 17px;
}

.text-green {
    color: var(--green);
}

.dashboard-bar-chart {
    min-height: 245px;
    display: grid;
    grid-template-columns: repeat(7, minmax(36px, 1fr));
    align-items: end;
    gap: 12px;
    padding: 18px 4px 4px;
}

.dashboard-bar-column {
    min-width: 0;
    display: grid;
    justify-items: center;
    gap: 5px;
}

.dashboard-bar-value {
    min-height: 29px;
    max-width: 100%;
    overflow: hidden;
    color: var(--muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-bar-track {
    position: relative;
    width: min(36px, 72%);
    height: 150px;
    overflow: hidden;
    border-radius: 8px 8px 3px 3px;
    background: #edf3fb;
}

.dashboard-bar-track span {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    min-height: 5px;
    border-radius: 8px 8px 3px 3px;
    background: linear-gradient(
        180deg,
        #2f74f1,
        #63a0ff
    );
}

.dashboard-bar-column strong {
    font-size: 11px;
}

.dashboard-bar-column small {
    color: var(--muted);
    font-size: 10px;
}

.dashboard-followup-row,
.dashboard-activity-row {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid #edf1f7;
}

.dashboard-followup-row:last-child,
.dashboard-activity-row:last-child {
    border-bottom: 0;
}

.dashboard-followup-row small,
.dashboard-activity-row small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.dashboard-followup-row > span,
.dashboard-activity-row > span:last-child {
    color: var(--muted);
    font-size: 11px;
    white-space: nowrap;
}

.dashboard-activity-row {
    grid-template-columns: 36px minmax(0, 1fr) auto;
}

.activity-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
}

.activity-icon.blue {
    color: var(--blue);
    background: #edf4ff;
}

.activity-icon.green {
    color: var(--green);
    background: #e8faf4;
}

.activity-icon.orange {
    color: var(--orange);
    background: #fff3e7;
}

.activity-icon.purple {
    color: var(--purple);
    background: #f2ecff;
}

@media (max-width: 1320px) {
    .dashboard-grid-top,
    .dashboard-grid-bottom {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-prescriptions-card,
    .dashboard-sales-chart {
        grid-column: span 2;
    }
}

@media (max-width: 1080px) {
    .dashboard-metrics {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-metric {
        grid-template-columns: 46px minmax(0, 1fr) 80px;
    }
}

@media (max-width: 760px) {
    .dashboard-metrics,
    .dashboard-grid-top,
    .dashboard-grid-bottom {
        grid-template-columns: 1fr;
    }

    .dashboard-prescriptions-card,
    .dashboard-sales-chart {
        grid-column: span 1;
    }

    .dashboard-metric {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .metric-sparkline {
        display: none;
    }

    .dashboard-claims-main {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .dashboard-claims-legend {
        width: 100%;
    }

    .dashboard-alert-row {
        grid-template-columns: 36px minmax(0, 1fr) auto;
    }

    .dashboard-alert-row .btn {
        grid-column: 2 / -1;
        justify-self: start;
    }

    .dashboard-followup-row {
        grid-template-columns: 36px minmax(0, 1fr) auto;
    }

    .dashboard-followup-row .btn {
        grid-column: 2 / -1;
        justify-self: start;
    }

    .dashboard-bar-chart {
        gap: 5px;
        overflow-x: auto;
    }

    .dashboard-bar-track {
        width: 25px;
    }
}

/* =========================================================
   PharmeSoft POS v0.7
   ========================================================= */
.pos-workspace{display:grid;grid-template-columns:minmax(520px,1fr) minmax(560px,1.05fr);gap:18px;align-items:start}
.pos-catalogue{min-width:0}
.pos-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.pos-mode-tabs{display:flex;gap:9px;overflow:auto}
.pos-mode-tabs a{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--navy);text-decoration:none;font-weight:700;white-space:nowrap}
.pos-mode-tabs a.active{color:var(--blue);border-color:#b9d1ff;background:#edf4ff}
.pos-search-row{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:10px;align-items:end;margin-bottom:14px}
.pos-search-box{height:48px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.pos-search-box:focus-within{border-color:#9ebeff;box-shadow:0 0 0 4px rgba(35,103,232,.08)}
.pos-search-box svg{width:20px;height:20px;color:#58708e}
.pos-search-box input{width:100%;border:0;outline:0;padding:0;background:transparent}
.pos-branch-filter{margin:0}.pos-branch-filter span{font-size:11px;color:var(--muted)}
.pos-section-head{display:flex;align-items:center;justify-content:space-between;margin:6px 0 10px}.pos-section-head small{display:block;color:var(--muted);margin-top:3px}.pos-section-head a{font-size:12px;color:var(--blue);text-decoration:none}
.pos-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:520px;overflow:auto;padding-right:3px}
.pos-product-card{min-height:132px;grid-template-columns:76px minmax(0,1fr) auto;padding:14px;background:#fff}
.pos-product-card:hover{border-color:#b9d1ff;box-shadow:0 8px 22px rgba(24,58,110,.08)}
.pos-product-image{width:72px;height:82px;background:#f8fbff}
.pos-product-image svg{width:31px;height:31px}
.pos-product-copy{min-width:0}.pos-product-copy strong{font-size:13px}.pos-product-copy small,.pos-product-copy span,.pos-product-copy b{display:block;margin-top:4px;font-size:11px}.pos-product-copy b{font-weight:700}
.pos-product-action{text-align:right;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}.pos-product-action>strong{white-space:nowrap}.success-outline{color:var(--green);border-color:#9ce2ce;background:#f1fcf8}
.pos-lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.pos-checkout{position:sticky;top:104px;max-height:calc(100vh - 122px);overflow:auto;padding:0}
.pos-customer-strip{display:grid;grid-template-columns:minmax(210px,1.4fr) 1fr .55fr 1fr;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fbfdff}
.pos-customer-strip label{margin:0}.pos-customer-strip label span,.pos-customer-strip>div>span{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.pos-customer-strip select{padding:8px}.pos-customer-strip strong{font-size:12px}
.pos-sale-head{padding:15px 16px 5px;margin:0}.pos-sale-head span{color:var(--muted);font-size:12px}
.pos-empty-cart{margin:12px 16px 16px}
.pos-cart-table-head,.pos-cart-line{display:grid;grid-template-columns:minmax(0,1fr) 126px 120px 105px;gap:10px;align-items:center}
.pos-cart-table-head{padding:10px 16px;color:var(--muted);font-size:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pos-cart-line{padding:12px 16px;border-bottom:1px solid #edf1f7}.pos-cart-name small{display:block;color:var(--muted);margin-top:3px}.pos-inline-form{display:flex;align-items:center;justify-content:center;gap:5px}.pos-inline-form .qty-input{width:50px;text-align:center}.pos-discount-form{margin:0}.discount-input-wrap{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.discount-input-wrap>span{padding-left:8px;color:var(--muted);font-size:11px}.discount-input-wrap input{width:100%;min-width:0;border:0;padding:8px 6px;outline:0}.pos-line-total{text-align:right}.pos-line-total small{display:block;color:var(--green);margin-top:3px}
.pos-checkout .tax-note{margin:14px 16px}.pos-summary{display:grid;gap:9px;padding:0 16px 14px}.pos-summary>div{display:flex;justify-content:space-between;align-items:center}.discount-text{color:var(--green)}.pos-sale-discount-form{margin:0}.pos-sale-discount-form label{display:flex;align-items:center;justify-content:space-between;margin:0}.sale-discount-input{width:130px}.pos-summary .grand{padding-top:12px;border-top:1px solid var(--line);font-size:18px}.pos-summary .grand strong{color:var(--green);font-size:20px}
.pos-checkout .checkout-form{padding:14px 16px 16px;margin:0;border-top:1px solid var(--line)}.pos-payment-title{font-weight:800;margin-bottom:10px}.pos-payment-methods{grid-template-columns:repeat(4,1fr);margin:0 0 12px}.pos-payment-methods button{font-size:12px}.pos-payment-panel{margin-bottom:12px}.pos-payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pos-payment-grid label{margin:0}.pos-change-output{display:flex;align-items:center;min-height:40px;padding:9px 10px;border:1px solid #c9eedf;border-radius:9px;background:#effcf8;color:var(--green);font-weight:800}.pos-complete-sale{min-height:48px;font-size:14px}
@media(max-width:1350px){.pos-workspace{grid-template-columns:1fr}.pos-checkout{position:static;max-height:none}.pos-product-grid{max-height:none}}
@media(max-width:820px){.pos-search-row{grid-template-columns:1fr}.pos-product-grid,.pos-lower-grid{grid-template-columns:1fr}.pos-customer-strip{grid-template-columns:1fr 1fr}.pos-cart-table-head{display:none}.pos-cart-line{grid-template-columns:1fr 1fr}.pos-cart-name{grid-column:1/-1}.pos-line-total{text-align:left}.pos-payment-grid{grid-template-columns:1fr}}
@media(max-width:520px){.pos-page-toolbar{align-items:flex-start;flex-direction:column}.pos-customer-strip,.pos-cart-line{grid-template-columns:1fr}.pos-product-card{grid-template-columns:64px minmax(0,1fr)}.pos-product-image{width:60px;height:70px}.pos-product-action{grid-column:2;text-align:left;display:block}.pos-product-action form{display:inline-block;margin-left:10px}.pos-payment-methods{grid-template-columns:1fr 1fr}}


/* =========================================================
   PharmeSoft Prescriptions v0.8
   ========================================================= */
.rx-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
    margin-bottom:18px
}
.rx-metric{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:13px;
    align-items:center;
    min-height:112px;
    padding:17px;
    color:var(--navy);
    text-decoration:none;
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:var(--shadow)
}
.rx-metric:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 34px rgba(24,58,110,.11)
}
.rx-metric-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:12px;
    color:var(--blue);
    background:#edf4ff
}
.rx-metric-icon svg{
    width:22px;
    height:22px
}
.rx-metric small,
.rx-metric b{
    display:block
}
.rx-metric small{
    font-weight:700
}
.rx-metric strong{
    display:block;
    margin:6px 0 4px;
    font-size:25px
}
.rx-metric b{
    color:var(--muted);
    font-size:11px;
    font-weight:600
}
.rx-metric-orange .rx-metric-icon{
    color:var(--orange);
    background:#fff3e7
}
.rx-metric-green .rx-metric-icon{
    color:var(--green);
    background:#e8faf4
}
.rx-metric-purple .rx-metric-icon{
    color:var(--purple);
    background:#f2ecff
}
.rx-queue-card{
    padding:0;
    overflow:hidden
}
.rx-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:16px;
    border-bottom:1px solid var(--line)
}
.rx-status-tabs{
    display:flex;
    gap:7px;
    overflow:auto
}
.rx-status-tabs a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:9px 12px;
    border:1px solid var(--line);
    border-radius:10px;
    color:var(--navy);
    background:#fff;
    text-decoration:none;
    font-weight:700;
    white-space:nowrap
}
.rx-status-tabs a span{
    min-width:20px;
    padding:2px 6px;
    border-radius:999px;
    background:#eef3fa;
    color:var(--muted);
    font-size:10px;
    text-align:center
}
.rx-status-tabs a.active{
    color:var(--blue);
    border-color:#b9d1ff;
    background:#edf4ff
}
.rx-search{
    width:min(430px,100%);
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid var(--line);
    border-radius:11px;
    padding:0 12px;
    background:#fff
}
.rx-search:focus-within{
    border-color:#9ebeff;
    box-shadow:0 0 0 4px rgba(35,103,232,.08)
}
.rx-search svg{
    width:19px;
    height:19px;
    color:#58708e
}
.rx-search input{
    width:100%;
    border:0;
    outline:0;
    padding:10px 0;
    background:transparent
}
.rx-list{
    display:grid
}
.rx-row{
    display:grid;
    grid-template-columns:
        minmax(180px,1.1fr)
        minmax(140px,.8fr)
        minmax(230px,1.4fr)
        minmax(130px,.75fr)
        minmax(145px,.8fr)
        minmax(180px,auto);
    gap:14px;
    align-items:center;
    padding:14px 16px;
    border-bottom:1px solid #edf1f7
}
.rx-row:last-child{
    border-bottom:0
}
.rx-row:hover{
    background:#fbfdff
}
.rx-patient{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0
}
.rx-avatar{
    width:38px;
    height:38px;
    flex:0 0 auto;
    border-radius:12px;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:12px;
    font-weight:800;
    background:linear-gradient(135deg,var(--teal),var(--blue))
}
.rx-avatar.large{
    width:52px;
    height:52px;
    font-size:15px
}
.rx-patient strong,
.rx-patient small,
.rx-reference strong,
.rx-reference small,
.rx-medications strong,
.rx-medications small,
.rx-branch strong,
.rx-branch small{
    display:block
}
.rx-patient strong,
.rx-medications strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.rx-patient small,
.rx-reference small,
.rx-medications small,
.rx-branch small{
    margin-top:3px;
    color:var(--muted);
    font-size:11px
}
.rx-allergy-alert{
    color:var(--red)!important;
    font-weight:700
}
.rx-badges{
    display:flex;
    gap:6px;
    flex-wrap:wrap
}
.rx-actions{
    display:flex;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:wrap
}
.rx-actions form{
    margin:0
}
.rx-create-modal small,
.rx-detail-modal small{
    color:var(--muted)
}
.rx-detail-modal{
    width:min(1180px,96vw)
}
.rx-detail-shell{
    padding:22px
}
.rx-detail-summary{
    display:grid;
    grid-template-columns:minmax(220px,1.3fr) 1fr .7fr .7fr;
    gap:14px;
    align-items:center;
    padding:14px;
    margin-bottom:14px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fbfdff
}
.rx-detail-summary>div>small{
    display:block;
    margin-bottom:5px
}
.rx-detail-patient{
    display:flex;
    align-items:center;
    gap:11px
}
.rx-detail-patient strong,
.rx-detail-patient small{
    display:block
}
.rx-clinical-alert{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:10px;
    align-items:start
}
.rx-detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);
    gap:16px
}
.rx-items-panel{
    min-width:0
}
.rx-workflow-panel{
    display:grid;
    gap:12px;
    align-content:start
}
.rx-workflow-panel>section{
    border:1px solid var(--line);
    border-radius:12px;
    padding:13px;
    background:#fff
}
.rx-workflow-panel h3{
    margin:0 0 11px;
    font-size:13px
}
.rx-item-card{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:13px 0;
    border-bottom:1px solid #edf1f7
}
.rx-item-card:last-child{
    border-bottom:0
}
.rx-item-image{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:11px;
    color:var(--teal);
    background:#f7fbff
}
.rx-item-image img{
    width:100%;
    height:100%;
    object-fit:contain;
    background:#fff
}
.rx-item-image svg{
    width:25px;
    height:25px
}
.rx-item-copy strong,
.rx-item-copy small{
    display:block
}
.rx-item-copy small{
    margin-top:4px;
    color:var(--muted)
}
.rx-item-copy p{
    margin:7px 0 0;
    color:#425778;
    font-size:12px;
    line-height:1.5
}
.rx-remove-item-form{
    margin:0 22px 22px;
    padding:0!important
}
.rx-no-results{
    margin:16px
}

@media(max-width:1260px){
    .rx-row{
        grid-template-columns:
            minmax(180px,1fr)
            minmax(130px,.8fr)
            minmax(220px,1.3fr)
            minmax(140px,.8fr)
            minmax(180px,auto)
    }
    .rx-branch{
        display:none
    }
}
@media(max-width:960px){
    .rx-metrics{
        grid-template-columns:1fr 1fr
    }
    .rx-toolbar{
        align-items:stretch;
        flex-direction:column
    }
    .rx-search{
        width:100%
    }
    .rx-row{
        grid-template-columns:1fr 1fr
    }
    .rx-medications,
    .rx-actions{
        grid-column:1/-1
    }
    .rx-actions{
        justify-content:flex-start
    }
    .rx-badges{
        justify-content:flex-end
    }
    .rx-detail-summary{
        grid-template-columns:1fr 1fr
    }
    .rx-detail-grid{
        grid-template-columns:1fr
    }
}
@media(max-width:620px){
    .rx-metrics{
        grid-template-columns:1fr
    }
    .rx-row,
    .rx-detail-summary{
        grid-template-columns:1fr
    }
    .rx-badges{
        justify-content:flex-start
    }
    .rx-reference{
        order:3
    }
    .rx-item-card{
        grid-template-columns:48px minmax(0,1fr)
    }
    .rx-item-image{
        width:48px;
        height:48px
    }
    .rx-item-actions{
        grid-column:2
    }
}
/* =========================================================
   PharmeSoft Inventory v0.9
   ========================================================= */
.inventory-control-card{padding:14px;margin-bottom:16px}
.inventory-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 190px 190px 170px;gap:10px;align-items:end}
.inventory-search{height:46px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#fff}
.inventory-search:focus-within{border-color:#9ebeff;box-shadow:0 0 0 4px rgba(35,103,232,.08)}
.inventory-search svg{width:20px;height:20px;color:#58708e}
.inventory-search input{width:100%;border:0;outline:0;padding:0;background:transparent}
.inventory-filter-label{margin:0}.inventory-filter-label span{font-size:10px;color:var(--muted)}
.inventory-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start;margin-bottom:16px}
.inventory-products-card{padding:0;overflow:hidden}.inventory-products-card>.card-head{padding:16px;margin:0;border-bottom:1px solid var(--line)}
.inventory-product-list{display:grid}.inventory-product-row{display:grid;grid-template-columns:66px minmax(220px,1.4fr) 120px 125px 125px 170px;gap:13px;align-items:center;padding:13px 16px;border-bottom:1px solid #edf1f7}
.inventory-product-row:hover{background:#fbfdff}.inventory-product-row:last-child{border-bottom:0}
.inventory-product-image{width:62px;height:62px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#f7fbff;color:var(--teal)}
.inventory-product-image img{width:100%;height:100%;object-fit:contain;background:#fff}.inventory-product-image svg{width:27px;height:27px}
.inventory-product-main{min-width:0}.inventory-product-main>strong,.inventory-product-main>small{display:block}.inventory-product-main>strong{font-size:13px}.inventory-product-main>small{margin-top:3px;color:var(--muted)}
.inventory-product-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.inventory-product-meta span,.inventory-detail-tags span{padding:3px 7px;border-radius:999px;background:#f0f4f9;color:#536682;font-size:10px}
.inventory-stock-block small,.inventory-stock-block strong,.inventory-stock-block span,.inventory-price-block small,.inventory-price-block strong,.inventory-price-block span,.inventory-expiry-block small,.inventory-expiry-block strong,.inventory-expiry-block span{display:block}
.inventory-stock-block small,.inventory-price-block small,.inventory-expiry-block small{color:var(--muted);font-size:10px}.inventory-stock-block strong,.inventory-price-block strong,.inventory-expiry-block strong{margin:4px 0;font-size:14px}.inventory-stock-block span,.inventory-price-block span,.inventory-expiry-block span{color:var(--muted);font-size:10px}
.inventory-row-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.inventory-side-column{display:grid;gap:16px}
.inventory-alert-list,.inventory-batch-list{display:grid}.inventory-alert-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f7}.inventory-alert-row:last-child{border-bottom:0}.inventory-alert-row strong,.inventory-alert-row small{display:block}.inventory-alert-row small{margin-top:3px;color:var(--muted)}
.inventory-alert-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px}.inventory-alert-icon svg{width:18px;height:18px}.inventory-alert-icon.orange{color:var(--orange);background:#fff3e7}.inventory-alert-icon.purple{color:var(--purple);background:#f2ecff}
.inventory-batch-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f7}.inventory-batch-row:last-child{border-bottom:0}.inventory-batch-row strong,.inventory-batch-row small{display:block}.inventory-batch-row small{margin-top:3px;color:var(--muted)}.inventory-batch-row>span{font-weight:800}
.inventory-positive{color:var(--green);font-weight:800}.inventory-negative{color:var(--red);font-weight:800}
.inventory-detail-modal{width:min(1050px,96vw)}.inventory-detail-shell{padding:22px}.inventory-detail-summary{display:grid;grid-template-columns:90px minmax(0,1.5fr) 150px 150px;gap:14px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fbfdff;margin-bottom:15px}
.inventory-detail-image{width:86px;height:86px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--teal);font-size:26px}.inventory-detail-image img{width:100%;height:100%;object-fit:contain}.inventory-detail-summary small,.inventory-detail-summary strong{display:block}.inventory-detail-summary small{margin-top:4px;color:var(--muted)}.inventory-detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.inventory-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) 300px;gap:16px}.inventory-detail-grid>section,.inventory-detail-grid>aside{border:1px solid var(--line);border-radius:12px;padding:14px}.inventory-detail-grid h3{margin:0 0 12px;font-size:13px}.inventory-detail-facts{display:grid;gap:10px;margin-bottom:14px}.inventory-detail-facts>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid #edf1f7}.inventory-detail-facts span{color:var(--muted)}
@media(max-width:1320px){.inventory-layout{grid-template-columns:1fr}.inventory-side-column{grid-template-columns:1fr 1fr}.inventory-product-row{grid-template-columns:62px minmax(200px,1fr) 110px 120px 150px}.inventory-expiry-block{display:none}}
@media(max-width:980px){.inventory-toolbar{grid-template-columns:1fr 1fr}.inventory-search{grid-column:1/-1}.inventory-product-row{grid-template-columns:58px minmax(0,1fr) 110px 140px}.inventory-price-block,.inventory-expiry-block{display:none}.inventory-detail-summary{grid-template-columns:80px 1fr 1fr}.inventory-detail-summary>div:last-child{grid-column:3}.inventory-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.inventory-toolbar,.inventory-side-column{grid-template-columns:1fr}.inventory-search{grid-column:auto}.inventory-product-row{grid-template-columns:54px minmax(0,1fr)}.inventory-stock-block,.inventory-price-block,.inventory-expiry-block{grid-column:2}.inventory-row-actions{grid-column:2;justify-content:flex-start}.inventory-detail-summary{grid-template-columns:1fr}.inventory-detail-image{width:72px;height:72px}}
/* =========================================================
   PharmeSoft Patients v1.0
   ========================================================= */
.patient-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.patient-metric{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:center;min-height:112px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.patient-metric-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--blue);background:#edf4ff}
.patient-metric-icon svg{width:22px;height:22px}.patient-metric small,.patient-metric span{display:block}.patient-metric small{font-weight:700}.patient-metric strong{display:block;margin:6px 0 4px;font-size:25px}.patient-metric span{color:var(--muted);font-size:11px}
.patient-metric-green .patient-metric-icon{color:var(--green);background:#e8faf4}.patient-metric-purple .patient-metric-icon{color:var(--purple);background:#f2ecff}.patient-metric-orange .patient-metric-icon{color:var(--orange);background:#fff3e7}
.patient-control-card{padding:14px;margin-bottom:16px}.patient-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 180px 200px 110px;gap:10px;align-items:end}
.patient-search{height:46px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#fff}.patient-search:focus-within{border-color:#9ebeff;box-shadow:0 0 0 4px rgba(35,103,232,.08)}.patient-search svg{width:20px;height:20px;color:#58708e}.patient-search input{width:100%;border:0;outline:0;padding:0;background:transparent}
.patient-filter-label{margin:0}.patient-filter-label span{font-size:10px;color:var(--muted)}.patient-count{display:grid;align-content:center;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.patient-count small{color:var(--muted);font-size:10px}.patient-count strong{font-size:18px}
.patient-list-card{padding:0;overflow:hidden}.patient-list-card>.card-head{padding:16px;margin:0;border-bottom:1px solid var(--line)}.patient-list{display:grid}
.patient-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) minmax(170px,1fr) 150px 145px 118px;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid #edf1f7}.patient-row:hover{background:#fbfdff}.patient-row:last-child{border-bottom:0}
.patient-identity{display:flex;align-items:center;gap:11px;min-width:0}.patient-avatar{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;border-radius:13px;color:#fff;font-size:12px;font-weight:800;background:linear-gradient(135deg,var(--teal),var(--blue))}.patient-avatar.large{width:60px;height:60px;font-size:16px}.patient-identity strong,.patient-identity small{display:block}.patient-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-identity small{margin-top:3px;color:var(--muted)}
.patient-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.patient-tag{padding:3px 7px;border-radius:999px;background:#f0f4f9;color:#536682;font-size:10px;font-weight:700}.patient-tag-danger{background:#ffebeb;color:var(--red)}
.patient-contact small,.patient-contact strong,.patient-contact span,.patient-insurance small,.patient-insurance strong,.patient-insurance span,.patient-workflow small,.patient-workflow strong,.patient-workflow span,.patient-financial small,.patient-financial strong,.patient-financial span{display:block}.patient-contact small,.patient-insurance small,.patient-workflow small,.patient-financial small{color:var(--muted);font-size:10px}.patient-contact strong,.patient-insurance strong,.patient-workflow strong,.patient-financial strong{margin:4px 0;font-size:12px}.patient-contact span,.patient-insurance span,.patient-workflow span,.patient-financial span{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.patient-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.patient-no-results{margin:16px}
.patient-detail-modal{width:min(1080px,96vw)}.patient-detail-shell{padding:22px}.patient-detail-summary{display:grid;grid-template-columns:72px 1fr 1fr 1fr;gap:14px;align-items:center;padding:15px;margin-bottom:14px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}.patient-detail-summary small,.patient-detail-summary strong{display:block}.patient-detail-summary small{margin-bottom:5px;color:var(--muted)}
.patient-clinical-alert{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}.patient-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) 280px;gap:16px;margin-bottom:16px}.patient-detail-grid>section,.patient-detail-grid>aside{padding:14px;border:1px solid var(--line);border-radius:12px}.patient-detail-grid h3,.patient-history-grid h3{margin:0 0 12px;font-size:13px}.patient-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.patient-info-grid>div{padding:11px;border:1px solid var(--line);border-radius:10px}.patient-info-grid small,.patient-info-grid strong{display:block}.patient-info-grid small{margin-bottom:5px;color:var(--muted)}.patient-clinical-copy{min-height:80px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfdff;line-height:1.6}.patient-detail-actions{display:grid;gap:9px}
.patient-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.patient-history-grid>section{padding:14px;border:1px solid var(--line);border-radius:12px}.patient-history-list{display:grid}.patient-history-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f7}.patient-history-row:last-child{border-bottom:0}.patient-history-row strong,.patient-history-row small{display:block}.patient-history-row small{margin-top:3px;color:var(--muted)}.patient-history-row>div:last-child{text-align:right}
.patient-form-modal .modal-head small{color:var(--muted);margin-top:3px}
@media(max-width:1280px){.patient-row{grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) 140px 135px 110px}.patient-insurance{display:none}}
@media(max-width:980px){.patient-metrics{grid-template-columns:1fr 1fr}.patient-toolbar{grid-template-columns:1fr 1fr}.patient-search{grid-column:1/-1}.patient-row{grid-template-columns:minmax(220px,1fr) 1fr 130px}.patient-contact,.patient-insurance{display:none}.patient-actions{justify-content:flex-start}.patient-detail-grid,.patient-history-grid{grid-template-columns:1fr}}
@media(max-width:620px){.patient-metrics,.patient-toolbar{grid-template-columns:1fr}.patient-search{grid-column:auto}.patient-row{grid-template-columns:1fr}.patient-contact,.patient-insurance{display:block}.patient-actions{justify-content:flex-start}.patient-detail-summary,.patient-info-grid{grid-template-columns:1fr}.patient-avatar.large{width:52px;height:52px}}

/* PharmeSoft Claims v1.1 */
.claim-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.claim-metric{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:center;min-height:112px;padding:17px;color:var(--navy);text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.claim-metric:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(24,58,110,.11)}.claim-metric-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--blue);background:#edf4ff}.claim-metric-icon svg{width:22px;height:22px}.claim-metric small,.claim-metric span{display:block}.claim-metric strong{display:block;margin:6px 0 4px;font-size:24px}.claim-metric span{color:var(--muted);font-size:11px}.claim-metric-orange .claim-metric-icon{color:var(--orange);background:#fff3e7}.claim-metric-green .claim-metric-icon{color:var(--green);background:#e8faf4}.claim-metric-purple .claim-metric-icon{color:var(--purple);background:#f2ecff}
.claim-control-card{padding:14px;margin-bottom:16px}.claim-toolbar{display:grid;grid-template-columns:minmax(300px,1fr) 190px 210px 110px;gap:10px;align-items:end}.claim-search{height:46px;display:flex;align-items:center;gap:9px;padding:0 13px;margin:0;border:1px solid var(--line);border-radius:11px;background:#fff}.claim-search:focus-within{border-color:#9ebeff;box-shadow:0 0 0 4px rgba(35,103,232,.08)}.claim-search svg{width:20px;height:20px;color:#58708e}.claim-search input{width:100%;border:0;outline:0;padding:0;background:transparent}.claim-filter-label{margin:0}.claim-filter-label span{font-size:10px;color:var(--muted)}.claim-visible-count{display:grid;align-content:center;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.claim-visible-count small{color:var(--muted);font-size:10px}.claim-visible-count strong{font-size:18px}
.claim-list-card{padding:0;overflow:hidden}.claim-list-card>.card-head{padding:16px;margin:0;border-bottom:1px solid var(--line)}.claim-list{display:grid}.claim-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(180px,1.2fr) 130px 130px 185px 150px 84px;gap:13px;align-items:center;padding:14px 16px;border-bottom:1px solid #edf1f7}.claim-row:hover{background:#fbfdff}.claim-row:last-child{border-bottom:0}.claim-identity{display:flex;align-items:center;gap:10px;min-width:0}.claim-provider-badge{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;background:#edf4ff;color:var(--blue);font-size:11px;font-weight:800}.claim-identity strong,.claim-identity small,.claim-patient strong,.claim-patient small,.claim-money small,.claim-money strong,.claim-money span,.claim-dates small,.claim-dates strong,.claim-dates span{display:block}.claim-identity strong,.claim-patient strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.claim-identity small,.claim-patient small,.claim-money small,.claim-money span,.claim-dates small,.claim-dates span{margin-top:3px;color:var(--muted);font-size:10px}.claim-money strong{margin-top:4px}.claim-statuses{display:flex;gap:5px;flex-wrap:wrap}.status.purple{background:#f2ecff;color:#7541d9}.claim-actions{display:flex;justify-content:flex-end}.claim-no-results{margin:16px}
.claim-form-modal .modal-head small{color:var(--muted);margin-top:3px}.claim-detail-modal{width:min(1050px,96vw)}.claim-detail-shell{padding:22px}.claim-detail-summary{display:grid;grid-template-columns:1.2fr 1fr .8fr .8fr;gap:14px;padding:15px;margin-bottom:15px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}.claim-detail-summary small,.claim-detail-summary strong,.claim-detail-summary span{display:block}.claim-detail-summary small,.claim-detail-summary span{color:var(--muted);font-size:11px}.claim-detail-summary strong{margin:5px 0}.claim-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) 320px;gap:16px}.claim-detail-grid>section,.claim-detail-grid>aside{padding:14px;border:1px solid var(--line);border-radius:12px}.claim-detail-grid h3{margin:0 0 13px;font-size:13px}.claim-timeline{display:grid}.claim-timeline>div{position:relative;display:grid;grid-template-columns:18px 1fr;gap:9px;padding:0 0 18px}.claim-timeline>div:not(:last-child)::after{content:"";position:absolute;left:5px;top:13px;bottom:0;width:2px;background:#e2e8f2}.claim-timeline i{width:12px;height:12px;border-radius:50%;margin-top:2px;background:#d9e2ef;z-index:1}.claim-timeline .complete i{background:var(--green)}.claim-timeline strong,.claim-timeline small{display:block}.claim-timeline small{margin-top:3px;color:var(--muted)}.claim-integration-note{padding:12px;border-radius:10px;background:#edf4ff;color:#284d82}.claim-integration-note p{margin:6px 0 0;font-size:11px;line-height:1.5}
@media(max-width:1320px){.claim-row{grid-template-columns:minmax(180px,1.2fr) minmax(170px,1.1fr) 125px 125px 170px 80px}.claim-dates{display:none}}
@media(max-width:980px){.claim-metrics{grid-template-columns:1fr 1fr}.claim-toolbar{grid-template-columns:1fr 1fr}.claim-search{grid-column:1/-1}.claim-row{grid-template-columns:1fr 1fr 1fr}.claim-identity,.claim-patient{grid-column:auto}.claim-statuses{grid-column:1/3}.claim-actions{justify-content:flex-start}.claim-detail-summary{grid-template-columns:1fr 1fr}.claim-detail-grid{grid-template-columns:1fr}}
@media(max-width:620px){.claim-metrics,.claim-toolbar{grid-template-columns:1fr}.claim-search{grid-column:auto}.claim-row,.claim-detail-summary{grid-template-columns:1fr}.claim-statuses{grid-column:auto}.claim-actions{justify-content:flex-start}}

/* PharmeSoft Purchases v1.2 */
.purchase-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.purchase-metric{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:center;min-height:112px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.purchase-metric-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--blue);background:#edf4ff;font-weight:800}
.purchase-metric small,.purchase-metric span{display:block}.purchase-metric strong{display:block;margin:6px 0 4px;font-size:24px}.purchase-metric span{color:var(--muted);font-size:11px}
.purchase-metric-green .purchase-metric-icon{color:var(--green);background:#e8faf4}.purchase-metric-purple .purchase-metric-icon{color:var(--purple);background:#f2ecff}.purchase-metric-orange .purchase-metric-icon{color:var(--orange);background:#fff3e7}
.purchase-control-card{padding:14px;margin-bottom:16px}.purchase-toolbar{display:grid;grid-template-columns:minmax(300px,1fr) 190px 190px 110px;gap:10px;align-items:end}
.purchase-search{height:46px;display:flex;align-items:center;gap:9px;padding:0 13px;margin:0;border:1px solid var(--line);border-radius:11px;background:#fff}.purchase-search:focus-within{border-color:#9ebeff;box-shadow:0 0 0 4px rgba(35,103,232,.08)}.purchase-search input{width:100%;border:0;outline:0;padding:0;background:transparent}
.purchase-filter-label{margin:0}.purchase-filter-label span{font-size:10px;color:var(--muted)}.purchase-visible-count{display:grid;align-content:center;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.purchase-visible-count small{color:var(--muted);font-size:10px}.purchase-visible-count strong{font-size:18px}
.purchase-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.purchase-orders-card{padding:0;overflow:hidden}.purchase-orders-card>.card-head{padding:16px;margin:0;border-bottom:1px solid var(--line)}
.purchase-order-list{display:grid}.purchase-order-row{display:grid;grid-template-columns:minmax(230px,1.4fr) 150px 140px 150px 150px 80px;gap:13px;align-items:center;padding:14px 16px;border-bottom:1px solid #edf1f7}.purchase-order-row:hover{background:#fbfdff}.purchase-order-row:last-child{border-bottom:0}
.purchase-order-main strong,.purchase-order-main small,.purchase-order-date small,.purchase-order-date strong,.purchase-order-date span,.purchase-order-value small,.purchase-order-value strong,.purchase-order-value span,.purchase-order-invoice small,.purchase-order-invoice strong,.purchase-order-invoice span{display:block}
.purchase-order-main small,.purchase-order-date small,.purchase-order-date span,.purchase-order-value small,.purchase-order-value span,.purchase-order-invoice small,.purchase-order-invoice span{margin-top:3px;color:var(--muted);font-size:10px}.purchase-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.purchase-tags span{padding:3px 7px;border-radius:999px;background:#f0f4f9;color:#536682;font-size:10px}
.purchase-order-actions{display:flex;justify-content:flex-end}.purchase-side-column{display:grid;gap:16px}.supplier-list{display:grid}.supplier-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f7}.supplier-row:last-child{border-bottom:0}.supplier-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--teal),var(--blue));font-weight:800;font-size:11px}.supplier-copy strong,.supplier-copy small,.supplier-copy span{display:block}.supplier-copy small,.supplier-copy span{margin-top:3px;color:var(--muted);font-size:10px}
.purchase-guide{display:grid;gap:10px}.purchase-guide>div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center}.purchase-guide strong{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#edf4ff;color:var(--blue)}.purchase-guide span{color:var(--muted);font-size:11px}
.po-lines-head{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.po-lines-head h3{margin:0}.po-lines-head small{color:var(--muted)}.po-lines{display:grid;gap:10px}.po-line{display:grid;grid-template-columns:minmax(240px,1fr) 120px 140px auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.po-line label{margin:0}.po-total-preview{display:flex;justify-content:space-between;align-items:center;margin:14px 0;padding:13px;border-radius:11px;background:#effcf8;color:var(--green)}.po-total-preview strong{font-size:18px}
.purchase-detail-modal{width:min(1120px,96vw)}.purchase-detail-shell{padding:22px}.purchase-detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:14px;margin-bottom:15px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.purchase-detail-summary small,.purchase-detail-summary strong{display:block}.purchase-detail-summary small{margin-bottom:5px;color:var(--muted)}
.purchase-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) 320px;gap:16px}.purchase-detail-grid>section,.purchase-detail-grid>aside{padding:14px;border:1px solid var(--line);border-radius:12px}.purchase-detail-grid h3{margin:0 0 12px}.invoice-variance{margin-top:12px;padding:12px;border-radius:10px;background:#f5f8fd}.invoice-variance small,.invoice-variance strong{display:block}.invoice-variance small{color:var(--muted);margin-bottom:4px}.purchase-no-results{margin:16px}
@media(max-width:1280px){.purchase-layout{grid-template-columns:1fr}.purchase-side-column{grid-template-columns:1fr 1fr}.purchase-order-row{grid-template-columns:minmax(230px,1.3fr) 140px 130px 140px 80px}.purchase-order-invoice{display:none}}
@media(max-width:900px){.purchase-metrics{grid-template-columns:1fr 1fr}.purchase-toolbar{grid-template-columns:1fr 1fr}.purchase-search{grid-column:1/-1}.purchase-order-row{grid-template-columns:1fr 1fr}.purchase-order-main{grid-column:1/-1}.purchase-order-actions{justify-content:flex-start}.purchase-side-column{grid-template-columns:1fr}.purchase-detail-summary{grid-template-columns:1fr 1fr}.purchase-detail-grid{grid-template-columns:1fr}.po-line{grid-template-columns:1fr 1fr}.po-line label:first-child{grid-column:1/-1}}
@media(max-width:620px){.purchase-metrics,.purchase-toolbar,.purchase-order-row,.purchase-detail-summary,.po-line{grid-template-columns:1fr}.purchase-search{grid-column:auto}.purchase-order-main{grid-column:auto}}

/* PharmeSoft Reports v1.3 */
.reports-filter-card{padding:14px;margin-bottom:16px}.reports-filter-form{display:grid;grid-template-columns:minmax(190px,1fr) 150px 150px minmax(190px,1fr) auto;gap:10px;align-items:end}.reports-filter-form label{margin:0}
.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.report-summary-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.report-summary-card small,.report-summary-card span{display:block}.report-summary-card small{font-weight:700}.report-summary-card strong{display:block;margin:8px 0 5px;font-size:25px}.report-summary-card span{color:var(--muted);font-size:11px}.report-summary-card.blue{border-top:4px solid var(--blue)}.report-summary-card.green{border-top:4px solid var(--green)}.report-summary-card.orange{border-top:4px solid var(--orange)}.report-summary-card.purple{border-top:4px solid var(--purple)}
.report-type-tabs{display:flex;gap:8px;margin-bottom:16px;overflow:auto}.report-type-tabs a{padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);text-decoration:none;font-weight:700;white-space:nowrap}.report-type-tabs a.active{border-color:#b9d1ff;background:#edf4ff;color:var(--blue)}
.reports-grid{display:grid;gap:16px;margin-bottom:16px}.reports-grid-main{grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr) minmax(300px,.8fr)}.reports-grid-two{grid-template-columns:1fr 1fr}.reports-grid-three{grid-template-columns:repeat(3,1fr)}
.reports-bar-chart{min-height:265px;display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:10px;align-items:end;padding:18px 3px 2px;overflow-x:auto}.reports-bar-column{min-width:48px;display:grid;justify-items:center;gap:5px}.reports-bar-value{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.reports-bar-track{position:relative;width:34px;height:175px;overflow:hidden;border-radius:8px 8px 3px 3px;background:#edf3fb}.reports-bar-track i{position:absolute;left:0;right:0;bottom:0;min-height:4px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--blue),#75a8ff)}.reports-bar-column strong{font-size:10px}.reports-bar-column small{color:var(--muted);font-size:9px}
.report-breakdown-list{display:grid}.report-breakdown-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px 0;border-bottom:1px solid #edf1f7}.report-breakdown-list>div:last-child{border-bottom:0}.report-breakdown-list small{grid-column:1/-1;color:var(--muted)}
.report-ranking-list{display:grid}.report-ranking-list>div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f7}.report-ranking-list>div:last-child{border-bottom:0}.report-ranking-list small{margin-top:3px;color:var(--muted)}.report-rank{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#edf4ff;color:var(--blue);font-weight:800;font-size:10px}
.report-table-card{padding:0;overflow:hidden;margin-bottom:16px}.report-table-card>.card-head{padding:16px;margin:0;border-bottom:1px solid var(--line)}.report-section{margin-bottom:16px}.report-fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.report-fact-grid.two{grid-template-columns:1fr 1fr}.report-fact-grid>div{padding:14px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.report-fact-grid small,.report-fact-grid strong{display:block}.report-fact-grid small{margin-bottom:6px;color:var(--muted)}.report-fact-grid strong{font-size:18px}
@media(max-width:1280px){.reports-grid-main{grid-template-columns:1fr 1fr}.reports-sales-chart{grid-column:1/-1}.reports-grid-three{grid-template-columns:1fr 1fr}.reports-filter-form{grid-template-columns:1fr 1fr 1fr}.reports-filter-form label:first-child{grid-column:1/-1}}
@media(max-width:820px){.report-summary-grid,.reports-grid-main,.reports-grid-two,.reports-grid-three,.report-fact-grid{grid-template-columns:1fr 1fr}.reports-filter-form{grid-template-columns:1fr 1fr}.reports-filter-form label:first-child,.reports-sales-chart{grid-column:1/-1}}
@media(max-width:560px){.report-summary-grid,.reports-grid-main,.reports-grid-two,.reports-grid-three,.report-fact-grid,.report-fact-grid.two,.reports-filter-form{grid-template-columns:1fr}.reports-filter-form label:first-child,.reports-sales-chart{grid-column:auto}}
@media print{.reports-filter-card,.report-type-tabs{display:none!important}.reports-page-head .head-actions{display:none!important}.report-summary-card,.card{box-shadow:none!important}}
/* PharmeSoft Security Administration v1.5 */
.security-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.security-health-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}
.security-health-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#edf4ff;color:var(--blue);font-size:19px;font-weight:900}
.security-health-card.green .security-health-icon{background:#e8faf4;color:var(--green)}
.security-health-card.orange .security-health-icon{background:#fff3e7;color:var(--orange)}
.security-health-card.red .security-health-icon{background:#ffebeb;color:var(--red)}
.security-health-card small,.security-health-card strong,.security-health-card span{display:block}
.security-health-card strong{margin:5px 0;font-size:17px}.security-health-card span{color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.security-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.security-section-card{margin-bottom:16px}.security-mfa-card form{margin:0}
.mfa-setup-box{display:grid;gap:11px;padding:14px;margin:13px 0;border:1px solid #cddcff;border-radius:12px;background:#f7faff}
.mfa-setup-box small,.mfa-setup-box strong,.mfa-setup-box code{display:block}.mfa-setup-box code{padding:10px;margin-top:5px;border-radius:8px;background:#0c2757;color:#fff;letter-spacing:2px;overflow-wrap:anywhere}
.security-inline-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:end}.security-inline-form label{margin:0}
.security-user-agent{max-width:320px;white-space:normal}
.security-event-list{display:grid}.security-event-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f7}.security-event-row:last-child{border-bottom:0}.security-event-row strong,.security-event-row small{display:block}.security-event-row small{margin-top:3px;color:var(--muted)}.security-event-row>span,.security-event-row time{font-size:11px;color:var(--muted);white-space:nowrap}
@media(max-width:1100px){.security-health-grid{grid-template-columns:1fr 1fr}.security-settings-grid{grid-template-columns:1fr}}
@media(max-width:620px){.security-health-grid,.security-inline-form{grid-template-columns:1fr}.security-event-row{grid-template-columns:1fr}.security-event-row>span,.security-event-row time{white-space:normal}}




/* POS digital receipt delivery v1.0 */
.pos-receipt-delivery{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.pos-receipt-heading{display:flex;justify-content:space-between;margin-bottom:10px}.pos-receipt-heading strong,.pos-receipt-heading small{display:block}.pos-receipt-heading small{margin-top:3px;color:var(--muted)}.pos-use-patient-contact{padding:10px;border-radius:9px;background:#effcf8;color:#087456}.receipt-success-modal{width:min(560px,94vw)}.receipt-success-shell{padding:24px;text-align:center}.receipt-success-shell .modal-head{text-align:left}.receipt-success-icon{width:68px;height:68px;margin:4px auto 14px;display:grid;place-items:center;border-radius:50%;background:#e8fbf4;color:var(--green);font-size:34px;font-weight:900}.receipt-success-shell h3{margin:0 0 6px;font-size:20px}.receipt-success-shell p{color:var(--muted)}.receipt-success-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:18px}@media(max-width:620px){.receipt-success-actions{display:grid}.receipt-success-actions .btn{width:100%}}

/* Searchable POS patient selector */
.pos-patient-picker {
    position: relative;
    min-width: 0;
}

.pos-patient-search-label {
    margin: 0;
}

.pos-patient-search-control {
    position: relative;
}

.pos-patient-search-control input {
    width: 100%;
    padding-right: 38px;
}

.pos-patient-clear {
    position: absolute;
    top: 50%;
    right: 7px;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #eef3fa;
    color: var(--muted);
    cursor: pointer;
    transform: translateY(-50%);
    font-size: 18px;
    line-height: 1;
}

.pos-patient-clear:hover {
    color: var(--red);
    background: #ffebeb;
}

.pos-patient-results {
    position: absolute;
    top: 64px;
    left: 0;
    right: 0;
    z-index: 70;
    max-height: 330px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(12, 39, 87, 0.2);
}

.pos-patient-result {
    width: 100%;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--navy);
    text-align: left;
    cursor: pointer;
}

.pos-patient-result:hover,
.pos-patient-result:focus {
    outline: none;
    background: #edf4ff;
}

.pos-patient-result strong,
.pos-patient-result small {
    display: block;
}

.pos-patient-result small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
}

.pos-patient-selected {
    margin-top: 7px;
    padding: 7px 9px;
    border-radius: 8px;
    background: #f7faff;
}

.pos-patient-selected strong,
.pos-patient-selected small {
    display: block;
}

.pos-patient-selected small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
}

.pos-patient-no-results {
    padding: 16px;
    color: var(--muted);
    text-align: center;
}
/* POS encoding-safe icons */
.pos-mode-tabs a > span {
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
    flex: 0 0 18px;
}

.pos-mode-tabs a > span svg {
    width: 18px;
    height: 18px;
}

/* POS lower cards must remain inside their grid columns */
.pos-lower-grid {
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);
}

.pos-lower-grid > .card {
    min-width: 0;
    overflow: hidden;
}

/* Recent transaction rows */
.pos-recent-transactions .list {
    min-width: 0;
}

.pos-transaction-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    min-width: 0;
}

.pos-transaction-copy {
    min-width: 0;
    overflow: hidden;
}

.pos-transaction-copy > strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-transaction-copy > small {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-transaction-amount {
    flex: 0 0 auto;
    white-space: nowrap;
    text-align: right;
    font-size: 12px;
}

/* Ensure patient search text stays clean and contained */
.pos-patient-search-control,
.pos-patient-search-control input {
    min-width: 0;
}

.pos-patient-search-control input {
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 620px) {
    .pos-transaction-row {
        grid-template-columns: 1fr;
    }

    .pos-transaction-amount {
        text-align: left;
    }
}


/* PharmeSoft Shared Drug Catalogue v1.6 */
.catalogue-filter-card{padding:14px;margin-bottom:16px}
.catalogue-filter-form{display:grid;grid-template-columns:minmax(280px,1fr) 210px auto auto;gap:10px;align-items:end}
.catalogue-filter-form label{margin:0}
.catalogue-filter-form label span{font-size:10px;color:var(--muted)}
.catalogue-list-card{padding:0;overflow:hidden}
.catalogue-list-card>.card-head{padding:16px;margin:0;border-bottom:1px solid var(--line)}
.catalogue-bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfdff}
.catalogue-bulk-bar .check{margin:0}
.catalogue-table td{vertical-align:middle}
.catalogue-table small{margin-top:3px}
.catalogue-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px;border-top:1px solid var(--line)}
.catalogue-pagination .disabled{pointer-events:none;opacity:.45}
@media(max-width:820px){
  .catalogue-filter-form{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .catalogue-filter-form{grid-template-columns:1fr}
  .catalogue-bulk-bar{align-items:flex-start;flex-direction:column}
}


/* Prescription / POS workflow refinements */
.rx-create-modal{width:min(1040px,96vw);max-height:92vh;overflow:auto}
.rx-create-modal form{padding:24px}
.rx-create-modal .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.rx-create-modal input,.rx-create-modal select,.rx-create-modal textarea{min-width:0;width:100%}
.rx-send-pos-form{display:grid;gap:8px;padding:14px;margin-bottom:14px;border:1px solid #b9d6ff;border-radius:13px;background:#f4f8ff}
.rx-send-pos-form small{line-height:1.45}
.pos-rx-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;margin-bottom:14px;border:1px solid #b9d6ff;border-radius:12px;background:#f4f8ff}
.pos-rx-banner div{display:grid;gap:3px}.pos-rx-banner small,.pos-rx-banner span{color:var(--muted)}
.catalogue-bulk-actions{display:flex;align-items:center;gap:12px}.catalogue-bulk-actions strong{font-size:12px;color:var(--muted)}
@media(max-width:760px){.rx-create-modal .form-grid{grid-template-columns:1fr}.rx-create-modal .span-2{grid-column:span 1}.pos-rx-banner{align-items:flex-start;flex-direction:column}.catalogue-bulk-actions{width:100%;justify-content:space-between}}

/* Prescription product searchable picker */
.rx-product-picker .rx-product-search{
    margin-bottom:8px;
}
.rx-product-picker .muted{
    display:block;
    margin-top:6px;
}

/* 2026-07 workflow patch */
.inventory-page .table-wrap, .catalogue-list-card .table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.catalogue-table { min-width:1180px; }
.dashboard-activity-link { color:inherit; text-decoration:none; }
.dashboard-activity-link:hover { background:rgba(37,99,235,.045); }
.reorder-items-list { max-height:420px; overflow:auto; border:1px solid #dfe6ef; border-radius:14px; margin-top:14px; }
.reorder-item { display:grid; grid-template-columns:1fr 120px; gap:16px; align-items:center; padding:12px 14px; border-bottom:1px solid #e5e7eb; }
.reorder-item:last-child { border-bottom:0; }
.reorder-item .check span { display:flex; flex-direction:column; gap:2px; }
.rx-form-modal { font-size:16px; }
.rx-form-modal input,.rx-form-modal select,.rx-form-modal textarea { min-height:48px; font-size:16px; padding:11px 12px; }
.rx-form-modal textarea { min-height:120px; }
.rx-form-modal .form-grid { gap:18px; }
.patient-quick-actions { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 8px; }
@media(max-width:760px){.reorder-item{grid-template-columns:1fr}.catalogue-filter-form{grid-template-columns:1fr!important}}
.inventory-products-card { overflow:hidden; }
.inventory-product-list { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.inventory-product-row { min-width:1050px; }


/* Audit log module */
.audit-page-head{margin-bottom:22px}.audit-metrics{margin-bottom:22px}.audit-tabs{display:flex;gap:8px;margin:0 0 16px}.audit-tabs button{border:1px solid var(--border,#dbe5f1);background:#fff;border-radius:10px;padding:11px 16px;font:inherit;font-weight:700;color:#52627a;cursor:pointer}.audit-tabs button.active{background:#eaf2ff;color:#1769e8;border-color:#aacbff}.audit-count{display:inline-flex;min-width:22px;height:22px;padding:0 6px;align-items:center;justify-content:center;border-radius:999px;background:#eef2f7;margin-left:6px;font-size:12px}.audit-filter-card{padding:18px;margin-bottom:18px}.audit-filter-grid{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(150px,1fr));gap:14px;align-items:end}.audit-filter-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#52627a}.audit-filter-grid input,.audit-filter-grid select{width:100%;min-height:42px;border:1px solid #d8e2ef;border-radius:9px;background:#fff;padding:9px 11px;font:inherit;color:#0d2b5b}.audit-filter-actions{display:flex;gap:8px;align-items:center}.audit-table-card{overflow:hidden}.audit-table-scroll{overflow-x:auto}.audit-table{min-width:1180px}.audit-table td{vertical-align:top}.audit-table small{display:block;color:#718198;margin-top:4px}.audit-time{white-space:nowrap}.audit-action-pill{display:inline-flex;border-radius:999px;background:#edf4ff;color:#175fc7;padding:5px 9px;font-weight:700;font-size:12px;white-space:nowrap}.audit-meta{display:flex;flex-direction:column;gap:3px;max-width:320px}.audit-meta span,.audit-security-meta{font-size:12px;color:#53657d}.audit-agent{max-width:170px}.audit-pagination{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-top:1px solid #e5ebf3}.audit-pagination>div{display:flex;gap:8px}.empty-cell{text-align:center;padding:34px!important;color:#718198}.muted{color:#8795a8}.btn.compact{padding:7px 10px;font-size:12px}.status-pill.danger{background:#ffe9e9;color:#bd2525}.status-pill.warning{background:#fff1dd;color:#a65c00}.status-pill.success{background:#e2f8ef;color:#087a51}
@media(max-width:1100px){.audit-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.audit-filter-grid{grid-template-columns:1fr}.audit-tabs{overflow-x:auto}.audit-metrics{grid-template-columns:repeat(2,1fr)}}

.transaction-audit-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.transaction-audit-summary article{background:#fff;border:1px solid #e2e9f2;border-radius:14px;padding:18px}.transaction-audit-summary span,.transaction-audit-summary small{display:block;color:#6b7b91}.transaction-audit-summary strong{display:block;font-size:23px;color:#0d2b5b;margin:6px 0}.transaction-ledger{min-width:1450px}.tx-amount{font-weight:800;white-space:nowrap}.tx-details{display:block;max-width:360px;font-size:12px;color:#53657d}.audit-action-pill.tx-sale{background:#e8f7ef;color:#087a51}.audit-action-pill.tx-claim{background:#f1ebff;color:#6d43c5}.audit-action-pill.tx-stock{background:#fff1dd;color:#a65c00}.audit-action-pill.tx-purchase{background:#eaf2ff;color:#175fc7}@media(max-width:950px){.transaction-audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.transaction-audit-summary{grid-template-columns:1fr}}


/* v0.6.3 navigation, metric-fit and catalogue bulk-selection fixes */
.sidebar nav a:not(.active){background:transparent;color:#334a70;box-shadow:none}
.sidebar nav a:not(.active):hover{background:#f3f7fd;color:var(--blue)}
.metric-copy strong,
.dashboard-metric-copy strong{
    min-width:0;
    max-width:100%;
    font-size:clamp(16px,1.65vw,25px);
    line-height:1.08;
    overflow-wrap:anywhere;
    word-break:break-word;
}
.metric-copy,.dashboard-metric-copy{overflow:hidden}
.metric,.dashboard-metric{overflow:hidden}
@media(max-width:1400px){
    .metric,.dashboard-metric{grid-template-columns:42px minmax(0,1fr) 64px;gap:10px;padding:15px}
    .spark{width:64px}.metric-sparkline{max-width:64px}
}
@media(max-width:1180px){
    .metric,.dashboard-metric{grid-template-columns:40px minmax(0,1fr);}
    .metric .spark,.dashboard-metric .metric-sparkline{display:none}
}
#catalogue-select-all,input[data-catalogue-row-check]{cursor:pointer;width:18px;height:18px;accent-color:var(--blue)}
.catalogue-bulk-bar{position:sticky;top:0;z-index:2}

/* =========================================================
   PharmeSoft colour themes v0.5.1
   ========================================================= */
:root{
  --surface:#fff;
  --surface-2:#f9fbfe;
  --surface-3:#edf4ff;
  --text:#0c2757;
  --text-soft:#334a70;
  --table-line:#edf1f7;
  --overlay:rgba(20,37,63,.58);
  color-scheme:light;
}
html[data-theme="dark"]{
  --navy:#edf4ff;--blue:#6ea0ff;--teal:#2bd5bd;--green:#3bd19e;--orange:#ffae5c;--purple:#ae8cff;--red:#ff6b70;
  --bg:#0d1521;--line:#2b394c;--muted:#9bacbf;--shadow:0 10px 30px rgba(0,0,0,.24);
  --surface:#151f2d;--surface-2:#101a27;--surface-3:#203149;--text:#edf4ff;--text-soft:#c1ccda;--table-line:#263548;--overlay:rgba(0,0,0,.72);
  color-scheme:dark;
}
html[data-theme="slate"]{
  --navy:#243247;--blue:#486f9f;--teal:#328f86;--green:#3d8f70;--orange:#c9823e;--purple:#76679a;--red:#bd5555;
  --bg:#e8edf2;--line:#cbd4dd;--muted:#647181;--shadow:0 8px 24px rgba(52,65,81,.10);
  --surface:#f4f6f8;--surface-2:#edf1f4;--surface-3:#dde5ec;--text:#243247;--text-soft:#46566a;--table-line:#d7dee5;--overlay:rgba(45,55,67,.58);
  color-scheme:light;
}
html[data-theme="contrast"]{
  --navy:#071c45;--blue:#005bea;--teal:#007f73;--green:#006d4e;--orange:#a64d00;--purple:#5a33a5;--red:#b60000;
  --bg:#fff;--line:#72809a;--muted:#334155;--shadow:none;
  --surface:#fff;--surface-2:#f3f6fa;--surface-3:#e5efff;--text:#071c45;--text-soft:#172b4d;--table-line:#a8b2c2;--overlay:rgba(0,0,0,.72);
  color-scheme:light;
}

html[data-theme] body{color:var(--text);background:var(--bg)}
html[data-theme] .sidebar,html[data-theme] .topbar,html[data-theme] .card,html[data-theme] .metric,html[data-theme] .help-card.support-link,
html[data-theme] .global-search,html[data-theme] .global-search-results,html[data-theme] .notification-menu,
html[data-theme] .btn,html[data-theme] .tabs button,html[data-theme] .filters-row button,html[data-theme] .search-large,
html[data-theme] .quick,html[data-theme] .qty button,html[data-theme] .payment-methods button,html[data-theme] .toolbar button,
html[data-theme] .chip,html[data-theme] input,html[data-theme] select,html[data-theme] textarea,
html[data-theme] .modal-card,html[data-theme] .dialog-card,html[data-theme] .settings-tabs button{background:var(--surface);color:var(--text);border-color:var(--line)}
html[data-theme] .global-search input,html[data-theme] input,html[data-theme] select,html[data-theme] textarea{background:var(--surface);color:var(--text)}
html[data-theme] input::placeholder,html[data-theme] textarea::placeholder{color:var(--muted)}
html[data-theme] .sidebar nav a{color:var(--text-soft)}
html[data-theme] .sidebar nav a:hover,html[data-theme] .sidebar nav a.active,html[data-theme] .tabs button.active,html[data-theme] .chip.active{background:var(--surface-3);color:var(--blue)}
html[data-theme] td,html[data-theme] .list-row,html[data-theme] .notification-item{border-color:var(--table-line)}
html[data-theme] .global-search kbd{background:var(--surface-2);border-color:var(--line);color:var(--muted)}
html[data-theme] .global-result:hover,html[data-theme] .notification-item:hover,html[data-theme] .icon-btn:hover,html[data-theme] .plain-icon:hover{background:var(--surface-2)}
html[data-theme] .donut:after{background:var(--surface)}
html[data-theme] .power-button{background:var(--surface)}
html[data-theme] .badge-dot{border-color:var(--surface)}
html[data-theme] .modal-backdrop,html[data-theme] .modal-overlay{background:var(--overlay)}
html[data-theme="dark"] img{filter:none}
html[data-theme="contrast"] .card,html[data-theme="contrast"] .metric,html[data-theme="contrast"] .btn,html[data-theme="contrast"] input,html[data-theme="contrast"] select,html[data-theme="contrast"] textarea{border-width:2px}

.theme-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:8px}
.theme-option{appearance:none;text-align:left;border:2px solid var(--line);border-radius:15px;padding:14px;background:var(--surface);color:var(--text);cursor:pointer;display:grid;gap:7px;min-width:0}
.theme-option:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.theme-option.active,.theme-option[aria-checked="true"]{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent)}
.theme-option strong{font-size:14px}.theme-option small{color:var(--muted);line-height:1.45}
.theme-preview{height:92px;border-radius:11px;display:grid;grid-template-columns:25% 1fr;grid-template-rows:24% 1fr;gap:6px;padding:8px;overflow:hidden;border:1px solid rgba(100,116,139,.25)}
.theme-preview i{grid-row:1/3;border-radius:6px}.theme-preview b{border-radius:5px}.theme-preview em{border-radius:6px}
.theme-preview-light{background:#f6f9fd}.theme-preview-light i,.theme-preview-light b,.theme-preview-light em{background:#fff}.theme-preview-light b{box-shadow:inset 18px 0 #2367e8}
.theme-preview-dark{background:#0d1521}.theme-preview-dark i,.theme-preview-dark b,.theme-preview-dark em{background:#151f2d}.theme-preview-dark b{box-shadow:inset 18px 0 #6ea0ff}
.theme-preview-slate{background:#e8edf2}.theme-preview-slate i,.theme-preview-slate b,.theme-preview-slate em{background:#f4f6f8}.theme-preview-slate b{box-shadow:inset 18px 0 #486f9f}
.theme-preview-contrast{background:#fff;border-color:#071c45}.theme-preview-contrast i,.theme-preview-contrast b,.theme-preview-contrast em{background:#fff;border:2px solid #071c45}.theme-preview-contrast b{box-shadow:inset 18px 0 #005bea}
.theme-save-note{color:var(--muted);margin:16px 0 0;font-size:12px}
@media(max-width:1050px){.theme-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.theme-picker{grid-template-columns:1fr}}


/* =========================================================
   PharmeSoft themes v0.5.2 - full component coverage
   ========================================================= */
html[data-theme="teal"]{
  --navy:#eafdf9;--blue:#52d7c7;--teal:#2dd4bf;--green:#47d7a4;--orange:#f1b865;--purple:#9f8cff;--red:#ff7277;
  --bg:#0c1d20;--line:#274247;--muted:#9bb9b9;--shadow:0 10px 30px rgba(0,0,0,.22);
  --surface:#132a2e;--surface-2:#102428;--surface-3:#174046;--text:#ecfffb;--text-soft:#c3dbd8;--table-line:#254046;--overlay:rgba(0,0,0,.70);color-scheme:dark;
}
html[data-theme="purple"]{
  --navy:#f8f1ff;--blue:#b18cff;--teal:#54d6c4;--green:#58d39a;--orange:#f0ae68;--purple:#c398ff;--red:#ff7888;
  --bg:#171221;--line:#3b304c;--muted:#b7a9c8;--shadow:0 10px 30px rgba(0,0,0,.25);
  --surface:#21192e;--surface-2:#1b1526;--surface-3:#342448;--text:#faf5ff;--text-soft:#d8cce6;--table-line:#392d49;--overlay:rgba(0,0,0,.72);color-scheme:dark;
}
html[data-theme="sand"]{
  --navy:#3d3429;--blue:#8b6f47;--teal:#4f897e;--green:#5e8d62;--orange:#b77a3d;--purple:#7b6f91;--red:#a95050;
  --bg:#eee8dd;--line:#d2c8b8;--muted:#756b5f;--shadow:0 8px 24px rgba(71,58,42,.10);
  --surface:#faf6ef;--surface-2:#f3ede3;--surface-3:#e7ddcf;--text:#3d3429;--text-soft:#615548;--table-line:#ded4c5;--overlay:rgba(55,45,33,.58);color-scheme:light;
}

/* Cover legacy hard-coded white components that were missed by v0.5.1. */
html[data-theme] .dashboard-metric,
html[data-theme] .product,
html[data-theme] .pos-product-card,
html[data-theme] .product-visual,
html[data-theme] .rx-status-card,
html[data-theme] .inventory-stat,
html[data-theme] .stat-card,
html[data-theme] .summary-card,
html[data-theme] .patient-card,
html[data-theme] .catalogue-bulk-bar,
html[data-theme] .transaction-audit-summary article,
html[data-theme] .prescriber-directory-card,
html[data-theme] .prescriber-detail-modal,
html[data-theme] .prescriber-summary-grid article{
  background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important;
}
html[data-theme] .dashboard-metric-copy small,
html[data-theme] .dashboard-metric-copy strong,
html[data-theme] .product strong,
html[data-theme] .product h3,
html[data-theme] .pos-product-copy strong,
html[data-theme] .rx-status-card strong{color:var(--text)!important}
html[data-theme] .dashboard-metric-copy span,
html[data-theme] .product small,
html[data-theme] .product p,
html[data-theme] .pos-product-copy small{color:var(--muted)!important}
html[data-theme] .product-visual{background:var(--surface-2)!important}
html[data-theme] .search-large,
html[data-theme] .rx-search,
html[data-theme] .pos-search,
html[data-theme] .filters-row{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}

.theme-preview-teal{background:#0c1d20}.theme-preview-teal i,.theme-preview-teal b,.theme-preview-teal em{background:#132a2e}.theme-preview-teal b{box-shadow:inset 18px 0 #2dd4bf}
.theme-preview-purple{background:#171221}.theme-preview-purple i,.theme-preview-purple b,.theme-preview-purple em{background:#21192e}.theme-preview-purple b{box-shadow:inset 18px 0 #b18cff}
.theme-preview-sand{background:#eee8dd}.theme-preview-sand i,.theme-preview-sand b,.theme-preview-sand em{background:#faf6ef}.theme-preview-sand b{box-shadow:inset 18px 0 #8b6f47}
.theme-picker{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

/* Prescriber directory v0.2 */
.prescriber-filter-grid{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(260px,1fr) auto;gap:14px;align-items:end;padding:18px;border-bottom:1px solid var(--line)}
.prescriber-filter-grid label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--text-soft)}
.prescriber-filter-grid input{width:100%;min-height:46px}
.prescriber-table{min-width:900px}
.prescriber-name-link{border:0;background:transparent;color:var(--blue);font:inherit;padding:0;cursor:pointer;text-align:left}
.prescriber-name-link:hover{text-decoration:underline}
.prescriber-empty{padding:28px;text-align:center;color:var(--muted)}
.prescriber-detail-modal{width:min(1100px,96vw)}
.prescriber-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.prescriber-summary-grid article{border:1px solid var(--line);border-radius:13px;padding:14px}
.prescriber-summary-grid small,.prescriber-summary-grid strong{display:block}.prescriber-summary-grid small{color:var(--muted);margin-bottom:5px}.prescriber-summary-grid strong{font-size:18px}
.prescriber-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.prescriber-detail-grid>section{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.prescriber-detail-grid .card-head{padding:14px 16px;border-bottom:1px solid var(--line);margin:0}
.prescriber-patient-list,.prescriber-rx-list{max-height:430px;overflow:auto}
.prescriber-patient-row,.prescriber-rx-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--table-line);text-decoration:none;color:var(--text)}
.prescriber-patient-row:hover,.prescriber-rx-row:hover{background:var(--surface-2)}
.prescriber-patient-row strong,.prescriber-patient-row small,.prescriber-rx-row strong,.prescriber-rx-row small{display:block}
.prescriber-patient-row small,.prescriber-rx-row small{color:var(--muted);margin-top:3px}
@media(max-width:820px){.prescriber-filter-grid{grid-template-columns:1fr}.prescriber-summary-grid{grid-template-columns:repeat(2,1fr)}.prescriber-detail-grid{grid-template-columns:1fr}}
@media(max-width:520px){.prescriber-summary-grid{grid-template-columns:1fr}}

/* =========================================================
   PRESCRIPTION QUEUE — RESPONSIVE WIDTH / HORIZONTAL SCROLL
   Add after the existing .rx-* styles
   ========================================================= */

/* Prevent the page/card from forcing the entire layout wider */
.rx-queue-card,
.rx-toolbar,
.rx-list {
    min-width: 0;
    max-width: 100%;
}

/* Allow the queue to scroll horizontally when required */
.rx-list {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

/* Give each row a controlled grid */
.rx-row {
    display: grid;
    grid-template-columns:
        minmax(190px, 1.05fr)   /* patient */
        minmax(145px, 0.85fr)   /* RX number/date */
        minmax(230px, 1.45fr)   /* medications */
        minmax(130px, 0.75fr)   /* branch/allergy */
        minmax(155px, auto)     /* badges */
        minmax(190px, auto);    /* actions */

    align-items: center;
    gap: 16px;
    width: 100%;
    min-width: 1080px;
    box-sizing: border-box;
}

/* Prevent long values from unnecessarily widening columns */
.rx-patient,
.rx-reference,
.rx-medications,
.rx-branch,
.rx-badges,
.rx-actions {
    min-width: 0;
}

.rx-patient > div,
.rx-reference,
.rx-medications,
.rx-branch {
    overflow: hidden;
}

/* Wrap longer medication and reference values safely */
.rx-reference strong,
.rx-medications strong {
    display: block;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.3;
}

.rx-patient strong,
.rx-patient small,
.rx-reference small,
.rx-medications small,
.rx-branch strong,
.rx-branch small {
    display: block;
    max-width: 100%;
}

/* Keep badges together while allowing wrapping */
.rx-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

/* Keep action buttons visible and organized */
.rx-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.rx-actions form {
    margin: 0;
}

/* Toolbar should wrap instead of widening the whole page */
.rx-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}

.rx-status-tabs {
    display: flex;
    flex: 1 1 620px;
    min-width: 0;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: thin;
}

.rx-status-tabs > a {
    flex: 0 0 auto;
    white-space: nowrap;
}

.rx-search {
    flex: 1 1 300px;
    min-width: 240px;
    max-width: 440px;
}

/* Make the horizontal scrollbar easier to notice */
.rx-list::-webkit-scrollbar,
.rx-status-tabs::-webkit-scrollbar {
    height: 9px;
}

.rx-list::-webkit-scrollbar-track,
.rx-status-tabs::-webkit-scrollbar-track {
    background: rgba(15, 48, 94, 0.06);
    border-radius: 999px;
}

.rx-list::-webkit-scrollbar-thumb,
.rx-status-tabs::-webkit-scrollbar-thumb {
    background: rgba(15, 48, 94, 0.28);
    border-radius: 999px;
}

.rx-list::-webkit-scrollbar-thumb:hover,
.rx-status-tabs::-webkit-scrollbar-thumb:hover {
    background: rgba(15, 48, 94, 0.45);
}

/* Slightly tighter layout on medium-sized screens */
@media (max-width: 1400px) {
    .rx-row {
        grid-template-columns:
            minmax(175px, 1fr)
            minmax(135px, 0.8fr)
            minmax(210px, 1.35fr)
            minmax(120px, 0.7fr)
            minmax(145px, auto)
            minmax(180px, auto);

        gap: 12px;
        min-width: 1010px;
    }

    .rx-row .btn.mini {
        padding-left: 11px;
        padding-right: 11px;
        font-size: 0.82rem;
    }
}

/* Mobile/tablet: use cards instead of requiring a very wide row */
@media (max-width: 760px) {
    .rx-list {
        overflow-x: visible;
    }

    .rx-row {
        min-width: 0;
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 18px;
    }

    .rx-reference,
    .rx-medications,
    .rx-branch,
    .rx-badges {
        padding-left: 0;
    }

    .rx-actions {
        justify-content: flex-start;
        flex-wrap: wrap;
        white-space: normal;
    }

    .rx-search {
        flex-basis: 100%;
        min-width: 0;
        max-width: none;
        width: 100%;
    }
}








.permission-module-list {
    display: grid;
    gap: 16px;
    margin: 18px 0;
    max-height: 55vh;
    overflow-y: auto;
    padding-right: 6px;
}

.permission-module {
    border: 1px solid var(--border, #dfe5ec);
    border-radius: 12px;
    overflow: hidden;
}

.permission-module-head {
    padding: 12px 14px;
    background: var(--soft-bg, #f4f7fa);
}

.permission-module-head h3 {
    margin: 0;
}

.permission-choice {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    border-top: 1px solid var(--border, #dfe5ec);
}

.permission-choice input {
    margin-top: 4px;
}

.permission-choice span {
    display: grid;
    gap: 3px;
}

.permission-choice small {
    opacity: 0.75;
}


/* =========================================================
   Roles and permissions matrix
   ========================================================= */

.role-permission-dialog {
    width: min(1180px, 96vw);
    max-width: none;
    max-height: 92vh;
    padding: 0;
    overflow: hidden;
}

.role-permission-form {
    width: 100%;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    padding: 0 !important;
    background: var(--surface, #fff);
}

.role-permission-header {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px 16px;
    border-bottom: 1px solid var(--line);
}

.role-permission-header h2 {
    margin: 0;
    font-size: 21px;
    font-weight: 700;
}

.role-permission-header p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.role-permission-title-row {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

.role-system-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 8px;
    border-radius: 999px;
    background: #edf4ff;
    color: var(--blue);
    font-size: 10px;
    font-weight: 600;
}

.role-dialog-close {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #eef3fa;
    color: var(--navy);
    font-size: 22px;
    cursor: pointer;
}

.role-permission-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 18px 22px 22px;
}

.role-details-panel {
    padding: 15px;
    margin-bottom: 17px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface-2, #f9fbfe);
}

.role-details-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 13px;
}

.role-field {
    display: grid;
    gap: 6px;
    margin: 0 0 12px;
    font-weight: 400;
}

.role-field:last-child {
    margin-bottom: 0;
}

.role-field > span {
    color: var(--text-soft, #334a70);
    font-size: 11px;
    font-weight: 600;
}

.role-field textarea {
    min-height: 74px;
}

.permission-matrix-section {
    min-width: 0;
}

.permission-matrix-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 11px;
}

.permission-matrix-toolbar h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}

.permission-matrix-toolbar p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.permission-matrix-actions {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.permission-matrix-scroll {
    max-height: 48vh;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

.permission-matrix {
    min-width: 850px;
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    white-space: normal;
}

.permission-matrix thead {
    position: sticky;
    top: 0;
    z-index: 3;
}

.permission-matrix th {
    padding: 11px 12px;
    background: var(--surface-2, #f7faff);
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.permission-matrix td {
    padding: 12px;
    border-bottom: 1px solid var(--table-line, #edf1f7);
    vertical-align: middle;
    font-size: 12px;
    font-weight: 400;
}

.permission-matrix tbody tr:last-child td {
    border-bottom: 0;
}

.permission-matrix tbody tr:hover td {
    background: var(--surface-2, #f9fbfe);
}

.permission-module-column {
    width: 155px;
}

.permission-allow-column {
    width: 145px;
    text-align: center;
}

.permission-module-cell {
    vertical-align: top !important;
    background: var(--surface-2, #f8fafe);
    border-right: 1px solid var(--line);
}

.permission-module-cell > div {
    position: sticky;
    top: 48px;
    display: grid;
    gap: 7px;
}

.permission-module-cell span {
    color: var(--navy);
    font-size: 12px;
    font-weight: 700;
}

.permission-module-toggle {
    width: max-content;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--blue);
    font-size: 10px;
    font-weight: 500;
    cursor: pointer;
}

.permission-module-toggle:hover {
    text-decoration: underline;
}

.permission-name-cell {
    width: 235px;
    color: var(--navy);
    font-weight: 600 !important;
}

.permission-name-cell code {
    display: block;
    width: max-content;
    max-width: 100%;
    margin-top: 5px;
    padding: 3px 6px;
    overflow: hidden;
    border-radius: 5px;
    background: #f0f4f9;
    color: #62728a;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Consolas,
        monospace;
    font-size: 9px;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.permission-description-cell {
    color: var(--muted);
    line-height: 1.45;
}

.permission-allow-cell {
    text-align: center;
}

.permission-switch {
    display: inline-grid;
    grid-template-columns: 36px auto;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    font-weight: 400;
    cursor: pointer;
}

.permission-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.permission-switch > span {
    position: relative;
    width: 36px;
    height: 20px;
    display: block;
    border-radius: 999px;
    background: #cbd5e1;
    transition: 0.18s ease;
}

.permission-switch > span::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(12, 39, 87, 0.18);
    transition: 0.18s ease;
}

.permission-switch input:checked + span {
    background: var(--green);
}

.permission-switch input:checked + span::after {
    transform: translateX(16px);
}

.permission-switch input:focus-visible + span {
    outline: 3px solid rgba(35, 103, 232, 0.22);
    outline-offset: 2px;
}

.permission-switch em {
    min-width: 44px;
    color: var(--muted);
    font-size: 10px;
    font-style: normal;
    font-weight: 500;
    text-align: left;
}

.permission-switch input:checked ~ em {
    color: var(--green);
}

.role-permission-footer {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 22px;
    border-top: 1px solid var(--line);
    background: var(--surface, #fff);
    box-shadow: 0 -8px 22px rgba(24, 58, 110, 0.05);
}

.role-permission-footer > div:first-child {
    color: var(--muted);
    font-size: 11px;
}

.role-permission-footer
[data-selected-permission-count] {
    color: var(--navy);
    font-weight: 700;
}

.role-permission-footer-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Reduce excessive boldness inside the permission dialog. */
.role-permission-dialog label {
    font-weight: 400;
}

.role-permission-dialog input,
.role-permission-dialog select,
.role-permission-dialog textarea {
    font-weight: 400;
}

@media (max-width: 760px) {
    .role-permission-dialog {
        width: 96vw;
        max-height: 94vh;
    }

    .role-permission-form {
        max-height: 94vh;
    }

    .role-details-grid {
        grid-template-columns: 1fr;
    }

    .permission-matrix-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .role-permission-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .role-permission-footer-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}


/* =========================================================
   Scrollable application sidebar
   ========================================================= */

.sidebar {
    min-height: 0;
    overflow: hidden;
}

.sidebar .brand {
    flex: 0 0 auto;
}

.sidebar nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    align-content: start;
    padding-right: 5px;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

.sidebar-bottom {
    flex: 0 0 auto;
    margin-top: 12px;
}

/* Firefox */
.sidebar nav {
    scrollbar-width: thin;
    scrollbar-color:
        rgba(35, 103, 232, 0.32)
        transparent;
}

/* Chrome, Edge and Safari */
.sidebar nav::-webkit-scrollbar {
    width: 7px;
}

.sidebar nav::-webkit-scrollbar-track {
    background: transparent;
}

.sidebar nav::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(35, 103, 232, 0.25);
}

.sidebar nav::-webkit-scrollbar-thumb:hover {
    background: rgba(35, 103, 232, 0.45);
}


@media (max-width: 760px) {
    .sidebar {
        height: 100dvh;
    }

    .sidebar nav {
        padding-bottom: 18px;
    }
}


.role-access-grid {
    display: grid;
    grid-template-columns:
        repeat(auto-fit, minmax(290px, 1fr));
    gap: 14px;
}

.role-access-card {
    display: flex;
    flex-direction: column;
    min-height: 190px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface, #fff);
}

.role-access-card-head {
    align-items: flex-start;
}

.role-access-card-head h3 {
    margin: 0 0 5px;
    font-size: 15px;
    font-weight: 700;
}

.role-access-card-head p {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}

.role-access-summary {
    display: flex;
    gap: 6px;
    margin: 14px 0;
}

.role-access-summary span {
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--surface-2, #f2f5f8);
    color: var(--muted);
    font-size: 10px;
    font-weight: 500;
}

.role-access-card > .btn {
    width: max-content;
    margin-top: auto;
}