*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{font-family:var(--font-sans);background:var(--bg);color:var(--text);
  font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased;overflow:hidden}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
.s-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.s-app{display:grid;grid-template-columns:248px 1fr;grid-template-rows:68px 1fr;height:100vh}

.s-hdr{grid-column:1/-1;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-5);min-width:0;
  background:var(--surface);border-bottom:1px solid var(--border);z-index:20}
.s-brand{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}
.s-brand img{height:30px;width:auto;object-fit:contain;flex:0 0 auto}
.s-brand b{font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;min-width:0}
.s-slot{font-size:var(--text-xs);color:var(--text-secondary);border:1px dashed var(--border);
  border-radius:var(--radius-sm);padding:2px 6px;white-space:nowrap}
.s-hdr-sp{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}
.s-tenant{font-size:var(--text-sm);color:var(--text-secondary);padding-right:var(--space-2);
  border-right:1px solid var(--border);white-space:nowrap}
.s-icbtn{width:40px;height:40px;min-width:40px;display:grid;place-items:center;border-radius:var(--radius-md);
  border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;
  transition:background .16s ease-out,color .16s ease-out,transform .16s ease-out}
.s-icbtn:hover,.s-icbtn:focus-visible{background:var(--bg-muted);color:var(--text)}
.s-icbtn:active{transform:translateY(1px)}
.s-who{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-secondary)}
.s-av{width:32px;height:32px;border-radius:var(--radius-pill);background:var(--accent-subtle);
  color:var(--accent-text);display:grid;place-items:center;font-size:var(--text-xs);font-weight:700}

.s-nav{display:block;background:var(--surface);border-right:1px solid var(--border);
  padding:var(--space-4) 0;overflow-y:auto}
.s-navgrp{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:var(--text-muted);padding:var(--space-4) var(--space-5) 6px}
.s-navlink{display:flex;align-items:center;gap:11px;min-height:46px;padding:0 var(--space-5);
  font-size:var(--text-sm);font-weight:600;color:var(--text);text-decoration:none;
  border-left:3px solid transparent;transition:background .16s ease-out,color .16s ease-out}
.s-navlink:hover,.s-navlink:focus-visible{background:var(--bg-muted)}
.s-navlink[aria-current="page"]{background:var(--accent-subtle);color:var(--accent-text);font-weight:700;
  border-left-color:var(--accent)}
.s-navlink svg{flex:0 0 auto;opacity:.85}
.s-navlink[aria-current="page"] svg{opacity:1}
.s-badge-n{margin-left:auto;font-size:var(--text-xs);font-weight:700;background:var(--bg-muted);
  color:var(--text-secondary);border-radius:var(--radius-pill);padding:1px 7px}
.s-navlink[aria-current="page"] .s-badge-n{background:var(--accent);color:var(--text-on-accent)}

.s-main{overflow-y:auto;padding:var(--space-5);scroll-behavior:smooth}
.s-crumb{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:6px}
.s-h1{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.015em;line-height:1.2;margin:0 0 var(--space-3)}
.s-lede{font-size:var(--text-base);line-height:1.6;color:var(--text-secondary);
  margin:0 0 var(--space-5);max-width:74ch}
.s-view{animation:s-in .22s ease-out both}
@keyframes s-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.s-grid{display:grid;gap:var(--space-4)}
.s-g4{grid-template-columns:repeat(4,1fr)}
.s-g3{grid-template-columns:repeat(3,1fr)}
.s-g2{grid-template-columns:repeat(2,1fr)}
.s-split{display:grid;grid-template-columns:1fr 380px;gap:var(--space-4);align-items:start}
.s-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  overflow:hidden}
.s-card>header{display:flex;align-items:center;gap:8px;padding:14px var(--space-5);
  border-bottom:1px solid var(--border)}
.s-card>header h2{margin:0;font-size:var(--text-base);font-weight:700;letter-spacing:-.005em}
.s-card>header .s-sub{margin-left:auto;font-size:var(--text-sm);color:var(--text-secondary);font-weight:400}
.s-pad{padding:var(--space-5)}

