:root{--ink: #17201d;--ink-2: #2b3832;--muted: #64716a;--quiet: #8a958d;--surface-page: #eef1ec;--surface-page-2: #dfe7df;--surface-sidebar: #fbfaf3;--surface-panel: rgba(250, 250, 244, .9);--surface-panel-muted: rgba(250, 250, 244, .72);--surface-elevated: rgba(255, 255, 250, .94);--surface-control: rgba(255, 255, 250, .94);--surface-control-hover: #fffdf5;--border-subtle: rgba(23, 32, 29, .13);--border-strong: rgba(23, 32, 29, .22);--border-accent: rgba(47, 111, 100, .45);--accent: #2f6f64;--accent-strong: #1f5048;--accent-soft: rgba(47, 111, 100, .12);--danger: #a64b3e;--danger-strong: #7f352e;--danger-soft: rgba(166, 75, 62, .12);--mineral: #40566f;--bronze: #a97834;--plum: #68516f;--on-accent: #fffdf5;--radius-panel: 8px;--radius-control: 7px;--radius-tight: 4px;--shadow-panel: 0 18px 44px rgba(21, 30, 26, .1);--shadow-elevated: 0 26px 70px rgba(21, 30, 26, .16);--shadow-control: none;--shadow-control-hover: 0 8px 20px rgba(21, 30, 26, .1);--focus-ring: 0 0 0 3px rgba(47, 111, 100, .24);--font-sans: "Avenir Next", "Gill Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif;--font-serif: "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", Georgia, serif;color:var(--ink);background:var(--surface-page);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root{--ground: var(--surface-page);--ground-2: var(--surface-page-2);--panel: var(--surface-panel);--panel-strong: var(--surface-sidebar);--hairline: var(--border-subtle);--hairline-strong: var(--border-strong);--jade: var(--accent);--jade-2: var(--accent-strong);--cinnabar: var(--danger);--cinnabar-2: var(--danger-strong);--gold-wash: rgba(169, 120, 52, .16);--green-wash: var(--accent-soft);--red-wash: var(--danger-soft);--shadow-fine: var(--shadow-panel);--shadow-deep: var(--shadow-elevated)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh}body{position:relative;margin:0;overflow:hidden;background:linear-gradient(90deg,rgba(23,32,29,.045),transparent 22%,transparent 78%,rgba(166,75,62,.035)),linear-gradient(180deg,#f4f5ef 0%,var(--surface-page) 48%,var(--surface-page-2) 100%)}body:before{position:fixed;inset:0;z-index:0;pointer-events:none;content:"";opacity:.42;background-image:repeating-linear-gradient(0deg,rgba(23,32,29,.025) 0 1px,transparent 1px 9px),repeating-linear-gradient(90deg,rgba(23,32,29,.018) 0 1px,transparent 1px 11px);mix-blend-mode:multiply}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.ui-control:focus-visible{outline:0;box-shadow:var(--focus-ring)}.search-box input:focus-visible,.admin-token-input input:focus-visible{box-shadow:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}h1,h2,p{margin:0}h1,h2{font-family:var(--font-serif);font-weight:650}h1{font-size:20px;line-height:1.12}h2{margin-top:5px;font-size:24px;line-height:1.12}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 13px;border:1px solid var(--border-strong);border-radius:var(--radius-control);color:var(--ink);background:var(--surface-control);box-shadow:var(--shadow-control);font:inherit;font-size:13px;font-weight:750;line-height:1;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease,color .16s ease}.ui-button:hover:not(:disabled){border-color:var(--border-accent);background:var(--surface-control-hover);box-shadow:var(--shadow-control-hover)}.ui-button:active:not(:disabled){transform:translateY(1px)}.ui-button:disabled{opacity:.48}.ui-button--primary{border-color:#2f6f6494;color:var(--on-accent);background:linear-gradient(135deg,var(--accent-strong),var(--accent))}.ui-button--ghost{border-color:transparent;background:transparent;box-shadow:none}.ui-button--danger{border-color:#a64b3e6b;color:var(--danger-strong);background:var(--danger-soft)}.ui-button--sm{min-height:30px;padding:0 10px;font-size:12px}.ui-button--icon{width:38px;min-width:38px;padding:0}.ui-button__icon{display:inline-grid;place-items:center}.ui-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--shadow-panel)}.ui-panel--muted{background:var(--surface-panel-muted)}.ui-panel--accent{border-color:#2f6f6447;background:var(--accent-soft)}.ui-panel--danger{border-color:#a64b3e52;background:var(--danger-soft)}.ui-section-header{display:flex;align-items:center;gap:8px;min-height:30px}.ui-section-header__icon{display:grid;flex:0 0 auto;width:24px;height:24px;place-items:center;color:var(--accent)}.ui-section-header__copy{display:grid;min-width:0;gap:2px}.ui-section-header h2{margin:0;color:var(--ink);font-family:var(--font-sans);font-size:13px;font-weight:850;line-height:1.25}.ui-section-header__action{margin-left:auto}.ui-eyebrow{color:var(--danger);font-size:11px;font-weight:800;letter-spacing:0}.ui-field{display:grid;gap:6px}.ui-field__label{color:var(--muted);font-size:12px;line-height:1.3}.ui-field__hint{color:var(--quiet);font-size:12px;line-height:1.45}.ui-control{width:100%;min-height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);color:var(--ink);background:var(--surface-control);outline:none}.ui-text-input,.ui-select{padding:0 10px}.ui-metric-card{display:grid;gap:5px;min-width:0;padding:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--surface-panel)}.ui-metric-card--accent{border-color:#2f6f643d;background:var(--accent-soft)}.ui-metric-card--accent .ui-metric-card__icon{color:var(--accent-strong);background:#fffffaad}.ui-metric-card--danger{border-color:#a64b3e47;background:var(--danger-soft)}.ui-metric-card--danger .ui-metric-card__icon,.ui-metric-card--danger .ui-metric-card__value{color:var(--danger-strong)}.ui-metric-card__icon{display:grid;width:28px;height:28px;place-items:center;border-radius:var(--radius-control);color:var(--accent-strong);background:var(--accent-soft)}.ui-metric-card__label,.ui-metric-card__detail{min-width:0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ui-metric-card__value{color:var(--ink);font-size:24px;line-height:1;font-variant-numeric:tabular-nums}.ui-status{padding:11px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);color:var(--muted);background:var(--surface-panel-muted);font-size:13px;line-height:1.5}.ui-status--success{border-color:#2f6f6452;color:var(--accent-strong);background:var(--accent-soft)}.ui-status--error,.ui-status--warning{border-color:#a64b3e57;color:var(--danger-strong);background:var(--danger-soft)}.ui-empty-state{display:grid;place-items:center;gap:6px;min-height:120px;padding:18px;color:var(--muted);text-align:center}.ui-empty-state strong{color:var(--ink)}.ui-empty-state p{max-width:48ch;line-height:1.55}.ui-skeleton{display:block;min-height:12px;overflow:hidden;border-radius:6px;background:linear-gradient(90deg,#17201d12,#fffffa8c,#17201d12);background-size:220% 100%;animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}@keyframes ui-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.ui-table-shell{position:relative;overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--surface-panel)}.ui-table-scroll{overflow:auto;max-width:100%}.ui-table-empty{border-top:1px solid var(--border-subtle)}.app-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(284px,308px) minmax(620px,1fr) minmax(286px,318px);height:100dvh;background:linear-gradient(90deg,rgba(255,255,250,.68),transparent 18%,transparent 82%,rgba(255,255,250,.7)),transparent}.sidebar{min-height:0;overflow:auto;padding:18px;scrollbar-gutter:stable}.sidebar-left{border-right:1px solid var(--hairline);background:linear-gradient(180deg,#fcfcf7f0,#eaf1e9e6),var(--surface-sidebar)}.sidebar-right{border-left:1px solid var(--hairline);background:linear-gradient(180deg,#fcfcf7f2,#edf3ebeb),var(--surface-sidebar)}.brand-block{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--hairline)}.brand-mark{position:relative;display:grid;place-items:center;width:44px;height:44px;overflow:hidden;border:1px solid rgba(23,32,29,.22);border-radius:8px;color:#fffdf5;background:linear-gradient(145deg,var(--ink),var(--jade-2) 54%,var(--mineral));box-shadow:0 16px 34px #17201d2e}.brand-mark:after{position:absolute;inset:7px;border:1px solid rgba(255,255,250,.35);content:""}.brand-block p,.insight-hero p,.flow-meta,.eyebrow{color:var(--muted)}.brand-block p{margin-top:5px;font-size:12px;line-height:1.45}.user-auth-card{display:grid;gap:10px;margin-bottom:14px;padding:12px;box-shadow:none}.auth-modal-card .user-auth-card{margin-bottom:0;padding:0;border:0;background:transparent;box-shadow:none}.user-auth-card form{display:grid;gap:8px}.user-auth-card input{width:100%;height:36px;padding:0 10px;border:1px solid var(--hairline-strong);border-radius:7px;color:var(--ink);background:#fffffaf0;outline:none}.user-auth-heading,.user-auth-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.user-auth-heading span{display:inline-flex;align-items:center;gap:6px;color:var(--jade-2);font-size:12px;font-weight:800}.user-auth-card.signed-in strong{overflow:hidden;color:var(--ink-2);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.auth-message,.auth-error{font-size:12px;line-height:1.45}.auth-message{color:var(--jade-2)}.auth-error{color:var(--cinnabar-2)}.auth-fallback-code{display:grid;gap:4px;padding:10px;border:1px solid rgba(166,75,62,.26);border-radius:8px;color:var(--ink);background:#a64b3e14}.auth-fallback-code span,.auth-fallback-code small{color:var(--muted);font-size:12px}.auth-fallback-code strong{color:var(--cinnabar-2);font-family:var(--font-serif);font-size:26px;line-height:1;letter-spacing:.12em;font-variant-numeric:tabular-nums}.auth-modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:#0f161357;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-modal-card{position:relative;display:grid;gap:18px;width:min(420px,calc(100vw - 32px));padding:24px;border:1px solid rgba(23,32,29,.18);border-radius:8px;background:linear-gradient(180deg,#fffffafa,#f4f7eff5),var(--panel-strong);box-shadow:var(--shadow-deep)}.auth-modal-header{display:grid;gap:8px;padding-right:34px}.auth-modal-header p{color:var(--muted);font-size:13px;line-height:1.6}.auth-modal-close{position:absolute;top:14px;right:14px;display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--hairline);border-radius:7px;color:var(--muted);background:#fffffab8}.account-chip{display:inline-flex;align-items:center;max-width:260px;min-height:36px;gap:7px;padding:0 6px 0 10px;border:1px solid rgba(47,111,100,.25);border-radius:7px;color:var(--jade-2);background:#fffffabd;font-size:12px;font-weight:800}.account-chip span{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.account-chip button{display:grid;width:26px;height:26px;flex:0 0 auto;place-items:center;border:0;border-radius:6px;color:var(--muted);background:transparent}.eyebrow{display:inline-flex;align-items:center;color:var(--cinnabar);font-size:11px;font-weight:800;letter-spacing:0}.control-section,.visual-section,.insight-hero,.user-auth-card,.admin-login-card,.admin-metric-card,.admin-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--shadow-panel)}.control-section,.visual-section{padding:14px;margin-bottom:14px}.section-title{display:flex;align-items:center;gap:8px;min-height:28px;margin-bottom:12px;color:var(--ink);font-size:13px;font-weight:800}.section-title svg{color:var(--jade);stroke-width:1.8}.section-title .ghost-button,.section-title .section-title-action{margin-left:auto}.field-label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px}select,.search-box input{width:100%;height:38px;border:1px solid var(--hairline-strong);border-radius:7px;color:var(--ink);background:#fffffaf0;outline:none}select{padding:0 10px}.search-box{display:flex;align-items:center;gap:7px;height:38px;padding:0 10px;margin-bottom:10px;border:1px solid var(--hairline-strong);border-radius:7px;color:var(--muted);background:#fffffaf0}.search-box input{height:auto;padding:0;border:0;background:transparent}.search-box input[readonly]{cursor:pointer}select:focus,.search-box:focus-within,.admin-token-input:focus-within,.log-filters input:focus{border-color:#2f6f648a;box-shadow:0 0 0 3px #2f6f641a}.province-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;max-height:278px;overflow:auto;padding-right:2px}.province-chip,.ghost-button,.icon-button{border:1px solid var(--hairline-strong);color:var(--ink);background:#fffffaeb;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.province-chip{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:start;gap:7px;min-height:36px;padding:7px 8px;border-radius:7px;text-align:left}.province-chip:hover,.ghost-button:hover,.icon-button:hover{border-color:#2f6f646b;background:#fafcf5fa;box-shadow:0 8px 18px #17201d14}.province-chip:active,.ghost-button:active,.icon-button:active{transform:translateY(1px)}.province-chip span:nth-child(2){overflow:visible;color:var(--ink-2);line-height:1.34;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.province-chip small{padding-top:1px;color:var(--quiet);font-size:11px;font-variant-numeric:tabular-nums}.province-chip.selected{border-color:#2f6f6494;background:linear-gradient(90deg,#2f6f641f,#a9783414),#fafcf5f5}.check-box{display:grid;place-items:center;width:16px;height:16px;border:1px solid rgba(23,32,29,.12);border-radius:4px;background:#17201d0b}.province-chip.selected .check-box{border-color:var(--jade);color:#fffdf5;background:var(--jade)}.ghost-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 9px;border-radius:6px;font-size:12px;font-weight:700}.sample-metric-list{display:grid}.metric-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid rgba(23,32,29,.09)}.metric-row:first-of-type{border-top:0}.metric-row span{color:var(--muted)}.metric-row strong{color:var(--ink);font-variant-numeric:tabular-nums}.stage{display:flex;flex-direction:column;min-width:0;min-height:0;gap:14px;overflow-x:hidden;overflow-y:auto;padding:18px 20px;background:linear-gradient(180deg,#fffffa33,#dae5db2e),var(--surface-page)}.stage-toolbar{flex:0 0 auto;display:grid;grid-template-columns:minmax(360px,1fr) auto;align-items:start;gap:12px 18px;padding:2px 2px 0}.stage-toolbar>:first-child{min-width:0}.stage-toolbar h2{white-space:nowrap}.stage-actions{display:flex;align-self:end;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;max-width:100%;min-width:0}.map-mode-tabs{display:inline-flex;flex:0 0 auto;align-items:center;height:38px;padding:3px;border:1px solid var(--hairline-strong);border-radius:8px;background:#fffffad1;box-shadow:0 12px 26px #17201d14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-mode-tabs button{min-width:45px;height:30px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:12px;font-weight:850}.map-mode-tabs button:hover{color:var(--ink)}.map-mode-tabs button.active{color:#fffdf5;background:linear-gradient(135deg,var(--jade-2),var(--jade)),var(--jade);box-shadow:0 9px 20px #2f6f6433}.timeline-controls{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.timeline-selects{display:grid;grid-column:1 / -1;grid-template-columns:minmax(240px,1fr) minmax(96px,112px) minmax(96px,112px);gap:8px;width:min(720px,100%)}.timeline-selects select{background:#fffffae6}.timeline-selects .compact-select{min-width:86px}.icon-button{display:grid;place-items:center;width:38px;height:38px;border-radius:7px}.icon-button svg{stroke-width:1.8}.flow-wrap{position:relative;flex:0 0 clamp(700px,82vh,940px);min-height:700px;overflow:hidden;border:1px solid rgba(23,32,29,.18);border-radius:8px;background:linear-gradient(180deg,#edf2ec,#e2ebe2),var(--ground);box-shadow:var(--shadow-deep)}.flow-wrap:before{position:absolute;inset:0;z-index:1;pointer-events:none;content:"";border:1px solid rgba(255,255,250,.54);border-radius:7px;box-shadow:inset 0 0 70px #17201d14}.flow-canvas{display:block;width:100%;height:100%}.flow-3d-wrap{background:linear-gradient(180deg,rgba(255,255,250,.42),transparent 46%),linear-gradient(135deg,#eef2ec,#e1e9df 64%,#edf0e8)}.flow-3d-scene{position:absolute;inset:0;z-index:0;overflow:hidden}.flow-3d-canvas{display:block;width:100%;height:100%;outline:none}.map-boundary-status,.zoom-control,.flow-meta,.flow-legend,.flow-rank-panel,.flow-tooltip{border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--surface-elevated);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.map-boundary-status{position:absolute;right:16px;bottom:16px;z-index:4;max-width:min(360px,calc(100% - 32px));padding:8px 10px;color:var(--muted);font-size:12px}.map-boundary-status.failed{border-color:#a64b3e52;color:var(--cinnabar-2);background:#fff8f4ed}.zoom-control{display:flex;align-items:center;gap:6px;padding:6px}.zoom-control button{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(23,32,29,.13);border-radius:7px;color:var(--ink-2);background:#fffffadb;font-size:14px;font-weight:800}.zoom-control button:hover:not(:disabled){border-color:#a64b3e66;color:var(--cinnabar-2);background:#fff7f2f5}.zoom-control button:disabled{opacity:.4}.zoom-control .reset{width:auto;padding:0 9px;font-size:12px;font-weight:750}.zoom-control span{min-width:43px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;text-align:center}.map-zoom-control{position:absolute;top:16px;right:16px;z-index:5}.flow-meta{position:absolute;left:16px;bottom:16px;z-index:4;display:flex;align-items:baseline;gap:8px;padding:8px 10px;font-size:13px}.flow-meta strong{color:var(--cinnabar);font-size:20px;font-variant-numeric:tabular-nums}.flow-legend{position:absolute;top:16px;left:16px;z-index:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;width:min(440px,max(280px,calc(100% - 346px)));padding:10px 11px;font-size:12px}.flow-legend strong,.flow-rank-panel strong{color:var(--ink);font-size:12px}.flow-legend strong{grid-column:1 / -1}.flow-legend span{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.flow-legend i{flex:0 0 auto;width:18px;height:3px;border-radius:999px}.encoding-note{grid-column:1 / -1;display:grid;gap:6px;padding-top:7px;margin-top:2px;border-top:1px solid rgba(23,32,29,.09)}.encoding-note .width-demo{height:7px;background:linear-gradient(90deg,#a64b3e3d,#a64b3edb)}.encoding-note .dot-demo{width:14px;height:14px;border:2px solid rgba(255,255,250,.92);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px #17201d33}.encoding-note .ink-peak-demo{width:16px;height:15px;clip-path:polygon(8% 100%,34% 18%,48% 58%,68% 6%,94% 100%);background:linear-gradient(180deg,#2b3832f0,#2b383275),var(--ink-2)}.encoding-note .bias-demo{width:22px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--cinnabar) 0 34%,var(--jade) 34% 68%,var(--bronze) 68%)}.flow-rank-panel{position:absolute;left:16px;z-index:4;display:grid;gap:6px;width:192px;padding:10px 11px;font-size:12px}.flow-rank-panel.inflow{bottom:224px}.flow-rank-panel.outflow{bottom:68px}.flow-rank-panel span{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:6px;color:var(--muted)}.flow-rank-panel em{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fffdf5;background:var(--mineral);font-size:10px;font-style:normal;font-weight:800}.flow-rank-panel.inflow em{background:var(--cinnabar)}.flow-rank-panel.outflow em{background:var(--jade)}.flow-rank-panel b{color:var(--ink-2);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.flow-tooltip{position:absolute;right:16px;top:70px;z-index:6;display:grid;gap:5px;max-width:min(310px,calc(100% - 32px));padding:11px 12px;font-size:13px}.flow-tooltip span{color:var(--muted)}.loading-layer,.sankey-empty{display:grid;place-items:center;color:var(--muted)}.sankey-loading-state{align-content:center;gap:12px;padding:24px}.sankey-skeleton{width:min(560px,80%);min-height:18px}.sankey-skeleton--wide{width:min(720px,92%)}.sankey-skeleton--short{width:min(360px,58%)}.loading-layer{position:absolute;inset:0;z-index:8;background:#f6f9f28f;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.insight-hero{position:relative;display:grid;gap:4px;padding:16px;margin-bottom:14px;overflow:hidden;border-left:3px solid var(--cinnabar);background:linear-gradient(180deg,#fffffaeb,#f7f8f0db),var(--panel)}.insight-hero:after{position:absolute;right:12px;bottom:9px;width:72px;height:72px;border:1px solid rgba(166,75,62,.18);content:"";transform:rotate(45deg)}.insight-hero strong{color:var(--cinnabar);font-family:var(--font-serif);font-size:clamp(38px,6vw,64px);line-height:1;font-variant-numeric:tabular-nums}.sankey-section{min-height:620px}.sankey-feature{display:flex;flex:0 0 auto;flex-direction:column;min-height:620px;max-height:none;margin-bottom:0;border-color:#a64b3e3b;background:linear-gradient(135deg,#a64b3e0f,#2f6f640f),#fafaf4e6}.sankey-feature .section-title{flex:0 0 auto}.sankey-wrap{position:relative;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:visible}.sankey-kpi{display:flex;align-items:baseline;gap:10px;min-height:34px;margin:-2px 0 4px;padding-right:184px}.sankey-kpi strong{color:var(--cinnabar);font-family:var(--font-serif);font-size:30px;line-height:1;font-variant-numeric:tabular-nums}.sankey-kpi span{color:var(--muted);font-size:13px}.sankey-zoom-control{position:absolute;top:-4px;right:0;z-index:2}.sankey-scroll{flex:1 1 0;min-height:0;overflow:auto;padding:4px 4px 8px;border:1px solid rgba(23,32,29,.1);border-radius:8px;background:linear-gradient(180deg,#fffffa8a,#f2f6ee6b),#fffffa6b;contain:layout paint}.sankey-scroll svg{display:block;min-width:760px;min-height:420px;width:100%;height:100%}.sankey-wrap text{fill:var(--ink);font-family:var(--font-sans);font-size:12px;paint-order:stroke;stroke:#fafaf4db;stroke-width:3px}.sankey-stats{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.sankey-stats span{min-width:0;padding:7px;overflow:hidden;border:1px solid rgba(23,32,29,.07);border-radius:7px;color:var(--muted);background:#17201d0b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sankey-empty{min-height:290px}.lineage-section{position:relative;flex:0 0 auto;padding:18px;overflow:hidden;border-color:#40566f38;background:linear-gradient(180deg,#fffffae6,#f2f6eeb8),var(--surface-panel)}.lineage-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:14px}.lineage-header h2{margin:4px 0 6px;font-family:var(--font-serif);font-size:23px;font-weight:800}.lineage-header p{max-width:820px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.lineage-quality{display:grid;grid-template-columns:18px auto auto;gap:7px;align-items:center;min-height:38px;padding:8px 10px;border:1px solid rgba(47,111,100,.22);border-radius:7px;color:var(--muted);background:#fffffac2;font-size:12px;white-space:nowrap}.lineage-quality svg{color:var(--jade)}.lineage-quality strong{color:var(--ink);font-size:15px}.lineage-quality--low{border-color:#a64b3e42}.lineage-quality--low svg,.lineage-quality--low strong{color:var(--cinnabar)}.lineage-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.lineage-metric{min-width:0;padding:10px 11px;border:1px solid rgba(23,32,29,.09);border-radius:8px;background:#fffffa9e}.lineage-metric span{display:block;margin-bottom:4px;color:var(--muted);font-size:12px}.lineage-metric strong{color:var(--ink);font-family:var(--font-serif);font-size:24px;line-height:1;font-variant-numeric:tabular-nums}.lineage-time-strip{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:end;min-height:44px;margin:-4px 0 14px;padding:8px 10px;border:1px solid rgba(23,32,29,.08);border-radius:8px;background:#fffffa7a}.lineage-time-strip>span{color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.lineage-time-strip>div{display:flex;align-items:end;gap:3px;min-width:0;height:28px}.lineage-time-strip i{flex:1 1 0;min-width:4px;max-width:24px;border-radius:4px 4px 1px 1px;background:linear-gradient(180deg,#2f6f64b3,#a9783494)}.lineage-workbench{display:grid;grid-template-columns:minmax(260px,.34fr) minmax(0,1fr);gap:12px;min-height:640px}.lineage-family-list,.lineage-detail-surface,.lineage-mini-panel{border:1px solid rgba(23,32,29,.1);border-radius:8px;background:#fffffa8f}.lineage-family-list{display:flex;flex-direction:column;min-height:0;padding:12px}.lineage-subtitle{display:flex;align-items:center;gap:7px;min-height:24px;margin-bottom:10px;color:var(--ink);font-size:13px;font-weight:800}.lineage-subtitle svg{color:var(--jade)}.lineage-family-scroll{display:grid;gap:7px;min-height:0;overflow:auto;padding-right:2px}.lineage-family-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:58px;padding:8px;border:1px solid rgba(23,32,29,.09);border-radius:7px;color:var(--ink);background:#fffffa8f;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.lineage-family-row:hover{border-color:#2f6f6452;background:#fffffad1}.lineage-family-row:active{transform:translateY(1px)}.lineage-family-row.selected{border-color:#2f6f6485;background:linear-gradient(90deg,#2f6f641f,#a9783414),#fffffadb}.lineage-family-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:var(--quiet);background:#17201d0d;font-size:11px;font-weight:800}.lineage-family-main{min-width:0}.lineage-family-main strong,.lineage-family-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lineage-family-main strong{font-size:13px}.lineage-family-main small{margin-top:4px;color:var(--muted);font-size:11px}.lineage-family-score{color:var(--cinnabar);font-family:var(--font-serif);font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.lineage-detail-surface{min-width:0;padding:12px;overflow:hidden}.lineage-detail-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:10px}.lineage-caption{color:var(--muted);font-size:11px;font-weight:800}.lineage-detail-header h3{margin:3px 0 0;font-family:var(--font-serif);font-size:22px}.lineage-detail-header dl{display:grid;grid-template-columns:repeat(3,auto);gap:8px;margin:0}.lineage-detail-header dl div{min-width:82px;padding:7px 9px;border:1px solid rgba(23,32,29,.08);border-radius:7px;background:#17201d09}.lineage-detail-header dt{color:var(--muted);font-size:11px}.lineage-detail-header dd{margin:2px 0 0;color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}.lineage-timeline{min-height:310px;overflow:auto;border:1px solid rgba(23,32,29,.09);border-radius:8px;background:linear-gradient(180deg,#fffffa9e,#eff5ee7a),#fffffa6b}.lineage-timeline svg{display:block;min-width:880px;width:100%;height:auto}.lineage-timeline--loading,.lineage-timeline--empty,.lineage-state{display:flex;align-items:center;justify-content:center;gap:8px;min-height:180px;color:var(--muted);font-size:13px}.lineage-state--error{min-height:64px;justify-content:flex-start;padding:10px 12px;border:1px solid rgba(166,75,62,.22);border-radius:8px;color:var(--cinnabar);background:#a64b3e12}.lineage-phase-line{stroke:#17201d21;stroke-dasharray:3 6}.lineage-phase-label{fill:var(--muted);font-size:12px;font-weight:800}.lineage-edge{fill:none;stroke:#40566f52;stroke-linecap:round;stroke-width:1.4}.lineage-node{fill:#f7f6ed;stroke:#40566f9e;stroke-width:1.5}.lineage-node--lineage{fill:#a64b3e24;stroke:#a64b3ec7}.lineage-node-label{fill:var(--ink);font-size:12px;font-weight:800;paint-order:stroke;stroke:#fffffad1;stroke-width:3px}.lineage-node-year{fill:var(--muted);font-size:10px;paint-order:stroke;stroke:#fffffad1;stroke-width:3px}.lineage-analysis-grid{display:grid;grid-template-columns:1.15fr .9fr;gap:10px;margin-top:10px}.lineage-mini-panel{min-height:180px;padding:12px;overflow:hidden}.lineage-bars{display:grid;gap:9px}.lineage-bar-row{display:grid;grid-template-columns:88px minmax(0,1fr) 36px;gap:8px;align-items:center}.lineage-bar-row span,.lineage-region-row span,.lineage-age-item span{color:var(--muted);font-size:12px}.lineage-bar-row div{height:8px;overflow:hidden;border-radius:999px;background:#17201d12}.lineage-bar-row i,.lineage-region-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6f64c2,#a978349e)}.lineage-bar-row strong{text-align:right;font-variant-numeric:tabular-nums}.lineage-bar-row small{grid-column:2 / 4;overflow:hidden;color:var(--quiet);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.lineage-region-list{display:grid;gap:8px}.lineage-region-row{display:grid;grid-template-columns:36px minmax(0,1fr) 62px 28px;gap:7px;align-items:center}.lineage-region-row strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.lineage-region-row i{height:7px;background:linear-gradient(90deg,#40566fb8,#2f6f6494)}.lineage-region-row em{color:var(--quiet);font-size:11px;font-style:normal;text-align:right}.lineage-age-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;min-height:122px;align-items:end}.lineage-age-item{position:relative;display:grid;align-content:end;min-height:122px;padding:8px 5px;overflow:hidden;border-radius:7px;background:#17201d0b}.lineage-age-item i{position:absolute;right:0;bottom:0;left:0;z-index:0;background:#a64b3e2e}.lineage-age-item span,.lineage-age-item strong{position:relative;z-index:1;text-align:center}.lineage-age-item strong{color:var(--ink);font-variant-numeric:tabular-nums}.lineage-quality-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 10px}.lineage-quality-list div{padding:8px;border-radius:7px;background:#17201d0b}.lineage-quality-list dt{color:var(--muted);font-size:11px}.lineage-quality-list dd{margin:2px 0 0;color:var(--cinnabar);font-weight:800;font-variant-numeric:tabular-nums}.lineage-quality-panel p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.lineage-skeleton{display:grid;gap:10px;padding:12px}.lineage-skeleton span{height:18px;border-radius:999px;background:linear-gradient(90deg,#17201d0f,#fffffab8,#17201d0f);animation:ui-skeleton-shimmer 1.4s ease-in-out infinite}.event-shock-section{position:relative;flex:0 0 auto;padding:18px;overflow:hidden;border-color:#40566f38;background:linear-gradient(180deg,#fffffae6,#f1f5f0b3),var(--surface-panel)}.event-shock-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:14px}.event-shock-header h2{margin:4px 0 6px;font-family:var(--font-serif);font-size:23px;font-weight:800}.event-shock-header p{max-width:860px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.event-richness{display:grid;grid-template-columns:18px auto auto;gap:7px;align-items:center;min-height:38px;padding:8px 10px;border:1px solid rgba(64,86,111,.24);border-radius:7px;color:var(--muted);background:#fffffac2;font-size:12px;white-space:nowrap}.event-richness svg{color:var(--mineral)}.event-richness strong{color:var(--ink);font-size:15px}.event-richness--low svg,.event-richness--low strong{color:var(--cinnabar)}.event-shock-controls{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:10px;align-items:end;margin-bottom:12px}.event-shock-controls label span{display:block;margin-bottom:6px;color:var(--muted);font-size:12px}.event-window-note{min-height:38px;padding:8px 10px;border:1px solid rgba(23,32,29,.08);border-radius:8px;background:#fffffa8a}.event-window-note strong{margin-right:10px;color:var(--ink);font-variant-numeric:tabular-nums}.event-window-note span{color:var(--muted);font-size:12px}.event-shock-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.event-metric{min-width:0;padding:10px 11px;border:1px solid rgba(23,32,29,.09);border-radius:8px;background:#fffffa9e}.event-metric span{display:block;margin-bottom:4px;color:var(--muted);font-size:12px}.event-metric strong{color:var(--ink);font-family:var(--font-serif);font-size:24px;line-height:1;font-variant-numeric:tabular-nums}.event-shock-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.8fr);gap:10px}.event-map-panel,.event-career-flow-panel{grid-column:1 / -1}.event-panel{min-width:0;min-height:220px;padding:12px;border:1px solid rgba(23,32,29,.1);border-radius:8px;background:#fffffa8f}.event-panel-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:24px;margin-bottom:10px;color:var(--ink);font-size:13px;font-weight:800}.event-panel-title svg{color:var(--mineral)}.event-panel-title small{color:var(--muted);font-size:11px;font-weight:650}.event-map-panel{position:relative;overflow:visible;min-height:560px;padding:0;border-color:transparent;background:transparent}.event-map-panel .event-panel-title{min-height:16px;margin-bottom:6px;color:#17201dc7;font-size:10px;font-weight:800}.event-map-title{letter-spacing:0}.event-map-scroll{position:relative;width:100%;min-height:536px;overflow:hidden;border-radius:8px;background:transparent;scrollbar-gutter:auto}.event-career-flow-panel{display:grid;gap:12px}.event-flow-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.event-flow-stat{min-width:0;padding:10px 11px;border:1px solid rgba(23,32,29,.08);border-radius:8px;background:#fffffa8a}.event-flow-stat span,.event-flow-stat em{display:block;color:var(--muted);font-size:11px;font-style:normal}.event-flow-stat strong{display:block;margin:4px 0 3px;font-family:var(--font-serif);font-size:22px;line-height:1}.event-flow-stat--up strong{color:var(--jade)}.event-flow-stat--down strong{color:var(--cinnabar)}.event-flow-stat--lateral strong{color:var(--mineral)}.event-flow-stat--delta strong{color:var(--ink)}.event-flow-scroll{overflow:auto;border:1px solid rgba(23,32,29,.08);border-radius:8px;background:linear-gradient(180deg,#fffffa61,#eef2ec57)}.event-flow-scroll svg{display:block;width:100%;min-width:820px}.event-flow-axis,.event-flow-note,.event-flow-band-meta{fill:var(--muted);font-size:11px;font-weight:800}.event-flow-note{fill:#17201d8a;font-weight:700}.event-flow-link{fill:none;stroke-linecap:round;opacity:.34;mix-blend-mode:multiply}.event-flow-link--up{stroke:var(--jade)}.event-flow-link--down{stroke:var(--cinnabar)}.event-flow-link--lateral{stroke:var(--mineral)}.event-flow-band{fill:#fffffadb;stroke:#17201d1c;stroke-width:1}.event-flow-band-label{fill:var(--ink);font-size:12px;font-weight:900}.event-flow-focus{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.event-flow-person{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:6px;align-items:center;min-width:0;padding:7px;border:1px solid rgba(23,32,29,.08);border-radius:7px;background:#fffffa80}.event-flow-person span{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#17201d0e}.event-flow-person strong,.event-flow-person small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-flow-person strong{font-size:12px}.event-flow-person em{font-style:normal;font-weight:900;font-variant-numeric:tabular-nums}.event-flow-person small{grid-column:2 / 4;color:var(--muted);font-size:10.5px}.event-flow-person--up span,.event-flow-person--up em{color:var(--jade)}.event-flow-person--down span,.event-flow-person--down em{color:var(--cinnabar)}.event-map-panel svg{display:block;width:100%;min-width:0;min-height:536px;height:min(64vw,560px);overflow:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.event-map-panel svg.is-dragging{cursor:grabbing}.event-map-content{transform-box:fill-box;transform-origin:center;will-change:transform}.event-map-region{stroke:#47556957;stroke-width:.7;vector-effect:non-scaling-stroke}.event-map-region--0{fill:#eef2ece6}.event-map-region--1{fill:#e4ede5e6}.event-map-region--2{fill:#ede9dbeb}.event-map-region--3{fill:#e2ebeee6}.event-map-region--4{fill:#eee5e0db}.event-map-outline{fill:none;stroke:#17201d9e;stroke-linejoin:round;stroke-width:1.35;vector-effect:non-scaling-stroke}.event-map-flight-shadow,.event-map-flight-core,.event-map-flight-hitbox{fill:none;stroke-linecap:round;stroke-linejoin:round}.event-map-flight-shadow{stroke-width:5.6;opacity:.16;filter:drop-shadow(0 3px 7px rgba(23,32,29,.13))}.event-map-flight-core{stroke-width:1.55;stroke-dasharray:10 24;stroke-linecap:round;opacity:.9;animation:event-map-flight-flow 3.2s linear infinite}.event-map-flight-hitbox{stroke:transparent;stroke-width:14;pointer-events:stroke}.event-map-path:hover .event-map-flight-core{stroke-width:2.35;opacity:1}.event-map-path:hover .event-map-flight-shadow{stroke-width:7;opacity:.28}@keyframes event-map-flight-flow{to{stroke-dashoffset:-68}}.event-map-path--up .event-map-flight-shadow,.event-map-path--up .event-map-flight-core{stroke:#2f6f649e}.event-map-path--down .event-map-flight-shadow,.event-map-path--down .event-map-flight-core{stroke:#a64b3e9e}.event-map-path--lateral .event-map-flight-shadow,.event-map-path--lateral .event-map-flight-core{stroke:#40566f85}.event-map-node{cursor:help;pointer-events:auto;stroke:#fffffaf0;stroke-width:1.4;filter:drop-shadow(0 4px 9px rgba(23,32,29,.18))}.event-map-node--up-dominant{fill:#2f6f64e0}.event-map-node--down-dominant{fill:#a64b3ee0}.event-map-legend{position:absolute;right:14px;bottom:12px;display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:min(520px,calc(100% - 28px));padding:5px 7px;border:1px solid rgba(23,32,29,.1);border-radius:7px;background:#fffffad1;box-shadow:0 8px 18px #17201d12;color:#17201db8;font-size:10px;font-weight:800}.event-map-zoom-control{position:absolute;top:22px;right:14px;z-index:3}.event-map-legend span{display:inline-flex;gap:4px;align-items:center}.event-map-legend i{display:inline-block;width:14px;height:2px;border-radius:999px;background:var(--mineral)}.event-map-legend .line.up{background:var(--jade)}.event-map-legend .line.down{background:var(--cinnabar)}.event-map-legend .line.lateral{background:var(--mineral)}.event-map-legend .point{width:8px;height:8px;border:1px solid rgba(255,255,250,.9);border-radius:50%}.event-map-legend .point.up-dominant{background:var(--jade)}.event-map-legend .point.down-dominant{background:var(--cinnabar)}.event-map-legend-break{width:1px;align-self:stretch;background:#17201d24}.event-map-tooltip{position:absolute;z-index:6;display:grid;gap:4px;max-width:min(300px,calc(100% - 24px));padding:8px 10px;border:1px solid rgba(23,32,29,.12);border-radius:7px;color:var(--ink);background:#fffffaf0;box-shadow:0 12px 26px #17201d24;pointer-events:none;transform:translate(-50%,14px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.event-map-tooltip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.event-map-tooltip span,.event-map-tooltip em{color:var(--muted);font-size:11px;font-style:normal;line-height:1.45}.event-map-status{position:absolute;left:14px;bottom:12px;padding:5px 7px;border:1px solid rgba(23,32,29,.1);border-radius:7px;color:var(--muted);background:#fffffac7;font-size:10px;font-weight:800}.event-map-status--failed{color:var(--cinnabar);border-color:#a64b3e38;background:#a64b3e14}.event-people-list{display:grid;gap:7px;max-height:330px;overflow:auto}.event-person{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px;border:1px solid rgba(23,32,29,.08);border-radius:7px;background:#fffffa80}.event-person span{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#17201d0e}.event-person--up span,.event-person--up em{color:var(--jade)}.event-person--down span,.event-person--down em{color:var(--cinnabar)}.event-person strong,.event-person small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-person em{font-style:normal;font-weight:900;font-variant-numeric:tabular-nums}.event-person small{grid-column:2 / 4;color:var(--muted);font-size:11px}.event-direction-stack{display:grid;gap:8px;margin-bottom:10px}.event-direction{display:grid;grid-template-columns:32px minmax(0,1fr) 36px;gap:8px;align-items:center}.event-direction span{color:var(--muted);font-size:12px}.event-direction i{height:8px;border-radius:999px;background:var(--mineral)}.event-direction--up i{background:var(--jade)}.event-direction--down i{background:var(--cinnabar)}.event-direction strong{text-align:right;font-variant-numeric:tabular-nums}.event-boundary-panel p,.event-boundary-panel li{color:var(--muted);font-size:12px;line-height:1.55}.event-boundary-panel p{margin:0 0 8px}.event-boundary-panel ul{display:grid;gap:5px;margin:0;padding-left:16px}.event-shock-state{display:flex;align-items:center;justify-content:center;gap:8px;min-height:160px;color:var(--muted);font-size:13px}.event-shock-state--error{justify-content:flex-start;min-height:58px;padding:10px 12px;border:1px solid rgba(166,75,62,.22);border-radius:8px;color:var(--cinnabar);background:#a64b3e12}.geo-qa-section{position:relative;flex:0 0 auto;overflow:visible;margin-bottom:2px;padding:18px;scroll-margin-bottom:24px}.geo-qa-section:before{position:absolute;inset:0;pointer-events:none;content:"";background:radial-gradient(circle at 12% 0%,rgba(47,111,100,.13),transparent 30%),linear-gradient(135deg,rgba(64,86,111,.08),transparent 46%,rgba(169,120,52,.08))}.geo-qa-heading,.geo-qa-grid{position:relative;z-index:1}.geo-qa-heading{margin-bottom:16px}.geo-qa-heading h2{margin-top:4px;font-size:21px}.geo-qa-grid{display:grid;grid-template-columns:1fr;gap:12px}.geo-qa-item{min-height:0;padding:0;border:1px solid rgba(23,32,29,.12);border-radius:8px;background:#fffffa9e}.geo-qa-item[open]{background:#fffffac7}.geo-qa-question{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:13px 14px;cursor:pointer;list-style:none}.geo-qa-question::-webkit-details-marker{display:none}.geo-qa-question:after{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border:1px solid rgba(47,111,100,.28);border-radius:6px;color:var(--jade-2);background:#fffffabd;content:"+";font-weight:900}.geo-qa-item[open] .geo-qa-question:after{content:"-"}.geo-qa-item h3{margin:0;color:var(--ink);font-size:14px;line-height:1.42}.geo-qa-item p{margin:0;padding:0 14px 14px;color:var(--muted);font-size:13px;line-height:1.68}.geo-qa-item a{color:var(--jade-2);font-weight:800;text-decoration-color:#2f6f645c;text-underline-offset:3px}.rank-list{display:grid;gap:10px}.rank-label{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:12px}.rank-label span{overflow:hidden;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap}.rank-label strong{flex:0 0 auto;color:var(--muted);font-variant-numeric:tabular-nums}.rank-track{height:7px;overflow:hidden;border-radius:4px;background:#17201d14}.rank-track span{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--cinnabar),var(--bronze) 52%,var(--jade))}.error-box{padding:12px;border:1px solid rgba(166,75,62,.36);border-radius:8px;color:var(--cinnabar-2);background:#a64b3e17;font-size:13px}.admin-login-shell{position:relative;z-index:1;display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(90deg,rgba(47,111,100,.06),transparent 40%,rgba(166,75,62,.05)),linear-gradient(180deg,#f4f5ef,var(--surface-page-2))}.admin-login-card{display:grid;gap:14px;width:min(420px,calc(100vw - 48px));max-width:100%;min-width:0;padding:24px;box-shadow:var(--shadow-deep)}.admin-login-mark{position:relative;display:grid;place-items:center;width:48px;height:48px;border-radius:8px;color:#fffdf5;background:linear-gradient(145deg,var(--ink),var(--jade))}.admin-token-input,.log-filters input{display:flex;align-items:center;min-height:38px;border:1px solid var(--hairline-strong);border-radius:7px;background:#fffffaf0}.admin-token-input{gap:8px;min-width:0;padding:0 10px;color:var(--muted)}.admin-token-input input{flex:1 1 auto;width:auto;min-width:0;border:0;color:var(--ink);background:transparent;outline:none}.admin-primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid rgba(47,111,100,.58);border-radius:7px;color:#fffdf5;background:linear-gradient(135deg,var(--jade-2),var(--jade));box-shadow:0 12px 26px #2f6f642b;font-weight:800}.admin-primary-button.compact{min-height:36px}.admin-primary-button:disabled{opacity:.5}.auth-submit-button{gap:6px}.button-spinner{animation:button-spin .85s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}.admin-shell{position:relative;z-index:1;height:100vh;overflow-x:hidden;overflow-y:auto;padding:22px;background:linear-gradient(90deg,rgba(47,111,100,.055),transparent 34%,rgba(166,75,62,.045)),linear-gradient(180deg,#f4f5ef,var(--surface-page-2))}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-header h1{margin-top:4px;font-size:26px}.admin-header-actions{display:flex;gap:8px}.admin-header-actions .ghost-button,.pager .ghost-button,.log-filters .ghost-button{display:inline-flex;align-items:center;gap:6px}.admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.admin-metric-card{display:grid;gap:8px;padding:16px}.admin-metric-card>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(47,111,100,.14);border-radius:7px;color:var(--jade);background:#2f6f641a}.admin-metric-card p{color:var(--muted);font-size:13px}.admin-metric-card strong{color:var(--ink);font-family:var(--font-serif);font-size:30px;line-height:1;font-variant-numeric:tabular-nums}.admin-panels{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr);gap:14px;margin-bottom:14px}.admin-panel{padding:14px}.compare-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 0;border-top:1px solid rgba(23,32,29,.08);font-size:13px}.compare-row:first-of-type{border-top:0}.compare-row span{color:var(--muted)}.compare-row strong{color:var(--ink-2);font-variant-numeric:tabular-nums}.compare-row em{min-width:96px;padding:3px 7px;border-radius:999px;font-style:normal;text-align:center}.compare-row em.up{color:var(--jade-2);background:#2f6f641f}.compare-row em.down{color:var(--cinnabar-2);background:#a64b3e1f}.action-bars{display:grid;gap:9px}.action-bar{display:grid;grid-template-columns:150px minmax(120px,1fr) 56px;align-items:center;gap:10px;font-size:12px}.action-bar span{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.action-bar div{height:8px;overflow:hidden;border-radius:5px;background:#17201d14}.action-bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--jade),var(--bronze),var(--cinnabar))}.action-bar b{color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}.log-panel{display:flex;flex-direction:column;min-height:0;margin-bottom:0}.auth-quota-panel{display:grid;gap:10px;margin-bottom:14px}.auth-quota-current{margin-left:auto;color:var(--jade-2);font-size:12px}.auth-quota-note{color:var(--muted);font-size:13px;line-height:1.5}.auth-quota-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.auth-quota-option{display:grid;gap:5px;min-height:82px;padding:12px;border:1px solid rgba(23,32,29,.1);border-radius:8px;color:var(--ink);background:#fffffaad;font-family:inherit;text-align:left;cursor:pointer}.auth-quota-option span{font-weight:800}.auth-quota-option small{color:var(--muted);font-size:12px;line-height:1.45}.auth-quota-option.active{border-color:#2f6f646b;background:#2f6f641a;box-shadow:inset 0 0 0 1px #2f6f6414}.auth-quota-option:disabled{cursor:wait;opacity:.68}.log-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));align-items:center;gap:8px;margin-bottom:12px}.log-filters input{width:100%;padding:0 10px;color:var(--ink);outline:none}.suggest-filter{position:relative;min-width:0}.suggest-filter-menu{position:absolute;z-index:40;top:calc(100% + 6px);right:0;left:0;max-height:220px;overflow-y:auto;padding:5px;border:1px solid var(--line);border-radius:8px;background:#fcfaf6fa;box-shadow:0 16px 38px #241e1624}.suggest-filter-menu button{width:100%;min-height:30px;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--ink);font-family:inherit;font-size:12px;line-height:1.35;text-align:left;word-break:break-all;cursor:pointer}.suggest-filter-menu button:hover,.suggest-filter-menu button.is-active{background:#8e5f3e1f}.log-filters .admin-primary-button,.log-filters .ghost-button{min-height:38px;justify-content:center}.log-table-wrap{max-height:min(68dvh,720px);overflow:hidden;overscroll-behavior:contain}.log-table-wrap .ui-table-scroll{max-height:inherit;overscroll-behavior:contain}.log-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;font-size:12px}.registered-user-panel{margin-bottom:14px}.registered-user-table-wrap{max-height:min(52dvh,560px)}.registered-user-table{min-width:1120px}.log-table th,.log-table td{padding:10px 11px;vertical-align:top;border-bottom:1px solid rgba(23,32,29,.075);font-size:12px;line-height:1.45;text-align:left}.log-table thead th{position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border-subtle);color:var(--muted);background:#f6f8f0f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-weight:800}.log-table tbody tr:hover{background:#2f6f640e}.log-table .mono,.params-cell{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-variant-numeric:tabular-nums}.params-cell{max-width:460px;color:var(--ink-2);white-space:normal;overflow-wrap:anywhere}.action-pill{display:inline-flex;padding:3px 7px;border-radius:999px;color:var(--jade-2);background:#2f6f641f;font-weight:800}.admin-empty{padding:16px;color:var(--muted);font-size:13px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.pager span{margin-right:auto;color:var(--muted);font-size:13px}.pager select{width:auto;min-width:92px}.stage::-webkit-scrollbar,.admin-shell::-webkit-scrollbar,.log-table-wrap .ui-table-scroll::-webkit-scrollbar,.sidebar::-webkit-scrollbar,.province-list::-webkit-scrollbar,.sankey-scroll::-webkit-scrollbar,.lineage-family-scroll::-webkit-scrollbar,.lineage-timeline::-webkit-scrollbar,.event-map-scroll::-webkit-scrollbar,.event-people-list::-webkit-scrollbar{width:10px;height:10px}.stage::-webkit-scrollbar-track,.admin-shell::-webkit-scrollbar-track,.log-table-wrap .ui-table-scroll::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-track,.province-list::-webkit-scrollbar-track,.sankey-scroll::-webkit-scrollbar-track,.lineage-family-scroll::-webkit-scrollbar-track,.lineage-timeline::-webkit-scrollbar-track,.event-map-scroll::-webkit-scrollbar-track,.event-people-list::-webkit-scrollbar-track{background:#17201d0b}.stage::-webkit-scrollbar-thumb,.admin-shell::-webkit-scrollbar-thumb,.log-table-wrap .ui-table-scroll::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb,.province-list::-webkit-scrollbar-thumb,.sankey-scroll::-webkit-scrollbar-thumb,.lineage-family-scroll::-webkit-scrollbar-thumb,.lineage-timeline::-webkit-scrollbar-thumb,.event-map-scroll::-webkit-scrollbar-thumb,.event-people-list::-webkit-scrollbar-thumb{border:2px solid rgba(246,248,240,.88);border-radius:10px;background:#505c5461}@media(max-width:1190px){body{overflow:auto}.app-shell{display:flex;flex-direction:column;min-height:100dvh;height:auto}.sidebar{min-height:auto;max-height:none;overflow:visible}.sidebar-left,.sidebar-right{border:0;border-bottom:1px solid var(--border-subtle)}.stage{order:1;min-height:auto;overflow:visible;padding:16px}.sidebar-left{order:2}.sidebar-right{order:3}.stage-toolbar{grid-template-columns:minmax(320px,1fr) auto}.stage-actions{justify-content:flex-start}.flow-wrap{flex-basis:auto;min-height:560px;height:min(72dvh,720px)}.sidebar-right{border-left:0}.sidebar-right>*{margin-bottom:0}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-panels,.log-filters,.lineage-workbench{grid-template-columns:1fr}.lineage-family-list{max-height:360px}.lineage-analysis-grid,.event-shock-grid,.event-shock-controls{grid-template-columns:1fr}.geo-qa-heading{align-items:start;flex-direction:column}}@media(max-width:720px){.sidebar,.stage{padding:12px}.auth-quota-current{width:100%;margin-left:0}.auth-quota-options{grid-template-columns:1fr}.brand-block{grid-template-columns:38px minmax(0,1fr);gap:10px}.brand-mark{width:38px;height:38px}.stage-actions,.timeline-controls{width:100%}.stage-toolbar{grid-template-columns:1fr}.timeline-controls{display:grid;grid-template-columns:minmax(112px,1fr) 38px 38px}.timeline-selects{grid-template-columns:1fr;width:100%}.map-mode-tabs{grid-column:1;width:100%;min-width:0;flex:1 1 112px}.stage-toolbar h2{white-space:nowrap}.timeline-controls .map-mode-tabs{min-width:0}.flow-wrap{width:100%;max-width:100%;min-height:460px;height:68dvh}.map-zoom-control{top:16px;left:16px;right:16px;flex-wrap:wrap;justify-content:flex-end;width:auto;max-width:none}.map-zoom-control .reset{padding:0 7px}.map-mode-tabs button{flex:1}.flow-legend{top:66px;width:calc(100% - 32px)}.flow-tooltip{top:120px}.sankey-kpi{flex-wrap:wrap;padding-right:0}.sankey-zoom-control{position:static;align-self:flex-start;margin:4px 0 8px}.sankey-feature{min-height:600px}.sankey-stats{grid-template-columns:1fr}.lineage-section{padding:14px}.lineage-header,.lineage-detail-header{grid-template-columns:1fr}.lineage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.lineage-detail-header dl{grid-template-columns:1fr}.lineage-workbench{min-height:0}.lineage-timeline{min-height:280px}.lineage-age-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lineage-quality-list{grid-template-columns:1fr}.event-shock-section{padding:14px}.event-shock-header{grid-template-columns:1fr}.event-shock-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.event-panel{min-height:190px}.geo-qa-grid{grid-template-columns:1fr}.sidebar-right{display:block}.admin-shell{padding:14px}.admin-login-shell{justify-items:center;padding:16px;overflow:hidden}.admin-login-card{width:100%;max-width:420px;padding:24px 18px}.admin-header,.pager{align-items:stretch;flex-direction:column}.admin-grid,.compare-row{grid-template-columns:1fr}}
