.gm-root{background:var(--bg,#0d0f12);width:100%;height:100%;position:relative;overflow:hidden}.gm-canvas{position:absolute;inset:0}.gm-root .maplibregl-ctrl-attrib{background:var(--panel,#14171b);color:var(--dim,#5f6770);font:10px/16px var(--font,"IBM Plex Sans", system-ui, sans-serif);border-radius:0}.gm-root .maplibregl-ctrl-attrib a{color:var(--muted,#8a929b)}.gm-root .maplibregl-ctrl-attrib.maplibregl-compact{border-radius:2px}.gm-root .maplibregl-ctrl-attrib-button{filter:invert()opacity(.6)}.gm-tooltip{z-index:3;border:1px solid var(--line,#262b31);background:var(--panel,#14171b);min-width:180px;color:var(--text,#d6dbe1);font:12px/18px var(--font,"IBM Plex Sans", system-ui, sans-serif);pointer-events:none;opacity:0;will-change:transform;border-radius:0;padding:6px 8px;transition:opacity .12s linear;position:absolute;top:0;left:0}.gm-tooltip.is-visible{opacity:1}.gm-tt-title{font-weight:600}.gm-tt-sub{border-bottom:1px solid var(--line,#262b31);color:var(--muted,#8a929b);margin-bottom:4px;padding-bottom:4px;font-size:11px}.gm-tt-row{justify-content:space-between;gap:16px;display:flex}.gm-tt-row>span:first-child{color:var(--muted,#8a929b)}.gm-tt-row>span:last-child{font-family:var(--mono,"IBM Plex Mono", ui-monospace, monospace);font-variant-numeric:tabular-nums;font-size:11px}.gm-tt-bar{background:var(--line,#262b31);height:2px;margin:4px 0 2px}.gm-tt-bar>i{height:100%;display:block}.gm-dc{box-sizing:border-box;border:1px solid var(--bg,#0d0f12);background:var(--accent,#4c9eff);cursor:grab;width:14px;height:14px}.gm-dc:before{content:"";position:absolute;inset:-5px}.gm-dc.is-dragging{cursor:grabbing}.gm-dc:hover,.gm-dc.is-selected,.gm-dc.is-dragging{z-index:2}.gm-dc.is-selected{outline:1px solid var(--text,#d6dbe1);outline-offset:1px}.gm-dc.is-highlighted{border-color:var(--bad,#f85149)}.gm-dc-label{border:1px solid var(--line-2,#333941);background:var(--panel,#14171b);color:var(--text,#d6dbe1);font:500 11px/18px var(--font,"IBM Plex Sans", system-ui, sans-serif);white-space:nowrap;pointer-events:none;opacity:0;padding:0 6px;transition:opacity .14s linear,transform .14s ease-out;position:absolute;top:50%;left:19px;transform:translate(-4px,-50%)}.gm-dc:hover .gm-dc-label,.gm-dc.is-selected .gm-dc-label,.gm-dc.is-dragging .gm-dc-label{opacity:1;transform:translateY(-50%)}.gm-dc.is-selected .gm-dc-label{border-color:var(--accent,#4c9eff)}.gm-dc-sep{color:var(--dim,#5f6770)}.gm-dc-mw{font-family:var(--mono,"IBM Plex Mono", ui-monospace, monospace);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.gm-tooltip,.gm-dc-label{transition:none}}.gr-label,.gr-h3,.gr-panel__eyebrow,.gr-legend__title,.gr-totals__label,.gr-card__kind,.gr-chart__peak-label,.gr-timeline__day,.gr-card__stats dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.gr-text-ok{color:var(--ok)}.gr-text-bad{color:var(--bad)}button{font:inherit;color:inherit}.gr-hosting__value,.gr-violation__pct,.gr-violation__window,.gr-chip,.gr-totals__value,.gr-alt__meta,.gr-mw__input input,.gr-mw__scale,.gr-bar__legend,.gr-timeline__time,.gr-timeline__hours,.gr-card__util-value,.gr-card__stats dd,.gr-scenario__value,.gr-chart__peak-value,.gr-chart__tooltip-val,.gr-chart__tooltip-time,.gr-chart__ylabel,.gr-chart__xlabel,.gr-legend__ticks,.gr-panel__kv,.gr-count{font-family:var(--mono);font-variant-numeric:tabular-nums}.gr-btn{border:1px solid var(--line-2);border-radius:var(--r);background:var(--panel-2);cursor:pointer;height:26px;transition:background var(--t) var(--ease), border-color var(--t) var(--ease);justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.gr-btn:hover{background:var(--panel-3)}.gr-btn:focus-visible,.gr-icon-btn:focus-visible,.gr-segmented button:focus-visible,.gr-select:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.gr-btn--primary{border-color:var(--accent);background:var(--accent);color:#fff;width:100%}.gr-btn--primary:hover{background:#3b8de8}.gr-btn--ghost{width:100%}.gr-btn--small{flex-shrink:0;height:22px;padding:0 8px;font-size:11.5px}.gr-icon-btn{border-radius:var(--r);width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.gr-icon-btn:hover{background:var(--panel-3);color:var(--text)}.gr-range{--fill:50%;appearance:none;cursor:pointer;background:0 0;width:100%;height:16px;margin:0}.gr-range::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--fill), var(--line-2) var(--fill));height:2px}.gr-range::-moz-range-track{background:var(--line-2);height:2px}.gr-range::-moz-range-progress{background:var(--accent);height:2px}.gr-range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text);border:0;border-radius:0;width:10px;height:14px;margin-top:-6px}.gr-range::-moz-range-thumb{background:var(--text);border:0;border-radius:0;width:10px;height:14px}.gr-range:focus-visible{outline:none}.gr-range:focus-visible::-webkit-slider-thumb{background:var(--accent)}.gr-glass,.gr-card,.gr-legend,.gr-timeline{background:var(--panel)}.gr-panel{width:100%;max-height:100%;color:var(--text);background:var(--panel);flex-direction:column;font-size:12px;display:flex;overflow-y:auto}.gr-panel__header{padding:10px 12px 6px}.gr-panel__title-row{align-items:center;gap:4px;margin:2px 0 4px -4px;display:flex}.gr-panel__name{border-radius:var(--r);min-width:0;color:var(--text);font:inherit;background:0 0;border:1px solid #0000;flex:1;padding:2px 4px;font-size:14px;font-weight:600}.gr-panel__name:hover{border-color:var(--line-2)}.gr-panel__name:focus{border-color:var(--accent);background:var(--panel-2);outline:none}.gr-panel__site{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.gr-panel__site svg{color:var(--accent);flex-shrink:0}.gr-panel__kv{border:1px solid var(--line-2);border-radius:var(--r);color:var(--muted);padding:0 4px;font-size:10.5px}.gr-panel__body{animation:gr-fade .16s var(--ease) both}.gr-panel__footer{border-top:1px solid var(--line);color:var(--dim);margin-top:auto;padding:8px 12px;font-size:11px}.gr-section{border-top:1px solid var(--line);padding:10px 12px}.gr-section--controls{border-top:0;gap:8px;padding-top:4px;display:grid}.gr-section--action{border-top:0;padding-top:0}.gr-h3{align-items:center;gap:6px;margin:0 0 6px;display:flex}.gr-h3__aside{letter-spacing:0;text-transform:none;color:var(--dim);margin-left:auto;font-weight:400}.gr-count{border:1px solid var(--bad);min-width:16px;color:var(--bad);text-align:center;letter-spacing:0;padding:0 4px;font-size:10px;line-height:14px}.gr-mw{gap:4px;display:grid}.gr-mw__top{justify-content:space-between;align-items:center;display:flex}.gr-mw__input{border:1px solid var(--line-2);border-radius:var(--r);background:var(--panel-2);align-items:baseline;gap:4px;height:24px;padding:0 6px;display:flex}.gr-mw__input:focus-within{border-color:var(--accent)}.gr-mw__input input{width:48px;color:var(--text);text-align:right;background:0 0;border:0;font-size:13px;line-height:22px}.gr-mw__input input:focus{outline:none}.gr-mw__input span{color:var(--muted);font-size:11px}.gr-mw__scale{color:var(--dim);justify-content:space-between;font-size:10px;display:flex}.gr-segmented{border:1px solid var(--line-2);border-radius:var(--r);grid-template-columns:repeat(3,1fr);display:grid}.gr-segmented button{border:0;border-right:1px solid var(--line-2);background:var(--panel-2);height:22px;color:var(--muted);cursor:pointer;transition:background var(--t) var(--ease), color var(--t) var(--ease);font-size:11.5px}.gr-segmented button:last-child{border-right:0}.gr-segmented button:hover{color:var(--text)}.gr-segmented button.is-active{background:var(--accent-bg);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.gr-verdict{--tone:var(--ok);border:1px solid var(--line);border-left:3px solid var(--tone);background:color-mix(in srgb, var(--tone) 8%, var(--panel));transition:border-color .3s var(--ease), background .3s var(--ease);align-items:center;gap:10px;padding:8px 10px;display:flex;position:relative}.gr-verdict--warn{--tone:var(--warn)}.gr-verdict--bad{--tone:var(--bad)}.gr-verdict__icon{width:18px;height:18px;color:var(--tone);flex-shrink:0;place-items:center;display:grid}.gr-verdict__icon svg{stroke-width:2.2px;width:16px;height:16px}.gr-verdict__label{color:var(--tone);font-size:13px;font-weight:600}.gr-verdict__note{color:var(--muted);margin-top:1px;font-size:11.5px}.gr-verdict__tag{color:var(--tone);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:600;position:absolute;top:6px;right:8px}.gr-hosting{align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.gr-hosting__value{font-size:22px;font-weight:500;line-height:1}.gr-hosting__unit{color:var(--muted);font-size:11.5px}.gr-bar{background:var(--panel-3);height:6px;position:relative}.gr-bar__fill,.gr-bar__excess,.gr-bar__headroom{transition:left .3s var(--ease), width .3s var(--ease);position:absolute;top:0;bottom:0}.gr-bar__fill{background:var(--ok);left:0}.gr-bar__headroom{background:color-mix(in srgb, var(--ok) 30%, transparent)}.gr-bar__excess{background:repeating-linear-gradient(-45deg, var(--bad) 0 3px, transparent 3px 6px);border:1px solid var(--bad)}.gr-bar__marker{background:var(--text);width:2px;transition:left .3s var(--ease);margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.gr-bar__legend{color:var(--muted);justify-content:space-between;margin-top:5px;font-size:11px;display:flex}.gr-bar__legend span:last-child{font-weight:600}.gr-list{border-top:1px solid var(--line);gap:0;margin:0;padding:0;list-style:none;display:grid}.gr-list>li{border-bottom:1px solid var(--line)}.gr-empty{color:var(--ok);align-items:center;gap:6px;font-size:12px;display:flex}.gr-violation{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:5px 4px;display:flex}.gr-violation:hover{background:var(--panel-2)}.gr-dot{flex-shrink:0;width:6px;height:6px}.gr-violation__main{flex:1;min-width:0;display:grid}.gr-violation__name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.gr-violation__window{color:var(--muted);font-size:10.5px}.gr-violation__pct{font-size:12.5px;font-weight:500}.gr-rec{animation:gr-fade .16s var(--ease) both;background:0 0;gap:8px;padding:6px 4px;display:flex}.gr-rec__icon{border:1px solid var(--line-2);border-radius:var(--r);width:22px;height:22px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.gr-rec__icon svg{width:13px;height:13px}.gr-rec__main{flex:1;min-width:0}.gr-rec__title{font-size:12px;line-height:1.35}.gr-chips{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.gr-chip{border:1px solid var(--line-2);border-radius:var(--r);color:var(--muted);padding:0 5px;font-size:10.5px;line-height:16px}.gr-rec.is-applied{background:#3d9bff14;box-shadow:inset 3px 0 #3d9bff,0 0 14px #3d9bff59}.gr-rec.is-applied .gr-rec__icon{color:#3d9bff;border-color:#3d9bff;box-shadow:0 0 8px #3d9bff99}.gr-chip--applied{color:#3d9bff;border-color:#3d9bff}.gr-chip--mw{border-color:color-mix(in srgb, var(--ok) 50%, transparent);color:var(--ok)}.gr-totals{border:1px solid var(--line);grid-template-columns:1fr 1fr;margin-top:8px;display:grid}.gr-totals>div{padding:6px 8px}.gr-totals>div+div{border-left:1px solid var(--line)}.gr-totals__value{margin-top:1px;font-size:14px;font-weight:500}.gr-alt{align-items:center;gap:8px;padding:5px 4px;display:flex}.gr-alt__main{flex:1;min-width:0}.gr-alt__name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.gr-alt__meta{color:var(--muted);font-size:10.5px}.gr-placeholder{color:var(--muted);align-items:center;gap:8px;padding-top:14px;padding-bottom:14px;font-size:12px;display:flex}.gr-placeholder svg{color:var(--accent);flex-shrink:0}.gr-skel{background:var(--panel-2);animation:1.1s ease-in-out infinite alternate gr-pulse}@keyframes gr-pulse{0%{opacity:.5}to{opacity:1}}@keyframes gr-fade{0%{opacity:0}to{opacity:1}}.gr-chart{-webkit-user-select:none;user-select:none;flex-direction:column;width:100%;display:flex}.gr-chart__plot{flex:1;min-height:0;position:relative}.gr-chart__head{justify-content:space-between;align-items:center;gap:12px;min-height:22px;padding-bottom:2px;display:flex}.gr-chart__legend{min-width:0;color:var(--text);flex-wrap:wrap;align-items:center;gap:2px 12px;font-size:11px;display:flex}.gr-chart__key{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.gr-chart__key i{width:10px;height:2px}.gr-chart__key--style{color:var(--muted);gap:4px;margin-right:6px;font-size:11px}.gr-chart__peak{flex-shrink:0;align-items:baseline;gap:6px;display:flex}.gr-chart__peak-value{font-size:13px;font-weight:500;transition:color .3s}.gr-chart__peak-value--after{animation:gr-fade .3s var(--ease) both .2s}.gr-chart__peak-arrow{color:var(--dim)}.gr-chart__svg{display:block;position:absolute;inset:0;overflow:visible}.gr-chart__grid{stroke:var(--line)}.gr-chart__ylabel,.gr-chart__xlabel{fill:var(--dim);font-size:10px}.gr-chart__ref{stroke-width:1px;stroke-dasharray:3 3;opacity:.9}.gr-chart__reflabel{letter-spacing:.05em;text-transform:uppercase;font-size:9.5px;font-weight:600}.gr-chart__line{fill:none;stroke-width:1.5px;stroke-linejoin:round;transition:d .7s var(--ease)}.gr-chart__ghost{fill:none;stroke-width:1px;stroke-dasharray:3 3;opacity:0;transition:opacity .4s var(--ease) .15s}.gr-chart__ghost.is-visible{opacity:.55}.gr-chart__cursor{transition:transform .16s var(--ease)}.gr-chart__cursor line{stroke:var(--muted);stroke-width:1px}.gr-chart__dot{stroke:var(--panel);stroke-width:1px;transition:cy .16s var(--ease)}.gr-chart__hover{stroke:var(--line-2);stroke-dasharray:2 2}.gr-chart__tooltip{z-index:2;background:var(--panel-2);border:1px solid var(--line-2);pointer-events:none;min-width:170px;padding:6px 8px;font-size:11px;position:absolute}.gr-chart__tooltip-time{color:var(--muted);margin-bottom:3px}.gr-chart__tooltip-row{align-items:center;gap:6px;padding:1px 0;display:flex}.gr-chart__tooltip-row i{flex-shrink:0;width:6px;height:6px}.gr-chart__tooltip-name{white-space:nowrap;text-overflow:ellipsis;max-width:170px;color:var(--muted);flex:1;overflow:hidden}.gr-chart__tooltip-val{text-align:right;min-width:34px}.gr-chart__tooltip-arrow{color:var(--dim)}.gr-spark{display:block}.gr-timeline{align-items:center;gap:10px;height:100%;padding:0 10px 0 6px;display:flex}.gr-timeline__play{border:1px solid var(--line-2);border-radius:var(--r);background:var(--panel-2);width:24px;height:24px;color:var(--text);cursor:pointer;flex-shrink:0;place-items:center;display:grid}.gr-timeline__play:hover{background:var(--panel-3)}.gr-timeline__play svg{width:12px;height:12px}.gr-timeline__clock{flex-shrink:0;align-items:baseline;gap:8px;width:210px;display:flex}.gr-timeline__time{order:-1;font-size:15px;font-weight:500}.gr-timeline__scrub{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.gr-timeline__track{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;touch-action:none;height:18px;position:relative;overflow:hidden}.gr-timeline__spark{opacity:.7;position:absolute;inset:0}.gr-timeline__tick{background:var(--bad);height:3px;position:absolute;bottom:0}.gr-timeline__progress{pointer-events:none;background:#ffffff08;transition:width .12s linear;position:absolute;top:0;bottom:0;left:0}.gr-timeline__thumb{background:var(--text);pointer-events:none;width:1px;transition:left .12s linear;position:absolute;top:0;bottom:0}.gr-timeline__hours{display:none}.gr-legend{width:100%;color:var(--text);background:0 0;padding:0;font-size:11.5px}.gr-legend__title{margin-bottom:6px}.gr-legend__scale{height:6px}.gr-legend__ticks{height:14px;color:var(--muted);margin:2px 4px 6px;font-size:10px;position:relative}.gr-legend__ticks span{white-space:nowrap;position:absolute;transform:translate(-50%)}.gr-legend__ticks span:first-child{transform:translate(-4px)}.gr-legend__items{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:4px 8px;padding-top:6px;display:grid}.gr-legend__item{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;display:flex}.gr-legend__item svg{flex-shrink:0}.gr-caption{z-index:20;opacity:0;pointer-events:none;max-width:min(860px,100% - 32px);transition:opacity .22s var(--ease), transform .22s var(--ease);position:absolute;bottom:16px;left:50%;transform:translate(-50%,6px)}.gr-caption.is-visible{opacity:1;transform:translate(-50%)}.gr-caption__text{border:1px solid var(--line-2);color:#fff;text-align:center;text-wrap:balance;background:#080a0ce0;padding:8px 16px;font-size:22px;font-weight:500;line-height:1.3;display:block}.gr-card{width:100%;animation:gr-fade .16s var(--ease) both;padding:10px 12px;font-size:12px}.gr-card__head{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.gr-card__name{margin-top:2px;font-size:14px;font-weight:600}.gr-card__badges{gap:4px;margin-top:6px;display:flex}.gr-badge{border:1px dashed var(--warn);border-radius:var(--r);color:var(--warn);padding:0 5px;font-size:10.5px}.gr-badge--planned{border-color:var(--dim);color:var(--muted)}.gr-card__util{flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:10px;display:flex}.gr-card__util-value{font-size:22px;font-weight:500;line-height:1;transition:color .2s}.gr-card__util-label{color:var(--muted);font-size:11.5px}.gr-card__util-bar{background:var(--panel-3);flex-basis:100%;height:4px;margin-top:4px;overflow:hidden}.gr-card__util-bar div{height:100%;transition:width .2s var(--ease), background .2s}.gr-card__stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 0;padding-top:8px;display:grid}.gr-card__stats dd{margin:1px 0 0;font-size:12.5px}.gr-topbar{background:var(--panel);justify-content:space-between;align-items:center;gap:12px;height:100%;padding:0 8px;display:flex}.gr-topbar__brand{align-items:center;gap:8px;min-width:0;display:flex}.gr-topbar__logo{flex-shrink:0;width:16px;height:16px}.gr-topbar__title{font-size:12.5px;font-weight:600}.gr-topbar__subtitle{border-left:1px solid var(--line-2);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding-left:8px;font-size:11.5px;overflow:hidden}.gr-topbar__right{align-items:center;gap:8px;display:flex}.gr-scenario{gap:8px;display:grid}.gr-scenario__field{grid-template-columns:76px 1fr auto;align-items:center;gap:8px;display:grid}.gr-scenario__field--scale .gr-range{width:100%}.gr-scenario__value{text-align:right;width:40px;font-size:11.5px}.gr-select{border:1px solid var(--line-2);border-radius:var(--r);background:var(--panel-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M.5.5l3.5 3.5 3.5-3.5' fill='none' stroke='%238a929b'/%3E%3C/svg%3E") no-repeat right 6px center;height:22px;color:var(--text);font:inherit;appearance:none;cursor:pointer;padding:0 20px 0 6px;font-size:11.5px}.gr-select option{background:var(--panel)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app{background:var(--bg);background-color:var(--line);grid-template:"menu menu menu"32px"left view right"minmax(0,1fr)"bottom bottom bottom"222px/264px minmax(0,1fr) 340px;gap:1px;width:100vw;height:100vh;display:grid;overflow:hidden}.app>*{background:var(--panel);min-width:0;min-height:0}.app-menubar{grid-area:menu}.app-left{grid-area:left}.app-right{grid-area:right}.app-viewport{background:var(--bg);grid-area:view;position:relative}.app-bottom{grid-area:bottom;grid-template-rows:36px minmax(0,1fr);display:grid}.app-viewport>.gm-root{position:absolute;inset:0}.dock{flex-direction:column;display:flex}.dock-head{border-bottom:1px solid var(--line);background:var(--panel-2);flex-shrink:0;justify-content:space-between;align-items:center;height:24px;padding:0 10px;display:flex}.dock-title,.dock-section-head>span:first-child{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.dock-body{min-height:0;animation:dock-in .16s var(--ease) both;flex:1;overflow-y:auto}.dock-section{border-bottom:1px solid var(--line);padding:8px 10px 10px}.dock-section-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}@keyframes dock-in{0%{opacity:0}to{opacity:1}}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.dim{color:var(--dim)}.small{font-size:11px}.accent{color:var(--accent)}.pad{margin:0;padding:10px 12px}.ui-btn{border:1px solid var(--line-2);border-radius:var(--r);background:var(--panel-2);height:22px;color:var(--text);cursor:pointer;transition:background var(--t) var(--ease), border-color var(--t) var(--ease);padding:0 8px;font-size:11.5px}.ui-btn:hover{background:var(--panel-3)}.ui-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.field{grid-template-columns:76px 1fr;align-items:center;gap:8px;margin-bottom:6px;display:grid}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.seg{border:1px solid var(--line-2);border-radius:var(--r);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.seg button{border:0;border-right:1px solid var(--line-2);background:var(--panel-2);height:22px;color:var(--muted);cursor:pointer;font-size:11.5px}.seg button:last-child{border-right:0}.seg button.is-on{background:var(--accent-bg);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.check{color:var(--muted);cursor:pointer;align-items:flex-start;gap:6px;font-size:11.5px;display:flex}.check input{accent-color:var(--accent);margin:1px 0 0}.outliner{margin:0 -10px;padding:0;list-style:none}.outliner button{width:100%;height:24px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 10px;font-size:12px;display:flex}.outliner button:hover{background:var(--panel-2)}.outliner button.is-on{background:var(--accent-bg);box-shadow:inset 2px 0 0 var(--accent)}.outliner-icon{background:var(--accent);flex-shrink:0;width:8px;height:8px}.outliner-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.viewport-bar{z-index:3;border-right:1px solid var(--line);border-bottom:1px solid var(--line);height:22px;color:var(--muted);pointer-events:none;background:#14171beb;align-items:center;gap:12px;padding:0 8px;font-size:11px;display:flex;position:absolute;top:0;left:0}.app-right .gr-panel{max-height:none;overflow:visible}.inspector-note{border-top:1px solid var(--line);color:var(--muted);margin:0;padding:8px 12px;font-size:11.5px}.empty{color:var(--muted);padding:12px;font-size:12px}.empty p{color:var(--text);margin:0 0 8px}.empty ol{gap:4px;margin:0;padding-left:16px;display:grid}.bottom-timeline{border-bottom:1px solid var(--line)}.bottom-main{grid-template-columns:minmax(0,1fr) minmax(360px,38%);min-height:0;display:grid}.bottom-problems,.bottom-chart{flex-direction:column;min-height:0;display:flex}.bottom-chart{border-left:1px solid var(--line)}.bottom-count{font-family:var(--mono);color:var(--bad);border:1px solid var(--bad);padding:0 4px;font-size:10.5px;line-height:14px}.chart-wrap{flex:1;min-height:0;padding:6px 12px 4px}.problems{grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:8px;min-height:0;margin:0;padding:8px 10px;list-style:none;display:grid;overflow-y:auto}.problems>li{min-width:0}.problems-empty{color:var(--ok);margin:0;padding:12px;font-size:12px}.problem{border:1px solid var(--line-2);border-left:3px solid var(--warn);background:var(--warn-bg);width:100%;color:var(--text);text-align:left;cursor:pointer;min-width:0;animation:dock-in .18s var(--ease) both;transition:background var(--t) var(--ease), border-color var(--t) var(--ease);gap:2px;padding:6px 8px 4px;display:grid;overflow:hidden}.problem--bad{border-left-color:var(--bad);background:var(--bad-bg)}.problem:hover{background:var(--panel-3)}.problem.is-on{border-color:var(--accent);border-left-color:var(--accent)}.problem-head{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.problem-head>.problem-pct{flex-shrink:0}.problem-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.problem-pct{font-size:15px;font-weight:500}.problem-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.problem-spark{width:100%;height:34px;margin-top:2px;display:block}.problem-limit{stroke:var(--bad);stroke-width:1px;stroke-dasharray:2 2;opacity:.6;vector-effect:non-scaling-stroke}.problem-before{fill:none;stroke:var(--text);stroke-width:1.25px;vector-effect:non-scaling-stroke}.problem-before.is-ghost{stroke:var(--dim);stroke-dasharray:2 2}.problem-after{fill:none;stroke:var(--ok);stroke-width:1.5px;vector-effect:non-scaling-stroke}.problem-cursor{stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.advice{margin:0;padding:4px 0;list-style:none}.advice li{border-bottom:1px solid var(--line);animation:dock-in .2s var(--ease) both;gap:10px;padding:5px 12px;font-size:12.5px;line-height:1.45;display:flex}.advice li:nth-child(2){animation-delay:40ms}.advice li:nth-child(3){animation-delay:80ms}.advice li:nth-child(4){animation-delay:.12s}.advice li:hover{background:var(--panel-2)}.advice-n{color:var(--accent);flex-shrink:0;width:12px}.issues{border-collapse:collapse;width:100%;font-size:12px}.issues th{background:var(--panel);border-bottom:1px solid var(--line);text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:4px 12px;font-size:10.5px;font-weight:600;position:sticky;top:0}.issues td{border-bottom:1px solid var(--line);padding:3px 12px}.issues tr{cursor:pointer}.issues tbody tr:hover{background:var(--panel-2)}.issues tr.is-on{background:var(--accent-bg)}.issues .num{text-align:right}.site-card{padding:10px 12px;font-size:12px}.site-card-head{justify-content:space-between;gap:8px;display:flex}.site-card-kind{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.site-card-name{margin-top:2px;font-size:14px;font-weight:600}.site-card-close{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.site-card dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 8px;display:grid}.site-card dt{color:var(--muted)}.site-card dd{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;margin:0}.site-card-est{color:var(--dim);font-size:10px}.site-card-foot{color:var(--dim);margin:0;font-size:11px;line-height:1.4}.dock-aside{align-items:center;gap:8px;display:flex}.dock-expand{border-radius:var(--r);width:18px;height:18px;color:var(--dim);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.dock-expand:hover{background:var(--panel-3);color:var(--text)}.dock-expand[aria-pressed=true]{color:var(--accent)}.dock--expanded{z-index:50;background:var(--panel);border-top:1px solid var(--line-2);animation:dock-grow .18s var(--ease) both;position:fixed;inset:33px 0 0}.dock--expanded .dock-body{padding:0 max(0px,50vw - 550px)}.dock--expanded .problems{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.dock--expanded .problem-spark{height:64px}@keyframes dock-grow{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}.fix-result{border-left:3px solid var(--warn);background:var(--warn-bg);animation:fix-in .42s var(--ease) both}.fix-result.is-clear{border-left-color:var(--fix);background:#3d9bff1a}.fix-result{box-shadow:0 0 18px #3d9bff40}.fix-result-row{justify-content:space-between;align-items:baseline;padding:2px 0;font-size:12px;display:flex}.fix-result-after{font-size:15px;font-weight:500}.fix-result-note{color:var(--muted);margin:4px 0 0;font-size:11.5px}@keyframes fix-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.viewport-compare{border:1px solid var(--line-2);pointer-events:auto;margin-left:4px;display:inline-flex}.viewport-compare button{background:var(--panel-2);height:18px;color:var(--muted);cursor:pointer;border:0;padding:0 8px;font-size:11px}.viewport-compare button+button{border-left:1px solid var(--line-2)}.viewport-compare button.is-on{background:var(--accent-bg);color:var(--text)}.viewport-compare button.is-on.is-after{color:var(--fix);background:#3d9bff29}.problem--resolved{border-left-color:var(--fix);animation:fix-in .42s var(--ease) both;background:#3d9bff14}.problem-tag{border:1px solid var(--fix);color:var(--fix);letter-spacing:.05em;text-transform:uppercase;flex-shrink:0;margin-left:auto;padding:0 4px;font-size:9.5px}.mobile-tabs{display:none}@media (width<=820px),(height<=500px) and (width<=1000px){.app{height:100dvh;padding-bottom:env(safe-area-inset-bottom);background-color:var(--line);grid-template:"menu"40px"view"minmax(0,1fr)"time"36px"tabs"34px"panel"minmax(0,44dvh)/minmax(0,1fr)}.app-bottom,.bottom-main{display:contents}.bottom-timeline{background:var(--panel);grid-area:time}.mobile-tabs{background:var(--panel-2);grid-area:tabs;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.mobile-tabs button{border:0;border-right:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;background:0 0;font-size:12px;position:relative}.mobile-tabs button:last-child{border-right:0}.mobile-tabs button.is-on{color:var(--text);background:var(--panel);box-shadow:inset 0 -2px 0 var(--accent)}.mobile-badge{border:1px solid var(--bad);color:var(--bad);font-family:var(--mono);margin-left:4px;padding:0 4px;font-size:10px}.app-left,.app-right,.bottom-problems,.bottom-chart{border-left:0;grid-area:panel;display:none}.app[data-mtab=scene] .app-left,.app[data-mtab=inspector] .app-right,.app[data-mtab=problems] .bottom-problems,.app[data-mtab=chart] .bottom-chart{animation:dock-in .14s var(--ease) both;display:flex}.dock-head{display:none}.dock--expanded .dock-head{display:flex}.gr-topbar__subtitle{display:none}.gr-topbar{gap:6px;padding:0 6px}.problems{grid-template-columns:minmax(0,1fr)}.gr-timeline__day{display:none}.gr-timeline__clock{width:auto}.viewport-bar{flex-wrap:wrap;row-gap:2px;max-width:100%;height:auto;min-height:22px;padding:2px 8px}input,select,textarea{font-size:16px!important}.gr-range{height:28px}.gr-range::-webkit-slider-thumb{width:18px;height:22px;margin-top:-10px}.gr-range::-moz-range-thumb{width:18px;height:22px}.gr-segmented button,.seg button,.ui-btn{min-height:32px}.gr-mw__input{height:32px}.issues td,.outliner button{min-height:36px}.outliner button{height:36px}}@media (height<=500px) and (width<=1000px) and (orientation:landscape){.app{grid-template:"menu menu"36px"view tabs"34px"view panel"minmax(0,1fr)"time time"36px/minmax(0,1fr) minmax(280px,42vw)}}:root{--fix:#3d9bff;--fix-glow:0 0 14px #3d9bff73}.app{grid-template-columns:300px minmax(0,1fr) 360px}.app-left{font-size:13.5px}.app-left .dock-section{padding:12px 14px 14px}.app-left .dock-section-head>span:first-child,.app-left .gr-label,.app-left .field-label{font-size:11.5px}.app-left .gr-select{height:30px;font-size:13px}.app-left .gr-scenario__value{width:48px;font-size:13px}.app-left .gr-scenario__field{grid-template-columns:92px 1fr auto}.app-left .field{grid-template-columns:92px 1fr}.app-left .outliner button{height:32px;font-size:13.5px}.app-left .seg button{height:28px;font-size:12.5px}.app-left .check,.app-left .small{font-size:12.5px}.dock-details>summary{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 14px;font-size:11.5px;font-weight:600;list-style:none}.dock-details>summary::-webkit-details-marker{display:none}.dock-details>summary:before{content:"+ ";color:var(--dim)}.dock-details[open]>summary:before{content:"− "}.stepper{gap:0;margin:0 12px 0 0;padding:0;list-style:none;display:flex}.stepper-step{border:1px solid var(--line-2);background:var(--panel);height:24px;color:var(--muted);font:inherit;cursor:pointer;align-items:center;gap:6px;margin-left:-1px;padding:0 10px;font-size:12px;display:inline-flex}.stepper-step:disabled{color:var(--dim);cursor:default}.stepper-step.is-done{color:var(--text)}.stepper-step.is-current{background:var(--accent-bg);color:var(--text);border-color:var(--accent);z-index:1;position:relative}.stepper-n{border:1px solid;place-items:center;width:15px;height:15px;font-size:10px;display:inline-grid}.stepper-step.is-done .stepper-n{background:var(--text);color:var(--panel);border-color:var(--text)}.topnav{gap:2px;margin-right:6px;display:flex}.topnav a{color:var(--muted);padding:3px 8px;font-size:12px;text-decoration:none}.topnav a:hover{color:var(--text);background:var(--panel-2)}.home-link{border:1px solid var(--line);color:var(--muted);white-space:nowrap;margin-right:4px;padding:3px 8px;font-size:12px;text-decoration:none}.home-link:hover{color:var(--text);border-color:var(--accent)}.headline{border-bottom:1px solid var(--line);border-left:3px solid var(--ok);animation:dock-in .2s var(--ease) both;padding:12px 14px}.headline--warn{border-left-color:var(--warn)}.headline--bad{border-left-color:var(--bad)}.headline-text{margin:0;font-size:19px;font-weight:600;line-height:1.25}.headline-sub{color:var(--muted);margin:4px 0 0;font-size:12px}.palette{z-index:4;border:1px solid var(--line-2);background:#14171bf0;width:172px;position:absolute;bottom:30px;right:10px}.palette-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:5px 8px;font-size:10.5px;font-weight:600}.palette-tiles{display:grid}.palette-tile{border:0;border-bottom:1px solid var(--line);color:var(--text);font:inherit;text-align:left;cursor:grab;transition:background var(--t) var(--ease);background:0 0;grid-template-columns:14px 1fr auto;align-items:center;gap:8px;padding:7px 8px;font-size:12.5px;display:grid}.palette-tile:last-child{border-bottom:0}.palette-tile:hover{background:var(--panel-3)}.palette-tile:active{cursor:grabbing}.palette-tile.is-armed{background:var(--accent-bg);box-shadow:inset 2px 0 0 var(--accent)}.palette-icon{background:var(--accent);border:1px solid #0d0f12;width:12px;height:12px}.palette-note{color:var(--muted);font-size:11px}.app-viewport.is-armed{cursor:crosshair}.empty-card{z-index:3;border:1px solid var(--line-2);width:min(440px,100% - 32px);animation:dock-in .3s var(--ease) both;background:#14171bf2;padding:18px 20px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.empty-card h2{margin:0 0 6px;font-size:18px;font-weight:600}.empty-card p{color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.45}.empty-cta{border:1px solid var(--accent);background:var(--accent);color:#fff;width:100%;height:34px;font:inherit;cursor:pointer;font-size:13px;font-weight:500}.empty-cta:hover{background:#3b8de8}.dock--expanded{font-size:15px}.dock--expanded .dock-body{padding-top:12px;padding-bottom:24px}.dock--expanded .problem-name{font-size:15px}.dock--expanded .problem-pct{font-size:20px}.dock--expanded .problem-meta{font-size:13px}.dock--expanded .gr-panel,.dock--expanded .gr-card,.dock--expanded .site-card{max-width:760px;margin:0 auto;font-size:14px}.dock--expanded .headline{max-width:760px;margin:0 auto}.dock--expanded .headline-text{font-size:26px}.dock--expanded .gr-rec__title{font-size:14px}.dock--expanded .advice li{font-size:15px}.dock--expanded .gr-chart__legend,.dock--expanded .gr-chart__ylabel,.dock--expanded .gr-chart__xlabel{font-size:13px}.dock--expanded .app-left,.dock--expanded .dock-section{font-size:15px}@media (width<=820px),(height<=500px) and (width<=1000px){.app{grid-template-columns:minmax(0,1fr)}.stepper,.topnav a:not(:first-child){display:none}.palette{width:auto;bottom:6px;left:6px;right:44px}.palette-title{display:none}.palette-tiles{grid-template-columns:repeat(3,1fr)}.palette-tile{border-bottom:0;border-right:1px solid var(--line);grid-template-rows:auto auto;grid-template-columns:10px 1fr;gap:0 6px;padding:6px 8px;font-size:12px}.palette-tile:last-child{border-right:0}.palette-icon{grid-row:span 2;width:9px;height:9px}.palette-note{font-size:10.5px}.empty-card{padding:12px 14px;top:34%}.empty-card h2{font-size:15px}.empty-card p{margin-bottom:10px;font-size:12.5px}.empty-cta{height:32px;font-size:12.5px}}.app-right .gr-verdict{display:none}.problem-cost{color:#ffb4ad;white-space:nowrap;text-overflow:ellipsis;gap:6px;margin-top:2px;font-size:10.5px;display:flex;overflow:hidden}.bottom-cost{color:#ffb4ad;margin-right:8px;font-size:11px}.headline-risk{color:#ffb4ad;margin:6px 0 0;font-size:12px}.dock--expanded .problem-cost{font-size:13px}.brief{border-bottom:1px solid var(--line);padding:10px 14px}.brief-btn{border:1px solid var(--line-2);background:var(--panel-2);width:100%;height:32px;color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--t) var(--ease), background var(--t) var(--ease);align-items:center;gap:8px;padding:0 12px;font-size:13px;display:inline-flex}.brief-btn:hover{border-color:var(--accent);background:var(--accent-bg)}.brief-btn:disabled{color:var(--muted);cursor:progress}.brief-spark{color:var(--accent)}.brief-card{animation:dock-in .22s var(--ease) both}.brief-text{margin:0;font-size:14px;line-height:1.55}.brief-source{color:var(--dim);margin:6px 0 0;font-size:11px}.dock--expanded .brief-text{font-size:17px}