.s-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:var(--space-5);display:flex;flex-direction:column;gap:2px}
.s-kpi .v{font-size:var(--text-3xl);font-weight:700;line-height:1.1;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.s-kpi .v.txt{font-size:var(--text-lg);line-height:1.3;letter-spacing:0;font-variant-numeric:normal}
.s-kpi .k{font-size:var(--text-sm);color:var(--text-secondary)}
.s-kpi .d{font-size:var(--text-sm);font-weight:700;margin-top:6px;display:flex;align-items:center;gap:4px}
.s-up{color:var(--success-text)}.s-dn{color:var(--danger-text)}.s-flat{color:var(--text-secondary)}
.s-kpi .spark{margin-top:6px;height:26px}

table.s-tbl{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.s-tbl th{text-align:left;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;
  color:var(--blue-700);background:var(--blue-50);padding:11px var(--space-5);font-weight:700;
  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1;white-space:nowrap}
.s-tbl td{padding:12px var(--space-5);border-bottom:1px solid var(--neutral-100);vertical-align:middle;
  color:var(--text)}
.s-tbl tbody tr{cursor:pointer;transition:background .14s ease-out}
.s-tbl tbody tr:hover,.s-tbl tbody tr:focus-visible{background:var(--bg-muted)}
.s-tbl tbody tr[aria-selected="true"]{background:var(--accent-subtle)}
.s-tbl tbody tr:last-child td{border-bottom:0}
.s-num{text-align:right;font-variant-numeric:tabular-nums}
.s-mono{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:var(--text-sm)}
.s-scroll{max-height:var(--h,420px);overflow-y:auto}

.s-tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:700;
  padding:3px 10px;border-radius:var(--radius-pill);white-space:nowrap;letter-spacing:.02em}
.s-APPROVE{background:var(--green-50);color:var(--green-700)}
.s-DECLINE{background:var(--red-50);color:var(--red-700)}
.s-REVIEW{background:var(--amber-50);color:var(--amber-700)}
.s-CHALLENGE{background:var(--blue-50);color:var(--blue-700)}
.s-INFO{background:var(--bg-muted);color:var(--text-secondary)}
.s-AI{background:var(--indigo-50);color:var(--indigo-700)}
.s-HIGH{background:var(--red-50);color:var(--red-700)}
.s-MED{background:var(--amber-50);color:var(--amber-700)}
.s-LOW{background:var(--bg-muted);color:var(--text-secondary)}

.s-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;
  padding:0 18px;font:inherit;font-size:var(--text-sm);font-weight:700;border-radius:var(--radius-pill);
  border:1px solid var(--accent);background:var(--accent);color:var(--text-on-accent);cursor:pointer;
  transition:background .16s ease-out,transform .12s ease-out,box-shadow .16s ease-out}
.s-btn:hover{background:var(--accent-hover)}
.s-btn:active{transform:translateY(1px)}
.s-btn2{background:transparent;color:var(--accent-text)}
.s-btn2:hover{background:var(--accent-subtle)}
.s-btn3{background:transparent;border-color:var(--border);color:var(--text-secondary)}
.s-btn3:hover{background:var(--bg-muted);color:var(--text)}
.s-btn[disabled]{opacity:.5;cursor:not-allowed}
.s-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.s-input,.s-select{min-height:40px;padding:0 12px;font:inherit;font-size:var(--text-sm);
  color:var(--text);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-md);transition:border-color .16s ease-out,box-shadow .16s ease-out}
.s-input:focus,.s-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}
.s-chipbar{display:flex;gap:6px;flex-wrap:wrap}
.s-chip{min-height:36px;padding:0 14px;font-size:var(--text-sm);font-weight:700;border-radius:var(--radius-pill);
  border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;
  transition:background .16s ease-out,color .16s ease-out,border-color .16s ease-out}
.s-chip:hover{background:var(--bg-muted);color:var(--text)}
.s-chip[aria-pressed="true"]{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-text)}

.s-lbl{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:var(--text-muted);margin:var(--space-5) 0 8px}
.s-kv{display:grid;grid-template-columns:auto 1fr;gap:9px 16px;font-size:var(--text-sm)}
.s-kv dt{color:var(--text-secondary)}
.s-kv dd{margin:0;font-weight:700;text-align:right}
.s-rc{display:flex;align-items:flex-start;gap:9px;padding:10px 0;border-bottom:1px solid var(--neutral-100);
  font-size:var(--text-sm)}
.s-rc:last-child{border-bottom:0}
.s-rc .code{font-size:var(--text-xs);font-weight:700;color:var(--accent-text);background:var(--accent-subtle);
  border-radius:var(--radius-sm);padding:3px 7px;flex:0 0 auto}
