:root {
    --dafo-primary: #2563eb;
    --dafo-primary-soft: rgba(37, 99, 235, .10);
    --dafo-sidebar-width: 258px;
    --dafo-radius: 1rem;
    --dafo-radius-sm: .75rem;
    --dafo-topbar-height: 68px;
    --dafo-border: var(--bs-border-color-translucent);
}

html, body { min-height: 100%; }
body { min-height: 100vh; }
.dafopos-brand { font-size: 1.45rem; font-weight: 800; letter-spacing: -.045em; color: var(--bs-body-color); }
.dafopos-brand span { color: var(--dafo-primary); }
.dafopos-auth-card { width: min(100%, 460px); border-radius: var(--dafo-radius); }
.card, .modal-content { border-radius: var(--dafo-radius); }
.form-control, .form-select, .btn { border-radius: var(--dafo-radius-sm); }
.form-control, .form-select { min-height: 42px; }
.dafopos-store-card { transition: transform .15s ease, box-shadow .15s ease; background: var(--bs-body-bg); }
.dafopos-store-card:hover { transform: translateY(-2px); box-shadow: var(--bs-box-shadow) !important; }

.dafopos-admin-body { background: var(--bs-tertiary-bg); overflow-x: hidden; }
.dafopos-shell { min-height: 100vh; display: flex; }
.dafopos-sidebar {
    width: var(--dafo-sidebar-width); position: fixed; inset: 0 auto 0 0; z-index: 1040;
    background: var(--bs-body-bg); border-right: 1px solid var(--dafo-border); padding: 1rem;
    display: flex; flex-direction: column; overflow-y: auto; transition: transform .2s ease;
}
.dafopos-sidebar-head { min-height: 42px; display: flex; align-items: center; justify-content: space-between; padding: .15rem .25rem .8rem; }
.dafopos-context-card { background: var(--bs-tertiary-bg); border: 1px solid var(--dafo-border); padding: .85rem 1rem; border-radius: .9rem; margin: .35rem 0 1rem; }
.dafopos-nav { display: flex; flex-direction: column; gap: .25rem; }
.dafopos-nav-label { padding: 1rem .75rem .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-secondary-color); }
.dafopos-nav-link { display: flex; align-items: center; gap: .75rem; min-height: 43px; padding: .65rem .75rem; text-decoration: none; color: var(--bs-body-color); border-radius: .75rem; font-size: .92rem; font-weight: 500; }
.dafopos-nav-link i { width: 20px; font-size: 1.02rem; color: var(--bs-secondary-color); }
.dafopos-nav-link:hover { background: var(--bs-tertiary-bg); color: var(--bs-body-color); }
.dafopos-nav-link.active { background: var(--dafo-primary-soft); color: var(--dafo-primary); }
.dafopos-nav-link.active i { color: var(--dafo-primary); }
.dafopos-main { width: calc(100% - var(--dafo-sidebar-width)); margin-left: var(--dafo-sidebar-width); min-height: 100vh; }
.dafopos-topbar { height: var(--dafo-topbar-height); position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1.5rem; background: color-mix(in srgb, var(--bs-body-bg) 92%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid var(--dafo-border); }
.dafopos-content { padding: 1.5rem; max-width: 1800px; margin: 0 auto; }
.btn-icon { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--dafo-border); background: var(--bs-body-bg); }
.dafopos-user-button { display: flex; align-items: center; gap: .6rem; border: 0; background: transparent; padding: .25rem .4rem; }
.dafopos-avatar { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--dafo-primary-soft); color: var(--dafo-primary); font-weight: 800; }
.dafopos-sidebar-backdrop { display: none; }

