:root{--w-accent: #F4501E;--w-accent-ink: #C23A0F;--w-dark: #0C0C0C;--w-navy: #0D1B2E;--w-bg: #FFFFFF;--w-bg-soft: #F4F2EF;--w-bg-cream: #F1E7DC;--w-danger: #D7263D;--w-success: #6FCF8E;--w-warn: #FF7A4D;--w-ink: #0C0C0C;--w-ink-70: rgba(12, 12, 12, .74);--w-ink-60: rgba(12, 12, 12, .62);--w-ink-40: rgba(12, 12, 12, .4);--w-line: rgba(12, 12, 12, .14)}:root{--color-bg: var(--w-bg);--color-surface: var(--w-bg);--color-surface-soft: var(--w-bg-soft);--color-surface-chip: var(--w-bg-cream);--color-surface-dark: var(--w-dark);--color-surface-dark-alt: var(--w-navy);--color-border: var(--w-line);--color-text: var(--w-ink);--color-text-secondary: var(--w-ink-70);--color-text-tertiary: var(--w-ink-60);--color-text-disabled: var(--w-ink-40);--color-text-on-dark: #FFFFFF;--color-primary: var(--w-accent);--color-primary-ink: var(--w-accent-ink);--color-accent: var(--w-accent);--color-success: var(--w-success);--color-warning: var(--w-warn);--color-danger: var(--w-danger);--color-focus-ring: var(--w-accent-ink);--badge-yes-bg: #E6F6EC;--badge-yes-fg: #1E7A43;--badge-no-bg: #FBE6E9;--badge-no-fg: #A41B2C;--badge-own-bg: #FDE7DE;--badge-own-fg: #C23A0F;--badge-competitor-bg: #E7E9ED;--badge-competitor-fg: #0D1B2E;--badge-external-bg: var(--w-bg-soft);--badge-external-fg: var(--w-ink-70);--chart-1: #F4501E;--chart-2: #0D1B2E;--chart-3: #2D7DD2;--chart-4: #8E44AD;--chart-5: #16A085;--chart-6: #E1A100;--chart-7: #6FCF8E;--chart-8: #7A8699;--chart-track: var(--w-bg-soft);--shadow-card: 0 1px 2px rgba(12, 12, 12, .04), 0 4px 16px rgba(12, 12, 12, .05);--shadow-pop: 0 8px 28px rgba(12, 12, 12, .12);--font-sans: "Onest", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--fs-display: clamp(1.75rem, 1.4rem + 1.4vw, 2.25rem);--fs-h1: clamp(1.375rem, 1.2rem + .7vw, 1.625rem);--fs-h2: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);--fs-kpi: clamp(1.75rem, 1.5rem + 1vw, 2.125rem);--fs-body: 1rem;--fs-body-sm: .875rem;--fs-caption: .8125rem;--fs-eyebrow: .6875rem;--lh-tight: 1.15;--lh-heading: 1.25;--lh-body: 1.5;--ls-eyebrow: .04em;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 48px;--radius-card: 22px;--radius-panel: 18px;--radius-field: 14px;--radius-pill: 999px;--container: 1240px;--header-h: 76px;--rail-w: 248px}@supports (color: color-mix(in srgb,red 10%,white)){:root{--badge-yes-bg: color-mix(in srgb, var(--color-success) 22%, #FFFFFF);--badge-no-bg: color-mix(in srgb, var(--color-danger) 14%, #FFFFFF);--badge-own-bg: color-mix(in srgb, var(--color-primary) 14%, #FFFFFF);--badge-competitor-bg: color-mix(in srgb, var(--color-surface-dark-alt) 10%, #FFFFFF)}}@media (max-width: 767px){:root{--header-h: 64px}}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.mono{font-family:var(--font-mono)}.muted{color:var(--color-text-disabled)}.app{display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:100dvh}.rail{background:var(--color-surface-dark);color:var(--color-text-on-dark);display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5) var(--space-4);position:sticky;top:0;align-self:start;height:100dvh;overflow-y:auto}.rail__logo{display:flex;align-items:center;height:var(--header-h);padding-left:var(--space-2)}.rail__logo img{height:22px;width:auto;filter:brightness(0) invert(1)}.nav-group{display:flex;flex-direction:column;gap:var(--space-1)}.nav-group__label{font-family:var(--font-mono);font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:#ffffff80;padding:var(--space-2) var(--space-3) var(--space-1)}.nav-item{display:flex;align-items:center;gap:var(--space-3);min-height:40px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-field);color:var(--color-text-on-dark);text-decoration:none;font-size:var(--fs-body-sm);transition:background .15s ease;background:transparent;border:0;width:100%;cursor:pointer;font-family:var(--font-sans);text-align:left}.nav-item:hover{background:#ffffff14}.nav-item[aria-current=page]{background:var(--color-primary);font-weight:var(--fw-semibold)}.nav-item .ico{width:18px;height:18px;flex:0 0 18px;opacity:.9}.nav-item .badge-new{margin-left:auto;font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.04em;background:var(--color-primary);color:#fff;border-radius:var(--radius-pill);padding:1px 6px}.rail__spacer{flex:1 1 auto}.rail__user{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.12);font-size:var(--fs-body-sm)}.rail__avatar{width:28px;height:28px;border-radius:var(--radius-pill);background:var(--color-primary);display:grid;place-items:center;font-weight:var(--fw-bold);font-size:var(--fs-caption);text-transform:uppercase}.rail__user-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail__logout{margin-left:auto;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-field);background:transparent;border:0;color:var(--color-text-on-dark);cursor:pointer}.rail__logout:hover{background:#ffffff14}.content{min-width:0;padding:var(--space-5) var(--space-6) var(--space-8)}.content__inner{max-width:var(--container);margin:0 auto;display:flex;flex-direction:column;gap:var(--space-5)}.topbar{display:flex;align-items:center;gap:var(--space-3);min-height:var(--header-h)}.topbar .spacer{flex:1 1 auto}.hamburger{display:none;width:40px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-field);background:var(--color-surface);cursor:pointer;align-items:center;justify-content:center;color:var(--color-text)}.screen-title{font-size:var(--fs-h1);font-weight:var(--fw-bold);line-height:var(--lh-heading);margin:0;display:flex;align-items:center;gap:var(--space-2)}.screen-title .hint{display:grid;place-items:center;width:20px;height:20px;border-radius:var(--radius-pill);background:var(--color-surface-soft);color:var(--color-text-tertiary);font-size:12px;font-weight:var(--fw-bold);cursor:help;border:0}.subtitle{color:var(--color-text-tertiary);font-size:var(--fs-body-sm);margin:0;max-width:74ch}.filterbar{position:sticky;top:var(--space-3);z-index:5;display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-card);padding:var(--space-3) var(--space-4)}.filterbar .funnel{display:grid;place-items:center;width:32px;height:32px;color:var(--color-text-tertiary);background:transparent;border:0;cursor:pointer;border-radius:var(--radius-field)}.filterbar .funnel:hover{color:var(--color-text)}.filterbar .spacer{flex:1 1 auto}.seg{display:inline-flex;gap:4px;background:var(--color-surface-soft);padding:4px;border-radius:var(--radius-field)}.seg button{border:0;background:transparent;color:var(--color-text-secondary);cursor:pointer;min-height:32px;min-width:48px;padding:0 var(--space-3);border-radius:10px;font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:var(--fw-medium)}.seg button[aria-pressed=true]{background:var(--color-primary);color:var(--color-text-on-dark);font-weight:var(--fw-semibold)}.daterange{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;background:var(--color-surface-soft);border-radius:var(--radius-field);padding:0 var(--space-3);color:var(--color-text-secondary);font-size:var(--fs-body-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-field);border:1.5px solid transparent;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:var(--fw-bold);line-height:1.1;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not([disabled]){background:var(--color-primary-ink)}.btn--ghost{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn--ghost:hover:not([disabled]){border-color:var(--color-text)}.btn--secondary{background:var(--color-surface-soft);color:var(--color-text)}.btn--secondary:hover:not([disabled]){background:color-mix(in srgb,var(--color-surface-soft) 70%,var(--color-text) 6%)}.btn--danger{background:var(--color-danger);color:#fff}.btn--dark{background:var(--color-surface-dark);color:#fff}.btn--lg{min-height:52px;font-size:var(--fs-body);padding:0 var(--space-6)}.btn--block{width:100%}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn .spark{color:currentColor}.btn-row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.icon-btn{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:var(--radius-field);background:var(--color-surface-soft);color:var(--color-text-tertiary);cursor:pointer}.icon-btn:hover:not([disabled]){color:var(--color-text)}.icon-btn[disabled]{opacity:.5;cursor:not-allowed}.section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5)}.section-card+.section-card{margin-top:var(--space-4)}.section-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.section-card__title{font-size:var(--fs-h2);font-weight:var(--fw-semibold);margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) var(--space-5)}.field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.field--full{grid-column:1 / -1}.field>label{font-size:var(--fs-body-sm);font-weight:var(--fw-bold);display:flex;align-items:center;gap:6px}.req{color:var(--color-danger)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=url],.field input[type=search],.field textarea,.field select,.input{width:100%;min-height:46px;padding:11px 14px;border:1.5px solid transparent;border-radius:var(--radius-field);background:var(--color-surface-soft);font-family:var(--font-sans);font-size:var(--fs-body-sm);color:var(--color-text)}.field textarea,textarea.input{min-height:96px;resize:vertical;line-height:var(--lh-body)}.field input:focus,.field textarea:focus,.field select:focus,.input:focus{outline:none;background:var(--color-surface);border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 18%,transparent)}.field__hint{font-size:var(--fs-caption);color:var(--color-text-tertiary)}.field--invalid input,.field--invalid textarea,.field--invalid select,.field--invalid .tags{border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 5%,#fff)}.field__err{font-size:var(--fs-caption);color:var(--color-danger);font-weight:var(--fw-medium)}.field__wrap{position:relative}.field--ai input{padding-right:42px}.field__spark{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--color-primary);background:none;border:0;cursor:pointer;font-size:16px;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-pill)}.field__spark:hover{background:var(--color-surface-soft)}.disabled-note{font-size:var(--fs-caption);color:var(--color-text-disabled)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:8px;background:var(--color-surface-soft);border:1.5px solid transparent;border-radius:var(--radius-field);min-height:46px;align-items:center}.tags:focus-within{background:var(--color-surface);border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 18%,transparent)}.tag{display:inline-flex;align-items:center;gap:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:4px 6px 4px 12px;font-size:var(--fs-body-sm)}.tag button{border:0;background:transparent;color:var(--color-text-tertiary);cursor:pointer;width:18px;height:18px;border-radius:var(--radius-pill);display:grid;place-items:center}.tag button:hover{background:var(--color-surface-soft);color:var(--color-text)}.tags input{flex:1 1 80px;min-width:80px;border:0;background:transparent;min-height:30px;outline:none;font-size:var(--fs-body-sm);color:var(--color-text)}.model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2) var(--space-3)}.model{display:flex;align-items:center;gap:var(--space-2);padding:8px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-field);font-size:var(--fs-body-sm);background:var(--color-surface)}.model input{accent-color:var(--color-primary);width:18px;height:18px}.model--off{opacity:.55;background:var(--color-surface-soft)}.model__tag{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--color-success)}.model--off .model__tag{color:var(--color-text-disabled)}.toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.toolbar .spacer{flex:1 1 auto}.search{display:inline-flex;align-items:center;gap:var(--space-2);min-height:38px;background:var(--color-surface-soft);border-radius:var(--radius-field);padding:0 var(--space-3);color:var(--color-text-tertiary);min-width:220px}.search input{border:0;background:transparent;outline:none;font-size:var(--fs-body-sm);width:100%;color:var(--color-text)}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-body-sm);min-width:720px}table.data th,table.data td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle}table.data thead th{font-size:var(--fs-caption);font-weight:var(--fw-bold);color:var(--color-text-tertiary);white-space:nowrap;background:var(--color-surface);position:sticky;top:0;z-index:1}table.data thead th button.th-sort{border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}table.data thead th .sort{color:var(--color-text-disabled);margin-left:4px}table.data tbody tr.is-clickable:hover{background:color-mix(in srgb,var(--color-surface-soft) 60%,#fff);cursor:pointer}table.data td.num,table.data th.num{text-align:right;font-family:var(--font-mono)}table.data tbody tr:last-child td{border-bottom:0}.favicon{width:16px;height:16px;border-radius:4px;background:var(--color-surface-chip);display:inline-grid;place-items:center;font-size:9px;color:var(--color-text-tertiary);margin-right:8px;vertical-align:-3px;text-transform:uppercase;flex:0 0 16px}.src-cell{display:inline-flex;align-items:center;gap:6px}.plusN{font-family:var(--font-mono);font-size:11px;color:var(--color-text-tertiary);background:var(--color-surface-soft);border-radius:var(--radius-pill);padding:1px 7px;border:0;cursor:pointer}.cell-trunc{display:block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowact{display:inline-flex;gap:4px}.rowact button{width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:var(--color-text-tertiary);cursor:pointer;display:grid;place-items:center}.rowact button:hover:not([disabled]){background:var(--color-surface-soft);color:var(--color-text)}.rowact button[disabled]{opacity:.4;cursor:not-allowed}.caret{width:24px;height:24px;border:0;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:6px;display:grid;place-items:center}.tree-child td:first-child{padding-left:42px}.tree-child{background:color-mix(in srgb,var(--color-surface-soft) 45%,#fff)}.pager{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);color:var(--color-text-tertiary);font-size:var(--fs-body-sm)}.pager .more{margin-left:auto}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:var(--radius-pill);padding:3px 10px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);white-space:nowrap}.badge--yes{background:var(--badge-yes-bg);color:var(--badge-yes-fg)}.badge--no{background:var(--badge-no-bg);color:var(--badge-no-fg)}.badge--project{background:var(--badge-own-bg);color:var(--badge-own-fg)}.badge--competitor{background:var(--badge-competitor-bg);color:var(--badge-competitor-fg)}.badge--external{background:var(--badge-external-bg);color:var(--badge-external-fg)}.badge--soft{background:var(--color-surface-soft);color:var(--color-text-secondary)}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-caption);font-weight:var(--fw-semibold)}.status-pill--done{color:var(--badge-yes-fg)}.status-pill--running{color:var(--color-primary-ink)}.status-pill--failed{color:var(--badge-no-fg)}.status-pill--queued{color:var(--color-text-tertiary)}.menu{position:relative}.menu__list{position:absolute;right:0;top:calc(100% + 6px);z-index:8;min-width:210px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-field);box-shadow:var(--shadow-pop);padding:6px}.menu__item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;background:transparent;border-radius:10px;font-family:var(--font-sans);font-size:var(--fs-body-sm);color:var(--color-text);cursor:pointer;text-align:left}.menu__item:hover:not(.is-disabled){background:var(--color-surface-soft)}.menu__item.is-disabled{color:var(--color-text-disabled);cursor:not-allowed}.menu__item small{margin-left:auto;color:var(--color-text-disabled);font-size:11px}.popover{position:absolute;z-index:8;min-width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-field);box-shadow:var(--shadow-pop);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.banner{display:flex;align-items:center;gap:var(--space-3);padding:12px 16px;border-radius:var(--radius-field);background:color-mix(in srgb,var(--color-warning) 16%,#fff);border:1px solid color-mix(in srgb,var(--color-warning) 40%,#fff);font-size:var(--fs-body-sm)}.banner .banner__ico{color:var(--color-warning);flex:0 0 auto;display:grid;place-items:center}.banner .spacer{flex:1 1 auto}.tasks{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-field);padding:12px 14px;display:flex;flex-direction:column;gap:10px}.tasks--rail{background:#ffffff0f;border-color:#ffffff1f;color:var(--color-text-on-dark)}.task{display:flex;align-items:center;gap:10px;font-size:var(--fs-body-sm)}.task__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.task__name{display:flex;align-items:center;gap:8px}.task__bar{height:6px;border-radius:var(--radius-pill);background:var(--chart-track);overflow:hidden}.tasks--rail .task__bar{background:#ffffff24}.task__bar i{display:block;height:100%;background:var(--color-primary);border-radius:var(--radius-pill);transition:width .3s ease}.task__pct{font-family:var(--font-mono);color:var(--color-text-tertiary);font-size:var(--fs-caption);white-space:nowrap}.tasks--rail .task__pct{color:#fff9}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-7) var(--space-5);color:var(--color-text-tertiary)}.empty__ill{width:64px;height:64px;border-radius:var(--radius-card);background:var(--color-surface-soft);display:grid;place-items:center;color:var(--color-text-disabled)}.empty__title{color:var(--color-text-secondary);font-weight:var(--fw-semibold)}.skeleton{position:relative;overflow:hidden;background:var(--color-surface-soft);border-radius:var(--radius-field)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:sk-shimmer 1.3s infinite}.skeleton--line{height:14px;margin:6px 0}.skeleton--row{height:44px;margin:0;border-radius:0}@keyframes sk-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){.skeleton:after{animation:none}}.spinner{display:inline-block;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-.15em}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0c0c73;display:grid;place-items:center;z-index:60;padding:var(--space-4)}.modal{width:min(720px,100%);max-height:90dvh;overflow:auto;background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-pop)}.modal--wide{width:min(880px,100%)}.modal--sm{width:min(460px,100%)}.modal__head{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3)}.modal__head h2{margin:0;font-size:var(--fs-h2);font-weight:var(--fw-bold)}.modal__head .x{margin-left:auto;width:34px;height:34px;border:0;background:var(--color-surface-soft);border-radius:var(--radius-field);cursor:pointer;color:var(--color-text-tertiary);font-size:18px;display:grid;place-items:center;flex:0 0 auto}.modal__sub{color:var(--color-text-tertiary);font-size:var(--fs-body-sm)}.modal__body{padding:0 var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.modal__foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);border-top:1px solid var(--color-border);flex-wrap:wrap}.detail-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3) var(--space-5);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}.detail-head .k{font-size:var(--fs-caption);color:var(--color-text-tertiary);display:block;margin-bottom:2px}.detail-head .v{font-weight:var(--fw-semibold);font-size:var(--fs-body-sm)}.disclosure{border:1px solid var(--color-border);border-radius:var(--radius-field);overflow:hidden}.disclosure summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 14px;font-weight:var(--fw-semibold);font-size:var(--fs-body-sm);background:var(--color-surface-soft)}.disclosure summary::-webkit-details-marker{display:none}.disclosure .count{font-family:var(--font-mono);font-size:11px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:1px 8px;color:var(--color-text-tertiary)}.disclosure .body{padding:8px 14px 14px}.code-block{background:var(--color-surface-soft);border-radius:var(--radius-field);padding:12px 14px;font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--color-text-secondary);white-space:pre-wrap;line-height:1.55;word-break:break-word}.answer-text{font-size:var(--fs-body-sm);line-height:1.6;color:var(--color-text);white-space:pre-wrap;word-break:break-word}.answer-text mark{background:color-mix(in srgb,var(--color-primary) 22%,#fff);color:var(--color-primary-ink);border-radius:4px;padding:0 3px}.link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.link-list li{display:flex;align-items:center;gap:8px;font-size:var(--fs-body-sm);word-break:break-word}.kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-4)}.kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.kpi__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.kpi__label{font-family:var(--font-mono);font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-text-secondary)}.kpi__arrow{color:var(--color-text-tertiary);flex:0 0 auto}.kpi__value{font-size:var(--fs-kpi);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.kpi__foot{display:flex;align-items:center;gap:var(--space-3)}.delta{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);padding:2px var(--space-2);border-radius:var(--radius-pill)}.delta--pos{color:var(--badge-yes-fg);background:var(--badge-yes-bg)}.delta--neg{color:var(--badge-no-fg);background:var(--badge-no-bg)}.delta--flat{color:var(--color-text-tertiary);background:var(--color-surface-soft)}.kpi__sub{font-size:var(--fs-caption);color:var(--color-text-tertiary)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5)}.card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.card__title{font-size:var(--fs-h2);font-weight:var(--fw-semibold);margin:0}.unit-toggle{display:inline-flex;gap:2px;background:var(--color-surface-soft);padding:3px;border-radius:var(--radius-field)}.unit-toggle button{border:0;background:transparent;min-width:30px;min-height:26px;border-radius:9px;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-eyebrow);color:var(--color-text-tertiary)}.unit-toggle button[aria-pressed=true]{background:var(--color-primary);color:var(--color-text-on-dark)}.donut-wrap{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.donut{flex:0 0 auto}.donut__center{font-family:var(--font-sans);font-weight:var(--fw-bold)}.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);min-width:160px;flex:1 1 160px}.legend li{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-body-sm)}.legend .dot{width:12px;height:12px;border-radius:var(--radius-pill);flex:0 0 12px}.legend .name{flex:1 1 auto;color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend .num{font-family:var(--font-mono);font-weight:var(--fw-semibold)}.legend .pct{font-family:var(--font-mono);color:var(--color-text-tertiary);font-size:var(--fs-caption);min-width:42px;text-align:right}.hbars{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.hbar{display:grid;width:100%;grid-template-columns:130px minmax(0,1fr) 40px;align-items:center;gap:var(--space-3)}.hbar__name{display:block;min-width:0;font-size:var(--fs-body-sm);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar__track{display:block;height:12px;border-radius:var(--radius-pill);background:var(--chart-track);overflow:hidden}.hbar__fill{display:block;height:100%;border-radius:var(--radius-pill);min-width:2px}.hbar__val{font-family:var(--font-mono);font-weight:var(--fw-semibold);font-size:var(--fs-body-sm);text-align:right}.hbar--brand .hbar__name{font-weight:var(--fw-bold)}.note{font-size:var(--fs-caption);color:var(--color-text-tertiary);margin-top:var(--space-3)}.chart-tooltip{background:var(--color-surface);box-shadow:var(--shadow-pop);border-radius:var(--radius-field);padding:8px 12px;font-size:var(--fs-caption);border:1px solid var(--color-border)}.chart-tooltip .num{font-family:var(--font-mono);font-weight:var(--fw-semibold)}.login-page{min-height:100dvh;display:grid;place-items:center;padding:var(--space-5);background:radial-gradient(1200px 600px at 50% -10%,var(--color-surface-dark-alt),var(--color-surface-dark))}.login-card{width:min(420px,100%);background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-pop);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.login-card__logo{display:flex;justify-content:center;margin-bottom:var(--space-2)}.login-card__logo img{height:26px}.login-card h1{font-size:var(--fs-h1);font-weight:var(--fw-bold);margin:0;text-align:center}.login-form{display:flex;flex-direction:column;gap:var(--space-4)}.pw-wrap{position:relative}.pw-wrap input{padding-right:44px}.pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:transparent;color:var(--color-text-tertiary);cursor:pointer;display:grid;place-items:center;border-radius:var(--radius-pill)}.pw-toggle:hover{background:var(--color-surface-soft);color:var(--color-text)}.checkbox-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-body-sm)}.checkbox-row input{width:18px;height:18px;accent-color:var(--color-primary)}.alert{padding:10px 14px;border-radius:var(--radius-field);font-size:var(--fs-body-sm)}.alert--error{background:var(--badge-no-bg);color:var(--badge-no-fg)}.alert--info{background:var(--color-surface-soft);color:var(--color-text-secondary)}.toast-stack{position:fixed;left:50%;bottom:var(--space-5);transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:var(--space-2);width:min(440px,calc(100vw - var(--space-6)))}.toast{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-text-tertiary);border-radius:var(--radius-field);box-shadow:var(--shadow-pop);font-size:var(--fs-body-sm)}.toast--success{border-left-color:var(--color-success)}.toast--error{border-left-color:var(--color-danger)}.toast--info{border-left-color:var(--color-primary)}.toast__msg{flex:1 1 auto}.toast__x{width:24px;height:24px;border:0;background:transparent;cursor:pointer;color:var(--color-text-tertiary);border-radius:var(--radius-pill)}.toast__action{border:0;background:transparent;color:var(--color-primary-ink);font-weight:var(--fw-bold);cursor:pointer;font-size:var(--fs-body-sm)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3)}.wrap{flex-wrap:wrap}.grow{flex:1 1 auto}.link{color:var(--color-primary-ink);background:transparent;border:0;cursor:pointer;font:inherit;padding:0;text-decoration:none}.link:hover{text-decoration:underline}.text-trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count-tag{font-family:var(--font-mono);font-size:11px;background:var(--color-surface-soft);border-radius:var(--radius-pill);padding:1px 8px;color:var(--color-text-tertiary)}.filter-panel{display:flex;flex-direction:column;gap:var(--space-4)}.filter-group{display:flex;flex-direction:column;gap:var(--space-2)}.filter-group__label{font-size:var(--fs-body-sm);font-weight:var(--fw-bold)}.checklist{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}.checklist label{display:flex;align-items:center;gap:8px;font-size:var(--fs-body-sm)}.checklist input{width:16px;height:16px;accent-color:var(--color-primary)}.scrim{display:none;border:0;padding:0}.mobile-cta,.shell-mobilebar{display:none}@media (max-width: 1219px){.kpi-row{grid-template-columns:repeat(3,1fr)}.model-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1023px){.app{grid-template-columns:1fr}.rail{position:fixed;left:0;top:0;z-index:50;width:min(86vw,300px);height:100dvh;transform:translate(-100%);transition:transform .2s ease;box-shadow:var(--shadow-pop)}.app[data-drawer=open] .rail{transform:translate(0)}.hamburger{display:inline-flex}.scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0c0c73;z-index:40}.app[data-drawer=open] .scrim{display:block}.content{padding:var(--space-4) var(--space-5) var(--space-8)}.kpi-row{grid-template-columns:repeat(2,1fr)}.grid,.form-grid{grid-template-columns:1fr}.detail-head{grid-template-columns:1fr 1fr}.shell-mobilebar{display:flex;align-items:center;gap:var(--space-3);min-height:56px}}@media (max-width: 767px){.content{padding:var(--space-3) var(--space-4) calc(var(--space-8) + 72px)}.kpi-row,.model-grid,.detail-head{grid-template-columns:1fr}.hbar{grid-template-columns:110px minmax(0,1fr) 34px}.filterbar{position:static}.search{min-width:0;flex:1 1 100%}.modal{width:100%;max-height:100dvh;height:100dvh;border-radius:0}.modal__foot{position:sticky;bottom:0;background:var(--color-surface)}.mobile-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(255,255,255,0),var(--color-bg) 40%)}.mobile-cta .btn{width:100%;min-height:48px;box-shadow:var(--shadow-pop)}}.screen-title,.card__title,.section-card__title{text-wrap:balance}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--color-primary-ink);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