.s-rc .w{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--text);font-weight:700;flex:0 0 auto}
.s-note{background:var(--blue-50);border-left:3px solid var(--blue-500);border-radius:var(--radius-sm);
  padding:13px 15px;font-size:var(--text-sm);color:var(--blue-700);line-height:1.6}
.s-meter{height:6px;border-radius:var(--radius-pill);background:var(--neutral-100);overflow:hidden}
.s-meter i{display:block;height:100%;border-radius:var(--radius-pill);transition:width .4s ease-out}

.s-tl{position:relative;padding-left:20px}
.s-tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--neutral-100)}
.s-tl .ev{position:relative;padding-bottom:14px}
.s-tl .ev::before{content:"";position:absolute;left:-20px;top:3px;width:11px;height:11px;
  border-radius:var(--radius-pill);background:var(--surface);border:2px solid var(--accent)}
.s-tl .ev.mut::before{border-color:var(--neutral-300)}
.s-tl .t{font-size:var(--text-sm);font-weight:700}
.s-tl .m{font-size:var(--text-sm);color:var(--text-secondary);margin-top:3px;line-height:1.55}

.s-feed li{display:grid;grid-template-columns:78px 1fr auto;gap:12px;align-items:center;
  padding:11px var(--space-5);border-bottom:1px solid var(--neutral-100);font-size:var(--text-sm)}
.s-feed{list-style:none;margin:0;padding:0}
.s-feed li.new{animation:s-slide .26s ease-out both}
@keyframes s-slide{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

.s-empty{padding:var(--space-7);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}
.s-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:60;
  background:var(--text);color:var(--bg);font-size:var(--text-sm);font-weight:700;
  padding:13px 20px;border-radius:var(--radius-pill);box-shadow:var(--shadow-3);
  animation:s-toast .24s ease-out both}
@keyframes s-toast{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

.s-xml{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;
  background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:12px;overflow:auto;max-height:280px;white-space:pre;color:var(--text)}

@media (max-width:1100px){.s-split{grid-template-columns:1fr}.s-g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){
  .s-app{grid-template-columns:100%;grid-template-rows:68px auto 1fr}
  .s-hdr{grid-column:1}
  .s-nav{grid-column:1;border-right:0;border-bottom:1px solid var(--border);display:flex;
    gap:4px;overflow-x:auto;padding:8px var(--space-4)}
  .s-navgrp{display:none}
  .s-navlink{border-left:0;border-bottom:3px solid transparent;border-radius:var(--radius-md);
    padding:0 12px;white-space:nowrap}
  .s-navlink[aria-current="page"]{border-left:0;border-bottom-color:var(--accent)}
  .s-g3,.s-g2{grid-template-columns:1fr}
}
@media (max-width:640px){.s-slot{display:none}}
@media (max-width:520px){.s-g4{grid-template-columns:1fr}.s-tenant{display:none}
  .s-main{padding:var(--space-4)}.s-brand b{display:none}}
@media (max-width:860px),(pointer:coarse){
  .s-btn{min-height:44px;padding:0 18px}
  .s-icbtn{width:44px;height:44px;min-width:44px}
  .s-chip{min-height:44px;padding:0 16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important}
}

.s-tour-veil{position:fixed;inset:0;z-index:50;background:transparent;pointer-events:auto}
.s-tour-hole{position:fixed;z-index:51;border-radius:var(--radius-md);pointer-events:none;
  box-shadow:0 0 0 9999px var(--scrim);transition:all .24s ease-out;
  outline:2px solid var(--accent);outline-offset:3px}
.s-tour-card{position:fixed;z-index:52;width:min(380px,calc(100vw - 32px));background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);
  padding:var(--space-5);transition:transform .24s ease-out,opacity .24s ease-out;
  animation:s-pop .24s ease-out both}
@keyframes s-pop{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
.s-tour-card h3{margin:0 0 8px;font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em}
.s-tour-card p{margin:0;font-size:var(--text-base);color:var(--text-secondary);line-height:1.6}
.s-tour-step{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;
  color:var(--accent-text);font-weight:700;margin-bottom:10px}
.s-tour-foot{display:flex;align-items:center;gap:8px;margin-top:var(--space-5)}
.s-tour-dots{display:flex;gap:5px;margin-right:auto}
.s-tour-dots i{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--neutral-300);
  display:block;transition:background .2s ease-out,width .2s ease-out}