.dafopos-stat-icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: .85rem; background: var(--dafo-primary-soft); color: var(--dafo-primary); font-size: 1.1rem; }
.dafopos-check-item { display: flex; gap: .65rem; align-items: center; padding: .75rem .9rem; background: var(--bs-tertiary-bg); border-radius: .8rem; }
.dafopos-check-item i { color: var(--bs-success); }
.dafopos-setting-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--dafo-border); border-radius: .85rem; background: var(--bs-body-bg); }
.dafopos-setting-row:hover { background: var(--bs-tertiary-bg); }
.dafopos-scope-stack { display: grid; justify-items: center; gap: .35rem; }
.dafopos-scope-stack span { width: 100%; text-align: center; padding: .6rem; border-radius: .7rem; border: 1px solid var(--dafo-border); background: var(--bs-tertiary-bg); font-weight: 600; font-size: .8rem; }
.dafopos-permission-item { display: flex; align-items: flex-start; padding: .8rem; border: 1px solid var(--dafo-border); border-radius: .8rem; cursor: pointer; height: 100%; }
.dafopos-permission-item:hover { background: var(--bs-tertiary-bg); }
.dafopos-password-box { padding: .85rem 1rem; background: var(--bs-tertiary-bg); border: 1px dashed var(--bs-border-color); border-radius: .75rem; font-size: 1.05rem; word-break: break-all; }

.table > :not(caption) > * > * { padding-top: .8rem; padding-bottom: .8rem; }
table.dataTable > tbody > tr { background: transparent; }
.dt-container .dt-search input, .dt-container .dt-length select { border-radius: .65rem !important; border-color: var(--bs-border-color) !important; background-color: var(--bs-body-bg) !important; color: var(--bs-body-color) !important; }
.dt-container .pagination { --bs-pagination-border-radius: .65rem; }

.select2-container { width: 100% !important; }
.select2-container .select2-selection--single, .select2-container .select2-selection--multiple { min-height: 42px; border: 1px solid var(--bs-border-color); border-radius: var(--dafo-radius-sm); background: var(--bs-body-bg); color: var(--bs-body-color); }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 40px; padding-left: .75rem; color: var(--bs-body-color); }
.select2-container .select2-selection--single .select2-selection__arrow { height: 40px; }
.select2-container .select2-selection--multiple { padding: .2rem .35rem; }
.select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--bs-tertiary-bg); border-color: var(--bs-border-color); color: var(--bs-body-color); }
.select2-dropdown { border-color: var(--bs-border-color); background: var(--bs-body-bg); color: var(--bs-body-color); }
.select2-search__field { background: var(--bs-body-bg); color: var(--bs-body-color); }
.select2-container--default .select2-results__option--selected { background: var(--bs-tertiary-bg); }

.dafopos-swal, .dafopos-toast { border-radius: 1rem !important; }
.swal2-popup { background: var(--bs-body-bg) !important; color: var(--bs-body-color) !important; }

@media (max-width: 991.98px) {
    .dafopos-sidebar { transform: translateX(-100%); box-shadow: var(--bs-box-shadow-lg); }
    .dafopos-main { width: 100%; margin-left: 0; }
    .dafopos-topbar { padding-inline: 1rem; }
    .dafopos-content { padding: 1rem; }
    .dafo-sidebar-open .dafopos-sidebar { transform: translateX(0); }
    .dafo-sidebar-open .dafopos-sidebar-backdrop { display: block; position: fixed; inset: 0; z-index: 1035; background: rgba(0,0,0,.35); }
}

@media (max-width: 575.98px) {
    .dafopos-content { padding: .85rem; }
    .card-body { padding: 1rem; }
    .dafopos-topbar { height: 62px; }
}

.dafopos-product-thumb,
.dafopos-product-thumb-placeholder {
    width: 46px; height: 46px; border-radius: .7rem; border: 1px solid var(--dafo-border);
    object-fit: cover; display: inline-flex; align-items: center; justify-content: center; background: var(--bs-tertiary-bg);
}
.dafopos-product-thumb-placeholder { color: var(--bs-secondary-color); font-size: 1.1rem; }
.dafopos-product-preview { width: 116px; height: 116px; border-radius: 1rem; overflow: hidden; border: 1px solid var(--dafo-border); background: var(--bs-body-bg); display:flex;align-items:center;justify-content:center;color:var(--bs-secondary-color);font-size:2rem; }
.dafopos-product-preview img { width: 100%; height: 100%; object-fit: cover; }
.input-group > .form-control { min-width: 0; }

