/* MASTERLAW® V27.19 · UI bridge + OS2 classified navigation
   Visual/navigation layer only. No auth, API or business logic changes. */
:root{
  --ml276-ink:#29463e;
  --ml276-text:#3f5d55;
  --ml276-muted:#748781;
  --ml276-bg:#f7faf9;
  --ml276-card:#ffffff;
  --ml276-line:#dbe8e3;
  --ml276-line-2:#cbdcd5;
  --ml276-sage:#b7d8ca;
  --ml276-sage-soft:#edf7f2;
  --ml276-blue:#bfd4e4;
  --ml276-blue-soft:#eef5fa;
  --ml276-lilac:#d5c8e7;
  --ml276-lilac-soft:#f4f0f9;
  --ml276-sand:#e7d4ae;
  --ml276-sand-soft:#fbf6e9;
  --ml276-rose:#e5c6ca;
  --ml276-rose-soft:#fbf1f2;
  --ml276-shadow:0 12px 30px rgba(49,77,69,.07);
  --ml276-shadow-soft:0 7px 20px rgba(49,77,69,.05);
}

/* ========================= OS2 ========================= */
body:has(.portal){background:var(--ml276-bg)!important;color:var(--ml276-ink)!important}
body:has(.portal) .portal{
  --ink:var(--ml276-ink);--muted:var(--ml276-muted);--line:var(--ml276-line);--line-2:var(--ml276-line-2);
  --sage-soft:var(--ml276-sage-soft);--sage-deep:#567f72;--sand:var(--ml276-sand-soft);
  min-height:100vh;grid-template-columns:286px minmax(0,1fr)!important;background:var(--ml276-bg)!important
}
body:has(.portal) .portal-nav,
body:has(.broker-os) .portal-nav{
  position:sticky!important;top:0!important;height:100vh!important;overflow:hidden!important;
  display:flex!important;flex-direction:column!important;padding:19px 15px 16px!important;
  background:linear-gradient(180deg,#fbfdfc 0%,#f1f7f4 100%)!important;
  border-right:1px solid var(--ml276-line)!important;color:var(--ml276-ink)!important;
  box-shadow:8px 0 26px rgba(49,77,69,.04)!important
}
body:has(.portal) .portal-nav .wordmark{padding:5px 7px 15px;border-bottom:1px solid var(--ml276-line);text-decoration:none}
body:has(.portal) .portal-nav .brand-icon{width:42px;height:42px;flex:0 0 42px;border-radius:13px;background:#fff;padding:3px;border:1px solid var(--ml276-line);box-shadow:var(--ml276-shadow-soft)}
body:has(.portal) .portal-nav .wordmark-main,
body:has(.broker-os) .portal-nav .wordmark-main{color:var(--ml276-ink)!important;font-size:22px!important;letter-spacing:.07em!important}
body:has(.portal) .portal-nav .wordmark-sub,
body:has(.broker-os) .portal-nav .wordmark-sub{color:#7a9088!important;font-size:9px!important;letter-spacing:.13em!important}

.os2-session{margin:13px 4px 8px;padding:11px 12px;border:1px solid var(--ml276-line);background:#fff;border-radius:15px;display:flex;align-items:center;gap:9px;box-shadow:var(--ml276-shadow-soft)}
.os2-role-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#83b3a2;box-shadow:0 0 0 5px rgba(131,179,162,.13)}
.os2-session>div{min-width:0;display:grid;gap:2px}.os2-session strong{font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:var(--ml276-ink)}.os2-session small{font-size:10px;color:var(--ml276-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.os2-nav-scroll{min-height:0;overflow:auto;padding:3px 2px 12px;scrollbar-width:thin;scrollbar-color:#cadbd4 transparent}
.os2-nav-group{--group:#b7d8ca;--group-soft:#edf7f2;position:relative;margin:11px 2px 0;padding:8px 7px 9px;border:1px solid transparent;border-radius:16px;background:transparent}
.os2-nav-group:hover{background:rgba(255,255,255,.6);border-color:#e2ece8}
.os2-nav-label{margin:0 8px 6px;color:#748781;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:7px}
.os2-nav-label:before{content:"";width:7px;height:7px;border-radius:3px;background:var(--group);flex:0 0 7px}
.os2-nav-group nav{display:grid!important;gap:3px!important;margin:0!important;overflow:visible!important}
body:has(.portal) .portal-nav .os2-nav-group nav a,
body:has(.broker-os) .portal-nav .os2-nav-group nav a{
  min-height:38px;display:flex;align-items:center;gap:9px;padding:8px 9px!important;border:1px solid transparent!important;border-radius:11px!important;
  background:transparent!important;color:var(--ml276-text)!important;text-decoration:none;font-size:12px!important;font-weight:780!important;box-shadow:none!important
}
body:has(.portal) .portal-nav .os2-nav-group nav a:hover,
body:has(.broker-os) .portal-nav .os2-nav-group nav a:hover{background:#fff!important;border-color:var(--ml276-line)!important;color:var(--ml276-ink)!important;transform:none!important}
body:has(.portal) .portal-nav .os2-nav-group nav a.active{background:var(--group-soft)!important;border-color:color-mix(in srgb,var(--group) 60%,white)!important;color:var(--ml276-ink)!important}
.nav-icon{width:26px;height:26px;flex:0 0 26px;border-radius:9px;display:grid;place-items:center;background:var(--group-soft);color:#58766c;font-size:12px;font-weight:900}
.tone-home{--group:#bacdc7;--group-soft:#eef4f2}.tone-client,.tone-people{--group:#b7d8ca;--group-soft:#edf7f2}.tone-operation{--group:#bfd4e4;--group-soft:#eef5fa}.tone-law{--group:#d5c8e7;--group-soft:#f4f0f9}.tone-property{--group:#c5dcc2;--group-soft:#f0f7ee}.tone-finance{--group:#e7d4ae;--group-soft:#fbf6e9}.tone-comms{--group:#e5c6ca;--group-soft:#fbf1f2}.tone-system{--group:#cbd4d8;--group-soft:#f2f5f6}.tone-docs{--group:#bfd4e4;--group-soft:#eef5fa}.tone-help{--group:#e7d4ae;--group-soft:#fbf6e9}
.os2-nav-footer{padding:12px 4px 0;border-top:1px solid var(--ml276-line);display:grid;gap:9px}.os2-nav-footer>span{font-size:9px;color:#81928d;letter-spacing:.08em;text-align:center}
body:has(.portal) .portal-nav .btn.outline.full{min-height:40px!important;background:#fff!important;border:1px solid var(--ml276-line-2)!important;color:#49665e!important;box-shadow:none!important;font-size:11px!important;border-radius:11px!important}
body:has(.portal) .portal-nav .btn.outline.full:hover{background:#f7fbf9!important}

body:has(.portal) .portal-main,
body:has(.broker-os) .portal-main{background:linear-gradient(180deg,#f8fbfa 0%,#f5f8f7 100%)!important;min-width:0}
body:has(.portal) .portal-page{max-width:1500px;padding:36px 40px 60px!important}
body:has(.portal) .portal-page h1{font-size:clamp(38px,4.2vw,54px)!important;letter-spacing:-.04em!important;margin:7px 0 12px!important;color:var(--ml276-ink)!important}
body:has(.portal) .metric-grid{gap:12px;margin:18px 0}
body:has(.portal) .metric,body:has(.portal) .panel-card{background:#fff!important;border:1px solid var(--ml276-line)!important;border-radius:20px!important;box-shadow:var(--ml276-shadow-soft)!important;color:var(--ml276-ink)!important}
body:has(.portal) .metric{position:relative;overflow:hidden;min-height:124px}
body:has(.portal) .metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#a9cfc2,#d5e7df)}
body:has(.portal) .metric strong{font-size:30px;color:var(--ml276-ink)!important}
body:has(.portal) .btn{border-radius:12px;min-height:42px;font-size:12px;box-shadow:none!important}
body:has(.portal) .btn.outline{background:#fff!important;color:#4c6960!important;border-color:var(--ml276-line-2)!important}
body:has(.portal) table{background:#fff!important;color:var(--ml276-ink)!important}body:has(.portal) th{background:#f1f7f4!important;color:#60776f!important}body:has(.portal) td{border-color:#e6efeb!important}

/* ========================= Legacy bridge ========================= */
.ml276-legacy body{padding-top:66px!important}
#ml276-bridge{
  position:fixed;inset:0 0 auto 0;z-index:2147483000;min-height:66px;padding:8px 16px;
  background:rgba(250,252,251,.98);backdrop-filter:blur(14px);border-bottom:1px solid var(--ml276-line);
  box-shadow:0 7px 24px rgba(49,77,69,.08);display:flex;align-items:center;gap:14px;
  color:var(--ml276-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif
}
#ml276-bridge .ml276-name{display:flex;align-items:center;gap:9px;white-space:nowrap}
#ml276-bridge .ml276-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#e5f2ed;border:1px solid #cee3da;color:#3e675c;font:900 15px Georgia,serif}
#ml276-bridge .ml276-name>span:last-child{display:grid;gap:1px}
#ml276-bridge .ml276-name strong{font-size:12px;letter-spacing:.05em;color:var(--ml276-ink)}
#ml276-bridge .ml276-name small{font-size:9px;color:var(--ml276-muted);font-weight:750;letter-spacing:.02em}
#ml276-bridge .ml276-links{margin-left:auto;display:flex;align-items:center;gap:6px;min-width:0}
#ml276-bridge .ml276-direct{display:flex;gap:6px}
#ml276-bridge a,#ml276-bridge summary{min-height:38px;display:flex;align-items:center;color:#4c6960;text-decoration:none;padding:8px 10px;border-radius:11px;border:1px solid var(--ml276-line);background:#fff;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer;list-style:none}
#ml276-bridge summary::-webkit-details-marker{display:none}
#ml276-bridge a.primary{background:#e5f2ed;border-color:#c8dfd6;color:#315b4f}
#ml276-bridge a:hover,#ml276-bridge summary:hover,#ml276-bridge details[open]>summary{background:#f1f7f4;color:var(--ml276-ink);border-color:#cddfd8}
#ml276-bridge .ml276-menu{position:relative}
#ml276-bridge .ml276-menu summary:after{content:"⌄";margin-left:6px;color:#8a9b96;font-size:10px}
#ml276-bridge .ml276-menu-pop{position:absolute;right:0;top:43px;min-width:190px;padding:7px;background:#fff;border:1px solid var(--ml276-line);border-radius:14px;box-shadow:0 18px 38px rgba(49,77,69,.14);display:grid;gap:4px}
#ml276-bridge details:not([open]) .ml276-menu-pop{display:none}
#ml276-bridge .ml276-menu-pop a{border:0;background:transparent;min-height:34px;border-radius:9px;padding:8px 9px}
#ml276-bridge .ml276-menu-pop a:hover{background:#f0f7f4}

/* Classifies /admin module navigation without changing its app logic */
body.masterlaw-admin #modulebar.modulebar{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px!important;overflow:visible!important;padding:8px 0 15px!important}
body.masterlaw-admin #modulebar .ml276-module-group{min-width:0;padding:9px;border:1px solid var(--ml276-line)!important;border-radius:14px;background:#fff!important;box-shadow:var(--ml276-shadow-soft)}
body.masterlaw-admin #modulebar .ml276-module-label{display:block;margin:0 5px 6px;color:#71857e!important;font:850 8px/1.2 Inter,system-ui,sans-serif!important;letter-spacing:.13em;text-transform:uppercase}
body.masterlaw-admin #modulebar .ml276-module-items{display:flex;gap:5px;flex-wrap:wrap}
body.masterlaw-admin #modulebar .ml276-module-items a{margin:0!important;min-height:34px!important;padding:7px 9px!important;border-radius:9px!important;background:#f7faf9!important;border:1px solid #e1ebe7!important;color:#4d6860!important;box-shadow:none!important;font-size:10px!important}
body.masterlaw-admin #modulebar .ml276-module-items a.on{background:#e8f3ee!important;border-color:#cadfd6!important;color:#315b4f!important}
body.masterlaw-admin #modulebar .ml276-module-items a:hover{background:#eef6f2!important;border-color:#cbded6!important;color:#29463e!important}

/* soften legacy admin chrome only; does not alter Bandeja or other apps */
body.masterlaw-admin .topbar,body.masterlaw-admin .tbar{background:#f9fcfa!important;color:var(--ml276-ink)!important;border-color:var(--ml276-line)!important;box-shadow:0 5px 20px rgba(49,77,69,.05)!important}
body.masterlaw-admin .topbar:after{display:none!important}
body.masterlaw-admin .brand strong,body.masterlaw-admin .brand small,body.masterlaw-admin .nav a,body.masterlaw-admin .who{color:var(--ml276-text)!important}
body.masterlaw-admin .brandmark{background:#e5f2ed!important;color:#315b4f!important;border-color:#cbe1d8!important;box-shadow:none!important}
body.masterlaw-admin .nav a.on{background:#e7f3ee!important;color:#315b4f!important;border-color:#cce1d9!important}
body.masterlaw-admin .logout{background:#fff!important;color:#526f66!important;border-color:var(--ml276-line)!important}
body.masterlaw-admin .commandbar,body.masterlaw-admin .databand{background:#fff!important;border-color:var(--ml276-line)!important;color:var(--ml276-text)!important;box-shadow:var(--ml276-shadow-soft)!important}
body.masterlaw-admin .card{background:#fff!important;color:var(--ml276-ink)!important;border-color:var(--ml276-line)!important;box-shadow:var(--ml276-shadow-soft)!important}
body.masterlaw-admin .card:before{background:#b7d8ca!important;box-shadow:none!important}
body.masterlaw-admin .card h2,body.masterlaw-admin .card h3,body.masterlaw-admin .kpi .val{color:var(--ml276-ink)!important;text-shadow:none!important}

@media(max-width:1180px){body.masterlaw-admin #modulebar.modulebar{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){
  body:has(.portal) .portal{grid-template-columns:1fr!important}
  body:has(.portal) .portal-nav,body:has(.broker-os) .portal-nav{position:relative!important;height:auto!important;padding:12px!important;overflow:visible!important}
  .os2-nav-scroll{display:flex;gap:8px;overflow:auto;padding:8px 0 10px}.os2-nav-group{min-width:210px;margin:0;padding:7px;background:#fff;border-color:var(--ml276-line)}
  .os2-nav-footer{display:none}
  body:has(.portal) .portal-page{padding:25px 18px 48px!important}
  #ml276-bridge .ml276-name small{display:none}
  #ml276-bridge .ml276-links{overflow:auto;scrollbar-width:none}
  body.masterlaw-admin #modulebar.modulebar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .ml276-legacy body{padding-top:58px!important}
  #ml276-bridge{min-height:58px;padding:7px 9px}.ml276-mark{display:none!important}#ml276-bridge .ml276-name strong{font-size:10px}
  #ml276-bridge .ml276-menu{display:none}#ml276-bridge a{font-size:10px;padding:7px 8px;min-height:36px}
  body.masterlaw-admin #modulebar.modulebar{grid-template-columns:1fr}
}
