/* AIANA 572529108e38 — собрано build/stamp.py из assets/css/*.css. Правьте исходники, не этот файл. */
/*! tokens.css */
:root{
--c-apps:#77AB5F;
--c-devices:#FFB200;
--c-cloud:#FA7D00;
--c-hardware:#E4003A;
--c-sec:#6B4B3E;
--c-services:#31393C;
--accent:var(--c-cloud);
--accent-hot:var(--c-hardware);
--st-good:var(--c-apps);
--st-watch:var(--c-devices);
--st-serious:var(--c-cloud);
--st-critical:var(--c-hardware);
--pole-worse:var(--st-critical);
--pole-better:var(--st-good);
--pole-plain:rgba(26,27,31,.42);
--pole-zero:var(--ink-4);
--ink:#1A1B1F;
--ink-2:rgba(26,27,31,.86);
--ink-3:rgba(26,27,31,.56);
--ink-4:rgba(26,27,31,.22);
--bg:#F4F4F6;
--bg-card:#FFFFFF;
--bg-soft:#F6F6F8;
--border:rgba(26,27,31,.08);
--font:'Roboto',system-ui,sans-serif;
--fs-title:2.15rem;
--fs-sub:1.25rem;
--fs-body:1rem;
--fs-small:.8125rem;
--gap:2rem;
--rail:17rem;
--radius-panel:1.125rem;
--radius-card:.75rem;
--radius-btn:.625rem;
--pad-panel:1.375rem;
--shadow:0 1px 2px rgba(26,27,31,.04),0 12px 32px -12px rgba(26,27,31,.18);
--shadow-soft:0 1px 2px rgba(26,27,31,.04);
--ease:cubic-bezier(.2,.8,.2,1);
--topbar:3.75rem;
}
[data-segment="apps"]{--segment-color:var(--c-apps)}
[data-segment="devices"]{--segment-color:var(--c-devices)}
[data-segment="cloud"]{--segment-color:var(--c-cloud)}
[data-segment="hardware"]{--segment-color:var(--c-hardware)}
[data-segment="sec"]{--segment-color:var(--c-sec)}
[data-segment="services"]{--segment-color:var(--c-services)}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{
font-family:var(--font);
font-size:var(--fs-body);
line-height:1;
color:var(--ink);
background:var(--bg);
-webkit-font-smoothing:antialiased;
font-variant-numeric:tabular-nums;
}
a{color:var(--accent);text-decoration:none;transition:color .18s var(--ease)}
a:hover{color:var(--accent-hot)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select{font:inherit;color:inherit}
::selection{background:#FFD9B0;color:var(--ink)}
.logo{
font-weight:900;font-size:1.75rem;letter-spacing:-.035em;line-height:1;
color:var(--c-cloud);
}
.logo .cursor{color:var(--c-devices);margin-left:4px;animation:blink 1.05s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){
*{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
/*! app.css */
[hidden]{display:none!important}
.app{min-height:100vh}
.app-main{
margin-left:var(--rail);
min-height:100vh;
transition:margin-left .26s var(--ease);
}
.app.is-collapsed .app-main{margin-left:0}
.app-content{
padding:var(--gap);
max-width:110rem;
}
.sidebar{
position:fixed;top:0;left:0;bottom:0;width:var(--rail);z-index:50;
display:flex;flex-direction:column;
padding:1.5rem 1.25rem;
background:rgba(255,255,255,.72);
backdrop-filter:saturate(1.4) blur(14px);
border-right:1px solid var(--border);
transition:transform .26s var(--ease);
}
.app.is-collapsed .sidebar{transform:translateX(-100%)}
.sidebar-head{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}
.sidebar-toggle{
display:flex;align-items:center;gap:.5rem;
font-size:var(--fs-small);color:var(--ink-3);
padding:.375rem 0;
transition:color .18s var(--ease);
}
.sidebar-toggle:hover{color:var(--ink)}
.sidebar-toggle svg{width:1rem;height:1rem;flex:0 0 auto}
.sidebar-restore{
position:fixed;top:.875rem;left:.875rem;z-index:60;
display:none;place-items:center;
width:2.25rem;height:2.25rem;
border-radius:var(--radius-btn);
background:var(--bg-card);box-shadow:var(--shadow-soft);
color:var(--ink-3);
}
.app.is-collapsed .sidebar-restore{display:grid}
.app.is-collapsed .topbar{padding-left:3.5rem}
.sidebar-restore:hover{color:var(--ink)}
.sidebar-restore svg{width:1.125rem;height:1.125rem}
.nav{flex:1;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:.125rem}
.nav::-webkit-scrollbar{display:none}
.nav-group{
font-size:var(--fs-small);color:var(--ink-4);letter-spacing:.02em;
padding:1rem .5rem .375rem;
}
.nav-group:first-child{padding-top:.25rem}
.nav a{
display:flex;align-items:center;gap:.625rem;
padding:.5rem .625rem;border-radius:.6rem;
font-size:var(--fs-body);font-weight:400;color:var(--ink-2);
transition:background .16s var(--ease),color .16s var(--ease);
}
.nav a:hover{background:rgba(26,27,31,.05);color:var(--ink)}
.nav a.is-active{background:rgba(250,125,0,.10);color:var(--ink)}
.nav a.is-active .nav-icon{color:var(--accent)}
.nav-icon{width:1.0625rem;height:1.0625rem;flex:0 0 auto;color:var(--ink-3)}
.sidebar-foot{
margin-top:auto;padding-top:1rem;
font-size:var(--fs-small);color:var(--ink-4);line-height:1.4;
}
.sidebar-foot b{font-weight:500;color:var(--ink-3)}
.sidebar-build{
margin-top:.375rem;
font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
letter-spacing:-.02em;
color:var(--ink-4);cursor:help;
}
.topbar{
position:sticky;top:0;z-index:40;
display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;
min-height:var(--topbar);
padding:.625rem var(--gap);
background:rgba(244,244,246,.86);
backdrop-filter:saturate(1.4) blur(12px);
border-bottom:1px solid var(--border);
}
.topbar-search{
display:flex;align-items:center;gap:.5rem;
padding:.4375rem .75rem;min-width:14rem;
background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-btn);
color:var(--ink-3);
}
.topbar-search:focus-within{border-color:var(--accent)}
.topbar-search svg{width:1rem;height:1rem;flex:0 0 auto}
.topbar-search input{flex:1;border:0;outline:0;background:none;font-size:var(--fs-small);color:var(--ink)}
.topbar-search input::placeholder{color:var(--ink-4)}
.topbar-spacer{flex:1}
.btn{
display:inline-flex;align-items:center;gap:.4375rem;
padding:.4375rem .75rem;border-radius:var(--radius-btn);
font-size:var(--fs-small);color:var(--ink-2);
background:var(--bg-card);border:1px solid var(--border);
transition:border-color .16s var(--ease),color .16s var(--ease);
}
.btn:hover{border-color:var(--ink-4);color:var(--ink)}
.btn svg{width:1rem;height:1rem}
.btn.is-on{border-color:var(--accent);color:var(--accent)}
.btn-count{
min-width:1.125rem;padding:0 .3125rem;border-radius:999px;
background:var(--accent);color:#fff;font-size:var(--fs-small);font-weight:600;line-height:1.125rem;text-align:center;
}
.chips{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center}
.chip{
display:inline-flex;align-items:center;gap:.4375rem;
padding:.3125rem .5rem .3125rem .625rem;
border-radius:999px;background:var(--bg-card);border:1px solid var(--border);
font-size:var(--fs-small);color:var(--ink-2);
}
.chip b{font-weight:500}
.chip.is-idle{color:var(--ink-3);border-style:dashed}
.chip-x{display:grid;place-items:center;width:1rem;height:1rem;border-radius:999px;color:var(--ink-3)}
.chip-x:hover{background:rgba(26,27,31,.06);color:var(--ink)}
.chip-x svg{width:.625rem;height:.625rem}
.chips-clear{font-size:var(--fs-small);color:var(--ink-3)}
.chips-clear:hover{color:var(--accent-hot)}
.panel{
background:var(--bg-card);
border-radius:var(--radius-panel);
box-shadow:var(--shadow);
padding:var(--pad-panel);
display:flex;flex-direction:column;min-height:0;
}
.panel-head{
display:flex;align-items:baseline;justify-content:space-between;
gap:.75rem 1rem;flex-wrap:wrap;margin-bottom:1rem;
}
.panel-head > *{min-width:0}
.panel-title{font-size:var(--fs-sub);font-weight:600;line-height:1.4;color:var(--ink)}
.panel-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.panel-body{flex:1;min-height:0}
.panel-foot{margin-top:1rem;font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.grid{display:grid;gap:var(--gap)}
.grid > *{min-width:0}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-23{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
@media (max-width:1100px){
.grid-2,.grid-3,.grid-23{grid-template-columns:minmax(0,1fr)}
}
.page-head{margin-bottom:var(--gap)}
.page-title{font-size:var(--fs-title);font-weight:700;line-height:1.1;color:var(--ink)}
.page-title .cursor{color:var(--c-devices);animation:blink 1.05s steps(1) infinite}
.page-title em{font-style:normal;color:var(--accent)}
.page-sub{margin-top:.5rem;font-size:var(--fs-body);color:var(--ink-3);line-height:1.35}
.loader{display:grid;place-items:center;min-height:60vh;gap:1rem;color:var(--ink-3)}
.loader .logo{font-size:2.5rem}
.loader-text{font-size:var(--fs-small)}
.empty{
display:grid;place-items:center;gap:.5rem;
padding:3rem 1rem;text-align:center;color:var(--ink-3);
}
.empty-title{font-size:var(--fs-sub);font-weight:600;color:var(--ink-2)}
.empty-note{font-size:var(--fs-small);max-width:26rem;line-height:1.35}
.fatal{
margin:var(--gap);padding:var(--pad-panel);
background:var(--bg-card);border-radius:var(--radius-panel);box-shadow:var(--shadow);
border-left:3px solid var(--accent-hot);
}
.fatal h2{font-size:var(--fs-sub);font-weight:600;margin-bottom:.5rem}
.fatal p{font-size:var(--fs-body);color:var(--ink-2);line-height:1.35}
.fatal code{font-size:var(--fs-small);color:var(--ink-3)}
.toast{
position:fixed;right:1.25rem;bottom:1.25rem;z-index:70;
display:flex;align-items:center;gap:.875rem;
padding:.875rem 1rem;
background:var(--bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow);
font-size:var(--fs-small);color:var(--ink-2);
animation:toast-in .26s var(--ease);
}
.toast b{font-weight:500;color:var(--ink)}
@keyframes toast-in{from{opacity:0;transform:translateY(.5rem)}}
.burger{
position:fixed;top:.75rem;left:.75rem;z-index:60;display:none;place-items:center;
width:2.5rem;height:2.5rem;border-radius:var(--radius-btn);
background:var(--bg-card);box-shadow:var(--shadow-soft);color:var(--ink-2);
}
.burger svg{width:1.25rem;height:1.25rem}
.scrim{
position:fixed;inset:0;z-index:45;
background:rgba(26,27,31,.32);
opacity:0;pointer-events:none;transition:opacity .2s var(--ease);
}
@media (max-width:960px){
:root{--gap:1.25rem;--rail:16rem}
.burger{display:grid}
.sidebar{transform:translateX(-100%)}
.app.is-menu-open .sidebar{transform:none}
.app.is-menu-open .scrim{opacity:1;pointer-events:auto}
.app-main{margin-left:0}
.sidebar-toggle,.sidebar-restore{display:none}
.app.is-collapsed .sidebar-restore{display:none}
.topbar{padding-left:4rem}
.app-content{padding:var(--gap) var(--gap) 3rem}
}
/*! components.css */
.kpi-row{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.kpi-row:has(> .kpi:nth-child(3):last-child),
.kpi-row:has(> .kpi:nth-child(4):last-child),
.kpi-row:has(> .kpi:nth-child(5):last-child),
.kpi-row:has(> .kpi:nth-child(6):last-child){grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){
.kpi-row:has(> .kpi:nth-child(4):last-child),
.kpi-row:has(> .kpi:nth-child(6):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:960px){
.kpi-row:has(> .kpi:nth-child(3):last-child),
.kpi-row:has(> .kpi:nth-child(5):last-child),
.kpi-row:has(> .kpi:nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1280px){
.kpi-row:has(> .kpi:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:1500px){
.kpi-row:has(> .kpi:nth-child(5):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (min-width:1800px){
.kpi-row:has(> .kpi:nth-child(6):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}
}
.kpi{
display:flex;flex-direction:column;gap:.375rem;
padding:var(--pad-panel);
background:var(--bg-card);border-radius:var(--radius-panel);box-shadow:var(--shadow);
}
.kpi-label{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;min-height:2.7em;min-height:2lh}
.kpi-value{font-size:var(--fs-title);font-weight:700;line-height:1.1;color:var(--ink)}
.kpi-delta{font-size:var(--fs-small);font-weight:500}
.kpi-delta.is-up{color:var(--c-apps)}
.kpi-delta.is-down{color:var(--c-hardware)}
.kpi-hint{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.kpi-row.is-hero{grid-template-columns:minmax(0,1fr)}
.kpi-row.is-hero .kpi{
display:grid;grid-template-columns:auto minmax(0,1fr);
align-items:baseline;column-gap:1rem;row-gap:.5rem;
padding:calc(var(--pad-panel) * 1.4) var(--pad-panel);
}
.kpi-row.is-hero .kpi > *:not(.kpi-value):not(.kpi-delta){grid-column:1/-1}
.kpi-row.is-hero .kpi-label,
.kpi-row.is-hero .kpi-hint{font-size:var(--fs-body)}
.kpi-row.is-hero .kpi-label{min-height:0}
.kpi-row.is-hero .kpi-value{font-size:clamp(var(--fs-title),6vw,calc(var(--fs-title) * 1.6))}
.kpi-row.is-hero .kpi-delta{font-size:var(--fs-sub);font-weight:600}
.kpi-stack{display:grid;gap:var(--gap)}
@media (max-width:640px){
.kpi-row.is-hero .kpi{grid-template-columns:minmax(0,1fr)}
.kpi-row.is-hero .kpi-delta{grid-column:1}
}
.kpi.is-accent{background:var(--c-hardware)}
.kpi.is-accent .kpi-value{color:#fff}
.kpi.is-accent .kpi-label,.kpi.is-accent .kpi-hint{color:rgba(255,255,255,.8)}
.kpi.is-accent .kpi-delta{color:#fff}
.coverage{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}
.coverage-bar{flex:1;height:3px;border-radius:999px;background:var(--bg-soft);overflow:hidden;max-width:5rem}
.coverage-fill{height:100%;border-radius:999px}
.coverage-text{font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap}
.note-overlap{
margin-top:.75rem;padding:.625rem .75rem;
background:var(--bg-soft);border-radius:var(--radius-card);
font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;
}
.slice-note{
display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
margin-top:.75rem;padding:.5rem .75rem;
border:1px solid var(--border);border-radius:var(--radius-card);
background:var(--bg-soft);
font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;
}
.slice-note > span{min-width:0;flex:1 1 20rem}
.barlist{display:flex;flex-direction:column;gap:.875rem}
.bar{display:flex;flex-direction:column;gap:.3125rem;width:100%;text-align:left}
.bar.is-clickable{border-radius:var(--radius-card);transition:opacity .16s var(--ease)}
.bar.is-clickable:hover{opacity:.72}
.bar-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.bar-label{
font-size:var(--fs-body);color:var(--ink-2);
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bar-value{font-size:var(--fs-body);font-weight:500;color:var(--ink);white-space:nowrap}
.bar-track{height:.5rem;border-radius:999px;background:var(--bg-soft);overflow:hidden}
.bar-fill{height:100%;border-radius:999px;transition:width .4s var(--ease)}
.bar-meta{font-size:var(--fs-small);color:var(--ink-3)}
.facets-wrap{position:relative}
.facets-panel{
position:absolute;top:calc(100% + .5rem);left:0;z-index:55;
width:min(46rem,calc(100vw - 3rem));
max-height:min(32rem,calc(100vh - 8rem));
display:flex;flex-direction:column;
background:var(--bg-card);border-radius:var(--radius-panel);box-shadow:var(--shadow);
overflow:hidden;
}
.facets-head{
display:flex;align-items:center;justify-content:space-between;
padding:.875rem var(--pad-panel);border-bottom:1px solid var(--border);
font-size:var(--fs-sub);font-weight:600;
}
.facets-body{
flex:1;min-height:0;overflow-y:auto;
padding:var(--pad-panel);
display:flex;flex-direction:column;gap:1.5rem;
background:
linear-gradient(to bottom,var(--bg-card) 40%,rgba(255,255,255,0)) top,
linear-gradient(to top,var(--bg-card) 40%,rgba(255,255,255,0)) bottom,
linear-gradient(to bottom,rgba(26,27,31,.12),rgba(255,255,255,0)) top,
linear-gradient(to top,rgba(26,27,31,.12),rgba(255,255,255,0)) bottom;
background-repeat:no-repeat;
background-size:100% 1.25rem,100% 1.25rem,100% .55rem,100% .55rem;
background-attachment:local,local,scroll,scroll;
}
.facets-body.is-below{mask-image:linear-gradient(to bottom,#000 calc(100% - 2.25rem),transparent)}
.facets-body.is-above{mask-image:linear-gradient(to top,#000 calc(100% - 2.25rem),transparent)}
.facets-body.is-above.is-below{
mask-image:linear-gradient(to bottom,transparent,#000 2.25rem,#000 calc(100% - 2.25rem),transparent);
}
.facets-group{display:flex;flex-direction:column;gap:.75rem;min-width:0}
.facets-group-title{
font-size:var(--fs-small);color:var(--ink-4);letter-spacing:.02em;
padding-bottom:.375rem;border-bottom:1px solid var(--border);
}
.facets-grid{
display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
align-content:start;
}
.facets-lock{padding-top:1rem;border-top:1px solid var(--border)}
.facet{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.facet-title{
display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;
font-size:var(--fs-small);font-weight:600;color:var(--ink);
text-transform:uppercase;letter-spacing:.06em;
}
.facet-reset{font-size:var(--fs-small);font-weight:400;color:var(--ink-3);text-transform:none;letter-spacing:0}
.facet-reset:hover{color:var(--accent-hot)}
.facet-list{
--facet-row:1.5rem;
--facet-gap:.125rem;
display:flex;flex-direction:column;gap:var(--facet-gap);
max-height:calc(7 * var(--facet-row) + 6 * var(--facet-gap));
overflow-y:auto;
background:
linear-gradient(to bottom,var(--bg-card) 40%,rgba(255,255,255,0)) top,
linear-gradient(to top,var(--bg-card) 40%,rgba(255,255,255,0)) bottom,
linear-gradient(to bottom,rgba(26,27,31,.12),rgba(255,255,255,0)) top,
linear-gradient(to top,rgba(26,27,31,.12),rgba(255,255,255,0)) bottom;
background-repeat:no-repeat;
background-size:100% 1rem,100% 1rem,100% .45rem,100% .45rem;
background-attachment:local,local,scroll,scroll;
}
.facet-list.is-all{max-height:none;overflow-y:visible;background:none}
.facet-list::-webkit-scrollbar{width:4px}
.facet-list::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:999px}
.facet-more{
align-self:flex-start;margin-top:.125rem;
font-size:var(--fs-small);color:var(--ink-3);text-align:left;
}
.facet-more:hover{color:var(--accent-hot)}
.facet-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.25rem}
.facet-option{
display:flex;align-items:center;gap:.5rem;
height:var(--facet-row,1.5rem);box-sizing:border-box;flex:0 0 auto;
padding:.3125rem .375rem;border-radius:.4rem;cursor:pointer;
font-size:var(--fs-small);color:var(--ink-2);
transition:background .14s var(--ease);
}
.facet-option:hover{background:var(--bg-soft)}
.facet-option.is-on{color:var(--ink);font-weight:500}
.facet-option input{accent-color:var(--accent);width:.875rem;height:.875rem;flex:0 0 auto}
.facet-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.facet-count{font-size:var(--fs-small);color:var(--ink-4)}
.facet-hint{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.facet-range{display:flex;align-items:center;gap:.375rem}
.facet-range-input{
width:4.5rem;padding:.375rem .5rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
font-size:var(--fs-small);background:var(--bg-card);
}
.facet-range-input:focus{outline:0;border-color:var(--accent)}
.facet-range-dash{color:var(--ink-4)}
.facet-apply{
padding:.375rem .625rem;border-radius:var(--radius-btn);
background:var(--bg-soft);font-size:var(--fs-small);color:var(--ink-2);
}
.facet-apply:hover{background:var(--ink-4);color:var(--ink)}
.table-wrap{
overflow-x:auto;
background:
linear-gradient(to right,var(--bg-card) 30%,rgba(255,255,255,0)) left center,
linear-gradient(to left,var(--bg-card) 30%,rgba(255,255,255,0)) right center,
linear-gradient(to right,rgba(26,27,31,.10),rgba(255,255,255,0)) left center,
linear-gradient(to left,rgba(26,27,31,.10),rgba(255,255,255,0)) right center;
background-repeat:no-repeat;
background-size:2.5rem 100%,2.5rem 100%,.75rem 100%,.75rem 100%;
background-attachment:local,local,scroll,scroll;
}
table.data{width:100%;border-collapse:collapse;font-size:var(--fs-body)}
table.data th,table.data td{padding:.625rem .75rem;text-align:left;white-space:nowrap}
table.data th{
font-weight:600;color:var(--ink-3);
border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);
}
table.data td{border-bottom:1px solid var(--border);color:var(--ink-2)}
table.data tr:last-child td{border-bottom:0}
table.data .num{text-align:right;font-variant-numeric:tabular-nums}
table.data .name{color:var(--ink);font-weight:500;white-space:normal;min-width:12rem}
table.data tbody tr:hover td{background:var(--bg-soft)}
.dot{display:inline-block;width:.5rem;height:.5rem;border-radius:999px;margin-right:.5rem;vertical-align:middle}
.stub{
display:flex;flex-direction:column;gap:.75rem;
padding:2.5rem var(--pad-panel);
background:var(--bg-card);border-radius:var(--radius-panel);box-shadow:var(--shadow);
}
.stub-title{font-size:var(--fs-sub);font-weight:600}
.stub-text{font-size:var(--fs-body);color:var(--ink-3);line-height:1.35;max-width:45rem}
.stub-list{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.25rem}
.stub-list span{
padding:.25rem .5rem;border-radius:999px;
background:var(--bg-soft);font-size:var(--fs-small);color:var(--ink-3);
}
.panel-heading{margin:0}
.panel-fold-main{flex:1 1 auto;min-width:0}
.panel-fold-head{display:flex;min-width:0;font:inherit}
.panel-fold-head > .panel-fold{flex:1 1 auto;min-width:0}
.panel-fold-note{padding-left:1.5rem}
.panel.is-open > .panel-head .panel-fold .panel-fold-caret{transform:none}
/*! access-path.css */
.acc-from-icon{width:1rem;height:1rem;flex:none;color:var(--ink-4)}
.acc-from-link{
flex:none;color:var(--accent);
text-decoration:underline;text-underline-offset:.1875rem;
}
.acc-from-link:hover{color:var(--accent-hot)}
.acc-role{
margin-top:.75rem;
font-size:var(--fs-small);color:var(--ink-3);line-height:1.4;
}
.acc-gain{
list-style:none;
display:flex;flex-direction:column;gap:.5rem;
max-width:52rem;
}
.acc-gain-item{
position:relative;padding-left:.875rem;
font-size:var(--fs-body);line-height:1.45;color:var(--ink-2);
}
.acc-gain-item::before{
content:'';position:absolute;left:0;top:.6875rem;
width:.4375rem;height:1px;background:var(--accent);
}
.acc-form{display:flex;flex-direction:column;gap:.875rem}
.acc-form-wait{font-size:var(--fs-small);color:var(--ink-3)}
.acc-mail{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}
.acc-mail-text{font-size:var(--fs-small);line-height:1.4;color:var(--ink-2);max-width:44rem}
.topbar-account{margin-left:auto}
/*! access.css */
.preview{display:flex;flex-direction:column;gap:var(--gap)}
.preview-head{max-width:52rem}
.preview-kicker{
display:inline-flex;align-items:center;gap:.4375rem;
margin-bottom:.625rem;
font-size:var(--fs-small);color:var(--ink-3);
}
.preview-kicker svg{width:1rem;height:1rem}
.preview-title{font-size:var(--fs-title);font-weight:700;line-height:1.1;color:var(--ink)}
.preview-reason{margin-top:.625rem;font-size:var(--fs-body);color:var(--ink-3);line-height:1.35}
.preview-caption{margin-bottom:.75rem;font-size:var(--fs-small);color:var(--ink-3)}
.preview-grid{display:flex;flex-direction:column;gap:.125rem}
.preview-row{
display:grid;align-items:center;gap:.75rem;
padding:.5rem .25rem;
border-bottom:1px solid var(--border);
}
.preview-row:last-child{border-bottom:0}
.preview-row.is-head{
padding-bottom:.4375rem;
font-size:var(--fs-small);color:var(--ink-3);
}
.preview-row.is-rest{border-bottom:0;color:var(--ink-4)}
.preview-cell{font-size:var(--fs-small);color:var(--ink-4);min-width:0}
.preview-cell.is-name{
color:var(--ink-2);
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.preview-row.is-head .preview-cell.is-name{color:var(--ink-3)}
.preview-row.is-rest .preview-cell.is-name{color:var(--ink-3)}
.preview-bar{
display:block;height:.5rem;border-radius:999px;
background:var(--ink-4);opacity:.5;
}
.preview-act{display:flex;flex-direction:column;gap:.75rem}
.preview-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}
.btn.is-accent{
background:var(--accent);border-color:var(--accent);color:#fff;
}
.btn.is-accent:hover{border-color:var(--accent-hot);background:var(--accent-hot);color:#fff}
.preview-note{
font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;
max-width:42rem;
}
/*! badge.css */
.rank-badge{
display:inline-flex;flex-direction:column;gap:.3125rem;
margin-top:var(--pad-panel);
padding:1rem 1.25rem 1rem 1.5rem;
max-width:38rem;
position:relative;
border-radius:var(--radius-panel);
background:var(--ink);
box-shadow:var(--shadow);
--badge-mark:var(--accent);
}
.rank-badge::before{
content:'';position:absolute;left:0;top:.875rem;bottom:.875rem;width:.25rem;
border-radius:0 .25rem .25rem 0;
background:var(--badge-mark);
}
.rank-badge-line{
font-size:var(--fs-sub);font-weight:700;line-height:1.15;
color:#FFFFFF;
letter-spacing:-.01em;
}
.rank-badge-source{
font-size:var(--fs-small);line-height:1.35;
color:rgba(255,255,255,.72);
}
.rank-badge-basis{
font-size:var(--fs-small);line-height:1.35;
color:rgba(255,255,255,.52);
}
.rank-plain{
margin-top:var(--pad-panel);
max-width:52rem;
font-size:var(--fs-small);line-height:1.45;
color:var(--ink-3);
}
@media print{
.rank-badge{
background:none;box-shadow:none;
border:1px solid var(--ink-4);
padding-left:1.25rem;
}
.rank-badge::before{background:var(--badge-mark)}
.rank-badge-line{color:var(--ink)}
.rank-badge-source{color:var(--ink-2)}
.rank-badge-basis{color:var(--ink-3)}
}
/*! card.css */
.card-head{
display:flex;align-items:flex-start;justify-content:space-between;
gap:var(--gap);flex-wrap:wrap;
}
.card-head-main{flex:1 1 28rem;min-width:0}
.card-aside{
flex:0 1 20rem;min-width:0;
display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;
}
.rank-hero{
width:100%;
background:var(--bg-card);
border-radius:var(--radius-panel);
box-shadow:var(--shadow);
padding:var(--pad-panel);
display:flex;flex-direction:column;gap:.25rem;
}
.rank-hero-label{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.rank-hero-value{font-size:var(--fs-title);font-weight:700;line-height:1.1;color:var(--ink)}
.rank-hero-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.rank-hero.is-empty .rank-hero-label{margin-bottom:.25rem}
.kpi-spark{margin-top:.375rem}
.kpi-spark .chart{margin:0}
.card-chart{min-height:16rem}
.bar.is-me .bar-label{font-weight:600;color:var(--ink)}
.bar.is-me .bar-meta{color:var(--ink-2)}
.panel-fold{
display:flex;align-items:flex-start;gap:.5rem;
flex:1 1 auto;min-width:0;
text-align:left;color:inherit;
}
.panel-fold:hover .panel-title{color:var(--accent)}
.panel-fold:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-card)}
.panel-fold-caret{
flex:0 0 auto;width:1rem;height:1rem;margin-top:.28rem;color:var(--ink-3);
transform:rotate(-90deg);
transition:transform .16s var(--ease);
}
.panel.is-open > .panel-head > .panel-fold .panel-fold-caret{transform:none}
.panel.is-fold:not(.is-open) > .panel-head{margin-bottom:0}
.panel.is-nest{background:none;box-shadow:none;padding:0}
.panel.is-nest > .panel-head{
background:var(--bg-card);
border-radius:var(--radius-panel);
box-shadow:var(--shadow);
padding:var(--pad-panel);
margin-bottom:0;
}
.panel.is-nest.is-open > .panel-head{margin-bottom:var(--gap)}
@media (prefers-reduced-motion:reduce){
.panel-fold-caret{transition:none}
}
/*! changelog.css */
.chg-records{display:flex;flex-direction:column;gap:.75rem}
.chg-record{display:flex;align-items:baseline;gap:.875rem}
.chg-record-value{
flex:0 0 3.5rem;
text-align:right;
font-size:var(--fs-sub);font-weight:600;
font-variant-numeric:tabular-nums;
color:var(--ink);
}
.chg-record-value.is-zero{color:var(--ink-4);font-weight:400}
.chg-record-body{min-width:0}
.chg-record-label{font-size:var(--fs-body);color:var(--ink-2)}
.chg-record-hint{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.chg-lists{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));
gap:1.25rem;
}
.chg-list{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.chg-list-head{
display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;
padding-bottom:.375rem;
border-bottom:1px solid var(--border);
}
.chg-list-title{font-size:var(--fs-body);font-weight:500;color:var(--ink)}
.chg-list-count{font-size:var(--fs-small);color:var(--ink-3);font-variant-numeric:tabular-nums}
.chg-list-body{
display:flex;flex-direction:column;gap:.25rem;
max-height:18rem;overflow-y:auto;
font-size:var(--fs-small);color:var(--ink-2);line-height:1.4;
}
.chg-list-body::-webkit-scrollbar{width:4px}
.chg-list-body::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:999px}
.chg-list-body li{list-style:none}
.chg-list-empty{font-size:var(--fs-small);color:var(--ink-4)}
.chg-list-more{font-size:var(--fs-small);color:var(--ink-3)}
table.data td.num.is-up{color:var(--c-apps)}
table.data td.num.is-down{color:var(--c-hardware)}
.rel{display:flex;flex-direction:column;gap:.75rem}
.rel-summary{
font-size:var(--fs-body);color:var(--ink-2);line-height:1.45;
max-width:60rem;
}
.rel-changes{display:flex;flex-direction:column;gap:.5rem;max-width:60rem}
.rel-changes li{
list-style:none;
position:relative;
padding-left:1.125rem;
font-size:var(--fs-body);color:var(--ink-2);line-height:1.45;
}
.rel-changes li::before{
content:"—";
position:absolute;left:0;top:0;
color:var(--ink-4);
}
.rel-note{
font-size:var(--fs-small);color:var(--ink-3);line-height:1.4;
max-width:60rem;
}
.rel-prev-list{display:flex;flex-direction:column;gap:1.5rem}
.rel-prev + .rel-prev{
padding-top:1.5rem;
border-top:1px solid var(--border);
}
.rel-prev-head{
display:flex;align-items:baseline;gap:.625rem;
margin-bottom:.625rem;
}
.rel-prev-ver{font-size:var(--fs-sub);font-weight:600;color:var(--ink)}
.rel-prev-date{font-size:var(--fs-small);color:var(--ink-3)}
.chg-data .kpi{background:none;box-shadow:none;padding:0}
/*! charts-geo.css */
.chart.chart-choropleth{--chart-h:26rem}
.chart.chart-dots{--chart-h:26rem}
.geo-note{
display:grid;place-content:center;height:100%;
color:var(--ink-3);font-size:var(--fs-small);text-align:center;
}
.geo-layer path,
.geo-base,
.geo-hover{vector-effect:non-scaling-stroke}
.geo-region{
stroke:var(--bg-card);stroke-width:.6;
transition:fill-opacity .16s var(--ease);
}
.geo-region.is-empty{fill:var(--bg-soft);stroke:var(--border);stroke-width:.8}
.geo-region.is-pick{cursor:pointer}
.geo-region.is-pick:focus-visible{outline:none}
.geo-hover{fill:none;stroke:var(--ink);stroke-width:1.6;pointer-events:none}
.geo-marker{stroke:var(--bg-card);stroke-width:1.5;cursor:pointer}
.geo-marker.is-pick:focus-visible{outline:none}
.chart-choropleth .chart-svg :focus-visible{stroke:var(--ink);stroke-width:2}
.geo-base{fill:var(--bg-soft);stroke:var(--border);stroke-width:.8}
.geo-city-dot{fill:var(--ink-4)}
.geo-city{
font-size:var(--fs-small);fill:var(--ink-3);
paint-order:stroke;stroke:var(--bg-card);stroke-width:3px;stroke-linejoin:round;
}
.geo-dot{
fill-opacity:.72;stroke:var(--bg-card);stroke-width:1;
transition:fill-opacity .16s var(--ease);
}
.geo-dot:hover,.geo-dot:focus-visible{fill-opacity:.95;stroke:var(--ink);stroke-width:1.5;outline:none}
.geo-dot.is-pick{cursor:pointer}
.geo-canvas{position:absolute;inset:0;display:block}
.geo-size-ring{fill:none;stroke:var(--ink-4);stroke-width:1}
.geo-size-leader{stroke:var(--ink-4);stroke-width:1;stroke-dasharray:2 2}
.geo-size-label{font-size:var(--fs-small);fill:var(--ink-3)}
.geo-legend{flex:0 0 auto;display:flex;flex-direction:column;gap:.375rem;max-width:none}
.geo-legend-title{font-size:var(--fs-small);color:var(--ink-3)}
.geo-scale{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .875rem}
.geo-swatch{display:flex;align-items:center;gap:.375rem;min-width:0}
.geo-swatch-box{
flex:0 0 auto;width:1.125rem;height:.625rem;border-radius:.25rem;
background:var(--accent);
}
.geo-swatch-box.is-empty{background:var(--bg-soft);box-shadow:inset 0 0 0 1px var(--border)}
.geo-swatch-label{
font-size:var(--fs-small);color:var(--ink-2);
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
@media (max-width:60rem){
.chart.chart-choropleth,.chart.chart-dots{--chart-h:20rem}
.geo-scale{gap:.25rem .625rem}
}
/*! charts-matrix.css */
.mx{
--mx-lab:13rem;
--mx-col:3.5rem;
--mx-tot:5.5rem;
--mx-row:1.75rem;
--mx-head:9rem;
position:relative;
display:flex;flex-direction:column;gap:.75rem;
min-width:0;
}
.mx-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-width:0}
.mx-bar-gap{flex:1 1 auto}
.mx-field{display:flex;align-items:center;gap:.375rem}
.mx-field-cap{font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap}
.mx-legend{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}
.mx-legend:empty{display:none}
.mx-legend-title{
font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;
padding-bottom:.125rem;
}
.mx-legend-scale{flex:0 1 15rem;min-width:9rem}
.mx-legend-bar{
height:.5rem;border-radius:999px;
box-shadow:inset 0 0 0 1px var(--border);
}
.mx-legend-ticks{
display:flex;justify-content:space-between;gap:.5rem;
margin-top:.25rem;
font-size:var(--fs-small);color:var(--ink-3);
font-variant-numeric:tabular-nums;
}
.mx-scroll{
overflow:auto;
max-height:var(--mx-max-h,calc(100vh - var(--topbar) - 14rem));
border-radius:var(--radius-card);
overscroll-behavior:contain;
}
.mx-scroll::-webkit-scrollbar{width:8px;height:8px}
.mx-scroll::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:999px}
.mx-table{
width:100%;
table-layout:fixed;
border-collapse:separate;border-spacing:0;
font-size:var(--fs-small);
line-height:1.2;
}
.mx-table th,
.mx-table td{padding:0;border:0;vertical-align:middle}
.mx-cell{
height:var(--mx-row);
padding:0 .25rem;
text-align:center;
white-space:nowrap;overflow:hidden;
font-variant-numeric:tabular-nums;
background:var(--bg-card);
border-right:1px solid var(--bg-card);
border-bottom:1px solid var(--bg-card);
}
.mx-cell.is-void{background:var(--bg-card)}
.mx-cell.is-pick{cursor:pointer}
.mx-cell:hover{outline:2px solid var(--ink);outline-offset:-2px}
.mx-cell:focus{outline:none}
.mx-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.mx-row{
position:sticky;left:0;z-index:2;
width:var(--mx-lab);
padding:0 .625rem;
text-align:left;font-weight:400;color:var(--ink-2);
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
background:var(--bg-card);
border-right:1px solid var(--border);
border-bottom:1px solid var(--bg-card);
}
.mx-row .legend-dot,
.mx-col .legend-dot{display:inline-block;vertical-align:middle}
.mx-row .legend-dot{margin-right:.375rem}
.mx-tr:hover .mx-row{color:var(--ink);background:var(--bg-soft)}
.mx-table thead th{
position:sticky;top:0;z-index:3;
background:var(--bg-soft);
color:var(--ink-2);font-weight:500;
border-bottom:1px solid var(--border);
}
.mx-col{width:var(--mx-col);padding:.375rem .25rem;text-align:center}
.mx-table:not(.is-vhead){--mx-col:6rem}
.mx-table thead th.mx-corner{
left:0;z-index:5;
width:var(--mx-lab);
padding:0 .625rem;
text-align:left;color:var(--ink-3);font-weight:600;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
border-right:1px solid var(--border);
}
.mx-col-txt{
display:block;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mx-table.is-vhead thead th{height:var(--mx-head)}
.mx-table.is-vhead .mx-col{vertical-align:bottom}
.mx-table.is-vhead .mx-col-txt{
display:inline-block;
writing-mode:vertical-rl;transform:rotate(180deg);
max-height:calc(var(--mx-head) - 1rem);
text-align:left;
}
.mx-table.is-vhead .mx-col .legend-dot{margin-bottom:.375rem}
.mx-table .mx-tot{
background:var(--bg-soft);
color:var(--ink);font-weight:600;
}
.mx-table td.mx-tot{
width:var(--mx-tot);
padding:0 .625rem;text-align:right;
border-right-color:var(--border);
}
.mx-table thead .mx-tot{width:var(--mx-tot)}
.mx-table tfoot th,
.mx-table tfoot td{
position:sticky;bottom:0;z-index:3;
border-top:1px solid var(--border);
}
.mx-table tfoot .mx-row{z-index:4}
.mx-table .mx-grand{color:var(--ink)}
.mx-scroll.is-scrolled .mx-row,
.mx-scroll.is-scrolled .mx-corner{
box-shadow:8px 0 10px -8px color-mix(in srgb,var(--ink) 35%,transparent);
}
.mx-note{display:flex;flex-direction:column;gap:.375rem}
.mx-note:empty{display:none}
.mx-note-text{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.mx-probe{
position:absolute;left:-9999px;top:0;
white-space:nowrap;pointer-events:none;
font-size:var(--fs-small);font-variant-numeric:tabular-nums;
}
.mx-sr{
position:absolute;width:1px;height:1px;
margin:-1px;padding:0;border:0;
clip-path:inset(50%);overflow:hidden;white-space:nowrap;
}
@media (max-width:960px){
.mx{--mx-lab:9rem;--mx-tot:4.5rem;--mx-head:7rem}
.mx-legend-scale{flex:1 1 100%}
}
/*! charts-stat.css */
.chart.chart-lorenz,
.chart.chart-scatter{flex-direction:column;gap:.625rem}
.chart-tools{
display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
gap:.5rem 1rem;flex:0 0 auto;
}
.chart-scale{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}
.chart-scale-cap{font-size:var(--fs-small);color:var(--ink-3)}
.chart-key,.chart-note{
display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;flex:0 0 auto;
font-size:var(--fs-small);color:var(--ink-3);line-height:1.4;
}
.chart-key-item{display:inline-flex;align-items:center;gap:.375rem}
.chart-key-eq{
display:inline-block;width:1.25rem;height:0;
border-top:1.4px dashed var(--ink-4);
}
.chart-key-swatch{
display:inline-block;width:.75rem;height:.75rem;border-radius:.1875rem;opacity:.28;
}
.chart-key-note{color:var(--ink-3)}
.chart-axname{font-size:var(--fs-small);fill:var(--ink-3)}
.chart-lz-lab,.chart-sc-lab{
paint-order:stroke;stroke:var(--bg-card);stroke-width:.2rem;stroke-linejoin:round;
}
.chart-lz-eq{stroke:var(--ink-4);stroke-width:1.4;stroke-dasharray:4 4}
.chart-lz-fill{stroke:none;fill-opacity:.16}
.chart-lz-curve{fill:none}
.chart-lz-curve.is-guide{opacity:.8}
.chart-lz-drop{stroke-width:1.2;stroke-dasharray:3 3;opacity:.55}
.chart-lz-lead{stroke-width:1;opacity:.6}
.chart-lz-dot{fill:var(--bg-card);stroke-width:2.4}
.chart-lz-lab{font-size:var(--fs-small);fill:var(--ink-2)}
.chart-lz-gini{font-size:var(--fs-body);font-weight:500;fill:var(--ink)}
.chart-lz-hit{fill:transparent}
.chart-lz-cross{stroke:var(--ink-4);stroke-width:1;pointer-events:none}
.chart-lz-hover{fill:var(--bg-card);stroke-width:2.2;pointer-events:none}
.chart-sc-dot{
stroke:var(--bg-card);stroke-width:1;fill-opacity:.72;
transition:fill-opacity .18s var(--ease);
}
.chart-sc-dot:hover{fill-opacity:1}
.chart-sc-quad{stroke:var(--ink-4);stroke-width:1;stroke-dasharray:4 4}
.chart-sc-quadlab{font-size:var(--fs-small);fill:var(--ink-3)}
.chart-sc-lab{font-size:var(--fs-small);fill:var(--ink)}
.chart-svg.is-anim .chart-lz-fill,
.chart-svg.is-anim .chart-lz-lab,
.chart-svg.is-anim .chart-lz-gini,
.chart-svg.is-anim .chart-lz-dot,
.chart-svg.is-anim .chart-lz-drop,
.chart-svg.is-anim .chart-lz-lead,
.chart-svg.is-anim .chart-sc-dot,
.chart-svg.is-anim .chart-sc-lab,
.chart-svg.is-anim .chart-sc-quadlab{
animation:chart-fade .4s var(--ease) backwards;
animation-delay:calc(var(--delay,0s) + .5s);
}
/*! charts-tree.css */
.chart-icicle,
.chart-treemap{flex-direction:column;gap:.5rem;--chart-h:26rem}
.chart-treemap{--chart-h:24rem}
.tree-crumbs{
display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .375rem;
flex:0 0 auto;font-size:var(--fs-small);line-height:1.35;
}
.tree-crumb{
display:inline-flex;align-items:center;gap:.375rem;
padding:.175rem .5rem;border-radius:999px;
background:var(--bg-soft);color:var(--ink-2);
transition:background .18s var(--ease),color .18s var(--ease);
}
.tree-crumb::before{
content:"";width:.5rem;height:.5rem;border-radius:50%;
background:var(--crumb,var(--ink-4));flex:0 0 auto;
}
button.tree-crumb{cursor:pointer}
button.tree-crumb:hover{background:var(--bg-card);color:var(--ink);box-shadow:inset 0 0 0 1px var(--border)}
button.tree-crumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tree-crumb.is-current{background:none;color:var(--ink);font-weight:500}
.tree-crumb-sep{color:var(--ink-4)}
.tree-cell{outline:none}
.tree-cell text{pointer-events:none}
.tree-rect{
stroke-width:0;
transition:stroke-width .18s var(--ease),filter .18s var(--ease);
}
.tree-name{font-size:var(--fs-small);font-weight:500}
.tree-val{font-size:var(--fs-small);font-weight:700}
.tree-level{font-size:var(--fs-small);font-weight:700;fill:var(--ink-3)}
.tree-sep{stroke:var(--border);stroke-width:1}
.tree-cell.is-lit>.tree-rect{stroke-width:2}
.tree-cell:hover>.tree-rect{filter:brightness(1.04)}
.tree-cell.is-drill,
.tree-cell.is-pick{cursor:pointer}
.tree-cell:focus-visible>.tree-rect{stroke:var(--ink);stroke-width:2}
.chart-svg.is-anim .tree-cells{animation:chart-fade .35s var(--ease) backwards}
@media (max-width:960px){
.chart-icicle,.chart-treemap{--chart-h:22rem}
}
/*! charts.css */
.chart{
position:relative;
display:flex;align-items:stretch;gap:1rem;
height:var(--chart-h,17rem);min-width:0;
font-family:var(--font);font-size:var(--fs-body);color:var(--ink-2);
}
.chart.is-legend-top{flex-direction:column;gap:.625rem}
.chart-plot{position:relative;flex:1 1 auto;min-width:0;min-height:0}
.chart-svg{display:block;width:100%;height:100%;overflow:visible}
.chart-svg text{font-family:var(--font);font-variant-numeric:tabular-nums}
.chart-empty{display:grid;align-content:center;min-height:var(--chart-h,17rem)}
.chart-spark-empty{color:var(--ink-4);font-size:var(--fs-small)}
.chart-legend{
display:flex;flex-direction:column;gap:.375rem;
flex:0 0 auto;justify-content:center;max-width:38%;
}
.chart.is-legend-top .chart-legend{
flex-direction:row;flex-wrap:wrap;justify-content:flex-start;
max-width:none;flex:0 1 auto;min-width:0;
}
.chart-pill{
display:block;max-width:100%;
padding:.25rem .625rem;border-radius:999px;
font-size:var(--fs-body);font-weight:500;line-height:1.35;text-align:left;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
transition:filter .18s var(--ease),opacity .18s var(--ease);
}
.chart-legend.is-dense .chart-pill{font-size:var(--fs-small)}
.chart-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.chart-link{fill:none;stroke-width:1;opacity:.35}
.chart-grid{stroke:var(--border);stroke-width:1}
.chart-axis{stroke:var(--border);stroke-width:1}
.chart-zero{stroke:var(--ink-4);stroke-width:1}
.chart-tick{font-size:var(--fs-body);fill:var(--ink-3)}
.chart-xlab{font-size:var(--fs-body);fill:var(--ink-2)}
.chart-unit{font-size:var(--fs-small);fill:var(--ink-3)}
.chart-endlab{font-size:var(--fs-body);font-weight:500}
.chart-total{font-size:var(--fs-body);font-weight:500;fill:var(--ink)}
.chart-inline,.chart-seg-val,.chart-ring-val{font-size:var(--fs-body)}
.chart-val{font-size:var(--fs-body);font-weight:700}
.chart-cat{font-size:var(--fs-small);fill:var(--ink-2)}
.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round}
.chart-marker{fill:var(--bg-card)}
.chart-hit{fill:none;stroke:transparent;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}
.chart-band-fill{stroke:none}
.chart-band-fill.is-soft{opacity:.18}
.chart-band-edge{fill:none}
.chart-ring-track{fill:none;stroke:var(--bg-soft)}
.chart-arc{fill:none;stroke-linecap:butt}
.chart-leader{fill:none;stroke:var(--border);stroke-width:1}
.chart-sector{transition:transform .18s var(--ease),opacity .18s var(--ease)}
.chart-svg:hover .chart-sector{opacity:.42}
.chart-svg .chart-sector:hover,
.chart-svg .chart-sector:focus-visible{
opacity:1;
transform:translate(calc(var(--dx,0) * 8px),calc(var(--dy,0) * 8px));
}
.chart-center{
position:absolute;inset:0;
display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;
padding:0 14%;text-align:center;pointer-events:none;
}
.chart-center-value{font-size:var(--fs-sub);font-weight:600;line-height:1.2;color:var(--ink)}
.chart-center-label{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.chart-donut.is-labels .chart-legend{display:none}
.chart-seg path,.chart-bar rect{transition:filter .18s var(--ease)}
.chart-seg:hover path,.chart-bar:hover rect{filter:brightness(1.06)}
.chart-link-step{stroke:var(--ink-4);stroke-width:1;stroke-dasharray:3 3}
.chart-spark{height:var(--chart-h,1.5rem);gap:0}
.chart-spark-line{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.chart-spark-fill{stroke:none;opacity:.14}
.chart-spark-dot{stroke:var(--bg-card);stroke-width:1.2}
.is-pick{cursor:pointer}
.chart .is-pick:focus{outline:none}
.chart .is-pick:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.25rem}
.chart.is-dim [data-k]:not(.is-on){filter:grayscale(1);opacity:.45}
.chart [data-k]{transition:opacity .18s var(--ease),filter .18s var(--ease)}
@keyframes chart-draw{from{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}
@keyframes chart-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes chart-fade{from{opacity:0}to{opacity:1}}
@keyframes chart-arc{
from{stroke-dasharray:0 100}
to{stroke-dasharray:var(--len) calc(100 - var(--len))}
}
.chart-svg.is-anim .chart-lines .chart-line{
stroke-dasharray:var(--len);
animation:chart-draw .9s var(--ease) backwards;
animation-delay:var(--delay,0s);
}
.chart-svg.is-anim .chart-band,
.chart-svg.is-anim .chart-column,
.chart-svg.is-anim .chart-bar{
animation:chart-rise .7s var(--ease) backwards;
animation-delay:var(--delay,0s);
}
.chart-svg.is-anim .chart-arc{
animation:chart-arc .9s var(--ease) backwards;
animation-delay:var(--delay,0s);
}
.chart-svg.is-anim .chart-marker,
.chart-svg.is-anim .chart-endlab,
.chart-svg.is-anim .chart-total,
.chart-svg.is-anim .chart-val,
.chart-svg.is-anim .chart-inline,
.chart-svg.is-anim .chart-seg-val,
.chart-svg.is-anim .chart-ring-val,
.chart-svg.is-anim .chart-cat,
.chart-svg.is-anim .chart-leader,
.chart-svg.is-anim .chart-link-step{
animation:chart-fade .4s var(--ease) backwards;
animation-delay:calc(var(--delay,0s) + .5s);
}
@media (prefers-reduced-motion:reduce){
.chart-svg.is-anim *{animation:none!important}
}
@media (max-width:960px){
.chart{--chart-h:15rem}
.chart-spark{--chart-h:1.5rem}
}
/*! company.css */
.card-section{
margin-top:var(--gap);
display:grid;gap:var(--gap);align-content:start;
scroll-margin-top:calc(var(--topbar) + 3.5rem);
}
.card-section .panel{scroll-margin-top:calc(var(--topbar) + 3.5rem)}
.card-toc{
position:sticky;top:var(--topbar);z-index:30;
margin-top:var(--gap);
padding:.4375rem .5rem;
border-radius:var(--radius-btn);
background:rgba(244,244,246,.9);
backdrop-filter:saturate(1.4) blur(12px);
border:1px solid var(--border);
}
.card-toc-list{display:flex;flex-wrap:wrap;gap:.1875rem}
.card-toc-link{
padding:.375rem .625rem;
border-radius:var(--radius-btn);
font-size:var(--fs-small);line-height:1.2;
color:var(--ink-3);white-space:nowrap;
transition:background .16s var(--ease),color .16s var(--ease);
}
.card-toc-link:hover{color:var(--ink);background:var(--bg-soft)}
.card-toc-link.is-on{
background:var(--bg-card);color:var(--ink);font-weight:500;
box-shadow:var(--shadow-soft);
}
.card-up{
position:fixed;right:var(--gap);bottom:var(--gap);z-index:35;
display:inline-flex;align-items:center;gap:.375rem;
padding:.5rem .75rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
background:var(--bg-card);color:var(--ink-2);
box-shadow:var(--shadow);
font-size:var(--fs-small);font-family:inherit;cursor:pointer;
opacity:0;transform:translateY(.5rem);pointer-events:none;
transition:opacity .18s var(--ease),transform .18s var(--ease),color .16s var(--ease);
}
.card-up.is-on{opacity:1;transform:none;pointer-events:auto}
.card-up:hover{color:var(--ink)}
.card-up svg{width:1rem;height:1rem;transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){
.card-up{transition:none}
}
@media print{
.card-toc,
.card-up{display:none !important}
.card-section{margin-top:6mm}
}
.md-skeleton{
max-width:64ch;
padding:.1875rem 0;
}
.md-skeleton-line{
height:.6875rem;
margin:.4375rem 0;
border-radius:.25rem;
background:var(--border);
animation:md-skeleton 1.4s var(--ease) infinite;
}
.md-skeleton-line.is-short{width:58%}
.md-skeleton-line:nth-child(2){animation-delay:.09s}
.md-skeleton-line:nth-child(3){animation-delay:.18s}
.md-skeleton-line:nth-child(4){animation-delay:.27s}
.md-skeleton-line:nth-child(5){animation-delay:.36s}
.md-skeleton-line:nth-child(6){animation-delay:.45s}
.md-skeleton-line:nth-child(7){animation-delay:.54s}
.md-skeleton-line:nth-child(8){animation-delay:.63s}
.md-skeleton-line:nth-child(n+9){animation-delay:.72s}
@keyframes md-skeleton{50%{opacity:.4}}
@media (prefers-reduced-motion:reduce){
.md-skeleton-line{animation:none;opacity:.75}
}
/*! concentration.css */
.conc-verdict{
display:flex;
flex-direction:column;
gap:.375rem;
padding:.875rem 1rem;
margin-bottom:1rem;
background:var(--bg-soft);
border-radius:var(--radius-card);
}
.conc-verdict-head{
display:flex;align-items:center;gap:.5rem;
font-size:var(--fs-body);font-weight:600;color:var(--ink);
}
.conc-verdict-mark{
width:.75rem;height:.75rem;flex:none;
background:var(--accent);
border-radius:2px;
}
.conc-verdict-mark.is-up{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}
.conc-verdict-mark.is-down{clip-path:polygon(50% 100%,100% 0,0 0);border-radius:0}
.conc-verdict-mark.is-flat{height:.25rem;background:var(--ink-3);border-radius:999px}
.conc-verdict-line{
font-size:var(--fs-small);color:var(--ink-3);line-height:1.4;
font-variant-numeric:tabular-nums;
}
.conc-chart{min-width:0}
.conc-movers{
display:grid;
gap:1rem var(--gap);
grid-template-columns:minmax(0,1fr);
}
@media (min-width:1200px){
.conc-movers{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.conc-sub-title{
margin:0 0 .5rem;
font-size:var(--fs-small);
font-weight:500;
color:var(--ink-3);
text-transform:uppercase;
letter-spacing:.04em;
}
.conc-mover-list{display:flex;flex-direction:column}
.conc-mover{
display:flex;align-items:center;gap:.25rem;
padding:.375rem .25rem;
border-bottom:1px solid var(--border);
color:var(--ink-2);
font-size:var(--fs-small);
}
.conc-mover:last-child{border-bottom:0}
.conc-mover:hover{color:var(--ink)}
.conc-mover-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conc-mover-value{flex:none;font-weight:500;font-variant-numeric:tabular-nums}
.conc-mover-value.is-up{color:var(--c-apps)}
.conc-mover-value.is-down{color:var(--c-hardware)}
.conc-table table.data td.name{min-width:9rem}
.conc-table table.data tfoot td{
border-top:1px solid var(--border);
border-bottom:0;
color:var(--ink);
font-weight:500;
}
.conc-table table.data tbody tr:last-child td{border-bottom:1px solid var(--border)}
/*! correction.css */
.corr-btn{white-space:nowrap}
.corr-mark{
align-self:stretch;
display:flex;flex-direction:column;gap:.25rem;
padding:.5rem .625rem;
border-radius:var(--radius-card);
background:var(--bg-soft);
border-left:2px solid var(--accent);
}
.corr-mark[hidden]{display:none}
.corr-mark-top{
display:flex;align-items:center;gap:.375rem;
font-size:var(--fs-small);font-weight:500;color:var(--ink);
}
.corr-mark-top svg{width:.875rem;height:.875rem;color:var(--accent);flex:0 0 auto}
.corr-mark-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.corr-overlay{
position:fixed;inset:0;z-index:90;
display:flex;align-items:center;justify-content:center;
padding:1.25rem;
background:rgba(26,27,31,.34);
overflow-y:auto;
}
.corr-dialog{
width:min(34rem,100%);
max-height:calc(100vh - 2.5rem);
display:flex;flex-direction:column;
background:var(--bg-card);
border-radius:var(--radius-panel);
box-shadow:var(--shadow);
overflow:hidden;
}
.corr-head{
display:flex;align-items:flex-start;gap:.75rem;
padding:var(--pad-panel);
border-bottom:1px solid var(--border);
}
.corr-head-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}
.corr-title{font-size:var(--fs-sub);font-weight:600;color:var(--ink);line-height:1.2}
.corr-sub{font-size:var(--fs-small);color:var(--ink-3);line-height:1.45}
.corr-close{
flex:0 0 auto;display:inline-flex;padding:.25rem;border-radius:var(--radius-btn);
color:var(--ink-3);transition:background .16s var(--ease),color .16s var(--ease);
}
.corr-close:hover{background:var(--bg-soft);color:var(--ink)}
.corr-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.corr-close svg{width:1.125rem;height:1.125rem}
.corr-body{flex:1 1 auto;overflow-y:auto;padding:var(--pad-panel)}
.corr-foot{
display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
gap:.75rem;
padding:var(--pad-panel);
border-top:1px solid var(--border);
background:var(--bg-soft);
}
.corr-foot-note{flex:1 1 14rem;font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.corr-foot-acts{display:flex;flex-wrap:wrap;gap:.5rem}
.corr-form{display:flex;flex-direction:column;gap:1.125rem}
.corr-field{display:flex;flex-direction:column;gap:.375rem}
.corr-label{
display:flex;align-items:baseline;gap:.5rem;
font-size:var(--fs-small);font-weight:500;color:var(--ink);
}
.corr-req{font-weight:400;color:var(--ink-4)}
.corr-input{
width:100%;
padding:.5rem .625rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
background:var(--bg-card);color:var(--ink);
font-size:var(--fs-small);line-height:1.35;
transition:border-color .16s var(--ease);
}
.corr-input:hover{border-color:var(--ink-4)}
.corr-input:focus{outline:0;border-color:var(--accent)}
.corr-input::placeholder{color:var(--ink-4)}
.corr-area{resize:vertical;min-height:4.5rem;font-family:inherit}
select.corr-input{appearance:none;cursor:pointer;padding-right:2rem;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1B1F' stroke-opacity='.56' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 10 6 6 6-6'/%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right .5rem center;background-size:1rem 1rem}
.corr-current{margin-top:.375rem;font-size:var(--fs-small);color:var(--ink-3)}
.corr-current[hidden]{display:none}
.corr-hint{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.corr-need{font-size:var(--fs-small);color:var(--accent);line-height:1.35}
.corr-need[hidden]{display:none}
.corr-field.is-needed .corr-input{border-color:var(--accent)}
.corr-choice{display:flex;flex-wrap:wrap;gap:.5rem}
.corr-choice-opt{
display:inline-flex;align-items:center;gap:.4375rem;
padding:.4375rem .625rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
font-size:var(--fs-small);color:var(--ink-2);cursor:pointer;
transition:border-color .16s var(--ease),color .16s var(--ease);
}
.corr-choice-opt:hover{border-color:var(--ink-4);color:var(--ink)}
.corr-choice-opt input{accent-color:var(--accent);width:.875rem;height:.875rem;cursor:pointer}
.corr-choice-opt:has(input:checked){border-color:var(--accent);color:var(--ink)}
.corr-choice-opt:focus-within{outline:2px solid var(--accent);outline-offset:1px}
.corr-earlier{
display:flex;flex-direction:column;gap:.5rem;
margin-bottom:1.125rem;padding:.75rem;
border-radius:var(--radius-card);background:var(--bg-soft);
}
.corr-earlier-title{font-size:var(--fs-small);font-weight:500;color:var(--ink)}
.corr-earlier-row{display:flex;flex-direction:column;gap:.125rem}
.corr-earlier-field{font-size:var(--fs-small);color:var(--ink-2)}
.corr-earlier-meta{font-size:var(--fs-small);color:var(--ink-3)}
.corr-done{display:flex;flex-direction:column;gap:.75rem}
.corr-done-head{display:flex;align-items:center;gap:.5rem}
.corr-done-head svg{width:1.25rem;height:1.25rem;color:var(--accent);flex:0 0 auto}
.corr-done-title{font-size:var(--fs-body);font-weight:600;color:var(--ink)}
.corr-done-lead{font-size:var(--fs-small);color:var(--ink-3)}
.corr-steps{display:flex;flex-direction:column;gap:.625rem;padding-left:1.125rem}
.corr-steps li{font-size:var(--fs-small);color:var(--ink-2);line-height:1.45}
.corr-steps li::marker{color:var(--ink-3)}
.corr-done-note{
padding:.625rem .75rem;border-radius:var(--radius-card);
background:var(--bg-soft);
font-size:var(--fs-small);color:var(--ink-3);line-height:1.4;
}
@media (max-width:40rem){
.corr-overlay{padding:.75rem;align-items:flex-start}
.corr-dialog{max-height:calc(100vh - 1.5rem)}
.corr-foot{flex-direction:column;align-items:stretch}
.corr-foot-acts{justify-content:flex-end}
}
@media (prefers-reduced-motion:reduce){
.corr-input,.corr-choice-opt,.corr-close{transition:none}
}
/*! crumbs.css */
.crumbs{
display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;
margin-bottom:.5rem;
font-size:var(--fs-small);line-height:1.3;color:var(--ink-3);
}
.crumb{color:var(--ink-3);transition:color .16s var(--ease)}
a.crumb:hover{color:var(--accent)}
.crumb.is-current{color:var(--ink-2)}
button.crumb.is-more{
background:none;border:0;padding:0;font:inherit;cursor:pointer;
border-bottom:1px dashed var(--ink-4);
}
button.crumb.is-more:hover{color:var(--accent);border-bottom-color:var(--accent)}
.crumb-sep{color:var(--ink-4);user-select:none}
.nav-subgroup{
padding:.625rem .5rem .25rem 1rem;
font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase;
color:var(--ink-4);
}
.nav-group + .nav-subgroup{padding-top:.25rem}
.nav-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav a.is-locked{color:var(--ink-3)}
.nav a.is-locked .nav-icon{opacity:.6}
.nav-lock{width:.875rem;height:.875rem;flex:0 0 auto;color:var(--ink-4)}
.nav-hint{flex:0 0 auto;font-size:.6875rem;color:var(--ink-4);white-space:nowrap}
/*! diverging.css */
.diverge-zero{stroke:var(--ink-4);stroke-width:1}
.diverge-lab{font-size:var(--fs-body);fill:var(--ink-2)}
.diverge-val{font-size:var(--fs-body);font-weight:500;fill:var(--ink)}
.diverge-val.is-empty{font-weight:400;fill:var(--ink-3)}
.diverge-axis{font-size:var(--fs-small);fill:var(--ink-3)}
.diverge-swatch{fill:var(--pole-plain)}
.diverge-swatch.is-worse{fill:var(--pole-worse)}
.diverge-swatch.is-better{fill:var(--pole-better)}
.diverge-hit{fill:transparent}
.diverge-row .diverge-bar{stroke:none;fill:var(--pole-plain)}
.diverge-row.is-worse .diverge-bar{fill:var(--pole-worse)}
.diverge-row.is-better .diverge-bar{fill:var(--pole-better)}
.diverge-row.is-plain .diverge-bar{fill:var(--pole-plain)}
.diverge-dot{fill:var(--pole-zero);stroke:none}
.diverge-row{transition:filter .18s var(--ease)}
.diverge-row:hover .diverge-bar,
.diverge-row:hover .diverge-dot{filter:brightness(1.08)}
.diverge-flag{color:var(--st-watch);overflow:visible}
.diverge-flag.is-good{color:var(--st-good)}
.diverge-flag.is-serious{color:var(--st-serious)}
.diverge-flag.is-critical{color:var(--st-critical)}
.chart-svg.is-anim .diverge-row{
animation:chart-fade .4s var(--ease) backwards;
animation-delay:calc(var(--delay,0s) + .1s);
}
.kpi.is-lead{position:relative;background:var(--bg-soft)}
.kpi.is-lead .kpi-value{color:var(--ink)}
.kpi.is-lead::before{
content:'';position:absolute;left:0;top:.875rem;bottom:.875rem;width:.1875rem;
border-radius:0 .1875rem .1875rem 0;background:var(--accent);
}
.kpi-status{
display:inline-flex;align-items:center;gap:.375rem;
align-self:start;
padding:.1875rem .5rem;border-radius:var(--radius-btn);
font-size:var(--fs-small);font-weight:500;line-height:1.2;
color:var(--ink);
background:color-mix(in srgb,var(--st-tone,var(--ink-4)) 14%,transparent);
}
.kpi-status .icon{
width:.875rem;height:.875rem;flex:0 0 auto;
color:var(--st-tone,var(--ink-3));
}
.kpi-status.is-good{--st-tone:var(--st-good)}
.kpi-status.is-watch{--st-tone:var(--st-watch)}
.kpi-status.is-serious{--st-tone:var(--st-serious)}
.kpi-status.is-critical{--st-tone:var(--st-critical)}
/*! economics.css */
.eco-table table.data td.is-basis{color:var(--ink-3)}
.eco-table table.data td.name{min-width:9rem}
.eco-table table.data tfoot td{
border-top:1px solid var(--border);
border-bottom:0;
color:var(--ink);
font-weight:500;
}
.eco-table table.data tbody tr:last-child td{border-bottom:1px solid var(--border)}
.eco-check{
margin-top:.75rem;
font-size:var(--fs-small);
color:var(--ink-3);
line-height:1.35;
}
/*! entity.css */
.funnel,.entity-jump{
display:inline-flex;align-items:center;justify-content:center;
flex:0 0 auto;width:1.5rem;height:1.5rem;padding:0;
border:0;border-radius:var(--radius-btn);background:none;
color:var(--ink-3);cursor:pointer;opacity:.45;text-decoration:none;
transition:opacity .16s var(--ease),color .16s var(--ease),background-color .16s var(--ease);
}
.funnel:hover,.entity-jump:hover{opacity:1;color:var(--accent);background:var(--bg-soft)}
.funnel:focus-visible,.entity-jump:focus-visible{
opacity:1;color:var(--accent);outline:2px solid var(--accent);outline-offset:1px;
}
.bar:hover .funnel,tr:hover .funnel,tr:hover .entity-jump{opacity:.85}
@media (hover:none){
.funnel,.entity-jump{opacity:.8}
}
a.bar-label{color:var(--ink-2);text-decoration:none}
a.bar-label:hover{color:var(--accent);text-decoration:underline}
a.bar-label:focus-visible{color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.bar-head.has-funnel{gap:.5rem}
.bar-head.has-funnel .bar-label{flex:1 1 auto;min-width:0}
.bar-head.has-funnel .bar-value{margin-left:auto}
.entity-cell{display:inline-flex;align-items:center;gap:.375rem;max-width:100%}
.entity-cell .legend-label,.entity-cell a:not(.entity-jump){
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
/*! forecast.css */
:root{
--fc-base:var(--c-cloud);
--fc-optimistic:var(--c-apps);
--fc-conservative:var(--c-hardware);
--fc-fact:var(--ink);
}
.fc-line{fill:none;stroke-linecap:round;stroke-linejoin:round}
.fc-line.is-forecast{opacity:.9}
.fc-split-line{stroke:var(--ink-4);stroke-width:1;stroke-dasharray:2 4}
.fc-split-lab{font-size:var(--fs-small);fill:var(--ink-3)}
.fc-ann-line{font-size:var(--fs-small);fill:var(--ink-3)}
.fc-ann-line.is-name{font-size:var(--fs-body);font-weight:600}
.fc-ann-line.is-rate{fill:var(--ink-3)}
.fc-fact-lab{font-size:var(--fs-small);font-weight:500;fill:var(--ink-3)}
.fc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.fc-card{
display:flex;flex-direction:column;gap:.5rem;
padding:.875rem 1rem;
background:var(--bg-soft);
border-radius:var(--radius-card);
border-left:.1875rem solid var(--fc-card-color,var(--ink-4));
}
.fc-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}
.fc-card-name{font-weight:600;color:var(--ink)}
.fc-card-rate{font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap}
.fc-card-total{font-size:var(--fs-sub);font-weight:600;font-variant-numeric:tabular-nums}
.fc-card-text{font-size:var(--fs-small);color:var(--ink-2);line-height:1.5}
@media (max-width:60rem){
.fc-cards{grid-template-columns:1fr}
}
/*! gate.css */
.panel.panel-locked .panel-body{padding-top:.5rem;padding-bottom:.5rem}
.gate{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.gate-line{
display:flex;align-items:flex-start;gap:.4375rem;
min-width:0;flex:1 1 16rem;
}
.gate-lock{
width:1rem;height:1rem;flex:none;
margin-top:.0625rem;color:var(--ink-4);
}
.gate-text{
font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;
min-width:0;
}
.gate-act{
flex:none;
padding:0;border:0;background:none;
font:inherit;font-size:var(--fs-small);
color:var(--accent);cursor:pointer;
text-decoration:underline;text-underline-offset:.1875rem;
text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);
}
.gate-act:hover{color:var(--accent-hot);text-decoration-color:currentColor}
.gate-act:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.125rem}
.gate-note{
display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
margin-top:.75rem;padding:.5rem .75rem;
border:1px solid var(--border);border-radius:var(--radius-card);
background:var(--bg-soft);
font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;
}
.gate-note > span{min-width:0;flex:1 1 20rem}
table.data tbody tr.is-group > td{
font-weight:600;
background:var(--bg-soft);
}
/*! lead.css */
.lead{display:flex;flex-direction:column;gap:var(--gap)}
.lead-form{display:flex;flex-direction:column;gap:1.125rem;max-width:44rem}
.lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem 1rem}
.lead-field{display:flex;flex-direction:column;gap:.375rem}
.lead-label{font-size:var(--fs-small);color:var(--ink-3)}
.lead-input{
width:100%;padding:.5625rem .6875rem;
border-radius:var(--radius-btn);
background:var(--bg-card);border:1px solid var(--border);
font-size:var(--fs-body);color:var(--ink);line-height:1.3;
transition:border-color .16s var(--ease);
}
.lead-input:hover{border-color:var(--ink-4)}
.lead-input:focus{outline:0;border-color:var(--accent)}
.lead-input::placeholder{color:var(--ink-4)}
.lead-need{font-size:var(--fs-small);color:var(--accent);line-height:1.35}
.lead-need[hidden]{display:none}
.lead-field.is-needed .lead-input{border-color:var(--accent)}
.lead-hp{
position:absolute;left:-9999px;width:1px;height:1px;
overflow:hidden;opacity:0;
}
.lead-consent{
display:flex;align-items:flex-start;gap:.5625rem;
font-size:var(--fs-small);color:var(--ink-2);line-height:1.4;
cursor:pointer;
}
.lead-consent input{
flex:0 0 auto;margin-top:.0625rem;
width:.9375rem;height:.9375rem;accent-color:var(--accent);cursor:pointer;
}
.lead-consent:focus-within{outline:2px solid var(--accent);outline-offset:3px;border-radius:.25rem}
.lead-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.lead-submit{padding:.5625rem 1rem;font-size:var(--fs-body)}
.lead-submit:disabled{opacity:.45;cursor:not-allowed}
.lead-submit:disabled:hover{background:var(--accent);border-color:var(--accent)}
.lead-missing{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.lead-missing[hidden]{display:none}
.lead-privacy{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;max-width:38rem}
.lead-alert{
display:flex;flex-direction:column;gap:.5rem;
padding:.875rem 1rem;border-radius:var(--radius-card);
background:var(--bg-soft);border:1px solid var(--st-critical);
}
.lead-alert[hidden]{display:none}
.lead-alert-text{font-size:var(--fs-body);color:var(--ink);line-height:1.35}
.lead-alert-acts{display:flex;flex-wrap:wrap;gap:.75rem}
.lead-mail{font-size:var(--fs-small);font-weight:600}
.lead-alert-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.lead-done{
display:flex;flex-direction:column;gap:.75rem;align-items:flex-start;
max-width:38rem;
}
.lead-done-head{display:flex;align-items:center;gap:.5rem}
.lead-done-head svg{width:1.25rem;height:1.25rem;color:var(--st-good)}
.lead-done-title{font-size:var(--fs-sub);font-weight:700;color:var(--ink);line-height:1.2}
.lead-done-title:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.lead-done-lead{font-size:var(--fs-body);color:var(--ink-2);line-height:1.4}
.lead-done-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.4}
.lead-back{margin-top:.25rem}
@media (max-width:48rem){
.lead-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
.lead-input{transition:none}
}
/*! login.css */
.login-overlay{
position:fixed;inset:0;z-index:90;
display:flex;align-items:center;justify-content:center;
padding:1.25rem;
background:rgba(26,27,31,.34);
overflow-y:auto;
}
.login-dialog{
width:min(26rem,100%);
max-height:calc(100vh - 2.5rem);
display:flex;flex-direction:column;
background:var(--bg-card);
border-radius:var(--radius-panel);
box-shadow:var(--shadow);
overflow:hidden;
}
.login-head{
display:flex;align-items:flex-start;gap:.75rem;
padding:var(--pad-panel);
border-bottom:1px solid var(--border);
}
.login-head-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}
.login-title{font-size:var(--fs-sub);font-weight:600;color:var(--ink);line-height:1.2}
.login-sub{font-size:var(--fs-small);color:var(--ink-3);line-height:1.45}
.login-close{
flex:0 0 auto;display:inline-flex;padding:.25rem;border-radius:var(--radius-btn);
color:var(--ink-3);transition:background .16s var(--ease),color .16s var(--ease);
}
.login-close:hover{background:var(--bg-soft);color:var(--ink)}
.login-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.login-close svg{width:1.125rem;height:1.125rem}
.login-form{
flex:1 1 auto;overflow-y:auto;
display:flex;flex-direction:column;gap:.875rem;
padding:var(--pad-panel);
}
.login-field{display:flex;flex-direction:column;gap:.375rem}
.login-label{font-size:var(--fs-small);font-weight:500;color:var(--ink)}
.login-input{
width:100%;
padding:.5rem .625rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
background:var(--bg-card);color:var(--ink);
font-size:var(--fs-small);line-height:1.35;
transition:border-color .16s var(--ease);
}
.login-input:hover{border-color:var(--ink-4)}
.login-input:focus{outline:0;border-color:var(--accent)}
.login-hint{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.login-need{font-size:var(--fs-small);color:var(--accent);line-height:1.35}
.login-need[hidden]{display:none}
.login-field.is-needed .login-input{border-color:var(--accent)}
.login-fail{
padding:.5rem .625rem;border-radius:var(--radius-card);
background:var(--bg-soft);border-left:2px solid var(--accent);
font-size:var(--fs-small);color:var(--ink-2);line-height:1.4;
}
.login-fail[hidden]{display:none}
.login-submit{justify-content:center;width:100%}
.login-foot{
display:flex;flex-direction:column;gap:.625rem;
padding:var(--pad-panel);
border-top:1px solid var(--border);
background:var(--bg-soft);
}
.login-note{
display:flex;align-items:flex-start;gap:.5rem;
font-size:.6875rem;line-height:1.4;color:var(--ink-3);
}
.login-note-icon{flex:0 0 auto;width:.875rem;height:.875rem;color:var(--ink-4)}
.login-request{
font-size:var(--fs-small);color:var(--accent);
text-decoration:underline;text-underline-offset:2px;
}
.login-request:hover{color:var(--ink)}
.login-request:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:40rem){
.login-overlay{padding:.75rem;align-items:flex-start}
.login-dialog{max-height:calc(100vh - 1.5rem)}
}
@media (prefers-reduced-motion:reduce){
.login-input,.login-close{transition:none}
}
/*! markdown.css */
.md{
font-size:var(--fs-body);
line-height:1.55;
color:var(--ink-2);
max-width:64ch;
}
.md-doc{display:flex;flex-direction:column;gap:var(--gap)}
.md > *:first-child{margin-top:0}
.md > *:last-child{margin-bottom:0}
.md-p{margin:0 0 .75rem}
.md-h1,.md-h2{
font-size:var(--fs-sub);font-weight:600;line-height:1.35;
color:var(--ink);margin:1.25rem 0 .625rem;
}
.md-h3,.md-h4,.md-h5,.md-h6{
font-size:var(--fs-body);font-weight:600;line-height:1.4;
color:var(--ink);margin:1rem 0 .5rem;
}
.md-h4,.md-h5,.md-h6{color:var(--ink-2)}
.md-list{margin:0 0 .75rem;padding-left:1.25rem}
.md-list li{margin-bottom:.375rem}
.md-list li:last-child{margin-bottom:0}
.md-list .md-list{margin:.375rem 0 0}
.md-list li::marker{color:var(--ink-4)}
.md-link{color:var(--accent);text-decoration:none;overflow-wrap:anywhere}
.md-link:hover{color:var(--accent-hot);text-decoration:underline}
.md strong{font-weight:600;color:var(--ink)}
.md em{font-style:italic}
.md-code{
font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
font-size:var(--fs-small);
padding:.0625rem .25rem;border-radius:.25rem;
background:var(--bg-soft);color:var(--ink);
}
.md-pre{
margin:0 0 .75rem;padding:.75rem .875rem;
background:var(--bg-soft);border-radius:var(--radius-card);
overflow-x:auto;
}
.md-pre code{
font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
font-size:var(--fs-small);line-height:1.5;color:var(--ink-2);
white-space:pre;
}
.md-quote{
margin:0 0 .75rem;padding:.125rem 0 .125rem .875rem;
border-left:2px solid var(--border);color:var(--ink-3);
}
.md-quote > *:last-child{margin-bottom:0}
.md-hr{margin:1.25rem 0;border:0;border-top:1px solid var(--border)}
.md-table-wrap{
max-width:none;margin:0 0 .875rem;
overflow-x:auto;
border:1px solid var(--border);border-radius:var(--radius-card);
}
.md-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}
.md-table th,.md-table td{
padding:.5rem .75rem;text-align:left;vertical-align:top;
border-bottom:1px solid var(--border);
}
.md-table th{
font-weight:600;color:var(--ink-3);
background:var(--bg-soft);white-space:nowrap;
}
.md-table td{color:var(--ink-2);line-height:1.45}
.md-table td:first-child{color:var(--ink);white-space:nowrap}
.md-table tr:last-child td{border-bottom:0}
.md-table .is-right{text-align:right}
.md-table .is-center{text-align:center}
@media (max-width:960px){
.md{max-width:none}
.md-table td:first-child{white-space:normal}
}
/*! nav.css */
.nav{margin-top:.25rem}
.space-tabs{
display:flex;flex-direction:column;gap:.25rem;
width:calc(100% + 1rem);margin:0 -.5rem .25rem;
padding:.25rem;border-radius:.75rem;
background:rgba(26,27,31,.05);
}
.space-tab{
min-width:0;
display:flex;align-items:center;gap:.4375rem;
padding:.5rem .625rem;border-radius:.6rem;
font-size:var(--fs-body);font-weight:500;color:var(--ink-2);
transition:background .16s var(--ease),color .16s var(--ease);
}
.space-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.space-tab:hover{background:rgba(255,255,255,.7);color:var(--ink)}
.space-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.space-tab.is-on{
background:linear-gradient(115deg,var(--accent) 0%,var(--accent-hot) 100%);
color:#fff;font-weight:600;
box-shadow:0 1px 2px rgba(26,27,31,.18);
}
.space-tab.is-on:hover{color:#fff}
.space-tab.is-on .nav-lock{color:rgba(255,255,255,.85)}
.space-tab.is-locked{color:var(--ink-3)}
.space-tab.is-static{cursor:default;color:var(--ink-2)}
.nav-branch{display:flex;flex-direction:column;gap:.125rem}
.nav-row{display:flex;align-items:center;gap:.125rem}
.nav-row > a{flex:1 1 auto;min-width:0}
.nav-twist{
flex:0 0 auto;
display:grid;place-items:center;
width:1.75rem;height:1.75rem;
border-radius:.5rem;
color:var(--ink-4);
transition:background .16s var(--ease),color .16s var(--ease);
}
.nav-twist:hover{background:rgba(26,27,31,.05);color:var(--ink-2)}
.nav-twist:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nav-twist svg{width:.9375rem;height:.9375rem}
.nav-sub{display:flex;flex-direction:column;gap:.125rem;padding-bottom:.25rem}
.nav a.nav-sub-item{
padding:.375rem .625rem .375rem 1.1875rem;
font-size:var(--fs-small);
color:var(--ink-3);
}
.nav a.nav-sub-item .nav-hint{font-variant-numeric:tabular-nums}
.nav-sub-dot{
flex:0 0 auto;
width:.5rem;height:.5rem;
border-radius:.125rem;
background:var(--ink-4);
}
/*! onboarding.css */
.onb{
margin-top:1rem;
margin-bottom:var(--gap);
padding:var(--pad-panel);
border:1px solid var(--border);
border-left:3px solid var(--accent);
border-radius:var(--radius-panel);
background:var(--bg-soft);
}
.onb-head{
display:flex;flex-wrap:wrap;align-items:flex-start;
gap:.75rem 1.5rem;
}
.onb-lead{flex:1 1 22rem;min-width:0;max-width:46rem}
.onb-title{
margin:0;
font-size:var(--fs-sub);font-weight:600;line-height:1.25;
color:var(--ink);
}
.onb-what{
margin:.375rem 0 0;
font-size:var(--fs-body);line-height:1.45;
color:var(--ink-2);
}
.onb-source{
margin:.375rem 0 0;
font-size:var(--fs-small);line-height:1.4;
color:var(--ink-3);
}
.onb-method{
color:var(--accent);
text-decoration:underline;text-underline-offset:.1875rem;
text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);
}
.onb-method:hover{color:var(--accent-hot);text-decoration-color:currentColor}
.onb-close{
flex:none;
padding:0;border:0;background:none;
font:inherit;font-size:var(--fs-small);
color:var(--ink-3);cursor:pointer;
text-decoration:underline;text-underline-offset:.1875rem;
text-decoration-color:var(--ink-4);
}
.onb-close:hover{color:var(--ink-2);text-decoration-color:currentColor}
.onb-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.125rem}
.onb-entries{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
gap:.625rem;
margin-top:1.125rem;
}
.onb-entry{
display:flex;flex-direction:column;gap:.1875rem;
padding:.75rem .875rem;
border:1px solid var(--border);
border-radius:var(--radius-card);
background:var(--bg-card);
color:inherit;text-decoration:none;
transition:border-color .18s var(--ease), box-shadow .18s var(--ease),
transform .18s var(--ease);
}
.onb-entry:hover{
border-color:color-mix(in srgb, var(--accent) 45%, var(--border));
box-shadow:var(--shadow-soft);
transform:translateY(-1px);
}
.onb-entry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.onb-entry-head{
display:flex;align-items:baseline;justify-content:space-between;
gap:.5rem;
}
.onb-entry-title{
font-size:var(--fs-body);font-weight:600;line-height:1.3;
color:var(--ink);
}
.onb-entry-text{
font-size:var(--fs-small);line-height:1.35;
color:var(--ink-3);
}
.onb-entry.is-cta{
border-color:color-mix(in srgb, var(--accent) 45%, var(--border));
box-shadow:inset 3px 0 0 var(--accent);
}
.onb-entry.is-cta:hover{box-shadow:inset 3px 0 0 var(--accent), var(--shadow-soft)}
.onb-bounds{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));
gap:.375rem .875rem;
margin-top:1rem;
}
.onb-bound{
display:flex;align-items:baseline;gap:.4375rem;
min-width:0;
font-size:var(--fs-small);line-height:1.4;
}
.onb-bound-label{
flex:none;width:4.5rem;
font-weight:600;color:var(--ink);
}
.onb-bound-text{min-width:0;color:var(--ink-2)}
.onb-bound.is-open .onb-bound-label::before,
.onb-bound.is-shut .onb-bound-label::before{
content:'';
display:inline-block;vertical-align:.1em;
width:.4375rem;height:.4375rem;margin-right:.375rem;
border-radius:50%;
}
.onb-bound.is-open .onb-bound-label::before{background:var(--accent)}
.onb-bound.is-shut .onb-bound-label::before{box-shadow:inset 0 0 0 1px var(--ink-4)}
.onb-bound.is-shut .onb-bound-text{color:var(--ink-3)}
.onb-fair{
margin-top:.5rem;
font-size:var(--fs-small);line-height:1.4;
color:var(--ink-3);
max-width:52rem;
}
@media print{
.onb{display:none}
}
/*! pivot.css */
.pv-panel + .pv-panel,
.kpi-row + .pv-panel{margin-top:var(--gap)}
.pv-bar{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;min-width:0}
.pv-bar-gap{flex:1 1 auto}
.pv-bar-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;align-self:center}
.pv-field{display:flex;flex-direction:column;gap:.375rem;min-width:0}
.pv-field-cap{font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap}
.pv-cross{
align-self:center;padding-top:1.25rem;
font-size:var(--fs-sub);line-height:1;color:var(--ink-4);
}
.pv-bar.is-order{margin-bottom:.875rem}
.pv-scroll{
overflow:auto;
max-height:min(38rem,calc(100vh - 16rem));
border:1px solid var(--border);
border-radius:var(--radius-card);
}
.pv-scroll::-webkit-scrollbar{width:8px;height:8px}
.pv-scroll::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:999px}
.pv-table{
border-collapse:separate;border-spacing:0;
width:max-content;min-width:100%;
font-size:var(--fs-body);
font-variant-numeric:tabular-nums;
}
.pv-table th,
.pv-table td{
padding:.5rem .75rem;
white-space:nowrap;
border-bottom:1px solid var(--border);
text-align:right;
}
.pv-table td{color:var(--ink-2)}
.pv-table td.is-void{color:var(--ink-4)}
.pv-table thead th{
position:sticky;top:0;z-index:2;
background:var(--bg-card);
font-weight:600;color:var(--ink-3);
vertical-align:bottom;
}
.pv-table thead th.pv-corner{
left:0;z-index:3;
text-align:left;color:var(--ink-2);
}
.pv-corner-txt{display:inline-block;max-width:16rem;overflow:hidden;text-overflow:ellipsis}
.pv-table th.pv-col{max-width:14rem;overflow:hidden;text-overflow:ellipsis}
.pv-table .pv-row{
position:sticky;left:0;z-index:1;
background:var(--bg-card);
text-align:left;font-weight:500;color:var(--ink);
max-width:20rem;overflow:hidden;text-overflow:ellipsis;
}
.pv-scroll.is-scrolled .pv-table .pv-row,
.pv-scroll.is-scrolled .pv-table thead th.pv-corner{
box-shadow:6px 0 8px -8px rgba(26,27,31,.35);
}
.pv-table tbody tr:hover td{background:var(--bg-soft)}
.pv-table tbody tr:hover .pv-row{background:var(--bg-soft)}
.pv-table .pv-tot{color:var(--ink);font-weight:600}
.pv-table tbody td.pv-tot{background:var(--bg-soft)}
.pv-table tfoot th,
.pv-table tfoot td{
position:sticky;bottom:0;z-index:2;
background:var(--bg-card);
border-top:1px solid var(--ink-4);border-bottom:0;
color:var(--ink);font-weight:600;
}
.pv-table tfoot th.pv-row{z-index:3}
.pv-link{
padding:0;font:inherit;color:inherit;text-align:left;
border-bottom:1px dashed var(--ink-4);
}
.pv-link:hover{color:var(--accent);border-bottom-color:var(--accent)}
.pv-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.125rem}
.pv-table td.pv-pick{cursor:pointer}
.pv-table td.pv-pick:hover{outline:2px solid var(--accent);outline-offset:-2px}
.pv-save{position:relative;display:inline-flex}
.pv-save-panel{
position:absolute;top:calc(100% + .5rem);right:0;z-index:55;
width:min(22rem,calc(100vw - 3rem));
display:flex;flex-direction:column;gap:.625rem;
padding:.875rem;
background:var(--bg-card);border-radius:var(--radius-panel);box-shadow:var(--shadow);
text-align:left;
}
.pv-save-cap{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.pv-save-input{
width:100%;padding:.4375rem .625rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
font-size:var(--fs-small);background:var(--bg-card);outline:0;
}
.pv-save-input:focus{border-color:var(--accent)}
.pv-save-acts{display:flex;gap:.5rem}
.pv-save-msg{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.pv-save-msg:empty{display:none}
.pv-save-msg.is-bad{color:var(--accent-hot)}
@media (max-width:960px){
.pv-bar{gap:.75rem}
.pv-cross{display:none}
.pv-scroll{max-height:min(30rem,calc(100vh - 12rem))}
.pv-table .pv-row{max-width:11rem}
}
/*! print.css */
.print-colophon{display:none}
@media print{
@page{
size:297mm 210mm;
margin:12mm 10mm 20mm;
}
*{
-webkit-print-color-adjust:exact;
print-color-adjust:exact;
}
html,body,.app,.app-main,.app-content{
background:#fff !important;
}
body{font-size:9.5pt;line-height:1.35}
.sidebar,
.sidebar-restore,
.burger,
.scrim,
.topbar,
.toast,
.tip,
.suggest .sg-panel,
.print-hide{
display:none !important;
}
.app{min-height:0}
.app-main{margin-left:0 !important;transition:none}
.app-content{padding:0 !important;max-width:none !important}
.panel-acts,
.facets-wrap > .btn,
.dt-menu-wrap,
.dt-more,
.chips-clear,
.chip-x,
.card-aside > .btn,
.preview-actions,
.gate-act,
.pv-save{
display:none !important;
}
.dt-table th.dt-sel,
.dt-table td.dt-sel{display:none !important}
.toggle{border:0 !important;background:none !important;padding:0 !important;gap:0}
.toggle-opt:not(.is-on){display:none !important}
.toggle-opt.is-on{background:none !important;box-shadow:none !important;padding:0 !important}
.select-btn{border:0 !important;background:none !important;padding:0 !important}
.select-btn svg,
.select-body{display:none !important}
.dt-sort{color:inherit !important}
.dt-sort svg{display:none !important}
.grid,
.grid-2,
.grid-3,
.grid-23{grid-template-columns:1fr !important}
.kpi-row:not(.is-hero){grid-template-columns:repeat(auto-fit,minmax(38mm,1fr)) !important;gap:4mm}
.kpi{padding:3mm}
.kpi-value{font-size:13pt}
.kpi-row.is-hero{grid-template-columns:minmax(0,1fr) !important;gap:4mm}
.kpi-row.is-hero .kpi{padding:4mm;row-gap:2mm}
.kpi-row.is-hero .kpi-value{font-size:22pt}
.kpi-row.is-hero .kpi-delta{font-size:12pt}
.coverage{flex-wrap:wrap}
.panel{
display:block;
break-inside:avoid;
page-break-inside:avoid;
box-shadow:none !important;
border:.5pt solid #bbb;
border-radius:0;
background:#fff !important;
padding:4mm;
margin-bottom:5mm;
}
.panel-body{display:block}
.panel:has(.chart),
.panel:has(.dt-scroll),
.panel:has(.mx-scroll),
.panel:has(.pv-scroll){break-inside:auto;page-break-inside:auto}
.page-head{margin-bottom:5mm}
.page-title{font-size:16pt}
.page-title .cursor{display:none}
.panel-title{font-size:11pt}
h1,h2,h3,.panel-head{break-after:avoid;page-break-after:avoid}
.dt-scroll,
.mx-scroll,
.pv-scroll,
.table-wrap,
.chg-list-body,
.facet-list,
.md-scroll{
max-height:none !important;
overflow:visible !important;
border:0 !important;
}
.table-wrap{background:none !important}
.dt-table,
.pv-table,
table.data{width:100% !important;font-size:8pt}
.dt-table thead th,
.pv-table thead th,
.pv-table th.pv-row,
.mx-head,
.mx-side,
.mx-foot,
.dt-table .is-sticky,
.dt-table tfoot td,
.dt-table tfoot th,
table.data th{position:static !important}
.dt-table thead,
.pv-table thead,
table.data thead{display:table-header-group}
.dt-table tfoot,
.pv-table tfoot{display:table-row-group}
.dt-table th,
.dt-table td,
.pv-table th,
.pv-table td,
table.data th,
table.data td{
white-space:normal !important;
overflow:visible !important;
text-overflow:clip !important;
max-width:none !important;
padding:1mm 1.5mm;
}
.dt-table tr,
.pv-table tr,
table.data tr{break-inside:avoid;page-break-inside:avoid}
.dt-table tbody tr:nth-child(even),
.dt-table tbody tr:hover{background:none !important}
.dt.is-cards .dt-table{display:table !important;width:100% !important}
.dt.is-cards .dt-table thead{display:table-header-group !important}
.dt.is-cards .dt-table tbody{display:table-row-group !important;padding:0 !important}
.dt.is-cards .dt-table tfoot{display:table-row-group !important;padding:0 !important}
.dt.is-cards .dt-table tr{
display:table-row !important;
margin:0 !important;padding:0 !important;
border:0 !important;border-radius:0 !important;background:none !important;
}
.dt.is-cards .dt-table td:not(.dt-sel):not(.dt-more){
display:table-cell !important;
width:auto !important;
padding:1mm 1.5mm !important;
text-align:left;
}
.dt.is-cards .dt-table td.dt-sel,
.dt.is-cards .dt-table td.dt-more,
.dt.is-cards .dt-table th.dt-sel{display:none !important}
.dt.is-cards .dt-table td.num{text-align:right}
.dt.is-cards .dt-table td.is-title{font-size:inherit;font-weight:500}
.dt.is-cards .dt-table td::before{content:none !important;display:none !important}
.dt-ghost{display:none !important}
.chart,
.chart-svg{break-inside:avoid;page-break-inside:avoid;max-width:100%}
:root{
--c-devices:#FFC100;
--c-cloud:#FF9600;
--c-apps:#6B9A55;
--c-sec:#815A4B;
--c-hardware:#CD0034;
--c-services:#242A2C;
}
[fill="#FFB200" i]{fill:#FFC100 !important}
[stroke="#FFB200" i]{stroke:#FFC100 !important}
[style*="background: rgb(255, 178, 0)"],
[style*="background-color: rgb(255, 178, 0)"]{background-color:#FFC100 !important}
[fill="#FA7D00" i]{fill:#FF9600 !important}
[stroke="#FA7D00" i]{stroke:#FF9600 !important}
[style*="background: rgb(250, 125, 0)"],
[style*="background-color: rgb(250, 125, 0)"]{background-color:#FF9600 !important}
[fill="#77AB5F" i]{fill:#6B9A55 !important}
[stroke="#77AB5F" i]{stroke:#6B9A55 !important}
[style*="background: rgb(119, 171, 95)"],
[style*="background-color: rgb(119, 171, 95)"]{background-color:#6B9A55 !important}
[fill="#6B4B3E" i]{fill:#815A4B !important}
[stroke="#6B4B3E" i]{stroke:#815A4B !important}
[style*="background: rgb(107, 75, 62)"],
[style*="background-color: rgb(107, 75, 62)"]{background-color:#815A4B !important}
[fill="#E4003A" i]{fill:#CD0034 !important}
[stroke="#E4003A" i]{stroke:#CD0034 !important}
[style*="background: rgb(228, 0, 58)"],
[style*="background-color: rgb(228, 0, 58)"]{background-color:#CD0034 !important}
[fill="#31393C" i]{fill:#242A2C !important}
[stroke="#31393C" i]{stroke:#242A2C !important}
[style*="background: rgb(49, 57, 60)"],
[style*="background-color: rgb(49, 57, 60)"]{background-color:#242A2C !important}
a{color:inherit !important;text-decoration:none}
.print-colophon{
display:block;
position:fixed;
left:0;right:0;bottom:0;
padding-top:1mm;
background:#fff;
border-top:.5pt solid #999;
font-size:6.5pt;line-height:1.3;color:#444;
}
.print-line{
display:flex;gap:4mm;justify-content:space-between;
overflow:hidden;
}
.print-line.is-head{font-size:7.5pt;color:#111}
.print-line b{font-weight:600}
.print-addr{word-break:break-all}
.app-content{padding-bottom:12mm !important}
.profile-cols.grid-2{grid-template-columns:1fr 1fr !important;gap:5mm}
.profile-cols .panel{break-inside:avoid;page-break-inside:avoid;margin-bottom:0}
}
/*! registry.css */
@media (max-width:760px){
.dt.is-cards .dt-scroll{overflow-x:hidden}
.dt.is-cards .dt-table,
.dt.is-cards .dt-table tbody,
.dt.is-cards .dt-table tfoot,
.dt.is-cards .dt-table tr,
.dt.is-cards .dt-table td{display:block;width:auto}
.dt.is-cards .dt-table thead{display:none}
.dt.is-cards .dt-table tbody,
.dt.is-cards .dt-table tfoot{padding:.75rem 1rem}
.dt.is-cards .dt-table tbody tr{
display:flex;flex-direction:column;
margin-bottom:.625rem;
padding:.625rem .75rem;
border:1px solid var(--border);
border-radius:var(--radius-panel);
background:var(--dt-row-bg);
}
.dt.is-cards .dt-table tbody tr:nth-child(even){--dt-row-bg:var(--bg-card)}
.dt.is-cards .dt-table td{
position:static;
display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;
padding:.1875rem 0;
white-space:normal;
text-align:left;
background:none;
}
.dt.is-cards .dt-table td::before{
content:attr(data-label);
flex:none;
order:-1;
font-size:var(--fs-small);color:var(--ink-3);
}
.dt.is-cards .dt-table td.num{text-align:right}
.dt.is-cards .dt-table tbody tr:hover td:first-child::before,
.dt.is-cards .dt-table tbody tr.is-selected td:first-child::before{
content:attr(data-label);
position:static;width:auto;background:none;
}
.dt.is-cards .dt-table td.is-title{
order:-1;
justify-content:flex-start;
font-size:var(--fs-sub);font-weight:600;color:var(--ink);
}
.dt.is-cards .dt-table td.is-title::before{content:none}
.dt.is-cards .dt-table td.dt-sel{
display:flex;justify-content:space-between;
padding:.1875rem 0;width:auto;
}
.dt.is-cards .dt-table tbody tr:not(.is-open) td:not(.is-primary):not(.dt-more){display:none}
.dt.is-cards .dt-table tbody td:empty{display:none}
.dt.is-cards .dt-table td.dt-more{
display:block;padding:.375rem 0 0;
}
.dt-more-btn{
font:inherit;font-size:var(--fs-small);
color:var(--accent);
text-decoration:underline dotted;text-underline-offset:3px;
}
.dt-more-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.25rem}
.dt.is-cards .dt-table tfoot tr{
padding:.625rem .75rem;
border-radius:var(--radius-panel);
background:var(--bg-soft);
}
.dt.is-cards .dt-table tfoot td{
position:sticky;bottom:0;
border-top:0;
}
.dt.is-cards .dt-table tfoot td:empty{display:none}
.dt.is-cards .dt-ghosts{display:block;padding:0 1rem .75rem}
.dt.is-cards .dt-ghosts tr{
margin-bottom:.5rem;padding:.625rem .75rem;
border:1px solid var(--border);border-radius:var(--radius-panel);
}
.dt.is-cards .dt-ghosts td:not(.is-primary){display:none}
.dt.is-cards .dt-ghosts td::before{content:none}
}
.dt-table .dt-more{display:none}
.segbar{
display:flex;flex-wrap:wrap;gap:.25rem;
margin-bottom:var(--gap);padding:.1875rem;
background:var(--bg-soft);border-radius:var(--radius-btn);
}
.segbar-opt{
display:inline-flex;align-items:center;gap:.375rem;
padding:.375rem .625rem;border-radius:.5rem;
font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap;
transition:background .16s var(--ease),color .16s var(--ease);
}
.segbar-opt:hover{color:var(--ink)}
.segbar-opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.segbar-opt.is-on{
background:var(--bg-card);color:var(--ink);font-weight:500;
box-shadow:var(--shadow-soft);
}
.segbar-count{
color:var(--ink-4);font-variant-numeric:tabular-nums;
}
.segbar-opt.is-on .segbar-count{color:var(--ink-3)}
@media (max-width:760px){
.segbar{gap:.1875rem}
.segbar-opt{padding:.3125rem .5rem}
}
.rate-top{
display:flex;flex-direction:column;gap:.1875rem;
margin:.125rem 0;
}
.rate-top-row{
display:flex;align-items:baseline;gap:.375rem;
font-size:var(--fs-small);line-height:1.35;
}
.rate-top-rank{
flex:none;min-width:.75rem;
color:var(--ink-4);font-variant-numeric:tabular-nums;
}
.rate-top-name{
flex:1 1 auto;min-width:0;
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
color:var(--ink-2);
}
.rate-top-value{
flex:none;
color:var(--ink-3);font-variant-numeric:tabular-nums;
}
.dsr-find{
display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;
margin-bottom:var(--gap);
}
.dsr-find-input{
flex:1 1 22rem;min-width:0;max-width:34rem;
padding:.4375rem .625rem;
border:1px solid var(--border);border-radius:var(--radius-btn);outline:0;
background:var(--bg);color:var(--ink);
font:inherit;font-size:var(--fs-small);
}
.dsr-find-input:focus-visible{border-color:var(--accent)}
.dsr-find-input::placeholder{color:var(--ink-4)}
.dsr-find-note{font-size:var(--fs-small);color:var(--ink-3)}
.dsr-excerpt{
display:block;max-width:46rem;
color:var(--ink-2);font-size:var(--fs-small);line-height:1.4;
white-space:normal;
}
.profile-pick{
display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;
margin-bottom:var(--gap);
}
.profile-pick-label{
font-size:var(--fs-small);color:var(--ink-3);
}
.profile-dyn tbody tr.is-me td{
background:var(--bg-soft);font-weight:600;color:var(--ink);
}
.is-none{color:var(--ink-4)}
.seg-choose-item.is-off{color:var(--ink-4);border-style:dashed}
/*! segments.css */
.seg-cards{
display:grid;
gap:var(--gap);
grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (min-width:760px){
.seg-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.seg-card{
display:flex;
flex-direction:column;
gap:.375rem;
padding:var(--pad-panel);
background:var(--bg-card);
border-radius:var(--radius-panel);
box-shadow:var(--shadow-soft);
color:var(--ink);
transition:box-shadow .18s var(--ease),transform .18s var(--ease);
}
.seg-card:hover{color:var(--ink);box-shadow:var(--shadow);transform:translateY(-2px)}
.seg-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.seg-card-bar{height:.25rem;border-radius:999px;margin-bottom:.5rem}
.seg-card-name{font-size:var(--fs-body);font-weight:500;line-height:1.35}
.seg-card-value{
font-size:var(--fs-sub);font-weight:700;line-height:1.2;
font-variant-numeric:tabular-nums;
}
.seg-card-meta{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.seg-card-spark{margin:.25rem 0}
.seg-card-foot{
display:flex;align-items:baseline;gap:.375rem;
font-size:var(--fs-small);color:var(--ink-3);
}
.seg-card-cagr{font-weight:500;font-variant-numeric:tabular-nums}
.seg-card-cagr.is-up{color:var(--c-apps)}
.seg-card-cagr.is-down{color:var(--c-hardware)}
.seg-check{
margin-top:.75rem;
font-size:var(--fs-small);
color:var(--ink-3);
line-height:1.35;
}
.seg-title-dot{
display:inline-block;width:.625rem;height:.625rem;border-radius:999px;
margin-right:.5rem;vertical-align:middle;
}
.seg-chart{min-width:0}
.seg-sub-title{
margin:1rem 0 .75rem;
font-size:var(--fs-small);
font-weight:500;
color:var(--ink-3);
text-transform:uppercase;
letter-spacing:.04em;
}
.seg-tree-note{margin-top:.875rem;font-size:var(--fs-small);color:var(--ink-3)}
.seg-crumbs{
display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .375rem;
margin-bottom:1rem;font-size:var(--fs-small);
}
.seg-crumb-part{display:inline-flex;align-items:center;gap:.375rem;min-width:0}
.seg-crumb-sep{color:var(--ink-4)}
.seg-crumb{
padding:.125rem .375rem;border-radius:var(--radius-btn);
color:var(--accent);font-size:var(--fs-small);
}
button.seg-crumb:hover{background:var(--bg-soft);color:var(--accent-hot)}
.seg-crumb.is-current{color:var(--ink);font-weight:500}
.seg-table table.data tfoot td{
border-top:1px solid var(--border);
border-bottom:0;
color:var(--ink);
font-weight:500;
}
.seg-table table.data tbody tr:last-child td{border-bottom:1px solid var(--border)}
.seg-choose{display:flex;flex-wrap:wrap;gap:.5rem}
.seg-choose-item{
display:inline-flex;align-items:center;gap:.25rem;
padding:.375rem .75rem;
border:1px solid var(--border);border-radius:999px;
font-size:var(--fs-small);color:var(--ink-2);
}
.seg-choose-item:hover{border-color:var(--ink-4);color:var(--ink)}
.seg-table table.data td.name{min-width:9rem}
/*! suggest.css */
.suggest{position:relative;flex:0 1 22rem;min-width:14rem}
.suggest .topbar-search{width:100%}
.suggest.is-inline{flex:none;width:min(28rem,100%)}
.suggest.is-hero{flex:none;width:min(34rem,100%)}
.suggest.is-hero .topbar-search{padding:.75rem 1rem;border-radius:var(--radius-card)}
.suggest.is-hero .topbar-search svg{width:1.25rem;height:1.25rem}
.suggest.is-hero .topbar-search input{font-size:var(--fs-body)}
.sg-hero{
display:flex;flex-direction:column;gap:.5rem;
margin-top:var(--gap);margin-bottom:var(--gap);
}
.sg-hero-label{
margin:0;
font-size:var(--fs-sub);font-weight:600;line-height:1.3;
color:var(--ink);
}
.sg-hero-note{
margin:0;max-width:44rem;
font-size:var(--fs-small);line-height:1.4;
color:var(--ink-3);
}
.sg-panel{
position:absolute;top:calc(100% + .375rem);left:0;right:0;
z-index:60;
max-height:min(28rem,calc(100vh - var(--topbar) - 2rem));
overflow-y:auto;overscroll-behavior:contain;
padding:.375rem;
background:var(--bg-card);
border:1px solid var(--border);
border-radius:var(--radius-card);
box-shadow:var(--shadow);
}
.sg-panel[hidden]{display:none}
.sg-group + .sg-group{margin-top:.25rem;border-top:1px solid var(--border);padding-top:.25rem}
.sg-group-title{
display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;
padding:.375rem .5rem .25rem;
font-size:var(--fs-small);font-weight:600;color:var(--ink-3);
letter-spacing:.01em;
}
.sg-more{font-weight:400;color:var(--ink-4)}
.sg-list{display:flex;flex-direction:column}
.sg-item{
display:flex;align-items:center;gap:.5rem;
width:100%;padding:.4375rem .5rem;
border-radius:.5rem;
text-align:left;color:var(--ink);
transition:background .12s var(--ease);
}
.sg-item:hover{color:var(--ink)}
.sg-item.is-active{background:var(--bg-soft)}
.sg-item svg{width:1rem;height:1rem;flex:0 0 auto;color:var(--ink-3)}
.sg-dot{flex:0 0 auto;width:.5rem;height:.5rem;border-radius:999px}
.sg-body{display:flex;flex-direction:column;gap:.1875rem;min-width:0;flex:1}
.sg-label{
font-size:var(--fs-small);line-height:1.3;color:var(--ink);
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sg-label b{font-weight:600}
.sg-meta{
font-size:var(--fs-small);line-height:1.3;color:var(--ink-3);
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sg-hit{background:#FFD9B0;color:var(--ink);border-radius:.1875rem;padding:0 .0625rem}
.sg-amount{
flex:0 0 auto;
font-size:var(--fs-small);color:var(--ink-3);
font-variant-numeric:tabular-nums;
}
.sg-group.is-tail{margin-top:.25rem;border-top:1px solid var(--border);padding-top:.25rem}
.sg-item.is-query .sg-label{color:var(--ink-2)}
.sg-item.is-query .sg-meta{white-space:normal}
.sg-empty{padding:.75rem .5rem;font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.topbar-account{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}
.account-badge-wrap{position:relative}
.account-actions{display:flex;align-items:center;gap:.5rem}
.account-badge{
display:inline-flex;align-items:center;gap:.375rem;
padding:.375rem .625rem;border-radius:999px;
background:var(--bg-soft);border:1px solid var(--border);
font-size:var(--fs-small);color:var(--ink-2);
transition:border-color .16s var(--ease),color .16s var(--ease);
}
.account-badge:hover{border-color:var(--ink-4);color:var(--ink)}
.account-badge svg{width:.875rem;height:.875rem;color:var(--ink-3)}
.account-caret{opacity:.7}
.account-pop{
position:absolute;top:calc(100% + .5rem);right:0;
z-index:60;
width:22rem;max-width:calc(100vw - 2rem);
padding:var(--pad-panel);
display:flex;flex-direction:column;gap:.5rem;
background:var(--bg-card);
border:1px solid var(--border);
border-radius:var(--radius-panel);
box-shadow:var(--shadow);
}
.account-pop-title{font-size:var(--fs-body);font-weight:600;color:var(--ink)}
.account-pop-line{font-size:var(--fs-small);line-height:1.4;color:var(--ink-2)}
.account-pop-line.is-next{color:var(--ink-3)}
.account-pop-seat{font-size:var(--fs-small);line-height:1.4;color:var(--ink-3)}
.account-pop-seat b{color:var(--ink-2);font-weight:600}
.account-pop-note{
margin-top:.25rem;padding-top:.625rem;border-top:1px solid var(--border);
font-size:var(--fs-small);line-height:1.4;color:var(--ink-3);
}
@media (max-width:900px){
.suggest{flex:1 1 100%}
.topbar-account{width:100%;justify-content:flex-start}
.account-pop{right:auto;left:0}
}
/*! table-gate.css */
.dt-table thead th.is-locked{color:var(--ink-3)}
.dt-lock{
display:inline-flex;align-items:center;gap:.375rem;min-width:0;
color:inherit;text-decoration:none;
}
.dt-lock .icon{width:.875rem;height:.875rem;flex:none;color:var(--ink-4)}
.dt-lock:hover,.dt-lock:hover .icon{color:var(--accent)}
.dt-lock:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.25rem}
.dt-mask{
display:inline-flex;align-items:center;justify-content:center;
color:var(--ink-4);
padding:.375rem;margin:-.375rem;
border-radius:.25rem;
user-select:none;
}
.dt-mask .icon{width:.875rem;height:.875rem;flex:none}
.dt-mask:hover{color:var(--accent);background:var(--bg-soft)}
.dt-mask:focus-visible{outline:2px solid var(--accent);outline-offset:0}
.dt-menu-lock{width:.875rem;height:.875rem;flex:none;color:var(--ink-4)}
.dt-ghosts tr{--dt-row-bg:var(--bg-card)}
.dt-ghosts tr:nth-child(even){--dt-row-bg:var(--bg-soft)}
.dt-ghosts td{
color:var(--ink-4);
pointer-events:none;
}
.dt-ghost-bar{
display:block;
height:.5rem;width:60%;
border-radius:999px;
background:var(--ink-4);
opacity:.55;
filter:blur(2px);
}
.dt-table td.num .dt-ghost-bar{margin-left:auto}
.dt-tail{
padding:.75rem var(--pad-panel) .875rem;
border-top:1px solid var(--border);
background:linear-gradient(to bottom,var(--bg-soft),var(--bg-card));
}
.dt-tail-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}
.dt-tail-lock{
width:1rem;height:1rem;flex:none;
align-self:center;color:var(--ink-4);
}
.dt-tail-text{
min-width:0;flex:1 1 20rem;
color:var(--ink);font-weight:500;line-height:1.35;
}
.dt-tail-hint{
margin-top:.3125rem;
font-size:var(--fs-small);color:var(--ink-3);line-height:1.4;
}
/*! table.css */
.dt{
display:flex;flex-direction:column;min-width:0;
background:var(--bg-card);
border-radius:var(--radius-panel);
box-shadow:var(--shadow);
}
.dt-toolbar{
display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;
padding:.875rem var(--pad-panel);
border-bottom:1px solid var(--border);
}
.dt-toolbar-spacer{flex:1}
.dt-count{font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap}
.dt-limit{font-size:var(--fs-small);color:var(--accent-hot);line-height:1.35}
.dt-limit:empty{display:none}
.dt-host{min-width:0}
.dt-menu-wrap{position:relative}
.dt-menu{
position:absolute;top:calc(100% + .5rem);right:0;z-index:55;
width:min(17rem,calc(100vw - 3rem));
max-height:min(24rem,calc(100vh - 10rem));
overflow-y:auto;
padding:.75rem;
background:var(--bg-card);border-radius:var(--radius-panel);box-shadow:var(--shadow);
}
.dt-menu::-webkit-scrollbar{width:4px}
.dt-menu::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:999px}
.dt-menu-head{
padding:.25rem .375rem .5rem;
font-size:var(--fs-small);font-weight:600;
text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);
}
.dt-menu-list{display:flex;flex-direction:column;gap:.125rem}
.dt-menu-item{
display:flex;align-items:center;gap:.5rem;
padding:.375rem;border-radius:.4rem;cursor:pointer;
font-size:var(--fs-small);color:var(--ink-2);
transition:background .14s var(--ease);
}
.dt-menu-item:hover{background:var(--bg-soft)}
.dt-menu-item.is-locked{color:var(--ink-4);cursor:default}
.dt-menu-item input{accent-color:var(--accent);width:.875rem;height:.875rem;flex:0 0 auto}
.dt-scroll{
overflow:auto;
max-height:var(--dt-max-h,calc(100vh - var(--topbar) - 10rem));
border-radius:0 0 var(--radius-panel) var(--radius-panel);
overscroll-behavior:contain;
}
.dt-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.dt-scroll::-webkit-scrollbar{width:8px;height:8px}
.dt-scroll::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:999px}
.dt-sentinel{height:1px}
.dt-table{
width:100%;
border-collapse:separate;border-spacing:0;
font-size:var(--fs-body);
line-height:1.35;
}
.dt-table th,
.dt-table td{
padding:.75rem 1rem;
text-align:left;white-space:nowrap;
vertical-align:middle;
}
.dt-table th:first-child,
.dt-table td:first-child{padding-left:var(--pad-panel)}
.dt-table th:last-child,
.dt-table td:last-child{padding-right:var(--pad-panel)}
.dt-table .num{text-align:right;font-variant-numeric:tabular-nums}
.dt-table thead th{
position:sticky;top:0;z-index:3;
background:var(--bg-soft);
font-weight:600;color:var(--ink);
border-bottom:1px solid var(--border);
}
.dt-table thead th.is-sticky{z-index:4}
.dt-table thead th[title] span:first-child{
text-decoration:underline dotted var(--ink-4);text-underline-offset:3px;
}
.dt-sort{
display:inline-flex;align-items:baseline;gap:.375rem;
font:inherit;color:inherit;
transition:color .16s var(--ease);
}
.dt-sort:hover{color:var(--accent)}
.dt-sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.25rem}
.dt-arrow{display:inline-block;min-width:.7em;color:var(--accent)}
.dt-table thead th.is-sorted{background:color-mix(in srgb,var(--accent) 7%,var(--bg-soft))}
.dt-table td{position:relative;color:var(--ink-2);background:var(--dt-row-bg)}
.dt-table tbody tr{--dt-row-bg:var(--bg-card)}
.dt-table tbody tr:nth-child(even){--dt-row-bg:var(--bg-soft)}
.dt-table tbody tr:hover{--dt-row-bg:color-mix(in srgb,var(--accent) 6%,var(--bg-card))}
.dt-table tbody tr.is-selected{--dt-row-bg:color-mix(in srgb,var(--accent) 12%,var(--bg-card))}
.dt-table tbody tr.is-pickable{cursor:pointer}
.dt-table tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.dt-table tbody td{transition:background .18s var(--ease)}
.dt-table tbody tr:hover td:first-child::before,
.dt-table tbody tr.is-selected td:first-child::before{
content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
background:var(--accent);
}
.dt-table tbody .name{color:var(--ink);font-weight:500}
.dt-table .is-sticky{position:sticky;z-index:2;background:var(--dt-row-bg)}
.dt-table thead .is-sticky{background:var(--bg-soft)}
.dt-scroll.is-scrolled .dt-table .is-sticky{
box-shadow:8px 0 10px -8px rgba(26,27,31,.35);
}
.dt-table .dt-sel{width:2.5rem;padding-right:0}
.dt-table .dt-sel input{
accent-color:var(--accent);
width:1rem;height:1rem;cursor:pointer;display:block;
}
.dt-table .dt-sel input:disabled{cursor:not-allowed;opacity:.35}
.dt-table tfoot tr{--dt-row-bg:var(--bg-soft)}
.dt-table tfoot td{
position:sticky;bottom:0;z-index:3;
font-weight:600;color:var(--ink);
border-top:1px solid var(--border);
}
.dt-table tfoot td.is-sticky{z-index:4}
.dt-empty{
display:grid;place-items:center;gap:.5rem;
padding:3rem var(--pad-panel);text-align:center;
}
.dt-empty-title{font-size:var(--fs-sub);font-weight:600;color:var(--ink-2);line-height:1.4}
.dt-empty-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;max-width:26rem}
.dt-note{
padding:.875rem var(--pad-panel);
border-top:1px solid var(--border);
font-size:var(--fs-small);color:var(--ink-3);line-height:1.35;
}
.dt-hidden{
position:absolute;width:1px;height:1px;
margin:-1px;padding:0;border:0;
clip-path:inset(50%);overflow:hidden;white-space:nowrap;
}
@media (max-width:960px){
.dt-toolbar{padding:.75rem 1rem}
.dt-table th,.dt-table td{padding:.625rem .75rem}
.dt-table th:first-child,.dt-table td:first-child{padding-left:1rem}
.dt-table th:last-child,.dt-table td:last-child{padding-right:1rem}
.dt-empty,.dt-note{padding-left:1rem;padding-right:1rem}
}
.dt-pager{
display:flex;align-items:center;gap:.5rem;
margin:.75rem .25rem .25rem;
}
.dt-pager.is-top{margin:.25rem .25rem .75rem}
.dt-pager[hidden]{display:none}
.dt-page-size{
appearance:none;-webkit-appearance:none;
padding:.3125rem 1.75rem .3125rem .625rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
background:var(--bg-card) no-repeat right .5rem center/.75rem;
background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
font-family:inherit;font-size:var(--fs-small);color:var(--ink-2);cursor:pointer;
}
.dt-page-size:hover{border-color:var(--ink-4)}
.dt-page-size:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.dt-page-btn{
display:grid;place-items:center;
width:2rem;height:2rem;
border:1px solid var(--border);border-radius:var(--radius-btn);
background:var(--bg-card);color:var(--ink-2);
transition:background .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease);
}
.dt-page-btn svg{width:1rem;height:1rem}
.dt-page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.dt-page-btn:disabled{opacity:.4;cursor:default}
.dt-page-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.dt-page-label{
min-width:5.5rem;text-align:center;
font-size:var(--fs-small);color:var(--ink-3);font-variant-numeric:tabular-nums;
}
/*! taxonomy.css */
.tax-controls{
display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;
margin-bottom:.75rem;
}
.tax-control{display:flex;align-items:center;gap:.5rem;min-width:0}
.tax-control-label{font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap}
.tax-tree .panel-body{display:flex;flex-direction:column}
.tax-tree .chart{height:auto;flex:1 1 auto;min-height:var(--chart-h)}
.tax-node{display:flex;flex-direction:column;gap:.75rem}
.tax-node-head{display:flex;align-items:flex-start;gap:.625rem}
.tax-node-dot{
width:.75rem;height:.75rem;border-radius:999px;
flex:0 0 auto;margin-top:.3rem;
}
.tax-node-title{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.tax-node-name{font-size:var(--fs-sub);font-weight:700;line-height:1.2}
.tax-node-level{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.tax-node-path{
font-size:var(--fs-small);color:var(--ink-3);line-height:1.4;
padding:.5rem .625rem;border-radius:var(--radius-card);background:var(--bg-soft);
}
.tax-stats{
display:grid;gap:.5rem .75rem;
grid-template-columns:repeat(2,minmax(0,1fr));
}
.tax-stat{
display:flex;flex-direction:column;gap:.125rem;
padding:.5rem .625rem;border-radius:var(--radius-card);background:var(--bg-soft);
}
.tax-stat-label{font-size:var(--fs-small);color:var(--ink-3);line-height:1.3}
.tax-stat-value{
font-size:var(--fs-body);font-weight:600;line-height:1.25;
font-variant-numeric:tabular-nums;
}
.tax-sub-title{
font-size:var(--fs-small);font-weight:700;color:var(--ink-3);
text-transform:uppercase;letter-spacing:.04em;line-height:1.3;
margin-top:.25rem;
}
.tax-note{font-size:var(--fs-small);color:var(--ink-3);line-height:1.4}
.tax-top{display:flex;flex-direction:column;gap:.5rem}
.tax-top-item{
display:flex;flex-direction:column;gap:.25rem;
padding:.5rem .625rem;border-radius:var(--radius-card);
color:var(--ink);
transition:background .18s var(--ease);
}
.tax-top-item:hover{background:var(--bg-soft);color:var(--ink)}
.tax-top-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tax-top-head{display:flex;align-items:baseline;gap:.5rem;justify-content:space-between}
.tax-top-name{
font-size:var(--fs-body);font-weight:500;line-height:1.3;
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.tax-top-value{font-size:var(--fs-body);font-weight:600;font-variant-numeric:tabular-nums;flex:0 0 auto}
.tax-top-track{height:.25rem;border-radius:999px;background:var(--bg-soft);overflow:hidden}
.tax-top-item:hover .tax-top-track{background:var(--bg-card)}
.tax-top-fill{height:100%;border-radius:999px}
.tax-top-meta{font-size:var(--fs-small);color:var(--ink-3);line-height:1.3}
.tax-acts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}
.tax-check table.data tr.is-total td{
font-weight:700;color:var(--ink);
border-top:1px solid var(--border);
}
.tax-check table.data tr.is-ok td{color:var(--c-apps)}
.tax-check table.data tr.is-bad td{color:var(--c-hardware);font-weight:700}
.tax-inner{margin-top:var(--gap)}
.tax-inner .tax-sub-title{margin-bottom:.5rem}
.tax-cell-name{display:inline-flex;align-items:flex-start;gap:.125rem;line-height:1.3}
.tax-cell-name span:last-child{white-space:normal}
@media (max-width:960px){
.tax-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
.tax-stats{grid-template-columns:minmax(0,1fr)}
}
/*! ui.css */
.panel-head-main{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.panel-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;flex:0 1 auto;min-width:0}
.panel-act{
display:inline-flex;align-items:center;gap:.375rem;
padding:.3125rem .5rem;border-radius:var(--radius-btn);
font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap;
transition:background .16s var(--ease),color .16s var(--ease);
}
.panel-act:hover{background:var(--bg-soft);color:var(--ink)}
.panel-act:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.panel-act.is-on{color:var(--accent)}
.panel-act[disabled]{opacity:.4;cursor:default;background:none;color:var(--ink-3)}
.panel-act svg{width:.9375rem;height:.9375rem;flex:0 0 auto}
a.panel-act{color:var(--ink-3)}
a.panel-act:hover{color:var(--ink)}
.panel-foot.is-stack{display:flex;flex-direction:column;gap:.5rem}
.panel-foot.is-stack .coverage{margin-top:0}
.panel-foot.is-stack .note-overlap{margin-top:0}
.panel-foot-text{font-size:var(--fs-small);color:var(--ink-3);line-height:1.35}
.tip{
position:fixed;left:0;top:0;z-index:80;
pointer-events:none;
max-width:22rem;
padding:.5rem .625rem;
background:var(--bg-card);
border-radius:var(--radius-card);
box-shadow:var(--shadow);
font-size:var(--fs-small);color:var(--ink-2);line-height:1.35;
opacity:0;visibility:hidden;
transition:opacity .12s var(--ease);
}
.tip.is-on{opacity:1;visibility:visible}
.tip-title{
display:flex;align-items:center;gap:.4375rem;
font-size:var(--fs-small);font-weight:600;color:var(--ink);
}
.tip-rows{display:flex;flex-direction:column;gap:.1875rem;margin-top:.375rem}
.tip-row{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}
.tip-label{display:inline-flex;align-items:center;gap:.375rem;color:var(--ink-3)}
.tip-value{font-weight:500;color:var(--ink);white-space:nowrap}
.tip-note{margin-top:.375rem;color:var(--ink-4)}
@media (prefers-reduced-motion:reduce){
.tip{transition:none}
}
.empty-actions{
display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
gap:.625rem;margin-top:.75rem;
}
.toggle{
display:inline-flex;flex-wrap:wrap;gap:.125rem;max-width:100%;
padding:.1875rem;
background:var(--bg-soft);border-radius:var(--radius-btn);
}
.toggle-opt{
display:inline-flex;align-items:center;gap:.375rem;
padding:.375rem .75rem;border-radius:.5rem;
font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap;
transition:background .16s var(--ease),color .16s var(--ease);
}
.toggle-opt:hover{color:var(--ink)}
.toggle-opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.toggle-opt.is-on{
background:var(--bg-card);color:var(--ink);font-weight:500;
box-shadow:var(--shadow-soft);
}
.toggle-opt svg{width:1rem;height:1rem;flex:0 0 auto}
.toggle.is-small .toggle-opt{padding:.25rem .5rem}
.select{position:relative;display:inline-flex}
.select-btn{justify-content:flex-start;min-width:9rem;max-width:18rem}
.select-btn.is-on{border-color:var(--ink-4);color:var(--ink)}
.select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.select-caret{margin-left:.25rem;color:var(--ink-4);flex:0 0 auto}
.select-panel{
position:absolute;top:calc(100% + .375rem);left:0;z-index:56;
display:flex;flex-direction:column;
min-width:100%;width:max-content;
max-width:min(24rem,calc(100vw - 3rem));
background:var(--bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow);
overflow:hidden;
}
.select-panel.is-right{left:auto;right:0}
.select-search{
padding:.5rem .625rem;
border:0;border-bottom:1px solid var(--border);outline:0;
background:none;font-size:var(--fs-small);
}
.select-search::placeholder{color:var(--ink-4)}
.select-body{max-height:16rem;overflow-y:auto;padding:.25rem}
.select-body::-webkit-scrollbar{width:4px}
.select-body::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:999px}
.select-list{display:flex;flex-direction:column;gap:.0625rem}
.select-opt{
display:flex;align-items:center;gap:.5rem;
padding:.375rem .5rem;border-radius:.4rem;
font-size:var(--fs-small);color:var(--ink-2);text-align:left;
transition:background .14s var(--ease);
}
.select-opt:hover{background:var(--bg-soft)}
.select-opt:focus-visible{background:var(--bg-soft);outline:0}
.select-opt.is-on{color:var(--ink);font-weight:500}
.select-opt-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-empty{padding:.5rem .625rem;font-size:var(--fs-small);color:var(--ink-4)}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem}
.legend-item{
display:inline-flex;align-items:center;gap:.4375rem;
padding:.125rem .25rem;border-radius:.4rem;
font-size:var(--fs-small);color:var(--ink-2);min-width:0;
transition:background .14s var(--ease),opacity .14s var(--ease);
}
button.legend-item:hover{background:var(--bg-soft)}
.legend-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.legend-item.is-off{opacity:.42}
.legend-item.is-off .legend-label{text-decoration:line-through}
.legend-dot{
width:.625rem;height:.625rem;border-radius:.25rem;
flex:0 0 auto;background:var(--ink-4);
}
.legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.legend-value{color:var(--ink);font-weight:500;white-space:nowrap}
.legend.is-stack{flex-direction:column;align-items:stretch;gap:.125rem}
.legend.is-stack .legend-item{justify-content:space-between}
.legend.is-stack .legend-label{flex:1}
.topbar .btn.is-locked{opacity:.55;cursor:not-allowed}
.topbar .btn.is-locked:hover{background:var(--surface)}