/* Operations update: modal scrolling and settings UX */
.modal { overflow-y: auto; }
.modal-dialog { margin-top: .75rem; margin-bottom: .75rem; }
.modal-content {
    max-height: calc(100dvh - 1.5rem);
    overflow: hidden;
}
.modal-header,
.modal-footer { flex: 0 0 auto; }
.modal-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.modal-dialog-scrollable .modal-content { max-height: calc(100dvh - 1.5rem); }
.modal-dialog-scrollable .modal-body { overflow-y: auto; }
.select2-container--open { z-index: 1065; }
.select2-dropdown { z-index: 1066; }

.dafopos-settings-accordion .accordion-button {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: none;
    padding: 1rem 1.25rem;
}
.dafopos-settings-accordion .accordion-button:not(.collapsed) {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}
.dafopos-settings-accordion .accordion-body { background: var(--bs-body-bg); }

@media (max-height: 700px) {
    .modal-dialog { margin-top: .4rem; margin-bottom: .4rem; }
    .modal-content,
    .modal-dialog-scrollable .modal-content { max-height: calc(100dvh - .8rem); }
}

@media (max-width: 575.98px) {
    .modal-dialog { margin: .35rem; }
    .modal-content,
    .modal-dialog-scrollable .modal-content { max-height: calc(100dvh - .7rem); border-radius: .8rem; }
}

/* =========================================================
   Responsive modal hardening
   Handles DafoPOS forms wrapped directly inside .modal-content.
   ========================================================= */
.modal {
    --bs-modal-margin: .75rem;
    overflow-x: hidden;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.modal-dialog {
    width: auto;
    max-height: calc(100dvh - (var(--bs-modal-margin) * 2));
}
.modal-dialog.modal-dialog-centered {
    min-height: calc(100dvh - (var(--bs-modal-margin) * 2));
}
.modal-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: calc(100dvh - (var(--bs-modal-margin) * 2));
    overflow: hidden;
}
.modal-content > form,
.modal-content > .dafopos-modal-form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    max-height: inherit;
    overflow: hidden;
}
.modal-content > form > .modal-header,
.modal-content > form > .modal-footer,
.modal-content > .dafopos-modal-form > .modal-header,
.modal-content > .dafopos-modal-form > .modal-footer {
    flex: 0 0 auto;
}
.modal-content > form > .modal-body,
.modal-content > .dafopos-modal-form > .modal-body,
.modal-content > .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.modal-dialog-scrollable .modal-content,
.modal-dialog-scrollable .modal-content > form,
.modal-dialog-scrollable .modal-content > .dafopos-modal-form {
    max-height: calc(100dvh - (var(--bs-modal-margin) * 2));
}
.modal .select2-container { width: 100% !important; }
.select2-container--open { z-index: 2000 !important; }
.select2-dropdown { z-index: 2001 !important; }

/* =========================================================
   Dedicated POS workspace
   ========================================================= */
