
:root{
  --nasco-blue:#005baa;
  --nasco-blue-2:#1678c8;
  --nasco-sky:#00a8d8;
  --nasco-gold:#d7aa32;
  --ink:#0b1f35;
  --muted:#5f7387;
  --line:#d6e4ef;
  --surface:#ffffff;
  --page:#edf5fa;
  --success:#16865c;
  --warning:#986711;
  --danger:#c13e3e;
  --shadow:0 20px 50px rgba(26,73,108,.13);
  --font:"Be Vietnam Pro","Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--page)}
body{
  margin:0;
  min-height:100vh;
  font-family:var(--font);
  color:var(--ink);
  background:
    radial-gradient(circle at 4% 0%,rgba(0,168,216,.12),transparent 25%),
    linear-gradient(135deg,#edf5fa,#fbfdfe 55%,#eef5f9)
}
button,input,a{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}
[hidden]{display:none!important}

.boot-screen{
  min-height:100vh;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:11px;
  color:var(--ink)
}
.boot-screen strong{font-size:17px}
.boot-screen small{font-size:10px;color:var(--muted)}
.boot-spinner{
  width:43px;height:43px;border-radius:50%;
  border:4px solid #d7e8f4;
  border-top-color:var(--nasco-blue);
  animation:spin .8s linear infinite
}
@keyframes spin{to{transform:rotate(360deg)}}

.shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}
.topbar{
  min-height:82px;padding:14px 25px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(0,91,170,.12);
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(16px)
}
.brand{display:flex;align-items:center;gap:13px;min-width:0}
.brand-mark{
  width:49px;height:49px;border-radius:15px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--nasco-blue),var(--nasco-sky));
  color:#fff;font-size:24px;font-weight:900;
  box-shadow:0 11px 24px rgba(0,91,170,.22)
}
.brand strong,.brand small{display:block}
.brand strong{font-size:16px;letter-spacing:-.03em}
.brand small{margin-top:3px;color:var(--muted);font-size:9px}
.header-actions{display:flex;align-items:center;gap:10px}
.phase-badge{
  padding:8px 11px;border-radius:999px;background:#eef7fd;border:1px solid #cce2f2;
  color:var(--nasco-blue);font-size:9px;font-weight:800
}
.account-button{
  display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);
  border-radius:14px;background:#fff;color:var(--ink)
}
.avatar{
  width:35px;height:35px;border-radius:11px;display:grid;place-items:center;
  color:#fff;font-size:11px;font-weight:800;
  background:linear-gradient(145deg,var(--nasco-blue),var(--nasco-sky))
}
.account-copy strong,.account-copy small{display:block;text-align:left}
.account-copy strong{font-size:10px}
.account-copy small{font-size:8px;color:var(--muted);margin-top:2px}

