html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1:focus {
    outline: none;
}

a, .btn-link {
    color: #0071c1;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.loading-progress {
    position: relative;
    display: block;
    width: 8rem;
    height: 8rem;
    margin: 20vh auto 1rem auto;
}

    .loading-progress circle {
        fill: none;
        stroke: #e0e0e0;
        stroke-width: 0.6rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
    }

        .loading-progress circle:last-child {
            stroke: #1b6ec2;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: bold;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Loading");
    }

code {
    color: #c02d76;
}

.field-stack { display:grid; gap:1rem; }
.field-stack label,.denomination-grid label { display:grid; gap:.45rem; color:var(--ink); font-weight:600; }
.shift-layout { grid-template-columns:minmax(20rem,.72fr) minmax(0,1.55fr); align-items:start; }
.close-panel { margin-top:1.4rem; padding-top:1.25rem; border-top:1px solid var(--line); }
.close-panel h3 { margin:.2rem 0 1rem; }
.denomination-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem 1rem; }
.denomination-grid label { grid-template-columns:5.5rem minmax(0,1fr); align-items:center; }
.reconcile-summary { display:grid; gap:.5rem; margin:1.1rem 0; }
.reconcile-summary div { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); padding:.55rem 0; }
.reconcile-summary dt { color:var(--muted); }.reconcile-summary dd { margin:0; font-weight:700; font-variant-numeric:tabular-nums; }
.inline-success { margin-bottom:1rem; padding:.8rem 1rem; border-left:3px solid #1b8b5a; background:#edf8f2; color:#146943; }
.selected-row { box-shadow:inset 3px 0 0 var(--brand); background:#edf6fb !important; }
.text-danger { color:#b42338 !important; }
@media (max-width: 980px) { .shift-layout { grid-template-columns:1fr; }.denomination-grid { grid-template-columns:1fr; } }
.pos-heading{align-items:center}.drawer-badge{display:grid;gap:.15rem;padding:.7rem 1rem;border-left:3px solid var(--brand);background:#edf6fb}.drawer-badge span{font-size:.75rem;color:var(--muted)}.drawer-badge strong{font-variant-numeric:tabular-nums}.pos-shell{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:1.25rem;align-items:start}.pos-workspace,.totals-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.25rem}.pos-toolbar,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.pos-toolbar>div:first-child{display:grid}.pos-toolbar-actions{display:flex;gap:.6rem}.product-search{margin:1.25rem 0}.product-search>label{display:block;font-weight:700;margin-bottom:.5rem}.search-composer{display:grid;grid-template-columns:minmax(0,1fr) 7rem auto;gap:.6rem}.product-results{display:grid;margin-top:.5rem;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.product-results button,.held-sale{display:flex;justify-content:space-between;gap:1rem;text-align:left;padding:.85rem 1rem;border:0;border-bottom:1px solid var(--line);background:#fff}.product-results button:hover,.held-sale:hover{background:#f3f8fb}.product-results button:disabled{opacity:.55}.product-results span,.held-sale span,.product-meta{display:grid;gap:.15rem}.product-meta{text-align:right}.product-results small,.held-sale small,.cell-subtext{color:var(--muted)}.held-panel{margin:1rem 0;padding:1rem;background:#f5f8fa;border-radius:var(--radius-md)}.held-sale{width:100%}.cart-section{margin-top:1rem}.totals-panel{position:sticky;top:1rem}.totals-panel dl{margin:0}.totals-panel dl div{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.totals-panel dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}.totals-panel .grand-total{font-size:1.2rem;border-bottom:0}.checkout-button,.checkout-submit{width:100%;margin-top:1rem}.checkout-panel{max-width:38rem;margin:1.5rem auto}.change-preview{display:flex;justify-content:space-between;margin-top:1rem;padding:1rem;background:#edf8f2;border-left:3px solid #1b8b5a}.pos-blocked{padding:4rem 2rem}.danger-text{color:#b42338}.optional{font-weight:400;color:var(--muted);font-size:.8rem}.state-panel.compact{padding:2rem}.search-loading{padding:.75rem;color:var(--muted)}
.pos-shopbar{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:1rem 0;padding:.7rem .9rem;border-radius:.65rem;background:#f2f6f8;color:#496071;font-size:.86rem}.pos-shopbar strong{margin-right:.8rem;color:var(--ink)}.pos-customer-panel{margin-top:1rem}.coupon-composer{margin-top:.75rem;grid-template-columns:minmax(0,1fr) auto}.quantity-control{display:flex;align-items:center;justify-content:flex-end;gap:.3rem}.quantity-control .text-button{min-width:2rem;padding:.35rem}.payment-methods{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}.payment-method{min-height:42px;padding:.55rem .85rem;border:1px solid var(--line);border-radius:.55rem;background:#fff;color:var(--ink);font-weight:700}.payment-method.active{border-color:var(--brand);background:var(--brand);color:#fff}.pay-area{display:flex;gap:1rem;align-items:stretch;margin-top:1rem}.quick-cash-column{display:grid;grid-template-columns:repeat(2,minmax(5.5rem,1fr));gap:.5rem}.quick-cash{min-height:3.4rem;border:1px solid #b9d2cb;border-radius:.55rem;background:#eff9f5;color:#12663f;font-weight:800;font-variant-numeric:tabular-nums}.quick-cash:hover{background:#dff3e9}.pay-keypad{display:grid;grid-template-columns:repeat(3,3.5rem);gap:.45rem}.pay-key{min-height:3.25rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;color:var(--ink);font-weight:750}.pay-key:hover{background:var(--surface-muted)}.pay-key.red{color:var(--danger);background:var(--danger-soft)}.pos-cart-table td{height:auto;min-height:52px}.pos-cart-table .form-control{min-height:38px;padding:.35rem .45rem}.drawer-badge small{color:var(--muted);font-variant-numeric:tabular-nums}@media(max-width:680px){.coupon-composer{grid-template-columns:1fr}.pay-area{flex-direction:column}.pay-keypad{grid-template-columns:repeat(3,1fr)}.pos-shopbar{align-items:flex-start}.quantity-control{justify-content:flex-start}}
@media(max-width:1050px){.pos-shell{grid-template-columns:1fr}.totals-panel{position:static}}@media(max-width:680px){.search-composer{grid-template-columns:1fr 6rem}.search-composer .button{grid-column:1/-1}.pos-toolbar{align-items:flex-start;flex-direction:column}.pos-toolbar-actions{width:100%;flex-wrap:wrap}}
/* POS terminal: dense operational workspace, not a dashboard page. */
.pos-shell{gap:1rem}.pos-workspace{padding:1rem}.totals-panel{padding:1rem;box-shadow:0 12px 28px rgba(16,38,61,.08)}
.pos-toolbar{padding-bottom:.85rem;border-bottom:1px solid var(--line)}.pos-toolbar strong{font-size:1.1rem;color:var(--brand)}
.pos-toolbar-actions .compact-button{min-height:38px;padding:.42rem .65rem}.product-search{margin:1rem 0}
.product-results{max-height:15rem;overflow-y:auto;box-shadow:0 8px 18px rgba(16,38,61,.07)}.product-results button{min-height:52px;align-items:center}
.pos-customer-panel{padding:1rem}.pos-cart-table{max-height:calc(100vh - 25rem);overflow:auto}.pos-cart-table table{min-width:52rem}
.pos-cart-table tbody tr:hover{background:#f3f8fb}.pos-cart-table td{vertical-align:middle}.cart-section .section-heading{margin-bottom:.65rem}
.totals-panel dl div{min-height:52px;align-items:center;padding:.75rem 0}.totals-panel .grand-total{margin-top:.25rem;padding-top:1rem;border-top:2px solid var(--brand);font-size:1.35rem}.totals-panel .grand-total dd{color:var(--brand)}
.checkout-panel{max-width:none;margin:0;padding:1rem;background:var(--surface-muted);border:1px solid var(--line);border-radius:var(--radius-md)}
body.pos-fullscreen{overflow:hidden}body.pos-fullscreen .sidebar,body.pos-fullscreen .topbar,body.pos-fullscreen .page-heading{display:none!important}body.pos-fullscreen .workspace{margin:0!important;padding:1rem!important;max-width:none!important;height:100vh;overflow:auto}body.pos-fullscreen .pos-shell{min-height:calc(100vh - 2rem)}
@media(max-width:680px){.pos-heading .drawer-badge{width:100%;border-left:0;border-top:3px solid var(--brand)}.pos-workspace,.totals-panel{padding:.8rem}.product-results{max-height:12rem}.pos-cart-table{max-height:none}.pos-toolbar-actions .compact-button{flex:1}.pos-cart-table table{min-width:46rem}}
/* Cashier checkout: payment controls stay together and note shortcuts are recognizable at a glance. */
.checkout-cash-layout{display:grid;grid-template-columns:minmax(15rem,1fr) minmax(23rem,1.2fr);gap:1.25rem;align-items:start;margin-top:1rem}.checkout-cash-layout>.field-stack{margin:0}.tender-input{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;border-color:var(--brand)}.pay-area{margin:0;padding:1rem;background:#f4f8fa;border:1px solid var(--line);border-radius:.7rem}.quick-cash-column{grid-template-columns:repeat(2,minmax(6.25rem,1fr))}.cash-note{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;min-height:4.55rem;padding:.48rem .6rem;border:1px solid #b6d5c6;border-radius:.55rem;text-align:left;color:#0e5c3c;background:#e7f4ed;box-shadow:inset 0 0 0 2px rgba(255,255,255,.45)}.cash-note::after{content:"";position:absolute;inset:.32rem;border:1px dashed rgba(14,92,60,.28);border-radius:.35rem;pointer-events:none}.cash-note span,.cash-note strong,.cash-note small{position:relative;z-index:1}.cash-note span{grid-row:1/3;align-self:center;font-size:.7rem;font-weight:800}.cash-note strong{font-size:1.25rem;line-height:1.05;font-variant-numeric:tabular-nums}.cash-note small{font-size:.65rem;color:#2d7458}.cash-note:hover{transform:translateY(-1px);background:#d9efdf}.cash-note:active{transform:translateY(0) scale(.98)}.note-50{background:#e7f0fa;border-color:#b8cce2;color:#174f82}.note-50 small{color:#47729a}.note-100{background:#f5ebf5;border-color:#d8bed8;color:#6e3b72}.note-100 small{color:#875c8a}.exact-note{background:#fff7e2;border-color:#e6c56f;color:#805a00}.exact-note small{color:#896b24}.non-cash-tip{padding:1rem;border-left:3px solid var(--brand);background:#edf6fb;color:#42596a;border-radius:.35rem}.checkout-panel .change-preview{margin-top:1rem}@media(max-width:980px){.checkout-cash-layout{grid-template-columns:1fr}.pay-area{max-width:34rem}}@media(max-width:480px){.quick-cash-column{grid-template-columns:repeat(2,1fr)}.pay-area{padding:.75rem}.cash-note{min-height:4.25rem}}
.checkout-summary{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:.7rem;background:#fff}.checkout-summary h3{margin:0;font-size:1rem}.checkout-summary .section-heading{margin-bottom:.5rem}.checkout-summary dl{margin:0}.checkout-summary dl div{display:flex;justify-content:space-between;gap:1rem;min-height:2.4rem;align-items:center;border-top:1px solid var(--line);font-size:.9rem}.checkout-summary dd{margin:0;font-weight:750;font-variant-numeric:tabular-nums}.checkout-summary .summary-total{font-size:1.05rem;color:var(--brand)}.checkout-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1rem}.checkout-actions .button{width:100%;min-height:3rem}.pos-customer-card{display:grid;gap:.35rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.pos-customer-card h3{margin:0;font-size:.95rem}.pos-customer-card small{color:var(--muted);line-height:1.4}@media(max-width:480px){.checkout-actions{grid-template-columns:1fr}}
.checkout-main-grid{display:grid;grid-template-columns:minmax(20rem,.9fr) minmax(28rem,1.1fr);gap:1.25rem;align-items:start;margin-top:1rem}.checkout-left-column,.checkout-right-column{min-width:0}.checkout-left-column .checkout-summary{margin:0 0 1rem}.checkout-details,.payment-entry{margin:0}.gift-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem}.checkout-right-column{padding:1rem;background:#f4f8fa;border:1px solid var(--line);border-radius:.7rem}.checkout-right-column .payment-methods{margin-top:0}.checkout-right-column .pay-area{margin-top:1rem}.cash-note{padding:0;overflow:hidden;background:#fff;border-color:#c9d3dc;box-shadow:0 2px 7px rgba(16,38,61,.1)}.cash-note::after{display:none}.cash-note img{display:block;width:100%;height:100%;object-fit:cover}.cash-note:hover{background:#fff;box-shadow:0 5px 12px rgba(16,38,61,.16)}.cash-note.exact-note{padding:.48rem .6rem}.checkout-left-column .change-preview{margin-top:1rem}@media(max-width:1100px){.checkout-main-grid{grid-template-columns:1fr}.checkout-right-column{max-width:42rem}}@media(max-width:560px){.gift-pair{grid-template-columns:1fr}.checkout-right-column{padding:.75rem}}
.checkout-right-column .quick-cash-column{grid-template-columns:repeat(2,6.5rem);grid-auto-rows:3.7rem;gap:.45rem}.checkout-right-column .cash-note{min-height:0;height:3.7rem}.checkout-right-column .cash-note.exact-note{min-height:0}.checkout-right-column .pay-keypad{grid-template-columns:repeat(3,3.1rem);gap:.4rem}.checkout-right-column .pay-key{min-height:2.8rem;font-size:.88rem}.checkout-right-column .pay-area{padding:.75rem;gap:.75rem}@media(max-width:560px){.checkout-right-column .quick-cash-column{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:3.5rem}.checkout-right-column .pay-keypad{grid-template-columns:repeat(3,1fr)}}
.safe-drop-alert{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.75rem 0;padding:.75rem 1rem;border:1px solid #e3b72b;border-radius:.55rem;background:#fff4b8;color:#7a4500;font-size:.9rem}.safe-drop-alert strong{color:#a01919}.safe-drop-alert b{font-variant-numeric:tabular-nums}.safe-drop-alert a{margin-left:auto;color:#064f94;font-weight:800;text-decoration:underline}@media(max-width:560px){.safe-drop-alert a{margin-left:0;width:100%}}
.safe-drop-alert .button{margin-left:auto;text-decoration:none}.safe-drop-alert .button+.button{margin-left:0}@media(max-width:560px){.safe-drop-alert .button{margin-left:0;width:auto}}
.safe-drop-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:1rem;background:rgba(16,38,61,.38);backdrop-filter:blur(2px)}.safe-drop-dialog{width:min(100%,34rem);padding:1.25rem;border:1px solid #e3b72b;border-radius:.7rem;background:#fffdf5;box-shadow:0 24px 54px rgba(16,38,61,.28)}.safe-drop-dialog h2{margin:.15rem 0 0}.safe-drop-dialog p{color:#536576}.safe-drop-fields{display:grid;grid-template-columns:1fr;gap:.75rem}.safe-drop-dialog .form-actions{margin-top:1rem}@media(max-width:560px){.safe-drop-backdrop{align-items:end;padding:0}.safe-drop-dialog{width:100%;border-radius:.8rem .8rem 0 0}}
.safe-drop-dialog{width:min(100%,40rem);max-height:calc(100dvh - 2rem);overflow:auto}.safe-drop-denomination-grid{display:grid;grid-template-columns:1fr minmax(7.5rem,.8fr) minmax(7rem,.7fr);gap:.6rem;align-items:center}.safe-drop-denomination-heading{padding:.55rem .65rem;border-radius:.45rem .45rem 0 0;background:#eef3f6;color:#496071;font-size:.78rem}.safe-drop-denomination-ledger{padding:.35rem .65rem;border:1px solid var(--line);border-top:0}.safe-drop-denomination-ledger>span,.safe-drop-denomination-ledger>strong{min-height:2.25rem;display:flex;align-items:center;border-bottom:1px solid #e6edf1}.safe-drop-denomination-ledger>label{padding:.2rem 0;border-bottom:1px solid #e6edf1}.safe-drop-denomination-ledger>label .form-control{min-height:2.25rem}.safe-drop-denomination-ledger>:nth-last-child(-n+3){border-bottom:0}.safe-drop-total{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem;padding:.8rem 1rem;border-left:3px solid #b17d00;background:#fff4d5}.safe-drop-total strong{font-size:1.1rem;font-variant-numeric:tabular-nums}.safe-drop-notes{display:grid;gap:.4rem;margin-top:.75rem;font-weight:600}@media(max-width:560px){.safe-drop-denomination-grid{grid-template-columns:1fr 6.5rem 6rem;font-size:.86rem}}
.safe-drop-suggestion{margin:.75rem 0;padding:.65rem .8rem;border-left:3px solid var(--brand);background:#edf6fb;color:#42596a;font-size:.83rem;line-height:1.4}

.form-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:1rem}.form-grid form{display:grid;gap:1rem}.form-grid form label{display:grid;gap:.4rem;font-weight:650}.check-row{display:flex!important;align-items:center;grid-template-columns:auto 1fr;gap:.5rem!important}.form-actions{display:flex;flex-wrap:wrap;gap:.6rem}.button.danger{background:#c83c4d;color:#fff}.text-button{border:0;padding:0;background:transparent;color:var(--navy);font-weight:700;text-decoration:underline;cursor:pointer}@media(max-width:900px){.form-grid{grid-template-columns:1fr}}

:root{--navy:#0f4c75;--navy-deep:#0b3654;--teal:#14a69a;--orange:#ff8500;--ink:#12253a;--muted:#68798b;--canvas:#f4f7fa;--surface:#fff;--line:#dce5ec;--success:#168a55;--warning:#b96a00;--danger:#c83c4d;--shadow:0 16px 40px rgba(15,76,117,.09)}
html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif;font-size:1rem}h1,h2,h3{letter-spacing:-.025em;text-wrap:balance}h1{font-size:clamp(2rem,3vw,3.25rem);line-height:1.05;font-weight:750}h2{font-weight:700}p{color:var(--muted);line-height:1.65;text-wrap:pretty}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:#fff;padding:.75rem 1rem}.skip-link:focus{top:1rem}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;background:var(--surface);border-right:1px solid var(--line);overflow:auto}.brand{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:.8rem;padding:1.25rem 1.3rem;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}.brand-mark{display:grid;place-items:center;width:2.5rem;height:2.5rem;background:var(--navy);color:#fff;border-radius:.65rem;font-weight:800}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:.75rem}.nav-scrollable{padding:.6rem}.nav-group{padding:1.15rem .75rem .4rem;color:#8795a4;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:.65rem;min-height:44px;padding:.65rem .8rem;border-radius:.55rem;color:#415266;text-decoration:none;transition:background .2s,color .2s,transform .2s}.nav-link:hover{background:#eef5f8;color:var(--navy);transform:translateX(2px)}.nav-link.active{background:#dff5f1;color:#08776e;font-weight:700}.nav-toggle{display:none}.workspace{min-width:0}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,3vw,2.5rem);background:linear-gradient(100deg,var(--navy-deep),#146f94);color:#fff;box-shadow:0 7px 20px rgba(11,54,84,.16)}.topbar>div{display:flex;align-items:center;gap:.65rem}.connection-dot{width:.55rem;height:.55rem;border-radius:50%;background:#5be0a5;box-shadow:0 0 0 4px rgba(91,224,165,.15)}.identity{gap:1rem!important}.identity span{opacity:.78}.content{max-width:1560px;margin:auto;padding:clamp(1.2rem,3vw,2.5rem)}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.5rem}.page-heading h1{margin:.3rem 0}.page-heading p{margin:0;max-width:65ch}.eyebrow{color:var(--navy);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;border:1px solid transparent;border-radius:.55rem;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(1px)}.button:focus-visible,.nav-link:focus-visible,input:focus-visible,select:focus-visible,tr:focus-visible{outline:3px solid rgba(255,133,0,.35);outline-offset:2px}.button.primary{background:var(--navy);color:#fff;box-shadow:0 7px 16px rgba(15,76,117,.18)}.button.secondary{background:#fff;color:var(--navy);border-color:var(--navy)}.button:disabled{opacity:.48;cursor:not-allowed}.button.wide{width:100%}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.kpi,.panel,.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow)}.kpi{min-height:150px;padding:1.25rem;border-top:4px solid var(--teal)}.kpi.attention{border-top-color:var(--orange)}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi strong{display:block;margin:.45rem 0;font-size:2rem;font-variant-numeric:tabular-nums}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;margin-top:1rem}.panel{padding:1.5rem}.text-link{color:var(--navy);font-weight:700}.skeleton,.table-skeleton{min-height:150px;border-radius:1rem;background:linear-gradient(90deg,#e8eef2 25%,#f7f9fa 50%,#e8eef2 75%);background-size:200% 100%;animation:shimmer 1.35s infinite}@keyframes shimmer{to{background-position:-200% 0}}.state-panel{max-width:700px;margin:2rem auto;padding:2.5rem;text-align:center;background:#fff;border:1px solid var(--line);border-radius:1rem}.state-panel.error{border-color:#efbdc3;background:#fff8f9}.auth-shell{display:grid;grid-template-columns:1.15fr minmax(320px,.75fr);gap:clamp(2rem,6vw,6rem);align-items:center;min-height:calc(100dvh - 152px)}.auth-brand{padding:clamp(1rem,4vw,4rem)}.auth-brand h1{max-width:13ch}.auth-card{padding:clamp(1.5rem,4vw,2.5rem)}.auth-card form,.auth-card label{display:grid;gap:.45rem}.auth-card form{gap:1rem}.auth-card label{margin-bottom:1rem;font-weight:650}.form-control,.form-select{min-height:48px;border:1px solid #c7d4de;border-radius:.5rem;padding:.65rem .8rem;background:#fff}.inline-error{padding:.85rem;margin:1rem 0;background:#fff0f2;border-left:4px solid var(--danger);color:#8d2130}.toolbar{display:flex;align-items:end;gap:.75rem;margin-bottom:1rem}.search-field{display:grid;gap:.35rem;flex:1;font-weight:650}.table-panel{padding:1rem}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:.75rem}table{width:100%;border-collapse:collapse;min-width:920px}th{height:52px;background:#eef3f6;color:#31485e;font-size:.84rem;text-align:left}th,td{padding:.75rem 1rem;border-bottom:1px solid var(--line)}tbody tr{min-height:48px;background:#fff;transition:background .18s}tbody tr:nth-child(even){background:#f9fbfc}tbody tr:hover,tbody tr:focus{background:#eaf7f5}td strong,td small{display:block}td small{color:var(--muted)}.numeric{text-align:right;font-variant-numeric:tabular-nums}.status-chip{display:inline-flex;align-items:center;min-height:28px;padding:.25rem .6rem;border-radius:999px;font-size:.8rem;font-weight:750}.status-chip.success{background:#dff5e9;color:#12663f}.status-chip.pending{background:#fff0d7;color:#8a5200}.status-chip.neutral{background:#e9eef2;color:#596a78}.pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;color:var(--muted)}.pagination div{display:flex;gap:.5rem}.migration-panel{display:grid;grid-template-columns:1.3fr .7fr;gap:2rem}.migration-panel dl{margin:0;padding:1rem;background:#f3f7f9;border-radius:.75rem}.migration-panel dt{font-size:.75rem;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.migration-panel dd{margin:0 0 1rem;overflow-wrap:anywhere}
@media(max-width:1000px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.brand{position:relative}.nav-toggle{display:block;position:absolute;right:1rem;top:1.25rem;min-height:40px;border:1px solid var(--line);background:#fff;border-radius:.5rem}.nav-collapsed{display:none}.nav-expanded{display:block;max-height:70dvh}.kpi-grid{grid-template-columns:repeat(2,1fr)}.auth-shell{grid-template-columns:1fr;min-height:auto}.auth-brand{padding-bottom:0}.topbar{height:auto;min-height:64px}.identity span{display:none}}
@media(max-width:640px){.content{padding:1rem}.topbar{padding:.85rem 1rem}.topbar>div:first-child{display:none}.page-heading{align-items:flex-start;flex-direction:column;gap:1rem}.kpi-grid,.dashboard-grid,.migration-panel{grid-template-columns:1fr}.kpi{min-height:125px}.toolbar{align-items:stretch;flex-direction:column}.toolbar .button{width:100%}.pagination{align-items:stretch;flex-direction:column}.pagination div .button{flex:1}.auth-brand{display:none}.auth-shell{display:block}.auth-card{margin-top:1rem}table{min-width:760px}th,td{padding:.8rem;min-height:56px}}

/* Exact Blazor counterpart of the current Web Forms login screen. */
.login-layout{min-height:100dvh}.login-shell{--brand:#0b3d62;--brand-2:#14548a;--accent:#ff8c00;--login-ink:#172533;--login-muted:#687785;min-height:100dvh;display:grid;grid-template-columns:minmax(340px,1.05fr) minmax(420px,.95fr);color:var(--login-ink);background:#eef3f7}.brand-panel{position:relative;overflow:hidden;display:flex;align-items:center;padding:clamp(3rem,7vw,7rem);color:#fff;background:linear-gradient(145deg,#072b46 0%,var(--brand) 52%,#17649d 100%)}.brand-panel::before,.brand-panel::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}.brand-panel::before{width:34rem;height:34rem;right:-17rem;top:-14rem}.brand-panel::after{width:22rem;height:22rem;left:-10rem;bottom:-12rem}.brand-content{position:relative;z-index:1;max-width:620px;animation:enterLeft .65s ease both}.login-brand-mark{display:flex;align-items:center;gap:.9rem;margin-bottom:3.5rem}.brand-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;color:#fff;background:var(--accent);box-shadow:0 12px 30px rgba(0,0,0,.2);font-size:1.45rem}.login-shell .brand-name{font-size:1.45rem;font-weight:700;letter-spacing:-.03em}.login-shell .brand-kicker{color:#ffb65c;font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.brand-title{max-width:560px;margin:.75rem 0 1.25rem;font-size:clamp(2.4rem,4vw,4.6rem);line-height:1.04;letter-spacing:-.055em;font-weight:700}.brand-copy{max-width:540px;margin:0;color:rgba(255,255,255,.76);font-size:1.02rem;line-height:1.75}.trust-row{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:2.25rem;color:rgba(255,255,255,.86);font-size:.88rem}.trust-row span{display:flex;align-items:center;gap:.45rem}.trust-row b{color:#ffb65c}.form-panel{display:flex;align-items:center;justify-content:center;padding:clamp(2rem,5vw,5rem);background:#fff}.form-wrap{width:100%;max-width:470px;animation:enterRight .65s .08s ease both}.mobile-brand{display:none;align-items:center;gap:.75rem;margin-bottom:2rem}.login-shell .eyebrow{margin-bottom:.75rem;color:var(--brand-2);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.form-title{margin:0;font-size:2rem;font-weight:700;letter-spacing:-.04em}.form-subtitle{margin:.75rem 0 2rem;color:var(--login-muted);line-height:1.65}.login-field{margin-bottom:1rem}.field-label{display:block;margin-bottom:.55rem;color:#344452;font-size:.86rem;font-weight:600}.field-wrap{position:relative}.field-icon{position:absolute;left:1rem;top:50%;z-index:2;transform:translateY(-50%);color:#84919c}.login-shell .form-control,.login-shell .form-select{width:100%;min-height:52px;border:1px solid #d8e0e7;border-radius:12px;padding:.8rem 1rem .8rem 2.8rem;color:var(--login-ink);background:#fbfcfd;box-shadow:none!important}.login-shell .form-select{padding-left:1rem}.login-shell .form-control:focus,.login-shell .form-select:focus{border-color:var(--brand-2);background:#fff;box-shadow:0 0 0 4px rgba(20,84,138,.1)!important;outline:0}.password-toggle{position:absolute;right:.6rem;top:50%;z-index:3;transform:translateY(-50%);border:0;padding:.5rem;color:#647581;background:transparent}.password-field{padding-right:3rem!important}.remember-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.1rem 0 1.5rem;color:#687785;font-size:.86rem}.remember{display:flex;align-items:center;gap:.45rem;color:#344452}.remember input{accent-color:var(--brand)}.btn-signin{width:100%;min-height:52px;border:0;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2));font-weight:700;box-shadow:0 12px 24px rgba(11,61,98,.18);transition:.2s ease}.btn-signin:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 15px 28px rgba(11,61,98,.24)}.btn-signin:disabled{opacity:.6}.validation-box{border:1px solid #f0c5c7;border-radius:12px;margin-bottom:1rem;padding:.8rem 1rem;color:#9d2630;background:#fff5f5;font-size:.84rem}.shop-card{margin-top:1.5rem;border:1px solid #dce4ea;border-radius:16px;padding:1.25rem;background:#f8fafc}.shop-card h3{margin:.25rem 0}.shop-card p{margin:.25rem 0 1rem}.shop-card .btn-signin{margin-top:1rem}.support-line{margin-top:2rem;color:#77848f;font-size:.8rem;line-height:1.7;text-align:center}.support-line a{color:var(--brand-2);font-weight:600;text-decoration:none}.support-line a:hover{text-decoration:underline}@keyframes enterLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:none}}@keyframes enterRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.login-shell *,.login-shell *::before,.login-shell *::after{animation:none!important;transition:none!important}}@media(max-width:900px){.login-shell{display:block}.brand-panel{display:none}.form-panel{min-height:100dvh;padding:2rem 1.25rem}.mobile-brand{display:flex}}
.pager{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1rem 0 0}.pager .button{min-width:7rem}.numeric,.numeric-input{text-align:right;font-variant-numeric:tabular-nums}.value-negative{color:var(--danger,#c62828);font-weight:700}.long-text{max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.module-tabs{display:flex;gap:.35rem;padding:.35rem;margin:0 0 1rem;background:#e7edf3;border-radius:.75rem;width:max-content;max-width:100%;overflow-x:auto}.module-tabs button{border:0;background:transparent;color:#425466;font:inherit;font-weight:650;padding:.7rem 1.05rem;border-radius:.55rem;cursor:pointer;white-space:nowrap}.module-tabs button:hover{background:rgba(255,255,255,.55)}.module-tabs button.active{background:#fff;color:#0b4a70;box-shadow:0 1px 4px rgba(15,58,82,.12)}.danger-text{color:#b42318}
.suggestion-list{display:grid;gap:.25rem;margin:.75rem 0;max-height:18rem;overflow:auto;border:1px solid #d5dee7;border-radius:.65rem;background:#fff}.suggestion-list button{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem 1rem;border:0;border-bottom:1px solid #edf1f4;background:#fff;color:#172b3a;text-align:left;cursor:pointer}.suggestion-list button:hover,.suggestion-list button:focus-visible{background:#edf8f7}.suggestion-list span{color:#657789;font-size:.875rem}.record-summary{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem}.detail-list{display:grid;gap:.4rem;padding:.6rem 0}.detail-list span{display:flex;justify-content:space-between;gap:1rem}.row-actions{display:flex;gap:.75rem;white-space:nowrap}
.detail-row td{background:#f7fafc;padding:1rem}.detail-line-button{display:flex;justify-content:space-between;gap:1rem;width:100%;padding:.65rem .8rem;border:1px solid #dce5ec;background:#fff;border-radius:.45rem;text-align:left;cursor:pointer}.detail-line-button:hover{border-color:#70b8b0;background:#f3fbfa}
.audit-capture{display:grid;grid-template-columns:minmax(16rem,2fr) minmax(9rem,.6fr) auto;align-items:end;gap:1rem}.scan-input{font-size:1.2rem;font-weight:600;letter-spacing:.015em}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem}@media(max-width:720px){.audit-capture{grid-template-columns:1fr}.audit-capture .button{width:100%;min-height:3rem}}
.permission-toolbar{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;margin:1rem 0}.permission-toolbar .form-control{flex:1 1 16rem}.permission-groups{display:grid;gap:.8rem;max-height:34rem;overflow:auto;padding-right:.25rem}.permission-groups fieldset{border:1px solid var(--border);border-radius:12px;padding:.75rem}.permission-groups legend{font-weight:800;padding:0 .35rem}.permission-option{display:flex;gap:.65rem;align-items:flex-start;padding:.55rem;border-radius:8px}.permission-option:hover{background:var(--surface-subtle)}.permission-option input{margin-top:.25rem}.permission-option span{display:grid}.permission-option small{color:var(--text-muted);margin-top:.12rem}.count-badge{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .35rem;border-radius:999px;background:var(--surface-subtle);font-size:.75rem}.danger-text{color:var(--danger)!important}.empty-state.compact{padding:1rem}
.code-editor{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;min-height:14rem;tab-size:2}.long-value{display:inline-block;max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.return-layout{display:grid;gap:1rem}.return-layout>.panel:first-child{align-self:start}.compact-input{min-width:7rem;padding:.45rem .55rem}.disabled-row{opacity:.58}.total-panel{margin-top:1rem;margin-left:auto;max-width:28rem;border-top:1px solid var(--border);padding-top:.75rem}.total-panel>div{display:flex;justify-content:space-between;gap:2rem;padding:.45rem 0;font-variant-numeric:tabular-nums}.total-panel .grand-total{font-size:1.25rem;border-top:1px solid var(--border);margin-top:.35rem;padding-top:.75rem}.form-actions.end{justify-content:flex-end}.success-state{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem;padding:1rem;border-radius:10px;background:var(--success-soft);color:var(--success-strong)}
.row-details summary{cursor:pointer;color:var(--brand);max-width:24rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-details pre{white-space:pre-wrap;max-width:34rem;margin:.65rem 0 0;padding:.75rem;border-radius:8px;background:var(--surface-subtle);font-size:.78rem}.record-summary.compact{margin-top:1rem;padding:.8rem}
.masked-secret{max-height:12rem;overflow:auto;white-space:pre-wrap;padding:.8rem;border-radius:8px;background:var(--surface-subtle);color:var(--text-muted)}.long-text-cell{min-width:18rem;max-width:36rem;white-space:normal}
.masked-secret{max-height:14rem;overflow:auto;padding:1rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-muted);color:var(--text-muted);white-space:pre-wrap;word-break:break-word}.long-text-cell{min-width:18rem;max-width:36rem;white-space:normal;overflow-wrap:anywhere}.code-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.875rem}
.denomination-ledger,.denomination-heading{grid-template-columns:minmax(7rem,1fr) minmax(8rem,1fr) minmax(8rem,1fr);align-items:center}.denomination-ledger>span{font-weight:650}.denomination-heading{color:var(--text-muted);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.5rem}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:560px){.denomination-heading{display:none}.denomination-ledger{grid-template-columns:minmax(5rem,.8fr) 1fr 1fr}.denomination-ledger label:before{display:block;color:var(--text-muted);font-size:.72rem}.denomination-ledger label:nth-of-type(odd):before{content:'Counted'}.denomination-ledger label:nth-of-type(even):before{content:'Bank'}}
.chip-list{display:flex;flex-wrap:wrap;gap:.55rem}.permission-chip{padding:.45rem .65rem;border-radius:.45rem;background:var(--surface-muted);border:1px solid var(--line);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}.access-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.8rem}.access-module{display:grid;gap:.28rem;padding:1rem;border:1px solid var(--line);border-radius:.8rem;color:inherit;text-decoration:none;transition:transform .2s ease,border-color .2s ease,background .2s ease}.access-module:hover{transform:translateY(-2px);border-color:var(--brand);background:var(--surface-muted)}.access-module span,.access-module small{color:var(--text-muted)}.access-module span{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}
.mobile-operation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem}.mobile-operation-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;min-height:8.5rem;padding:1.15rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface);color:inherit;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.mobile-operation-card:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:0 12px 30px rgba(12,51,84,.1)}.mobile-operation-card h2{margin:.15rem 0;font-size:1.15rem}.mobile-operation-card p{margin:0;color:var(--text-muted);line-height:1.45}.mobile-operation-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:.7rem;background:var(--brand-soft);color:var(--brand);font-size:1.4rem;font-weight:800}.mobile-operation-arrow{font-size:1.4rem;color:var(--brand)}.mobile-guidance{margin-top:1rem}.mobile-guidance li{margin:.5rem 0}@media(max-width:560px){.mobile-operation-grid{grid-template-columns:1fr}.mobile-operation-card{min-height:6.5rem;padding:1rem}.mobile-operation-icon{width:2.5rem;height:2.5rem}}
.sort-button{display:inline-flex;align-items:center;gap:.35rem;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:0;cursor:pointer}.sort-button:focus-visible{outline:2px solid var(--brand);outline-offset:4px}.report-result-summary{display:flex;justify-content:space-between;gap:1rem;margin:1rem 0;color:var(--text-muted)}
.report-export-actions{display:flex;justify-content:flex-end;gap:.65rem;margin:-.5rem 0 1rem;flex-wrap:wrap}
.analytics-filters{margin-bottom:1rem}.analytics-updated{margin-left:auto;color:var(--text-muted);font-size:.82rem}.analytics-skeleton{display:grid;gap:1rem}.analytics-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(10rem,1fr));gap:.8rem;margin-bottom:1rem;overflow-x:auto}.analytics-kpi{display:grid;gap:.35rem;min-height:7.2rem;padding:1rem;border-top:3px solid var(--brand);border-radius:.75rem;background:var(--surface);color:inherit;text-decoration:none;box-shadow:0 8px 20px rgba(12,51,84,.06);transition:transform .2s ease,box-shadow .2s ease}.analytics-kpi:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(12,51,84,.1)}.analytics-kpi.risk{border-color:var(--danger)}.analytics-kpi span,.analytics-kpi small{color:var(--text-muted)}.analytics-kpi strong{font-size:1.45rem;font-variant-numeric:tabular-nums}.analytics-insights{display:grid;grid-template-columns:minmax(15rem,.55fr) 1.45fr;gap:1.2rem;padding:1.35rem;margin-bottom:1rem;border-radius:1rem;background:var(--brand-deep,#0d456c);color:#fff}.analytics-insights p{color:rgba(255,255,255,.75)}.insight-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.65rem}.insight-item{display:grid;align-content:start;gap:.45rem;padding:.85rem;border:1px solid rgba(255,255,255,.18);border-radius:.65rem;background:rgba(255,255,255,.07);color:#fff;text-decoration:none}.insight-item p{margin:0;font-size:.84rem}.analytics-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:1rem;margin-bottom:1rem}.analytics-wide{grid-row:span 2}.chart-title{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.chart-title h2{margin:.15rem 0}.bar-chart{display:flex;align-items:flex-end;gap:.35rem;min-height:18rem;padding:1rem 0 0;overflow-x:auto;border-bottom:1px solid var(--line)}.bar-column{display:grid;grid-template-rows:auto 1fr auto;align-items:end;justify-items:center;gap:.35rem;min-width:2.5rem;height:16rem;border:0;background:transparent;color:inherit;cursor:pointer}.bar-column i{display:block;width:1.25rem;min-height:.25rem;border-radius:.25rem .25rem 0 0;background:var(--brand);transition:filter .2s ease,transform .2s ease}.bar-column.forecast i{background:repeating-linear-gradient(135deg,var(--brand),var(--brand) 3px,transparent 3px,transparent 6px);border:1px solid var(--brand)}.bar-column:hover i,.bar-column:focus-visible i{filter:brightness(1.2);transform:scaleX(1.12)}.bar-column small{font-size:.68rem;white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg);max-height:3.4rem}.bar-value{font-size:.65rem;color:var(--text-muted)}.rank-bars{display:grid;gap:.7rem}.rank-bars button{display:grid;grid-template-columns:minmax(7rem,1fr) 1.3fr auto;align-items:center;gap:.65rem;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.rank-bars i{height:.55rem;border-radius:.2rem;background:var(--surface-muted);overflow:hidden}.rank-bars b{display:block;height:100%;background:var(--brand)}.rank-bars strong{font-size:.78rem;font-variant-numeric:tabular-nums}.risk-list{display:grid}.risk-list a{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.risk-list small{display:block;color:var(--text-muted)}.analytics-drilldown{margin-top:1rem}@media(max-width:1100px){.analytics-kpi-grid{grid-template-columns:repeat(3,1fr);overflow:visible}.analytics-layout{grid-template-columns:1fr}.analytics-wide{grid-row:auto}}@media(max-width:700px){.analytics-kpi-grid{display:flex;overflow-x:auto}.analytics-kpi{min-width:12rem}.analytics-insights{grid-template-columns:1fr}.analytics-updated{width:100%;margin-left:0}.bar-chart{min-height:15rem}.bar-column{height:13rem}.rank-bars button{grid-template-columns:minmax(6rem,1fr) 1fr}.rank-bars strong{grid-column:2;text-align:right}}

/* Shared retail form system — intentionally global so all modules inherit it. */
:root {
    --brand: var(--navy);
    --brand-deep: var(--navy-deep);
    --brand-soft: #e7f1f6;
    --border: var(--line);
    --surface-muted: #f3f6f8;
    --surface-subtle: #f7f9fb;
    --text-muted: var(--muted);
    --success-soft: #e7f6ee;
    --success-strong: #12663f;
    --warning-soft: #fff5df;
    --danger-soft: #fff0f2;
    --info-soft: #eaf4fb;
    --focus: rgba(255, 133, 0, .28);
    --radius-sm: .45rem;
    --radius-md: .7rem;
    --radius-lg: 1rem;
}

*, *::before, *::after { box-sizing: border-box; }
body { font-family: Aptos, "Segoe UI Variable", "Segoe UI", Arial, sans-serif; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }

.content > :first-child { margin-top: 0; }
.content > section + section,
.content > section + .panel,
.content > .panel + .panel { margin-top: 1rem; }

.page-heading {
    align-items: center;
    padding: .3rem 0 .25rem;
}
.page-heading h1 { font-size: clamp(1.85rem, 2.7vw, 2.65rem); margin: .25rem 0 .4rem; }
.page-heading .form-actions { flex: 0 0 auto; }

.panel {
    position: relative;
    padding: clamp(1.15rem, 2vw, 1.6rem);
    border-color: #d7e1e8;
    box-shadow: 0 10px 28px rgba(15, 76, 117, .065);
}
.panel > h2:first-child,
.panel > .section-heading:first-child { margin-top: 0; }
.panel h2 { margin: 0 0 1.15rem; font-size: 1.2rem; line-height: 1.3; }
.panel h3 { margin: 1.45rem 0 .8rem; padding-top: 1.15rem; border-top: 1px solid var(--line); font-size: .95rem; }
.compact-panel { padding: 1rem; }
.narrow-panel { width: min(100%, 52rem); }

.field-stack,
.field-grid,
.filter-grid,
.form-pair {
    display: grid;
    align-items: start;
    gap: 1rem;
}
.field-grid { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.filter-grid { grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); margin-bottom: 1rem; }
.form-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-grid > label,
.filter-grid > label,
.form-pair > label,
.field-stack > label,
.search-control,
.check-field {
    display: grid;
    gap: .42rem;
    min-width: 0;
    color: #263b4f;
    font-size: .88rem;
    font-weight: 650;
}
.required { color: var(--danger); font-weight: 800; }
.field-help,
.cell-subtitle { display: block; color: var(--muted); font-size: .78rem; font-weight: 450; line-height: 1.45; }
.field-help { margin-top: -.15rem; }
.optional { margin-left: .2rem; }

.form-control,
.form-select,
textarea.form-control {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    border: 1px solid #bdcbd6;
    border-radius: var(--radius-md);
    padding: .68rem .82rem;
    color: var(--ink);
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 54, 84, .025);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
textarea.form-control { min-height: 7rem; resize: vertical; line-height: 1.5; }
.form-control::placeholder { color: #8795a3; opacity: 1; }
.form-control:hover:not(:disabled), .form-select:hover:not(:disabled) { border-color: #8fa5b5; }
.form-control:focus, .form-select:focus, textarea.form-control:focus {
    border-color: var(--navy);
    outline: 0;
    box-shadow: 0 0 0 4px rgba(15, 76, 117, .11);
}
.form-control:disabled, .form-select:disabled,
.form-control[readonly] { color: #667786; background: #edf1f4; cursor: not-allowed; }
.valid.modified:not([type=checkbox]) { outline: 0; border-color: var(--success); }
.invalid, .form-control.invalid, .form-select.invalid { outline: 0; border-color: var(--danger); background: #fffafb; }
.validation-message { display: flex; gap: .35rem; margin-top: .3rem; color: #a12637; font-size: .79rem; font-weight: 600; }
.validation-message::before { content: "•"; }

input[type="checkbox"], input[type="radio"] { width: 1.15rem; height: 1.15rem; accent-color: var(--navy); }
.check-row, .check-field { min-height: 44px; grid-template-columns: auto 1fr !important; align-items: center; }
.check-field { align-content: start; grid-template-columns: 1fr !important; gap: .55rem; padding-top: .1rem; }
.check-toggle { display: inline-flex; align-items: center; gap: .55rem; min-height: 48px; }
.check-field .field-help { margin: 0; }

.form-actions {
    align-items: center;
    padding-top: .25rem;
}
.panel > .form-actions:last-child { margin-top: 1.15rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.button { min-height: 46px; padding-inline: 1.1rem; box-shadow: none; }
.button.primary:hover:not(:disabled) { background: #0b4266; box-shadow: 0 8px 18px rgba(15, 76, 117, .2); }
.button.secondary:hover:not(:disabled) { background: var(--brand-soft); }
.button.danger:hover:not(:disabled) { background: #aa2f40; }
.compact-button { min-height: 38px; padding: .42rem .72rem; font-size: .84rem; }

.inline-error,
.inline-warning,
.inline-success,
.inline-info {
    position: relative;
    margin: 0 0 1rem;
    padding: .9rem 1rem .9rem 2.8rem;
    border: 1px solid transparent;
    border-left-width: 4px;
    border-radius: var(--radius-md);
    line-height: 1.45;
}
.inline-error::before,
.inline-warning::before,
.inline-success::before,
.inline-info::before { position: absolute; left: 1rem; top: .9rem; font-weight: 900; }
.inline-error { border-color: #efc5cb; border-left-color: var(--danger); background: var(--danger-soft); color: #8d2130; }
.inline-error::before { content: "!"; }
.inline-warning { border-color: #efd7a9; border-left-color: var(--warning); background: var(--warning-soft); color: #81500c; }
.inline-warning::before { content: "!"; }
.inline-success { border-color: #bde1ce; border-left-color: var(--success); background: var(--success-soft); color: var(--success-strong); }
.inline-success::before { content: "✓"; }
.inline-info { border-color: #bdd9e9; border-left-color: var(--navy); background: var(--info-soft); color: #174e70; }
.inline-info::before { content: "i"; }

.toolbar, .table-toolbar {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: .75rem;
    padding: .1rem 0 1rem;
    margin: 0;
}
.table-toolbar { justify-content: space-between; }
.search-control, .search-field { flex: 1 1 18rem; }
.table-panel { overflow: hidden; }
.table-scroll {
    max-width: 100%;
    scrollbar-color: #9eb0bd #edf2f5;
    scrollbar-width: thin;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.table-scroll:focus-within { outline: 3px solid rgba(15, 76, 117, .08); outline-offset: 2px; }
table { font-size: .9rem; }
th { height: 50px; padding-block: .65rem; background: #edf2f5; color: #2f4558; font-size: .78rem; letter-spacing: .02em; }
td { height: 52px; color: #263849; vertical-align: middle; }
tfoot th, tfoot td { background: #edf3f6; font-weight: 750; }
tbody tr[aria-selected="true"], tbody tr.selected-row { background: #e5f3f7 !important; }
.clickable-row { cursor: pointer; }
.clickable-row:hover > td { background: #edf7f8; }
.clickable-row[role="button"] > td:first-child { box-shadow: inset 3px 0 0 transparent; }
.clickable-row[role="button"]:hover > td:first-child { box-shadow: inset 3px 0 0 var(--teal); }
.clickable-row:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(15, 76, 117, .32); outline-offset: -3px; }
.tree-child { padding-left: 1.35rem; position: relative; }
.tree-child::before { content: "↳"; position: absolute; left: 0; color: var(--teal); }
.row-actions { align-items: center; justify-content: flex-end; }
.qty-input { width: 7rem; min-height: 40px; }

.status-chip::before { content: ""; width: .42rem; height: .42rem; margin-right: .38rem; border-radius: 50%; background: currentColor; opacity: .85; }
.status-chip.warning, .status-chip.pending { background: #fff0d7; color: #8a5200; }
.status-chip.danger { background: #fde6e9; color: #9d2637; }
.status-chip.info, .status-chip.information { background: #e5f1f9; color: #185b83; }

.empty-state {
    display: grid;
    place-items: center;
    min-height: 12rem;
    padding: 2rem;
    text-align: center;
    border: 1px dashed #cbd8e1;
    border-radius: var(--radius-md);
    background: #f9fbfc;
}
.empty-state h2, .empty-state h3 { margin: 0; border: 0; padding: 0; }
.empty-state p { max-width: 48ch; margin: .45rem 0 0; }
.state-icon { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: .75rem; border-radius: .75rem; background: var(--brand-soft); color: var(--navy); font-size: 1.35rem; }

.metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .8rem; }
.page-heading + .metrics-grid { margin: 0 0 .8rem; }
.metric-card { display: grid; gap: .3rem; padding: 1rem; border-left: 3px solid var(--teal); border-radius: var(--radius-md); background: var(--surface-muted); }
.metric-card span { color: var(--muted); font-size: .8rem; }
.metric-card strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.analytics-heading { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; }
.analytics-heading h2 { margin: 0; }
.rule-builder { display: grid; gap: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-subtle); }
.master-workspace { display: grid; gap: 1rem; }
.master-workspace .metrics-grid { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.master-list-panel { min-height: 0; }
.master-list-panel .pager { padding-bottom: 0; }
.compact-filter { flex: 0 1 13rem; }
.table-actions-heading { width: 6.5rem; }
.master-editor { border-top: 4px solid var(--teal); scroll-margin-top: 1rem; }
.master-editor .section-heading { margin-bottom: 1rem; }
.master-editor .section-heading h2 { margin: .15rem 0 0; }

@media (max-width: 760px) {
    .form-pair, .field-grid, .filter-grid { grid-template-columns: 1fr; }
    .panel { padding: 1rem; border-radius: .8rem; }
    .page-heading h1 { font-size: 1.75rem; }
    .panel > .form-actions:last-child { position: sticky; bottom: 0; z-index: 3; margin-inline: -1rem; margin-bottom: -1rem; padding: .8rem 1rem; background: rgba(255,255,255,.96); box-shadow: 0 -8px 18px rgba(15,54,84,.08); backdrop-filter: blur(10px); }
    .form-actions .button { flex: 1 1 9rem; }
    .table-toolbar, .toolbar { align-items: stretch; flex-direction: column; }
    .table-toolbar .button, .toolbar .button { width: 100%; }
    .table-scroll { margin-inline: -.25rem; border-radius: .55rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Operational desktop density: use the workspace instead of creating 4K gutters. */
@media (min-width: 1001px) {
    .content {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 1.25rem clamp(1rem, 1.65vw, 2rem) 2rem;
    }
    .page-heading { margin-bottom: 1rem; }
    .content > section + section,
    .content > section + .panel,
    .content > .panel + .panel { margin-top: .8rem; }
    .panel { padding: 1.1rem 1.25rem 1.2rem; }
    .panel h2 { margin-bottom: .85rem; }
    .filter-grid { gap: .8rem; margin-bottom: .75rem; }
    .field-stack, .field-grid, .form-pair { gap: .8rem; }
    .panel > .form-actions:last-child { margin-top: .85rem; padding-top: .8rem; }

    /* Data-first master modules: remove the permanent editor/sidebar split. */
    .form-grid { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
    .form-grid > .table-panel { order: -1; }
    .form-grid > .table-panel + .panel { max-width: none; }
    .form-grid > .table-panel table tbody tr { scroll-margin-top: 5rem; }
}

/* Category Master standard for every editable, list-based module. */
.form-grid > .table-panel {
    border-top: 4px solid var(--navy);
}
.form-grid > .panel:not(.table-panel) {
    border-top: 4px solid var(--teal);
}
.form-grid > .table-panel .toolbar,
.form-grid > .table-panel .table-toolbar {
    margin: -.15rem 0 .35rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--line);
}
.form-grid > .panel:not(.table-panel) > h2:first-child {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1rem;
}
.form-grid > .panel:not(.table-panel) > h2:first-child::before {
    content: "Details";
    color: var(--navy);
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.form-grid > .panel:not(.table-panel) > .field-stack,
.form-grid > .panel:not(.table-panel) > form {
    max-width: none;
}
.form-grid > .panel:not(.table-panel) .form-actions:last-child {
    margin-top: 1rem;
}

/* Ensure readable text on the shared dark application surfaces. */
.topbar .identity,.topbar .identity a,.topbar .identity span,.topbar .identity strong{color:#fff!important}.topbar .identity span{opacity:.9!important}.analytics-insights .eyebrow,.decision-score .eyebrow{color:#a9e8df!important}.analytics-insights h2,.analytics-insights strong,.analytics-insights .status-chip{color:#fff}.analytics-insights .insight-item .status-chip.success{color:#12663f}.analytics-insights .insight-item .status-chip.pending{color:#8a5200}.analytics-insights .insight-item .status-chip.danger{color:#8d2130}

.dashboard-extra-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.dashboard-extra-kpis article{display:grid;gap:.3rem;padding:1rem;border:1px solid var(--line);border-radius:.8rem;background:linear-gradient(145deg,#fff,#f6fafb);border-top:3px solid #3b82b6}.dashboard-extra-kpis span,.dashboard-extra-kpis small{color:var(--text-muted);font-size:.8rem}.dashboard-extra-kpis strong{font-size:1.35rem;font-variant-numeric:tabular-nums}.dashboard-operation-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.dashboard-operation-cards h2{margin:.25rem 0;font-size:1.25rem}.dashboard-operation-cards p{min-height:3.3rem}@media(max-width:1000px){.dashboard-extra-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-operation-cards{grid-template-columns:1fr}}@media(max-width:640px){.dashboard-extra-kpis{display:flex;overflow-x:auto}.dashboard-extra-kpis article{min-width:11.5rem}}

/* Executive dashboard and analytics refinement */
.dashboard-heading,.analytics-heading{padding-bottom:.35rem;border-bottom:1px solid var(--line)}.dashboard-filter-strip{box-shadow:0 10px 26px rgba(12,51,84,.05)}.dashboard-filter-strip strong{color:var(--ink)}.dashboard-analytics-layout>.panel,.dashboard-detail-layout>.panel,.analytics-secondary-layout>.panel{min-height:100%}.analytics-finance-kpis{margin:1rem 0}.analytics-finance-kpis .analytics-kpi{border-top-color:#3b82b6;background:linear-gradient(180deg,#fff,#f8fbfd)}.analytics-secondary-layout{grid-template-columns:.85fr 1.45fr;margin:1rem 0}.analytics-secondary-layout .rank-bars a{padding:.7rem 0;border-bottom:1px solid var(--line)}.analytics-secondary-layout .rank-bars a:last-child{border-bottom:0}.analytics-secondary-layout .rank-bars strong small{display:block;margin-top:.15rem;color:var(--text-muted);font-weight:500}.analytics-drilldown{box-shadow:0 12px 28px rgba(12,51,84,.06)}@media(max-width:1100px){.analytics-secondary-layout{grid-template-columns:1fr}}@media(max-width:700px){.dashboard-heading,.analytics-heading{padding-bottom:.75rem}.dashboard-filter-strip{padding:1rem}.analytics-finance-kpis{display:flex;overflow-x:auto}.analytics-finance-kpis .analytics-kpi{min-width:12rem}}

.decision-score{display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem;align-items:center;margin-bottom:1rem;border-top:4px solid var(--brand)}.decision-score strong{display:block;font-size:3.4rem;font-variant-numeric:tabular-nums}.decision-score strong small{font-size:1rem;color:var(--text-muted)}.decision-score-details{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.decision-score-details div{display:grid;gap:.25rem;padding:.85rem;border:1px solid var(--line);border-radius:.6rem}.decision-score-details span{font-size:.8rem;color:var(--text-muted)}.decision-score-details b{font-size:1.35rem}.decision-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;margin-bottom:1rem}.decision-list{display:grid;gap:.65rem}.decision-item{display:grid;grid-template-columns:auto 1fr;gap:.35rem .7rem;padding:.9rem;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:.6rem;color:inherit;text-decoration:none}.decision-item.warning{border-left-color:var(--warning)}.decision-item.critical{border-left-color:var(--danger)}.decision-item.success{border-left-color:var(--success)}.decision-item p,.decision-item small{grid-column:2;margin:0}.decision-facts{margin:1rem 0}.decision-facts div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.decision-facts dt{color:var(--text-muted)}.decision-facts dd{margin:0;font-weight:700;text-align:right}@media(max-width:800px){.decision-score,.decision-grid{grid-template-columns:1fr}.decision-score-details{grid-template-columns:repeat(2,1fr)}}

/* Dashboard operational overview */
.dashboard-filter-strip{display:flex;align-items:center;gap:2.2rem;padding:1rem 1.25rem;margin-bottom:1rem}.dashboard-filter-strip>div{display:grid;gap:.18rem}.dashboard-filter-strip span{font-size:.78rem;color:var(--text-muted)}.dashboard-quick-actions{display:flex!important;flex:1;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}.dashboard-quick-actions a{padding:.45rem .65rem;border:1px solid var(--line);border-radius:.45rem;color:var(--navy);font-weight:700;text-decoration:none}.dashboard-insights,.dashboard-analytics-layout,.dashboard-detail-layout{margin-bottom:1rem}.rank-bars a{display:grid;grid-template-columns:minmax(7rem,1fr) 1.3fr auto;align-items:center;gap:.65rem;color:inherit;text-align:left;text-decoration:none}.bar-chart a.bar-column{color:inherit;text-decoration:none}@media(max-width:700px){.dashboard-filter-strip{align-items:flex-start;flex-direction:column;gap:.8rem}.dashboard-quick-actions{justify-content:flex-start}.rank-bars a{grid-template-columns:minmax(6rem,1fr) 1fr}}