.dafopos-pos-body { min-height: 100dvh; overflow: hidden; background: var(--bs-tertiary-bg); }
.dafopos-pos-topbar {
    height: 68px;
    position: sticky;
    top: 0;
    z-index: 1030;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 1rem;
    border-bottom: 1px solid var(--dafo-border);
    background: color-mix(in srgb, var(--bs-body-bg) 96%, transparent);
    backdrop-filter: blur(12px);
}
.dafopos-pos-main { height: calc(100dvh - 68px); min-height: 0; }
.dafopos-pos-workspace {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
    min-height: 0;
}
.dafopos-pos-products {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    gap: 1rem;
    overflow: hidden;
}
.dafopos-pos-searchbar { flex: 0 0 auto; }
.dafopos-pos-results-wrap { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding-right: .2rem; }
.dafopos-pos-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .75rem; align-content: start; }
.dafopos-pos-product-card {
    appearance: none;
    border: 1px solid var(--dafo-border);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-radius: 1rem;
    padding: .9rem;
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    text-align: left;
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.dafopos-pos-product-card:hover,
.dafopos-pos-product-card:focus-visible { border-color: var(--dafo-primary); transform: translateY(-1px); box-shadow: var(--bs-box-shadow-sm); outline: 0; }
.dafopos-pos-product-icon { width: 42px; height: 42px; flex: 0 0 42px; display:flex;align-items:center;justify-content:center;border-radius:.8rem;background:var(--dafo-primary-soft);color:var(--dafo-primary); }
.dafopos-pos-cart-panel {
    min-width: 0;
    min-height: 0;
    background: var(--bs-body-bg);
    border-left: 1px solid var(--dafo-border);
    display: flex;
    flex-direction: column;
}
.dafopos-pos-cart-head { flex:0 0 auto; display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--dafo-border); }
.dafopos-pos-cart-items { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: .75rem 1rem; overscroll-behavior: contain; }
.dafopos-pos-cart-item { display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.8rem 0;border-bottom:1px solid var(--dafo-border); }
.dafopos-pos-qty { display:grid;grid-template-columns:32px 58px 32px;align-items:center;gap:.25rem; }
.dafopos-pos-qty .form-control { min-width: 0; padding-inline: .25rem; }
.dafopos-pos-summary { flex:0 0 auto;padding:1rem;border-top:1px solid var(--dafo-border);background:var(--bs-body-bg);box-shadow:0 -10px 25px rgba(0,0,0,.025); }
.dafopos-pos-total-row { display:flex;align-items:center;justify-content:space-between;font-size:1.2rem;padding-top:.75rem;margin-top:.75rem;border-top:1px dashed var(--dafo-border); }
.min-w-0 { min-width: 0 !important; }

@media (max-width: 991.98px) {
    .dafopos-pos-body { overflow: auto; }
    .dafopos-pos-main { height: auto; min-height: calc(100dvh - 68px); }
    .dafopos-pos-workspace { height: auto; min-height: calc(100dvh - 68px); grid-template-columns: 1fr; }
    .dafopos-pos-products { min-height: 58dvh; overflow: visible; }
    .dafopos-pos-results-wrap { overflow: visible; }
    .dafopos-pos-cart-panel { border-left: 0; border-top: 1px solid var(--dafo-border); min-height: 42dvh; }
    .dafopos-pos-cart-items { max-height: 42dvh; }
    .dafopos-pos-summary { position: sticky; bottom: 0; z-index: 10; }
}

@media (max-width: 575.98px) {
    .modal { --bs-modal-margin: .35rem; }
    .modal-dialog { margin: var(--bs-modal-margin); max-height: calc(100dvh - .7rem); }
    .modal-dialog.modal-dialog-centered { min-height: calc(100dvh - .7rem); }
    .modal-content,
    .modal-content > form,
    .modal-content > .dafopos-modal-form { max-height: calc(100dvh - .7rem); border-radius: .8rem; }
    .modal-header, .modal-footer { padding: .75rem 1rem; }
    .modal-body { padding: 1rem; }
    .dafopos-pos-topbar { height: 62px; padding: .5rem .7rem; }
    .dafopos-pos-main { min-height: calc(100dvh - 62px); }
    .dafopos-pos-workspace { min-height: calc(100dvh - 62px); }
    .dafopos-pos-products { padding: .75rem; gap: .75rem; }
    .dafopos-pos-product-grid { grid-template-columns: 1fr; gap: .5rem; }
    .dafopos-pos-product-card { padding: .75rem; border-radius: .8rem; }
    .dafopos-pos-cart-item { grid-template-columns: minmax(0,1fr) auto; }
    .dafopos-pos-cart-item > .text-end { grid-column: 1 / -1; display:flex;align-items:center;justify-content:space-between; }
}

/* =========================================================
   DafoPOS UI Polish Update
   Login, workspace selector, desktop sidebar collapse
   ========================================================= */
:root {
    --dafo-sidebar-collapsed-width: 86px;
    --dafo-gradient: linear-gradient(135deg, #1d4ed8 0%, #2563eb 42%, #4f46e5 100%);
    --dafo-gradient-soft: linear-gradient(135deg, rgba(37,99,235,.14), rgba(79,70,229,.08));
}

/* Shared logo mark */
.dafopos-logo-mark,
.dafopos-sidebar-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #fff;
    background: var(--dafo-gradient);
    box-shadow: 0 10px 28px rgba(37, 99, 235, .24);
}
.dafopos-logo-mark { width: 48px; height: 48px; border-radius: 15px; font-size: 1.15rem; }
.dafopos-logo-mark-sm { width: 42px; height: 42px; border-radius: 13px; font-size: 1rem; }

