@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";.shell-brand{color:inherit;border-radius:var(--radius);min-height:40px}.shell-brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell-search,.shell-search input{min-width:0}.shell-search:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.shell-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex-shrink:0;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--text);transition:background .16s,border-color .16s}.shell-iconbtn svg{width:17px;height:17px}.shell-iconbtn:hover{background:var(--surface-3)}.shell-iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell-iconbtn--inline{width:32px;height:28px;border-color:transparent;background:transparent;color:var(--text-dim)}.shell-iconbtn--inline:hover{background:var(--surface-3);color:var(--text)}.tabnav.shell-tabs .tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}.shell-menu{display:flex;flex-direction:column;gap:2px}.shell-menu-row{display:flex;align-items:center;gap:11px;min-height:44px;padding:0 12px;border-radius:var(--radius);color:var(--text-dim);font-size:14.5px;font-weight:500;border:1px solid transparent;transition:background .16s,color .16s,border-color .16s}.shell-menu-row svg{width:17px;height:17px;opacity:.85}.shell-menu-row:hover{background:var(--surface-2);color:var(--text)}.shell-menu-row.is-active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}.shell-menu-row.is-active svg{color:var(--accent);opacity:1}.shell-menu-row:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shell-menu-divider{margin:8px 4px}.shell-menu-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.shell-menu-user{display:flex;align-items:center;gap:10px;min-width:0}.shell-menu-userinfo{text-align:left;min-width:0}.shell-menu-userinfo strong,.shell-menu-userinfo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app{grid-template-columns:minmax(0,1fr)}.content.shell-content{min-width:0;grid-template-columns:minmax(0,1fr)}@media (max-width: 719.98px){.topbar.shell-topbar{flex-direction:row;flex-wrap:nowrap;height:56px;padding:0 12px;gap:10px}.shell-topbar .shell-right{margin-left:auto}.shell-topbar .brand-sub{display:none}.shell-topbar .brand-name{font-size:12px}.shell-topbar .brand-mark{width:32px;height:32px}.shell-topbar.is-searching .brand-text{display:none}.shell-topbar .shell-right{gap:8px}.shell-search--mobile{flex:1;max-width:none;height:40px;padding:0 4px 0 11px}.shell-search--mobile input{font-size:15px}.content.shell-content{padding:14px 12px 28px}}@media (prefers-reduced-motion: reduce){.shell-iconbtn,.shell-menu-row{transition:none}}:root{--ui-motion: .16s}@media (prefers-reduced-motion: reduce){:root{--ui-motion: 0ms}}.ui-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:13.5px;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background var(--ui-motion),border-color var(--ui-motion),color var(--ui-motion)}.ui-btn svg{width:15px;height:15px;flex-shrink:0}.ui-btn--sm{height:32px;padding:0 11px;font-size:12.5px}.ui-btn--icon{width:40px;padding:0}.ui-btn--sm.ui-btn--icon{width:32px}.ui-btn--block{width:100%}.ui-btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong)}.ui-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.5;cursor:default}.ui-btn--primary{background:var(--accent);border-color:transparent;color:var(--on-accent);font-weight:600}.ui-btn--primary:hover:not(:disabled){background:var(--accent-press);border-color:transparent}.ui-btn--secondary{background:transparent;border-color:var(--border-strong)}.ui-btn--secondary:hover:not(:disabled){background:var(--surface-2)}.ui-btn--ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.ui-btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:transparent}.ui-btn--danger{background:transparent;border-color:var(--danger);color:var(--danger)}.ui-btn--danger:hover:not(:disabled){background:var(--danger-soft)}.ui-btn.is-loading{color:transparent}.ui-btn.is-loading>*{visibility:hidden}.ui-btn-spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;visibility:visible!important}.ui-btn-spinner:after{content:"";width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:ui-spin .7s linear infinite}.ui-btn--primary .ui-btn-spinner{color:var(--on-accent)}.ui-btn:not(.ui-btn--primary) .ui-btn-spinner{color:var(--text-dim)}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ui-btn-spinner:after{animation:none;border-right-color:currentColor;opacity:.5}}.ui-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px 0 8px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;line-height:1;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.ui-chip-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.ui-chip--accent{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.ui-chip--blue{color:var(--blue);background:var(--blue-soft);border-color:transparent}.ui-chip--amber{color:var(--amber);background:var(--amber-soft);border-color:transparent}.ui-chip--danger{color:var(--danger);background:var(--danger-soft);border-color:transparent}.ui-chip--neutral{color:var(--text-dim)}.ui-chip--raw{font-family:var(--font-mono);font-size:11.5px}.ui-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.ui-pagehead-main{min-width:0;display:flex;flex-direction:column;gap:4px}.ui-pagehead-back{display:inline-flex;align-items:center;gap:5px;min-height:24px;font-size:12.5px;color:var(--text-dim);width:fit-content;border-radius:var(--radius-sm)}.ui-pagehead-back svg{width:14px;height:14px}.ui-pagehead-back:hover{color:var(--text)}.ui-pagehead-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-pagehead h1{font-size:22px;margin:0;font-weight:600;letter-spacing:-.01em;line-height:1.2}.ui-pagehead-sub{margin:0;color:var(--text-dim);font-size:13.5px}.ui-pagehead-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.ui-table-wrap{overflow:auto;max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.ui-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.ui-table thead th{position:sticky;top:0;z-index:1;height:36px;padding:0 12px;text-align:left;font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.ui-table th.is-right,.ui-table td.is-right{text-align:right}.ui-table th.is-center,.ui-table td.is-center{text-align:center}.ui-table tbody td{height:40px;padding:0 12px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;font-variant-numeric:tabular-nums}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table tbody tr{transition:background var(--ui-motion)}.ui-table tbody tr:hover td{background:var(--surface-2)}.ui-table tbody tr.is-clickable{cursor:pointer}.ui-table tbody tr.is-clickable:focus-visible{outline:none}.ui-table tbody tr.is-clickable:focus-visible td{background:var(--accent-soft)}.ui-table tbody tr.is-clickable:focus-visible td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.ui-table tbody tr.is-selected td{background:var(--accent-soft)}.ui-table td.is-nowrap,.ui-table th.is-nowrap{white-space:nowrap}.ui-table-empty td{height:auto;padding:0}.ui-table tbody tr.ui-table-detail-row td{height:auto;padding:0;border-bottom:0}.ui-table tbody tr.ui-table-detail-row:hover td{background:inherit}.ui-table-skel{height:14px;border-radius:4px;background:var(--surface-3)}.ui-table-skel--wide{width:60%}.ui-table-skel--mid{width:40%}.ui-table-skel--short{width:24%}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:56px 20px;color:var(--text-dim)}.ui-empty p{margin:0;font-size:14px;max-width:46ch;line-height:1.5}.ui-empty svg{width:30px;height:30px;opacity:.5}.ui-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ui-field-label{font-size:12.5px;color:var(--text-dim);font-weight:500;display:flex;gap:6px;align-items:baseline}.ui-field-req{color:var(--danger)}.ui-field-hint{font-size:12px;color:var(--text-faint);margin:0;line-height:1.4}.ui-field-error{font-size:12.5px;color:var(--danger);margin:0;line-height:1.4}.ui-input{height:40px;padding:0 11px;width:100%;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);outline:none;font-size:14px;transition:border-color var(--ui-motion),box-shadow var(--ui-motion)}.ui-input::placeholder{color:var(--text-faint)}.ui-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.ui-field.has-error .ui-input{border-color:var(--danger)}.ui-field.has-error .ui-input:focus{box-shadow:0 0 0 3px var(--danger-soft)}.ui-check{display:inline-flex;align-items:center;gap:9px;min-height:40px;font-size:13.5px;color:var(--text);cursor:pointer;width:fit-content}.ui-check input{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}.ui-check input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-steps{display:inline-flex;gap:4px;align-items:center;vertical-align:middle}.ui-step{width:10px;height:10px;border-radius:2px;background:var(--surface-3);border:1px solid var(--border-strong);transition:background var(--ui-motion),border-color var(--ui-motion)}.ui-step--done{background:var(--accent);border-color:var(--accent)}.ui-step--running{background:var(--blue-soft);border-color:var(--blue);animation:ui-step-pulse 1.4s ease-in-out infinite}.ui-step--failed{background:var(--danger);border-color:var(--danger)}.ui-step--skipped{background:transparent;border-style:dashed}.ui-step--pending{background:var(--surface-3)}@keyframes ui-step-pulse{50%{background:var(--blue)}}@media (prefers-reduced-motion: reduce){.ui-step--running{animation:none;background:var(--blue)}}.ui-steps--lg .ui-step{width:14px;height:14px;border-radius:3px}.ui-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#00000073}.ui-sheet{position:fixed;top:0;right:0;bottom:0;z-index:46;width:min(92vw,440px);display:flex;flex-direction:column;background:var(--surface-1);border-left:1px solid var(--border);box-shadow:var(--shadow-2);animation:ui-sheet-in var(--ui-motion) ease-out}.ui-sheet--left{right:auto;left:0;border-left:0;border-right:1px solid var(--border);animation-name:ui-sheet-in-left}@keyframes ui-sheet-in{0%{transform:translate(24px);opacity:0}}@keyframes ui-sheet-in-left{0%{transform:translate(-24px);opacity:0}}.ui-sheet-head{display:flex;align-items:flex-start;gap:10px;padding:14px 14px 10px;border-bottom:1px solid var(--border)}.ui-sheet-titles{flex:1;min-width:0}.ui-sheet-title{margin:0;font-size:16px;font-weight:600}.ui-sheet-subtitle{margin-top:2px;font-size:12px;color:var(--text-dim)}.ui-sheet-body{flex:1;overflow:auto;padding:12px 14px 20px;display:flex;flex-direction:column;gap:18px}.ui-sheet-foot{padding:12px 14px;border-top:1px solid var(--border);background:var(--surface-2)}@media (max-width: 720px){.ui-sheet{width:100vw;border-left:0}.ui-sheet--left{width:min(86vw,340px)}}@media print{.ui-sheet,.ui-sheet-backdrop{display:none!important}}.ui-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.ui-card--accent{border-color:var(--accent-line)}.ui-card-pad{padding:16px}.ui-note{margin:0;padding:10px 12px;border-radius:var(--radius);font-size:13px;line-height:1.45}.ui-note--error{background:var(--danger-soft);color:var(--text);border:1px solid var(--danger)}.ui-note--info{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.hub{display:flex;flex-direction:column;gap:var(--gap);width:100%;min-width:0;max-width:1320px;margin:0 auto}.hub .ui-pagehead{margin-bottom:0}.hub-title{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.hub-title .ui-chip{position:relative;top:-1px}.hub-error{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.hub-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hub-card{display:flex;flex-direction:column;gap:12px;padding:var(--pad);min-width:0}.hub-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.hub-card-title{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.3}.hub-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--text-dim)}.hub-card-foot-actions{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.hub-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hub-check{display:inline-flex;width:auto;flex:0 0 auto;grid-template-columns:none;min-height:32px;font-size:12.5px;color:var(--text-dim)}.hub-check span{white-space:nowrap}.hub-dim{color:var(--text-dim)}.hub-danger{color:var(--danger)}.hub-text{margin:0;font-size:13.5px;line-height:1.5}.hub-wrap{white-space:pre-wrap;word-break:break-word}.hub-columns{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--gap);align-items:start;min-width:0}.hub-col{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.hub-kv{margin:0;display:flex;flex-direction:column}.hub-kv>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;min-height:30px;padding:5px 0;border-bottom:1px solid var(--border)}.hub-kv>div:last-child{border-bottom:0}.hub-kv dt{font-size:13px;color:var(--text-dim);flex-shrink:0}.hub-kv dd{margin:0;font-size:13.5px;text-align:right;min-width:0}.hub-kv dd.num{font-size:13px}.hub-bar{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden;width:100%}.hub-bar>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease-out}.hub-bar--lg{height:8px}.hub-bar-slot{height:6px}.hub-next{font-size:13px;color:var(--text-dim)}.hub-next--blue{color:var(--blue)}.hub-next--amber{color:var(--amber)}.hub-next--danger{color:var(--danger)}.hub-stepper{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.hub-step{display:flex;flex-direction:column;gap:8px;min-width:0;padding-top:10px;border-top:1px solid var(--border)}.hub-step.is-skipped .hub-step-glyph{background:transparent;border:1px dashed var(--border-strong)}.hub-step-top{display:flex;align-items:center;gap:8px;min-width:0}.hub-step-glyph{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-faint);font-size:11.5px;font-weight:600}.hub-step-glyph svg{width:13px;height:13px}.hub-step.is-done .hub-step-glyph{background:var(--accent);color:var(--on-accent)}.hub-step.is-running .hub-step-glyph{background:var(--blue-soft);color:var(--blue)}.hub-step.is-failed .hub-step-glyph{background:var(--danger-soft);color:var(--danger)}.hub-step-pulse{width:8px;height:8px;border-radius:50%;background:var(--blue);animation:hub-pulse 1.4s ease-in-out infinite}@keyframes hub-pulse{50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.hub-step-pulse{animation:none}.hub-bar>span{transition:none}}.hub-step-label{font-size:13.5px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-step.is-pending .hub-step-label,.hub-step.is-skipped .hub-step-label{color:var(--text-dim);font-weight:500}.hub-step-detail{font-size:12px;color:var(--text-dim);line-height:1.35;min-height:2.7em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.hub-step.is-failed .hub-step-detail{color:var(--danger)}.hub-step.is-pending .hub-step-detail{color:var(--text-faint)}.hub-step-foot{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:72px}.hub-step-foot:empty{display:none}.hub-step-foot .ui-btn{max-width:100%;overflow:hidden;text-overflow:ellipsis}.hub-step-foot .hub-check{max-width:100%}.hub-step-foot .hub-check span{white-space:normal}.hub-cast-summary{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;font-size:13.5px;color:var(--text-dim);padding:4px 0}.hub-cast-summary .num{color:var(--text)}.hub-cast-summary .is-bad,.hub-cast-summary .is-bad .num{color:var(--danger)}.hub-conflicts strong{color:var(--text)}.hub-conflicts.is-bad strong{color:var(--danger)}.hub-menu{position:relative}.hub-menu-summary{list-style:none;cursor:pointer}.hub-menu-summary::-webkit-details-marker{display:none}.hub-menu[open] .hub-menu-summary{background:var(--surface-2)}.hub-menu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:260px;padding:6px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:2px}.hub-menu-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:36px;padding:7px 10px;text-align:left;background:transparent;border:0;border-radius:var(--radius);color:var(--text);font-size:13.5px;font-weight:500;cursor:pointer;transition:background var(--ui-motion),color var(--ui-motion)}.hub-menu-item small{font-size:11.5px;color:var(--text-faint);font-weight:400}.hub-menu-item:hover:not(:disabled){background:var(--surface-2)}.hub-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hub-menu-item:disabled{color:var(--text-faint);cursor:default}.hub-menu-item.is-danger{color:var(--danger)}.hub-menu-item.is-danger:hover{background:var(--danger-soft)}.hub-menu-sep{height:1px;margin:4px 2px;background:var(--border)}.hub-confirm{display:flex;flex-direction:column;gap:10px;padding:10px;border-radius:var(--radius);background:var(--danger-soft);border:1px solid var(--danger)}.hub-confirm p{margin:0;font-size:13px;line-height:1.45;color:var(--text)}.hub-confirm-actions{display:flex;gap:6px;flex-wrap:wrap}.hub-menu-pop .hub-confirm{max-width:320px}.hub-service{gap:0;padding:0}.hub-service-summary{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 var(--pad);list-style:none;cursor:pointer;border-radius:var(--radius-lg);font-size:13px}.hub-service-summary::-webkit-details-marker{display:none}.hub-service-summary svg{width:14px;height:14px;color:var(--text-faint);transition:transform var(--ui-motion)}.hub-service[open] .hub-service-summary svg{transform:rotate(90deg)}.hub-service-summary:hover{background:var(--surface-2)}.hub-service-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hub-service-body{display:flex;flex-direction:column;gap:12px;padding:4px var(--pad) var(--pad);border-top:1px solid var(--border)}.hub-service-body .hub-kv dd{text-align:left}.hub-service-body .hub-kv>div{justify-content:flex-start}.hub-service-body .hub-kv dt{width:110px}.hub-skel{display:flex;flex-direction:column;gap:10px}.hub-skel>span{display:block;height:13px;border-radius:4px;background:var(--surface-3);width:70%;animation:hub-shimmer 1.3s ease-in-out infinite}.hub-skel>span:nth-child(2){width:46%}.hub-skel>span:nth-child(3){width:58%}.hub-skel>span:nth-child(4){width:32%}.hub-skel--head>span:first-child{height:22px;width:38%}@keyframes hub-shimmer{50%{opacity:.55}}@media (prefers-reduced-motion: reduce){.hub-skel>span{animation:none}}@media (max-width: 900px){.hub-columns{grid-template-columns:1fr}.hub-stepper{grid-template-columns:1fr;gap:0}.hub-step{padding:10px 0;border-top:1px solid var(--border)}.hub-step:first-child{border-top:0;padding-top:0}.hub-step-label{white-space:normal}.hub-step-detail{min-height:0;-webkit-line-clamp:3}.hub-step-foot{min-height:0}.hub-bar-slot:empty{display:none}.hub .ui-pagehead-actions{width:100%}.hub .ui-pagehead-actions>.ui-btn:first-child,.hub .ui-pagehead-actions>a:first-child{flex:1}.hub-menu-pop{min-width:240px}.hub-service-body .hub-kv>div{flex-direction:column;gap:2px}.hub-service-body .hub-kv dt{width:auto}}.hub-models{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.hub-model{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.hub-model.is-on{border-color:var(--accent-line);background:var(--accent-soft)}.hub-model-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hub-model-badge{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--surface-3);color:var(--text-dim);border:1px solid var(--border)}.hub-model-badge--warn{color:var(--amber);background:var(--amber-soft);border-color:var(--amber);border-style:dashed}.hub-model-price{font-size:12px;color:var(--text-dim)}.hub-model-note{margin:0;font-size:12.5px;line-height:1.5;color:var(--text-faint)}.hub-model-confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--text)}.hub-model-accuracy{font-size:12px;color:var(--text-dim)}.hub-autopublish{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:start;gap:6px;width:100%;min-height:0;margin:0;font-size:12px;line-height:1.35;color:var(--text-dim)}.hub-autopublish input{margin:2px 0 0}.hub-autopublish span{min-width:0;overflow-wrap:anywhere}.hub-chapters{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:1px}.hub-chapter{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:13px;border-bottom:1px solid var(--border)}.hub-chapter:last-child{border-bottom:0}.hub-chapter-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.hub-chapter.is-ready .hub-chapter-name{color:var(--text)}.hub-chapter-count{font-size:12px;color:var(--text-faint);white-space:nowrap}.hub-chapter.is-ready .hub-chapter-count{color:var(--accent)}.hub-chapter-get{font-size:12px;color:var(--accent);text-decoration:none;white-space:nowrap;padding:1px 6px;border-radius:var(--radius-sm)}.hub-chapter-get:hover{background:var(--surface-2)}.lib{display:flex;flex-direction:column;gap:var(--gap);width:100%;min-width:0;max-width:1320px;margin:0 auto}.lib .ui-pagehead{margin-bottom:0}.lib-upload{display:flex;flex-direction:column;gap:14px}.lib-upload-title{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.lib-filter{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--text-dim)}.lib-filter strong{color:var(--text);font-weight:600}.lib-error{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.lib-book{display:flex;flex-direction:column;gap:1px;min-width:0;padding:6px 0}.lib-title{font-size:14px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-author{font-size:12px;color:var(--text-dim);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-next{display:inline-block;font-size:13px;color:var(--text-dim);line-height:1.35}.lib-next--blue{color:var(--blue)}.lib-next--amber{color:var(--amber)}.lib-next--danger{color:var(--danger)}.lib-steps{display:inline-flex;align-items:center;min-height:20px}.lib-updated{color:var(--text-dim);font-size:12.5px}.lib .ui-table thead th:first-child,.lib .ui-table tbody td:first-child{padding-left:16px}.lib .ui-table thead th:last-child,.lib .ui-table tbody td:last-child{padding-right:16px}.lib .ui-table tbody td{height:48px}.lib .ui-table{table-layout:auto}.lib .ui-table-wrap{min-width:0}.lib .ui-table th.lib-col-next{width:32%}@media (max-width: 900px){.lib .ui-table .lib-col-updated{display:none}}@media (max-width: 719.98px){.lib .ui-table .lib-col-steps{display:none}.lib .ui-table th.lib-col-next{width:auto}.lib .ui-table thead th,.lib .ui-table tbody td{padding-left:10px;padding-right:10px}.lib .ui-table thead th:first-child,.lib .ui-table tbody td:first-child{padding-left:12px}.lib .ui-table thead th:last-child,.lib .ui-table tbody td:last-child{padding-right:12px}.lib-title{white-space:normal}.lib .ui-table thead th{white-space:normal;line-height:1.2}.lib .ui-table thead th:first-child{min-width:132px}}@media (max-width: 460px){.lib .ui-table thead th,.lib .ui-table tbody td{padding-left:8px;padding-right:8px}.lib .ui-table thead th:first-child,.lib .ui-table tbody td:first-child{padding-left:10px}.lib .ui-table thead th:last-child,.lib .ui-table tbody td:last-child{padding-right:10px}.lib .ui-table thead th:first-child{min-width:100px}.lib-next{overflow-wrap:anywhere}.lib .ui-chip{white-space:normal}}.upl{display:flex;flex-direction:column;gap:16px}.upl-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:start}@media (max-width: 860px){.upl-grid{grid-template-columns:1fr}}.upl-drop{display:flex;flex-direction:column;gap:6px;min-width:0}.upl-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:176px;padding:20px;text-align:center;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);transition:border-color .16s,background .16s}.upl-drop.is-over .upl-dropzone{border-color:var(--accent-line);background:var(--accent-soft)}.upl-drop.has-file .upl-dropzone{border-style:solid;border-color:var(--accent-line)}.upl-drop.has-error .upl-dropzone{border-color:var(--danger)}.upl-dropzone:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.upl-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.upl-drop-icon{width:26px;height:26px;color:var(--text-faint)}.upl-drop.has-file .upl-drop-icon{color:var(--accent)}.upl-file{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%}.upl-file strong{font-size:14px;font-weight:600}.upl-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.upl-file-meta{font-size:12px;color:var(--text-dim)}.upl-pick{cursor:pointer}.upl-progress{padding-top:4px}.upl-fields{display:flex;flex-direction:column;gap:14px;min-width:0}.upl-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media (prefers-reduced-motion: reduce){.upl-dropzone{transition:none}}.cast{display:flex;flex-direction:column;min-width:0}.cast-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.cast-checked{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}.cast-checked svg{width:18px;height:18px;flex-shrink:0}.cast-checked.is-checked{border-color:var(--accent-line);color:var(--accent)}.cast-checked.is-checked svg{color:var(--accent)}.cast-checked.is-unchecked{border-color:var(--amber);color:var(--amber)}.cast-checked.is-unchecked svg{color:var(--amber)}.cast-checked-text{flex:1;min-width:200px;font-size:13.5px;color:var(--text)}.cast-checked-text strong{font-weight:600}.cast-ack-panel{padding:var(--pad);margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.cast-ack-toggle{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;cursor:pointer;color:inherit;text-align:left}.cast-ack-title{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.3}.cast-chevron{width:14px;height:14px;transition:transform var(--ui-motion) ease-out}.cast-chevron--open{transform:rotate(90deg)}.cast-ack-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.cast-ack-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border)}.cast-ack-item:last-child{border-bottom:0}.cast-ack-pair{font-size:13px;flex:1 1 220px;min-width:0}.cast-ack-reason{font-size:13px;color:var(--text-dim);flex:1 1 220px;min-width:0;font-style:italic}.cast-ack-source{font-size:12px;white-space:nowrap}@media (prefers-reduced-motion: reduce){.cast-chevron{transition:none}}.cast-search{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 11px;width:260px;max-width:100%;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text-faint);transition:border-color var(--ui-motion),box-shadow var(--ui-motion)}.cast-search svg{width:15px;height:15px;flex-shrink:0}.cast-search input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;color:var(--text);font-size:13.5px}.cast-search input::placeholder{color:var(--text-faint)}.cast-search input::-webkit-search-cancel-button{filter:grayscale(1);opacity:.6}.cast-search:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.cast-budget{margin:-6px 0 12px}.cast-budget--skeleton{height:16px;width:min(560px,80%);border-radius:4px;background:var(--surface-3);margin-bottom:20px}.cast-budget-line{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;font-size:13px;color:var(--text-dim);line-height:1.6}.cast-budget-line strong{color:var(--text);font-weight:600}.cast-budget-item+.cast-budget-item:before{content:"·";margin-right:6px;color:var(--text-faint)}.cast-budget-key{color:var(--text-faint);font-family:var(--font-sans)}.cast-budget-edit-btn{margin-left:4px;font-family:var(--font-sans)}.cast-budget-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:10px;padding:12px 14px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.cast-budget-form .ui-field{width:200px}.cast-budget-form-actions{display:flex;gap:8px}.cast-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;min-height:32px}.cast-toolbar-count{font-size:12.5px;color:var(--text-faint)}.cast-toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.cast-toggle[aria-pressed=true]:hover:not(:disabled){background:var(--accent-soft)}.cast-conflicts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:10px;padding:8px 12px;background:var(--amber-soft);border:1px solid var(--amber);border-radius:var(--radius);font-size:13px;color:var(--text);line-height:1.4}.cast-conflicts-title{white-space:nowrap}.cast-conflicts-title strong{color:var(--danger);font-weight:600}.cast-conflicts-list{display:flex;flex-wrap:wrap;gap:4px 10px;flex:1;min-width:0;color:var(--text-dim)}.cast-conflicts-pair{white-space:nowrap}.cast-conflicts-more{color:var(--text-faint);font-size:12px}.cast-table{min-width:0;container-type:inline-size}.cast-table .ui-table{table-layout:fixed;width:100%;min-width:0}.cast-table .ui-table-wrap{overflow-x:hidden}.cast-table .cast-col-swatch{width:44px}.cast-table .cast-col-role{width:19%}.cast-table .cast-col-actor{width:13%}.cast-table .cast-col-lines,.cast-table .cast-col-auditions{width:7%}.cast-col-chapters{width:62px}.cast-col-cross{width:118px}@container (max-width: 1150px){.cast-table .cast-col-role{width:20%}.cast-table .cast-col-actor{width:14%}.cast-table .cast-col-lines,.cast-table .cast-col-auditions{width:8%}}@container (max-width: 950px){.cast-table .cast-col-chapters{display:none}.cast-table .cast-col-role{width:22%}.cast-table .cast-col-actor{width:16%}.cast-table .cast-col-lines,.cast-table .cast-col-auditions{width:10%}}@container (max-width: 780px){.cast-table .cast-col-who{display:none}.cast-table .cast-col-role{width:auto}.cast-table .cast-col-actor{width:24%}.cast-table .cast-col-lines,.cast-table .cast-col-auditions{width:13%}}@container (max-width: 560px){.cast-table .cast-col-lines{display:none}.cast-table .cast-col-actor{width:30%}.cast-table .cast-col-auditions{width:18%}}.cast-table .ui-table td>*{min-width:0}.cast-role-name{min-width:0}.cast-role-name,.cast-who-note,.cast-table .cast-col-actor .cast-cell-btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cast-table .ui-table thead th,.cast-table .ui-table tbody td{padding:0 10px}.cast-table .ui-table tbody td:first-child{padding-right:4px}.cast-table .ui-table tbody tr:has(.cast-spacer) td{border-bottom:0;padding:0;height:auto}.cast-table .ui-table tbody tr:has(.cast-spacer):hover td{background:transparent}.cast-spacer{width:1px}.cast-sort{display:inline-flex;align-items:center;gap:4px;height:36px;margin:0 -6px;padding:0 6px;border:0;background:transparent;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--ui-motion)}.cast-sort:hover{color:var(--text-dim)}.cast-sort:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cast-sort-icon{width:12px;height:12px;opacity:0;transform:rotate(90deg);transition:opacity var(--ui-motion),transform var(--ui-motion)}.cast-sort.is-active{color:var(--text)}.cast-sort.is-active .cast-sort-icon{opacity:1}.cast-sort.is-active.is-asc .cast-sort-icon{transform:rotate(-90deg)}.ui-table th.is-right .cast-sort{flex-direction:row-reverse}.cast-swatch{width:24px;height:24px;padding:0;border-radius:999px;border:1px solid transparent;cursor:pointer;display:inline-grid;place-items:center;font-size:11px;line-height:1;box-shadow:none!important;transition:transform 80ms}.cast-swatch:hover:not(:disabled){transform:scale(1.08)}.cast-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cast-swatch:disabled{cursor:default;opacity:.7}.cast-role-cell{display:flex;align-items:stretch;gap:4px;min-width:0}.cast-disc{flex:none;width:30px;min-height:40px;align-self:stretch;margin-left:-9px;display:inline-grid;place-items:center;border:0;background:transparent;padding:0;border-radius:var(--radius-sm);color:var(--text-faint);cursor:pointer;transition:color var(--ui-motion),background var(--ui-motion)}.ui-table tbody tr:hover .cast-disc{background:var(--surface-3);color:var(--text-dim)}.cast-disc:hover{color:var(--text);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}.cast-disc[aria-expanded=true]{color:var(--accent)}.cast-disc:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cast-disc-icon{width:17px;height:17px;transition:transform var(--ui-motion) ease-out}.cast-disc[aria-expanded=true] .cast-disc-icon{transform:rotate(90deg)}.cast-role{display:flex;flex-direction:column;justify-content:center;min-height:40px;padding:6px 0;gap:2px;min-width:0}.cast-role-line{display:flex;align-items:baseline;gap:6px;min-width:0}.cast-role-name{font-weight:600;font-size:13.5px;letter-spacing:-.005em}.cast-alias-toggle{border:0;background:transparent;padding:0 3px;margin:0;cursor:pointer;font-size:11.5px;color:var(--text-faint);border-radius:var(--radius-sm);transition:color var(--ui-motion)}.cast-alias-toggle:hover,.cast-alias-toggle[aria-expanded=true]{color:var(--text-dim)}.cast-alias-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cast-aliases{font-size:12px;color:var(--text-dim);line-height:1.4;white-space:normal}.cast-muted{color:var(--text-faint)}.cast-chapters{cursor:help;text-decoration:underline dotted var(--border-strong);text-underline-offset:3px}.cast-chapters.is-mismatch{color:var(--amber)}.cast-chapters-claimed{color:var(--text-faint)}.cast-cross{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border:0;border-radius:999px;font:500 11.5px/1 var(--font-sans);cursor:pointer}.cast-cross.is-bad{background:var(--danger-soft);color:var(--danger)}.cast-cross.is-warn{background:var(--amber-soft);color:var(--amber)}.cast-cross.is-info{background:var(--blue-soft);color:var(--blue)}.cast-cell{display:block;width:100%;height:30px;padding:0 7px;margin:0 -7px;box-sizing:content-box;font-size:13.5px;line-height:30px}.cast-cell.is-right{text-align:right}.cast-cell-btn{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text);cursor:text;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color var(--ui-motion),background var(--ui-motion)}.cast-cell-btn.is-empty{color:var(--text-faint)}.cast-cell-btn:hover:not(:disabled){border-color:var(--border-strong)}.cast-cell-btn:focus-visible{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.cast-cell-btn:disabled{cursor:default;opacity:.7}.cast-cell-btn[aria-busy=true]{opacity:.5}.cast-cell-input{background:var(--surface-1);border:1px solid var(--accent-line);border-radius:var(--radius-sm);color:var(--text);outline:none;box-shadow:0 0 0 3px var(--accent-soft);font-family:inherit}.cast-cell-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.cast-cell-input::-webkit-outer-spin-button,.cast-cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cast-cell-input::placeholder{color:var(--text-faint)}.cast-error{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}@media (max-width: 720px){.ui-pagehead .cast-search{width:100%}.cast .ui-pagehead-actions{width:100%;flex-wrap:wrap}.cast-budget-form .ui-field{width:100%}.cast-toolbar{flex-wrap:wrap}.cast-search,.cast-toggle{min-height:40px}.cast-conflicts{flex-direction:column;align-items:flex-start;gap:6px}.cast-conflicts-list{width:100%;flex:none}.cast-conflicts-pair,.cast-conflicts-title{white-space:normal}.cast-conflicts>.ui-btn{min-height:40px}}@media (prefers-reduced-motion: reduce){.cast-swatch:hover:not(:disabled){transform:none}}.cast-lines{color:var(--accent);text-decoration:none}.cast-lines:hover{text-decoration:underline}.cast-lines:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.cast-who{display:flex;flex-direction:column;gap:1px;min-width:0;padding:4px 0;height:62px}.cast-who .cast-cell-btn{font-size:12px;line-height:1.4;text-align:left;display:block;width:100%;height:19px;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cast-who .cast-cell-btn.is-empty{font-size:11.5px}.cast-who-note{color:var(--text)}.cast-cell-area{width:100%;min-height:58px;padding:5px 7px;resize:vertical;font:inherit;font-size:12.5px;line-height:1.4;background:var(--surface-2);color:var(--text);border:1px solid var(--accent-line);border-radius:var(--radius);outline:none}.cast-cell-area:focus{box-shadow:0 0 0 3px var(--accent-soft)}.cast .ui-table tbody td{vertical-align:top}.cast .ui-table tbody td.cast-col-swatch{vertical-align:middle}.cast-merge-cost{margin:0;font-size:13.5px;line-height:1.5}.cast-merge-actions{display:flex;gap:6px;flex-wrap:wrap}.books-palette-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02080c99;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:18px;z-index:40}.books-palette-modal{width:min(680px,100%);border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--surface-1);box-shadow:var(--shadow-2);padding:18px;display:grid;gap:16px}.books-palette-modal-header{display:flex;justify-content:space-between;gap:12px}.books-palette-modal-header h3{margin:0;font-size:18px;font-weight:600}.books-palette-modal-header p{margin:6px 0 0;color:var(--text-dim)}.books-palette-close{width:34px;height:34px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:20px;cursor:pointer}.books-palette-close:hover{background:var(--surface-3)}.books-palette-preview{border-radius:var(--radius);border:1px solid var(--border);padding:14px 16px;display:grid;gap:6px}.books-palette-preview span{opacity:.82;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.books-palette-preview strong{font-size:20px;line-height:1.35}.books-palette-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.books-palette-field{display:grid;gap:8px}.books-palette-field span{color:var(--text-dim);font-size:13px}.books-palette-color-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px}.books-palette-field input[type=color]{width:56px;height:44px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);padding:4px}.books-palette-field input[type=text],.books-palette-field select{width:100%;min-height:44px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:10px 12px;font:inherit;outline:none;transition:border-color .12s,box-shadow .12s}.books-palette-field input[type=text]:focus,.books-palette-field select:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.books-palette-actions{display:flex;justify-content:flex-end;gap:10px}.books-palette-primary,.books-palette-secondary{min-height:40px;border-radius:var(--radius);padding:0 14px;cursor:pointer;font:inherit;font-weight:500}.books-palette-secondary{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text)}.books-palette-secondary:hover{background:var(--surface-3)}.books-palette-primary{border:1px solid transparent;background:var(--accent);color:var(--on-accent);font-weight:600}.books-palette-primary:hover:not(:disabled){background:var(--accent-press)}.books-palette-primary:disabled{opacity:.7;cursor:progress}@media (max-width: 1080px){.books-palette-grid{grid-template-columns:1fr}}.books-palette-warning{margin-top:14px;padding:10px 12px;border-radius:var(--radius);background:var(--amber-soft);border:1px solid var(--amber);font-size:12.5px;line-height:1.5;color:var(--text)}.books-palette-warning strong{font-weight:600}.books-palette-warning ul{margin:6px 0 0;padding-left:18px}.pal-note{margin:0 0 14px;font-size:13px;line-height:1.5;color:var(--text-dim)}.pal-pairs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pal-pairs li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px}.pal-pair-meta{font-size:11.5px;color:var(--text-faint);flex-shrink:0}.pal-pair-more{color:var(--text-faint);font-size:12px}.pal-changes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pal-changes li{display:flex;align-items:center;gap:8px}.pal-swatch{padding:2px 9px;border-radius:999px;font-size:12.5px;white-space:nowrap}.pal-arrow{color:var(--text-faint);flex-shrink:0}.rdr{background:var(--surface-2);border-bottom:1px solid var(--accent-line);padding:18px 14px 14px}.rdr-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(200px,1fr) minmax(280px,1.4fr);gap:26px}.rdr-wide{min-width:0}.rdr-lbl{font:600 11px/1.2 var(--font-sans);letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);margin:0 0 8px}.rdr-kv{margin:0;display:grid;grid-template-columns:auto 1fr;gap:7px 14px;font-size:13px}.rdr-kv dt{color:var(--text-faint);font-size:12.5px}.rdr-kv dd{margin:0}.rdr-strong{font-weight:600;color:var(--accent)}.rdr-ix{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;background:var(--surface-1)}.rdr-ix.is-bad{border-color:color-mix(in oklab,var(--danger) 38%,transparent);background:var(--danger-soft)}.rdr-ix.is-warn{border-color:color-mix(in oklab,var(--amber) 32%,transparent)}.rdr-ix-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;margin-bottom:8px}.rdr-ix-ask{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.rdr-ix-reason{flex:1;min-width:200px;height:30px;padding:0 9px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font:400 13px var(--font-sans)}.rdr-ix-reason:focus{outline:0;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.rdr-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:12.5px}.rdr-acts{margin-left:auto;display:flex;gap:8px}@media (max-width: 1240px){.rdr-grid{grid-template-columns:1fr 1fr}.rdr-wide{grid-column:1 / -1}}@media (max-width: 900px){.rdr-grid{grid-template-columns:1fr;gap:18px}}.aud-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.aud-item{padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1)}.aud-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.aud-actor{font-size:14px}.aud-when{font-size:12px;white-space:nowrap}.aud-player{width:100%;height:34px;display:block}.aud-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;flex-wrap:wrap}.aud-file{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;min-width:0}.aud-assigned{font-size:12px;color:var(--text-muted);white-space:nowrap}.cast-auditions{border:0;background:transparent;color:var(--accent);font:inherit;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm)}.cast-auditions:hover{background:var(--surface-2)}.help{width:min(1180px,100%);margin:0 auto;display:grid;gap:18px;color:var(--text)}.help a{color:inherit}.help p{line-height:1.62}.help h1,.help h2,.help h3{text-wrap:balance}.help h3{margin:24px 0 10px;font-size:16px}.help ul,.help ol{line-height:1.55}.help-hero{display:flex;align-items:end;justify-content:space-between;gap:28px;padding:clamp(24px,4vw,42px);background:radial-gradient(circle at 88% 20%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 34%),var(--surface-1)}.help-hero-copy{max-width:760px}.help-eyebrow{display:block;margin-bottom:9px;color:var(--accent);font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}.help-hero h1{margin:0;font-size:clamp(28px,4vw,44px);line-height:1.08}.help-hero p{margin:14px 0 0;color:var(--text-dim);font-size:16px}.help-hero-actions,.help-footer-actions{display:flex;flex-wrap:wrap;gap:9px;flex-shrink:0}.help-toc{display:grid;gap:14px}.help-toc>strong{font-size:15px}.help-toc-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.help-toc-links a{display:flex;align-items:center;gap:9px;min-width:0;min-height:38px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text-dim);text-decoration:none;font-size:13px}.help-toc-links a:hover{border-color:var(--accent-line);color:var(--text)}.help-toc-links .num{color:var(--accent);font-size:11px}.help-section{scroll-margin-top:20px;padding:clamp(20px,3vw,32px)}.help-section-head{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border)}.help-section-head h2{margin:0;font-size:clamp(22px,3vw,29px)}.help-section-head p{max-width:850px;margin:8px 0 0;color:var(--text-dim)}.help-label{display:inline-flex;align-items:center;min-height:24px;padding:1px 7px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:.9em;font-weight:650;white-space:nowrap}.help-note{margin-top:20px;padding:14px 16px;border:1px solid var(--accent-line);border-left-width:3px;border-radius:var(--radius);background:var(--accent-soft);color:var(--text-dim);line-height:1.55}.help-note--warning{border-color:color-mix(in srgb,#e1a53a 55%,var(--border));background:color-mix(in srgb,#e1a53a 9%,var(--surface-1))}.help-steps{counter-reset:help-step;list-style:none;margin:0;padding:0;display:grid;gap:10px}.help-steps li{position:relative;display:grid;gap:4px;min-height:52px;padding:12px 14px 12px 52px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.help-steps li:before{counter-increment:help-step;content:counter(help-step);position:absolute;left:14px;top:12px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font:700 12px/1 var(--font-mono, monospace)}.help-steps li>span{color:var(--text-dim)}.help-steps--primary li{border-color:var(--accent-line)}.help-role-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px;align-items:start}.help-role-card,.help-task-grid>article,.help-compare>article{padding:17px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.help-role-card--dictor{border-color:var(--accent-line);background:linear-gradient(145deg,var(--accent-soft),var(--surface-2) 70%)}.help-role-title{display:flex;align-items:center;gap:10px}.help-role-title code{padding:3px 6px;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--accent)}.help-role-card p{margin:10px 0;color:var(--text-dim)}.help-role-card h3{margin:16px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.help-role-card ul{margin:0;padding-left:19px}.help-role-card li+li{margin-top:6px}.help-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.help-flow li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius)}.help-flow li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-3);color:var(--accent);font-weight:750}.help-flow strong{display:block;margin:3px 0 4px}.help-flow p{margin:0;color:var(--text-dim);font-size:13.5px}.help-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.help-task-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.help-task-grid h3{margin:0 0 6px}.help-task-grid p{margin:0;color:var(--text-dim)}.help-task-grid ol{margin:0;padding-left:20px;color:var(--text-dim)}.help-task-grid li+li{margin-top:7px}.help-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.help-compare article{border-left-width:3px}.help-compare-good{border-left-color:var(--accent)!important}.help-compare-warn{border-left-color:#e1a53a!important}.help-compare p{margin:6px 0 0;color:var(--text-dim)}.help-controls,.help-errors,.help-terms{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.help-controls>div,.help-errors>div,.help-terms>div{padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.help-controls dt,.help-errors dt,.help-terms dt{margin-bottom:5px;font-weight:700}.help-controls dd,.help-errors dd,.help-terms dd{margin:0;color:var(--text-dim);line-height:1.5}.help-list{margin:0;padding-left:21px}.help-list li+li{margin-top:9px}.help-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:var(--text-dim)}.help-shortcuts kbd{min-width:27px;padding:3px 6px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;background:var(--surface-2);color:var(--text);text-align:center;font:650 12px/1.3 var(--font-mono, monospace)}.help-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}.help-status-grid>div{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:12px;border:1px solid var(--border);border-radius:var(--radius)}.help-status-grid strong{color:var(--accent)}.help-status-grid span{color:var(--text-dim);font-size:13px;line-height:1.45}.help-faq{display:grid;gap:8px}.help-faq details{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.help-faq summary{padding:14px 16px;cursor:pointer;font-weight:680}.help-faq summary:hover{color:var(--accent)}.help-faq p{margin:0;padding:0 16px 16px;color:var(--text-dim)}.help-footer-actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}@media (max-width: 900px){.help-hero{align-items:start;flex-direction:column}.help-toc-links,.help-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.help-role-card--dictor{grid-column:1 / -1}.help-task-grid--three,.help-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 620px){.help{gap:12px}.help-hero-actions,.help-footer-actions{width:100%}.help-hero-actions .ui-btn,.help-footer-actions .ui-btn{flex:1 1 150px}.help-toc-links,.help-role-grid,.help-flow,.help-task-grid,.help-task-grid--three,.help-compare,.help-controls,.help-errors,.help-terms,.help-status-grid{grid-template-columns:minmax(0,1fr)}.help-role-card--dictor{grid-column:auto}.help-section{padding:18px 15px}.help-section-head{margin-bottom:16px}.help-label{white-space:normal}.help-steps li{padding-right:11px;padding-left:48px}}.rec-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--gap);align-items:start}.rec-stage{min-width:0}.v2r--embedded{--v2r-rail-w: 220px}.v2r--embedded .v2r-title-book,.v2r--embedded .v2r-nav--top,.v2r--embedded .v2r-print,.v2r--embedded .v2r-radius{display:none}.v2r--embedded .v2r-seg{margin-left:auto}.rec-panel{position:sticky;top:var(--gap);display:flex;flex-direction:column;gap:16px;padding:var(--pad);max-height:calc(100vh - 56px - 42px - 2 * var(--gap));overflow:auto}.rec-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.rec-panel-title{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.rec-panel-actor{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.rec-label{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint)}.rec-book-line{display:flex;flex-direction:column;gap:4px;margin:0;font-size:13.5px}.rec-book-line .rec-label{margin:0}.rec-book-line strong{font-weight:600}.rec-role{display:flex;flex-direction:column;gap:8px}.rec-select{padding-right:8px}.rec-section{min-width:0}.rec-note{margin:0}.rec-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:14px 12px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--text-dim);text-align:center;font-size:13px;line-height:1.4;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.rec-drop svg{width:20px;height:20px;opacity:.7}.rec-drop:hover,.rec-drop.is-over{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}.rec-drop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rec-drop.is-disabled{opacity:.55;cursor:default}.rec-drop.is-disabled:hover{border-color:var(--border-strong);background:var(--surface-2);color:var(--text-dim)}.rec-drop-input{display:none}.rec-files{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.rec-file{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-2);font-size:12.5px}.rec-file.is-bad{border-color:var(--danger);background:var(--danger-soft)}.rec-file-name{color:var(--text);overflow-wrap:anywhere}.rec-file-as{color:var(--text-faint);font-size:11.5px;overflow-wrap:anywhere}.rec-file-as--bad{color:var(--danger)}.rec-upload-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.rec-status{margin:8px 0 0;font-size:12.5px;line-height:1.4;color:var(--text-dim)}.rec-status--error{color:var(--danger)}.rec-status--success{color:var(--accent)}.rec-table .ui-table{font-size:12.5px}.rec-file-cell{font-size:11.5px;overflow-wrap:anywhere}.rec-table-empty{margin:0;font-size:12.5px;color:var(--text-faint)}@media (max-width: 999px){.rec-layout{grid-template-columns:minmax(0,1fr)}.rec-panel{position:static;max-height:none;overflow:visible}}@media (max-width: 760px){.rec-panel{order:-1}}@media (prefers-reduced-motion: reduce){.rec-drop{transition:none}}.rec-role-all{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--accent)}.rec-kind-badge{display:flex;flex-direction:column;gap:3px;padding:8px 10px;margin-bottom:10px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface-2)}.rec-kind-badge.is-audition{border-left-color:var(--amber)}.rec-kind-badge strong{font-size:13px}.rec-kind-badge span{font-size:12px;line-height:1.35;color:var(--text-muted)}.rec-file-warn{display:block;font-size:12px;color:var(--amber);line-height:1.3}.rec-naming{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;margin-bottom:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.rec-naming-label{font-size:12px;color:var(--text-muted)}.rec-naming-name{font-size:12px;color:var(--text);word-break:break-all;min-width:0}.rec-naming-copy{margin-left:auto;border:0;background:transparent;color:var(--accent);font:inherit;font-size:12px;cursor:pointer;padding:2px 4px;border-radius:var(--radius-sm)}.rec-naming-copy:hover{background:var(--surface-1)}.rec-naming-empty,.rec-naming-rule{margin:0 0 8px;font-size:12px;line-height:1.4}.rec-naming-rule code{font-size:11px}.rec-progress{height:4px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-bottom:6px}.rec-progress>span{display:block;height:100%;background:var(--accent);transition:width .12s linear}.v2r{--v2r-font: 17px;--v2r-lh: 1.7;--v2r-measure: 74ch;--v2r-rail-w: 250px;--v2r-cast-w: 285px;min-width:0}.v2r--font-s{--v2r-font: 15px;--v2r-lh: 1.6}.v2r--font-l{--v2r-font: 20px;--v2r-lh: 1.75}.v2r-toolbar{display:flex;flex-direction:column;gap:10px;padding:12px 14px;margin-bottom:var(--gap);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.v2r-toolbar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.v2r-toolbar-row--title{flex-wrap:nowrap}.v2r-title{min-width:0;flex:1;display:flex;flex-direction:column;line-height:1.2}.v2r-title-book{font-size:11.5px;color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.v2r-title-chapter{margin:2px 0 0;font-size:17px;font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2r-title-index{color:var(--text-faint);margin-right:4px}.v2r-title-remarks{margin-top:2px;font-size:11.5px;color:var(--text-faint)}.v2r-nav{display:flex;gap:6px;flex-shrink:0}.v2r-nav--bottom{justify-content:space-between;margin:28px 0 8px}.v2r-btn{min-height:36px}.v2r-btn.is-on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.v2r-btn:disabled{opacity:.45;cursor:default}.v2r-btn:disabled:hover{background:var(--surface-2)}.v2r-search{display:flex;align-items:center;gap:8px;flex:1;min-width:180px;max-width:360px;height:36px;padding:0 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-faint)}.v2r-search svg{width:15px;height:15px;flex-shrink:0}.v2r-search:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.v2r-search-input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);outline:none;font-size:13.5px}.v2r-search-input::placeholder{color:var(--text-faint)}.v2r-radius{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-dim)}.v2r-select{height:36px;padding:0 8px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none}.v2r-seg{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.v2r-seg-btn{min-width:32px;height:28px;border:0;background:transparent;border-radius:5px;color:var(--text-dim);font-size:12.5px;font-weight:600}.v2r-seg-btn.is-on{background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-1)}.v2r-print{margin-left:auto}.v2r-toolbar-more{display:contents}.v2r-toolbar-more[hidden]{display:none}.v2r-approve{flex-shrink:0}.v2r-approve.is-done{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.v2r-rail-approved{margin-left:auto;color:var(--accent);font-size:12px;flex-shrink:0}.v2r-body{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap);align-items:start}.v2r--rail .v2r-body{grid-template-columns:var(--v2r-rail-w) minmax(0,1fr)}.v2r--cast .v2r-body{grid-template-columns:minmax(0,1fr) var(--v2r-cast-w)}.v2r--rail.v2r--cast .v2r-body{grid-template-columns:var(--v2r-rail-w) minmax(0,1fr) var(--v2r-cast-w)}.v2r-cast{display:flex;flex-direction:column;min-width:0;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;overscroll-behavior:contain}.v2r-cast-head{display:flex;align-items:flex-start;gap:8px;justify-content:space-between;padding:12px 12px 10px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface-1);z-index:1}.v2r-cast-titles{display:flex;flex-direction:column;line-height:1.25;min-width:0}.v2r-cast-titles strong{font-size:13.5px;font-weight:600}.v2r-cast-titles .faint{font-size:11.5px}.v2r-cast-close{flex-shrink:0}.v2r-cast-body{padding:10px 12px 14px}.v2r-cast .v2r-legend{position:static;margin:0;padding:0;border:0;background:transparent;box-shadow:none}.v2r-cast .v2r-roles{flex-direction:column;align-items:stretch;gap:4px;margin-top:8px}.v2r-cast .v2r-role-wrap{display:flex;width:100%}.v2r-cast .v2r-role-wrap .v2r-role{flex:1}.v2r-cast .v2r-role{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;width:100%;min-height:0;padding:6px 10px;border-radius:var(--radius)}.v2r-cast .v2r-role-wrap .v2r-role{border-radius:var(--radius) 0 0 var(--radius)}.v2r-cast .v2r-role-edit{min-width:32px;border-radius:0 var(--radius) var(--radius) 0}.v2r-cast .v2r-role-chip{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis}.v2r-cast .v2r-role-meta{flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px}.v2r-cast .v2r-role-actor{min-width:0;overflow:hidden;text-overflow:ellipsis}.v2r-cast .v2r-legend-hint{font-size:12px;white-space:normal}.v2r-cast .v2r-legend-conflicts{flex-direction:column;align-items:flex-start;gap:6px}.v2r-legend-all{margin-top:10px;width:100%;justify-content:center}.v2r-role-all{display:inline-flex;align-items:center;justify-content:center;min-width:38px;align-self:stretch;padding:0 6px;border:1px solid var(--border);border-left:0;background:var(--surface-2);color:var(--text-dim);font-size:11.5px;letter-spacing:.02em;transition:background .12s,color .12s}.v2r-role-all:hover{background:var(--accent-soft);color:var(--accent)}.v2r-role-wrap .v2r-role-all:last-child{border-radius:0 var(--radius) var(--radius) 0}.v2r-main{min-width:0}.v2r-rail{display:none;flex-direction:column;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}.v2r--rail .v2r-rail.is-open{display:flex}.v2r-rail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px 10px;border-bottom:1px solid var(--border)}.v2r-rail-book{display:flex;flex-direction:column;min-width:0;line-height:1.25}.v2r-rail-book strong{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2r-rail-book span{font-size:11.5px}.v2r-rail-close{display:none}.v2r-rail-list{list-style:none;margin:0;padding:6px;display:flex;flex-direction:column;gap:1px}.v2r-rail-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:6px 10px;border-radius:var(--radius);border:1px solid transparent;color:var(--text);transition:background .12s,border-color .12s}.v2r-rail-item:hover{background:var(--surface-2)}.v2r-rail-item.is-active{background:var(--accent-soft);border-color:var(--accent-line)}.v2r-rail-item.is-empty{color:var(--text-faint)}.v2r-rail-index{width:28px;flex-shrink:0;color:var(--text-faint);font-size:12px;text-align:right}.v2r-rail-item.is-active .v2r-rail-index{color:var(--accent)}.v2r-rail-title{font-size:13px;line-height:1.3}.v2r-backdrop{display:none}.ui-sheet .v2r-legend{position:static;margin:0;padding:0;border:0;background:transparent;box-shadow:none}.ui-sheet .v2r-roles{margin-top:10px}.ui-sheet .v2r-legend-head{margin-bottom:2px}.v2r-cast-btn{gap:8px}.v2r-legend--print{display:none}.v2r-legend{position:sticky;top:0;z-index:5;padding:8px 12px 10px;margin-bottom:18px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}.v2r-legend-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.v2r-legend-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 8px 0 4px;border:0;background:transparent;color:var(--text);border-radius:var(--radius-sm)}.v2r-legend-toggle:hover{background:var(--surface-2)}.v2r-legend-title{font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--text-faint)}.v2r-legend-count{font-size:11px;background:var(--surface-3);color:var(--text-dim);border-radius:999px;padding:1px 7px}.v2r-legend-caret{color:var(--text-faint);font-size:12px}.v2r-legend-hint{font-size:12px;color:var(--text-dim);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2r-legend--role-mode .v2r-legend-hint{color:var(--accent);font-weight:500}.v2r-legend-clear{margin-left:auto}.v2r-roles{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.v2r-role{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:4px 10px 4px 5px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text);text-align:left;transition:border-color .12s,box-shadow .12s,opacity .12s}.v2r-role:hover{border-color:var(--border-strong)}.v2r-role.is-on{border-color:var(--accent-line);box-shadow:0 0 0 2px var(--accent-soft)}.v2r-legend--role-mode .v2r-role:not(.is-on){opacity:.55}.v2r-role-chip{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:var(--role-color);color:var(--role-text);font-weight:var(--role-weight, 700);font-style:var(--role-style, normal);font-size:12.5px;white-space:nowrap}.v2r-role--unsure .v2r-role-chip{background:transparent;color:var(--amber);border:1.5px dashed var(--amber)}.v2r-role-meta{display:flex;flex-direction:column;line-height:1.2;min-width:0}.v2r-role-actor{font-size:12px;color:var(--text-dim);white-space:nowrap}.v2r-role-n{font-size:11px;color:var(--text-faint)}.v2r-notice{margin:0 auto 16px;max-width:var(--v2r-measure);padding:10px 12px;border-radius:var(--radius);background:var(--amber-soft);color:var(--text);border:1px solid var(--amber);font-size:13.5px}.v2r-page{max-width:var(--v2r-measure);margin:0 auto;font-size:var(--v2r-font);line-height:var(--v2r-lh);color:var(--text);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere}.v2r-h{font-size:1.35em;line-height:1.3;font-weight:600;margin:1.5em 0 .7em;letter-spacing:-.01em}.v2r-h:first-child{margin-top:.2em}.v2r-h--dim{opacity:.45}.v2r-p{margin:0 0 .85em;padding:.1em 0 .1em .7em;border-left:3px solid var(--p-color, transparent);break-inside:avoid;page-break-inside:avoid;transition:opacity .12s}.v2r-p--dim{opacity:.45}.v2r-p--current{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-sm);scroll-margin-block:40vh}.v2r-cursor{display:inline-flex;align-items:center;gap:4px}.v2r-cursor-count{font-size:12px;color:var(--text-dim);min-width:4.5em;text-align:center}.v2r-p--dim:hover{opacity:.8}.v2r-span{background:color-mix(in oklab,var(--role-color) 28%,transparent);font-weight:var(--role-weight, 600);font-style:var(--role-style, normal);border-radius:3px;padding:.05em .2em;-webkit-box-decoration-break:clone;box-decoration-break:clone}.v2r-span--unsure{background:transparent;outline:1.5px dashed var(--amber);outline-offset:1px}.v2r-chip{display:inline-block;vertical-align:.12em;margin-right:.35em;padding:0 .5em;border-radius:999px;font-size:.7em;line-height:1.55;letter-spacing:.01em;font-family:var(--font-sans);font-weight:700;font-style:normal;background:var(--role-color);color:var(--role-text);-webkit-user-select:none;user-select:none}.v2r-span--unsure .v2r-chip{background:transparent;color:var(--amber);border:1px dashed var(--amber)}.v2r-stress{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:.12em}.v2r-hit{background:var(--amber-soft);color:inherit;box-shadow:0 0 0 1px var(--amber);border-radius:2px}.v2r-gap{display:block;width:100%;min-height:40px;margin:.2em 0 .9em;padding:8px 12px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--text-faint);font-size:.8em;text-align:center}.v2r-gap:hover{background:var(--surface-2);color:var(--text-dim)}.v2r-empty{display:grid;place-items:center;gap:12px;text-align:center;padding:48px 20px;color:var(--text-dim)}.v2r-empty svg{width:32px;height:32px;opacity:.5}.v2r-empty p{margin:0;font-size:15px}.v2r-books{max-width:640px;margin:0 auto}.v2r-books-title{font-size:22px;margin:0 0 4px;font-weight:600}.v2r-books-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.v2r-book{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 14px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .12s,background .12s}.v2r-book:hover{border-color:var(--accent-line);background:var(--surface-2)}.v2r-book strong{font-weight:600}@media (max-width: 760px){.v2r{--v2r-font: 18px}.v2r--font-s{--v2r-font: 16px}.v2r--font-l{--v2r-font: 21px}.v2r-body,.v2r--rail .v2r-body,.v2r--cast .v2r-body,.v2r--rail.v2r--cast .v2r-body{grid-template-columns:minmax(0,1fr)}.v2r-cast{display:none}.v2r-toolbar{padding:10px;border-radius:var(--radius);gap:8px}.v2r-toolbar-row--title{flex-wrap:wrap}.v2r-title{flex-basis:100%;order:-1}.v2r-title-chapter{white-space:normal;font-size:16px}.v2r-nav--top{margin-left:auto}.v2r-nav-label{display:none}.v2r-toolbar-more{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-basis:100%}.v2r-more{margin-left:auto}.v2r-btn,.v2r-select,.v2r-search,.v2r-legend-toggle{min-height:40px}.v2r-seg-btn{min-width:40px;height:34px}.v2r-search{max-width:none;flex-basis:100%}.v2r-print{margin-left:0}.v2r-radius-label{display:none}.v2r-legend{border-radius:var(--radius);box-shadow:var(--shadow-1);padding:6px 10px 8px}.v2r-legend-hint{flex-basis:100%}.v2r-roles{gap:5px}.v2r-role-actor{max-width:34vw;overflow:hidden;text-overflow:ellipsis}.v2r-page{-webkit-hyphens:auto;hyphens:auto}.v2r-p{padding-left:.5em}.v2r-rail{display:flex;position:fixed;top:0;left:0;bottom:0;z-index:40;width:min(86vw,340px);max-height:none;border-radius:0;transform:translate(-104%);transition:transform .16s ease-out;box-shadow:var(--shadow-2)}.v2r-rail.is-mobile-open{transform:none}.v2r-rail-close{display:inline-flex}.v2r-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;background:#00000073}.v2r-nav--bottom{flex-direction:column}.v2r-nav--bottom .v2r-btn{width:100%;min-height:44px}}.v2r--editor .v2r-word{cursor:pointer;border-radius:3px;transition:background .1s,box-shadow .1s}.v2r--editor .v2r-word:hover{background:var(--accent-soft)}.v2r--editor .v2r-word.is-active{background:var(--accent-soft);box-shadow:0 0 0 1.5px var(--accent-line)}.v2r--editor .v2r-remark{cursor:pointer;border-radius:2px;text-decoration:underline;text-decoration-style:dashed;text-decoration-color:var(--text-faint);text-underline-offset:.16em;transition:background .1s}.v2r--editor .v2r-remark:hover{background:var(--accent-soft)}.v2r-remark-btn{position:fixed;z-index:12;box-shadow:var(--shadow-2)}.v2r-editor-btns{display:inline-flex;gap:6px}.v2r-editor-btn{white-space:nowrap}.v2r-dock{position:sticky;top:8px;z-index:8;display:flex;flex-direction:column;gap:10px;margin-bottom:var(--gap);padding:10px 14px;background:var(--surface-1);border:1px solid var(--accent-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);outline:none}.v2r-dock:focus-visible{box-shadow:var(--shadow-2),0 0 0 3px var(--accent-soft)}.v2r--editing .v2r-legend{position:static}.v2r-dock-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.v2r-dock-title{font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--text-faint)}.v2r-dock-preview{font-size:20px;font-weight:600;letter-spacing:.01em;color:var(--text)}.v2r-dock-source{font-size:12.5px;color:var(--text-dim);flex:1;min-width:0}.v2r-dock-close{margin-left:auto}.v2r-dock-hint{font-size:12px;color:var(--text-faint)}.v2r-letters{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.v2r-letter{min-width:40px;height:40px;padding:0 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-size:18px;font-weight:600;line-height:1;transition:background .1s,border-color .1s}.v2r-letter:disabled{opacity:.4;cursor:default}.v2r-letter--vowel:not(:disabled):hover{border-color:var(--accent-line);background:var(--accent-soft)}.v2r-letter.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.v2r-letter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.v2r-dock-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.v2r-role-wrap{display:inline-flex;align-items:stretch}.v2r-role-wrap .v2r-role{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.v2r-role-edit{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0;border:1px solid var(--border);border-radius:0 999px 999px 0;background:var(--surface-2);color:var(--text-faint);transition:background .12s,color .12s,border-color .12s}.v2r-role-edit svg{width:15px;height:15px}.v2r-role-edit:hover:not(:disabled){background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}.v2r-role-edit:disabled{opacity:.45;cursor:default}.v2r-role-edit:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.v2r-role-wrap.is-on .v2r-role-edit{border-color:var(--accent-line)}.v2r-legend--role-mode .v2r-role-wrap:not(.is-on){opacity:.55}.v2r-legend--role-mode .v2r-role-wrap:not(.is-on) .v2r-role{opacity:1}.v2r-legend-conflicts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);font-size:12.5px;color:var(--text-dim)}.v2r-legend-conflicts.is-bad{color:var(--text)}.v2r-legend-conflicts.is-bad strong{color:var(--danger)}.v2r-legend-conflicts-list{color:var(--text-dim);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2r-legend-conflicts-total{color:var(--text-faint);font-weight:400}.v2r-legend-conflicts.is-bad .v2r-legend-conflicts-total .num{color:var(--text-faint)}.v2r-role--foreign .v2r-role-chip{background:var(--surface-3);color:var(--text-dim);border:1px solid var(--border-strong);font-weight:600;font-style:normal}.v2r-role--foreign{border-style:dashed}.v2r-pick--create .v2r-role-chip{background:var(--accent-soft);color:var(--accent);border:1px dashed var(--accent-line);font-weight:600}.v2r-pick--create .v2r-role-actor{color:var(--accent)}.v2r-chip--btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;font:inherit;font-size:.7em;line-height:1.55;font-family:var(--font-sans);font-weight:700;padding:.25em .5em;margin:-.25em .35em -.25em 0;transition:box-shadow .1s}.v2r-chip--btn{position:relative}.v2r-chip--btn:before{content:"";position:absolute;top:-9px;right:-4px;bottom:-9px;left:-4px}.v2r-chip--btn:hover,.v2r-chip--btn.is-active{box-shadow:0 0 0 2px var(--accent-line)}.v2r-chip--btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.v2r-span--unsure .v2r-chip--btn{padding-top:calc(.25em - 1px);padding-bottom:calc(.25em - 1px)}.v2r-p,.v2r-h{position:relative}.v2r-role-hint{position:absolute;right:100%;top:.35em;margin-right:18px;display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:28px;padding:0 9px;border:1px dashed var(--border-strong);border-radius:999px;background:var(--surface-1);color:var(--text-faint);font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1;white-space:nowrap;opacity:0;transition:opacity .12s,background .12s,border-color .12s,color .12s}.v2r-role-hint:before{content:"";position:absolute;top:-6px;right:-4px;bottom:-6px;left:-4px}.v2r-p:hover .v2r-role-hint,.v2r-role-hint:focus-visible,.v2r-role-hint.is-active{opacity:1}.v2r-role-hint:hover,.v2r-role-hint.is-active{color:var(--text);border-color:var(--accent-line);background:var(--accent-soft)}.v2r-role-hint:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.v2r-p--picking{background:var(--accent-soft);border-radius:0 var(--radius) var(--radius) 0}.v2r-op{position:absolute;left:-12px;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--blue);cursor:help}.v2r-h .v2r-op{top:.55em}.v2r-dock--role .v2r-dock-source strong{color:var(--text);font-weight:600}.v2r-dock--role .v2r-seg{flex-wrap:wrap}.v2r-dock--role .v2r-seg-btn{padding:0 10px}.v2r-dock--role .v2r-seg-btn:disabled{opacity:.45;cursor:default}.v2r-dock--role .v2r-seg-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.v2r-dock-quote{margin:0;font-size:13px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2r-dock-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.v2r-search--dock{max-width:320px}.v2r-pick-list{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;max-height:152px;overflow:auto;padding:2px;margin:-2px}.v2r-pick{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:4px 10px 4px 5px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text);text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s,background .12s}.v2r-pick:hover,.v2r-pick.is-active{border-color:var(--accent-line);box-shadow:0 0 0 2px var(--accent-soft)}.v2r-pick.is-current{border-style:dashed}.v2r-pick.is-current .v2r-role-actor:after{content:" · сейчас";color:var(--text-faint)}.v2r-pick--book{background:var(--surface-1)}.v2r-pick:disabled{opacity:.6;cursor:default}.v2r-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#00000073}.v2r-sheet{position:fixed;top:0;right:0;bottom:0;z-index:46;width:min(92vw,440px);display:flex;flex-direction:column;background:var(--surface-1);border-left:1px solid var(--border);box-shadow:var(--shadow-2)}.v2r-sheet-head{display:flex;align-items:flex-start;gap:10px;padding:14px 14px 10px;border-bottom:1px solid var(--border)}.v2r-sheet-titles{flex:1;min-width:0}.v2r-sheet-title{margin:0;font-size:16px;font-weight:600}.v2r-sheet-subtitle{margin-top:2px;font-size:12px;color:var(--text-dim)}.v2r-sheet-close{min-width:40px;min-height:40px}.v2r-sheet-body{flex:1;overflow:auto;padding:12px 14px 20px;display:flex;flex-direction:column;gap:18px}.v2r-sheet-foot{padding:12px 14px;border-top:1px solid var(--border);background:var(--surface-2)}.v2r-sheet-section{display:flex;flex-direction:column;gap:8px}.v2r-sheet-h{margin:0;display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--text-faint)}.v2r-sheet-note{margin:0;font-size:12.5px;color:var(--text-dim)}.v2r-sheet-empty{margin:0;font-size:13px;color:var(--text-faint)}.v2r-sheet-error{margin:0;padding:10px 12px;border-radius:var(--radius);background:var(--danger-soft);color:var(--text);border:1px solid var(--danger);font-size:13px}.v2r-chips{display:flex;flex-wrap:wrap;gap:6px}.v2r-chip-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text);font-size:14px;transition:border-color .12s,background .12s}.v2r-chip-btn:hover{border-color:var(--accent-line);background:var(--accent-soft)}.v2r-chip-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.v2r-chip-n{font-size:11.5px;color:var(--text-faint)}.v2r-kv{margin:0;display:flex;flex-direction:column;gap:2px}.v2r-kv-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:28px;padding:3px 0;border-bottom:1px solid var(--border)}.v2r-kv-row:last-child{border-bottom:0}.v2r-kv dt{font-size:13px;color:var(--text-dim)}.v2r-kv dd{margin:0;font-size:13.5px;text-align:right;word-break:break-word}.v2r-tag{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--text-dim);font-size:12px;font-family:var(--font-mono)}.v2r-summary{margin:0;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:2px}.v2r-summary-text{margin:0;font-size:13px}.v2r-profile-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.v2r-check{display:inline-flex;align-items:center;gap:6px;min-height:40px;font-size:12.5px;color:var(--text-dim);cursor:pointer}.v2r-check input{width:16px;height:16px;accent-color:var(--accent)}@media (max-width: 760px){.v2r-dock{top:4px;padding:8px 10px;border-radius:var(--radius)}.v2r-dock-preview{font-size:18px}.v2r-dock-hint{display:none}.v2r-editor-btns{flex-basis:100%;flex-wrap:wrap}.v2r-editor-btn{flex:1 1 auto;min-width:0}.v2r-sheet{width:100vw;border-left:0}.v2r-role-hint{position:static;opacity:1;margin:0 .4em 0 0;vertical-align:middle;height:26px;min-width:44px}.v2r-op{left:-10px}.v2r-search--dock{max-width:none;flex-basis:100%}.v2r-pick-list{max-height:200px}.v2r-dock--role .v2r-dock-close{order:1}.v2r-dock--role .v2r-seg{order:2;flex-basis:100%}.v2r-dock--role .v2r-seg-btn{flex:1 1 auto}.v2r-dock-row .v2r-dock-hint,.v2r-pick-list .v2r-dock-hint{display:inline}}.v2r-rolecard{max-width:var(--v2r-measure);margin:0 auto 20px;padding:12px 14px;background:var(--surface-1);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius)}.v2r-rolecard p{margin:0}.v2r-rolecard-note{font-size:14px;line-height:1.5;color:var(--text)}.v2r-rolecard-facts{margin-top:4px!important;font-size:12.5px;line-height:1.45;color:var(--text-dim)}.v2r-role-about{display:block;grid-column:1 / -1;margin-top:2px;font-size:11.5px;line-height:1.35;color:var(--text-faint);text-align:left;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.v2r-homo{border-top:1px solid var(--border)}.v2r-homo:first-of-type{border-top:0}.v2r-homo-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;width:100%;padding:9px 2px;text-align:left;background:none;border:0;color:var(--text);cursor:pointer}.v2r-homo-head:hover{background:var(--surface-2)}.v2r-homo-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.v2r-homo-word{font-size:14px;font-weight:600}.v2r-homo-readings{display:inline-flex;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--text-dim)}.v2r-homo-reading .num{color:var(--text-faint)}.v2r-homo-flag{margin-left:auto;font-size:11px;padding:1px 8px;border-radius:999px;background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber)}.v2r-homo-places{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}.v2r-homo-place{padding:9px 11px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.v2r-homo-place.is-rare{border-color:var(--amber);background:var(--amber-soft)}.v2r-homo-text{margin:0 0 7px;font-size:13px;line-height:1.5;color:var(--text-dim)}.v2r-homo-text mark{background:var(--accent-soft);color:var(--text);font-weight:600;border-radius:3px;padding:0 2px}.v2r-homo-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.v2r-homo-where{font-size:11.5px;color:var(--text-faint);margin-right:2px}.v2r-queue-tabs{display:inline-flex;margin-bottom:8px}.v2r-queue-tabs .v2r-seg-btn{display:inline-flex;align-items:center;gap:6px;padding:0 10px;height:30px}.v2r-queue-more{margin-top:10px}.v2r-chip-pair{display:inline-flex;align-items:stretch}.v2r-chip-pair .v2r-chip-btn{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.v2r-chip-skip{display:inline-flex;align-items:center;justify-content:center;min-width:26px;padding:0 4px;font-size:12px;line-height:1;border:1px solid var(--border);border-radius:0 999px 999px 0;background:var(--surface-2);color:var(--text-faint);transition:background .12s,color .12s}.v2r-chip-skip:hover{background:var(--amber-soft);color:var(--amber)}.v2r-chip-skip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.v2r-mine.is-on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.v2r-findgroup{display:flex;flex-direction:column;gap:4px;margin-bottom:18px}.v2r-findgroup-title{margin:0 0 4px;font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--text-faint)}.v2r-findgroup .v2r-search{flex:none;max-width:none;margin-bottom:6px}.v2r-findrole{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;width:100%;min-height:44px;padding:8px 11px;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;transition:border-color .12s,background .12s}.v2r-findrole:hover{border-color:var(--accent-line);background:var(--surface-3)}.v2r-findrole:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.v2r-findrole-name{display:inline-flex;align-items:center;gap:7px;min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2r-findrole-dot{width:10px;height:10px;border-radius:50%;flex:none}.v2r-findrole-meta{font-size:11.5px;color:var(--text-dim);white-space:nowrap;align-self:center}.v2r-findrole-actor{grid-column:1 / -1;font-size:11.5px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2r-find-note{margin:0 0 10px;font-size:13px;color:var(--text-dim)}.v2r--rolescript .v2r-page{max-width:var(--v2r-measure)}.v2r-rolescript-count{font-size:12.5px;color:var(--text-dim);flex-shrink:0}.v2r-rolescript-chapter{margin:0 0 26px}.v2r-rolescript-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:26px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-faint)}.v2r-rolescript-h a{color:var(--text-dim)}.v2r-rolescript-h a:hover{color:var(--accent)}.v2r-rolescript-chapter:first-child .v2r-rolescript-h{margin-top:0}@media (max-width: 760px){.v2r-rolescript-h{flex-wrap:wrap;gap:2px 12px}.v2r-rolescript-h a{flex-basis:100%}.v2r-rolescript-h .num{white-space:nowrap}.v2r--rolescript .v2r-cursor-count{min-width:3.5em}}.v2r-rolescript-island{border-top:1px dashed var(--border);margin-top:14px;padding-top:14px}.v2r-dispute-list{display:flex;flex-direction:column;gap:6px}.v2r-dispute{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);cursor:pointer;transition:border-color .12s,background .12s}.v2r-dispute:hover{border-color:var(--accent-line);background:var(--surface-3)}.v2r-dispute-head{display:flex;align-items:baseline;gap:8px;justify-content:space-between}.v2r-dispute-tag{font-size:11px;letter-spacing:.02em;padding:1px 7px;border-radius:999px;background:var(--surface-3);color:var(--text-dim);border:1px solid var(--border)}.v2r-dispute-tag--unsure{color:var(--amber);background:var(--amber-soft);border-color:var(--amber);border-style:dashed}.v2r-dispute-where{font-size:11px;color:var(--text-faint);flex-shrink:0}.v2r-dispute-text{font-size:13px;line-height:1.45;color:var(--text-dim);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.v2r-split{display:flex;align-items:stretch;gap:0;min-width:0;height:calc(100vh - 260px);min-height:320px}.v2r-pane{display:flex;flex-direction:column;min-width:0;flex-grow:0;flex-shrink:0;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg)}.v2r-pane-label{padding:8px 14px 7px;border-bottom:1px solid var(--border);font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--text-faint)}.v2r-pane-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px 20px 40px}.v2r--compare .v2r-page{max-width:none}.v2r--compare .v2r-pane-scroll{scrollbar-gutter:stable}.v2r-splitter{flex:0 0 18px;align-self:stretch;display:flex;align-items:center;justify-content:center;border:0;padding:0;background:transparent;cursor:col-resize;touch-action:none}.v2r-splitter span{display:block;width:3px;height:100%;border-radius:999px;background:var(--border);transition:background .12s ease-out}.v2r-splitter:hover span,.v2r-splitter:focus-visible span{background:var(--accent)}.v2r-splitter:focus-visible{outline:none}body.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.v2r-src-h,.v2r-src-p{font-size:var(--v2r-font);line-height:var(--v2r-lh);color:var(--text-dim);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere}.v2r-src-h{font-size:1.35em;font-weight:600;line-height:1.3;margin:1.5em 0 .7em;color:var(--text)}.v2r-src-h:first-child{margin-top:.2em}.v2r-src-p{margin:0 0 .85em}.v2r-src-p--gap{border-left:3px solid var(--amber);padding-left:.7em;color:var(--text)}.v2r-src-gap-tag{display:inline-block;margin-right:8px;padding:1px 7px;border-radius:999px;background:var(--amber-soft);color:var(--amber);border:1px dashed var(--amber);font-size:11px;letter-spacing:.02em;vertical-align:2px}.v2r-src-empty{color:var(--text-faint);font-size:13px}.v2r-compare-btns{display:inline-flex;gap:6px}.v2r--compare .v2r-nav--bottom{display:none}.v2r--compare .v2r-rail{max-height:var(--v2r-avail, calc(100vh - 24px) )}.v2r--compare .v2r-cast{display:none}.v2r--compare.v2r--cast .v2r-body{grid-template-columns:minmax(0,1fr)}.v2r--compare.v2r--rail.v2r--cast .v2r-body{grid-template-columns:var(--v2r-rail-w) minmax(0,1fr)}@media (max-width: 1100px){.v2r--compare.v2r--rail .v2r-body{grid-template-columns:minmax(0,1fr)}.v2r--compare .v2r-rail{display:none}}@media (prefers-reduced-motion: reduce){.v2r-rail,.v2r-role-hint,.v2r-chip--btn,.v2r-pick,.v2r-p{transition:none}}@media print{:root,:root[data-theme=light]{--bg: #ffffff;--surface-1: #ffffff;--surface-2: #ffffff;--surface-3: #f2f2f2;--text: #000000;--text-dim: #333333;--text-faint: #666666;--border: #cccccc;--border-strong: #999999;--shadow-1: none;--shadow-2: none}*,*:before,*:after{print-color-adjust:exact;-webkit-print-color-adjust:exact}.v2r-legend--print{display:block}.ui-sheet,.ui-sheet-backdrop,.topbar,.tabnav,.v2r-toolbar,.v2r-rail,.v2r-backdrop,.v2r-nav,.v2r-gap,.v2r-legend-clear,.v2r-legend-hint,.v2r-legend-caret,.tweaks-fab,#tweaks,.v2r-dock,.v2r-sheet,.v2r-sheet-backdrop,.v2r-role-edit,.v2r-legend-conflicts,.v2r-role-hint,.v2r-op,.books-palette-modal-backdrop{display:none!important}.v2r-role-wrap .v2r-role{border-radius:999px;border-right-width:1px}.v2r--editor .v2r-word,.v2r--editor .v2r-word.is-active{background:transparent;box-shadow:none}.v2r-chip--btn,.v2r-chip--btn.is-active{box-shadow:none}.v2r-p--picking{background:transparent}.content{padding:0}.v2r{--v2r-font: 12pt;--v2r-lh: 1.55;--v2r-measure: none}.v2r-body,.v2r--rail .v2r-body{grid-template-columns:minmax(0,1fr)}.v2r-legend{position:static;break-after:avoid;page-break-after:avoid;border-radius:0;padding:0 0 8pt;margin-bottom:12pt;border-width:0 0 1px}.v2r-legend--role-mode .v2r-role:not(.is-on){opacity:1}.v2r-role{min-height:0;padding:2pt 6pt 2pt 2pt}.v2r-page{max-width:none}.v2r-p{break-inside:avoid;page-break-inside:avoid}.v2r-p--dim,.v2r-h--dim{opacity:.7}.v2r-hit{box-shadow:none;background:transparent}.v2r-splitter,.v2r-pane-label,.v2r-split>.v2r-pane:first-child{display:none!important}.v2r-split{display:block;height:auto;min-height:0}.v2r-split>.v2r-pane{display:block;flex-basis:auto!important;border:0;background:transparent}.v2r-pane-scroll{overflow:visible;padding:0}a{color:inherit}}.asr{display:flex;flex-direction:column;min-width:0}.asr-note{margin:0 0 12px;font-size:12.5px;line-height:1.45;color:var(--text-muted);max-width:70ch}.asr-book{width:min(280px,100%);height:36px}.asr-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.asr-count{font-size:12px;color:var(--text-faint)}.asr-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.asr-table .ui-table{table-layout:fixed;width:100%;min-width:0}.asr-table .ui-table-wrap{overflow-x:hidden}.asr-table .asr-col-index{width:52px}.asr-table .asr-col-roles{width:84px}.asr-table .asr-col-bar{width:13%}.asr-table .asr-col-get{width:176px}.asr-table .asr-col-integrity{width:11%}.asr-table .asr-col-mirror{width:10%}.asr-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.asr-of{color:var(--text-faint)}.asr-bar{position:relative;display:block;height:18px;border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.asr-bar-fill{position:absolute;inset:0 auto 0 0;background:var(--accent);opacity:.35;transition:width var(--ui-motion)}.asr-bar-fill.is-ready{opacity:.7}.asr-bar-value{position:relative;display:block;line-height:18px;padding-left:8px;font-size:11.5px;color:var(--text-dim)}.asr-get{font-size:12px;color:var(--accent);text-decoration:none;white-space:nowrap;padding:3px 8px;border-radius:var(--radius-sm)}.asr-get:hover{background:var(--surface-2)}.asr-table .asr-col-lines{width:150px}.asr-run{border:0;background:transparent;color:var(--accent);font:inherit;font-size:12px;cursor:pointer;padding:3px 6px;border-radius:var(--radius-sm)}.asr-run:hover:not(:disabled){background:var(--surface-2)}.asr-run:disabled{color:var(--text-faint);cursor:default}.asr-holes{color:var(--amber)}.asr-holes-count{font-size:11px}.asr-links{display:inline-flex;gap:2px}.asr-done{color:var(--text-faint);font-size:12px}.asr-broken{color:var(--danger)}.asr-project{color:var(--text-faint);font-size:.85em}.lg{position:relative;min-height:100vh;background:var(--bg);display:grid;place-items:center;padding:48px 16px}.lg-theme{position:absolute;top:16px;right:16px}.lg-col{width:100%;max-width:360px;display:flex;flex-direction:column;gap:20px}.lg-brand{display:flex;align-items:center;gap:11px}.lg-brand-text{display:flex;flex-direction:column;line-height:1.15}.lg-title{margin:6px 0 0;font-size:22px;font-weight:600;letter-spacing:-.01em;line-height:1.2}.lg-form{display:flex;flex-direction:column;gap:14px}.lg-form .ui-btn{margin-top:4px}.lg-or{display:flex;align-items:center;gap:12px;color:var(--text-faint);font-size:12px}.lg-or:before,.lg-or:after{content:"";flex:1;height:1px;background:var(--border)}.lg-tg{display:flex;flex-direction:column;gap:8px}.lg-tg-widget{min-height:0}.lg-tg-widget:not(:empty){min-height:40px}.lg-tg-note{margin:0;font-size:12.5px;color:var(--text-faint);line-height:1.45}.usr{display:flex;flex-direction:column;gap:var(--gap);width:100%;min-width:0;max-width:1100px;margin:0 auto}.usr-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.usr-head h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.usr-count{font-size:12.5px;color:var(--text-dim)}.usr-head .usr-spacer{flex:1}.usr-search{display:flex;align-items:center;gap:8px;flex:1;min-width:180px;max-width:320px;height:36px;padding:0 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-faint)}.usr-search svg{width:15px;height:15px;flex:none}.usr-search:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.usr-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);outline:none;font-size:13.5px}.usr-name{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25;min-width:0;width:100%;padding:2px 4px;margin-left:-4px;text-align:left;background:none;border:1px solid transparent;border-radius:var(--radius);cursor:pointer}.usr-name:hover{background:var(--surface-2);border-color:var(--border)}.usr-name:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.usr-name strong{font-size:13.5px;font-weight:600}.usr-login{font-size:11.5px;color:var(--text-dim);font-family:var(--font-mono)}.usr-auth{font-size:12px;color:var(--text-dim);white-space:nowrap}.usr-twin{display:block;font-size:11px;color:var(--text-faint)}.usr-roles{display:inline-flex;gap:4px;flex-wrap:wrap}.usr-role{font-size:11px;padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--text-dim);border:1px solid var(--border)}.usr-role--admin{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.usr-off{opacity:.55}.usr-actions{display:inline-flex;gap:6px;flex-wrap:nowrap;justify-content:flex-end;align-items:center;white-space:nowrap}.usr-rolepick{height:30px;padding:0 6px;font-size:12px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none}.usr-rolepick:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.usr-secret{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent-line)}.usr-secret code{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--text)}.usr-secret-note{font-size:12px;color:var(--text-dim)}.usr-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text-dim)}.usr-bulk strong{color:var(--text)}@media (max-width: 760px){.usr-head{align-items:stretch}.usr-search{max-width:none;flex-basis:100%}.usr-actions{justify-content:flex-start}.usr .ui-table thead th,.usr .ui-table tbody td{padding-left:8px;padding-right:8px}}.usr-ways{display:inline-flex;gap:4px;flex-wrap:wrap}.usr-way{font-size:11.5px;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-dim);white-space:nowrap}.usr-way--tg{color:var(--accent)}.usr-merge-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 11px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin-bottom:12px}.usr-merge-search svg{width:15px;height:15px;flex-shrink:0}.usr-merge-search input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;color:var(--text);font:inherit}.usr-merge-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.usr-merge-pick{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;cursor:pointer}.usr-merge-pick:hover:not(:disabled){background:var(--surface-2)}.usr-merge-pick.is-suggested{border-color:var(--border-strong)}.usr-merge-pick:disabled{opacity:.5;cursor:default}.usr-merge-hint{margin-left:auto;font-size:11.5px;color:var(--text-faint);white-space:nowrap}.usr-merge-empty{padding:10px;color:var(--text-faint);font-size:13px}.usr-way--tg,.usr-way--add{border:0;font:inherit;cursor:pointer}.usr-way--add{color:var(--text-faint);border:1px dashed var(--border-strong)}.usr-way--add:hover,.usr-way--tg:hover{background:var(--surface-1);color:var(--accent)}.usr-way--tg:disabled,.usr-way--add:disabled{cursor:default;opacity:.6}.whitelist-linked{color:var(--text-dim)}.whitelist-loose{color:var(--amber)}.usr-reach-note{font-size:12.5px;line-height:1.5;color:var(--text-dim);margin:0 0 14px}.usr-reach-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.usr-reach{display:flex;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.usr-reach:last-child{border-bottom:0}.usr-reach-who{flex:1;min-width:0}.usr-reach-state{font-size:12px;color:var(--text-faint);white-space:nowrap}.usr-reach-state--bad{color:var(--amber)}small{color:var(--text-dim)}.shell{width:100%;max-width:none;margin:0;padding:24px 28px 28px}.content,.grid{display:grid;gap:16px}.grid{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.panel{padding:20px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-1);box-shadow:0 24px 80px #00000047}.panel h2{margin-top:0}.panel.error{border-color:var(--danger)}.toast-stack{position:fixed;top:18px;right:18px;z-index:70;display:grid;gap:12px;width:min(360px,calc(100vw - 24px))}.toast{padding:14px 16px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-2);box-shadow:0 18px 48px #00000052;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;gap:4px;animation:toast-in .18s ease-out}.toast strong{font-size:14px}.toast span{color:var(--text-dim);font-size:13px;line-height:1.4}.toast-success{border-color:var(--border-strong)}.toast-error{border-color:var(--danger)}.toast-info{border-color:var(--blue)}.list li{display:flex;flex-direction:column;gap:4px}.list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.list.compact li{gap:2px}.panel-sub{padding:16px}.panel-sub h3{margin-top:0}.panel button{box-shadow:0 0 #0000;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease,background .14s ease}.panel button:hover{border-color:var(--accent);box-shadow:0 0 var(--glow, 16px) var(--accent);transform:translateY(-1px)}.char-memory-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}.char-memory-hero h2{margin:0 0 6px}.char-memory-hero p{margin:0;color:var(--text-dim)}.char-memory-hero-meta{display:grid;gap:8px;min-width:240px}.char-memory-hero-meta span{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-family:IBM Plex Mono,Consolas,monospace;font-size:12px}.char-memory-hero-meta .char-memory-meta-alert{border-color:var(--amber);background:var(--surface-2);color:var(--amber)}.char-memory-hero-meta strong{color:var(--blue);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.char-memory-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(min(320px,100%),.75fr);gap:16px}.char-memory-editor-panel,.char-memory-guide-panel{display:grid;gap:12px;align-content:start}.char-memory-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:start}.char-memory-toolbar-copy{display:grid;gap:4px}.char-memory-toolbar-copy span{color:var(--text-dim);font-size:13px;line-height:1.35}.char-memory-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.char-memory-actions .muted-action{border-color:var(--blue);color:var(--blue)}.char-memory-editor{width:100%;min-height:68vh;resize:vertical;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);padding:14px;font-family:IBM Plex Mono,Consolas,monospace;font-size:14px;line-height:1.55}.char-memory-editor-meta{display:flex;flex-wrap:wrap;gap:8px}.char-memory-editor-meta span{padding:7px 10px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--accent);font-family:IBM Plex Mono,Consolas,monospace;font-size:12px}.char-memory-guide-block{display:grid;gap:8px;padding:12px;border:1px solid var(--border-strong);background:var(--surface-2)}.char-memory-guide-block h3{margin:0;font-size:16px}.char-memory-preview-summary{display:grid;gap:8px}.char-memory-preview-summary span,.char-memory-preview-item{padding:9px 10px;border:1px solid var(--border-strong);background:var(--surface-2);font-family:IBM Plex Mono,Consolas,monospace;font-size:12px}.char-memory-preview-list{display:grid;gap:8px}.char-memory-preview-item{display:grid;gap:4px}.char-memory-preview-head{display:flex;justify-content:space-between;gap:10px}.char-memory-preview-item small,.char-memory-preview-note{color:var(--text-dim);line-height:1.4}.preview-create{border-color:var(--accent);color:var(--accent)}.preview-update{border-color:var(--amber);color:var(--amber)}.preview-remove{border-color:var(--danger);color:var(--danger)}.preview-unchanged{border-color:var(--text-dim);color:var(--text-dim)}.char-memory-preview-item.preview-create{border-color:var(--accent)}.char-memory-preview-item.preview-update{border-color:var(--amber)}.char-memory-preview-item.preview-remove{border-color:var(--danger)}.char-memory-preview-item.preview-unchanged{border-color:var(--text-dim)}.char-memory-template{margin:0;padding:12px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-family:IBM Plex Mono,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap}.char-memory-links{display:grid;gap:8px}.char-memory-links a{color:var(--text-dim)}.panel button{min-height:34px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface-2);color:inherit;padding:0 12px;cursor:pointer}.panel button:disabled{opacity:.6;cursor:not-allowed}.panel button.danger{border-color:var(--danger)}.panel textarea,.panel input,.panel select{width:100%;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface-2);color:inherit;padding:9px 10px}.list li{padding-bottom:12px;border-bottom:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.form-grid label{display:grid;gap:6px}.form-grid input,.form-grid select,.form-actions button,.whitelist-row button{min-height:36px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface-2);color:inherit;padding:0 12px}.form-actions{display:flex;align-items:end}.whitelist-row button{width:fit-content;min-height:32px}@media (max-width: 900px){.shell{padding:20px}.char-memory-hero,.char-memory-layout{grid-template-columns:1fr}.char-memory-toolbar{flex-direction:column}.char-memory-actions{justify-content:stretch}.char-memory-actions button{width:100%}.form-grid{grid-template-columns:1fr}}.skeleton{position:relative;overflow:hidden;border-radius:8px;background:var(--border-strong)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--border-strong),transparent);animation:skeleton-shimmer 1.3s ease-in-out infinite}.skeleton-panel{min-height:150px}.skeleton-title{height:22px;width:45%;margin-bottom:18px}.skeleton-line{height:13px;margin-bottom:11px}.skeleton-label{display:block;margin-top:16px;opacity:.6;font-size:13px;letter-spacing:.02em}.error-boundary-detail{white-space:pre-wrap;opacity:.7;font-size:12px;margin:10px 0 14px}@media (prefers-reduced-motion: reduce){.skeleton:after{animation:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes skeleton-shimmer{to{transform:translate(100%)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}button{font:inherit;color:inherit;cursor:pointer}input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft)}:root{--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--accent-h: 154;--accent: oklch(.68 .13 var(--accent-h));--accent-press: oklch(.62 .13 var(--accent-h));--accent-soft: oklch(.68 .13 var(--accent-h) / .16);--accent-line: oklch(.68 .13 var(--accent-h) / .4);--on-accent: #07120d;--bg: #0c1210;--surface-1: #121917;--surface-2: #18211e;--surface-3: #1e2825;--border: rgba(255,255,255,.07);--border-strong: rgba(255,255,255,.13);--text: #e7efe9;--text-dim: #9aaaa1;--text-faint: #66766d;--amber: oklch(.78 .12 78);--amber-soft: oklch(.78 .12 78 / .15);--blue: oklch(.72 .11 250);--blue-soft: oklch(.72 .11 250 / .15);--danger: oklch(.68 .16 25);--danger-soft: oklch(.68 .16 25 / .15);--shadow-1: 0 1px 2px rgba(0,0,0,.3);--shadow-2: 0 8px 28px rgba(0,0,0,.38);--radius: 8px;--radius-sm: 6px;--radius-lg: 12px;--row-h: 42px;--pad: 14px;--gap: 14px;color-scheme:dark}:root[data-theme=light]{--accent: oklch(.58 .13 var(--accent-h));--accent-press: oklch(.52 .13 var(--accent-h));--accent-soft: oklch(.58 .13 var(--accent-h) / .13);--accent-line: oklch(.58 .13 var(--accent-h) / .42);--on-accent: #ffffff;--bg: #eef1ee;--surface-1: #ffffff;--surface-2: #f5f7f5;--surface-3: #ecefec;--border: rgba(18,28,23,.11);--border-strong: rgba(18,28,23,.2);--text: #16201b;--text-dim: #51635a;--text-faint: #8a9890;--amber: oklch(.62 .13 70);--amber-soft: oklch(.62 .13 70 / .14);--blue: oklch(.55 .13 250);--blue-soft: oklch(.55 .13 250 / .12);--danger: oklch(.55 .18 25);--danger-soft: oklch(.55 .18 25 / .12);--shadow-1: 0 1px 2px rgba(20,32,27,.06);--shadow-2: 0 10px 30px rgba(20,32,27,.1);--glow: 0px;color-scheme:light}:root[data-density=compact]{--row-h: 36px;--pad: 11px;--gap: 10px}:root[data-density=spacious]{--row-h: 50px;--pad: 18px;--gap: 18px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app{display:grid;grid-template-rows:auto auto 1fr;min-height:100vh}.topbar{display:flex;align-items:center;gap:20px;height:56px;padding:0 20px;background:var(--surface-1);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}.brand-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:var(--accent);color:var(--on-accent);flex-shrink:0}.brand-mark svg{width:17px;height:17px;display:block}.brand-text{display:flex;flex-direction:column;line-height:1.15;white-space:nowrap}.brand-name{font-size:13px;font-weight:700;letter-spacing:.12em;white-space:nowrap}.brand-sub{font-size:10px;color:var(--text-faint);letter-spacing:.06em;font-family:var(--font-mono)}.topbar-search{flex:1;max-width:380px;display:flex;align-items:center;gap:8px;height:34px;padding:0 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-faint)}.topbar-search svg{width:15px;height:15px;flex-shrink:0}.topbar-search input{flex:1;border:0;background:transparent;color:var(--text);outline:none;font-size:13px}.topbar-search input::placeholder{color:var(--text-faint)}.topbar-search kbd{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);border:1px solid var(--border);border-radius:4px;padding:1px 5px;background:var(--surface-1)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.theme-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:2px}.theme-toggle button{width:30px;height:28px;display:grid;place-items:center;border:0;background:transparent;border-radius:5px;color:var(--text-faint);transition:background .12s,color .12s}.theme-toggle button svg{width:15px;height:15px}.theme-toggle button.is-active{background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-1)}.userbox{display:flex;align-items:center;gap:9px;padding:4px 6px 4px 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2)}.userbox-info{display:flex;flex-direction:column;line-height:1.15;text-align:right}.userbox-info strong{font-size:12.5px;font-weight:600}.userbox-info span{font-size:10.5px;color:var(--text-faint)}.avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono)}.tabnav{display:flex;align-items:stretch;gap:2px;padding:0 14px;background:var(--surface-1);border-bottom:1px solid var(--border);overflow-x:auto}.tabnav::-webkit-scrollbar{height:0}.tab{position:relative;display:inline-flex;align-items:center;gap:7px;padding:0 13px;height:42px;border:0;background:transparent;color:var(--text-dim);font-size:13px;font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;transition:color .12s}.tab svg{width:15px;height:15px;opacity:.85}.tab:hover{color:var(--text)}.tab.is-active{color:var(--text);border-bottom-color:var(--accent)}.tab .tab-badge{font-family:var(--font-mono);font-size:10.5px;background:var(--surface-3);color:var(--text-dim);border-radius:999px;padding:1px 6px}.tab.is-active .tab-badge{background:var(--accent-soft);color:var(--accent)}.tabnav .tab-spacer{flex:1}.tab.tab-muted{color:var(--text-faint)}.content{padding:22px;min-height:0}.content-wide{max-width:1320px;margin:0 auto}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.panel-pad{padding:var(--pad)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:13px;font-weight:500;white-space:nowrap;transition:background .12s,border-color .12s,transform 80ms}.btn svg{width:15px;height:15px}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:transparent;color:var(--on-accent);font-weight:600}.btn-primary:hover{background:var(--accent-press)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-sm{height:30px;padding:0 11px;font-size:12.5px}.btn-icon{width:32px;padding:0}.chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:500;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--text-dim);font-weight:500}.input{height:36px;padding:0 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:border-color .12s,box-shadow .12s;width:100%}.input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.input-mono{font-family:var(--font-mono)}textarea.input{height:auto;padding:9px 11px;resize:vertical;line-height:1.5}.status{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px 0 8px;border-radius:999px;font-size:11.5px;font-weight:500;white-space:nowrap;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.status .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.status-done,.status-approved,.status-final_done,.status-published,.status-approved_audio{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.status-processing,.status-char_extracting,.status-author_review,.status-pending_review,.status-needs_review{color:var(--blue);background:var(--blue-soft);border-color:transparent}.status-queued,.status-waiting,.status-uploaded{color:var(--text-dim)}.status-needs_fix,.status-stalled,.status-stopping,.status-partially_approved{color:var(--amber);background:var(--amber-soft);border-color:transparent}.status-failed,.status-rejected_audio,.status-stopped{color:var(--danger);background:var(--danger-soft);border-color:transparent}.bar{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent);border-radius:999px}.bar.amber>i{background:var(--amber)}.table-wrap{overflow:auto;border-radius:var(--radius-lg)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl thead th{position:sticky;top:0;z-index:1;text-align:left;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);padding:10px 12px;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}table.tbl thead th.r,table.tbl td.r{text-align:right}table.tbl tbody td{padding:0 12px;height:var(--row-h);border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}table.tbl tbody tr:hover td{background:var(--surface-2)}table.tbl tbody tr:last-child td{border-bottom:0}.cell-cell-input{width:100%;height:30px;padding:0 8px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);outline:none;transition:border-color .12s,background .12s}.cell-cell-input:hover{border-color:var(--border)}.cell-cell-input:focus{border-color:var(--accent-line);background:var(--surface-1);box-shadow:0 0 0 2px var(--accent-soft)}td .cell-num{width:78px;text-align:right;font-family:var(--font-mono)}.section-title{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);font-weight:600;margin:0 0 10px}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.divider{height:1px;background:var(--border);border:0;margin:0}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg)}.login-side{position:relative;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;background:var(--surface-1);border-right:1px solid var(--border);overflow:hidden}.login-side:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(110% 80% at 12% 8%,var(--accent-soft),transparent 55%);pointer-events:none}.login-brand{display:flex;align-items:center;gap:13px;position:relative}.login-brand .brand-mark{width:38px;height:38px}.login-brand .brand-mark svg{width:22px;height:22px}.login-brand h1{font-size:16px;letter-spacing:.13em;margin:0;font-weight:700;white-space:nowrap}.login-brand>div{display:flex;flex-direction:column}.login-brand p{margin:2px 0 0;font-size:11px;color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.05em}.login-pitch{position:relative;max-width:460px}.login-pitch h2{font-size:30px;line-height:1.18;margin:0 0 14px;font-weight:600;letter-spacing:-.01em}.login-pitch p{color:var(--text-dim);font-size:15px;margin:0;line-height:1.6}.login-flow{position:relative;display:flex;flex-wrap:wrap;gap:8px}.login-flow .chip{height:28px}.login-foot{position:relative;font-size:12px;color:var(--text-faint);font-family:var(--font-mono)}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:380px}.login-card h3{font-size:20px;margin:0 0 4px;font-weight:600}.login-card .sub{color:var(--text-dim);margin:0 0 24px;font-size:13.5px}.role-grid{display:grid;gap:8px;margin-bottom:22px}.role-opt{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-1);transition:border-color .12s,background .12s}.role-opt:hover{border-color:var(--border-strong)}.role-opt.is-active{border-color:var(--accent-line);background:var(--accent-soft)}.role-opt .ro-radio{width:16px;height:16px;border-radius:50%;flex-shrink:0;border:2px solid var(--border-strong);display:grid;place-items:center}.role-opt.is-active .ro-radio{border-color:var(--accent)}.role-opt.is-active .ro-radio:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}.role-opt .ro-text{display:flex;flex-direction:column;line-height:1.25}.role-opt .ro-text strong{font-size:13.5px;font-weight:600}.role-opt .ro-text span{font-size:11.5px;color:var(--text-faint)}.login-tg{width:100%;height:44px;gap:9px;background:#2aabee;border-color:transparent;color:#fff;font-weight:600}.login-tg:hover{background:#1f9bd8}.login-or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-faint);font-size:12px}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--border)}.login-theme{position:absolute;top:24px;right:28px}.shelf{display:grid;grid-template-columns:290px 1fr;gap:var(--gap);align-items:start}.rail{display:flex;flex-direction:column;overflow:hidden}.rail-head{padding:14px 14px 12px;border-bottom:1px solid var(--border)}.rail-head .row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.rail-head h2{font-size:15px;margin:0;font-weight:600}.rail-search{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-faint)}.rail-search svg{width:14px;height:14px}.rail-search input{flex:1;border:0;background:transparent;color:var(--text);outline:none;font-size:13px}.rail-list{display:flex;flex-direction:column;gap:2px;padding:8px;overflow:auto;max-height:calc(100vh - 230px)}.rail-item{text-align:left;padding:11px 12px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--text);display:grid;gap:6px;transition:background .12s,border-color .12s}.rail-item:hover{background:var(--surface-2)}.rail-item.is-active{background:var(--accent-soft);border-color:var(--accent-line)}.rail-item .ri-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.rail-item strong{font-size:13.5px;font-weight:600;line-height:1.25}.rail-item .ri-author{font-size:11.5px;color:var(--text-faint);white-space:nowrap}.rail-item .ri-meta{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-dim)}.rail-item .ri-bar{flex:1}.stage{display:flex;flex-direction:column;min-width:0;gap:var(--gap)}.book-banner{padding:18px 20px;display:flex;gap:20px;align-items:flex-start}.book-banner .bb-main{min-width:0;flex:1}.book-banner .bb-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.book-banner h2{font-size:22px;margin:0;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.book-banner .bb-sub{color:var(--text-dim);font-size:13px;margin:7px 0 0}.book-banner .bb-note{color:var(--text-dim);font-size:13px;margin:13px 0 0;max-width:64ch;line-height:1.55}.book-banner .bb-actions{display:flex;gap:8px;flex-shrink:0}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}.stat{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;display:flex;flex-direction:column;gap:4px}.stat .s-label{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:600;display:flex;align-items:center;gap:6px}.stat .s-label svg{width:13px;height:13px}.stat .s-val{font-size:25px;font-weight:600;font-family:var(--font-mono);letter-spacing:-.02em;line-height:1.1}.stat .s-sub{font-size:11.5px;color:var(--text-dim)}.stat .s-val.accent{color:var(--accent)}.cast-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.cast-head h3{font-size:14px;margin:0;font-weight:600}.cast-head .ch-tools{display:flex;gap:8px;align-items:center}.actor-cell{display:flex;align-items:center;gap:8px}.actor-cell .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:600;background:var(--surface-3);color:var(--text-dim);font-family:var(--font-mono);flex-shrink:0}.actor-cell.unassigned{color:var(--text-faint)}.char-name{display:flex;flex-direction:column;line-height:1.2}.char-name strong{font-weight:600;font-size:13px}.char-name small{font-size:11px;color:var(--text-faint)}.tfoot-row td{background:var(--surface-2);font-weight:600;height:44px;border-top:1px solid var(--border-strong)}.budget-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:1px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden}.budget-bar>div{background:var(--surface-1);padding:13px 16px;display:flex;flex-direction:column;gap:3px}.budget-bar .bl{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em}.budget-bar .bv{font-size:17px;font-weight:600;font-family:var(--font-mono)}.budget-bar .total .bv{color:var(--accent)}.subtabs{display:flex;gap:2px;padding:4px;background:var(--surface-2);border-radius:var(--radius);width:fit-content}.subtab{padding:7px 14px;border:0;background:transparent;border-radius:6px;color:var(--text-dim);font-size:13px;font-weight:500;white-space:nowrap}.subtab:hover{color:var(--text)}.subtab.is-active{background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-1)}.pipeline{display:flex;flex-direction:column;gap:2px}.pl-step{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:12px;padding:10px 4px}.pl-node{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;border:2px solid var(--border-strong);color:var(--text-faint);position:relative}.pl-node svg{width:12px;height:12px}.pl-step.done .pl-node{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pl-step.active .pl-node{border-color:var(--accent);color:var(--accent)}.pl-step.active .pl-node:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid var(--accent-soft)}.pl-line{position:absolute;left:14px;width:2px;background:var(--border)}.pl-label{font-size:13.5px;font-weight:500}.pl-step.todo .pl-label{color:var(--text-faint)}.pl-meta{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:10px}.pl-meta .mini-bar{width:90px}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--gap);align-items:start}.activity{display:flex;flex-direction:column}.act-item{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.act-item:last-child{border-bottom:0}.act-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:6px;flex-shrink:0}.act-dot.blue{background:var(--blue)}.act-dot.amber{background:var(--amber)}.act-dot.faint{background:var(--text-faint)}.act-body{min-width:0}.act-body p{margin:0;font-size:13px}.act-body .at{font-size:11.5px;color:var(--text-faint);font-family:var(--font-mono);margin-top:2px}.chap-row td .cn{font-family:var(--font-mono);color:var(--text-faint);width:34px;display:inline-block}.prep-grid{display:grid;gap:var(--gap)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{font-size:22px;margin:0;font-weight:600;letter-spacing:-.01em}.page-head p{margin:5px 0 0;color:var(--text-dim);font-size:13.5px}.page-head .ph-tools{display:flex;gap:8px}.empty{display:grid;place-items:center;gap:10px;text-align:center;padding:60px 20px;color:var(--text-faint)}.empty svg{width:34px;height:34px;opacity:.5}#tweaks{position:fixed;right:18px;bottom:18px;z-index:50;width:250px;display:none}#tweaks.open{display:block}.tw-card{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);overflow:hidden}.tw-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}.tw-head strong{font-size:13px}.tw-body{padding:14px;display:flex;flex-direction:column;gap:16px}.tw-group label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:600;display:block;margin-bottom:8px}.tw-seg{display:flex;gap:4px}.tw-seg button{flex:1;height:32px;border:1px solid var(--border);background:var(--surface-2);border-radius:6px;font-size:12px;color:var(--text-dim)}.tw-seg button.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.tw-swatches{display:flex;gap:8px}.tw-sw{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer}.tw-sw.on{border-color:var(--text)}.tweaks-fab{position:fixed;right:18px;bottom:18px;z-index:49;width:42px;height:42px;border-radius:50%;background:var(--surface-1);border:1px solid var(--border-strong);box-shadow:var(--shadow-2);display:grid;place-items:center;color:var(--text-dim)}.tweaks-fab svg{width:18px;height:18px}@media (max-width: 1080px){.shelf{grid-template-columns:1fr}.stat-row{grid-template-columns:repeat(2,1fr)}.two-col,.login-wrap{grid-template-columns:1fr}.login-side{display:none}}
