@property --cve2-p{syntax:"<number>";inherits:false;initial-value:0}.app .cve2{padding-bottom:110px}.app:has(.cve2) .floatup{bottom:84px}.app .cve2-grid{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:20px;align-items:start;margin-top:20px}@media (max-width:980px){.app .cve2-grid{grid-template-columns:1fr}}.app .cve2-left{display:grid;gap:12px;position:relative;min-width:0;max-width:100%}.app .cve2-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-l);padding:13px 14px}.app .cve2-side-top{display:flex;align-items:center;gap:12px}.app .cve2-side-t{min-width:0}.app .cve2-side-t strong{display:block;color:var(--ink);font-size:.98rem}.app .cve2-side-t span{display:block;color:var(--muted);font-size:.84rem;margin-top:2px;line-height:1.45}.app .cve2-ring{width:70px;height:70px;border-radius:50%;position:relative;display:grid;place-items:center;flex:none;background:conic-gradient(var(--azure) calc(var(--cve2-p) * 1%),var(--line-soft) 0);transition:--cve2-p var(--t-ring)}.app .cve2-ring:before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--surface)}.app .cve2-ring span{position:relative;font-weight:800;font-size:.98rem;color:var(--ink);font-variant-numeric:tabular-nums}.app .cve2-miss{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}.app .cve2-miss-btn{width:100%;display:flex;align-items:center;gap:10px;padding:8px 11px;min-height:40px;border:1px dashed var(--line);border-radius:var(--r-s);background:var(--surface-2);cursor:pointer;font-family:var(--sans);transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-press)}.app .cve2-miss-btn:hover{border-color:var(--azure);background:var(--azure-soft);transform:translateY(-1px)}.app .cve2-miss-btn:active{transform:scale(.97)}.app .cve2-miss-pct{flex:none;font-weight:800;font-size:.8rem;color:var(--azure);font-variant-numeric:tabular-nums}.app .cve2-miss-label{color:var(--ink-2);font-size:.88rem;font-weight:600;text-align:left}.app .cve2-complete{margin:12px 0 0;color:var(--azure-deep);font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:8px}.app .cve2-side-fill{margin-top:12px;width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-weight:600;font-size:.86rem;padding:9px 12px;min-height:40px;border-radius:var(--r-s);cursor:pointer;font-family:var(--sans);transition:border-color var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-side-fill:hover:not(:disabled){border-color:var(--azure);color:var(--azure)}.app .cve2-side-fill:active:not(:disabled){transform:scale(.97)}.app .cve2-side-fill:disabled{opacity:.6;cursor:default}.app .cve2-side-collapse{align-self:flex-start;margin-left:auto;flex:none;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:color var(--t-hover),border-color var(--t-hover),background var(--t-hover),transform var(--t-press)}.app .cve2-side-collapse:hover{color:var(--azure-deep);border-color:var(--azure);background:var(--azure-soft)}.app .cve2-side-collapse:active{transform:scale(.92)}.app .cve2-ord{display:inline-flex;flex-direction:column;gap:2px;flex:none;margin-right:8px}.app .cve2-ord-btn{width:24px;height:21px;border:0;border-radius:6px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0;transition:background var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-ord-btn:hover:not(:disabled){background:var(--azure-soft);color:var(--azure-deep)}.app .cve2-ord-btn:active:not(:disabled){transform:scale(.88)}.app .cve2-ord-btn:disabled{opacity:.3;cursor:default}.app .cve2-labrow-right{display:inline-flex;align-items:center;gap:9px}.app .cve2-count{font-family:var(--sans);font-size:.72rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;transition:color var(--t-hover)}.app .cve2-count.warn{color:#b45309;font-weight:700}:root[data-theme=dark] .app .cve2-count.warn{color:#fbbf24}.app .cve2-sec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-l);padding:13px 14px}.app .cve2-sec-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.app .cve2-sec-h{font-weight:700;color:var(--ink);font-size:.95rem;margin:0}.app .cve2-lab{display:block;margin:12px 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.app .cve2-grid2{display:grid;grid-template-columns:1fr;gap:8px}.app .cve2-span2{grid-column:1/-1}.app .cve2-in{border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface-2);color:var(--ink);font-family:var(--sans);font-size:.9rem;padding:9px 11px;width:100%;transition:border-color var(--t-hover),background var(--t-hover)}.app .cve2-in:focus{outline:none;border-color:var(--azure);background:var(--surface)}.app .cve2-area{min-height:80px;resize:vertical;line-height:1.5}.app .cve2-area-s{min-height:56px}.app .cve2-add{border:1px solid var(--azure-line);background:var(--azure-soft);color:var(--azure-deep);font-size:.78rem;font-weight:700;padding:5px 11px;min-height:30px;border-radius:999px;cursor:pointer;font-family:var(--sans);transition:transform var(--t-press),filter var(--t-hover)}.app .cve2-add:hover{filter:brightness(1.04)}.app .cve2-add:active{transform:scale(.94)}.app .cve2-del{margin-top:10px;border:0;background:transparent;color:var(--muted);font-size:.8rem;cursor:pointer;text-decoration:underline;font-family:var(--sans);padding:4px 0}.app .cve2-del:hover{color:#b42318}.app .cve2-empty{color:var(--muted);font-size:.86rem;margin:2px 0 0}.app .cve2-cards{display:grid;gap:10px}.app .cve2-card{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface-2);transition:border-color var(--t-hover),background var(--t-hover),box-shadow var(--dur-2) var(--ease-std),transform var(--t-hover)}.app .cve2-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--azure) 45%,var(--line))}.app .cve2-card.open{background:var(--surface);border-color:var(--azure);box-shadow:0 0 0 3px var(--azure-soft);transform:none}.app .cve2-card-head{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:12px 14px;border:0;background:none;cursor:pointer;text-align:left;font-family:var(--sans);border-radius:inherit}.app .cve2-card-title{flex:1;min-width:0;font-weight:700;font-size:.92rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app .cve2-card-title.is-placeholder{color:var(--muted);font-weight:600}.app .cve2-card-meta{flex:none;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.app .cve2-chev{flex:none;color:var(--muted);transition:transform var(--t-press)}.app .cve2-card.open .cve2-chev{transform:rotate(180deg);color:var(--azure)}.app .cve2-acc{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--t-reveal),opacity var(--dur-2) var(--ease-std)}.app .cve2-acc>*{min-height:0;overflow:hidden}.app .cve2-card.open .cve2-acc{grid-template-rows:1fr;opacity:1}.app .cve2-acc-in{padding:2px 14px 14px;visibility:hidden;transition:visibility 0s var(--dur-3)}.app .cve2-card.open .cve2-acc-in{visibility:visible;transition:visibility 0s}.app .cve2-starter{display:grid;gap:12px}.app .cve2-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;width:100%;padding:18px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-l);cursor:pointer;font-family:var(--sans);color:var(--ink);transition:transform var(--t-press),border-color var(--t-hover),background var(--t-hover),box-shadow var(--dur-2) var(--ease-std)}.app .cve2-tile:hover{transform:translateY(-2px);border-color:var(--azure)}.app .cve2-tile:active{transform:scale(.985)}.app .cve2-tile-ic{color:var(--azure);display:grid;place-items:center;transition:transform var(--t-press)}.app .cve2-tile:hover .cve2-tile-ic{transform:translateY(-2px)}.app .cve2-tile strong{font-size:1.02rem;color:var(--ink)}.app .cve2-tile span{font-size:.88rem;color:var(--muted);line-height:1.45}.app .cve2-tile-drop{border-style:dashed}.app .cve2-tile-drop.dragging{border-color:var(--cyan-live);background:color-mix(in srgb,var(--cyan-live) 12%,var(--surface));transform:scale(1.01)}.app .cve2-starter-alt{border:0;background:none;color:var(--muted);font-size:.86rem;cursor:pointer;font-family:var(--sans);text-decoration:underline;justify-self:start;padding:4px 0}.app .cve2-starter-alt:hover{color:var(--azure)}.app .cve2-parsing{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-l);padding:18px;display:grid;gap:10px}.app .cve2-live{display:flex;align-items:center;gap:9px;color:var(--ink-2);font-weight:600;font-size:.92rem}.app .cve2-live-dot{width:9px;height:9px;border-radius:50%;background:var(--cyan-live);animation:cve2-pulse 1.1s ease-in-out infinite}@keyframes cve2-pulse{50%{opacity:.35;transform:scale(.8)}}.app .cve2-skel{height:12px}.app .cve2-skel.w2{width:72%}.app .cve2-skel.w3{width:46%}.app .cve2-todo{background:var(--azure-soft);border:1px solid var(--azure-line);border-radius:var(--r-l);padding:13px 14px}.app .cve2-todo-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.app .cve2-todo-head strong{color:var(--azure-deep);font-size:.92rem}.app .cve2-todo-hide{border:0;background:none;color:var(--muted);font-size:.8rem;cursor:pointer;text-decoration:underline;font-family:var(--sans)}.app .cve2-todo-hide:hover{color:var(--azure-deep)}.app .cve2-todo ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}.app .cve2-todo li{color:var(--ink-2);font-size:.9rem;line-height:1.5}.app .cve2-right{position:sticky;top:84px;z-index:1;min-width:0;max-width:100%}@media (max-width:980px){.app .cve2-right{position:static}}.app .cve2-paperwrap{position:relative;max-width:100%}.app .cve2-paper{display:grid;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-x);width:100%;max-width:100%;margin-inline:0;min-height:calc(var(--cve2-paperw, 620px) * 1.4142)}.app .cve2-paper>*{min-width:0}.app .cve2-paper .cvt-root{max-width:100%;margin-inline:0;border-radius:inherit;overflow:hidden}.app .cve2-badge-sample{position:absolute;top:12px;left:12px;z-index:2;background:var(--azure-soft);border:1px solid var(--azure-line);color:var(--azure-deep);font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:4px 10px;border-radius:999px;font-family:var(--sans)}.app .cve2-hintline{color:var(--muted);font-size:.8rem;margin-top:10px;text-align:center;font-family:var(--sans)}.app .cve2-paper .cvt-photoslot{cursor:pointer}.app .cve2-paper .cvt-photoslot:focus-visible,.app .cve2-paper .cvt-photoslot:hover{border-color:var(--azure);color:var(--azure);background:color-mix(in srgb,var(--azure) 8%,#ffffff)}.app .cve2-paper .cvt-akzent-band .cvt-photoslot:focus-visible,.app .cve2-paper .cvt-akzent-band .cvt-photoslot:hover,.app .cve2-paper .cvt-zwei-side .cvt-photoslot:focus-visible,.app .cve2-paper .cvt-zwei-side .cvt-photoslot:hover{border-color:#ffffff;color:#ffffff;background:rgba(255,255,255,.14)}.app .cve2-paper.cve2-inline .cvt-root img{cursor:pointer}.app .cve2-photobar{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;animation:cve2-pop var(--dur-3) var(--ease-glide) both}.app .cve2-photobar-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:.8rem;font-weight:700;font-family:var(--sans);padding:8px 14px;min-height:40px;border-radius:999px;cursor:pointer;transition:border-color var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-photobar-btn:hover{border-color:var(--azure);color:var(--azure-deep)}.app .cve2-photobar-btn:active{transform:scale(.95)}.app .cve2-photobar-x:hover{border-color:color-mix(in srgb,#b42318 40%,transparent);color:#b42318}.app .cve2-toolbar-wrap{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:70;display:flex;flex-direction:column;align-items:center;gap:10px;width:-moz-max-content;width:max-content;max-width:calc(100vw - 20px)}.app .cve2-grid.has-pop .cve2-right,.app .cve2-grid.has-spark .cve2-left,.app .cve2-grid.has-spark .cve2-railwrap{z-index:80}.app .cve2-toolbar{display:flex;align-items:center;gap:4px;padding:7px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 76%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow-x);max-width:100%}.app .cve2-tb{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--ink-2);font-family:var(--sans);font-weight:700;font-size:.86rem;padding:9px 13px;min-height:40px;border-radius:999px;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-tb:hover{background:var(--surface-2);color:var(--ink)}.app .cve2-tb:active:not(:disabled){transform:scale(.95)}.app .cve2-tb.on{background:var(--azure-soft);color:var(--azure-deep)}.app .cve2-tb:disabled{opacity:.5;cursor:default}.app .cve2-tb svg{flex:none}.app .cve2-tb-primary{background:var(--azure);color:#fff;box-shadow:0 10px 22px -12px var(--azure)}.app .cve2-tb-primary:hover{background:var(--azure);color:#fff;filter:brightness(1.06)}@media (max-width:760px){.app .cve2-toolbar{overflow-x:auto}.app .cve2-tb{padding:9px 11px}.app .cve2-tb .cve2-tb-t{display:none}.app .cve2-tb-primary .cve2-tb-t{display:inline}.app .cve2-tb-sparkpanel{display:none}}.app .cve2-tb-sparkwrap{position:relative;display:inline-flex}.app .cve2-tb-spark{color:var(--azure)}.app .cve2-tb-spark:hover:not(:disabled){background:var(--azure-soft);color:var(--azure-deep)}.app .cve2-tb-sparkpanel{position:absolute;right:0;bottom:calc(100% + 14px);z-index:5;width:252px;display:grid;gap:9px;justify-items:start;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-l),var(--shadow-x);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity var(--t-reveal),transform var(--t-reveal),visibility 0s linear var(--dur-3)}.app .cve2-tb-sparkwrap:focus-within .cve2-tb-sparkpanel,.app .cve2-tb-sparkwrap:hover .cve2-tb-sparkpanel{opacity:1;visibility:visible;transform:none;transition:opacity var(--t-reveal),transform var(--t-reveal)}.app .cve2-tb-sparkpanel p{margin:0;font-family:var(--sans);font-size:.8rem;line-height:1.45;color:var(--ink-2)}.app .cve2-tb-sparkbtn{border:1px solid var(--azure-line);border-radius:999px;background:var(--azure-soft);color:var(--azure-deep);font-family:var(--sans);font-size:.8rem;font-weight:700;padding:9px 13px;min-height:40px;cursor:pointer;transition:border-color var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-tb-sparkbtn:hover{border-color:var(--azure)}.app .cve2-tb-sparkbtn:active{transform:scale(.96)}@media (hover:none){.app .cve2-tb-sparkpanel{display:none}}.app .cve2-chip{display:flex;align-items:center;gap:10px;border-radius:999px;padding:8px 15px;font-family:var(--sans);font-size:.88rem;font-weight:700;box-shadow:var(--shadow-l);animation:cve2-pop var(--dur-3) var(--ease-spring) both}.app .cve2-chip-ok{background:var(--azure-soft);border:1px solid var(--azure-line);color:var(--azure-deep)}.app .cve2-chip-ok a{color:var(--azure-deep);text-decoration:underline}.app .cve2-chip-err{background:color-mix(in srgb,#e5484d 12%,var(--surface));border:1px solid color-mix(in srgb,#e5484d 40%,transparent);color:#b42318}:root[data-theme=dark] .app .cve2-chip-err{color:#ffb4b4}.app .cve2-panel{width:min(92vw,560px);max-height:min(58vh,520px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-x);padding:14px;animation:cve2-pop var(--dur-3) var(--ease-glide) both}@keyframes cve2-pop{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.app .cve2-panel-h{font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--azure);margin:2px 2px 10px}.app .cve2-tpl-groups{display:grid;gap:16px}.app .cve2-tpl-cat{font-family:var(--sans);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 2px 8px}.app .cve2-tpl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media (max-width:560px){.app .cve2-tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.app .cve2-tpl{display:grid;gap:8px;justify-items:center;padding:10px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface-2);animation:cve2-rise var(--dur-3) var(--ease-glide) both;animation-delay:calc(var(--i, 0) * 45ms);transition:border-color var(--t-hover),box-shadow var(--dur-2) var(--ease-std)}@keyframes cve2-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.app .cve2-tpl:hover{border-color:color-mix(in srgb,var(--azure) 45%,var(--line))}.app .cve2-tpl.on{border-color:var(--azure);box-shadow:0 0 0 3px var(--azure-soft)}.app .cve2-tpl-pick{border:0;background:none;padding:0;cursor:pointer;display:grid;gap:8px;justify-items:center;font-family:var(--sans)}.app .cve2-mini{display:block;width:132px;height:176px;border-radius:8px;overflow:hidden;position:relative;border:1px solid var(--line);background:#fff;pointer-events:none;box-shadow:0 6px 16px -10px rgba(13,40,90,.35)}.app .cve2-mini-scale{display:block;width:528px;transform:scale(.25);transform-origin:top left}.app .cve2-mini-scale .cvt-root{animation:none;max-width:none}.app .cve2-tpl-name{font-size:.82rem;font-weight:700;color:var(--ink)}.app .cve2-tpl.on .cve2-tpl-name{color:var(--azure-deep)}.app .cve2-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.app .cve2-dot{width:18px;height:18px;border-radius:50%;padding:0;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer;transition:transform var(--t-press),box-shadow var(--t-hover)}.app .cve2-dot:hover{transform:scale(1.12)}.app .cve2-dot:active{transform:scale(.92)}.app .cve2-dot.on{box-shadow:0 0 0 2px var(--azure)}.app .cve2-fs{position:fixed;inset:0;z-index:90;background:color-mix(in srgb,#0a1424 78%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:grid;overflow-y:auto;padding:clamp(16px,4vw,44px);animation:cve2-fade var(--dur-2) var(--ease-std) both}@keyframes cve2-fade{0%{opacity:0}to{opacity:1}}.app .cve2-fs-inner{width:min(52.5rem,92vw,100%);margin:auto;display:grid;min-height:calc(min(52.5rem, 92vw) * 1.4142);background:#fff;border-radius:12px;box-shadow:var(--shadow-x);animation:cve2-pop var(--dur-3) var(--ease-glide) both}.app .cve2-fs-inner>*{min-width:0}.app .cve2-fs-inner .cvt-root{max-width:100%;margin-inline:0;border-radius:inherit;overflow:hidden}.app .cve2-fs-x{position:fixed;top:14px;right:18px;z-index:91;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(10,20,36,.55);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;font-family:var(--sans);backdrop-filter:blur(6px);transition:background var(--t-hover),transform var(--t-press)}.app .cve2-fs-x:hover{background:rgba(10,20,36,.78)}.app .cve2-fs-x:active{transform:scale(.92)}.app .cve2-grid.focus{grid-template-columns:56px minmax(0,1fr)}@media (max-width:980px){.app .cve2-grid.focus{grid-template-columns:48px minmax(0,1fr)}}.app .cve2-grid.focus .cve2-aibar,.app .cve2-grid.focus .cve2-paperwrap{max-width:880px;margin-inline:auto}.app .cve2-railwrap{position:sticky;top:84px;z-index:60;min-width:0}@media (max-width:980px){.app .cve2-railwrap{top:74px}}.app .cve2-rail{display:grid;gap:6px;justify-items:center;width:56px;padding:9px 0;background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-l);animation:cve2-slide var(--t-reveal) both}@media (max-width:980px){.app .cve2-rail{width:48px}}@keyframes cve2-slide{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}.app .cve2-rail-ring{border:0;background:none;padding:0;cursor:pointer;display:grid;border-radius:50%}.app .cve2-ring-s{width:38px;height:38px}.app .cve2-ring-s:before{inset:4px}.app .cve2-ring-s span{font-size:.68rem}.app .cve2-rail-btn{width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:background var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-rail-btn:hover{background:var(--azure-soft);color:var(--azure-deep)}.app .cve2-rail-btn:active{transform:scale(.92)}.app .cve2-rail-sep{width:22px;height:1px;background:var(--line);margin:2px 0}.app .cve2-railpanel{position:absolute;top:0;left:0;z-index:2;width:min(400px,calc(100vw - 24px));max-height:calc(100svh - 100px);overflow-y:auto;overscroll-behavior:contain;display:grid;gap:14px;align-content:start;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:0 0 0 1px var(--line-soft),var(--shadow-x);animation:cve2-slide var(--t-reveal) both}@media (max-width:980px){.app .cve2-railpanel{max-height:calc(100svh - 90px)}}.app .cve2-fs,.app .cve2-panel,.app .cve2-railpanel,.app .cve2-toolbar{scrollbar-width:none}.app .cve2-fs::-webkit-scrollbar,.app .cve2-panel::-webkit-scrollbar,.app .cve2-railpanel::-webkit-scrollbar,.app .cve2-toolbar::-webkit-scrollbar{display:none}.app .cve2-railpanel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 4px 0}.app .cve2-railpanel-head strong{color:var(--ink);font-size:.95rem}.app .cve2-railpanel-x{width:32px;height:32px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font-size:1.05rem;line-height:1;cursor:pointer;font-family:var(--sans);transition:color var(--t-hover),border-color var(--t-hover),transform var(--t-press)}.app .cve2-railpanel-x:hover{color:var(--ink);border-color:var(--azure)}.app .cve2-railpanel-x:active{transform:scale(.92)}.app .cve2-paper.cve2-inline .cve2-hot{outline:1.5px solid color-mix(in srgb,var(--azure) 65%,transparent);outline-offset:2px;border-radius:3px;cursor:pointer}.app .cve2-popover{position:absolute;z-index:75;width:min(340px,calc(100% - 16px));display:grid;gap:8px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--shadow-x);font-family:var(--sans);animation:cve2-pop var(--t-reveal) both}.app .cve2-pop-row{display:flex;align-items:center;gap:8px}.app .cve2-pop-apply{border:0;border-radius:999px;background:var(--azure);color:#fff;font-family:var(--sans);font-weight:700;font-size:.82rem;padding:7px 14px;min-height:34px;cursor:pointer;transition:filter var(--t-hover),transform var(--t-press)}.app .cve2-pop-apply:hover{filter:brightness(1.06)}.app .cve2-pop-apply:active{transform:scale(.95)}.app .cve2-pop-cancel{border:0;background:none;color:var(--muted);font-family:var(--sans);font-size:.82rem;font-weight:600;padding:6px 8px;cursor:pointer}.app .cve2-pop-cancel:hover{color:var(--ink)}.app .cve2-pop-miss{margin:0;color:var(--ink-2);font-size:.88rem;line-height:1.45}.app .cve2-aipanel{width:min(92vw,460px);display:grid;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-x);font-family:var(--sans);animation:cve2-pop var(--dur-3) var(--ease-glide) both}.app .cve2-aipanel-lab{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.app .cve2-aipanel-lab svg{color:var(--azure);flex:none}.app .cve2-panel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 2px 10px}.app .cve2-panel-top .cve2-panel-h{margin:0}.app .cve2-done{border:0;border-radius:999px;background:var(--azure);color:#fff;font-family:var(--sans);font-weight:700;font-size:.8rem;padding:6px 15px;min-height:32px;cursor:pointer;box-shadow:0 8px 18px -10px var(--azure);transition:filter var(--t-hover),transform var(--t-press)}.app .cve2-done:hover{filter:brightness(1.06)}.app .cve2-done:active{transform:scale(.94)}.app .cve2-gate{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,#0a1424 55%,transparent);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:cve2-fade var(--dur-2) var(--ease-std) both}.app .cve2-gate-card{width:min(92vw,440px);display:grid;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-x);padding:20px;font-family:var(--sans);animation:cve2-pop var(--dur-3) var(--ease-spring) both}.app .cve2-gate-h{color:var(--ink);font-size:1rem}.app .cve2-gate-p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}.app .cve2-gate-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.app .cve2-gate-up{display:inline-flex;align-items:center;border-radius:999px;background:var(--azure);color:#fff;text-decoration:none;font-weight:700;font-size:.86rem;padding:9px 16px;min-height:40px;box-shadow:0 10px 22px -12px var(--azure);transition:filter var(--t-hover),transform var(--t-press)}.app .cve2-gate-up:hover{filter:brightness(1.06)}.app .cve2-gate-up:active{transform:scale(.96)}.app .cve2-gate-print{border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-family:var(--sans);font-weight:700;font-size:.86rem;padding:9px 15px;min-height:40px;cursor:pointer;transition:border-color var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-gate-print:hover{border-color:var(--azure);color:var(--ink)}.app .cve2-gate-print:active{transform:scale(.96)}.app .cve2-wm{display:none}.app .cve2-todo-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:12px}.app .cve2-todo-item{display:grid;gap:6px;justify-items:start}.app .cve2-todo-text{margin:0;color:var(--ink-2);font-size:.9rem;line-height:1.5;transition:color var(--t-hover)}.app .cve2-todo-item.done .cve2-todo-text{color:var(--muted);text-decoration:line-through}.app .cve2-todo-ok{gap:6px;animation:cve2-pop var(--t-reveal) both}.app .cve2-todo-all,.app .cve2-todo-ok,.app .cve2-todo-run{display:inline-flex;align-items:center;color:var(--azure-deep);font-size:.8rem;font-weight:700}.app .cve2-todo-all,.app .cve2-todo-run{gap:7px;border:1px solid var(--azure-line);border-radius:999px;background:var(--surface);font-family:var(--sans);padding:7px 13px;min-height:34px;cursor:pointer;transition:border-color var(--t-hover),background var(--t-hover),filter var(--t-hover),transform var(--t-press)}.app .cve2-todo-run:hover:not(:disabled){border-color:var(--azure);background:var(--surface-2)}.app .cve2-todo-all:active:not(:disabled),.app .cve2-todo-run:active:not(:disabled){transform:scale(.96)}.app .cve2-todo-all:disabled,.app .cve2-todo-run:disabled{opacity:.55;cursor:default}.app .cve2-todo-all{margin-top:12px;background:var(--azure);border-color:var(--azure);color:#fff;box-shadow:0 8px 18px -10px var(--azure)}.app .cve2-todo-all:hover:not(:disabled){filter:brightness(1.06)}.app .cve2-ainote{margin:8px 0 0;color:var(--ink-2);font-size:.82rem;line-height:1.45;font-family:var(--sans);animation:cve2-pop var(--t-reveal) both}.app .cve2-ainote a{color:var(--azure-deep);font-weight:700;text-decoration:underline}.app .cve2-labrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 6px}.app .cve2-labrow .cve2-lab{margin:0}.app .cve2-sparkwrap{position:relative;display:inline-flex}.app .cve2-spark{width:26px;height:26px;flex:none;border:1px solid var(--azure-line);border-radius:50%;background:var(--azure-soft);color:var(--azure-deep);display:grid;place-items:center;cursor:pointer;transition:filter var(--t-hover),box-shadow var(--t-hover),transform var(--t-press)}.app .cve2-spark:hover{filter:brightness(1.05)}.app .cve2-spark:active{transform:scale(.9)}.app .cve2-spark.on{box-shadow:0 0 0 3px var(--azure-soft)}.app .cve2-sparkpop{position:absolute;top:calc(100% + 8px);right:0;z-index:75;width:min(300px,76vw);display:grid;gap:8px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--shadow-x);font-family:var(--sans);animation:cve2-pop var(--t-reveal) both}.app .cve2-sparkpop-row{display:flex;align-items:center;gap:6px}.app .cve2-in-s{padding:8px 10px;font-size:.86rem;min-width:0}.app .cve2-sparkgo{width:36px;height:36px;flex:none;border:0;border-radius:var(--r-s);background:var(--azure);color:#fff;display:grid;place-items:center;cursor:pointer;transition:filter var(--t-hover),transform var(--t-press)}.app .cve2-sparkgo:hover:not(:disabled){filter:brightness(1.06)}.app .cve2-sparkgo:active:not(:disabled){transform:scale(.92)}.app .cve2-sparkgo:disabled{opacity:.5;cursor:default}.app .cve2-spark-busy{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);font-size:.8rem;font-weight:600}.app .cve2-card-row{display:flex;align-items:center}.app .cve2-card-row .cve2-card-head{width:auto;flex:1;min-width:0}.app .cve2-card-row .cve2-sparkwrap{margin-right:12px}.app .cve2-card.spark-open{position:relative;z-index:6;transform:none}.app .cve2-pop-ai{display:grid;gap:6px;border-top:1px dashed var(--line);padding-top:8px}.app .cve2-pop-ai-lab{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.04em}.app .cve2-pop-ai-lab svg{color:var(--azure);flex:none}.app .cve2-aibar{display:flex;align-items:center;gap:9px;max-width:100%;margin-inline:0;margin-bottom:10px;padding:8px 14px;min-height:40px;border:1px solid var(--azure-line);border-radius:999px;background:var(--azure-soft);color:var(--azure-deep);font-family:var(--sans);font-size:.84rem;font-weight:600;animation:cve2-pop var(--t-reveal) both}.app .cve2-aibar a{color:var(--azure-deep);font-weight:700;text-decoration:underline}.app .cve2-aibar.err{border-color:color-mix(in srgb,#e5484d 40%,transparent);background:color-mix(in srgb,#e5484d 10%,var(--surface));color:#b42318}:root[data-theme=dark] .app .cve2-aibar.err{color:#ffb4b4}.app .cve2-aibar.err a{color:inherit}.app .cve2-aibar-undo{margin-left:auto;flex:none;border:1px solid var(--azure-line);border-radius:999px;background:var(--surface);color:var(--azure-deep);font-family:var(--sans);font-size:.78rem;font-weight:700;padding:5px 12px;min-height:28px;cursor:pointer;transition:border-color var(--t-hover),transform var(--t-press)}.app .cve2-aibar-undo:hover{border-color:var(--azure)}.app .cve2-aibar-undo:active{transform:scale(.94)}.app .cve2-aibar-x{margin-left:auto;flex:none;border:0;background:none;color:inherit;font-size:1rem;line-height:1;cursor:pointer;font-family:var(--sans);padding:2px 6px}.app .cve2-paperwrap.ai-busy{overflow:hidden;border-radius:12px;pointer-events:none}.app .cve2-paperwrap.ai-busy .cve2-paper{opacity:.55;transition:opacity var(--t-reveal)}.app .cve2-paperwrap.ai-busy:after{content:"";position:absolute;inset:0;z-index:3;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--azure) 12%,transparent),transparent);animation:bg-shimmer 1.3s var(--ease-glide) infinite;pointer-events:none}@media print{.app .cve2-aibar,.app .cve2-badge-sample,.app .cve2-fs,.app .cve2-gate,.app .cve2-head,.app .cve2-hintline,.app .cve2-left,.app .cve2-photobar,.app .cve2-popover,.app .cve2-railwrap,.app .cve2-sparkpop,.app .cve2-toolbar-wrap{display:none!important}.app .cve2-grid,.app .cve2-grid.focus{display:block!important}.app .cve2-paperwrap,.app .cve2-right{position:static!important}.app .cve2-grid.focus .cve2-paperwrap{max-width:none;margin:0}.app .cve2-paper{display:block!important;max-width:none!important;max-height:none!important;min-height:0!important;margin:0!important;border:0!important;box-shadow:none!important}.app .cve2-paper,.app .cve2-paper .cvt-root{overflow:visible!important;border-radius:0!important}.app .cve2-wm{display:flex!important;position:fixed;inset:0;z-index:60;flex-direction:column;align-items:center;justify-content:space-evenly;pointer-events:none;transform:rotate(-28deg) scale(1.2);opacity:.14}.app .cve2-wm span{font-family:var(--sans);font-weight:800;font-size:30px;letter-spacing:.08em;color:#4a5568;white-space:nowrap}}.app .cve2-chipbox{display:grid;gap:8px}.app .cve2-chiplist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.app .cve2-chipitem{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);padding:3px 4px 3px 11px;min-height:32px;animation:cve2-chip-in var(--dur-2) var(--ease-spring) both;transition:border-color var(--t-hover),background var(--t-hover)}@keyframes cve2-chip-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.app .cve2-chipitem:hover{border-color:color-mix(in srgb,var(--azure) 45%,var(--line))}.app .cve2-chipitem.has-lvl{border-color:var(--azure-line);background:var(--azure-soft)}.app .cve2-chipname{font-size:.84rem;font-weight:600;color:var(--ink);white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.app .cve2-chiplvl{border:0;background:transparent;color:var(--muted);font-family:var(--sans);font-size:.74rem;font-weight:700;padding:2px 0 2px 5px;max-width:158px;cursor:pointer;transition:color var(--t-hover)}.app .cve2-chiplvl:focus-visible,.app .cve2-chiplvl:hover{color:var(--azure-deep)}.app .cve2-chipitem.has-lvl .cve2-chiplvl{color:var(--azure-deep)}.app .cve2-chiplvl option{color:var(--ink);background:var(--surface)}.app .cve2-chipx{width:22px;height:22px;flex:none;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:.95rem;line-height:1;cursor:pointer;font-family:var(--sans);display:grid;place-items:center;transition:background var(--t-hover),color var(--t-hover),transform var(--t-press)}.app .cve2-chipx:hover{background:color-mix(in srgb,#b42318 12%,transparent);color:#b42318}.app .cve2-chipx:active{transform:scale(.85)}.app .cve2-chiphint{margin:6px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}.app .cve2-style{display:grid;gap:10px}.app .cve2-style-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.app .cve2-style-lab{font-size:.84rem;font-weight:700;color:var(--ink-2);font-family:var(--sans)}.app .cve2-seg{display:flex;gap:6px;flex-wrap:wrap}.app .cve2-seg-btn{border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-family:var(--sans);font-size:.78rem;font-weight:700;padding:6px 12px;min-height:32px;cursor:pointer;transition:background var(--t-hover),color var(--t-hover),border-color var(--t-hover),transform var(--t-pill)}.app .cve2-seg-btn:hover{border-color:color-mix(in srgb,var(--azure) 45%,var(--line));color:var(--ink)}.app .cve2-seg-btn:active{transform:scale(.94)}.app .cve2-seg-btn.on{background:var(--azure-soft);border-color:var(--azure);color:var(--azure-deep);transform:scale(1.04)}.app .cve2-switch{display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:4px;min-height:32px;cursor:pointer;font-family:var(--sans);font-size:.78rem;font-weight:700;color:var(--muted);transition:color var(--t-hover)}.app .cve2-switch:hover{color:var(--ink-2)}.app .cve2-switch.on{color:var(--azure-deep)}.app .cve2-switch-track{width:38px;height:22px;flex:none;position:relative;border-radius:999px;background:var(--line);border:1px solid var(--line);transition:background var(--t-hover),border-color var(--t-hover)}.app .cve2-switch.on .cve2-switch-track{background:var(--azure);border-color:var(--azure)}.app .cve2-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(10,20,40,.25);transition:transform var(--t-pill)}.app .cve2-switch.on .cve2-switch-knob{transform:translateX(16px)}.app .cve2-switch-t{min-width:26px;text-align:left}.app .cve2-style-hint{margin:0;color:var(--muted);font-size:.76rem;line-height:1.45;font-family:var(--sans)}.app .cve2-style-block{display:grid;gap:8px}.app .cve2-pal{display:grid;gap:7px}.app .cve2-pal-cap{font-family:var(--sans);font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.app .cve2-pal-row{display:flex;flex-wrap:wrap;gap:6px}.app .cve2-pal-row .cve2-dot{width:20px;height:20px}.app .cve2-pop-fmt{display:flex;align-items:center;gap:6px}.app .cve2-fmt-btn{width:30px;height:30px;flex:none;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface-2);color:var(--ink-2);font-family:var(--sans);font-size:.84rem;line-height:1;display:grid;place-items:center;cursor:pointer;transition:border-color var(--t-hover),color var(--t-hover),background var(--t-hover),transform var(--t-press)}.app .cve2-fmt-btn:hover{border-color:var(--azure);color:var(--azure-deep);background:var(--azure-soft)}.app .cve2-fmt-btn:active{transform:scale(.92)}.app .cve2-fmt-b{font-weight:800}.app .cve2-fmt-i{font-style:italic;font-family:var(--serif,Georgia,serif);font-weight:600}.app .cve2-fmt-hint{color:var(--muted);font-size:.7rem;line-height:1.35;font-family:var(--sans)}@media (prefers-reduced-motion:reduce){.app .cve2-acc,.app .cve2-acc-in,.app .cve2-add,.app .cve2-card,.app .cve2-chev,.app .cve2-done,.app .cve2-dot,.app .cve2-fs-x,.app .cve2-gate-print,.app .cve2-gate-up,.app .cve2-in,.app .cve2-miss-btn,.app .cve2-photobar-btn,.app .cve2-pop-apply,.app .cve2-pop-cancel,.app .cve2-rail-btn,.app .cve2-railpanel-x,.app .cve2-ring,.app .cve2-side-fill,.app .cve2-tb,.app .cve2-tile,.app .cve2-tile-ic{transition:none!important}.app .cve2-add:active,.app .cve2-card:hover,.app .cve2-done:active,.app .cve2-dot:active,.app .cve2-dot:hover,.app .cve2-fs-x:active,.app .cve2-gate-print:active,.app .cve2-gate-up:active,.app .cve2-miss-btn:active,.app .cve2-miss-btn:hover,.app .cve2-photobar-btn:active,.app .cve2-pop-apply:active,.app .cve2-rail-btn:active,.app .cve2-railpanel-x:active,.app .cve2-side-fill:active:not(:disabled),.app .cve2-tb:active:not(:disabled),.app .cve2-tile-drop.dragging,.app .cve2-tile:active,.app .cve2-tile:hover,.app .cve2-tile:hover .cve2-tile-ic{transform:none}.app .cve2-chip,.app .cve2-fs,.app .cve2-fs-inner,.app .cve2-gate,.app .cve2-gate-card,.app .cve2-panel,.app .cve2-photobar,.app .cve2-popover,.app .cve2-rail,.app .cve2-railpanel,.app .cve2-tpl{animation:none!important}.app .cve2-live-dot{animation:none}.app .cve2-aibar-undo,.app .cve2-spark,.app .cve2-sparkgo,.app .cve2-todo-all,.app .cve2-todo-run,.app .cve2-todo-text{transition:none!important}.app .cve2-aibar-undo:active,.app .cve2-spark:active,.app .cve2-sparkgo:active:not(:disabled),.app .cve2-todo-all:active:not(:disabled),.app .cve2-todo-run:active:not(:disabled){transform:none}.app .cve2-aibar,.app .cve2-ainote,.app .cve2-sparkpop,.app .cve2-todo-ok{animation:none!important}.app .cve2-paperwrap.ai-busy .cve2-paper{transition:none}.app .cve2-paperwrap.ai-busy:after{animation:none;transform:none;background:color-mix(in srgb,var(--azure) 6%,transparent)}.app .cve2-chipitem{animation:none!important}.app .cve2-chipitem,.app .cve2-chiplvl,.app .cve2-chipx,.app .cve2-seg-btn,.app .cve2-switch,.app .cve2-switch-knob,.app .cve2-switch-track{transition:none!important}.app .cve2-chipx:active,.app .cve2-seg-btn.on,.app .cve2-seg-btn:active{transform:none}.app .cve2-count,.app .cve2-ord-btn,.app .cve2-side-collapse{transition:none!important}.app .cve2-ord-btn:active:not(:disabled),.app .cve2-side-collapse:active{transform:none}.app .cve2-aipanel{animation:none!important}.app .cve2-tb-sparkpanel{transform:none!important}.app .cve2-fmt-btn,.app .cve2-tb-sparkbtn,.app .cve2-tb-sparkpanel{transition:none!important}.app .cve2-fmt-btn:active,.app .cve2-tb-sparkbtn:active{transform:none}}.app .cve2-prem-chip{margin-left:7px;font-size:.64rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--azure-deep);background:var(--azure-soft);border:1px solid var(--azure-line);border-radius:999px;padding:1px 7px;vertical-align:1px}.app .cve2-spark.locked{position:relative}.app .cve2-spark.locked:after{content:"";position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:var(--azure);border:2px solid var(--surface)}.app .cve2-cards,.app .cve2-chipbox,.app .cve2-fold,.app .cve2-grid2,.app .cve2-left,.app .cve2-miss,.app .cve2-pal,.app .cve2-paper,.app .cve2-parsing,.app .cve2-pop-ai,.app .cve2-railpanel,.app .cve2-starter,.app .cve2-style,.app .cve2-style-block,.app .cve2-todo-item,.app .cve2-todo-list{grid-template-columns:minmax(0,1fr)}.app .cve2-left>*,.app .cve2-railpanel>*{min-width:0;max-width:100%}