/* ---------------- Login ---------------- */
.dafopos-auth-body {
    min-height: 100dvh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 10% 10%, rgba(37,99,235,.08), transparent 34%),
        radial-gradient(circle at 90% 90%, rgba(79,70,229,.08), transparent 30%),
        var(--bs-tertiary-bg);
}
.dafopos-auth-bg { position: fixed; inset: 0; pointer-events: none; overflow: hidden; }
.dafopos-auth-orb { position: absolute; border-radius: 50%; filter: blur(2px); opacity: .55; }
.dafopos-auth-orb-one { width: 360px; height: 360px; top: -170px; right: 8%; background: rgba(37,99,235,.12); animation: dafoFloat 9s ease-in-out infinite; }
.dafopos-auth-orb-two { width: 280px; height: 280px; bottom: -150px; left: 6%; background: rgba(79,70,229,.12); animation: dafoFloat 11s ease-in-out infinite reverse; }
.dafopos-auth-grid { position:absolute; inset:0; opacity:.28; background-image:linear-gradient(rgba(99,102,241,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.06) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to bottom,black,transparent 80%); }
@keyframes dafoFloat { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,18px,0); } }
.dafopos-auth-wrap { position: relative; z-index: 1; min-height: 100dvh; display:flex; align-items:center; justify-content:center; padding: 2rem; }
.dafopos-auth-shell { width:min(1120px,100%); min-height:650px; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr); overflow:hidden; border:1px solid rgba(255,255,255,.6); border-radius:28px; background:var(--bs-body-bg); box-shadow:0 30px 90px rgba(15,23,42,.14); }
.dafopos-auth-showcase { position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:3rem; color:#fff; background:var(--dafo-gradient); isolation:isolate; }
.dafopos-auth-showcase::before { content:""; position:absolute; width:420px; height:420px; border-radius:50%; right:-170px; top:-160px; background:rgba(255,255,255,.12); z-index:-1; }
.dafopos-auth-showcase::after { content:""; position:absolute; width:300px; height:300px; border-radius:50%; left:-150px; bottom:-150px; border:60px solid rgba(255,255,255,.07); z-index:-1; }
.dafopos-brand-inverse { color:#fff; }
.dafopos-brand-inverse span { color:#bfdbfe; }
.dafopos-auth-kicker { display:flex; align-items:center; gap:.65rem; font-size:.72rem; font-weight:800; letter-spacing:.14em; color:#dbeafe; }
.dafopos-auth-kicker span { width:28px; height:2px; background:#bfdbfe; border-radius:999px; }
.dafopos-auth-title { max-width:560px; margin:1rem 0; font-size:clamp(2rem,4vw,3.35rem); line-height:1.02; letter-spacing:-.055em; font-weight:850; }
.dafopos-auth-copy { max-width:560px; font-size:1rem; line-height:1.7; color:rgba(255,255,255,.76); }
.dafopos-auth-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:2rem; }
.dafopos-auth-feature { display:flex; gap:.75rem; align-items:flex-start; padding:1rem; border:1px solid rgba(255,255,255,.14); border-radius:16px; background:rgba(255,255,255,.08); backdrop-filter:blur(10px); transition:transform .2s ease, background .2s ease; }
.dafopos-auth-feature:hover { transform:translateY(-2px); background:rgba(255,255,255,.12); }
.dafopos-auth-feature > i { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; flex:0 0 36px; border-radius:11px; background:rgba(255,255,255,.14); }
.dafopos-auth-feature strong,.dafopos-auth-feature span { display:block; }
.dafopos-auth-feature strong { font-size:.88rem; }
.dafopos-auth-feature span { margin-top:.2rem; font-size:.75rem; line-height:1.45; color:rgba(255,255,255,.68); }
.dafopos-auth-showcase-foot { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:2rem; font-size:.75rem; color:rgba(255,255,255,.6); }
.dafopos-auth-form-panel { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,5vw,4rem); }
.dafopos-auth-heading { letter-spacing:-.035em; }
.dafopos-login-form .form-control { min-height:52px; border-color:var(--bs-border-color); background:var(--bs-body-bg); }
.dafopos-login-form .form-control:focus { border-color:rgba(37,99,235,.65); box-shadow:0 0 0 .25rem rgba(37,99,235,.10); }
.dafopos-input-icon { position:relative; }
.dafopos-input-icon > i { position:absolute; left:1rem; top:50%; transform:translateY(-50%); z-index:2; color:var(--bs-secondary-color); }
.dafopos-input-icon .form-control { padding-left:2.8rem; }
.dafopos-password-field .form-control { padding-right:3.2rem; }
.dafopos-password-toggle { position:absolute; right:.35rem; top:50%; transform:translateY(-50%); z-index:3; width:42px; height:42px; padding:0; border:0; color:var(--bs-secondary-color); }
.dafopos-password-toggle:hover { color:var(--dafo-primary); background:var(--bs-tertiary-bg); }
.dafopos-auth-submit { min-height:54px; display:flex; align-items:center; justify-content:center; gap:.75rem; font-weight:700; box-shadow:0 14px 28px rgba(37,99,235,.22); transition:transform .18s ease, box-shadow .18s ease; }
.dafopos-auth-submit:hover { transform:translateY(-1px); box-shadow:0 18px 34px rgba(37,99,235,.28); }
.dafopos-auth-alert { border-radius:14px; }
.dafopos-auth-form-foot { display:flex; justify-content:center; align-items:center; gap:.55rem; margin-top:2rem; font-size:.72rem; color:var(--bs-secondary-color); }
.dafopos-auth-form-foot .dot { width:4px; height:4px; border-radius:50%; background:var(--bs-secondary-color); opacity:.5; }
.dafopos-auth-mobile-brand { align-items:center; }

/* ---------------- Workspace selector ---------------- */
.dafopos-context-body { min-height:100dvh; overflow-x:hidden; background:linear-gradient(180deg,#f8fafc 0%,#eef4ff 100%); }
[data-bs-theme="dark"] .dafopos-context-body { background:linear-gradient(180deg,#10141b 0%,#111827 100%); }
.dafopos-context-bg { position:fixed; inset:0; pointer-events:none; overflow:hidden; }
.dafopos-context-bg span { position:absolute; border-radius:50%; filter:blur(1px); }
.dafopos-context-bg span:first-child { width:420px; height:420px; right:-180px; top:-190px; background:rgba(37,99,235,.08); }
.dafopos-context-bg span:last-child { width:320px; height:320px; left:-170px; bottom:-160px; background:rgba(79,70,229,.08); }
.dafopos-context-container { position:relative; z-index:1; max-width:1180px; padding-top:1.5rem; padding-bottom:2rem; }
.dafopos-context-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0 2.25rem; }
.dafopos-context-logout { border-radius:12px; }
.dafopos-context-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:2rem; margin-bottom:2rem; padding:2rem; border:1px solid rgba(37,99,235,.12); border-radius:24px; background:color-mix(in srgb,var(--bs-body-bg) 90%,transparent); box-shadow:0 18px 48px rgba(15,23,42,.06); backdrop-filter:blur(12px); }
.dafopos-context-kicker { display:flex; align-items:center; gap:.55rem; color:var(--dafo-primary); font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.dafopos-context-hero h1 { max-width:760px; margin:.65rem 0 .75rem; font-size:clamp(1.8rem,4vw,3rem); line-height:1.08; letter-spacing:-.045em; font-weight:850; }
.dafopos-context-hero p { max-width:760px; margin:0; color:var(--bs-secondary-color); line-height:1.7; }
.dafopos-context-summary { display:flex; align-items:center; gap:.8rem; min-width:165px; padding:1rem; border:1px solid var(--dafo-border); border-radius:16px; background:var(--bs-body-bg); }
.dafopos-context-summary-icon { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:13px; color:var(--dafo-primary); background:var(--dafo-primary-soft); font-size:1.1rem; }
.dafopos-context-summary strong,.dafopos-context-summary span { display:block; }
.dafopos-context-summary strong { font-size:1.25rem; line-height:1; }
.dafopos-context-summary span { margin-top:.25rem; font-size:.75rem; color:var(--bs-secondary-color); }
.dafopos-workspace-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.dafopos-workspace-form { min-width:0; }
.dafopos-workspace-card { position:relative; overflow:hidden; width:100%; height:100%; min-height:230px; display:flex; flex-direction:column; text-align:left; padding:1.35rem; border:1px solid var(--dafo-border); border-radius:20px; background:var(--bs-body-bg); color:var(--bs-body-color); box-shadow:0 8px 28px rgba(15,23,42,.045); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.dafopos-workspace-card:hover,.dafopos-workspace-card:focus-visible { transform:translateY(-4px); border-color:rgba(37,99,235,.38); box-shadow:0 20px 44px rgba(37,99,235,.10); outline:0; }
.dafopos-workspace-accent { position:absolute; inset:0 0 auto; height:4px; background:var(--dafo-gradient); opacity:0; transition:opacity .2s ease; }
.dafopos-workspace-card:hover .dafopos-workspace-accent,.dafopos-workspace-card:focus-visible .dafopos-workspace-accent { opacity:1; }
.dafopos-workspace-card-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.dafopos-workspace-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:var(--dafo-primary-soft); color:var(--dafo-primary); font-size:1.2rem; transition:transform .2s ease; }
.dafopos-workspace-card:hover .dafopos-workspace-icon { transform:scale(1.05) rotate(-2deg); }
.dafopos-workspace-code { color:var(--bs-secondary-color)!important; background:var(--bs-tertiary-bg)!important; }
.dafopos-workspace-business { margin-top:1.35rem; color:var(--bs-secondary-color); font-size:.78rem; }
.dafopos-workspace-name { margin-top:.35rem; font-size:1.2rem; line-height:1.25; font-weight:750; letter-spacing:-.025em; }
.dafopos-workspace-action { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:auto; padding-top:1.4rem; color:var(--dafo-primary); font-size:.85rem; font-weight:700; }
.dafopos-workspace-action i { font-size:1.25rem; transition:transform .2s ease; }
.dafopos-workspace-card:hover .dafopos-workspace-action i { transform:translate(2px,-2px); }
.dafopos-empty-workspace { text-align:center; padding:3rem; border:1px dashed var(--bs-border-color); border-radius:20px; background:var(--bs-body-bg); }
.dafopos-empty-workspace > i { display:block; margin-bottom:.8rem; font-size:2rem; color:var(--dafo-primary); }
.dafopos-context-footer { display:flex; align-items:center; justify-content:center; gap:1.5rem; flex-wrap:wrap; padding:2rem 0 0; color:var(--bs-secondary-color); font-size:.75rem; }

/* ---------------- Sidebar polish + collapse ---------------- */
.dafopos-sidebar { overflow-x:hidden; transition:width .22s ease,transform .2s ease,box-shadow .2s ease; background:linear-gradient(180deg,var(--bs-body-bg) 0%,color-mix(in srgb,var(--bs-body-bg) 94%,var(--dafo-primary) 6%) 100%); }
.dafopos-main { transition:width .22s ease,margin-left .22s ease; }
.dafopos-sidebar-head { gap:.5rem; }
.dafopos-sidebar-brand { min-width:0; display:flex; align-items:center; gap:.7rem; color:var(--bs-body-color); }
.dafopos-sidebar-logo { width:36px; height:36px; border-radius:11px; font-size:.85rem; box-shadow:0 8px 20px rgba(37,99,235,.20); }
.dafopos-sidebar-brand-word { white-space:nowrap; font-size:1.28rem; line-height:1; font-weight:850; letter-spacing:-.05em; }
.dafopos-sidebar-brand-word > span { color:var(--dafo-primary); }
.dafopos-sidebar-collapse-btn { width:34px; height:34px; transition:transform .2s ease; }
.dafopos-context-card { display:flex; align-items:center; gap:.75rem; min-height:68px; overflow:hidden; transition:padding .2s ease,margin .2s ease; }
.dafopos-context-icon { width:36px; height:36px; flex:0 0 36px; display:flex; align-items:center; justify-content:center; border-radius:11px; color:var(--dafo-primary); background:var(--dafo-primary-soft); }
.dafopos-nav-link { position:relative; transition:background .16s ease,color .16s ease,transform .16s ease,padding .2s ease; }
.dafopos-nav-link:hover { transform:translateX(2px); }
.dafopos-nav-link.active::before { content:""; position:absolute; left:0; top:9px; bottom:9px; width:3px; border-radius:999px; background:var(--dafo-primary); }

@media (min-width: 992px) {
    .dafo-sidebar-collapsed .dafopos-sidebar { width:var(--dafo-sidebar-collapsed-width); padding-inline:.8rem; }
    .dafo-sidebar-collapsed .dafopos-main { width:calc(100% - var(--dafo-sidebar-collapsed-width)); margin-left:var(--dafo-sidebar-collapsed-width); }
    .dafo-sidebar-collapsed .dafopos-sidebar-head { justify-content:center; padding-inline:0; }
    .dafo-sidebar-collapsed .dafopos-sidebar-brand-word,
    .dafo-sidebar-collapsed .dafopos-context-copy,
    .dafo-sidebar-collapsed .dafopos-nav-link span { display:none; }
    .dafo-sidebar-collapsed .dafopos-sidebar-collapse-btn { position:absolute; right:-15px; top:18px; z-index:5; background:var(--bs-body-bg); box-shadow:var(--bs-box-shadow-sm); transform:rotate(180deg); }
    .dafo-sidebar-collapsed .dafopos-context-card { width:48px; min-height:48px; padding:5px; margin:.6rem auto 1rem; justify-content:center; border-radius:14px; }
    .dafo-sidebar-collapsed .dafopos-context-icon { width:36px; height:36px; }
    .dafo-sidebar-collapsed .dafopos-nav-label { height:1px; overflow:hidden; padding:0; margin:.7rem .45rem; font-size:0; background:var(--dafo-border); }
    .dafo-sidebar-collapsed .dafopos-nav-link { justify-content:center; width:48px; min-height:48px; margin-inline:auto; padding:.6rem; }
    .dafo-sidebar-collapsed .dafopos-nav-link i { width:auto; margin:0; font-size:1.1rem; }
    .dafo-sidebar-collapsed .dafopos-nav-link.active::before { left:-8px; }
    .dafo-sidebar-collapsed .dafopos-nav-link:hover { transform:translateY(-1px); }
}

@media (max-width: 991.98px) {
    .dafopos-auth-wrap { padding:1rem; }
    .dafopos-auth-shell { min-height:auto; grid-template-columns:1fr; max-width:560px; border-radius:22px; }
    .dafopos-auth-showcase { display:none; }
    .dafopos-auth-mobile-brand { display:flex!important; }
    .dafopos-auth-form-panel { padding:2rem; }
    .dafopos-context-hero { grid-template-columns:1fr; align-items:start; }
    .dafopos-context-summary { width:max-content; }
    .dafopos-workspace-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 575.98px) {
    .dafopos-auth-wrap { padding:.7rem; align-items:flex-start; }
    .dafopos-auth-shell { margin-top:.5rem; border-radius:18px; }
    .dafopos-auth-form-panel { padding:1.35rem; }
    .dafopos-auth-heading { font-size:1.65rem; }
    .dafopos-auth-form-foot { flex-wrap:wrap; }
    .dafopos-context-container { padding-inline:.85rem; }
    .dafopos-context-header { padding-bottom:1.25rem; }
    .dafopos-context-hero { padding:1.25rem; border-radius:18px; }
    .dafopos-context-hero h1 { font-size:1.75rem; }
    .dafopos-workspace-grid { grid-template-columns:1fr; }
    .dafopos-workspace-card { min-height:210px; border-radius:17px; }
}

@media (prefers-reduced-motion: reduce) {
    .dafopos-auth-orb,
    .dafopos-workspace-card,
    .dafopos-auth-feature,
    .dafopos-sidebar,
    .dafopos-main,
    .dafopos-nav-link { animation:none!important; transition:none!important; }
}
