:root{
  --primary:#315a9f;
  --primary2:#315a9f;
  --soft:#edf2f8;
  --bg:#f3f5f7;
  --surface:#fff;
  --ink:#202733;
  --muted:#707784;
  --line:#dfe3e8;
  --danger:#c94755;
  --success:#247a59;
  --shadow:0 3px 12px rgba(31,43,61,.04);
  color-scheme:light;
}
html{background:var(--bg);scroll-behavior:smooth}
body{background:var(--bg);letter-spacing:0}
button,input,select,textarea{transition:border-color .12s ease,background-color .12s ease,color .12s ease,opacity .12s ease}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(49,90,159,.28);outline-offset:2px}
.brand-mark{border-radius:10px;background:var(--primary);font-weight:700;box-shadow:none}
.boot-screen .brand-mark{margin:auto}
.login-page{background:var(--bg)}
.login-card{padding:36px;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px rgba(31,43,61,.07)}
.login-card h1{font-weight:700;color:var(--ink)}
.field input,.field select,.field textarea,.toolbar input,.toolbar select{border-color:#d7dce3;border-radius:8px;background:#fff}
.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(49,90,159,.10)}
.button{border-radius:8px;background:var(--primary);font-weight:600;box-shadow:none}
.button:hover{background:#294f8e}
.button:active{transform:translateY(1px)}
.button.secondary{background:var(--soft);color:var(--primary)}
.button.secondary:hover{background:#e2eaf3}
.button.ghost{background:#eef0f3;color:#535d6c}
.button.danger{background:#fbecee;color:var(--danger)}
.identity-choice{border-color:var(--line);border-radius:9px;background:#fff}
.identity-choice:hover{border-color:var(--primary);background:#f7f9fb}
.side-nav{width:224px;padding:22px 14px;background:#172234;border-right:1px solid #253246}
.side-brand{margin:0 6px 24px}
.side-brand .brand-mark{border-radius:9px}
.side-brand small{color:#9ca7b8}
.nav-list{gap:3px}
.nav-item{border-radius:7px;padding:11px 13px;color:#b6bfcc}
.nav-item:hover{background:#213047;color:#fff}
.nav-item.active{background:#26364d;color:#fff;box-shadow:inset 3px 0 #78a2d2}
.nav-foot{color:#8e99aa;border-top:1px solid #2a374b;margin-top:auto;padding-top:15px}
.main-shell{margin-left:224px}
.topbar{height:76px;padding:14px 30px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.topbar h1{font-size:22px;font-weight:700;letter-spacing:0}
.content{padding:22px 30px 52px}
.cards{gap:12px}
.card,.panel{border-color:var(--line);border-radius:11px;box-shadow:var(--shadow)}
.metric{padding:18px;border-top:3px solid #8ca8c9}
.metric strong{font-size:24px;font-weight:700}
.panel{padding:20px;margin-top:16px}
.panel h2,.panel h3{font-weight:700;color:#26303e}
.quick-grid{gap:10px}
.quick{border-color:var(--line);border-radius:9px;background:#fff;padding:15px}
.quick:hover{border-color:#aebfd2;background:#f8fafc}
.list{gap:8px}
.list-item{border-color:var(--line);border-radius:9px;padding:13px}
.list-item:hover{background:#fafbfc}
.list-title{font-weight:700}
.pill{border-radius:6px;padding:5px 8px;font-weight:600}
.tabs{border-radius:9px;background:#e8ebef}
.tab{border-radius:6px}
.tab.active{color:var(--primary);box-shadow:none}
.customer-grid{gap:10px}
.customer-card{padding:15px}
.avatar{border-radius:9px;background:var(--soft);font-weight:700}
.photo-card{border:1px solid var(--line);border-radius:9px}
.portal-hero{background:#fff;border-color:var(--line)}
.entitlement-line{border-color:var(--line);border-radius:9px}
.slot{border-radius:7px}
.rank-no{border-radius:6px}
dialog{border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 60px rgba(20,31,48,.20)}
dialog::backdrop{background:rgba(20,28,40,.38);backdrop-filter:none}
.close-modal{border-radius:7px}
.checkbox-grid label{border-radius:7px}
.signature-pad{border-radius:8px}
#toast{right:22px;bottom:22px;border-radius:8px;background:#26303e;box-shadow:0 8px 22px rgba(20,28,40,.18)}
.loading{min-height:180px;display:flex;align-items:center;justify-content:center;gap:10px;padding:55px;color:var(--muted)}
.loading:before{content:"";width:18px;height:18px;border:2px solid #cbd3dc;border-top-color:var(--primary);border-radius:50%;animation:enterprise-spin .7s linear infinite}
@keyframes enterprise-spin{to{transform:rotate(360deg)}}
@media(max-width:1050px){.side-nav{width:204px}.main-shell{margin-left:204px}.content{padding-left:22px;padding-right:22px}}
@media(max-width:760px){.side-nav{display:none}.main-shell{margin-left:0}.topbar{height:66px;padding:12px 16px}.content{padding:14px 13px 88px}.card,.panel{border-radius:10px}.mobile-nav{height:66px;border-top-color:var(--line);box-shadow:0 -4px 16px rgba(31,43,61,.05)}.mobile-nav .nav-item.active{color:var(--primary);box-shadow:inset 0 3px var(--primary)}.login-card{padding:28px 23px}.page-head{gap:10px}.toolbar{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