.s-tour-dots i.on{background:var(--accent);width:16px}
.s-tour-welcome{position:fixed;inset:0;z-index:52;display:grid;place-items:center;padding:16px;
  background:var(--scrim)}
.s-tour-modal{width:min(560px,100%);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-3);padding:var(--space-6);
  animation:s-pop .26s ease-out both}
.s-tour-modal h2{margin:0 0 10px;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.015em}
.s-tour-modal p{margin:0 0 var(--space-5);font-size:var(--text-base);color:var(--text-secondary);line-height:1.65}
.s-tour-list{list-style:none;margin:0 0 var(--space-5);padding:0;display:grid;gap:10px}
.s-tour-list li{display:flex;gap:12px;align-items:flex-start;font-size:var(--text-base)}
.s-tour-list .n{flex:0 0 auto;width:26px;height:26px;border-radius:var(--radius-pill);
  background:var(--accent-subtle);color:var(--accent-text);font-size:var(--text-sm);font-weight:700;
  display:grid;place-items:center}
.s-tour-list b{display:block;font-size:var(--text-base)}
.s-tour-list span{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}

.s-skel{background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-md);
  opacity:.7}

.s-err{background:var(--red-50);border:1px solid var(--red-200);border-left:3px solid var(--red-500);
  border-radius:var(--radius-md);padding:15px 17px;color:var(--red-700);font-size:var(--text-sm)}
.s-err-h{display:flex;align-items:center;gap:8px;font-size:var(--text-base);margin-bottom:6px}
.s-err p{margin:0;line-height:1.6;color:var(--red-700)}
.s-err ul{margin:8px 0 0;padding-left:18px;line-height:1.6}
.s-err-c{margin-top:9px;font-size:var(--text-xs);color:var(--red-600);
  font-variant-numeric:tabular-nums;word-break:break-all}
.s-toast-bad{background:var(--red-600);color:var(--text-on-accent)}

.s-signin{min-height:100vh;display:grid;grid-template-columns:1fr;place-items:center;
  padding:var(--space-5);background:var(--bg)}
.s-signin-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-2);padding:var(--space-6);
  animation:s-pop .26s ease-out both}
.s-signin-brand{display:flex;align-items:center;gap:10px;margin-bottom:var(--space-5)}
.s-signin-brand img{height:32px;width:auto;object-fit:contain}
.s-signin-card h1{margin:0 0 6px;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.015em;
  line-height:1.2}
.s-signin-card .s-lede{margin-bottom:var(--space-5)}
.s-field{display:grid;gap:6px;margin-bottom:var(--space-4)}
.s-field label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:var(--text-muted)}
.s-field .s-input,.s-field .s-select{width:100%}
.s-field .s-hint{font-size:var(--text-sm);color:var(--text-secondary)}
.s-signin-foot{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border);
  font-size:var(--text-sm);color:var(--text-secondary);display:flex;align-items:center;
  gap:8px;flex-wrap:wrap}
.s-signin .s-btn{width:100%}
.s-signin-roles{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}

.s-hdr-status{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;
  color:var(--text-secondary);white-space:nowrap}
.s-dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--green-500);flex:0 0 auto}
.s-dot.bad{background:var(--red-500)}
.s-menu{position:relative}
.s-menu-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:230px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  box-shadow:var(--shadow-3);padding:var(--space-4);animation:s-pop .18s ease-out both}
.s-menu-pop .who{font-size:var(--text-sm);font-weight:700}
.s-menu-pop .sub{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px;word-break:break-all}
.s-menu-pop .s-btn{width:100%;margin-top:var(--space-4)}
.s-who{background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);
  padding:3px 10px 3px 3px;cursor:pointer;font:inherit;font-size:var(--text-sm);min-height:40px;
  transition:background .16s ease-out}
.s-who:hover,.s-who:focus-visible{background:var(--bg-muted)}

.s-fresh{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto;
  font-variant-numeric:tabular-nums}
@media (max-width:860px){.s-hdr-status{display:none}}
@media (max-width:640px){.s-who span:not(.s-av){display:none}}
@media (max-width:860px),(pointer:coarse){.s-who{min-height:44px}}
