:root{--desk:#ececef;--shell:#fff;--surface:#fff;--surface-sunk:#f7f7f9;--surface-hover:#f1f4f9;--v-50:#edf6fd;--v-100:#d7e9f9;--v-200:#b0d2f2;--v-300:#7eb4e7;--v-400:#4d96db;--v-500:#257dd0;--v-600:#1b6ab3;--v-700:#114d8d;--hero-grad:linear-gradient(145deg, #b0d2f2 0%, #2f7fd0 45%, #3b00eb 100%);--ink-900:#141418;--ink-700:#3a3a44;--ink-500:#6b6b78;--ink-400:#9a9aa8;--line:#e8e8ec;--ok:#16a34a;--ok-bg:#ecfdf3;--path:#0ea5e9;--path-bg:#e0f2fe;--side-panel:380px;--warn:#d97706;--warn-bg:#fff7ed;--error:#dc2626;--error-bg:#fef2f2;--info:#3b00eb;--info-bg:#efeaff;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--sh-sm:0 1px 2px #1414180d;--sh-md:0 4px 16px #1414180f;--sh-lg:0 12px 40px #1414181a;--sh-xl:0 24px 70px #1414181f;--font:ui-sans-serif, -apple-system, "Segoe UI", Inter, Roboto, sans-serif;--font-num:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--surface);color:var(--ink-700);font-family:var(--font);font-size:14px;line-height:1.5;overflow-x:hidden}.card,.hero{min-width:0}h1{color:var(--ink-900);font-size:34px;font-weight:500;line-height:1.15}h2{color:var(--ink-900);font-size:19px;font-weight:500;line-height:1.3}a{color:var(--v-600);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:14px}:focus-visible{box-shadow:0 0 0 3px var(--v-100), 0 0 0 4px var(--v-400);outline:none}.micro{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400);font-size:11px;font-weight:500}.shell{background:var(--surface);grid-template:"brand top"56px"rail content"1fr/64px 1fr;height:100vh;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--surface);z-index:30;grid-area:brand/brand/top/top;align-items:center;gap:14px;padding:0 16px 0 0;display:flex}.brand{width:64px;color:var(--ink-900);flex-shrink:0;align-items:center;gap:9px;padding-left:20px;font-size:15px;display:flex}.brand svg{color:var(--v-500);flex-shrink:0}.brand-logo{object-fit:cover;object-position:top center;flex-shrink:0;width:26px;height:26px}.brand-name{white-space:nowrap;font-weight:500;display:none}.brand-name b{font-weight:600}@media (width>=1100px){.brand{width:212px}.brand-name{display:inline}}.topbar-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex;position:relative}.user-btn{border-radius:var(--r-pill);color:var(--ink-700);background:0 0;border:none;align-items:center;gap:9px;padding:4px 10px 4px 4px;display:flex}.user-btn:hover{background:var(--surface-sunk)}.user-meta{flex-direction:column;align-items:flex-start;line-height:1.25;display:none}.user-meta strong{color:var(--ink-900);font-size:13px;font-weight:500}.user-meta span{color:var(--ink-400);font-size:11px}@media (width>=900px){.user-meta{display:flex}}.rail{border-right:1px solid var(--line);background:var(--surface);z-index:20;flex-direction:column;grid-area:rail;align-items:center;gap:4px;padding:10px 0;display:flex}.rail-spacer{flex:1}.rail-link{border-radius:var(--r-md);width:50px;height:50px;color:var(--ink-400);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex;position:relative}.rail-link span{letter-spacing:.01em;font-size:9.5px}.rail-link:hover{background:var(--surface-sunk);color:var(--ink-900);text-decoration:none}.rail-link.active{background:var(--v-50);color:var(--v-700)}.rail-link.active:before{content:"";background:var(--v-500);border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:-7px}.shell-content{background:var(--desk);flex-direction:column;grid-area:content;min-width:0;min-height:0;padding:20px 24px 24px;display:flex;overflow-y:auto}.shell-content:has(.chart-page){padding:12px;overflow:hidden}.avatar{background:var(--v-100);width:32px;height:32px;color:var(--v-700);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.avatar:hover{background:var(--v-200)}.popover{z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-lg);min-width:250px;padding:8px;position:absolute;top:46px;right:0}.popover .pop-head{border-bottom:1px solid var(--line);margin-bottom:6px;padding:8px 10px}.popover button{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink-700);background:0 0;border:none;align-items:center;gap:8px;padding:9px 10px;display:flex}.popover button:hover{background:var(--surface-hover)}.btn{border-radius:var(--r-pill);white-space:nowrap;border:1px solid #0000;align-items:center;gap:7px;padding:9px 20px;font-weight:500;display:inline-flex}.btn-primary{background:var(--v-500);color:#fff;box-shadow:var(--sh-sm)}.btn-toggle-on{background:var(--v-50);color:var(--v-700);border:1px solid var(--v-400);box-shadow:inset 0 0 0 1px var(--v-200)}.btn-toggle-on:hover{background:var(--v-100)}.btn-primary:hover{background:var(--v-600)}.btn-primary:disabled{background:var(--v-200);cursor:default}.btn-secondary{background:var(--surface);color:var(--ink-700);border-color:var(--line)}.btn-secondary:hover{background:var(--surface-hover)}.btn-danger{background:var(--surface);color:var(--error);border-color:var(--error)}.btn-danger:hover{background:var(--error-bg)}.btn-danger-solid{background:var(--error);color:#fff}.btn-danger-solid:hover{background:#b91c1c}.btn-full{justify-content:center;width:100%}.icon-btn{border-radius:var(--r-sm);width:34px;height:34px;color:var(--ink-500);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-sunk);color:var(--ink-900)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.input,.select{background:var(--surface-sunk);border-radius:var(--r-sm);height:38px;color:var(--ink-900);border:1px solid #0000;width:100%;padding:0 12px;font-family:inherit;font-size:14px}.input:focus,.select:focus{border-color:var(--v-400);box-shadow:0 0 0 3px var(--v-100);background:#fff;outline:none}.textarea{resize:vertical;height:auto;padding:10px 12px;font-family:inherit;line-height:1.5}.source-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:6px 0;font-size:13px;display:flex}.source-row:last-child{border-bottom:none}.input.invalid{border-color:var(--error)}.field-error{color:var(--error);font-size:12.5px}.search{position:relative}.search svg{color:var(--ink-400);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search .input{padding-left:34px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:24px}.card-title{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.hero{background:var(--hero-grad);border-radius:var(--r-lg);color:#fff;border:none;padding:24px}.hero h2,.hero h3{color:#fff}.hero .hero-tile{border-radius:var(--r-md);text-align:center;background:#ffffff2e;border:1px solid #ffffff47;padding:12px}.stat-num{font-variant-numeric:tabular-nums;color:var(--ink-900);font-size:30px;font-weight:600;line-height:1.1}.chip{background:var(--v-50);color:var(--v-700);border-radius:var(--r-pill);border:none;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.chip .x{cursor:pointer;opacity:.7}.badge{border-radius:var(--r-pill);padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-error{background:var(--error-bg);color:var(--error)}.badge-grey{background:var(--surface-sunk);color:var(--ink-500)}.segmented{background:var(--surface-sunk);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.segmented button{border-radius:var(--r-pill);color:var(--ink-500);background:0 0;border:none;padding:6px 14px;font-size:13px}.segmented button.active{color:var(--ink-900);box-shadow:var(--sh-sm);background:#fff;font-weight:500}.table{border-collapse:collapse;width:100%}.table th{text-align:left;background:var(--surface-sunk);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400);padding:10px 12px;font-size:11px;font-weight:500;position:sticky;top:0}.table th:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.table th:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}.table tbody tr:hover{background:var(--surface-hover)}.scrim{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14141861;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-xl);flex-direction:column;width:100%;max-height:90vh;padding:0;display:flex;overflow-y:auto}.modal-head{border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:12px;padding:18px 22px;display:flex}.modal-head h2{font-size:17px;line-height:1.3}.modal-sub{color:var(--ink-400);margin-top:1px;font-size:12.5px}.modal-badge{border-radius:var(--r-sm);background:var(--v-50);width:34px;height:34px;color:var(--v-600);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.modal-badge.danger{background:var(--error-bg);color:var(--error)}.modal-body{padding:20px 22px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);background:var(--surface-sunk);border-radius:0 0 var(--r-xl) var(--r-xl);flex-shrink:0;align-items:center;gap:10px;padding:14px 22px;display:flex}.modal-foot>.btn:first-child{margin-right:auto}.modal-foot>.btn:first-child~.btn{margin-right:0}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.form-grid>.col-full{grid-column:1/-1}@media (width<=560px){.form-grid{grid-template-columns:1fr}}.req{color:var(--error);margin-left:2px}.field-hint{color:var(--ink-400);font-size:12px;line-height:1.45}.field-derived{border:1px dashed var(--line);border-radius:var(--r-sm);background:var(--surface-sunk);height:38px;color:var(--ink-400);text-overflow:ellipsis;white-space:nowrap;align-items:center;padding:0 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;display:flex;overflow:hidden}.meta-note{background:var(--surface-sunk);border-radius:var(--r-sm);color:var(--ink-500);align-items:flex-start;gap:9px;padding:11px 13px;font-size:12.5px;line-height:1.5;display:flex}.meta-note svg{flex-shrink:0;margin-top:2px}.combo{display:block;position:relative}.combo-input{width:100%;padding-right:32px}.combo-caret{border-radius:0 var(--r-sm) var(--r-sm) 0;width:30px;color:var(--ink-400);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:1px;bottom:1px;right:1px}.combo-caret:hover{color:var(--ink-700)}.combo-caret:disabled{opacity:.4;cursor:default}.combo-pop{z-index:110;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-lg);padding:4px;display:block;position:fixed;overflow-y:auto}.combo-opt{text-align:left;cursor:pointer;border-radius:var(--r-sm);width:100%;font:inherit;color:var(--ink-900);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;padding:8px 10px;font-size:13.5px;display:block;overflow:hidden}.combo-opt.on{background:var(--v-50);color:var(--v-700)}.combo-opt.picked{font-weight:600}.combo-opt b{color:var(--v-700);font-weight:700}.combo-opt.on b{color:inherit}.combo-none{color:var(--ink-500);padding:9px 10px;font-size:12.5px}.combo-none b{color:var(--ink-900);font-weight:600}.drawer{z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:380px;box-shadow:var(--sh-lg);padding:20px;position:fixed;top:24px;bottom:24px;right:24px;overflow-y:auto}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.drawer-section{border-top:1px solid var(--line);padding:14px 0}.notistack-SnackbarContainer{bottom:24px}.strip{border-radius:var(--r-md);align-items:flex-start;gap:8px;padding:10px 14px;font-size:13px;line-height:1.5;display:flex}.strip>b,.strip>i,.strip>em,.strip>strong,.strip>a,.strip>code{display:inline}.strip>svg:first-child{flex-shrink:0;margin-top:2px}.strip:not(:has(>svg)){display:block}.strip-info{background:var(--info-bg);color:var(--info)}.strip-warn{background:var(--warn-bg);color:var(--warn)}.strip-error{background:var(--error-bg);color:var(--error)}.strip-ok{background:var(--ok-bg);color:var(--ok)}.strip-violet{background:var(--v-50);border:1px solid var(--v-200);color:var(--v-700)}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:10px;display:flex}.muted{color:var(--ink-500)}.faint{color:var(--ink-400);font-size:12.5px}.mono{font-family:var(--font-num)}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.spinner{border:2px solid var(--v-200);border-top-color:var(--v-600);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:var(--surface-sunk);border-radius:var(--r-md);animation:1.4s infinite shimmer}@keyframes shimmer{0%,to{opacity:1}50%{opacity:.55}}.signin-desk{background:radial-gradient(600px 400px at 50% 40%, var(--v-100), transparent), var(--desk);justify-content:center;align-items:center;min-height:100vh;display:flex}.signin-card{background:var(--surface);border-radius:var(--r-xl);width:420px;box-shadow:var(--sh-xl);padding:36px}.signin-card h1{margin:18px 0 4px;font-size:30px}.signin-sub{color:var(--ink-500);margin-bottom:22px}.signin-foot{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.signin-wide{width:100%;max-width:560px;position:relative}.signin-projects{width:100%;max-width:980px;position:relative}.shake{animation:.16s 2 shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.pick-list{flex-direction:column;gap:8px;max-height:46vh;display:flex;overflow-y:auto}.pick{text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:100%;color:var(--ink-700);flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;display:flex}.pick:hover{background:var(--v-50);border-color:var(--v-300)}.pick:disabled{opacity:.6;cursor:default}.pick-name{color:var(--ink-900);font-weight:500}.pick.cur{border-color:var(--v-400);background:var(--v-50);box-shadow:0 0 0 1px var(--v-400)}.pick.locked{opacity:.55}.pick.locked:hover{background:var(--error-bg);border-color:var(--error)}.project-chip{background:var(--v-50);color:var(--v-700);border:1px solid var(--v-200);border-radius:var(--r-pill);cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;max-width:320px;margin-left:4px;padding:6px 13px;font-size:13px;display:inline-flex}.project-chip>svg{opacity:.8;flex-shrink:0}.project-code{text-transform:uppercase;letter-spacing:.02em;flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600}.project-name{text-overflow:ellipsis;white-space:nowrap;color:var(--v-600);opacity:.9;overflow:hidden}.projects-desk{background:var(--desk);flex-direction:column;min-height:100vh;display:flex}.projects-desk .topbar{position:static}.projects-desk .shell-content{flex:1;padding:36px 32px;overflow-y:auto}.projects-page{width:100%;max-width:1120px;margin:0 auto}.projects-head{margin-bottom:18px}.projects-head h1{margin-bottom:4px;font-size:26px}.projects-search{max-width:420px;margin-bottom:20px}.project-grid{text-align:left;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));align-items:stretch;gap:16px;width:100%;display:grid}.project-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-width:0;box-shadow:var(--sh-sm);flex-direction:column;gap:10px;padding:18px;display:flex}.project-card.cur{border-color:var(--v-400);box-shadow:0 0 0 1px var(--v-400)}.project-card.locked{opacity:.68}.project-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.project-card h2{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;font-weight:600;overflow:hidden}.project-card .project-code{color:var(--ink-400)}.project-stats{color:var(--ink-700);flex-wrap:wrap;gap:6px 16px;min-height:20px;font-size:13px;display:flex}.project-stats span{align-items:center;gap:6px;display:inline-flex}.project-stats svg{color:var(--ink-400)}.project-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-width:0;padding-top:10px;font-size:12px;display:flex}.project-people{color:var(--ink-500);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;min-width:0;display:inline-flex;overflow:hidden}.project-when{flex-shrink:0}.avatar-stack{flex-shrink:0;padding-right:5px;display:inline-flex}.avatar-stack .avatar{border:2px solid var(--surface);background:var(--v-100);color:var(--v-700);margin-right:-5px}.avatar-stack .avatar:hover{background:var(--v-100)}.project-card .btn{justify-content:center;margin-top:auto}.pop-note{border-bottom:1px solid var(--line);margin-bottom:6px;padding:8px 10px}.empty-card{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:60px 24px;display:flex}.empty-cols{background:var(--surface-sunk);border-radius:var(--r-md);text-align:left;max-width:480px;padding:16px 22px}.empty-cols .cols{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.empty-cols .col-pill{border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-900);background:#fff;padding:6px 12px;font-size:13px;font-weight:500}.ov-grid{grid-template-columns:repeat(12,1fr);gap:20px;display:grid}.ov-growth{grid-column:span 8}.ov-hero{flex-direction:column;grid-area:span 2/span 4;gap:14px;display:flex}.ov-types,.ov-rels{grid-column:span 4}.ov-activity{grid-column:span 12}@media (width<=1100px){.ov-growth,.ov-hero,.ov-types,.ov-rels{grid-column:span 12}.ov-hero{grid-row:auto}}.type-bars{align-items:flex-end;gap:14px;display:flex}.type-bar-col{text-align:center;flex:1;min-width:0}.type-bar-track{justify-content:center;align-items:flex-end;display:flex}.type-bar{border-radius:4px;width:100%;max-width:44px}.type-bar-label{text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-size:11px;overflow:hidden}.rel-bar-row{margin-bottom:12px}.rel-bar{background:var(--v-300);border-radius:4px;height:8px;margin-top:4px}.hero-tiles{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.hero-tile .micro{color:#ffffffbf}.hero-tile b{font-variant-numeric:tabular-nums;font-size:20px}.act-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 0;display:flex}.act-row:last-child{border-bottom:none}.quality-pill{background:var(--warn-bg);color:var(--warn);border-radius:var(--r-sm);cursor:pointer;border:none;justify-content:space-between;align-items:center;width:100%;margin-top:8px;padding:8px 12px;font-size:13px;display:flex}.chart-page{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;position:relative}.chart-toolbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm);flex-wrap:wrap;align-items:center;gap:3px;padding:7px 10px;display:flex}.tool{border-radius:var(--r-sm);width:32px;height:32px;color:var(--ink-500);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.tool:hover:not(:disabled){background:var(--surface-sunk);color:var(--ink-900)}.tool.on{background:var(--v-50);color:var(--v-700)}.tool.on:after{content:"";background:currentColor;border-radius:1px;height:2px;position:absolute;bottom:3px;left:7px;right:7px}.tool:disabled{opacity:.32;cursor:default}.tool-divider{background:var(--line);flex-shrink:0;width:1px;height:20px;margin:0 6px}.tool-spacer{flex:1;min-width:8px}.tool-search{flex-shrink:0;width:260px;margin-right:4px;position:relative}.tool-search>svg{color:var(--ink-400);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.tool-search .input{height:32px;padding-left:32px;font-size:13px}.tool-select{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);height:32px;color:var(--ink-700);flex-shrink:0;padding:0 8px;font-family:inherit;font-size:13px}.tool-select:hover{background:var(--surface-sunk)}.tool-zoom{text-align:center;min-width:42px;color:var(--ink-500);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12.5px}.tool-primary{flex-shrink:0;height:32px;margin-left:4px;padding:0 14px;font-size:13px;position:relative}.tool-primary.has-dot:after{content:"";background:var(--warn);border:2px solid var(--surface);border-radius:50%;width:9px;height:9px;position:absolute;top:-3px;right:-3px}@media (width<=1250px){.tool-search{width:190px}.tool-primary span{display:none}}.chart-bar{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--sh-sm);color:var(--ink-700);align-items:center;gap:10px;padding:7px 10px 7px 12px;font-size:13px;display:flex}.chart-bar b{color:var(--ink-900);flex-shrink:0;font-weight:600}.chart-bar-say{flex:1;min-width:0}.chart-bar b+.btn,.chart-bar b+.chart-bar-x{margin-left:auto}.chart-bar-mark{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.chart-bar .btn{height:28px;padding:0 13px;font-size:12.5px}.chart-bar-edit{border-color:var(--v-200);background:var(--v-50)}.chart-bar-edit .chart-bar-mark{background:var(--v-600);color:#fff}.chart-bar-edit .btn-secondary{background:var(--surface)}.chart-bar-warn{border-color:var(--warn);background:var(--warn-bg)}.chart-bar-warn .chart-bar-mark{background:var(--warn);color:#fff}.chart-bar-x{font:inherit;color:var(--ink-500);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 6px;font-size:12.5px;text-decoration:underline}.chart-bar-x:hover{color:var(--ink-900)}@media (width<=1100px){.chart-bar-say{display:none}}.chart-stage{border:1px solid var(--line);border-radius:var(--r-lg);background:#fcfcfd;flex:1;min-width:0;min-height:440px;position:relative;overflow:hidden}.chart-stage:before{content:"";pointer-events:none;background-image:radial-gradient(var(--line) 1px, transparent 1px);background-size:22px 22px;position:absolute;inset:0}.chart-stage:fullscreen{border:none;border-radius:0}.chart-canvas{z-index:1;width:100%;height:100%;position:relative}.chart-canvas>div{width:100%;height:100%}.chart-canvas canvas{display:block}.chart-canvas.editing{box-shadow:inset 0 0 0 2px var(--v-200)}.chart-status{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-500);background:#fffffff0;padding:5px 12px;font-size:12px;position:absolute;bottom:12px;left:12px}.connect-grip{z-index:7;border:1px solid var(--v-300);width:26px;height:26px;color:var(--v-600);box-shadow:var(--sh-sm);cursor:crosshair;touch-action:none;background:#fff;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:0;left:0}.connect-grip:hover{background:var(--v-50);border-color:var(--v-500)}.connect-grip.dragging{background:var(--v-600);color:#fff;border-color:var(--v-600)}.connect-rubber{z-index:7;pointer-events:none;position:absolute;inset:0;overflow:visible}.connect-rubber line{stroke:var(--v-500);stroke-width:2.5px;stroke-dasharray:7 4;stroke-linecap:round}.connect-ring{z-index:6;pointer-events:none;border:3px solid var(--ok);border-radius:50%;position:absolute;top:0;left:0;box-shadow:0 0 0 4px #16a34a26}.minimap{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-md);background:#fffffff0;padding:5px;line-height:0;position:absolute;bottom:12px;right:12px}.minimap canvas{border-radius:var(--r-sm);cursor:crosshair;display:block}.chart-stage.with-panel .minimap{right:392px}.minimap canvas{width:158px;height:110px}.path-mini{z-index:18;border:1px solid var(--path);border-radius:var(--r-md);background:var(--path-bg);max-width:min(780px,100% - 48px);box-shadow:var(--sh-md);color:var(--ink-700);align-items:center;gap:10px;padding:7px 10px 7px 12px;font-size:13px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.path-mini b{color:var(--ink-900);flex-shrink:0;font-weight:600}.path-mini-say{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.path-mini-mark{background:var(--path);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.path-mini .btn{flex-shrink:0;height:28px;padding:0 12px;font-size:12.5px}.path-mini .btn-secondary{background:var(--surface)}.chart-stage.with-panel .path-mini{left:calc(50% - (var(--side-panel) / 2))}.search-pop{z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:320px;box-shadow:var(--sh-lg);margin-top:6px;position:absolute;overflow:hidden}.search-pop button{text-align:left;background:0 0;border:none;width:100%;padding:9px 14px;display:block}.search-pop button:hover{background:var(--surface-hover)}.ops-panel,.details-panel{z-index:20;width:var(--side-panel);background:var(--surface);border-left:1px solid var(--line);flex-direction:column;min-height:0;animation:.18s ops-in;display:flex;position:absolute;top:0;bottom:0;box-shadow:-12px 0 40px #14141812}.ops-panel{right:0}@keyframes ops-in{0%{opacity:0;transform:translate(14px)}}.ops-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 16px 12px;display:flex}.ops-head h2{font-size:17px}.ops-tabs{border-bottom:1px solid var(--line);padding:0 8px;display:flex}.ops-tab{color:var(--ink-500);background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 4px 8px;font-size:11.5px;display:flex}.ops-tab:hover{color:var(--ink-900)}.ops-tab.on{color:var(--v-700);border-bottom-color:var(--v-500)}.ops-tab span{white-space:nowrap}.ops-body{flex:1;overflow-y:auto}.ops-section{border-bottom:1px solid var(--line)}.ops-section-head{width:100%;color:var(--ink-900);background:0 0;border:none;align-items:center;gap:9px;padding:13px 16px;font-size:13.5px;font-weight:600;display:flex}.ops-section-head:hover{background:var(--surface-hover)}.ops-section-icon{color:var(--v-500);flex-shrink:0}.ops-section-body{padding:0 16px 16px}.ops-editbar{border:1px solid var(--line);border-radius:var(--r-md);align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;font-size:13px;display:flex}.ops-editbar.on{border-color:var(--v-300);background:var(--v-50)}.ops-tiles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ops-tile{text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink-700);flex-direction:column;align-items:flex-start;gap:7px;padding:12px;font-size:12.5px;line-height:1.3;display:flex}.ops-tile svg{color:var(--v-600)}.ops-tile:hover:not(:disabled){background:var(--v-50);border-color:var(--v-300)}.ops-tile:disabled{opacity:.4;cursor:default}.ops-tile.danger svg{color:var(--error)}.ops-tile.danger:hover:not(:disabled){background:var(--error-bg);border-color:var(--error)}.ops-selected{background:var(--v-50);border-radius:var(--r-sm);color:var(--v-700);text-overflow:ellipsis;white-space:nowrap;margin-top:10px;padding:8px 12px;font-size:12.5px;overflow:hidden}.ops-rows{flex-direction:column;margin-top:12px;display:flex}.ops-row{width:100%;color:var(--ink-700);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:9px 2px;font-size:13px;display:flex}.ops-row svg{color:var(--ink-400);flex-shrink:0}.ops-row:hover{color:var(--v-700)}.ops-row:hover svg{color:var(--v-600)}.ops-tip{margin-top:10px;font-size:12px}.ops-group{margin-bottom:18px}.ops-group .micro{margin-bottom:7px;display:block}.ops-chips{flex-wrap:wrap;gap:6px;display:flex}.ops-chips.scroll{max-height:164px;padding-right:2px;overflow-y:auto}.ops-chip{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);max-width:100%;color:var(--ink-500);align-items:center;gap:6px;padding:5px 11px;font-size:12.5px;display:inline-flex}.ops-chip img{opacity:.45;border-radius:50%;flex-shrink:0;width:14px;height:14px}.ops-chip small{color:var(--ink-400);font-variant-numeric:tabular-nums}.ops-chip-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ops-chip.on{border-color:var(--v-300);background:var(--v-50);color:var(--v-700);font-weight:500}.ops-chip.on img{opacity:1}.ops-chip.on small{color:var(--v-600)}.ops-chip:hover{border-color:var(--v-400)}.ops-bulk{gap:10px;margin-top:7px;display:flex}.ops-layouts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ops-layout{text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink-700);flex-direction:column;align-items:flex-start;gap:2px;padding:11px 12px;font-size:13px;display:flex}.ops-layout .faint{font-size:11.5px;line-height:1.3}.ops-layout:hover{background:var(--surface-hover)}.ops-layout.on{border-color:var(--v-400);background:var(--v-50);box-shadow:0 0 0 1px var(--v-400)}.ops-toggle{cursor:pointer;align-items:center;gap:10px;padding:7px 0;font-size:13px;display:flex}.ops-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:flex}.ops-foot .faint{font-size:12px}.ops-rail{border-top:1px solid var(--line);background:var(--surface-sunk);align-items:center;gap:7px;padding:9px 16px;font-size:12px;display:flex}.ops-rail svg{color:var(--ink-400)}.linky{color:var(--v-600);background:0 0;border:none;padding:0;font-size:12.5px}.linky:hover{text-decoration:underline}.focus-chip{background:var(--v-50);border:1px solid var(--v-200);color:var(--v-700);border-radius:var(--r-sm);justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px;padding:5px 5px 5px 12px;font-size:13px;display:flex}.slider-row{align-items:center;gap:10px;display:flex}.slider-row input[type=range]{accent-color:var(--v-500);flex:1}.switch{cursor:pointer;color:var(--ink-500);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.switch .track{background:var(--line);border-radius:10px;flex-shrink:0;width:34px;height:19px;transition:background .15s;position:relative}.switch .track:after{content:"";width:15px;height:15px;box-shadow:var(--sh-sm);background:#fff;border-radius:50%;transition:left .15s;position:absolute;top:2px;left:2px}.switch.on .track{background:var(--v-500)}.switch.on .track:after{left:17px}.legend-card{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-md);width:230px;max-height:calc(100% - 24px);box-shadow:var(--sh-md);background:#fffffff0;flex-direction:column;display:flex;position:absolute;top:12px;left:12px;overflow:hidden}.legend-card.closed{width:124px}.legend-head{border-bottom:1px solid var(--line);align-items:center;gap:2px;padding:5px 6px 5px 10px;display:flex}.legend-title-btn{min-width:0;color:var(--ink-900);background:0 0;border:none;flex:1;align-items:center;gap:7px;padding:4px 0;font-size:13px;font-weight:600;display:flex}.legend-title-btn svg{color:var(--ink-400);flex-shrink:0}.legend-cfg,.legend-chev{border-radius:var(--r-sm);width:26px;height:26px;color:var(--ink-400);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.legend-cfg:hover,.legend-chev:hover{background:var(--surface-sunk);color:var(--v-700)}.legend-card.closed .legend-head{border-bottom:none}.legend-body{padding:0 11px 11px;overflow-y:auto}.legend-group{margin:10px 0 5px}.legend-row{align-items:center;gap:8px;padding:3px 0;font-size:12.5px;display:flex}.legend-row.off{opacity:.35}.legend-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.legend-icon{border-radius:50%;flex-shrink:0;width:17px;height:17px}.legend-line{border-radius:2px;flex-shrink:0;width:17px;height:3px}.rel-endpoints{grid-template-columns:1fr auto 1fr;align-items:start;gap:0 12px;display:grid}.ep-swap{justify-content:center;width:38px;height:38px;margin-top:23px;padding:0}.ep-swap-static{width:38px;height:38px;color:var(--ink-400);justify-content:center;align-items:center;margin-top:23px;font-size:16px;display:flex}.ep-name{min-height:18px;color:var(--ink-400);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex;overflow:hidden}.ep-name.ok{color:var(--ok)}.ep-name.warn{color:var(--warn)}@media (width<=560px){.rel-endpoints{grid-template-columns:1fr}.ep-swap{width:100%;margin:0 0 14px}.ep-swap-static{width:100%;height:20px;margin:0 0 6px}}.form-sec{border-top:1px solid var(--line);color:var(--ink-900);flex-wrap:wrap;align-items:baseline;gap:8px;margin:4px 0 14px;padding-top:14px;font-size:13px;font-weight:600;display:flex}.form-sec-why{color:var(--ink-400);font-size:12px;font-weight:400}.create-preview{color:var(--ink-400);align-items:center;gap:6px;margin-top:6px;font-size:12px;display:inline-flex}.create-dir{align-items:center;gap:8px;min-width:0;margin:2px 0 10px;font-size:13px;display:flex}.create-end{background:var(--surface-sunk);border-radius:var(--r-sm);min-width:0;color:var(--ink-700);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:7px 10px;overflow:hidden}.create-end:last-child{text-align:right}.create-swap{flex-shrink:0;max-width:46%}.create-swap span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.link-end-fixed{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-sunk);padding:8px 11px;font-size:13px}.entry-card{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:12px;padding:14px}.cbtns{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cbtns .btn{justify-content:center;padding:8px 12px;font-size:13px}.link-row{border-bottom:1px solid var(--line);padding:10px 0;font-size:13px}.link-row:last-child{border-bottom:none}.link-arrow{flex-shrink:0;margin-top:3px}.link-arrow.out{color:var(--v-500)}.link-arrow.in{color:var(--ink-400)}.export-options{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.export-options.three{grid-template-columns:repeat(3,1fr)}.export-options.four{grid-template-columns:repeat(4,1fr)}.export-options.five{grid-template-columns:repeat(5,1fr);gap:6px}.export-options.five .export-option{padding:9px 8px}.export-custom{align-items:flex-end;gap:8px;margin-top:8px;display:flex}.export-custom label{flex-direction:column;gap:3px;display:flex}.export-custom input{width:104px}.export-by{color:var(--ink-400);padding-bottom:9px}.export-unit{padding-bottom:9px}.export-apply{margin-left:auto}.export-option{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);color:var(--ink-700);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.export-option:hover{background:var(--surface-hover)}.export-option.on{border-color:var(--v-400);background:var(--v-50);box-shadow:0 0 0 1px var(--v-400)}.export-option .faint{font-size:11.5px}.export-preview{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-sunk);flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:190px;margin-top:16px;padding:14px;display:flex}.export-state{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.print-bar{background:var(--line);border-radius:2px;width:210px;height:4px;overflow:hidden}.print-bar>i{background:var(--v-600);height:100%;transition:width .25s;display:block}@media (prefers-reduced-motion:reduce){.print-bar>i{transition:none}}.export-thumb{border-radius:var(--r-sm);border:1px solid var(--line);background:#fff;max-width:100%;max-height:150px}@media (width<=760px){.ops-panel,.details-panel{width:100%}.chart-stage.with-panel .details-panel{right:0}.chart-stage.with-panel .minimap{right:12px}}.path-chip{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);min-width:0;max-width:100%;color:var(--ink-900);text-align:left;align-items:center;gap:6px;padding:3px 10px 3px 3px;font-size:12.5px;display:inline-flex}.path-chip:hover{background:var(--v-50);border-color:var(--v-300)}.path-chip-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;padding:3px;display:inline-flex}.path-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.path-picks{flex-direction:column;gap:6px;list-style:none;display:flex}.path-picks li{align-items:center;gap:8px;min-width:0;display:flex}.path-picks .path-chip{flex:1;min-width:0}.path-step{background:var(--path-bg);width:20px;height:20px;color:var(--path);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.path-leg{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:10px;padding:12px}.path-leg-head{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.path-leg-head>svg{color:var(--ink-400);flex-shrink:0}.path-hops{color:var(--path);margin:8px 0 6px;font-size:12px;font-weight:500}.path-chain{border-left:2px solid var(--path-bg);margin-left:9px;padding-left:12px;list-style:none}.path-chain li{flex-direction:column;align-items:flex-start;gap:3px;padding:2px 0;display:flex}.path-rel{color:var(--ink-500);letter-spacing:.01em;gap:4px;padding-left:2px;font-size:11px;display:inline-flex}.path-none{margin-top:8px;font-size:12.5px}.check-row{cursor:pointer;align-items:flex-start;gap:9px;padding:3px 0;font-size:13px;display:flex}.check-row input{flex-shrink:0;margin-top:2px}.type-icon{border-radius:50%;flex-shrink:0;width:16px;height:16px}.side-title{color:var(--ink-900);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.details-panel{z-index:18;right:0}.chart-stage.with-panel .details-panel{right:var(--side-panel)}.dp-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 14px 12px;display:flex}.dp-title{align-items:flex-start;gap:11px;min-width:0;display:flex}.dp-title h2{word-break:break-word;font-size:16px;line-height:1.25}.dp-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.dp-icon>span{width:20px;height:20px;display:block}.dp-tabs{border-bottom:1px solid var(--line);padding:0 8px;display:flex}.dp-tabs button{color:var(--ink-500);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:9px 4px;font-size:12.5px}.dp-tabs button:hover{color:var(--ink-900)}.dp-tabs button.active{color:var(--v-700);border-bottom-color:var(--v-500);font-weight:500}.dp-tabs .count{border-radius:var(--r-pill);background:var(--surface-sunk);color:var(--ink-500);margin-left:5px;padding:0 5px;font-size:10.5px;display:inline-block}.dp-body{flex:1;padding:14px;overflow-y:auto}.dp-sec{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400);margin:16px 0 7px;font-size:11px;font-weight:500}.dp-sec:first-child{margin-top:0}.dp-dl{grid-template-columns:94px 1fr;gap:7px 12px;font-size:13px;display:grid}.dp-dl dt{color:var(--ink-400)}.dp-dl dd{color:var(--ink-900);word-break:break-word}.type-pill{border-radius:var(--r-pill);align-items:center;gap:6px;padding:3px 11px 3px 5px;font-size:12px;font-weight:500;display:inline-flex}.type-pill-icon{width:15px;height:15px;display:block}.dp-sources{color:var(--ink-700);margin:0;padding-left:16px;font-size:12.5px}.dp-sources li{word-break:break-word;margin-bottom:3px}.dp-people{flex-wrap:wrap;gap:8px;display:flex}.who{align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.kv{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;width:100%;padding:6px 0;font-size:13px;display:flex}.kv:last-of-type{border-bottom:none}.kv span{align-items:center;gap:8px;min-width:0;display:flex}.kv.link{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--line);color:var(--ink-700);background:0 0}.kv.link:hover{color:var(--v-700)}.dp-dot{border-radius:50%;flex-shrink:0;width:18px;height:18px;display:block}.conn-list{flex-direction:column;display:flex}.conn{text-align:left;border:none;border-bottom:1px solid var(--line);width:100%;color:var(--ink-700);background:0 0;align-items:center;gap:8px;padding:9px 2px;font-size:12.5px;display:flex}.conn:last-child{border-bottom:none}.conn:hover{background:var(--surface-hover)}.conn-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.conn-type{color:var(--ink-900);white-space:nowrap;font-weight:500}.conn-dir{color:var(--ink-500);align-items:center;gap:4px;min-width:0;margin-left:auto;display:flex}.conn-dir svg{flex-shrink:0}.timeline{border-left:2px solid var(--line);margin:0;padding:0 0 0 14px;list-style:none}.timeline li{padding:0 0 14px 12px;font-size:12.5px;position:relative}.timeline li:before{content:"";background:var(--v-300);border:2px solid var(--surface);border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:-19px}.dp-foot{border-top:1px solid var(--line);background:var(--surface-sunk);flex-wrap:wrap;align-items:center;gap:7px;padding:12px 14px;display:flex}.dp-foot .btn{padding:7px 12px;font-size:12.5px}.lg-tabs{gap:6px;margin-bottom:14px;display:flex}.lg-tabs button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-500);flex:1;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:13px;display:inline-flex}.lg-tabs button:hover{background:var(--surface-sunk)}.lg-tabs button.on{background:var(--v-50);border-color:var(--v-400);color:var(--v-700);font-weight:500}.lg-tabs small{color:var(--ink-400);font-size:11.5px}.lg-tabs button.on small{color:var(--v-600)}.lg-prev-line{border-radius:2px;flex-shrink:0;width:26px;height:4px}.lg-count{flex-shrink:0}.lg-list{flex-direction:column;gap:8px;max-height:46vh;display:flex;overflow-y:auto}.lg-item{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px}.lg-row{align-items:center;gap:10px;display:flex}.lg-prev{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:6px;display:inline-flex}.lg-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-900);flex:1;overflow:hidden}.lg-color{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;width:40px;height:32px;padding:2px}.lg-iconbtn{padding:6px 12px;font-size:12.5px}.lg-iconbtn-glyph{width:15px;height:15px;display:block}.icon-pick{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.lg-swatches{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.lg-swatch{border-radius:var(--r-sm);border:1px solid #00000014;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.lg-swatch.on{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--v-400)}.icon-group{margin-bottom:10px}.icon-group .micro{margin-bottom:5px;display:block}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:5px;display:grid}.icon-cell{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);height:38px;color:var(--ink-500);justify-content:center;align-items:center;padding:8px;display:inline-flex}.icon-cell span{width:100%;height:100%;display:block}.icon-cell:hover{background:var(--surface-hover);color:var(--ink-900)}.icon-cell.on{border-color:var(--v-400);background:var(--v-50);color:var(--v-700);box-shadow:0 0 0 1px var(--v-400)}.import-page{flex-direction:column;display:flex}.import-page.narrow{flex:1;justify-content:center;align-items:center}.import-page.narrow .import-head{text-align:center}.import-page.narrow .stepper{justify-content:center}.import-head{margin-bottom:26px}.import-head h1{margin-bottom:18px}.import-card{width:100%}.import-page.narrow .import-card{max-width:620px}.stepper{align-items:center;display:flex}.stepper .step{align-items:center;gap:10px;display:flex}.step-circle{font-variant-numeric:tabular-nums;border:2px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink-400);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex}.step-label{color:var(--ink-400);white-space:nowrap;font-size:15px;font-weight:500}.step-line{background:var(--line);flex-shrink:0;width:56px;height:2px;margin:0 16px}.step.on .step-circle{background:var(--v-500);border-color:var(--v-500);color:#fff;box-shadow:0 0 0 5px var(--v-100)}.step.on .step-label{color:var(--ink-900)}.step.done .step-circle{background:var(--v-50);border-color:var(--v-400);color:var(--v-600)}.step.done .step-label{color:var(--ink-700)}.step.done .step-line{background:var(--v-300)}@media (width<=700px){.step-label{display:none}.step-line{width:32px;margin:0 10px}}.dropzone{cursor:pointer;border:2px dashed var(--v-200);border-radius:var(--r-lg);text-align:center;color:var(--ink-500);background:var(--surface-sunk);padding:40px 24px;transition:background .15s,border-color .15s;display:block}.dropzone:hover{border-color:var(--v-400);background:var(--v-50)}.dropzone.over{border-color:var(--v-500);background:var(--v-50)}.dropzone-badge{background:var(--v-100);width:56px;height:56px;color:var(--v-600);border-radius:50%;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.dropzone-title{color:var(--ink-900);font-size:15px}.dropzone-browse{color:var(--v-600);text-decoration:underline}.dropzone-formats{margin-top:10px}.import-status{margin-top:14px}.import-cols{max-width:none;margin-top:18px}.import-card-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;display:flex}.upload-grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=1000px){.upload-grid{grid-template-columns:1fr}}.upload-card{flex-direction:column;display:flex}.upload-card-head{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.upload-card-head h2{margin-bottom:2px}.upload-icon{border-radius:var(--r-md);background:var(--v-50);width:42px;height:42px;color:var(--v-600);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dropzone.small{padding:26px 18px}.dropzone.small .dropzone-badge{width:46px;height:46px;margin-bottom:10px}.verdict-tiles{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.verdict-tiles.five{grid-template-columns:repeat(5,1fr)}.vt-conflict{background:var(--warn-bg)}.conflict-bar{align-items:center;gap:10px;margin-bottom:12px}.chip-on{background:var(--v-500);color:#fff}.verdict-tile{border:1px solid var(--line);border-radius:var(--r-md);text-align:left;background:var(--surface);padding:12px 16px}.verdict-tile.on{box-shadow:0 0 0 2px var(--v-400)}.verdict-tile .stat-num{font-size:24px}.vt-new{background:var(--ok-bg)}.vt-updated{background:var(--info-bg)}.vt-stored{background:var(--surface-sunk)}.vt-rejected{background:var(--error-bg)}.other-route{align-items:center;gap:12px;margin-top:18px}.details{margin-top:6px}.details-head{color:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:13px;font-weight:500;display:inline-flex}.details-head:hover{text-decoration:underline}.details-body{max-height:160px;color:var(--ink-500);margin-top:6px;font-size:12px;line-height:1.7;overflow-y:auto}.details-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px;display:grid}@media (width<=900px){.details-grid{grid-template-columns:1fr 1fr}}.suggest-list{max-height:170px;margin-top:8px;font-size:12px;line-height:1.7;overflow-y:auto}.conflicts .conflict-all{margin:10px 0 2px;font-weight:500}.conflict-list{flex-direction:column;gap:2px;max-height:260px;margin-top:6px;padding-right:2px;display:flex;overflow-y:auto}.conflict{border-radius:var(--r-sm);cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:9px;padding:7px 9px;font-size:12.5px;line-height:1.5;display:flex}.conflict:hover{background:#ffffff8c}.conflict.on{background:var(--surface);border-color:var(--warn)}.conflict input{flex-shrink:0;margin-top:2px}.conflict-body{min-width:0;display:block}.conflict-what{display:block}.conflict-meta{margin-top:2px;font-size:11.5px;display:block}.conflict-tally{margin-top:10px;font-size:12.5px}.hist-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.hist-card.mine{border-left:3px solid var(--v-500)}.hist-day{margin:18px 0 10px}.hist-changes{color:var(--ink-700);margin:8px 0 0;padding:0;font-size:12.5px;list-style:none}.hist-changes li{overflow-wrap:anywhere;padding:3px 0;line-height:1.5}.hist-changes .badge{vertical-align:1px}.hist-more{margin-top:8px;padding:4px 11px;font-size:12.5px}.share-track{background:var(--surface-sunk);border-radius:4px;height:8px;overflow:hidden}.share-bar{background:var(--v-400);border-radius:4px;min-width:2px;height:100%}.help-head{margin-bottom:14px}.help-head p{margin:2px 0 0}.help-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:20px;display:flex}.help-tab{cursor:pointer;font:inherit;color:var(--ink-500);border-radius:var(--r-sm) var(--r-sm) 0 0;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 15px;font-size:13.5px;transition:color .14s,background .14s;display:flex}.help-tab:hover{color:var(--ink-900);background:var(--surface-hover)}.help-tab.on{color:var(--v-700);border-bottom-color:var(--v-600);font-weight:500}.help-tab svg{color:var(--ink-400);transition:color .14s}.help-tab.on svg{color:var(--v-600)}.help-tab small{border-radius:var(--r-pill);background:var(--surface-sunk);color:var(--ink-500);padding:1px 7px;font-size:11px}.help-tab.on small{background:var(--v-100);color:var(--v-700)}.help-tab-blurb{margin-left:auto;padding:0 4px 8px;font-size:12.5px}.help-wrap{grid-template-columns:262px minmax(0,1fr);align-items:start;gap:26px;display:grid}.help-toc{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-sm);flex-direction:column;padding:12px;display:flex;position:sticky;top:0}.help-toc-list{flex-direction:column;gap:2px;display:flex}.help-toc-link{text-align:left;border-radius:var(--r-sm);color:var(--ink-700);font:inherit;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:9px;padding:7px 9px;font-size:13px;line-height:1.4;transition:background .13s,color .13s;display:flex}.help-toc-link:hover{background:var(--surface-hover);color:var(--ink-900)}.help-toc-link.on{background:var(--v-50);color:var(--v-700);font-weight:500}.help-toc-n{background:var(--surface-sunk);width:19px;height:19px;color:var(--ink-500);border-radius:50%;flex-shrink:0;place-items:center;margin-top:1px;font-size:10.5px;font-weight:600;transition:background .13s,color .13s;display:grid}.help-toc-link:hover .help-toc-n{background:var(--v-100);color:var(--v-700)}.help-toc-link.on .help-toc-n{background:var(--v-600);color:#fff}.help-toc-t{min-width:0}.help-search{color:var(--ink-400);background:var(--surface-sunk);border-radius:var(--r-sm);align-items:center;gap:7px;margin-bottom:10px;padding:2px 8px;display:flex}.help-search:focus-within{background:var(--v-50);color:var(--v-600)}.help-search .input{min-width:0;box-shadow:none;background:0 0;border:0;flex:1;padding:7px 0;font-size:13px}.help-search .input:focus{box-shadow:none;border:0;outline:none}.help-progress{background:var(--surface-sunk);border-radius:2px;height:3px;margin:0 2px 10px;overflow:hidden}.help-progress span{background:var(--v-500);border-radius:2px;height:100%;transition:width .25s;display:block}.help-elsewhere{text-align:left;border:1px dashed var(--line);border-radius:var(--r-sm);color:var(--v-700);font:inherit;cursor:pointer;background:0 0;margin-top:10px;padding:8px 10px;font-size:12.5px}.help-elsewhere:hover{background:var(--v-50);border-style:solid}.help-card{border-left:3px solid #0000;margin-bottom:14px;padding:20px 24px 18px;scroll-margin-top:14px;transition:border-color .18s,box-shadow .18s,transform .18s}.help-card:hover{box-shadow:var(--sh-md)}.help-card.reading{border-left-color:var(--v-500);box-shadow:var(--sh-md)}.help-card-head{align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.help-card h3{margin:0;font-size:16.5px}.help-summary{margin:3px 0 0}.help-card-n{background:var(--surface-sunk);width:26px;height:26px;color:var(--ink-500);border-radius:50%;flex-shrink:0;place-items:center;margin-top:1px;font-size:12px;font-weight:600;transition:background .18s,color .18s;display:grid}.help-card.reading .help-card-n{background:var(--v-600);color:#fff}.help-anchor{opacity:0;flex-shrink:0;transition:opacity .15s}.help-card:hover .help-anchor,.help-anchor:focus-visible{opacity:1}.help-p{color:var(--ink-700);margin:0 0 11px;line-height:1.62}.help-list{color:var(--ink-700);margin:0 0 11px;padding-left:20px;line-height:1.62}.help-list li{margin-bottom:5px}.help-steps{margin:0 0 11px;padding:0;list-style:none}.help-steps li{color:var(--ink-700);gap:11px;margin-bottom:8px;line-height:1.62;display:flex}.help-step-n{background:var(--v-50);width:21px;height:21px;color:var(--v-700);border-radius:50%;flex-shrink:0;place-items:center;margin-top:1px;font-size:11px;font-weight:600;display:grid}.help-rows{margin:0 0 11px}.help-row{border-radius:var(--r-sm);grid-template-columns:210px minmax(0,1fr);gap:4px 18px;margin:0 -10px;padding:9px 10px;transition:background .13s;display:grid}.help-row:hover{background:var(--surface-sunk)}.help-row+.help-row{box-shadow:0 -1px 0 var(--line)}.help-row dt{color:var(--ink-900);font-size:13.5px;font-weight:500;line-height:1.5}.help-row dd{color:var(--ink-700);margin:0;line-height:1.6}.help-note{border:1px solid var(--v-100);border-left:3px solid var(--v-400);border-radius:var(--r-sm);background:var(--v-50);color:var(--ink-700);align-items:flex-start;gap:10px;margin:2px 0 13px;padding:11px 14px;line-height:1.6;display:flex}.help-note svg{color:var(--v-600);flex-shrink:0;margin-top:2px}.help-foot{margin:18px 2px 0}.help-top{z-index:30;border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink-700);box-shadow:var(--sh-md);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:26px;right:26px}.help-top:hover{background:var(--v-600);border-color:var(--v-600);color:#fff}@media (prefers-reduced-motion:reduce){.help-card,.help-row,.help-toc-link,.help-progress span{transition:none}}@media (width<=1100px){.help-wrap{grid-template-columns:1fr}.help-toc{position:static}.help-row{grid-template-columns:1fr}.help-tab-blurb{flex-basis:100%;margin-left:0}}@media (width<=900px){.shell-content{padding:20px}.verdict-tiles{grid-template-columns:1fr 1fr}}.shell.admin{grid-template-columns:92px 1fr}.shell.admin .brand{width:92px}@media (width>=1100px){.shell.admin{grid-template-columns:212px 1fr}.shell.admin .brand{width:212px}}.admin-rail{align-items:stretch;gap:2px;padding:10px 8px}.admin-rail .rail-link{flex-direction:row;justify-content:flex-start;gap:11px;width:auto;height:40px;padding:0 12px}.admin-rail .rail-link span{letter-spacing:0;font-size:13px}.admin-rail .rail-link.active:before{left:-8px}@media (width<=1099px){.admin-rail .rail-link{flex-direction:column;justify-content:center;gap:3px;height:52px;padding:0}.admin-rail .rail-link span{font-size:10px}}.admin-topbar{background:linear-gradient(90deg, var(--v-50), var(--surface) 45%)}.admin-chip{border-radius:var(--r-pill);background:var(--v-100);color:var(--v-700);white-space:nowrap;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:600;display:inline-flex}.admin-where{color:var(--ink-500);font-size:13px}.admin-avatar{background:var(--v-600);color:#fff}.admin-avatar:hover{background:var(--v-700)}.admin-content{background:var(--desk)}.admin-page{flex-direction:column;gap:16px;width:100%;max-width:1560px;display:flex}.admin-head{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.admin-head h1{font-size:26px}.admin-head p{max-width:70ch;margin:4px 0 0;font-size:13px}.back-btn{align-self:flex-start}.detail-meta{flex-wrap:wrap;align-items:center;gap:14px;margin-top:-6px;font-size:13px;display:flex}.admin-card{padding:16px 18px 18px}.admin-cols{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;display:grid}.admin-cols>.card{flex-direction:column;min-height:264px;display:flex}@media (width<=1180px){.admin-cols{grid-template-columns:1fr}}.card-head{align-items:center;gap:9px;margin:0 0 14px;font-size:15px;display:flex}.card-head svg{color:var(--ink-400)}.card-more{align-self:flex-start;margin-top:auto}.admin-card>.feed,.admin-card>.attention{margin-bottom:14px}.admin-clear{max-width:60ch;margin:0;font-size:13px}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.kpi{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);text-align:left;flex-direction:column;gap:2px;padding:14px 16px;display:flex;position:relative}.kpi-click{cursor:pointer}.kpi-click:hover{border-color:var(--v-300);background:var(--v-50)}.kpi-icon{color:var(--ink-400);position:absolute;top:13px;right:14px}.kpi-value{color:var(--ink-900);font-size:26px;font-weight:600;line-height:1.1}.kpi-label{color:var(--ink-700);font-size:12px}.kpi-hint{font-size:11px}.kpi.warn .kpi-value{color:var(--warn)}.kpi.bad .kpi-value{color:var(--error)}.kpi.ok .kpi-value{color:var(--ok)}.pill{border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:4px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-warn{background:var(--warn-bg);color:var(--warn)}.pill-bad{background:var(--error-bg);color:var(--error)}.pill-accent{background:var(--v-100);color:var(--v-700)}.pill-grey{background:var(--surface-sunk);color:var(--ink-500)}.mono-code{letter-spacing:.02em;color:var(--ink-700);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600}.num-bad{color:var(--error)}.person{align-items:center;gap:9px;min-width:0;display:inline-flex}.avatar.sm{width:26px;height:26px;font-size:10px}.person-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.person-text b{color:var(--ink-900);font-size:13px;font-weight:500}.person-text span{font-size:11px}.dt{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.dt-scroll{overflow-x:auto}.dt-table{border-collapse:collapse;width:100%;font-size:13px}.dt-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400);border-bottom:1px solid var(--line);background:var(--surface-sunk);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:500}.dt-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 14px}.dt-table tbody tr:last-child td{border-bottom:none}.dt-click{cursor:pointer}.dt-click:hover td{background:var(--v-50)}.th-sort{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:0;display:inline-flex}.th-sort:hover{color:var(--ink-700)}.th-sort.on{color:var(--v-700)}.cell-main{flex-direction:column;min-width:0;line-height:1.3;display:flex}.cell-main b{color:var(--ink-900);font-weight:500}.cell-main span{font-size:11.5px}.cell-id{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cell-pills{flex-wrap:wrap;gap:6px;display:inline-flex}.cell-rid{white-space:nowrap;text-overflow:ellipsis;color:var(--ink-500);font-size:11.5px;font-weight:500;display:block;overflow:hidden}.cell-summary{display:block}.dt-empty{text-align:center;color:var(--ink-500);flex-direction:column;align-items:center;gap:6px;padding:44px 20px;display:flex}.dt-empty svg{color:var(--ink-400)}.dt-empty b{color:var(--ink-700);font-weight:500}.dt-skel td{padding:14px}.skeleton-line{background:var(--surface-sunk);border-radius:6px;height:11px;animation:1.4s infinite shimmer;display:block}.dt-foot{border-top:1px solid var(--line);background:var(--surface-sunk);align-items:center;gap:10px;padding:9px 14px;font-size:12px;display:flex}.dt-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dt-bar.wrap{row-gap:8px}.dt-search{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);min-width:260px;height:36px;color:var(--ink-400);flex:0 320px;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.dt-search:focus-within{border-color:var(--v-400);box-shadow:0 0 0 3px var(--v-100)}.dt-search input{font:inherit;color:var(--ink-900);background:0 0;border:none;outline:none;flex:1;font-size:13px}.dt-search input:focus-visible{box-shadow:none}.input.slim{width:auto;min-width:140px;height:36px;padding:0 10px;font-size:13px}.date-range{align-items:center;gap:6px;display:inline-flex}.seg{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);padding:2px;display:inline-flex}.seg-btn{border-radius:var(--r-pill);color:var(--ink-500);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:5px 13px;font-size:12.5px}.seg-btn:hover{color:var(--ink-900)}.seg-btn.on{background:var(--v-100);color:var(--v-700);font-weight:500}.attention{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.attention li{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-sunk);align-items:center;gap:11px;padding:10px 12px;display:flex}.attention-icon{background:var(--warn-bg);width:28px;height:28px;color:var(--warn);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.attention-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.attention-text b{color:var(--ink-900);font-size:13px;font-weight:500}.attention-text span{font-size:11.5px}.feed{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.feed li{border-bottom:1px solid var(--line);border-radius:8px;align-items:flex-start;gap:10px;margin:0 -8px;padding:9px 8px;font-size:13px;transition:background .12s;display:flex}.feed li:hover{background:var(--surface-sunk)}.feed li:last-child{border-bottom:none}.feed-what{flex-direction:column;flex:1;align-items:flex-start;gap:3px;min-width:0;display:flex}.feed-what>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.feed-what b{color:var(--ink-900);font-size:13px;font-weight:500}.feed-when{white-space:nowrap;padding-top:2px;font-size:11.5px}.feed-activity li{grid-template-columns:148px 86px minmax(0,1fr) 92px;align-items:start;column-gap:10px;display:grid}.feed-activity .feed-what{display:contents}.feed-activity li>.person{align-items:center;min-width:0}.feed-activity li>.person .person-text b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.feed-activity .feed-what>span:not(.pill){white-space:normal;color:var(--ink-700);padding-top:2px;line-height:1.45;overflow:visible}.feed-activity .feed-what>.pill{justify-self:start;margin-top:1px}.feed-activity .feed-when{text-align:right}.feed-uploads li{grid-template-columns:62px minmax(0,1fr) 140px 86px;align-items:center;column-gap:10px;display:grid}.feed-uploads .feed-what{display:contents}.feed-uploads .feed-what>b{color:var(--ink-900);font-size:13px;font-weight:600}.feed-uploads .feed-what>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.feed-uploads .pill{justify-self:start}.feed-uploads .feed-when{text-align:right;padding-top:0}@media (width<=640px){.feed li{flex-wrap:wrap}.feed-activity li{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.feed-activity li>.person{grid-area:1/1}.feed-activity .feed-when{grid-area:1/2}.feed-activity .feed-what>.pill{grid-area:2/1}.feed-activity .feed-what>span:not(.pill){grid-area:3/1/auto/-1}.feed-when{padding-top:0}.feed-uploads li{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.feed-uploads .feed-what>b{grid-area:1/1}.feed-uploads .feed-when{grid-area:1/2}.feed-uploads .feed-what>span{grid-area:2/1/auto/-1}.feed-uploads .pill{grid-area:3/1}}.team{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.team li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.team li:last-child{border-bottom:none}.team-when{white-space:nowrap;margin-left:auto;font-size:11.5px}.pick-list{border:1px solid var(--line);border-radius:var(--r-sm);max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.pick-list li{border-bottom:1px solid var(--line)}.pick-list li:last-child{border-bottom:none}.pick-list label{cursor:pointer;align-items:center;gap:11px;padding:9px 12px;font-size:13px;display:flex}.pick-list label:hover{background:var(--surface-sunk)}.pick-list li.done label{cursor:default;opacity:.72}.pick-list li.done label:hover{background:0 0}.pick-list input[type=checkbox]{width:15px;height:15px;accent-color:var(--v-600)}.pick-list.compact label{padding:7px 12px}.matrix-wrap{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);max-height:68vh;overflow:auto}.matrix{border-collapse:separate;border-spacing:0;font-size:13px}.matrix th{background:var(--surface);font-weight:500}.matrix-corner{z-index:3;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-sunk);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400);white-space:nowrap;padding:10px 14px;font-size:11px;display:table-cell;position:sticky;top:0;left:0}.matrix-corner svg{vertical-align:-2px;margin-right:4px}.matrix-head{z-index:2;border-bottom:1px solid var(--line);vertical-align:bottom;background:var(--surface-sunk);width:44px;min-width:44px;height:150px;padding:0;position:sticky;top:0}.matrix-name{writing-mode:vertical-rl;text-overflow:ellipsis;white-space:nowrap;max-height:118px;color:var(--ink-700);margin:0 auto 2px;font-size:12px;display:block;overflow:hidden;transform:rotate(180deg)}.matrix-count{color:var(--v-700);text-align:center;padding-bottom:6px;font-size:10px;font-weight:600;display:block}.matrix-count.zero{color:var(--warn)}.matrix-row{z-index:1;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:8px;min-width:300px;height:44px;padding:0 12px;display:flex;position:sticky;left:0}.matrix-project{min-width:0;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:baseline;gap:8px;padding:0;display:flex}.matrix-project:hover .matrix-pname{color:var(--v-700)}.matrix-pname{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.matrix-row .matrix-count{margin-left:auto;padding:0}.matrix td{border-bottom:1px solid var(--line);text-align:center;padding:0}.matrix-cell{cursor:pointer;width:44px;height:44px;color:var(--ok);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.matrix-cell:hover{background:var(--v-50)}.matrix-cell:after{content:"";border:1.5px solid var(--line);border-radius:5px;width:17px;height:17px;position:absolute}.matrix-cell.on:after{background:var(--ok-bg);border-color:var(--ok)}.matrix-cell svg{z-index:1;position:relative}.matrix-cell:disabled{cursor:default}.matrix-cell.busy:after{border-color:var(--v-400)}.bars{align-items:flex-end;gap:4px;height:150px;padding-top:4px;display:flex}.bars-col{flex-direction:column;flex:1;align-items:center;gap:5px;min-width:0;height:100%;display:flex}.bars-stack{background:var(--surface-sunk);border-radius:4px;flex-direction:column-reverse;flex:1;justify-content:flex-start;width:100%;max-width:26px;display:flex;overflow:hidden}.bar{width:100%;min-height:3px;display:block}.bar.bar-ok,i.bar-ok{background:var(--ok)}.bar.bar-warn,i.bar-warn{background:var(--warn)}.bar.bar-bad,i.bar-bad{background:var(--error)}.bars-day{color:var(--ink-400);font-size:10px}.bars-key{align-items:center;gap:14px;margin-top:10px;font-size:11.5px;display:flex}.bars-key span{align-items:center;gap:5px;display:inline-flex}.bars-key i{border-radius:2px;width:9px;height:9px;display:inline-block}.batch-facts{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;display:grid}.fact{flex-direction:column;gap:2px;min-width:0;display:flex}.fact b{color:var(--ink-900);font-size:15px;font-weight:600}.fact-wide{grid-column:1/-1}.fact-wide b{overflow-wrap:anywhere;font-size:13px}.sel-all{-webkit-user-select:all;user-select:all}.issue-scroll{border:1px solid var(--line);border-radius:var(--r-sm);max-height:42vh;overflow:auto}.issue-scroll .dt-table th{z-index:1;position:sticky;top:0}.row-changed td{background:var(--v-50)}.field-bad{color:var(--error);margin-top:4px;font-size:11.5px}.secret{border:1px dashed var(--v-300);border-radius:var(--r-md);background:var(--v-50);align-items:center;gap:12px;padding:14px 16px;display:flex}.secret code{letter-spacing:.04em;color:var(--v-700);-webkit-user-select:all;user-select:all;word-break:break-all;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;font-weight:600}.pw-rules{flex-direction:column;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:flex}.pw-rules li{color:var(--ink-400);align-items:center;gap:9px;font-size:12.5px;display:flex}.pw-rules li.ok{color:var(--ok)}.pw-tick{border:1.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:17px;height:17px;display:inline-flex}.pw-rules li.ok .pw-tick{background:var(--ok-bg)}.signin-mark{border-radius:var(--r-md);background:var(--v-100);width:46px;height:46px;color:var(--v-700);justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.signin-lockup{align-items:center;gap:14px;margin-bottom:18px;display:flex}.signin-logo{width:auto;height:86px;display:block}.signin-brand{letter-spacing:-.01em;color:var(--ink-900);font-size:22px;font-weight:600}.icon-btn.danger{color:var(--ink-400)}.icon-btn.danger:hover{background:var(--error-bg);color:var(--error)}.spinner.tiny{border-width:2px;width:13px;height:13px}.reveal{position:absolute;top:50%;right:5px;transform:translateY(-50%)}