.layout{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:0}
.sidebar{
  padding:20px 14px;border-right:1px solid rgba(0,91,170,.1);
  background:rgba(247,251,253,.86)
}
.sidebar-title{padding:0 12px 10px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.12em}
.nav{display:grid;gap:6px}
.nav-link{
  min-height:47px;padding:10px 12px;display:flex;align-items:center;gap:11px;
  border-radius:13px;color:#17334f;font-size:10px;font-weight:700;
  transition:.18s
}
.nav-link:hover{background:#e9f4fb;color:var(--nasco-blue)}
.nav-link.active{
  background:linear-gradient(135deg,var(--nasco-blue),var(--nasco-blue-2));
  color:#fff;box-shadow:0 11px 23px rgba(0,91,170,.2)
}
.nav-icon{
  width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
  background:rgba(255,255,255,.17);font-size:13px
}
.main{padding:24px;min-width:0}
.page{width:min(1600px,100%);margin:0 auto}
.page-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:18px;margin-bottom:18px
}
.page-head h1{margin:0;font-size:clamp(28px,3vw,43px);letter-spacing:-.045em}
.page-head p{margin:7px 0 0;color:var(--muted);font-size:10px}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.button{
  min-height:43px;padding:10px 14px;border-radius:12px;border:0;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:800
}
.button.primary{
  color:#fff;background:linear-gradient(135deg,var(--nasco-blue),var(--nasco-blue-2));
  box-shadow:0 10px 20px rgba(0,91,170,.2)
}
.button.secondary{color:var(--nasco-blue);background:#fff;border:1px solid var(--line)}
.panel{
  background:rgba(255,255,255,.93);
  border:1px solid rgba(0,91,170,.13);
  border-radius:27px;box-shadow:var(--shadow)
}
.panel-head{
  padding:20px 22px;border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;gap:15px
}
.panel-head h2{margin:0;font-size:18px}
.panel-head p{margin:5px 0 0;color:var(--muted);font-size:9px}
.panel-body{padding:20px}
.banner{
  padding:12px 14px;border-radius:13px;border:1px solid #cce2f2;
  background:#eef7fd;color:var(--nasco-blue);
  font-size:9px;font-weight:700
}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.kpi{
  min-height:145px;padding:18px;border-radius:18px;border:1px solid var(--line);
  background:linear-gradient(145deg,#fff,#f6fafc)
}
.kpi.blue{background:linear-gradient(145deg,#edf7ff,#dceefe)}
.kpi.green{background:linear-gradient(145deg,#effbf7,#dcf3ea)}
.kpi.gold{background:linear-gradient(145deg,#fff9ea,#f9e9bd)}
.kpi.purple{background:linear-gradient(145deg,#f7f2ff,#eadeff)}
.kpi-label{font-size:9px;color:var(--muted);font-weight:800}
.kpi-value{margin-top:15px;font-size:31px;font-weight:800;letter-spacing:-.04em}
.kpi-unit{margin-top:4px;color:var(--muted);font-size:9px}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.module-card{
  min-height:205px;padding:20px;border:1px solid var(--line);border-radius:19px;
  background:linear-gradient(145deg,#fff,#f6fafc);transition:.2s
}
.module-card:hover{transform:translateY(-3px);box-shadow:0 16px 28px rgba(0,91,170,.1)}
.module-tag{
  display:inline-flex;padding:6px 9px;border-radius:999px;
  background:#e9f4fb;color:var(--nasco-blue);font-size:8px;font-weight:800
}
.module-card h3{margin:23px 0 8px;font-size:18px}
.module-card p{color:var(--muted);font-size:9px;line-height:1.65}
.module-card small{display:block;margin-top:20px;color:var(--nasco-blue);font-size:8px;font-weight:800}
.empty{padding:55px 20px;text-align:center}
.empty strong{display:block;font-size:21px}
.empty p{max-width:640px;margin:10px auto 0;color:var(--muted);font-size:10px;line-height:1.7}

/* Login */
body.modal-open{overflow:hidden}
.modal{
  position:fixed;inset:0;z-index:200;padding:18px;
  display:grid;place-items:center
}
.modal-backdrop{
  position:absolute;inset:0;background:rgba(15,36,56,.64);
  backdrop-filter:blur(8px)
}
.login-card{
  position:relative;width:min(470px,100%);padding:30px;border-radius:28px;
  background:linear-gradient(145deg,#fff,#f4f9fc);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 30px 80px rgba(0,0,0,.3)
}
.close-x{
  position:absolute;right:15px;top:14px;width:37px;height:37px;
  border:0;border-radius:11px;background:#edf4f8;color:var(--ink);font-size:22px
}
.login-logo{
  width:53px;height:53px;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--nasco-blue),var(--nasco-sky));
  color:#fff;font-size:24px;font-weight:900
}
.eyebrow{margin:18px 0 8px;color:var(--nasco-blue);font-size:9px;font-weight:800;letter-spacing:.12em}
.login-card h2{margin:0;font-size:31px;letter-spacing:-.045em}
.login-intro{margin:12px 0 22px;color:var(--muted);font-size:10px;line-height:1.7}
.field{display:grid;gap:7px;margin-bottom:13px}
.field span{font-size:9px;font-weight:800;color:var(--muted)}
.field input{
  min-height:54px;width:100%;padding:12px 14px;border:1px solid var(--line);
  border-radius:14px;background:#fff;color:var(--ink);font-size:13px;outline:none
}
.field input:focus{border-color:var(--nasco-blue);box-shadow:0 0 0 4px rgba(0,91,170,.09)}
.login-error{min-height:23px;margin:3px 0 8px;color:var(--danger);font-size:9px;font-weight:700}
.login-submit{width:100%;min-height:50px}
.login-submit:disabled{opacity:.65;cursor:wait}
.text-button{
  display:block;margin:13px auto 0;border:0;background:transparent;
  color:var(--nasco-blue);font-size:9px;font-weight:800
}

/* Error screen */
.error-screen{
  min-height:100vh;padding:24px;display:grid;place-items:center
}
.error-card{
  width:min(720px,100%);padding:28px;border-radius:24px;background:#fff;
  border:1px solid #efc3c3;box-shadow:var(--shadow)
}
.error-card h1{margin:0;color:var(--danger);font-size:26px}
.error-card p{color:var(--muted);font-size:11px;line-height:1.7}
.error-code{
  padding:13px;border-radius:12px;background:#fff3f3;color:#8b2d2d;
  font-family:Consolas,monospace;font-size:10px;white-space:pre-wrap;word-break:break-word
}

.toast-root{position:fixed;right:18px;bottom:18px;z-index:300;display:grid;gap:8px}
.toast{
  min-width:260px;max-width:380px;padding:13px 15px;border-radius:13px;
  background:var(--ink);color:#fff;box-shadow:0 16px 35px rgba(0,0,0,.23);
  font-size:9px
}

@media(max-width:1050px){
  .layout{grid-template-columns:76px minmax(0,1fr)}
  .sidebar-title,.nav-link span:not(.nav-icon){display:none}
  .nav-link{justify-content:center;padding:9px}
  .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .topbar{min-height:72px;padding:11px 14px}
  .brand small,.phase-badge,.account-copy{display:none}
  .layout{display:block}
  .sidebar{
    position:fixed;left:0;right:0;bottom:0;z-index:70;
    padding:8px 9px;border-right:0;border-top:1px solid var(--line);
    background:rgba(255,255,255,.97);backdrop-filter:blur(14px)
  }
  .sidebar-title{display:none}
  .nav{display:flex;overflow-x:auto;gap:5px}
  .nav-link{min-width:58px;min-height:48px;flex:0 0 auto}
  .main{padding:15px 14px 88px}
  .page-head{display:block}
  .actions{margin-top:12px}
  .kpi-grid,.module-grid{grid-template-columns:1fr}
  .panel{border-radius:21px}
  .login-card{padding:24px 20px;border-radius:23px}
  .login-card h2{font-size:27px}
}


/* Phase 4 Identity & Authorization */
.account-button.theme-ceo{
  background:linear-gradient(135deg,#fff9e9,#efd477)!important;
  border-color:rgba(183,135,18,.42)!important;
  box-shadow:0 12px 25px rgba(172,128,18,.20)
}
.account-button.theme-ceo .avatar{
  background:linear-gradient(145deg,#005baa,#d3a72e)
}
.account-button.theme-manager{
  background:linear-gradient(145deg,#edf7ff,#dceefe)!important;
  border-color:rgba(0,91,170,.28)!important
}
.account-button.theme-specialist{
  background:linear-gradient(145deg,#f4fbff,#e9f5fc)!important
}
.account-button.theme-viewer{
  background:linear-gradient(145deg,#f5f7f9,#e9eef2)!important
}
.identity-value{
  margin-top:15px;
  font-size:17px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:-.03em
}
.identity-detail{
  width:min(680px,100%);
  margin:12px auto;
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:10px;
  text-align:left
}
.identity-detail span{
  font-size:9px;
  font-weight:800;
  color:var(--muted)
}
.identity-detail code,
.empty code{
  padding:7px 9px;
  border-radius:9px;
  background:#eef5f9;
  color:#17456b;
  font:700 10px Consolas,monospace;
  word-break:break-all
}
@media(max-width:640px){
  .identity-detail{grid-template-columns:1fr}
}

/* Phase 5 Portal Core Engine */
.runtime-loading{
  position:fixed;
  inset:0;
  z-index:250;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(237,245,250,.72);
  backdrop-filter:blur(5px)
}
.runtime-loading-card{
  min-width:240px;
  padding:22px;
  border-radius:20px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  display:grid;
  justify-items:center;
  gap:12px
}
.runtime-loading-card strong{font-size:10px}

/* Phase 6 Revenue Engine */
.revenue-date-control{
  min-height:43px;padding:7px 10px;border-radius:12px;border:1px solid var(--line);
  background:#fff;display:grid;gap:2px
}
.revenue-date-control span{color:var(--muted);font-size:7px;font-weight:800}
.revenue-date-control input{
  border:0;outline:0;color:var(--ink);background:transparent;font-size:10px;font-weight:700
}
.revenue-dashboard-shell{margin-top:14px}
.revenue-meta-row{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px;
  color:var(--muted);font-size:8px
}
.revenue-meta-row span{
  padding:6px 9px;border-radius:999px;background:#fff;border:1px solid var(--line)
}
.revenue-layout{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:14px;margin-top:14px
}
.revenue-centers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.revenue-center-card{
  min-height:120px;padding:16px;border:1px solid var(--line);border-radius:16px;
  background:linear-gradient(145deg,#fff,#f4f9fc)
}
.revenue-center-card span,.revenue-center-card strong,.revenue-center-card small{display:block}
.revenue-center-card span{color:var(--muted);font-size:9px;font-weight:800}
.revenue-center-card strong{margin-top:15px;font-size:23px;letter-spacing:-.04em}
.revenue-center-card small{margin-top:3px;color:var(--muted);font-size:8px}
.revenue-trend-svg{width:100%;height:auto;color:var(--nasco-blue);overflow:visible}
.revenue-trend-svg text{fill:var(--muted);font:700 8px var(--font)}
.revenue-empty-chart{
  min-height:210px;display:grid;place-items:center;border:1px dashed var(--line);
  border-radius:16px;color:var(--muted);font-size:9px
}
.revenue-warning{
  color:#815707!important;background:#fff7dd!important;border-color:#edd28f!important
}
.revenue-error{
  color:#a72f2f!important;background:#fff0f0!important;border-color:#efbcbc!important
}
@media(max-width:1050px){.revenue-layout{grid-template-columns:1fr}}
@media(max-width:760px){
  .revenue-centers{grid-template-columns:1fr}
  .revenue-date-control{width:100%}
}

/* Phase 6.1 Dynamic Module Router */
.page-transition{
  opacity:1;
  transform:translateY(0);
  transition:opacity .16s ease, transform .16s ease
}
.page-transition.is-changing{
  opacity:.42;
  transform:translateY(4px)
}

/* Phase 7.1 Revenue Dashboard Enterprise */
.enterprise-meta{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;
  color:var(--muted);font-size:8px
}
.enterprise-meta span{
  padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff
}
.enterprise-meta .fallback-date{
  color:#855f0d;background:#fff7dd;border-color:#ecd18d
}
.quality-strip{
  display:grid;grid-template-columns:minmax(230px,1fr) minmax(180px,2fr) auto;
  gap:14px;align-items:center;margin-bottom:14px;padding:15px 18px;
  border:1px solid var(--line);border-radius:17px;background:#fff
}
.quality-strip>div:first-child{display:grid;gap:3px}
.quality-strip strong{font-size:11px}
.quality-strip span{font-size:8px;color:var(--muted)}
.quality-progress{height:9px;border-radius:999px;background:#e7edf1;overflow:hidden}
.quality-progress div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b6fb8,#20a58d)}
.quality-strip.incomplete{background:#fff9e7;border-color:#ead394}
.enterprise-kpis{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px
}
.enterprise-kpi{
  min-height:215px;padding:18px;border-radius:20px;border:1px solid var(--line);
  display:flex;flex-direction:column
}
.enterprise-kpi.blue{background:linear-gradient(145deg,#e9f5ff,#dceeff)}
.enterprise-kpi.green{background:linear-gradient(145deg,#ecfbf7,#dcf4ec)}
.enterprise-kpi.gold{background:linear-gradient(145deg,#fff9e8,#ffedbb)}
.enterprise-kpi.purple{background:linear-gradient(145deg,#f8f0ff,#e9dcfb)}
.enterprise-kpi>span{font-size:8px;font-weight:900;color:var(--muted)}
.enterprise-kpi>strong{margin-top:16px;font-size:31px;line-height:1;letter-spacing:-.05em}
.enterprise-kpi>small{margin-top:6px;font-size:8px;color:var(--muted)}
.enterprise-comparison{
  margin-top:auto;padding-top:14px;border-top:1px solid rgba(70,100,120,.14);
  display:grid;gap:2px
}
.enterprise-comparison strong{font-size:11px}
.enterprise-comparison span,.enterprise-comparison small{font-size:7px;color:var(--muted)}
.positive{color:#07805e!important}.negative{color:#c13d3d!important}.neutral{color:var(--muted)!important}
.enterprise-two-columns{
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);
  gap:14px;margin-top:14px
}
.enterprise-center-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.enterprise-center-card{
  padding:16px;text-align:left;border:1px solid var(--line);border-radius:17px;
  background:linear-gradient(145deg,#fff,#f5f9fc);cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease
}
.enterprise-center-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(20,65,95,.12)}
.center-head,.center-footer{display:flex;justify-content:space-between;gap:8px;align-items:center}
.center-head span{font-size:8px;font-weight:900;color:var(--nasco-blue)}
.center-head small,.enterprise-center-card>small,.center-footer{font-size:7px;color:var(--muted)}
.enterprise-center-card h3{margin:12px 0 5px;font-size:13px}
.enterprise-center-card>strong{display:block;font-size:24px;letter-spacing:-.04em}
.center-footer{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}
.revenue-type-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center}
.revenue-donut{
  width:160px;height:160px;border-radius:50%;display:grid;place-items:center;position:relative
}
.revenue-donut::after{
  content:"";position:absolute;inset:30px;background:#fff;border-radius:50%
}
.revenue-donut>div{z-index:1;text-align:center;display:grid}
.revenue-donut strong{font-size:16px}.revenue-donut span{font-size:7px;color:var(--muted)}
.revenue-type-list{display:grid;gap:8px}
.revenue-type-row{
  display:grid;grid-template-columns:9px minmax(0,1fr) auto auto;gap:8px;align-items:center;
  padding:9px;border:0;border-radius:10px;background:#f6f9fb;text-align:left;cursor:pointer
}
.revenue-type-row i{width:9px;height:9px;border-radius:50%}
.revenue-type-row span{font-size:8px;font-weight:800}
.revenue-type-row strong{font-size:9px}
.revenue-type-row small{font-size:7px;color:var(--muted)}
.enterprise-trend-panel{margin-top:14px}
.trend-legend{display:flex;justify-content:flex-end;gap:15px;font-size:8px;color:var(--muted)}
.trend-legend span{display:flex;align-items:center;gap:6px}
.trend-legend i{width:18px;height:3px;border-radius:99px}
.trend-legend .current{background:#0b6fb8}.trend-legend .previous{background:#d6a62f}
.enterprise-trend{width:100%;height:auto;margin-top:8px;overflow:visible}
.enterprise-trend .grid-line{stroke:#e3e9ed;stroke-width:1}
.enterprise-trend .current-line,.enterprise-trend .previous-line{
  fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round
}
.enterprise-trend .current-line{stroke:#0b6fb8}.enterprise-trend .previous-line{stroke:#d6a62f}
.enterprise-trend .current-dot{fill:#0b6fb8}.enterprise-trend .previous-dot{fill:#d6a62f}
.enterprise-trend text{fill:var(--muted);font:700 8px var(--font)}
.enterprise-modal{
  position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px
}
.enterprise-modal-backdrop{position:absolute;inset:0;background:rgba(12,35,52,.62);backdrop-filter:blur(5px)}
.enterprise-modal-card{
  position:relative;width:min(1050px,96vw);max-height:88vh;overflow:hidden;
  border-radius:24px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.28)
}
.enterprise-modal-card header{
  display:flex;justify-content:space-between;align-items:center;padding:18px 22px;
  border-bottom:1px solid var(--line)
}
.enterprise-modal-card header h2{margin:5px 0 0}
.enterprise-modal-card header button{
  width:38px;height:38px;border:0;border-radius:50%;font-size:22px;cursor:pointer
}
.enterprise-modal-body{padding:18px;max-height:calc(88vh - 86px);overflow:auto}
.detail-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.detail-summary article{padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfd}
.detail-summary span,.detail-summary small{display:block;font-size:7px;color:var(--muted)}
.detail-summary strong{display:block;margin:8px 0 2px;font-size:19px}
.detail-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px}
.detail-table{width:100%;border-collapse:collapse;font-size:8px}
.detail-table th,.detail-table td{padding:11px;border-bottom:1px solid var(--line);text-align:right}
.detail-table th:first-child,.detail-table td:first-child,.detail-table th:nth-child(2),.detail-table td:nth-child(2){text-align:left}
.detail-table td strong,.detail-table td small{display:block}
.detail-table td small{margin-top:2px;color:var(--muted)}
@media(max-width:1150px){
  .enterprise-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .enterprise-two-columns{grid-template-columns:1fr}
}
@media(max-width:760px){
  .quality-strip{grid-template-columns:1fr}
  .enterprise-kpis,.enterprise-center-grid,.detail-summary{grid-template-columns:1fr}
  .revenue-type-layout{grid-template-columns:1fr;justify-items:center}
  .revenue-type-list{width:100%}
  .enterprise-modal{padding:8px}
}

/* Phase 8 Production Intelligence */
.production-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.production-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.production-card{padding:17px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f4f9fc)}
.production-card.missing{opacity:.62}
.production-card-head,.production-card-footer,.production-card-comparisons{display:flex;justify-content:space-between;gap:8px;align-items:center}
.production-card-head span{font-size:8px;font-weight:900;color:var(--nasco-blue)}
.production-card-head small,.production-card-footer{font-size:7px;color:var(--muted)}
.production-card h3{margin:12px 0 6px;font-size:12px}.production-card>strong{font-size:25px;letter-spacing:-.04em}
.production-card-comparisons{margin-top:13px;font-size:7px}.production-card-footer{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
@media(max-width:1150px){.production-kpis{grid-template-columns:repeat(2,1fr)}.production-card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.production-kpis,.production-card-grid{grid-template-columns:1fr}}

/* Phase 9.1 NAVI Chat Framework */
.navi-layout{
  display:grid;
  grid-template-columns:290px minmax(0,1fr);
  gap:14px;
  min-height:680px
}
.navi-side-panel,.navi-chat-panel{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  overflow:hidden
}
.navi-side-panel{padding:16px}
.navi-plugin-list{display:grid;gap:9px;margin-top:10px}
.navi-plugin-card{
  display:flex;justify-content:space-between;gap:10px;
  padding:12px;border:1px solid var(--line);border-radius:14px;
  background:#f7fafc
}
.navi-plugin-card>div{display:grid;gap:3px}
.navi-plugin-card strong{font-size:9px}
.navi-plugin-card span,.navi-plugin-card small{
  font-size:7px;color:var(--muted)
}
.navi-plugin-empty{
  padding:14px;border:1px dashed var(--line);
  border-radius:14px;color:var(--muted);font-size:8px
}
.navi-side-note{
  margin-top:14px;padding:13px;border-radius:14px;
  background:linear-gradient(145deg,#eef8ff,#eefbf7)
}
.navi-side-note strong{font-size:9px}
.navi-side-note p{margin:5px 0 0;font-size:7px;color:var(--muted);line-height:1.6}
.navi-chat-panel{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto auto;
  min-height:680px
}
.navi-conversation{
  padding:20px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:15px
}
.navi-message{
  display:flex;
  gap:10px;
  max-width:88%
}
.navi-message.user{
  margin-left:auto;
  flex-direction:row-reverse
}
.navi-avatar{
  flex:0 0 auto;
  width:34px;height:34px;
  border-radius:50%;
  display:grid;place-items:center;
  background:#0b6fb8;color:#fff;
  font-size:8px;font-weight:900
}
.navi-message.user .navi-avatar{
  background:#d6a62f;color:#fff
}
.navi-bubble{
  padding:13px 15px;
  border-radius:17px;
  background:#f3f7fa;
  border:1px solid var(--line)
}
.navi-message.user .navi-bubble{
  background:#eaf4ff;
  border-color:#cbdff1
}
.navi-plugin-tag{
  display:inline-block;
  margin-bottom:7px;
  padding:4px 7px;
  border-radius:999px;
  background:#e7f2fa;
  color:#0b6fb8;
  font-size:6px;
  font-weight:900
}
.navi-message-copy{
  font-size:9px;
  line-height:1.75
}
.navi-message-copy code{
  padding:2px 5px;
  border-radius:5px;
  background:#e7edf1
}
.navi-message-meta{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:6px
}
.navi-quick-prompts{
  display:flex;flex-wrap:wrap;gap:7px;
  padding:11px 16px;
  border-top:1px solid var(--line)
}
.navi-quick-prompts button{
  border:1px solid var(--line);
  background:#fff;
  padding:7px 9px;
  border-radius:999px;
  font-size:7px;
  cursor:pointer
}
.navi-quick-prompts button:hover{background:#f2f7fa}
.navi-composer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
  padding:14px 16px;
  border-top:1px solid var(--line);
  background:#fafcfd
}
.navi-composer textarea{
  width:100%;
  resize:none;
  border:1px solid var(--line);
  border-radius:14px;
  padding:11px 13px;
  outline:0;
  font:inherit;
  font-size:9px
}
.navi-composer textarea:focus{
  border-color:#79afd2;
  box-shadow:0 0 0 3px rgba(11,111,184,.08)
}
.navi-chart-card{
  margin-top:12px;padding:12px;
  border:1px solid var(--line);
  border-radius:14px;background:#fff;
  color:#0b6fb8
}
.navi-chart-card>strong{
  color:var(--ink);font-size:8px
}
.navi-inline-chart{
  display:block;width:100%;height:auto;margin-top:8px
}
.navi-table-wrap{
  margin-top:12px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:13px
}
.navi-table{
  width:100%;
  border-collapse:collapse;
  font-size:7px
}
.navi-table th,.navi-table td{
  padding:8px 9px;
  text-align:left;
  border-bottom:1px solid var(--line)
}
.navi-table th{background:#f5f8fa}
@media(max-width:950px){
  .navi-layout{grid-template-columns:1fr}
  .navi-chat-panel{min-height:620px}
}
@media(max-width:650px){
  .navi-message{max-width:97%}
  .navi-composer{grid-template-columns:1fr}
  .navi-composer button{width:100%}
}

/* Phase 9.1 FULL FIXED — Persistent API Configuration */
.api-config-button{
  min-height:42px;display:flex;align-items:center;gap:8px;
  padding:8px 11px;border:1px solid var(--line);border-radius:13px;
  background:#fff;color:var(--muted);font-size:7px;font-weight:800;
  cursor:pointer;max-width:190px
}
.api-config-button:hover{background:#f6fafc}
.api-config-button.configured{
  color:#08765b;border-color:#b9dfd3;background:#f0fbf7
}
.api-config-dot{
  width:8px;height:8px;border-radius:50%;background:#c23f3f;
  box-shadow:0 0 0 3px rgba(194,63,63,.10)
}
.api-config-button.configured .api-config-dot{
  background:#159875;box-shadow:0 0 0 3px rgba(21,152,117,.10)
}
#api-config-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.api-config-card{
  position:relative;width:min(620px,94vw);padding:26px;
  border-radius:22px;background:#fff;
  box-shadow:0 28px 80px rgba(5,28,45,.28)
}
.api-config-card h2{margin:7px 0 9px}
.api-config-actions{
  display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:14px
}
.api-config-status{
  min-height:20px;margin-top:9px;font-size:8px;color:var(--muted)
}
.api-config-status.success{color:#08765b}
.api-config-status.error{color:#b63232}
@media(max-width:760px){
  .api-config-button{max-width:145px}
  .api-config-card{padding:20px}
  .api-config-actions .button{width:100%}
}

/* Phase 9.2 Conversation Memory */
.navi-memory-layout{grid-template-columns:260px minmax(0,1fr) 260px}
.navi-session-list{display:grid;gap:8px;margin-top:10px;max-height:470px;overflow:auto}
.navi-session-item{display:grid;gap:4px;width:100%;padding:11px;border:1px solid var(--line);border-radius:13px;background:#f8fafc;text-align:left;cursor:pointer}
.navi-session-item:hover{background:#eef6fb}.navi-session-item.active{border-color:#8fbdd9;background:#eaf5fc}
.navi-session-item strong{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-session-item span{font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-session-item small{font-size:6px;color:var(--muted)}
.navi-clear-history{width:100%;margin-top:10px;text-align:center}.navi-memory-context{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#f7fafc}.navi-memory-context strong{font-size:8px}.navi-memory-context pre{margin:7px 0 0;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:6px;line-height:1.55;color:var(--muted)}
@media(max-width:1250px){.navi-memory-layout{grid-template-columns:240px minmax(0,1fr)}.navi-capability-panel{grid-column:1/-1}}@media(max-width:900px){.navi-memory-layout{grid-template-columns:1fr}.navi-session-list{max-height:260px}}

/* Phase 10 Enterprise Semantic Layer */
.semantic-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px
}
.semantic-summary-grid article{
  padding:17px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(145deg,#fff,#f2f8fb)
}
.semantic-summary-grid span{
  display:block;
  font-size:7px;
  color:var(--muted);
  font-weight:900
}
.semantic-summary-grid strong{
  display:block;
  margin-top:10px;
  font-size:25px
}
.semantic-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px
}
.semantic-card{
  padding:16px;
  border:1px solid var(--line);
  border-radius:17px;
  background:linear-gradient(145deg,#fff,#f6fafc)
}
.semantic-card.dimension{
  background:linear-gradient(145deg,#fff,#faf7ff)
}
.semantic-card-head,.semantic-card-footer{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center
}
.semantic-card-head span{
  color:var(--nasco-blue);
  font-size:8px;
  font-weight:900
}
.semantic-card-head small,.semantic-card-footer small{
  color:var(--muted);
  font-size:7px
}
.semantic-card h3{
  margin:12px 0 6px;
  font-size:13px
}
.semantic-card p{
  min-height:34px;
  margin:0;
  font-size:7px;
  line-height:1.6;
  color:var(--muted)
}
.semantic-tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:12px
}
.semantic-tags span{
  padding:4px 7px;
  border-radius:999px;
  background:#edf5fa;
  font-size:6px;
  color:#28617f
}
.semantic-card-footer{
  margin-top:12px;
  padding-top:9px;
  border-top:1px solid var(--line)
}
.semantic-source-grid{
  display:grid;
  gap:9px
}
.semantic-source{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc
}
.semantic-source>div{
  display:grid;
  gap:3px
}
.semantic-source strong{
  font-size:9px
}
.semantic-source span,.semantic-source small{
  font-size:7px;
  color:var(--muted)
}
.semantic-source b{
  padding:4px 7px;
  border-radius:999px;
  background:#e9f8f2;
  color:#08765b;
  font-size:6px
}
.semantic-query-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px
}
.semantic-query-form input{
  width:100%;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:13px;
  font:inherit;
  font-size:9px
}
.semantic-query-result{
  margin:12px 0 0;
  padding:14px;
  max-height:420px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#0d2230;
  color:#d9f1ff;
  font-size:7px;
  line-height:1.6;
  white-space:pre-wrap
}
@media(max-width:1050px){
  .semantic-summary-grid{grid-template-columns:repeat(2,1fr)}
  .semantic-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .semantic-summary-grid,.semantic-grid{grid-template-columns:1fr}
  .semantic-query-form{grid-template-columns:1fr}
}

/* Phase 10.1 Enterprise Cost Engine */
.cost-item-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px
}
.cost-item-card{
  padding:15px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(145deg,#fff,#f7fafc)
}
.cost-card-head,.cost-card-trends,.cost-card-footer{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center
}
.cost-card-head span{
  font-size:8px;
  font-weight:900;
  color:var(--nasco-blue)
}
.cost-card-head small,.cost-card-footer{
  font-size:7px;
  color:var(--muted)
}
.cost-item-card h3{
  margin:11px 0 6px;
  font-size:12px
}
.cost-item-card>strong{
  font-size:20px;
  letter-spacing:-.03em
}
.cost-card-trends{
  margin-top:11px;
  font-size:7px
}
.cost-card-footer{
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid var(--line)
}
@media(max-width:760px){
  .cost-item-grid{
    grid-template-columns:1fr
  }
}

/* Phase 10.2B Formula + Profit */
.profit-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.profit-kpi-grid article{padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f5fafc)}.profit-kpi-grid span{display:block;font-size:7px;color:var(--muted);font-weight:900}.profit-kpi-grid strong{display:block;margin-top:9px;font-size:22px}.profit-kpi-grid small{display:block;margin-top:8px;font-size:7px;color:var(--muted)}.profit-trend-table{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}.profit-trend-table>div{padding:10px 6px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;text-align:center}.profit-trend-table span,.profit-trend-table small{display:block;font-size:6px;color:var(--muted)}.profit-trend-table strong{display:block;margin:5px 0;font-size:8px}@media(max-width:1100px){.profit-kpi-grid{grid-template-columns:repeat(2,1fr)}.profit-trend-table{grid-template-columns:repeat(6,1fr)}}@media(max-width:650px){.profit-kpi-grid{grid-template-columns:1fr}.profit-trend-table{grid-template-columns:repeat(3,1fr)}}

/* Phase 10.2C Executive Analytics */
.executive-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.executive-kpi-grid article{padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f5fafc)}.executive-kpi-grid span{display:block;font-size:7px;color:var(--muted);font-weight:900}.executive-kpi-grid strong{display:block;margin-top:9px;font-size:21px}.executive-kpi-grid small{display:block;margin-top:7px;font-size:7px;color:var(--muted)}.executive-summary{margin-top:14px}.executive-summary p{margin:0;font-size:13px;line-height:1.7}.executive-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.waterfall-list,.driver-list{display:grid;gap:9px}.waterfall-list>div,.driver-list>div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.driver-list small{grid-column:1/-1;color:var(--muted);font-size:8px}.executive-ranking{overflow:auto}.rank-row{display:grid;grid-template-columns:42px minmax(130px,1.4fr) repeat(5,minmax(100px,1fr));gap:8px;align-items:center;min-width:820px;padding:10px;border-bottom:1px solid var(--line);font-size:9px}.rank-head{font-weight:900;color:var(--muted);background:#f8fafc}@media(max-width:1050px){.executive-kpi-grid{grid-template-columns:repeat(2,1fr)}.executive-grid{grid-template-columns:1fr}}@media(max-width:650px){.executive-kpi-grid{grid-template-columns:1fr}}


/* =========================================================
   PHASE 10.3A — READABILITY + FLOATING NAVI
   ========================================================= */

:root{
  --ui-text-xs:10px;
  --ui-text-sm:11px;
  --ui-text-md:13px;
  --ui-text-lg:16px;
}

/* Raise the minimum readable size across the portal. */
body{font-size:13px}
.brand strong{font-size:17px}
.brand small{font-size:11px}
.phase-badge{font-size:10px}
.account-copy strong{font-size:12px}
.account-copy small{font-size:10px}
.sidebar-title{font-size:10px}
.nav-link{font-size:12px}
.page-head p{font-size:12px;line-height:1.6}
.button{font-size:12px}
.panel-head p{font-size:11px}
.kpi-label{font-size:11px}
.kpi-unit{font-size:11px}
.module-tag{font-size:10px}
.module-card p{font-size:11px}
.module-card small{font-size:10px}
.navi-plugin-card strong{font-size:11px}
.navi-plugin-card span,
.navi-plugin-card small{font-size:10px;line-height:1.5}
.navi-plugin-empty{font-size:10px}
.navi-side-note strong{font-size:11px}
.navi-side-note p{font-size:10px}
.navi-message-copy{font-size:12px;line-height:1.75}
.navi-plugin-tag{font-size:9px}
.navi-message-meta{font-size:9px}
.navi-quick-prompts button{font-size:10px}
.navi-composer textarea{font-size:12px}
.navi-table{font-size:10px}
.api-config-button{font-size:10px}

/* Floating NAVI */
#floating-navi-root{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:120;
  pointer-events:none;
}

.floating-navi-launcher,
.floating-navi-panel{
  pointer-events:auto;
}

.floating-navi-launcher{
  min-width:96px;
  height:52px;
  padding:0 15px 0 8px;
  display:flex;
  align-items:center;
  gap:9px;
  border:0;
  border-radius:28px;
  background:linear-gradient(135deg,var(--nasco-blue),var(--nasco-blue-2));
  color:#fff;
  box-shadow:0 18px 45px rgba(0,62,112,.28);
  font-size:12px;
  font-weight:800;
}

.floating-navi-launcher span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.17);
  font-size:17px;
  font-weight:900;
}

.floating-navi-panel{
  width:min(420px,calc(100vw - 30px));
  height:min(620px,calc(100vh - 120px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid #c8ddea;
  border-radius:22px;
  background:#fff;
  box-shadow:0 28px 80px rgba(7,49,79,.30);
}

.floating-navi-panel.minimized{
  height:auto;
  grid-template-rows:auto;
}

.floating-navi-panel.minimized
.floating-navi-messages,
.floating-navi-panel.minimized
.floating-navi-composer{
  display:none;
}

.floating-navi-header{
  min-height:62px;
  padding:10px 12px 10px 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#fff;
  background:linear-gradient(135deg,var(--nasco-blue),var(--nasco-blue-2));
}

.floating-navi-header>div:first-child{
  display:grid;
  gap:2px;
}

.floating-navi-header strong{font-size:15px}
.floating-navi-header small{
  color:rgba(255,255,255,.78);
  font-size:10px;
}

.floating-navi-actions{
  display:flex;
  align-items:center;
  gap:5px;
}

.floating-navi-icon-button{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:10px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:18px;
  line-height:1;
  cursor:pointer;
}

.floating-navi-icon-button:hover{
  background:rgba(255,255,255,.24);
}

.floating-navi-messages{
  padding:15px 13px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:12px;
  background:#f7fbfd;
}

.floating-navi-message{
  display:flex;
  align-items:flex-start;
  gap:8px;
  max-width:92%;
}

.floating-navi-message.user{
  align-self:flex-end;
  flex-direction:row-reverse;
}

.floating-navi-avatar{
  flex:0 0 auto;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--nasco-blue);
  color:#fff;
  font-size:9px;
  font-weight:900;
}

.floating-navi-message.user
.floating-navi-avatar{
  background:var(--nasco-gold);
}

.floating-navi-bubble{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  font-size:12px;
  line-height:1.65;
}

.floating-navi-message.user
.floating-navi-bubble{
  background:#eaf4ff;
}

.floating-navi-tag{
  display:inline-block;
  margin-bottom:5px;
  padding:3px 6px;
  border-radius:999px;
  background:#e6f2fa;
  color:var(--nasco-blue);
  font-size:8px;
  font-weight:900;
}

.floating-navi-bubble small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:9px;
}

.floating-navi-composer{
  padding:11px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  border-top:1px solid var(--line);
  background:#fff;
}

.floating-navi-composer textarea{
  width:100%;
  resize:none;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:13px;
  outline:0;
  font:inherit;
  font-size:12px;
}

.floating-navi-composer textarea:focus{
  border-color:#76afd3;
  box-shadow:0 0 0 3px rgba(0,91,170,.08);
}

.floating-navi-send{
  min-width:58px;
  padding:0 13px;
  border:0;
  border-radius:12px;
  background:var(--nasco-blue);
  color:#fff;
  font-size:11px;
  font-weight:800;
}

@media(max-width:760px){
  #floating-navi-root{
    right:10px;
    bottom:10px;
  }

  .floating-navi-panel{
    width:calc(100vw - 20px);
    height:min(70vh,620px);
  }

  .main{padding:18px 14px}
}

/* =========================================================
   PHASE 10.4 · EXECUTIVE DASHBOARD
   ========================================================= */
:root{--nasco:#08768f;--nasco-deep:#045b72;--nasco-gold:#dda725;--ink:#092443;--soft:#f4f9fc}
.brand{gap:12px!important}.brand-logo{width:116px;height:54px;object-fit:contain;object-position:left center;display:block}.brand-copy{display:flex;flex-direction:column;gap:2px}.brand-copy strong{font-size:15px}.brand-copy small{font-size:10px;color:#6d8295}
.sidebar{width:240px}.nav-link{font-size:14px;min-height:48px}.nav-icon{font-size:18px}.phase-badge{background:#eaf7f8!important;color:var(--nasco-deep)!important;border-color:#c7e9ec!important}
.phase104-home .page-head h1{font-size:34px;letter-spacing:-.035em}.home-shortcuts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:0 0 14px}.home-shortcuts a{background:#fff;border:1px solid #d7e8f0;border-radius:13px;padding:11px 10px;text-align:center;text-decoration:none;color:var(--ink);font-weight:700;font-size:12px;box-shadow:0 5px 15px rgba(7,91,114,.06)}.home-shortcuts a:hover{border-color:#91c9d3;transform:translateY(-1px)}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0}.exec-kpi{background:#fff;border:1px solid #dceaf1;border-radius:18px;padding:18px;box-shadow:0 9px 25px rgba(8,62,91,.07);position:relative;overflow:hidden}.exec-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#2389b8}.exec-kpi.gold:before{background:#d9a328}.exec-kpi.green:before{background:#1b9b77}.exec-kpi.purple:before{background:#7868c9}.exec-kpi span{display:block;font-size:11px;font-weight:800;color:#718699;letter-spacing:.045em}.exec-kpi strong{display:block;margin:7px 0;font-size:27px;color:var(--ink);letter-spacing:-.035em}.exec-kpi small{font-size:11px;color:#6b8193}.exec-kpi small.up{color:#15805e}.exec-kpi small.down{color:#c74b4b}
.home-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:16px}.bar-compare{display:grid;gap:18px;padding:6px}.bar-compare>div{display:grid;grid-template-columns:90px 1fr 110px;gap:10px;align-items:center}.bar-compare span{font-size:12px;font-weight:700}.bar-compare i{display:block;height:16px;border-radius:20px;background:linear-gradient(90deg,var(--nasco),#51aec0);width:var(--w);min-width:4px}.bar-compare b{text-align:right;font-size:12px}.home-ranking{display:grid;gap:8px}.home-ranking>div{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:9px 5px;border-bottom:1px solid #edf3f6}.home-ranking b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eaf6f8;color:var(--nasco-deep);font-size:10px}.home-ranking span,.home-ranking strong{font-size:11px}.executive-insight{font-size:14px;line-height:1.75;margin:0;color:#2e475b}.chart-placeholder{min-height:280px;border:1px dashed #bdd6e2;border-radius:18px;background:linear-gradient(180deg,#f8fcfe,#fff);display:grid;place-items:center;align-content:center;gap:7px;color:#6d8495}.chart-placeholder strong{font-size:20px;color:var(--ink)}
@media(max-width:1150px){.home-shortcuts{grid-template-columns:repeat(3,1fr)}.dashboard-kpi-grid{grid-template-columns:repeat(2,1fr)}.home-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:720px){.brand-copy{display:none}.brand-logo{width:90px;height:44px}.home-shortcuts,.dashboard-kpi-grid{grid-template-columns:1fr 1fr}.bar-compare>div{grid-template-columns:75px 1fr}.bar-compare b{grid-column:2}.phase104-home .page-head h1{font-size:27px}}

/* PHASE 10.5 MODULE INTELLIGENCE */
.mi-hierarchy{display:grid;gap:14px;margin:14px 0}.mi-total-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.mi-total-card.secondary{background:linear-gradient(135deg,#f8fbfd,#fff)}.mi-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.mi-card-head span{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.04em}.mi-card-head strong{display:block;margin-top:5px;font-size:28px;color:var(--ink)}.mi-ratios{display:grid;grid-template-columns:auto auto;gap:3px 8px;text-align:right}.mi-ratios b{color:#078b75;font-size:15px}.mi-ratios small{font-size:9px;color:var(--muted)}.mi-branch-grid,.mi-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.mi-branch{border:1px solid #dce8ef;border-radius:16px;padding:14px;background:#fbfdfe}.mi-branch h3{margin:0 0 10px;font-size:14px}.mi-child-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mi-card{border-left:4px solid #0b78b7;background:#fff;border-radius:12px;padding:12px;display:grid;gap:4px}.mi-card.green{border-color:#16a085}.mi-card.gold{border-color:#d6a62f}.mi-card.purple{border-color:#7459b9}.mi-card span{font-size:10px;font-weight:700;color:var(--muted)}.mi-card strong{font-size:17px}.mi-card small{font-size:9px;color:var(--muted)}.mi-grand-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.mi-grand-grid span{padding:8px 10px;background:#eef6fa;border-radius:9px;font-size:10px;display:flex;justify-content:space-between}.mi-month-bars{height:220px;display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;padding-top:15px}.mi-month-bars div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.mi-month-bars i{display:block;width:70%;min-height:8px;border-radius:6px 6px 2px 2px;background:linear-gradient(#1a91a9,#0b7285)}.mi-month-bars span{font-size:9px;color:var(--muted)}.mi-ranking{display:grid;gap:9px}.mi-ranking>div{display:grid;grid-template-columns:minmax(150px,1.5fr) 1fr auto;gap:9px;align-items:center;font-size:9px}.mi-ranking i{height:8px;background:#edf2f5;border-radius:99px;overflow:hidden}.mi-ranking b{display:block;height:100%;background:#1a91a9;border-radius:99px}.mi-ranking strong{font-size:10px}.mi-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mi-copy-grid article{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfdfe}.mi-copy-grid p{font-size:11px;line-height:1.7;white-space:pre-line;margin:0 0 10px}.mi-tool{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.mi-tool label{display:grid;gap:5px;font-size:9px;font-weight:700;min-width:180px}.mi-tool select,.mi-tool-row select{min-height:38px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:#fff}.mi-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.mi-tags label{display:flex;gap:5px;align-items:center;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:#f8fbfd;font-size:9px}.mi-tool-row{display:flex;gap:9px}.mi-common-tools{margin-top:14px}
@media(max-width:950px){.mi-branch-grid,.mi-grid-2,.mi-copy-grid{grid-template-columns:1fr}.mi-card-head{flex-direction:column}.mi-ratios{text-align:left}.mi-child-grid{grid-template-columns:1fr}}

/* Phase 10.5e Revenue Intelligence */
.rev-section{margin:16px 0 22px}.rev-section-title{display:flex;align-items:center;gap:12px;margin-bottom:12px}.rev-section-title>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#0d7187;color:#fff;font-weight:900}.rev-section-title h2{margin:0;font-size:18px}.rev-section-title p{margin:2px 0 0;color:var(--muted);font-size:10px}.rev-card-layout{display:grid;grid-template-columns:1.05fr 1.65fr 1fr;gap:12px}.rev-kpi{border-radius:16px;border:1px solid #dce8ef;background:#fff;padding:14px;display:flex;justify-content:space-between;gap:12px;min-height:112px;box-shadow:0 7px 20px rgba(20,63,86,.06)}.rev-kpi.total{border-top:4px solid #0d7187;background:linear-gradient(145deg,#f1fbfd,#fff)}.rev-kpi.sxkd{border-left:4px solid #2a9d8f}.rev-kpi.own{border-left:4px solid #5b8def}.rev-kpi.collection{border-left:4px solid #d7a62f}.rev-kpi.other{border-top:4px solid #7b61a8;background:linear-gradient(145deg,#f8f5fc,#fff)}.rev-kpi>div>span{font-size:10px;font-weight:800;color:#526b7a}.rev-kpi strong{display:block;font-size:22px;margin:7px 0;color:#082b4c}.rev-kpi small{font-size:9px;color:var(--muted)}.rev-subtree{border:1px solid #dce8ef;border-radius:17px;padding:10px;background:#f9fcfd}.rev-node-label{font-size:11px;font-weight:900;margin:0 0 8px;color:#0d7187}.rev-leaf-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.rev-comp{display:grid;gap:5px;min-width:90px}.rev-comp span{display:grid;text-align:right}.rev-comp b{font-size:12px;color:#137c69}.rev-comp small{font-size:8px;color:var(--muted)}.rev-chart-panel{margin-top:14px}.rev-legend{display:flex;gap:7px;flex-wrap:wrap}.rev-legend button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 9px;font-size:9px;opacity:.45}.rev-legend button.active{opacity:1;background:#f4fafb}.rev-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.rev-line-chart{width:100%;height:310px;overflow:visible}.rev-line-chart text{font-size:9px;fill:#617887}.rev-line-chart .rev-label{font-size:8px;font-weight:700}.rev-field-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.rev-field-row{border:1px solid var(--line);border-radius:13px;padding:10px;display:grid;grid-template-rows:36px 150px auto;gap:5px}.rev-field-row>strong{font-size:9px;line-height:1.3}.rev-field-row>b{text-align:center;color:#0d7187;font-size:12px}.rev-bars{display:flex;align-items:end;justify-content:center;gap:8px}.rev-bars span{height:145px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.rev-bars i{width:18px;display:block;border-radius:5px 5px 1px 1px}.rev-bars .b0 i{background:#9eb4c2}.rev-bars .b1 i{background:#d7a62f}.rev-bars .b2 i{background:#0d7187}.rev-bars em,.rev-bars small{font-style:normal;font-size:8px}.rev-center-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.rev-center-bars{display:grid;gap:8px}.rev-center-bars>div{display:grid;grid-template-columns:minmax(90px,1.2fr) 1fr auto;gap:7px;align-items:center;font-size:8px}.rev-center-bars i{height:8px;border-radius:99px;background:#edf3f6;overflow:hidden}.rev-center-bars i b{display:block;height:100%;background:#16849a}.rev-center-bars strong{font-size:9px}.rev-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.rev-tool-row{display:flex;gap:8px;flex-wrap:wrap}.rev-tool-row select{min-height:38px;border:1px solid var(--line);border-radius:9px;padding:0 9px;min-width:180px;background:#fff}.rev-analysis-text{margin-top:12px;border-left:4px solid #0d7187;background:#f3fafc;border-radius:10px;padding:13px;font-size:11px;line-height:1.7}.rev-tags{display:flex;gap:7px;flex-wrap:wrap;max-height:160px;overflow:auto;margin-bottom:12px}.rev-tags label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:6px 8px;background:#fafcfd;font-size:9px}@media(max-width:1100px){.rev-card-layout,.rev-center-grid,.rev-tools{grid-template-columns:1fr}.rev-leaf-grid{grid-template-columns:1fr}}

/* ===== Revenue Intelligence 10.6a readability / hierarchy ===== */
.revenue-date-control span{font-size:11px}
.revenue-date-control input{font-size:14px}
.rev-section-title h2{font-size:21px}
.rev-section-title p{font-size:13px;line-height:1.5}
.rev-hierarchy{display:grid;gap:12px}
.rev-level-total{max-width:none}
.rev-branch-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}
.rev-sxkd-branch,.rev-other-branch{border:1px solid #dce8ef;border-radius:18px;padding:12px;background:#f9fcfd}
.rev-other-branch{background:#fbf9fd}
.rev-node-label{font-size:14px;margin-bottom:9px}
.rev-node-label.sibling{color:#6f56a0}
.rev-kpi{min-height:126px;padding:16px}
.rev-kpi>div>span{font-size:13px;line-height:1.35}
.rev-kpi strong{font-size:25px}
.rev-kpi small{font-size:11px}
.rev-comp{min-width:110px;gap:7px}
.rev-comp b{font-size:14px}
.rev-comp small{font-size:11px}
.rev-leaf-grid{gap:10px;margin-top:10px}
.rev-line-chart text{font-size:12px}
.rev-line-chart .rev-label{font-size:10px}
.rev-legend button{font-size:12px;padding:7px 11px}
.rev-field-row>strong{font-size:12px}
.rev-bars em,.rev-bars small{font-size:10px}
.rev-field-row>b{font-size:14px}
.rev-center-bars>div{font-size:11px;grid-template-columns:minmax(130px,1.3fr) 1fr auto}
.rev-center-bars strong{font-size:11px}
.rev-tool-row select{font-size:13px;min-height:42px;min-width:200px}
.rev-analysis-text{font-size:14px}
.rev-export-select-all{margin-bottom:8px;padding:9px 10px;border-radius:10px;background:#eef8fa;font-size:13px}
.rev-export-tree{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:6px;background:#fff;margin-bottom:12px}
.rev-export-tree label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-bottom:1px solid #eef3f5;font-size:12px}
.rev-export-tree label:last-child{border-bottom:0}
.rev-export-tree label.field{font-weight:800;background:#f5fafb}
.rev-export-tree label.detail{padding-left:28px}
.rev-export-tree label.total{font-weight:900;background:#eef6f9}
.rev-export-tree label span{display:flex;gap:8px;align-items:center}
.rev-export-tree label span b{display:inline-grid;place-items:center;min-width:24px;height:22px;border-radius:6px;background:#edf2f5;color:#526b7a;font-size:10px}
.rev-no-data{display:block;margin-top:6px;color:#a06720!important}
@media(max-width:1100px){.rev-branch-grid{grid-template-columns:1fr}}


/* ===== Revenue Intelligence 10.6b — richer NASCO dashboard palette ===== */
.revenue-page{
  background:
    radial-gradient(circle at 85% 4%,rgba(31,157,193,.13),transparent 28%),
    radial-gradient(circle at 8% 18%,rgba(31,87,166,.10),transparent 25%),
    linear-gradient(180deg,#eef7fc 0,#f7fbfd 420px,#f7fafb 100%);
  margin:-20px;
  padding:20px;
  min-height:100vh;
}
.revenue-page .page-head{
  background:linear-gradient(110deg,#073d78 0%,#0d5da8 58%,#1389b7 100%);
  border-radius:22px;
  padding:22px 24px;
  box-shadow:0 16px 36px rgba(3,54,100,.18);
}
.revenue-page .page-head h1,
.revenue-page .page-head p,
.revenue-page .page-head .eyebrow{color:#fff}
.revenue-page .page-head .eyebrow{opacity:.78}
.revenue-page .revenue-date-control span{color:#dbeeff}
.revenue-page .revenue-date-control input{
  background:rgba(255,255,255,.96);
  border-color:rgba(255,255,255,.5);
}
.revenue-page .page-head .button.secondary{
  background:#fff;color:#0a5f9d;border-color:#fff;font-weight:800;
}
.revenue-page .banner{
  margin-top:14px;
  border:0;
  color:#0a5279;
  background:linear-gradient(90deg,#dff5fb,#edf7ff);
  box-shadow:0 6px 16px rgba(16,92,134,.07);
}

.revenue-page .rev-section{
  background:rgba(255,255,255,.70);
  border:1px solid rgba(184,211,226,.72);
  padding:15px;
  border-radius:20px;
  box-shadow:0 10px 28px rgba(15,69,96,.07);
}
.revenue-page .rev-section-title>span{
  background:linear-gradient(145deg,#0d5da8,#0aa7bd);
  box-shadow:0 7px 16px rgba(13,93,168,.23);
}

/* KPI cards: colorful like modern finance dashboards, but NASCO palette */
.revenue-page .rev-kpi{
  border:0;
  color:#fff;
  box-shadow:0 12px 24px rgba(20,74,110,.16);
  overflow:hidden;
  position:relative;
}
.revenue-page .rev-kpi:after{
  content:"";
  position:absolute;
  width:100px;height:100px;border-radius:50%;
  right:-35px;top:-48px;background:rgba(255,255,255,.12);
}
.revenue-page .rev-kpi.total{
  background:linear-gradient(135deg,#124b99 0%,#0b6fbe 100%);
}
.revenue-page .rev-kpi.sxkd{
  background:linear-gradient(135deg,#0795c5 0%,#04b1d0 100%);
}
.revenue-page .rev-kpi.own{
  background:linear-gradient(135deg,#0a9c8f 0%,#16bea1 100%);
}
.revenue-page .rev-kpi.collection{
  background:linear-gradient(135deg,#d38a14 0%,#efb22a 100%);
}
.revenue-page .rev-kpi.other{
  background:linear-gradient(135deg,#7646a8 0%,#9852c3 100%);
}
.revenue-page .rev-kpi>div>span,
.revenue-page .rev-kpi strong,
.revenue-page .rev-kpi small,
.revenue-page .rev-kpi .rev-comp b,
.revenue-page .rev-kpi .rev-comp small{color:#fff}
.revenue-page .rev-kpi .rev-comp span{
  background:rgba(255,255,255,.12);
  border-radius:9px;padding:5px 7px;
}
.revenue-page .rev-sxkd-branch{
  background:linear-gradient(180deg,#eaf9fc,#f8fdfe);
  border-color:#ccebf2;
}
.revenue-page .rev-other-branch{
  background:linear-gradient(180deg,#f5effb,#fcfaff);
  border-color:#e4d5f1;
}
.revenue-page .rev-node-label{color:#087f9e}
.revenue-page .rev-node-label.sibling{color:#794ba8}

/* Main panels */
.revenue-page .panel{
  border:1px solid #dceaf2;
  box-shadow:0 10px 26px rgba(24,71,96,.08);
  background:rgba(255,255,255,.96);
}
.revenue-page .panel-head h2{color:#15385e;font-size:17px}
.revenue-page .panel-head p{font-size:12px}
.revenue-page .rev-chart-panel:nth-of-type(1) .panel-head{
  border-left:5px solid #08a9c2;
}
.revenue-page .rev-field-row{
  background:linear-gradient(180deg,#ffffff,#f5fbfd);
  transition:transform .15s ease,box-shadow .15s ease;
}
.revenue-page .rev-field-row:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(14,94,123,.10);
}
.revenue-page .rev-field-row:nth-child(4n+1)>b{color:#0c6eb6}
.revenue-page .rev-field-row:nth-child(4n+2)>b{color:#0a9c8f}
.revenue-page .rev-field-row:nth-child(4n+3)>b{color:#8a4db1}
.revenue-page .rev-field-row:nth-child(4n)>b{color:#d18c19}

/* center blocks get distinct accents */
.revenue-page .rev-center-grid .panel:nth-child(1){border-top:5px solid #0b78bb}
.revenue-page .rev-center-grid .panel:nth-child(2){border-top:5px solid #0dac96}
.revenue-page .rev-center-grid .panel:nth-child(3){border-top:5px solid #8f55b7}
.revenue-page .rev-center-grid .panel:nth-child(1) .rev-center-bars i b{background:linear-gradient(90deg,#168fd0,#44bed8)}
.revenue-page .rev-center-grid .panel:nth-child(2) .rev-center-bars i b{background:linear-gradient(90deg,#0ba58e,#43c5a8)}
.revenue-page .rev-center-grid .panel:nth-child(3) .rev-center-bars i b{background:linear-gradient(90deg,#7f4aab,#ad69cf)}

/* tools */
.revenue-page .rev-tools .panel:first-child{border-top:5px solid #0b78bb}
.revenue-page .rev-tools .panel:last-child{border-top:5px solid #efab26}
.revenue-page .rev-tool-row select{
  background:#f8fcfe;
  border-color:#cfe2ec;
}
.revenue-page .rev-analysis-text{
  background:linear-gradient(90deg,#e9f8fc,#f4fbfd);
  border-left-color:#08a9c2;
}
.revenue-page .rev-export-select-all{
  background:linear-gradient(90deg,#fff6df,#fffaf0);
  color:#7c5610;
}
.revenue-page .rev-export-tree label.field{
  background:linear-gradient(90deg,#eaf8fb,#f7fcfd);
  color:#0a718a;
}
.revenue-page .rev-export-tree label.total{
  background:linear-gradient(90deg,#e9f1fb,#f7faff);
  color:#174d8c;
}
.revenue-page .rev-export-tree label.detail:hover{background:#f8fbfd}

@media(max-width:800px){
  .revenue-page{margin:-12px;padding:12px}
  .revenue-page .page-head{padding:18px}
}


/* ===== Revenue 10.6c integrated month + YTD cards ===== */
.revenue-page .revenue-date-control select{
  min-width:96px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.55);
  background:#fff;color:#16466b;font-size:14px;font-weight:700;padding:0 10px;
}
.rev-section-combined{margin-top:14px}
.rev-kpi-integrated{display:block;min-height:auto;padding:14px 16px}
.rev-kpi-title{display:flex!important;align-items:center;justify-content:space-between;margin-bottom:10px}
.rev-kpi-title>span{font-size:14px!important;font-weight:800;letter-spacing:.01em}
.rev-period-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.rev-period-pane{
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);
  border-radius:12px;padding:10px;min-width:0
}
.rev-period-pane.ytd{background:rgba(255,255,255,.18)}
.rev-period-value{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.rev-period-value small{font-size:11px!important;font-weight:700;opacity:.88}
.rev-period-value strong{font-size:20px!important;line-height:1.1;white-space:nowrap}
.rev-mini-compare{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:9px}
.rev-mini-compare span{
  display:flex;flex-direction:column;padding:5px 6px;border-radius:8px;background:rgba(255,255,255,.12);min-width:0
}
.rev-mini-compare span.empty{background:rgba(255,255,255,.08)}
.rev-mini-compare b{font-size:11px!important;line-height:1.2;white-space:normal}
.rev-mini-compare small{font-size:9px!important;opacity:.8;margin-top:2px}
.rev-level-total .rev-kpi-integrated{max-width:none}
.rev-level-total .rev-period-value strong{font-size:24px!important}
.rev-level-total .rev-mini-compare b{font-size:12px!important}

@media(max-width:1150px){
  .rev-period-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .rev-mini-compare{grid-template-columns:1fr 1fr 1fr}
  .rev-period-value{display:block}
  .rev-period-value strong{display:block;margin-top:3px}
}


/* ===== Phase 10.9a Production Dashboard ===== */
.production-dashboard-shell{display:grid;gap:18px}
.prod-meta-strip{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:#607089}
.prod-meta-strip span{padding:7px 11px;border:1px solid #dfe8f1;border-radius:999px;background:#fff}
.prod-section{padding:18px;border:1px solid #dfe8f1;border-radius:22px;background:linear-gradient(180deg,#f9fcff,#edf5fb);box-shadow:0 12px 30px rgba(28,74,111,.06)}
.prod-section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}
.prod-section-head h2{margin:0;color:#073e72;font-size:20px}
.prod-section-head p{margin:5px 0 0;color:#718096;font-size:12px}
.prod-focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.prod-focus-card{position:relative;overflow:hidden;padding:18px;border:1px solid #dbe6ef;border-left:5px solid #1665b7;border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(25,67,102,.07)}
.prod-focus-card.prod-pkbs_t2{border-left-color:#087780}
.prod-focus-card.prod-sando_y{border-left-color:#c99725}
.prod-focus-card.prod-sando_c{border-left-color:#7c2ce7}
.prod-focus-card.missing{opacity:.58}
.prod-focus-title{font-weight:800;color:#0d55a3;font-size:14px}
.prod-focus-value{margin-top:18px;font-size:31px;line-height:1;font-weight:800;color:#082d52;letter-spacing:.01em}
.prod-focus-unit{margin-top:10px;color:#65758b;font-size:11px}
.prod-focus-note{display:inline-block;margin:9px 0 14px;padding:6px 9px;border-radius:999px;background:#fff4cf;color:#78550b;font-size:10px;font-weight:700}
.prod-kpi-box{padding:12px;border:1px solid #dfe7ef;border-radius:14px;background:#fff;margin-top:11px}
.prod-kpi-head,.prod-kpi-line{display:flex;justify-content:space-between;gap:12px;align-items:center}
.prod-kpi-head strong{font-size:12px;color:#0755a0}.prod-kpi-head span{font-size:10px;font-weight:700;color:#69788e}
.prod-kpi-line{margin-top:9px;font-size:10px;color:#617187}.prod-kpi-line b{font-size:12px;color:#083258}
.prod-kpi-line b.positive{color:#00924d}.prod-kpi-line b.negative{color:#df2c2c}
.prod-ytd-value{margin:9px 0 2px;font-size:22px;font-weight:800;color:#0b2f54}
.prod-plan-foot{margin-top:9px;color:#718096;font-size:10px}
.prod-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.prod-chart-card{padding:16px;border:1px solid #dce5ee;border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(25,67,102,.05)}
.prod-chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.prod-chart-head h3{margin:0;color:#145aa5;font-size:16px}.prod-chart-head p{margin:4px 0 0;color:#7b8799;font-size:10px}
.prod-legend{display:flex;gap:7px;flex-wrap:wrap}
.prod-legend-btn{border:1px solid #d5dee8;border-radius:999px;padding:6px 9px;background:#fff;color:#4c5a6d;font-size:10px;font-weight:700;cursor:pointer;display:flex;gap:5px;align-items:center}
.prod-legend-btn i{width:14px;height:5px;border-radius:2px;background:#c99a2c}.prod-legend-btn.cur i{background:#0c7480}
.prod-legend-btn.off{opacity:.38;text-decoration:line-through}
.prod-chart-stage{margin-top:10px;min-height:300px}
.prod-compare-svg{width:100%;height:auto;overflow:visible}
.prod-grid{stroke:#d9e1e8;stroke-width:1}
.prod-axis-label{font-size:10px;fill:#5d6876}
.prod-value-label{font-size:9px;fill:#343d49;font-weight:700}
.prod-prev-line,.prod-cur-line{fill:none;stroke-width:3.2;stroke-linejoin:round;stroke-linecap:round}
.prod-prev-line{stroke:#c99a2c}.prod-cur-line{stroke:#0c7480}
.prod-prev-line-dot{fill:#c99a2c;stroke:#fff;stroke-width:1.5}.prod-cur-line-dot{fill:#0c7480;stroke:#fff;stroke-width:1.5}
.prod-prev-bar{fill:#c99a2c;opacity:.94}.prod-cur-bar{fill:#0c7480;opacity:.96}
.prod-chart-empty{display:grid;place-items:center;min-height:280px;color:#8491a3;font-size:12px}
@media(max-width:1180px){.prod-focus-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){.prod-chart-grid{grid-template-columns:1fr}}
@media(max-width:680px){.prod-focus-grid{grid-template-columns:1fr}.prod-chart-head{flex-direction:column}}


/* =========================================================
   PHASE 10.9e · NAVI KPI ANSWER CARD + CHAT UX
   ========================================================= */
.floating-navi-panel{width:min(520px,calc(100vw - 24px))}
.floating-navi-brand{display:flex!important;align-items:center;gap:10px}
.floating-navi-brand-logo{width:72px;height:30px;object-fit:contain;display:block}
.floating-navi-brand-sep{width:1px;height:28px;background:rgba(255,255,255,.45)}
.floating-navi-brand>div{display:grid;gap:1px}
.floating-navi-launcher img{width:28px;height:28px;border-radius:50%}
.floating-navi-message{max-width:96%}
.floating-navi-message-stack,.navi-message-stack{min-width:0;display:grid;gap:5px}
.floating-navi-message.user .floating-navi-message-stack,
.navi-message.user .navi-message-stack{justify-items:end}
.floating-navi-message-name,.navi-message-name{display:flex;align-items:center;gap:8px;color:#49677d;font-size:9px}
.floating-navi-message.user .floating-navi-message-name,
.navi-message.user .navi-message-name{color:#8a5d11}
.floating-navi-message-name span{color:#8a9aaa}
.floating-navi-avatar{width:36px;height:36px;overflow:hidden;border:1px solid #c8e7f6;background:#e9f8ff}
.floating-navi-avatar img,.navi-avatar img{width:100%;height:100%;object-fit:cover}
.floating-navi-avatar.user{background:var(--nasco-gold);border-color:#e1bd60}
.floating-navi-avatar.user span{color:#fff;font-weight:900}
.navi-avatar{overflow:hidden}
.floating-navi-bubble.structured,.navi-bubble.structured{padding:0;background:#f7fbff;overflow:hidden}
.floating-navi-status{display:flex;justify-content:space-between;gap:8px;padding:6px 14px;background:#fff;border-top:1px solid var(--line);font-size:8px;color:#698092}
.floating-navi-status span:first-child{color:#138567}
.navi-reactions{display:flex;gap:7px;align-items:center}
.navi-reactions button{border:1px solid transparent;background:transparent;color:#668097;border-radius:999px;padding:3px 7px;cursor:pointer;font-size:13px;line-height:1}
.navi-reactions button:hover{background:#eef6fb}
.navi-reactions button.active{background:#fff;border-color:#dbe7ef;box-shadow:0 2px 7px rgba(13,65,97,.07)}
.navi-reactions button:first-child.active{color:#f42552}.navi-reactions button:nth-child(2).active{color:#0877dc}.navi-reactions button:nth-child(3).active{color:#6e7b8b}
.navi-reactions button span{font-size:8px;margin-left:4px}
.navi-kpi-card{min-width:min(390px,72vw);background:#fff;color:#163a5c}
.navi-kpi-title{display:flex;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(90deg,#ecfbf6,#f7fffc);border-bottom:1px solid #b9e7d5;color:#08785d}
.navi-kpi-title strong{font-size:11px}
.navi-kpi-check{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#0a9472;color:#fff;font-weight:900}
.navi-kpi-info{display:grid;grid-template-columns:105px minmax(0,1fr);gap:7px 12px;padding:12px}
.navi-kpi-info>span{font-size:9px;color:#75879a}
.navi-kpi-info>b{font-size:10px;color:#183c5e}
.navi-kpi-main{font-size:18px!important;color:#082f5c!important;letter-spacing:-.025em}
.navi-kpi-section{padding:10px 12px;border-top:1px solid #edf2f6}
.navi-kpi-section h4{margin:0 0 7px;font-size:8px;letter-spacing:.08em;color:#547188}
.navi-kpi-section>div{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:9px}
.navi-kpi-section>div>span:first-child{color:#687d90}
.navi-kpi-section.compact{background:#fbfdff}
.navi-kpi-change,.navi-kpi-plan,.navi-kpi-na{font-weight:800;text-align:right}
.navi-kpi-change.up{color:#078650}.navi-kpi-change.down{color:#d23d3d}.navi-kpi-change.flat{color:#697a8a}
.navi-kpi-plan{color:#2266a8}.navi-kpi-na{color:#9aa6b1;font-weight:600}
.navi-kpi-ytd{padding:10px 12px;background:#f0f7ff;border-top:1px solid #dbe9f5}
.navi-kpi-ytd>div{display:flex;justify-content:space-between;align-items:center;gap:12px}
.navi-kpi-ytd span{font-size:8px;font-weight:900;color:#4b6f8e;letter-spacing:.06em}
.navi-kpi-ytd strong{font-size:14px;color:#0b355e}
.navi-kpi-source{padding:8px 12px;border-top:1px solid #edf2f6;color:#788b9c;font-size:8px}
.navi-kpi-quick{display:flex;flex-wrap:wrap;gap:5px;padding:9px 12px;border-top:1px solid #e9f0f5;background:#fbfdff}
.navi-kpi-quick button{border:1px solid #cfe0ee;background:#fff;color:#2d638d;border-radius:999px;padding:5px 8px;font-size:8px;cursor:pointer}
.navi-kpi-quick button:hover{background:#eef7fd}
@media(max-width:650px){
  .floating-navi-panel{width:calc(100vw - 12px);height:min(82vh,720px)}
  .floating-navi-brand-logo{width:62px}
  .navi-kpi-card{min-width:0;width:100%}
  .navi-kpi-info{grid-template-columns:84px minmax(0,1fr)}
  .navi-kpi-section>div{align-items:flex-start}
  .floating-navi-status{font-size:7px}
}


/* =========================================================
   PHASE 10.9f · NAVI SOCIAL / KNOWLEDGE / THINKING UX
   ========================================================= */
.navi-analyzing{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:240px;
  padding:4px 2px;
}
.navi-analyzing-orbit{
  position:relative;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,#fff 0 29%,#dff4ff 30% 54%,transparent 55%);
  animation:naviPulse 1.8s ease-in-out infinite;
}
.navi-analyzing-orbit:before{
  content:"N";
  position:absolute;
  inset:10px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg,#087ab6,#064d7b);
  color:#fff;
  font-size:10px;
  font-weight:900;
  z-index:3;
}
.navi-analyzing-orbit span,
.navi-analyzing-orbit i,
.navi-analyzing-orbit b{
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  top:17px;
  left:17px;
  transform-origin:4px 4px;
}
.navi-analyzing-orbit span{background:#16a6cf;animation:naviOrbit1 1.4s linear infinite}
.navi-analyzing-orbit i{background:#e5ad27;animation:naviOrbit2 1.8s linear infinite}
.navi-analyzing-orbit b{background:#2aaa7b;animation:naviOrbit3 2.2s linear infinite}
.navi-analyzing-copy{display:grid;gap:3px}
.navi-analyzing-copy strong{font-size:11px;color:#0b426d}
.navi-analyzing-copy>span{font-size:8px;color:#748a9d}
.navi-thinking-dots{display:flex;gap:4px;margin-top:3px}
.navi-thinking-dots i{width:6px;height:6px;border-radius:50%;background:#1b87c4;animation:naviDot 1.15s ease-in-out infinite}
.navi-thinking-dots i:nth-child(2){animation-delay:.16s}
.navi-thinking-dots i:nth-child(3){animation-delay:.32s}
@keyframes naviOrbit1{from{transform:rotate(0deg) translateX(18px)}to{transform:rotate(360deg) translateX(18px)}}
@keyframes naviOrbit2{from{transform:rotate(120deg) translateX(22px)}to{transform:rotate(480deg) translateX(22px)}}
@keyframes naviOrbit3{from{transform:rotate(240deg) translateX(25px)}to{transform:rotate(600deg) translateX(25px)}}
@keyframes naviDot{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:1}}
@keyframes naviPulse{0%,100%{box-shadow:0 0 0 0 rgba(17,137,193,.08)}50%{box-shadow:0 0 0 8px rgba(17,137,193,.08)}}
@media(prefers-reduced-motion:reduce){
  .navi-analyzing-orbit,.navi-analyzing-orbit span,.navi-analyzing-orbit i,.navi-analyzing-orbit b,.navi-thinking-dots i{animation:none!important}
}


/* =========================================================
   PHASE 10.9h · ROLE BADGE UI FROM FIREBASE roleCode
   Role codes: CEO / DEPARTMENT_MANAGER / ADMIN / SPECIALIST
   Visual-only phase: no permission/write behavior is changed.
   ========================================================= */
:root{
  --role-ceo-teal:#0B7180;
  --role-ceo-deep:#063B63;
  --role-gold:#F5C24B;
  --role-manager:#087D78;
  --role-manager-deep:#07585C;
  --role-admin:#1261D4;
  --role-admin-deep:#073B96;
  --role-specialist:#6B7280;
  --role-specialist-deep:#4B5563;
}

/* Header identity badge */
.account-button{
  position:relative;
  min-width:265px;
  min-height:58px;
  padding:7px 14px 7px 8px;
  border-radius:17px;
  overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.account-button:hover{transform:translateY(-1px)}
.account-button .avatar{
  position:relative;
  z-index:2;
  width:46px;
  height:46px;
  flex:0 0 46px;
  padding:0;
  border-radius:14px;
  overflow:hidden;
  background:transparent;
}
.account-button .avatar img{display:block;width:100%;height:100%;object-fit:contain}
.account-copy{position:relative;z-index:2;min-width:0;flex:1}
.account-name-line{display:flex;align-items:center;gap:7px;min-width:0}
.account-name-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-role-chip{
  flex:0 0 auto;
  padding:3px 7px;
  border-radius:999px;
  font-size:7px;
  line-height:1;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.account-button[data-role] .account-copy strong{font-size:11px}
.account-button[data-role] .account-copy small{font-size:8px}

/* CEO: NASCO teal/deep blue blending into gold on the right. */
.account-button.role-ceo{
  color:#fff;
  border:1.5px solid #E6B131;
  background:
    linear-gradient(118deg,
      var(--role-ceo-deep) 0%,
      var(--role-ceo-teal) 50%,
      #187F83 63%,
      #D69B1E 82%,
      var(--role-gold) 100%);
  box-shadow:0 10px 25px rgba(8,87,101,.20),0 0 0 1px rgba(245,194,75,.12);
}
.account-button.role-ceo:after{
  content:"";
  position:absolute;
  right:-18px;top:-45%;
  width:100px;height:160%;
  transform:skewX(-22deg);
  background:linear-gradient(90deg,transparent,rgba(255,225,135,.25));
}
.account-button.role-ceo .account-copy strong{color:#fff}
.account-button.role-ceo .account-copy small{color:rgba(255,255,255,.88)}
.account-button.role-ceo .account-role-chip{
  color:#FFF0AE;background:rgba(3,52,84,.62);border:1px solid rgba(255,220,113,.68)
}

/* Department Manager: managerial teal */
.account-button.role-department-manager{
  color:#fff;
  border:1.5px solid #28AAA0;
  background:linear-gradient(120deg,var(--role-manager-deep),var(--role-manager) 58%,#269D95);
  box-shadow:0 10px 23px rgba(8,125,120,.17);
}
.account-button.role-department-manager .account-copy strong{color:#fff}
.account-button.role-department-manager .account-copy small{color:rgba(255,255,255,.86)}
.account-button.role-department-manager .account-role-chip{
  color:#FFE18A;background:rgba(3,75,76,.46);border:1px solid rgba(255,212,100,.52)
}

/* Admin: clear system-blue identity */
.account-button.role-admin{
  color:#fff;
  border:1.5px solid #3C8DF0;
  background:linear-gradient(120deg,var(--role-admin-deep),var(--role-admin) 60%,#1778E7);
  box-shadow:0 10px 23px rgba(18,97,212,.18);
}
.account-button.role-admin .account-copy strong{color:#fff}
.account-button.role-admin .account-copy small{color:rgba(255,255,255,.86)}
.account-button.role-admin .account-role-chip{
  color:#fff;background:rgba(3,49,122,.42);border:1px solid rgba(190,220,255,.5)
}

/* Specialist: professional neutral gray */
.account-button.role-specialist{
  color:#fff;
  border:1.5px solid #9AA7B4;
  background:linear-gradient(120deg,var(--role-specialist-deep),var(--role-specialist) 60%,#8996A4);
  box-shadow:0 8px 18px rgba(75,85,99,.12);
}
.account-button.role-specialist .account-copy strong{color:#fff}
.account-button.role-specialist .account-copy small{color:rgba(255,255,255,.82)}
.account-button.role-specialist .account-role-chip{
  color:#fff;background:rgba(39,48,58,.38);border:1px solid rgba(255,255,255,.35)
}
.account-button.role-viewer{background:#fff}

/* Floating NAVI inherits the signed-in role without changing NAVI's identity. */
.floating-navi-role-chip{
  display:inline-flex;
  width:max-content;
  margin-top:3px;
  padding:2px 6px;
  border-radius:999px;
  font-size:7px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.04em;
}
.floating-navi-role-chip.role-ceo{color:#FFE181;background:rgba(4,55,80,.52);border:1px solid rgba(245,194,75,.62)}
.floating-navi-role-chip.role-department-manager{color:#FFE69B;background:rgba(5,82,81,.50);border:1px solid rgba(245,194,75,.42)}
.floating-navi-role-chip.role-admin{color:#fff;background:rgba(5,61,143,.48);border:1px solid rgba(190,220,255,.48)}
.floating-navi-role-chip.role-specialist{color:#fff;background:rgba(67,78,89,.42);border:1px solid rgba(255,255,255,.32)}

.floating-navi-header.role-ceo{
  background:linear-gradient(112deg,var(--role-ceo-deep) 0%,var(--role-ceo-teal) 61%,#E1A526 100%);
}
.floating-navi-header.role-department-manager{
  background:linear-gradient(120deg,var(--role-manager-deep),var(--role-manager),#279C95);
}
.floating-navi-header.role-admin{
  background:linear-gradient(120deg,var(--role-admin-deep),var(--role-admin),#1875DF);
}
.floating-navi-header.role-specialist{
  background:linear-gradient(120deg,var(--role-specialist-deep),var(--role-specialist),#8996A4);
}
.floating-navi-avatar.user{
  background:#fff;
  border:1px solid #dbe5ec;
  padding:1px;
}
.floating-navi-avatar.user img{width:100%;height:100%;object-fit:contain;border-radius:50%}

/* Full NAVI user avatar follows role icon too. */
.navi-message.user .navi-avatar{
  background:#fff;
  border:1px solid #dbe5ec;
  overflow:hidden;
  padding:1px;
}
.navi-message.user .navi-avatar img{display:block;width:100%;height:100%;object-fit:contain}

/* Compact behavior */
@media(max-width:1050px){
  .account-button{min-width:58px;width:58px;padding:5px}
  .account-button .account-copy{display:none}
  .account-button .avatar{width:46px;height:46px}
}
@media(max-width:650px){
  .account-button{min-width:50px;width:50px;min-height:50px;border-radius:14px}
  .account-button .avatar{width:40px;height:40px}
}


/* =========================================================
   PHASE 10.9i · NAVI EXECUTIVE KPI CARD
   Larger type, visual comparison, YTD block and auto insight.
   ========================================================= */
.navi-exec-card{
  width:100%;
  min-width:0;
  overflow:hidden;
  border:1px solid #c9dbe8;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(16,65,98,.07);
}
.navi-exec-title{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;
  background:linear-gradient(90deg,#f3fcf8,#f7fffd);
  border-bottom:1px solid #bfe5d7;
  color:#08755c;
}
.navi-exec-title strong{font-size:14px;line-height:1.3}
.navi-exec-title-icon{
  width:26px;height:26px;flex:0 0 26px;border-radius:50%;
  display:grid;place-items:center;background:#18a879;color:#fff;
  font-size:16px;font-weight:900;
}
.navi-exec-month,.navi-exec-ytd{
  display:grid;
  grid-template-columns:minmax(150px,.88fr) minmax(210px,1.42fr);
  gap:0;
}
.navi-exec-month{background:#fff}
.navi-exec-ytd{background:linear-gradient(90deg,#f4f9ff,#fbfdff);border-top:1px solid #dbe7f1}
.navi-exec-value-block{
  padding:20px 18px;
  border-right:1px solid #dbe6ee;
  display:flex;flex-direction:column;justify-content:center;
}
.navi-exec-period{display:flex;align-items:center;gap:9px;color:#1763b4}
.navi-exec-period strong{font-size:13px;letter-spacing:.01em}
.navi-exec-calendar,.navi-exec-bars{
  width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:#e9f2ff;color:#1763b4;font-size:17px;font-weight:900;
}
.navi-exec-value{
  margin-top:14px;
  color:#0b52b7;
  font-size:30px;
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.045em;
  overflow-wrap:anywhere;
}
.navi-exec-metric{
  margin-top:6px;color:#1763b4;font-size:11px;font-weight:900;letter-spacing:.055em
}
.navi-exec-comparisons{padding:16px 18px}
.navi-exec-comparisons h4{
  display:inline-flex;margin:0 0 7px;padding:4px 9px;border-radius:999px;
  background:#e9efff;color:#155bc4;font-size:9px;font-weight:900;letter-spacing:.04em
}
.navi-exec-compare{
  display:grid;
  grid-template-columns:30px minmax(72px,.7fr) minmax(115px,1.4fr);
  align-items:center;
  gap:8px;
  min-height:50px;
  padding:7px 0;
  border-bottom:1px solid #e5edf3;
}
.navi-exec-compare:last-child{border-bottom:0}
.navi-exec-icon{
  width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  font-size:19px;font-weight:900;color:#fff;background:#7f91a1
}
.navi-exec-compare strong{font-size:19px;line-height:1;font-weight:900;white-space:nowrap}
.navi-exec-compare small{font-size:10px;line-height:1.3;color:#30475c;font-weight:800}
.navi-exec-compare small em{display:block;margin-top:2px;color:#74889a;font-style:normal;font-weight:600}
.navi-exec-compare.up .navi-exec-icon{background:#18aa69}.navi-exec-compare.up strong{color:#119555}
.navi-exec-compare.down .navi-exec-icon{background:#df4b4b}.navi-exec-compare.down strong{color:#d63d3d}
.navi-exec-compare.flat strong{color:#607587}
.navi-exec-compare.plan .navi-exec-icon{background:#2778d8}.navi-exec-compare.plan strong{color:#165eb5}
.navi-exec-compare.na .navi-exec-icon{background:#9aa8b5}.navi-exec-compare.na strong{font-size:10px;color:#728495;white-space:normal}
.navi-exec-insight{
  display:flex;gap:11px;align-items:flex-start;
  margin:14px 16px;padding:13px 14px;
  border:1px solid #f2d38a;border-radius:13px;
  background:linear-gradient(90deg,#fffaf0,#fffdf8);
}
.navi-exec-insight>span{
  width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:grid;place-items:center;
  background:#f2ad19;color:#fff;font-size:15px
}
.navi-exec-insight strong{display:block;color:#bf7b05;font-size:11px;letter-spacing:.04em}
.navi-exec-insight p{margin:4px 0 0;color:#183955;font-size:12px;line-height:1.5;font-weight:600}
.navi-exec-source{font-size:9px!important;padding:10px 16px!important;color:#71889b!important}
.navi-exec-source b{color:#1763b4}
.floating-navi-bubble.structured,.navi-bubble.structured{padding:0!important;overflow:visible;background:transparent!important;border:0!important;box-shadow:none!important}
.floating-navi-bubble.structured>.floating-navi-tag,.navi-bubble.structured>.navi-plugin-tag{margin:0 0 6px 4px}

@media(max-width:650px){
  .navi-exec-title{padding:12px}
  .navi-exec-title strong{font-size:12px}
  .navi-exec-month,.navi-exec-ytd{grid-template-columns:1fr}
  .navi-exec-value-block{border-right:0;border-bottom:1px solid #e3edf4;padding:15px}
  .navi-exec-value{font-size:28px;margin-top:10px}
  .navi-exec-comparisons{padding:12px 15px}
  .navi-exec-compare{grid-template-columns:28px 82px 1fr;gap:7px;min-height:45px}
  .navi-exec-compare strong{font-size:17px}
  .navi-exec-compare small{font-size:9px}
  .navi-exec-insight{margin:11px 12px;padding:11px}
  .navi-exec-insight p{font-size:11px}
}


/* =========================================================
   PHASE 10.9k · COST SCOPE + RATIO CARD
   ========================================================= */
.navi-ratio-card{
  width:100%;
  overflow:hidden;
  border:1px solid #cfe0ec;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(16,65,98,.07);
}
.navi-ratio-head{
  display:flex;align-items:center;gap:11px;
  padding:14px 16px;
  background:linear-gradient(90deg,#f4fbff,#f7fffb);
  border-bottom:1px solid #d6e8ef;
}
.navi-ratio-head>span{
  width:30px;height:30px;display:grid;place-items:center;flex:0 0 30px;
  border-radius:50%;background:#087c8c;color:#fff;font-size:17px;font-weight:900;
}
.navi-ratio-head strong{display:block;color:#075c72;font-size:14px;line-height:1.25}
.navi-ratio-head small{display:block;margin-top:3px;color:#6a8192;font-size:9px;font-weight:700}
.navi-ratio-result{
  padding:18px 16px 14px;
  text-align:center;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.navi-ratio-result small{
  display:block;color:#55738b;font-size:9px;font-weight:900;letter-spacing:.08em;
}
.navi-ratio-result strong{
  display:block;margin-top:5px;color:#0b57bd;font-size:31px;line-height:1.05;
  font-weight:900;letter-spacing:-.035em;
}
.navi-ratio-equation{
  display:grid;grid-template-columns:1fr 28px 1fr;align-items:center;gap:8px;
  margin:0 16px 14px;padding:13px;
  border-radius:13px;background:#f5f9fc;border:1px solid #e0eaf1;
}
.navi-ratio-equation>div{min-width:0}
.navi-ratio-equation small{display:block;color:#6c8293;font-size:8px;font-weight:900;letter-spacing:.06em}
.navi-ratio-equation strong{display:block;margin-top:4px;color:#123c5e;font-size:15px;font-weight:900}
.navi-ratio-equation span{display:block;margin-top:3px;color:#6d8190;font-size:8px;line-height:1.25}
.navi-ratio-equation>b{display:grid;place-items:center;color:#0b73ad;font-size:22px}
.navi-ratio-components{
  display:grid;gap:5px;margin:0 16px 15px;padding:10px 12px;
  border-radius:11px;background:#fffaf0;border:1px solid #efd598;
}
.navi-ratio-components span{
  display:flex;justify-content:space-between;gap:10px;
  font-size:9px;color:#5f6f7c;
}
.navi-ratio-components b{color:#9d6b08;white-space:nowrap}
@media(max-width:650px){
  .navi-ratio-result strong{font-size:28px}
  .navi-ratio-equation{grid-template-columns:1fr 20px 1fr;margin:0 11px 12px;padding:10px}
  .navi-ratio-equation strong{font-size:13px}
}


/* =========================================================
   PHASE 10.9L · ACCOUNT SECURITY
   ========================================================= */
.account-security-card{
  width:min(470px,calc(100vw - 32px));
}
.account-security-card h3{
  margin:0 0 14px;
  color:#173f5f;
  font-size:17px;
}
.account-security-divider{
  height:1px;
  margin:18px 0;
  background:linear-gradient(90deg,transparent,#d5e2ea 12%,#d5e2ea 88%,transparent);
}
.account-security-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #e6edf2;
}


/* Phase 10.9L.8 · resolved scope shown on KPI cards */
.navi-exec-scope{
  font-weight:700;
  opacity:.78;
  white-space:normal;
}


/* =========================================================
   REVENUE INPUT PHASE 1
   ========================================================= */
.rev-input-panel{margin-top:20px}
.rev-input-head{align-items:center;gap:16px}
.rev-input-lock{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;font-weight:800;font-size:12px}
.rev-input-lock.open{background:#e9f8f3;color:#08765e}
.rev-input-lock.locked{background:#fff0f0;color:#bd3030}
.rev-input-tabs{display:flex;gap:8px;padding:0 18px;border-bottom:1px solid #dbe7ef;overflow:auto}
.rev-input-tabs button{border:0;background:transparent;padding:13px 12px;font-weight:800;color:#587086;cursor:pointer;white-space:nowrap}
.rev-input-tabs button.active{color:#0866b7;border-bottom:3px solid #0866b7}
.rev-input-tabs button b{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:10px;background:#e44f4f;color:#fff;font-size:11px}
.rev-input-table-wrap{overflow:auto;border:1px solid #d8e5ed;border-radius:14px}
.rev-input-table{width:100%;border-collapse:collapse;min-width:850px}
.rev-input-table th,.rev-input-table td{padding:10px 12px;border-bottom:1px solid #e5edf2;text-align:left;vertical-align:middle}
.rev-input-table th{background:#f1f7fb;color:#27465d;font-size:12px}
.rev-input-table input{width:100%;box-sizing:border-box;border:1px solid #cbdbe5;border-radius:9px;padding:9px 10px;background:#fff}
.rev-input-table input:disabled{background:#f3f5f7;color:#7a8994}
.rev-row-status{display:block;font-size:12px;font-weight:700;color:#526b7c}
.rev-unlocked{display:block;color:#08765e;margin-top:4px}
.rev-input-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.rev-input-actions small{color:#6d7e8a}
.rev-import-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rev-import-grid>div{border:1px solid #d8e5ed;border-radius:14px;padding:16px;background:#fbfdff}
.rev-import-grid h3{margin:0 0 6px;color:#173f5f}
.rev-import-grid input[type=file]{display:block;margin:12px 0;max-width:100%}
.rev-request-list{display:grid;gap:10px}
.rev-request-card{border:1px solid #dbe6ed;border-radius:14px;padding:14px}
.rev-request-card>div:first-child{display:flex;justify-content:space-between;gap:12px}
.rev-request-card p{margin:9px 0;color:#344d60}
.rev-request-card small{color:#708491}
.rev-request-card.pending{border-left:4px solid #e7a51a}
.rev-request-card.approved{border-left:4px solid #0aa38f}
.rev-request-card.rejected{border-left:4px solid #d44d4d}
.rev-request-actions{display:flex;gap:8px;margin-top:12px}
.rev-log-list{display:grid;gap:0;border:1px solid #dbe6ed;border-radius:14px;overflow:hidden}
.rev-log-list>div{display:grid;grid-template-columns:130px 1fr 240px 180px;gap:10px;padding:10px 12px;border-bottom:1px solid #e7eef3;align-items:center}
.rev-log-list>div:last-child{border-bottom:0}
.rev-log-list span,.rev-log-list small{color:#718594}
.rev-log-list em{font-style:normal;font-weight:700}
@media(max-width:780px){
  .rev-import-grid{grid-template-columns:1fr}
  .rev-log-list>div{grid-template-columns:1fr;gap:3px}
}


/* Revenue Input Phase 1B */
.rev-input-period-bar{padding:14px 18px;border-bottom:1px solid #dbe7ef;background:#fbfdff}
.rev-input-period-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:end}
.rev-input-period-controls label{display:grid;gap:5px;min-width:150px}
.rev-input-period-controls label span{font-size:11px;font-weight:800;color:#587086;text-transform:uppercase}
.rev-input-period-controls select{border:1px solid #cbdbe5;border-radius:10px;padding:9px 11px;background:#fff;font-weight:700;color:#173f5f}
.rev-input-missing{margin:14px 18px 0;padding:13px 14px;border:1px solid #f1c96b;border-radius:14px;background:#fff9ea;display:flex;justify-content:space-between;gap:15px;align-items:center}
.rev-input-missing.ok{border-color:#a8dfcf;background:#effaf6;color:#08765e}
.rev-input-missing>div:first-child{display:grid;gap:3px}
.rev-input-missing small{color:#7b6b40}
.rev-missing-items{display:flex;gap:8px;flex-wrap:wrap}
.rev-missing-items button{border:1px solid #e9b84b;background:#fff;border-radius:10px;padding:8px 11px;text-align:left;cursor:pointer;color:#5a4520}
.rev-missing-items button b,.rev-missing-items button span{display:block}
.rev-missing-items button span{font-size:11px;margin-top:3px;color:#8a6724}
.rev-input-table.report-like{min-width:1700px}
.rev-input-table.report-like th{text-align:center;font-size:11px}
.rev-input-table.report-like td{text-align:right;font-size:12px;white-space:nowrap}
.rev-input-table.report-like td:nth-child(1){text-align:center}
.rev-input-table.report-like td:nth-child(2){text-align:left;min-width:250px}
.rev-input-table.report-like td:nth-child(2) small{display:block;color:#708491;margin-top:3px;font-weight:700}
.rev-input-table.report-like .editable-head{background:#fff1b9;color:#6a4b00}
.rev-input-table.report-like .editable-cell{background:#fffbed;min-width:155px}
.rev-input-table.report-like .editable-cell input{font-weight:800;color:#0b5db2;border-color:#e6bd54;background:#fff}
.rev-input-table.report-like td:last-child{text-align:left;min-width:190px}
.rev-input-table.report-like td:last-child .rev-input-note{margin-top:7px;min-width:150px}
@media(max-width:900px){
  .rev-input-missing{align-items:flex-start;flex-direction:column}
  .rev-input-period-controls label{min-width:120px;flex:1}
}

/* =========================================================
   PRODUCTION INTELLIGENCE PHASE 12.0A
   ========================================================= */
.prod-daily-status,.prod-period-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#edf6fb;color:#0f5f9f;font-size:12px;font-weight:800}
.prod-daily-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.prod-daily-card{position:relative;overflow:hidden;padding:16px;border:1px solid #dbe6ef;border-left:5px solid #1665b7;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(25,67,102,.06)}
.prod-daily-card.teal{border-left-color:#087780}.prod-daily-card.gold{border-left-color:#c99725}.prod-daily-card.violet{border-left-color:#7c2ce7}
.prod-daily-top{display:flex;justify-content:space-between;gap:10px}.prod-daily-top strong{color:#0d3155}.prod-daily-top span{font-size:11px;color:#718297}
.prod-daily-placeholder{height:130px;margin:16px 0 12px;border-radius:14px;background:linear-gradient(180deg,#f6fafc,#edf4f8);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#7890a3;position:relative;overflow:hidden}
.prod-daily-placeholder b{color:#4c6578}.prod-daily-placeholder small{max-width:220px;margin-top:5px}.prod-daily-line{position:absolute;left:10%;right:10%;top:50%;height:2px;background:linear-gradient(90deg,transparent,#a6c6d7,transparent)}
.prod-daily-mini{display:grid;grid-template-columns:1fr 1fr;gap:8px}.prod-daily-mini span{padding:8px;border:1px solid #e2ebf1;border-radius:10px;font-size:10px;color:#6d7e8c}.prod-daily-mini b{display:block;margin-top:3px;font-size:13px;color:#163e5d}
.prod-month-block{margin-top:14px;padding:14px;border:1px solid #dfe9f0;border-radius:14px;background:#fff}.prod-ytd-block{margin-top:12px;padding:14px;border:1px solid #cfe2f0;border-radius:14px;background:#f2f8fc}
.prod-block-label{font-size:11px;font-weight:900;color:#1763aa;letter-spacing:.03em}.prod-month-block .prod-focus-value{margin-top:12px}.prod-ytd-block .prod-ytd-value{margin:12px 0;font-size:25px;font-weight:900;color:#0a4f91}
.prod-analysis-tools{display:flex;gap:12px;margin-bottom:14px}.prod-analysis-tools label{display:grid;gap:5px;min-width:320px;font-size:11px;font-weight:800;color:#5c7285}.prod-analysis-tools select{padding:9px 11px;border:1px solid #cbdce7;border-radius:10px;background:#fff}
.prod-analysis-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.prod-analysis-grid>div{padding:15px;border:1px solid #dbe6ef;border-radius:14px;background:#fff}.prod-analysis-grid span,.prod-analysis-grid small{display:block;color:#718395;font-size:11px}.prod-analysis-grid b{display:block;margin:7px 0;font-size:23px;color:#0b4f8f}
.prod-analysis-table,.prod-input-table{overflow:auto;border:1px solid #dbe6ef;border-radius:14px}.prod-analysis-table table,.prod-input-table table{width:100%;border-collapse:collapse;min-width:1100px}.prod-analysis-table th,.prod-analysis-table td,.prod-input-table th,.prod-input-table td{padding:9px 10px;border-bottom:1px solid #e7eef3;text-align:right;font-size:11px;white-space:nowrap}.prod-analysis-table th,.prod-input-table th{background:#eff6fa;color:#274a63}.prod-analysis-table th:first-child,.prod-analysis-table td:first-child,.prod-input-table th:nth-child(3),.prod-input-table td:nth-child(3){text-align:left}.prod-input-table input{width:100%;box-sizing:border-box;padding:8px;border:1px solid #ccdce6;border-radius:8px}.prod-input-controls{display:flex;gap:12px;flex-wrap:wrap;padding:12px 0}.prod-input-controls label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#657b8b}.prod-input-controls select,.prod-input-controls input{padding:8px 10px;border:1px solid #ccdce6;border-radius:9px;background:#fff}
@media(max-width:1180px){.prod-daily-grid{grid-template-columns:repeat(2,1fr)}.prod-analysis-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.prod-daily-grid,.prod-analysis-grid{grid-template-columns:1fr}.prod-analysis-tools label{min-width:0;width:100%}}


/* Production Intelligence 12.0B */
.prod-analysis-narrative{
  margin:14px 0;
  padding:16px 18px;
  border:1px solid #d7e7ef;
  border-left:4px solid #0f7b83;
  border-radius:14px;
  background:#f7fcfc;
}
.prod-analysis-narrative-head{display:flex;align-items:center;gap:8px;color:#0b6670;margin-bottom:7px}
.prod-analysis-narrative p{margin:0;line-height:1.65;color:#233d50;font-weight:600}
.prod-analysis-narrative-placeholder{
  margin:14px 0;
  padding:13px 16px;
  border:1px dashed #c9dae5;
  border-radius:12px;
  background:#fbfdff;
  color:#657b8b;
}
.prod-hierarchy-level-0 td:first-child{font-weight:800;color:#0b4f8a}
.prod-hierarchy-level-1 td:first-child{font-weight:650}
.prod-hierarchy-level-2 td:first-child{color:#51687a}


/* Production Intelligence 12.0C */
.prod-tooltip-point{cursor:crosshair}
.prod-analysis-detail-table{margin-top:14px}
.prod-analysis-detail-table table{min-width:1450px}
.prod-analysis-detail-table th,.prod-analysis-detail-table td{text-align:right}
.prod-analysis-detail-table th:nth-child(1),.prod-analysis-detail-table td:nth-child(1),
.prod-analysis-detail-table th:nth-child(2),.prod-analysis-detail-table td:nth-child(2),
.prod-analysis-detail-table th:nth-child(3),.prod-analysis-detail-table td:nth-child(3){text-align:left}
.prod-code-cell{font-weight:800;color:#0b5da8;white-space:nowrap}
.prod-th-highlight{background:#fff2bd!important;font-weight:800!important;color:#7b5700}
.prod-ytd-highlight{background:#e8f6f4!important;font-weight:800!important;color:#086b68}
.prod-analysis-detail-table tbody tr:hover td{filter:brightness(.985)}
.prod-hierarchy-level-0 td:nth-child(2){font-weight:900;color:#064f8f}
.prod-hierarchy-level-1 td:nth-child(2){font-weight:700}
.prod-hierarchy-level-2 td:nth-child(2){color:#526c7d}


/* Production Input hierarchy 12.0D */
.prod-input-hierarchy-level-0 td{background:#f3f8fc}
.prod-input-hierarchy-level-0 .prod-input-label{font-weight:900;color:#075796}
.prod-input-hierarchy-level-1 .prod-input-label{font-weight:700;color:#173f5f}
.prod-input-hierarchy-level-2 .prod-input-label{color:#536b7b}
.prod-input-table .prod-code-cell{font-weight:900;color:#0b5da8;text-align:center;min-width:52px}
.prod-input-table .prod-input-label{white-space:pre-wrap}


/* Production global summary 12.0G */
.prod-input-global-summary td{
  background:#eaf6ee!important;
  border-top:1px solid #bddcc8;
  border-bottom:1px solid #d5e8db;
}
.prod-input-global-summary .prod-input-label{
  font-weight:900;
  color:#176b3a;
}
.prod-input-global-summary .prod-summary-value,
.prod-input-global-summary .prod-summary-note{
  background:#eef8f1!important;
  color:#176b3a!important;
  font-weight:800;
  cursor:not-allowed;
}

/* Production Daily Operations 12.0H */
.prod-daily-status.ready{color:#0a7a66;background:#e9f8f3;border-radius:999px;padding:7px 11px;font-weight:800}
.prod-daily-alert{margin:12px 0 16px;padding:13px 15px;border:1px solid #e45555;border-left:5px solid #d52c2c;border-radius:12px;background:#fff0f0;color:#9f1f1f;display:grid;gap:4px}
.prod-daily-alert strong{font-size:14px}.prod-daily-alert span{font-size:12px;line-height:1.5}
.prod-daily-current{display:flex;align-items:baseline;gap:7px;margin:12px 0 4px}.prod-daily-current b{font-size:28px;color:#183c56}.prod-daily-current small{font-weight:700;color:#718494}
.prod-daily-spark{width:100%;height:74px;overflow:visible;margin:2px 0 8px}.prod-daily-spark polyline{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.prod-daily-spark circle{fill:#fff;stroke:currentColor;stroke-width:2;cursor:crosshair}
.prod-daily-line-empty{height:74px;display:flex;align-items:center;justify-content:center;color:#8294a1;font-size:12px;border-bottom:1px dashed #d8e3ea}
.prod-daily-input{margin-top:16px;padding:16px;border:1px solid #d8e6ed;border-radius:14px;background:#fbfdff}
.prod-daily-input-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}.prod-daily-input-head>strong{font-size:15px;color:#17445e}.prod-daily-input-head label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#5d7484;text-transform:uppercase}.prod-daily-input-head input{padding:8px 10px;border:1px solid #cbdce6;border-radius:9px;background:#fff}
.prod-daily-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.prod-daily-input-grid label{padding:10px 12px;border:1px solid #dce8ef;border-radius:11px;background:#fff}.prod-daily-input-grid label>span{display:block;font-size:12px;font-weight:800;color:#31536a;margin-bottom:7px}.prod-daily-input-grid label>div{display:flex;align-items:center;gap:8px}.prod-daily-input-grid input{width:100%;padding:9px 10px;border:1px solid #c7d9e4;border-radius:9px;font-weight:800}.prod-daily-input-grid em{font-style:normal;color:#718492;font-size:12px;white-space:nowrap}
.prod-daily-input-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.prod-daily-input-actions small{color:#6d818f}
@media(max-width:800px){.prod-daily-input-grid{grid-template-columns:1fr}}

/* Production 12.0H.5 - Daily response + mobile-first input */
.prod-daily-source{display:block;margin-top:5px;color:#7890a0;font-size:10px}
.prod-input-simple table{min-width:0;width:100%;table-layout:fixed}
.prod-input-simple th,.prod-input-simple td{padding:10px 12px}
.prod-input-simple th:first-child,.prod-input-simple td:first-child{text-align:left;width:62%}
.prod-input-simple th:last-child,.prod-input-simple td:last-child{text-align:left;width:38%}
.prod-input-simple .prod-input-label{white-space:normal;font-weight:700;color:#173f5f}
.prod-input-simple .prod-input-code{display:inline-block;min-width:34px;margin-right:7px;color:#0b5da8;font-weight:900}
.prod-input-simple .prod-input-label small{display:block;margin:4px 0 0 41px;color:#6f8576;font-weight:700}
.prod-input-simple .prod-input-value-cell input{font-size:16px;min-height:44px}
@media(max-width:680px){
  .prod-input-section{padding-left:10px!important;padding-right:10px!important}
  .prod-input-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
  .prod-input-controls label{min-width:0}
  .prod-input-controls select,.prod-input-controls input{width:100%;min-width:0;padding:9px 7px;font-size:12px}
  .prod-input-simple{border:0;overflow:visible}
  .prod-input-simple table,.prod-input-simple tbody,.prod-input-simple tr,.prod-input-simple td{display:block;width:100%}
  .prod-input-simple thead{display:none}
  .prod-input-simple tr{box-sizing:border-box;margin:0 0 9px;padding:10px;border:1px solid #dce8ef;border-radius:12px;background:#fff}
  .prod-input-simple td{box-sizing:border-box;border:0!important;padding:0!important;width:100%!important}
  .prod-input-simple .prod-input-label{margin-bottom:7px;font-size:12px;line-height:1.35}
  .prod-input-simple .prod-input-code{min-width:28px}
  .prod-input-simple .prod-input-label small{margin-left:35px;font-size:10px}
  .prod-input-simple .prod-input-value{width:100%;min-height:46px;font-size:18px;font-weight:850;padding:10px 12px}
  .prod-input-simple .prod-request-edit{margin-top:6px}
  .prod-input-global-summary{background:#eef8f1!important}
  .prod-daily-input{padding:12px}
  .prod-daily-input-head{align-items:stretch}
  .prod-daily-input-head label{width:100%}
  .prod-daily-input-head input{width:100%;box-sizing:border-box;min-height:44px}
  .prod-daily-input-grid label{padding:11px}
  .prod-daily-input-grid input{min-height:46px;font-size:18px}
  .prod-daily-input-actions .button{width:100%;min-height:46px}
}


/* =========================================================
   PHASE 12.0I · REVENUE + PRODUCTION MOBILE RESPONSIVE
   ========================================================= */
.revenue-page,.production-page,
.revenue-dashboard-shell,.production-dashboard-shell,
.rev-section,.prod-section,.panel,.rev-kpi,.prod-focus-card,.prod-chart-card,.prod-daily-card{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.revenue-page,.production-page{overflow-x:clip}
.revenue-page .page-head>div:first-child,
.production-page .page-head>div:first-child{min-width:0}
.revenue-page .actions,.production-page .actions{min-width:0}
.rev-branch-grid,.rev-period-grid,.rev-leaf-grid,.rev-center-grid,.rev-tools,
.rev-field-chart,.prod-focus-grid,.prod-chart-grid,.prod-daily-grid,.prod-analysis-grid{min-width:0}
.rev-kpi-integrated,.rev-period-pane,.rev-comp,.prod-month-block,.prod-ytd-block{min-width:0}
.rev-period-value strong,.rev-kpi strong,.prod-focus-value,.prod-ytd-value{overflow-wrap:anywhere}
.rev-chart-panel,.prod-chart-card{overflow:hidden}
.rev-line-chart,.prod-compare-svg{display:block;max-width:100%}
.rev-input-table-wrap,.prod-analysis-table,.prod-input-table{max-width:100%;-webkit-overflow-scrolling:touch}
.rev-tool-row{min-width:0}.rev-tool-row select{max-width:100%}

@media(max-width:960px){
  .revenue-page,.production-page{width:100%;max-width:100%}
  .revenue-page .page-head,.production-page .page-head{align-items:stretch;gap:14px}
  .revenue-page .page-head .actions,.production-page .page-head .actions{
    width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px
  }
  .revenue-page .revenue-date-control,.production-page .revenue-date-control{width:100%;min-width:0}
  .revenue-page .revenue-date-control select,.revenue-page .revenue-date-control input,
  .production-page .revenue-date-control select,.production-page .revenue-date-control input{
    width:100%;min-width:0;box-sizing:border-box
  }
  .revenue-page .page-head .button,.production-page .page-head .button{width:100%}
  .rev-branch-grid,.rev-center-grid,.rev-tools{grid-template-columns:1fr}
  .rev-field-chart{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rev-period-grid{grid-template-columns:1fr 1fr}
  .rev-leaf-grid{grid-template-columns:1fr}
  .rev-kpi{width:100%}.rev-comp{min-width:0}
  .rev-mini-compare{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rev-center-bars>div{grid-template-columns:minmax(110px,1.2fr) 1fr auto}
  .rev-tool-row select{flex:1 1 180px;min-width:0}
  .prod-focus-grid,.prod-daily-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prod-chart-grid{grid-template-columns:1fr}.prod-section-head{gap:12px}
}

@media(max-width:680px){
  .main{padding-left:8px!important;padding-right:8px!important}
  .revenue-page{margin:0!important;padding:0!important;background:linear-gradient(180deg,#eef7fc,#f7fbfd 360px,#f7fafb)}
  .production-page{padding:0!important;margin:0!important}
  .revenue-page .page-head,.production-page .page-head{
    display:block!important;margin:0 0 10px!important;padding:14px 12px!important;border-radius:16px!important
  }
  .production-page .page-head{
    background:linear-gradient(110deg,#073d78,#0d5da8 58%,#1389b7);color:#fff;box-shadow:0 10px 24px rgba(3,54,100,.14)
  }
  .production-page .page-head h1,.production-page .page-head p,.production-page .page-head .eyebrow{color:#fff}
  .revenue-page .page-head h1,.production-page .page-head h1{font-size:25px!important;line-height:1.08;letter-spacing:-.03em}
  .revenue-page .page-head p,.production-page .page-head p{font-size:11px!important;line-height:1.45}
  .revenue-page .page-head .actions,.production-page .page-head .actions{
    display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin-top:12px!important
  }
  .revenue-page .page-head .actions .button,.production-page .page-head .actions .button{grid-column:1/-1;min-height:42px}
  .revenue-page .revenue-date-control,.production-page .revenue-date-control{display:grid;gap:4px;min-width:0!important}
  .revenue-page .revenue-date-control select,.revenue-page .revenue-date-control input,
  .production-page .revenue-date-control select,.production-page .revenue-date-control input{
    min-width:0!important;width:100%!important;height:40px;font-size:14px!important;box-sizing:border-box
  }
  .revenue-page .banner,.production-page .banner{margin:8px 0 10px;padding:9px 10px;font-size:10px;line-height:1.4;border-radius:10px}
  .revenue-page .rev-section,.prod-section{margin:10px 0!important;padding:11px!important;border-radius:15px!important}
  .rev-section-title,.prod-section-head{display:flex;align-items:flex-start;gap:9px;margin-bottom:10px}
  .prod-section-head{flex-direction:column}.prod-section-head>span,.prod-section-head>.actions{align-self:stretch}
  .prod-section-head>.actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .prod-section-head>.actions .button{width:100%}
  .rev-section-title>span{width:30px;height:30px;flex:0 0 30px;border-radius:9px}
  .rev-section-title h2,.prod-section-head h2{font-size:17px!important;line-height:1.2}
  .rev-section-title p,.prod-section-head p{font-size:10px!important;line-height:1.4}

  .rev-branch-grid,.rev-period-grid,.rev-leaf-grid,.rev-center-grid,.rev-tools,.rev-field-chart{grid-template-columns:1fr!important}
  .rev-sxkd-branch,.rev-other-branch{padding:8px;border-radius:13px}
  .rev-node-label{font-size:12px!important;margin-bottom:7px}
  .rev-kpi{padding:11px!important;min-height:0!important;border-radius:13px!important}
  .rev-kpi-title{margin-bottom:7px}.rev-kpi-title>span{font-size:12px!important}
  .rev-period-pane{padding:8px;border-radius:9px}.rev-period-value{display:block}
  .rev-period-value strong{font-size:19px!important;white-space:normal!important;margin:3px 0 0}
  .rev-period-value small{font-size:9px!important}
  .rev-mini-compare{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px;margin-top:7px}
  .rev-mini-compare span{padding:5px 4px}.rev-mini-compare b{font-size:10px!important}.rev-mini-compare small{font-size:8px!important}
  .rev-comp span{text-align:left}
  .rev-chart-panel{margin-top:10px}.revenue-page .panel{border-radius:14px}
  .revenue-page .panel-head{padding:10px 11px}.revenue-page .panel-head h2{font-size:15px!important}.revenue-page .panel-head p{font-size:10px!important}
  .rev-legend{gap:4px}.rev-legend button{font-size:10px!important;padding:6px 8px!important}
  .rev-line-chart{height:auto!important;min-height:210px}.rev-line-chart text{font-size:10px!important}.rev-line-chart .rev-label{font-size:8px!important}
  .rev-field-row{grid-template-rows:auto 125px auto!important;padding:9px;border-radius:11px}
  .rev-bars span{height:120px}
  .rev-center-bars>div{grid-template-columns:minmax(90px,1.25fr) minmax(70px,1fr) auto!important;font-size:9px}
  .rev-tool-row{display:grid!important;grid-template-columns:1fr!important}
  .rev-tool-row select,.rev-tool-row .button{width:100%!important;min-width:0!important}
  .rev-analysis-text{font-size:12px!important;line-height:1.55}

  .prod-meta-strip{gap:5px;font-size:9px}.prod-meta-strip span{padding:5px 7px}
  .prod-focus-grid,.prod-daily-grid,.prod-analysis-grid{grid-template-columns:1fr!important;gap:9px}
  .prod-focus-card,.prod-daily-card,.prod-chart-card{padding:11px!important;border-radius:14px!important}
  .prod-focus-title{font-size:13px}.prod-focus-value{font-size:27px;margin-top:10px}
  .prod-month-block,.prod-ytd-block{padding:10px;margin-top:8px;border-radius:11px}
  .prod-kpi-line{font-size:10px;gap:8px}.prod-ytd-value{font-size:22px}
  .prod-daily-current b{font-size:25px}.prod-daily-mini{gap:5px}.prod-daily-mini span{padding:6px;font-size:9px}.prod-daily-mini b{font-size:12px}
  .prod-chart-head{display:block!important}.prod-legend{margin-top:8px}.prod-chart-stage{min-height:0;margin-top:6px}
  .prod-compare-svg{width:100%;height:auto;min-width:0}.prod-axis-label{font-size:9px}.prod-value-label{font-size:8px}
  .prod-analysis-tools{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .prod-analysis-tools label{width:100%!important;min-width:0!important}.prod-analysis-tools select,.prod-analysis-tools .button{width:100%}
  .prod-analysis-grid>div{padding:10px;border-radius:11px}.prod-analysis-grid b{font-size:20px}

  .rev-input-table-wrap,.prod-analysis-table,.prod-input-table{
    width:100%;max-width:100%;overflow-x:auto!important;overscroll-behavior-inline:contain
  }
  .rev-input-table.report-like{min-width:1050px}.prod-analysis-detail-table table{min-width:1150px}
  .rev-input-head{align-items:flex-start!important}.rev-input-period-bar{padding:10px}
  .rev-input-period-controls{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important}
  .rev-input-period-controls label{min-width:0!important}.rev-input-period-controls label:last-child{grid-column:1/-1}
  .rev-input-period-controls select{width:100%;min-width:0}
  .rev-input-missing{margin:9px 10px 0!important;padding:10px!important}
  .rev-input-tabs{padding:0 8px}.rev-input-tabs button{padding:11px 9px;font-size:11px}
  .floating-navi-launcher{bottom:76px}
}

@media(max-width:390px){
  .revenue-page .page-head .actions,.production-page .page-head .actions{grid-template-columns:1fr!important}
  .revenue-page .page-head .actions .button,.production-page .page-head .actions .button{grid-column:auto}
  .rev-mini-compare{grid-template-columns:1fr 1fr!important}
  .prod-section-head>.actions{grid-template-columns:1fr}
  .rev-input-period-controls{grid-template-columns:1fr!important}
  .rev-input-period-controls label:last-child{grid-column:auto}
}


/* =========================================================
   PHASE 12.0I.1 · REVENUE MOBILE HARD RESPONSIVE FIX
   Production is intentionally untouched.
   ========================================================= */

/* Prevent legacy Revenue children from defining page width */
.revenue-page,
.revenue-page #rev-root,
.revenue-page #rev-root > *,
.revenue-page .rev-section,
.revenue-page .rev-hierarchy,
.revenue-page .rev-level-total,
.revenue-page .rev-branch-grid,
.revenue-page .rev-sxkd-branch,
.revenue-page .rev-other-branch,
.revenue-page .rev-leaf-grid,
.revenue-page .rev-kpi,
.revenue-page .rev-kpi > *,
.revenue-page .rev-period-grid,
.revenue-page .rev-period-pane,
.revenue-page .rev-chart-panel,
.revenue-page .panel,
.revenue-page .panel-head,
.revenue-page .panel-body,
.revenue-page .rev-center-grid,
.revenue-page .rev-tools,
.revenue-page .rev-field-chart,
.revenue-page .rev-input-panel{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}

/* SVG and graphical content must shrink with the card */
.revenue-page svg,
.revenue-page .rev-line-chart{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto;
}

/* Long text/value must wrap rather than force width */
.revenue-page h1,
.revenue-page h2,
.revenue-page h3,
.revenue-page p,
.revenue-page strong,
.revenue-page b,
.revenue-page small,
.revenue-page .rev-node-label,
.revenue-page .rev-period-value,
.revenue-page .rev-kpi-title{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Only actual report/input tables are allowed horizontal scrolling */
.revenue-page .rev-input-table-wrap,
.revenue-page .rev-export-tree{
  max-width:100%;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}

@media(max-width:680px){
  /* The Revenue page itself must never exceed the visual viewport */
  html,body{max-width:100%;overflow-x:hidden}
  .revenue-page{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow-x:hidden!important;
  }
  .revenue-page #rev-root{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  /* Header */
  .revenue-page .page-head{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box;
    padding:12px!important;
    border-radius:15px!important;
  }
  .revenue-page .page-head>div:first-child{width:100%;max-width:100%}
  .revenue-page .page-head h1{font-size:24px!important}
  .revenue-page .page-head .eyebrow{font-size:9px!important}
  .revenue-page .page-head>div:first-child>p:last-child{
    font-size:10px!important;
    line-height:1.4!important;
  }
  .revenue-page .page-head .actions{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  .revenue-page .revenue-date-control{
    width:100%!important;
    max-width:100%!important;
  }
  .revenue-page .revenue-date-control select,
  .revenue-page .revenue-date-control input{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  /* Main Revenue hierarchy: absolutely one column */
  .revenue-page .rev-section{
    width:100%!important;
    padding:9px!important;
    border-radius:14px!important;
  }
  .revenue-page .rev-hierarchy,
  .revenue-page .rev-branch-grid,
  .revenue-page .rev-leaf-grid,
  .revenue-page .rev-period-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    gap:7px!important;
  }
  .revenue-page .rev-level-total,
  .revenue-page .rev-sxkd-branch,
  .revenue-page .rev-other-branch{
    width:100%!important;
    max-width:100%!important;
  }
  .revenue-page .rev-sxkd-branch,
  .revenue-page .rev-other-branch{
    padding:8px!important;
    border-radius:12px!important;
  }

  /* Critical: legacy .rev-kpi was historically flex */
  .revenue-page .rev-kpi,
  .revenue-page .rev-kpi-integrated{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    padding:10px!important;
    gap:0!important;
    border-radius:12px!important;
  }
  .revenue-page .rev-kpi-title{
    display:block!important;
    margin:0 0 7px!important;
  }
  .revenue-page .rev-kpi-title>span{
    display:block;
    font-size:12px!important;
    line-height:1.3;
  }
  .revenue-page .rev-no-data{font-size:9px!important}

  /* Month and YTD as separate vertical blocks */
  .revenue-page .rev-period-pane{
    width:100%!important;
    padding:8px!important;
    border-radius:9px!important;
  }
  .revenue-page .rev-period-value{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:2px!important;
  }
  .revenue-page .rev-period-value strong{
    display:block!important;
    max-width:100%!important;
    font-size:20px!important;
    line-height:1.12!important;
    white-space:normal!important;
  }
  .revenue-page .rev-mini-compare{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;
    gap:4px!important;
  }
  .revenue-page .rev-mini-compare span{
    min-width:0!important;
    padding:5px!important;
  }
  .revenue-page .rev-mini-compare b{
    font-size:10px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere;
  }
  .revenue-page .rev-mini-compare small{font-size:8px!important}

  /* Chart panels */
  .revenue-page .rev-chart-panel,
  .revenue-page .rev-center-grid .panel,
  .revenue-page .rev-tools .panel{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    border-radius:13px!important;
  }
  .revenue-page .panel-head{
    display:block!important;
    padding:9px!important;
  }
  .revenue-page .panel-head>div{width:100%;max-width:100%}
  .revenue-page .panel-head h2{font-size:14px!important;line-height:1.25}
  .revenue-page .panel-head p{font-size:9px!important;line-height:1.35}
  .revenue-page .panel-body{
    width:100%!important;
    max-width:100%!important;
    padding:8px!important;
    overflow:hidden!important;
  }

  /* Legend becomes a compact horizontal scroller instead of widening panel */
  .revenue-page .rev-legend{
    display:flex!important;
    flex-wrap:nowrap!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    padding:5px 0 2px;
    gap:5px!important;
    -webkit-overflow-scrolling:touch;
  }
  .revenue-page .rev-legend button{
    flex:0 0 auto;
    max-width:85%;
    white-space:normal;
    text-align:left;
    font-size:9px!important;
    padding:5px 7px!important;
  }

  /* Line chart uses aspect ratio; no fixed/min width */
  .revenue-page .rev-line-chart{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:1000/320;
    overflow:visible;
  }

  /* Field chart one card per row */
  .revenue-page .rev-field-chart{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:7px!important;
    width:100%!important;
  }
  .revenue-page .rev-field-row{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box;
    grid-template-rows:auto 118px auto!important;
    padding:8px!important;
  }
  .revenue-page .rev-bars{
    max-width:100%;
    gap:7px!important;
  }
  .revenue-page .rev-bars span{height:112px!important}

  /* Center analysis panels one column */
  .revenue-page .rev-center-grid,
  .revenue-page .rev-tools{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    gap:8px!important;
  }
  .revenue-page .rev-center-bars{width:100%;max-width:100%}
  .revenue-page .rev-center-bars>div{
    width:100%;
    max-width:100%;
    grid-template-columns:minmax(85px,1.2fr) minmax(50px,.8fr) auto!important;
    gap:5px!important;
  }
  .revenue-page .rev-center-bars>div>span{
    min-width:0;
    overflow-wrap:anywhere;
  }
  .revenue-page .rev-center-bars strong{
    font-size:9px!important;
    white-space:nowrap;
  }

  /* Analysis/export controls */
  .revenue-page .rev-tool-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    gap:6px!important;
  }
  .revenue-page .rev-tool-row select,
  .revenue-page .rev-tool-row button{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .revenue-page .rev-export-tree{
    width:100%!important;
    box-sizing:border-box;
  }
  .revenue-page .rev-export-tree label{
    max-width:100%;
    box-sizing:border-box;
  }
  .revenue-page .rev-export-tree label span{
    min-width:0;
    overflow-wrap:anywhere;
  }

  /* Revenue Input: controls are responsive; table scroll stays local */
  .revenue-page .rev-input-panel{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  .revenue-page .rev-input-period-bar{padding:8px!important}
  .revenue-page .rev-input-period-controls{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
    gap:6px!important;
  }
  .revenue-page .rev-input-period-controls label{
    width:100%!important;
    min-width:0!important;
  }
  .revenue-page .rev-input-period-controls select{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .revenue-page .rev-input-table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden;
  }
  .revenue-page .rev-input-table{
    max-width:none!important;
  }

  /* Tabs stay usable without stretching the viewport */
  .revenue-page .rev-input-tabs{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    overflow-x:auto!important;
    flex-wrap:nowrap!important;
  }
  .revenue-page .rev-input-tabs button{flex:0 0 auto}
}

@media(max-width:390px){
  .revenue-page .page-head .actions{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .revenue-page .rev-mini-compare{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  .revenue-page .rev-input-period-controls{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .revenue-page .rev-center-bars>div{
    grid-template-columns:minmax(75px,1fr) minmax(42px,.65fr) auto!important;
  }
}

/* Phase 12.0I.2 · chart point labels */
.prod-daily-spark-labeled{height:112px!important;overflow:visible}
.prod-daily-spark-labeled .prod-daily-value-label{
  font-size:8px;
  font-weight:850;
  fill:#24455f;
  paint-order:stroke;
  stroke:#fff;
  stroke-width:2.4px;
  stroke-linejoin:round;
  pointer-events:auto;
}
.prod-daily-spark-labeled .prod-daily-point circle{cursor:crosshair}
.revenue-page .rev-line-chart .rev-label{
  font-size:8px!important;
  font-weight:850;
  paint-order:stroke;
  stroke:#fff;
  stroke-width:2.2px;
  stroke-linejoin:round;
  cursor:crosshair;
}
@media(max-width:680px){
  .prod-daily-spark-labeled{height:104px!important}
  .prod-daily-spark-labeled .prod-daily-value-label{font-size:7.5px}
  .revenue-page .rev-line-chart .rev-label{font-size:7px!important}
}

/* Phase 12.0I.3 · exact labels for daily production */
.prod-daily-spark-labeled .prod-daily-value-label{
  font-size:7.4px!important;
  letter-spacing:-.15px;
}
@media(min-width:681px){
  .prod-daily-spark-labeled{height:116px!important}
}
@media(max-width:680px){
  .prod-daily-spark-labeled .prod-daily-value-label{
    font-size:6.8px!important;
    letter-spacing:-.2px;
  }
}

/* ===== PHASE 12.1B COST DASHBOARD ===== */
.cost121-page{max-width:1600px;margin:0 auto}.cost121-filters select{min-width:112px}
.cost121-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0}
.cost121-kpi{background:var(--surface,#fff);border:1px solid #e4e9ee;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(15,43,56,.06);position:relative;overflow:hidden}
.cost121-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#0d6670}.cost121-kpi.k2:before{background:#b98b2e}.cost121-kpi.k3:before{background:#7b5ea7}.cost121-kpi.k4:before{background:#536d7a}
.cost121-kpi-title{font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;min-height:32px}.cost121-kpi>strong{display:block;font-size:27px;margin:7px 0 2px}.cost121-kpi>small{color:#72808a}
.cost121-compare{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.cost121-compare span{padding:8px;border-radius:10px;background:#f5f7f8;font-weight:800}.cost121-compare em{display:block;font-size:10px;font-style:normal;font-weight:600;color:#73808a;margin-top:3px}
.cost121-ytd{border-top:1px solid #e7ebee;margin-top:12px;padding-top:10px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cost121-ytd b{margin-right:auto}.cost121-ytd span{font-size:11px;font-weight:800}
.cost121-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.cost121-items article{border:1px solid #e2e8eb;border-radius:14px;padding:14px;background:#fff}.cost121-items h3{font-size:13px;min-height:34px;margin:0}.cost121-items strong{font-size:20px;display:block;margin:8px 0}.cost121-items article div{display:flex;gap:10px;font-size:11px;font-weight:800}.cost121-items small{display:block;margin-top:8px;color:#687782}
.cost121-table .actual-cell{background:#edf8f7;font-weight:800}.cost121-detail.is-collapsed{max-height:330px;overflow:hidden;position:relative}.cost121-detail.is-collapsed:after{content:"";position:absolute;left:0;right:0;bottom:0;height:65px;background:linear-gradient(transparent,#fff)}
.cost121-chart-scroll{overflow-x:auto}.cost121-trend{min-width:760px}.cost121-next{border-style:dashed}
@media(max-width:1100px){.cost121-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cost121-items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.cost121-page .page-head{display:block}.cost121-filters{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.cost121-filters label,.cost121-filters select{width:100%;min-width:0}.cost121-filters #cost-refresh{grid-column:1/-1;width:100%}.cost121-kpis{grid-template-columns:1fr;gap:10px}.cost121-kpi{padding:14px}.cost121-kpi>strong{font-size:24px}.cost121-items{grid-template-columns:1fr 1fr;gap:8px}.cost121-items article{padding:11px}.cost121-items strong{font-size:16px}.cost121-items h3{font-size:12px}.cost121-table{min-width:720px}.cost121-chart-scroll{margin:0 -12px;padding:0 12px}}
@media(max-width:420px){.cost121-items{grid-template-columns:1fr}}

/* Phase 12.1B.4 — canonical cost-group analytics */
.cost121b4-chart-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:18px}
.cost121b4-chart-card{border:1px solid #e2e8eb;border-radius:16px;padding:16px;background:#fff;min-width:0}
.cost121b4-chart-card>h3{margin:0 0 14px;font-size:15px}
.cost121b4-bar-legend{display:flex;gap:18px;justify-content:flex-end;font-size:11px;font-weight:800;margin-bottom:10px}
.cost121b4-bar-legend i{display:inline-block;width:16px;height:7px;border-radius:8px;margin-right:5px}.cost121b4-bar-legend .m{background:#0d6670}.cost121b4-bar-legend .y{background:#d2a23a}
.cost121b4-bars{display:grid;gap:12px}.cost121b4-bar-row{display:grid;grid-template-columns:190px 1fr;gap:12px;align-items:center}
.cost121b4-bar-label strong{display:block;font-size:12px}.cost121b4-bar-label small{font-size:10px;color:#74818a}
.cost121b4-bar-track{display:grid;gap:4px;min-width:0}.cost121b4-bar{height:18px;min-width:3px;border-radius:0 7px 7px 0;position:relative;transition:width .25s ease}
.cost121b4-bar.month{background:#0d6670}.cost121b4-bar.ytd{background:#d2a23a}.cost121b4-bar span{position:absolute;left:calc(100% + 6px);top:1px;white-space:nowrap;font-size:10px;font-weight:800;color:#44535c}
.cost121b4-donut-wrap{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:center}.cost121b4-donut{width:180px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative}
.cost121b4-donut:after{content:"";position:absolute;width:108px;aspect-ratio:1;border-radius:50%;background:#fff}.cost121b4-donut>div{z-index:1;text-align:center;max-width:94px}
.cost121b4-donut strong{display:block;font-size:14px}.cost121b4-donut small{font-size:9px;color:#73808a}
.cost121b4-donut-legend{display:grid;gap:8px}.cost121b4-donut-legend>div{display:grid;grid-template-columns:10px 1fr auto;gap:7px;align-items:center;font-size:11px}
.cost121b4-donut-legend i{width:9px;height:9px;border-radius:50%}.cost121b4-donut-legend b{font-size:11px}.cost121b4-donut-legend small{grid-column:2/4;color:#72808a}
.cost121b4-warning{margin-top:14px;background:#fff8e6;border-color:#efd28b}
@media(max-width:900px){.cost121b4-chart-grid{grid-template-columns:1fr}.cost121b4-bar-row{grid-template-columns:135px 1fr}.cost121b4-donut-wrap{grid-template-columns:150px 1fr}.cost121b4-donut{width:145px}}
@media(max-width:560px){.cost121b4-chart-card{padding:12px}.cost121b4-bar-row{grid-template-columns:1fr;gap:4px}.cost121b4-bar-track{padding-right:58px}.cost121b4-donut-wrap{grid-template-columns:1fr}.cost121b4-donut{margin:auto}.cost121b4-donut-legend{margin-top:4px}}

/* Phase 12.1B.5 — month/YTD YoY + reconciliation */
.cost121b4-bar-legend .py{background:#aeb8be}
.cost121b4-bar.prior{background:#aeb8be}
.cost121b5-period+.cost121b5-period{margin-top:26px;padding-top:22px;border-top:2px solid #edf1f2}
.cost121b5-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 12px}
.cost121b5-title h3{margin:0;color:#0d6670;font-size:17px}.cost121b5-title p{margin:0;color:#718087;font-size:11px;font-weight:700}
.cost121b5-recon{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;padding:10px 12px;border-radius:10px;font-size:11px}
.cost121b5-recon.ok{background:#eef8f3;border:1px solid #b9dfcc}.cost121b5-recon.warn{background:#fff7e8;border:1px solid #ecd08c}
.cost121b5-recon b{font-size:12px}
@media(max-width:560px){.cost121b5-title{display:block}.cost121b5-title p{margin-top:3px}.cost121b5-recon{display:grid;grid-template-columns:1fr 1fr}}

/* Phase 12.1B.7D9 — Cost B03/B04 input */
.cost-input-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.cost-input-summary article{border:1px solid #d8e7eb;border-radius:12px;padding:12px;background:#f8fcfd}
.cost-input-summary span{display:block;font-size:12px;color:#58717c}.cost-input-summary strong{display:block;margin-top:5px;font-size:20px;color:#083d4b}
.cost-input-section td{background:#eaf6f8!important;color:#075266;font-weight:700;border-top:2px solid #b8dce3}
.cost-input-table input{width:100%;min-width:130px;padding:8px;border:1px solid #cedce1;border-radius:8px}
@media(max-width:760px){.cost-input-summary{grid-template-columns:1fr 1fr}}

/* Phase 12.1B.7D8D — NAVI management text report */
.navi-management-report{font-size:14px;line-height:1.55;color:#193642}
.navi-management-title{font-size:15px;font-weight:800;color:#006b5c;margin:2px 0 10px}
.navi-management-report p{margin:6px 0 8px}
.navi-management-lines{margin:6px 0 12px;padding-left:18px}
.navi-management-lines li{margin:5px 0}
.navi-management-lines li.up{color:#087c54}.navi-management-lines li.down{color:#bd2c2c}.navi-management-lines li.flat{color:#425d68}.navi-management-lines li.na{color:#82929a}
.navi-report-number{color:#172b3a;font-weight:800}
.navi-management-ytd{margin-top:10px;padding-top:9px;border-top:1px solid #dce8eb}
.navi-bubble.text-report,.floating-navi-bubble.text-report{padding:12px 14px!important}
.floating-navi-bubble .navi-management-report{font-size:13px}
.floating-navi-bubble .navi-management-title{font-size:14px}
/* Phase 12.1B.7D8G - handheld quick input */
.quick-input-panel .panel-body{padding:14px}.quick-input-list{display:grid;gap:8px;max-width:980px}.quick-input-row{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(150px,220px);align-items:center;gap:10px;padding:10px 12px;border:1px solid #d9e6ee;border-radius:12px;background:#fff}.quick-input-index{font-weight:800;color:#78909c;text-align:center}.quick-input-label{min-width:0;color:#15314b;line-height:1.3}.quick-input-label b{font-size:14px}.quick-input-value{width:100%;box-sizing:border-box;min-height:46px;border:1.5px solid #9fc5d6;border-radius:10px;padding:10px 12px;font-size:17px;font-weight:800;text-align:right;color:#075b77;background:#f9fdff}.quick-input-value:focus{outline:3px solid rgba(0,117,141,.14);border-color:#00758D}.quick-input-savebar{position:sticky;bottom:72px;z-index:6;padding:12px 0 4px;background:linear-gradient(transparent,#fff 30%)}.quick-input-savebar .button{width:100%;min-height:48px}.rev-input-panel .rev-input-actions{position:sticky;bottom:72px;z-index:6;background:#fff;padding:10px 0}.rev-input-panel .rev-input-actions .button{width:100%;min-height:48px}
@media(max-width:700px){.quick-input-panel .panel-head{display:block}.quick-input-panel .panel-head .actions{margin-top:10px;display:flex;gap:8px}.quick-input-row{grid-template-columns:28px minmax(0,1fr) 128px;padding:9px 8px;gap:7px}.quick-input-label b{font-size:13px}.quick-input-value{font-size:16px;min-height:44px;padding:8px}.rev-input-period-bar,.rev-input-period-controls{max-width:100%;overflow:visible}.rev-input-tabs{overflow-x:auto;white-space:nowrap}.rev-input-panel .panel-body{padding:10px}.rev-input-panel .rev-input-missing,.rev-input-panel .rev-input-status{font-size:12px}}
@media(max-width:420px){.quick-input-row{grid-template-columns:24px minmax(0,1fr) 112px}.quick-input-index{font-size:12px}.quick-input-label b{font-size:12.5px}.quick-input-value{font-size:15px;padding:7px}}


/* ===== D8J15 NAVI compact chat bubble ===== */
.floating-navi-message.assistant .floating-navi-bubble.text-report{
  position:relative!important;
  width:fit-content!important;
  max-width:min(92%,620px)!important;
  padding:12px 14px 30px!important;
  background:#fff!important;
  border:1px solid #d9e5ee!important;
  border-radius:16px!important;
  box-shadow:0 2px 8px rgba(20,54,80,.06)!important;
  overflow:hidden!important;
}
.floating-navi-message.assistant .floating-navi-bubble.text-report .floating-navi-tag{margin:0 0 7px 0!important}
.navi-management-report{color:#193642}
.navi-management-report .navi-report-number{color:#172b3a!important;font-weight:800}
.navi-management-lines li.up{color:#087c54!important}
.navi-management-lines li.down{color:#bd2c2c!important}
.navi-management-lines li.flat{color:#425d68!important}
.navi-management-lines li.na{color:#82929a!important}
.navi-copy-button{
  position:absolute;right:7px;bottom:6px;border:0;background:transparent;color:#738795;
  font-size:10px;line-height:1;padding:4px 6px;border-radius:7px;cursor:pointer
}
.navi-copy-button:hover{background:#eef4f8;color:#174d72}
.navi-copy-button.copied{color:#087c54;font-weight:800}
@media(max-width:650px){
 .floating-navi-message.assistant .floating-navi-bubble.text-report{max-width:96%!important;padding:11px 12px 29px!important}
 .navi-management-title{font-size:13px!important}
 .floating-navi-bubble .navi-management-report{font-size:12px!important;line-height:1.5}
}

/* D8J18B required-completeness validation */
.input-required-missing{border-color:#d93025!important;background:#fff4f3!important;box-shadow:0 0 0 2px rgba(217,48,37,.08)}
.input-required-missing .quick-input-value,.input-required-missing .prod-input-value{border-color:#d93025!important;background:#fff!important;outline:2px solid rgba(217,48,37,.12)}

/* D8J18N3F8 Revenue field horizontal expandable bars */
.rev-field-horizontal{display:grid;gap:10px}.rev-field-hitem{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.rev-field-hmain{width:100%;display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(220px,3fr) auto 58px;gap:12px;align-items:center;border:0;background:transparent;padding:12px 14px;text-align:left;color:inherit}.rev-field-hitem.expandable .rev-field-hmain{cursor:pointer}.rev-field-hmain:disabled{opacity:1;cursor:default}.rev-field-hlabel{display:grid;gap:2px}.rev-field-hlabel b{font-size:11px}.rev-field-hlabel small{font-size:8px;color:var(--muted)}.rev-field-hbar{height:16px;background:#edf3f6;border-radius:999px;overflow:hidden}.rev-field-hbar i{display:block;height:100%;background:#16849a;border-radius:999px}.rev-field-hmain>strong{font-size:11px;white-space:nowrap}.rev-field-hmain>em{font-style:normal;font-size:10px;font-weight:800;color:#0d7187;text-align:right}.rev-field-hitem.open{border-color:#9bc8d3;box-shadow:0 5px 18px rgba(13,113,135,.08)}.rev-field-detail{border-top:1px solid var(--line);padding:12px 14px 14px;background:#f8fbfc}.rev-field-detail-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:10px}.rev-field-detail-head span{color:var(--muted)}@media(max-width:760px){.rev-field-hmain{grid-template-columns:1fr auto}.rev-field-hbar{grid-column:1/-1;grid-row:2}.rev-field-hmain>em{grid-column:2;grid-row:1}}

/* D8J18N3F9 key-service revenue analytics */
.rev-key-services{margin-top:16px}.rev-key-service{margin-top:12px}.rev-key-service-grid{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(520px,1.35fr);gap:20px;align-items:stretch}.rev-key-bars{display:grid;grid-template-columns:1fr 1fr;gap:14px;height:250px}.rev-key-bar-group{display:grid;grid-template-rows:auto 1fr;min-width:0}.rev-key-bar-group>b{text-align:center;font-size:11px;color:#183c59;margin-bottom:8px}.rev-key-bar-set{display:flex;align-items:end;justify-content:center;gap:8px;border-bottom:1px solid #d9e5eb;height:215px}.rev-key-bar-col{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}.rev-key-bar-col strong{font-size:8px;color:#38556b;white-space:nowrap}.rev-key-bar-col i{width:min(34px,70%);min-height:3px;border-radius:6px 6px 0 0;margin:5px 0}.rev-key-bar-col small{font-size:7px;line-height:1.15;text-align:center;min-height:28px}.rev-key-bar-col.s0 i{background:#93aabd}.rev-key-bar-col.s1 i{background:#e3a52d}.rev-key-bar-col.s2 i{background:#087d99}.rev-key-trend{height:250px;position:relative}.rev-key-trend svg{width:100%;height:225px;overflow:visible}.rev-key-trend svg text{font-size:9px;fill:#627a8b}.rev-key-trend polyline{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.rev-key-trend polyline.now{stroke:#087d99}.rev-key-trend polyline.prior{stroke:#8799a8;stroke-width:3;stroke-dasharray:8 7}.rev-key-trend circle.now{fill:#087d99}.rev-key-trend circle.prior{fill:#fff;stroke:#8799a8;stroke-width:2}.rev-key-trend-legend{display:flex;gap:15px;justify-content:flex-end;font-size:9px}.rev-key-trend-legend span{display:flex;align-items:center;gap:5px}.rev-key-trend-legend i{width:22px;border-top:3px solid #087d99}.rev-key-trend-legend i.prior{border-top-color:#8799a8;border-top-style:dashed}@media(max-width:1150px){.rev-key-service-grid{grid-template-columns:1fr}.rev-key-bars{height:235px}}

/* D8J18N3F10 key-service visual zones + persistent point labels */
.rev-key-services{padding:14px;border-radius:18px;background:linear-gradient(180deg,rgba(0,117,141,.055),rgba(208,155,44,.035));border:1px solid rgba(0,117,141,.12)}
.rev-key-service{border:1px solid rgba(0,117,141,.16);box-shadow:none;overflow:hidden}
.rev-key-service:nth-of-type(2){background:rgba(0,117,141,.045)}.rev-key-service:nth-of-type(3){background:rgba(208,155,44,.055)}.rev-key-service:nth-of-type(4){background:rgba(24,145,122,.05)}.rev-key-service:nth-of-type(5){background:rgba(135,89,170,.05)}.rev-key-service:nth-of-type(6){background:rgba(54,110,190,.045)}
.rev-key-service>.panel-head{border-bottom:1px solid rgba(0,117,141,.12)}
.rev-key-bar-col.s0 i{background:#6f87a0}.rev-key-bar-col.s1 i{background:#d09b2c}.rev-key-bar-col.s2 i{background:#00758d}
.rev-key-trend polyline.now{stroke:#00758d}.rev-key-trend polyline.prior{stroke:#7d8791;stroke-dasharray:9 7}.rev-key-trend circle.now{fill:#00758d;stroke:#fff;stroke-width:1.5}.rev-key-trend circle.prior{fill:#fff;stroke:#7d8791;stroke-width:2}
.rev-key-point{cursor:pointer;outline:none}.rev-key-point:focus circle{stroke:#d09b2c;stroke-width:4}.rev-key-point-label{display:none;pointer-events:none}.rev-key-point.selected .rev-key-point-label{display:block}.rev-key-point-label rect{fill:#fff;stroke:rgba(0,117,141,.35);stroke-width:1}.rev-key-point-label text{fill:#16364d!important;font-size:10px!important;font-weight:800}

/* D8J18N3F10D — Revenue executive chart refinement */
.rev-key-services{margin-top:22px;padding:22px;border-radius:22px;background:#f7fafb;border:1px solid #e2ebef}
.rev-key-services-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;padding:2px 4px 10px}
.rev-key-services-head h2{margin:4px 0 5px;font-size:20px;color:#17384b}.rev-key-services-head p{margin:0;color:#718391;font-size:11px}
.rev-key-kicker{font-size:9px;font-weight:800;letter-spacing:.13em;color:#00758d}.rev-key-period-badge{background:#fff;border:1px solid #dbe8ec;border-radius:999px;padding:7px 12px;font-size:10px;font-weight:800;color:#00758d;box-shadow:0 2px 8px rgba(31,64,82,.04)}
.rev-key-service{margin-top:14px!important;background:#fff!important;border:1px solid #e1e9ed!important;border-radius:18px!important;box-shadow:0 6px 22px rgba(32,62,78,.055)!important;overflow:hidden}
.rev-key-service-head{padding:15px 18px 11px;border-bottom:1px solid #edf2f4}.rev-key-service-head>div{display:flex;align-items:center;gap:11px}.rev-key-service-head h2{margin:0 0 3px;font-size:14px;color:#193b4d}.rev-key-service-head p{margin:0;font-size:9px;color:#8a9aa5}
.rev-key-index{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eef7f8;color:#00758d;font-size:9px;font-weight:900}
.rev-key-service .panel-body{padding:16px 18px 18px}.rev-key-service-grid{grid-template-columns:minmax(360px,.92fr) minmax(500px,1.35fr);gap:18px}
.rev-key-chart-block{min-width:0;padding:13px 14px 8px;border:1px solid #edf2f4;border-radius:14px;background:#fcfdfd}.rev-key-chart-block.trend{background:#fff}.rev-key-chart-block>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.rev-key-chart-block>header b{font-size:10px;color:#29495b}.rev-key-chart-block>header span{font-size:8px;color:#8a9aa5}
.rev-key-bars{height:222px;gap:18px}.rev-key-bar-set{height:186px;border-bottom:1px solid #dfe8ec;gap:9px}.rev-key-bar-group>b{font-size:9px;color:#526b7b}.rev-key-bar-col strong{font-size:8px;font-weight:700;color:#3d5868}.rev-key-bar-col small{font-size:7px;color:#738793;min-height:24px}.rev-key-bar-col i{width:min(30px,68%);border-radius:5px 5px 1px 1px;opacity:.92}
.rev-key-bar-col.s0 i{background:#9aaab5}.rev-key-bar-col.s1 i{background:#d09b2c}.rev-key-bar-col.s2 i{background:#00758d}
.rev-key-trend{height:222px}.rev-key-trend svg{height:198px}.rev-key-trend svg text{font-size:8px;fill:#82939e}.rev-key-trend polyline{stroke-width:3!important}.rev-key-trend polyline.prior{stroke-width:2!important;stroke:#9aa6ae!important;stroke-dasharray:7 7!important}.rev-key-trend circle.now{r:4}.rev-key-trend circle.prior{r:3.5}.rev-key-trend-legend{font-size:8px;color:#607785;gap:12px}.rev-key-trend-legend i{width:18px;border-top-width:2px}
@media(max-width:1150px){.rev-key-service-grid{grid-template-columns:1fr}.rev-key-chart-block{padding:12px}.rev-key-services{padding:14px}.rev-key-services-head{padding:2px 2px 8px}}

/* D8J18N3F10F Revenue input business groups */
.rev-business-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 14px}.rev-business-tabs button{border:1px solid #dbe5e8;background:#f7fafb;border-radius:10px;padding:10px 12px;font-weight:700;cursor:pointer}.rev-business-tabs button.active{background:#00758D;color:#fff;border-color:#00758D}.rev-input-catalog-actions{display:flex;align-items:center;gap:12px;margin:0 0 12px}.rev-mobile-business-groups{display:none}.rev-desktop-business-list{display:block}
@media(max-width:700px){.rev-business-tabs{display:none}.rev-desktop-business-list{display:none}.rev-mobile-business-groups{display:block}.rev-mobile-group{display:block;margin:0 0 10px}.rev-mobile-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;padding:12px 14px;background:#f2f7f8;color:#17384b;border:0;border-left:4px solid #00758D;border-radius:8px;font:inherit;font-weight:800;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.rev-mobile-group-toggle b{font-size:20px;line-height:1;color:#00758D}.rev-mobile-group.active .rev-mobile-group-toggle{background:#e7f3f5;color:#005f73}.rev-mobile-group:not(.active) .quick-input-list{display:none}.rev-input-catalog-actions{align-items:flex-start;flex-direction:column}}

/* D8J18N3F10F3 - explicit edit pencil for existing revenue values */
.rev-input-editor{display:flex;align-items:center;gap:6px;min-width:0}.rev-input-editor .quick-input-value{min-width:0}.rev-edit-value{flex:0 0 42px;width:42px;height:42px;border:1px solid #c9dce3;border-radius:10px;background:#f2f7f8;cursor:pointer;font-size:18px;line-height:1;touch-action:manipulation}.rev-edit-value:hover{background:#e7f3f5}.rev-row-has-value:not(.rev-row-editing) .quick-input-value:disabled{opacity:1;color:#17384b;background:#f3f6f7;border-color:#d7e1e5}.rev-row-editing{border-color:#00758D;box-shadow:0 0 0 2px rgba(0,117,141,.08)}
@media(max-width:700px){.rev-input-editor{gap:4px}.rev-edit-value{flex-basis:38px;width:38px;height:40px;padding:0}.quick-input-row{grid-template-columns:28px minmax(0,1fr) minmax(145px,190px)}}
@media(max-width:420px){.quick-input-row{grid-template-columns:24px minmax(0,1fr) minmax(132px,165px)}.rev-edit-value{flex-basis:36px;width:36px}}
/* D8J18N3F10F7 - revenue tab control total */
.rev-tab-check-total{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:10px;padding:12px 16px;border:2px solid #c62828;border-radius:12px;background:#fff5f5;color:#b71c1c;font-weight:800}
.rev-tab-check-total strong{font-size:1.05rem;color:#c62828}

/* F10F9 internal revenue management note */
.rev-management-note{display:block;margin-top:4px;font-size:11px;font-weight:700;color:#b42318;line-height:1.3}

/* F10F13: internal route revenue is a memo child of Doanh thu xe tuyen, never an additive peer. */
.rev-internal-memo{padding-left:18px;font-style:italic;color:#526675}.rev-internal-memo b{font-style:italic;font-weight:700}.rev-internal-memo .rev-management-note{font-style:italic;color:#667b88;font-weight:600}
