:root{--color-primary:#4a6cf7;--color-primary-dark:#3754c8;--color-success:#52c41a;--color-success-dark:#389e0d;--color-success-soft-bg:#f6ffed;--color-success-soft-border:#b7eb8f;--color-warning:#faad14;--color-warning-soft-bg:#fffbe6;--color-danger:#f5222d;--color-danger-dark:#cf1322;--color-danger-soft-bg:#fff2f0;--color-info:#1890ff;--color-orange:#fa8c16;--color-purple:#722ed1;--color-purple-soft-bg:#f9f0ff;--color-purple-soft-border:#d3adf7;--color-ins-bg:#d9f7be;--color-ins-text:#237804;--color-del-bg:#ffe7e6;--color-del-text:#cf1322;--color-text:#1f2430;--color-text-sub:#4b5563;--color-text-muted:#9ca3af;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--bg-canvas:#fafbfc;--bg-card:#fff;--bg-subtle:#f5f7fa;--bg-hover:#f0f5ff;--status-draft:#9ca3af;--status-submitted:#1890ff;--status-under-review:#fa8c16;--status-approved:#52c41a;--status-rework:#f5222d;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:20px;--space-xl:24px;--space-xxl:32px;--radius-sm:3px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #00000026;--font-xs:11px;--font-sm:12px;--font-md:13px;--font-lg:14px;--font-card-title:15px;--font-card-title-lg:17px;--font-section:20px;--font-page:28px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}body{color:var(--color-text);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.6}@keyframes flashHighlight{0%,20%{box-shadow:0 0 0 3px #4a6cf78c}to{box-shadow:0 0 #0000}}.flash-highlight{animation:2s ease-out flashHighlight}:root{--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--gray-0:#fff;--gray-50:#fafafa;--gray-100:#f5f5f7;--gray-150:#eeeef0;--gray-200:#e5e5ea;--gray-300:#d2d2d7;--gray-400:#aeaeb2;--gray-500:#8e8e93;--gray-600:#6e6e73;--gray-700:#48484a;--gray-800:#1d1d1f;--gray-900:#000;--blue:#0071e3;--blue-hover:#0058b8;--blue-soft:#e7f1fc;--blue-ring:#0071e32e;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--purple:#af52de;--yellow:#fc0;--status-rework:#ff3b30;--status-draft:#ff9500;--status-submitted:#8e8e93;--status-review:#ff9500;--status-approved:#34c759;--status-rework-done:#af52de;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:980px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 1px 2px #0000000a, 0 4px 12px #0000000f;--shadow-lg:0 4px 12px #00000014, 0 16px 48px #0000001a;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:28px;--text-3xl:34px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);background:var(--gray-100);color:var(--gray-800);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}button{font-family:inherit}.upload-page{justify-content:center;align-items:center;gap:var(--sp-6);flex-direction:column;min-height:100vh;display:flex}.upload-page h1{font-size:var(--text-2xl);color:var(--gray-800);letter-spacing:-.022em;font-weight:600}.upload-area{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--gray-0);padding:48px 64px;transition:border-color .2s,background .2s}.upload-area:hover,.upload-area.dragging{border-color:var(--blue);background:var(--blue-soft)}.upload-area p{color:var(--gray-600);margin-top:var(--sp-2)}.upload-page .error{color:var(--red);font-size:var(--text-base)}.annotation-layout{height:100vh;display:flex;overflow:hidden}.checklist-panel{background:var(--gray-50);border-right:1px solid var(--gray-150);flex-direction:column;width:280px;min-width:280px;display:flex;overflow:hidden}.checklist-header{padding:var(--sp-4);border-bottom:1px solid var(--gray-150)}.checklist-header h3{font-size:var(--text-md);margin-bottom:var(--sp-2);letter-spacing:-.01em;font-weight:600}.checklist-header select{border:1px solid var(--gray-300);border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);background:var(--gray-0);margin-bottom:6px;padding:7px 10px}.checklist-stats{padding:var(--sp-2) var(--sp-4);background:var(--gray-100);border-bottom:1px solid var(--gray-150);font-size:var(--text-sm);color:var(--gray-600);gap:var(--sp-3);font-feature-settings:"tnum";align-items:center;display:flex}.checklist-stats .grade{border-radius:var(--radius-pill);font-weight:600;font-size:var(--text-xs);padding:1px 8px}.grade-A{color:#1f7a3a;background:#34c75924}.grade-B{color:#b85f00;background:#ff950024}.grade-C{color:#c01406;background:#ff3b301f}.points-list{padding:var(--sp-2) 0;flex:1;overflow-y:auto}.point-item{padding:10px var(--sp-5);cursor:pointer;align-items:flex-start;gap:var(--sp-3);font-size:var(--text-sm);border-left:3px solid #0000;transition:background .12s;display:flex}.point-item .point-body{flex:1;min-width:0}.point-item .point-title-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.point-item .stance-badge{font-size:var(--text-xs);color:#475569;background:var(--gray-200);border-radius:var(--radius-pill);flex-shrink:0;padding:1px 7px;font-weight:500}.point-item .point-elements{font-size:var(--text-xs);color:var(--gray-500);word-break:break-word;margin-top:2px;line-height:1.4}.point-item:hover{background:var(--gray-100)}.point-item.active{background:var(--blue-soft);border-left-color:var(--blue)}.point-item.annotated{color:var(--green)}.point-item.missing-annotated{color:var(--orange)}.point-item .status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:7px}.status-dot.done{background:var(--green)}.status-dot.missing-done{background:var(--orange)}.status-dot.pending{background:var(--gray-300)}.point-item .required-badge{color:var(--red);border-radius:var(--radius-pill);background:#ff3b301f;flex-shrink:0;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:600}.document-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.document-toolbar{padding:10px var(--sp-4);-webkit-backdrop-filter:saturate(180%)blur(20px);align-items:center;gap:var(--sp-3);font-size:var(--text-sm);background:#ffffffc7;border-bottom:1px solid #0000000f;display:flex}.document-toolbar .filename{color:var(--gray-800);letter-spacing:-.01em;font-weight:600}.document-toolbar button{border-radius:var(--radius-pill);background:var(--gray-150);color:var(--gray-800);cursor:pointer;font-size:var(--text-sm);border:none;padding:6px 14px;font-weight:500;transition:opacity .15s,transform 80ms,background .15s}.document-toolbar button:hover{background:var(--gray-200)}.document-toolbar button:active{transform:scale(.97)}.document-toolbar button.primary{background:var(--blue);color:#fff}.document-toolbar button.primary:hover{background:var(--blue-hover)}.document-content{padding:var(--sp-6) var(--sp-8);background:var(--gray-0);flex:1;overflow-y:auto}.doc-element{border-radius:var(--radius-sm);cursor:text;font-size:var(--text-md);margin-bottom:2px;padding:6px 12px;line-height:1.75;transition:background .12s;position:relative}.doc-element:hover{background:var(--gray-100)}.element-highlight-saved{box-shadow:inset 3px 0 0 var(--blue);cursor:pointer;background:#0071e314!important}.element-highlight-pending{box-shadow:inset 3px 0 0 var(--blue);background:#0071e324!important}.element-clickable{cursor:pointer}.element-clickable:hover{background:var(--blue-soft)!important}.doc-element.element-suggested{background:#fff8e1;padding-right:56px;box-shadow:inset 3px 0 #ffc107}.doc-element.element-suggested:after{content:"建议";color:#b85f00;pointer-events:none;opacity:.85;z-index:1;background:#ffc107d9;border-radius:8px;padding:1px 7px;font-size:10px;font-weight:500;line-height:1.4;transition:opacity .12s;position:absolute;top:6px;right:8px}.doc-element.element-suggested:hover:after{opacity:1}.doc-element.element-suggested:hover{background:#ffecb3!important}.doc-table{border-collapse:collapse;width:100%;margin:var(--sp-2) 0;font-size:var(--text-base)}.doc-table td,.doc-table th{border:1px solid var(--gray-200);text-align:left;padding:8px 10px}.doc-table tr:hover td{background:var(--gray-50)}.annotation-panel{background:var(--gray-50);border-left:1px solid var(--gray-150);flex-direction:column;width:380px;min-width:380px;display:flex;overflow:hidden}.annotation-panel-header{padding:var(--sp-4);border-bottom:1px solid var(--gray-150);-webkit-backdrop-filter:saturate(180%)blur(12px);background:#fff9;justify-content:space-between;align-items:center;display:flex}.annotation-panel-header h3{font-size:var(--text-md);letter-spacing:-.01em;font-weight:600}.annotation-form{padding:var(--sp-4);background:var(--gray-50);flex:1;overflow-y:auto}.form-group{margin-bottom:var(--sp-4)}.form-group label{font-size:var(--text-xs);color:var(--gray-600);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-weight:600;display:block}.form-group textarea,.form-group select,.form-group input{border:1px solid var(--gray-300);border-radius:var(--radius-md);width:100%;font-size:var(--text-base);resize:vertical;background:var(--gray-0);padding:9px 12px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.form-group textarea{min-height:80px}.form-group textarea.textarea-tall{min-height:140px}.form-group textarea:focus,.form-group select:focus,.form-group input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring);outline:none}.selected-text-preview{background:var(--gray-0);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--gray-700);white-space:pre-wrap;max-height:120px;padding:10px 12px;line-height:1.6;overflow-y:auto}.selection-chips{margin-top:var(--sp-2);flex-wrap:wrap;gap:6px;display:flex}.selection-chip{background:var(--blue-soft);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--blue);align-items:center;gap:4px;padding:3px 10px;font-weight:500;display:flex}.selection-chip button{cursor:pointer;color:var(--gray-500);background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.selection-chip button:hover{color:var(--red)}.form-actions{padding:var(--sp-4);border-top:1px solid var(--gray-150);gap:var(--sp-2);background:var(--gray-0);display:flex}.form-actions button{padding:9px var(--sp-4);border-radius:var(--radius-pill);font-size:var(--text-sm);cursor:pointer;background:var(--gray-150);color:var(--gray-800);border:none;flex:1;font-weight:500;transition:background .15s,transform 80ms,opacity .15s}.form-actions button:hover{background:var(--gray-200)}.form-actions button:active{transform:scale(.98)}.form-actions button:disabled{opacity:.5;cursor:not-allowed;transform:none}.form-actions button.save{background:var(--blue);color:#fff}.form-actions button.save:hover{background:var(--blue-hover)}.form-actions button.delete{color:var(--red);border:1px solid var(--red);background:0 0}.form-actions button.delete:hover{background:#ff3b300f}.annotation-list{padding:var(--sp-2) var(--sp-4);flex:1;overflow-y:auto}.annotation-card{background:var(--gray-0);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:var(--sp-3);margin-bottom:var(--sp-2);cursor:pointer;transition:box-shadow .15s,border-color .15s}.annotation-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-sm)}.annotation-card.active{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring)}.annotation-card .term{font-weight:600;font-size:var(--text-base);color:var(--gray-800);letter-spacing:-.01em}.annotation-card .type-badge{font-size:var(--text-xs);border-radius:var(--radius-pill);margin-left:6px;padding:2px 8px;font-weight:500}.type-badge.three_part{color:#1f7a3a;background:#34c75924}.type-badge.two_part{background:var(--blue-soft);color:var(--blue)}.type-badge.missing{color:#b85f00;background:#ff950024}.annotation-card .preview{font-size:var(--text-sm);color:var(--gray-600);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;display:-webkit-box;overflow:hidden}.annotation-list.compact .annotation-card{border-radius:var(--radius-sm);margin-bottom:4px;padding:6px 10px}.annotation-list.compact .annotation-card .preview{font-size:var(--text-xs);-webkit-line-clamp:1;margin-top:3px}.annotation-list.compact .annotation-card .type-badge{padding:1px 6px;font-size:10px}.empty-state{text-align:center;color:var(--gray-500);font-size:var(--text-base);padding:32px 16px}.empty-state .mascot-decoration{opacity:.85;margin:0 auto 12px;display:block}@keyframes mascot-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8%)}}.mascot-anim-bounce{transform-origin:bottom;animation:1.4s ease-in-out infinite mascot-bounce}@keyframes mascot-wave{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.mascot-anim-wave{transform-origin:50% 80%;animation:1.6s ease-in-out infinite mascot-wave}@keyframes mascot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.mascot-anim-pulse{transform-origin:50%;animation:2.4s ease-in-out infinite mascot-pulse}@keyframes mascot-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}.mascot-anim-pop{animation:.45s cubic-bezier(.34,1.56,.64,1) forwards mascot-pop}@media (prefers-reduced-motion:reduce){.mascot-anim-bounce,.mascot-anim-wave,.mascot-anim-pulse,.mascot-anim-pop{animation:none}}.list-section-label{padding:var(--sp-3) var(--sp-5) var(--sp-1);font-size:var(--text-xs);color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.list-group-divider{font-size:var(--text-sm);color:var(--gray-700);border-bottom:1px solid var(--gray-150);letter-spacing:-.01em;margin-bottom:4px;padding:4px 0;font-weight:600}.toast{top:var(--sp-4);right:var(--sp-4);border-radius:var(--radius-md);color:#fff;font-size:var(--text-sm);z-index:1000;box-shadow:var(--shadow-md);letter-spacing:-.01em;padding:12px 18px;font-weight:500;animation:.2s fadeIn;position:fixed}.toast.success{background:var(--green)}.toast.error{background:var(--red)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.recommend-tooltip{-webkit-backdrop-filter:saturate(200%)blur(28px);color:var(--gray-800);font-family:var(--font-sans);letter-spacing:-.01em;white-space:normal;word-break:break-word;pointer-events:none;z-index:1500;background:linear-gradient(135deg,#f0f7fef0 0%,#dcebfaf0 100%);border:1px solid #0071e329;border-radius:10px;min-width:180px;max-width:320px;padding:10px 14px;font-size:12.5px;font-weight:500;line-height:1.55;animation:.16s cubic-bezier(.2,.8,.2,1) tooltipIn;transform:translateY(-50%);box-shadow:inset 0 1px #ffffffb3,0 4px 16px #0071e31a,0 12px 32px #00000014}.recommend-tooltip .tip-headline{color:var(--blue);letter-spacing:-.01em;margin-bottom:4px;font-size:13px;font-weight:600}.recommend-tooltip .tip-headline.tip-muted{color:var(--gray-600)}.recommend-tooltip .tip-detail{color:var(--gray-700);margin-top:3px;font-size:12px;font-weight:500}.recommend-tooltip .tip-num{font-feature-settings:"tnum";color:var(--gray-800);font-weight:600}.recommend-tooltip .tip-emph{color:var(--blue);font-weight:600}@keyframes tooltipIn{0%{opacity:0;transform:translate(-6px,-50%)}to{opacity:1;transform:translateY(-50%)}}.template-warning-banner{-webkit-backdrop-filter:blur(20px);margin:var(--sp-4) var(--sp-6);background:linear-gradient(135deg,#ff9f0a14 0%,#ffb8000d 100%);border:1px solid #ff950038;border-radius:12px;overflow:hidden}.template-warning-banner .tw-banner-header{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;padding:12px 16px;transition:background .12s;display:flex}.template-warning-banner .tw-banner-header:hover{background:#ffffff4d}.template-warning-banner .tw-banner-header:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.template-warning-banner .tw-banner-icon{filter:drop-shadow(0 0 6px #ff950059);flex-shrink:0;font-size:16px}.template-warning-banner .tw-banner-text{flex:1;min-width:0}.template-warning-banner .tw-banner-title{color:var(--gray-800);letter-spacing:-.01em;font-size:13px;line-height:1.5}.template-warning-banner .tw-banner-rule{color:var(--gray-700);letter-spacing:-.005em;margin-top:4px;font-size:12.5px;font-weight:500;line-height:1.55}.template-warning-banner .tw-banner-hint{color:var(--gray-600);letter-spacing:-.005em;margin-top:3px;font-size:12.5px;line-height:1.55}.template-warning-banner .tw-banner-count{color:#b8520a;font-feature-settings:"tnum";margin:0 2px;font-weight:600}.template-warning-banner .tw-banner-chevron{color:var(--gray-500);flex-shrink:0;font-size:13px;line-height:1;transition:transform .2s ease-out,color .15s}.template-warning-banner .tw-banner-header:hover .tw-banner-chevron{color:var(--gray-700)}.template-warning-banner .tw-banner-chevron-up{transform:rotate(180deg)}.template-warning-banner .tw-banner-list{background:#ffffff8c;border-top:1px solid #ff95002e;max-height:240px;overflow-y:auto}.template-warning-banner .tw-banner-row{cursor:pointer;-webkit-tap-highlight-color:transparent;border-bottom:1px solid #0000000a;align-items:center;gap:12px;padding:10px 16px;transition:background .12s;display:flex}.template-warning-banner .tw-banner-row:last-child{border-bottom:none}.template-warning-banner .tw-banner-row:hover{background:#ffffffd9}.template-warning-banner .tw-banner-row:active{background:#0071e30f}.template-warning-banner .tw-banner-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.template-warning-banner .tw-banner-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.template-warning-banner .tw-banner-row-label{color:#b8520a;letter-spacing:-.01em;font-size:11px;font-weight:500}.template-warning-banner .tw-banner-row-snippet{color:var(--gray-600);white-space:nowrap;text-overflow:ellipsis;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;overflow:hidden}.template-warning-banner .tw-banner-row-arrow{color:var(--gray-500);flex-shrink:0;font-size:14px;line-height:1;transition:transform .15s ease-out,color .15s}.template-warning-banner .tw-banner-row:hover .tw-banner-row-arrow{color:var(--blue);transform:translate(3px)}.template-warning-banner .tw-banner-confirm-bar{background:#ffffff8c;border-top:1px solid #ff95002e;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.template-warning-banner .tw-banner-leave,.template-warning-banner .tw-banner-confirm{letter-spacing:-.01em;cursor:pointer;white-space:nowrap;border:none;border-radius:999px;padding:7px 16px;font-size:13px;font-weight:500;transition:filter .15s,background .15s,transform 80ms}.template-warning-banner .tw-banner-leave{color:var(--gray-800);background:#0000000f}.template-warning-banner .tw-banner-leave:hover{background:#0000001a}.template-warning-banner .tw-banner-confirm{color:#fff;background:linear-gradient(#ffac1f 0%,#ff9500 100%);box-shadow:0 1px 3px #ff95004d}.template-warning-banner .tw-banner-confirm:hover{filter:brightness(1.05)}.template-warning-banner .tw-banner-confirm:active{transform:scale(.97)}@keyframes tw-banner-pulse{0%{transform:scale(1);box-shadow:0 0 #ff950080}50%{transform:scale(1.004);box-shadow:0 0 0 8px #ff950000}to{transform:scale(1);box-shadow:0 0 #ff950000}}.template-warning-banner.tw-pulsing{animation:.7s ease-out tw-banner-pulse}.annotation-layout.tw-blocked,.annotation-layout.tw-blocked *{cursor:not-allowed!important}.annotation-layout.tw-blocked button,.annotation-layout.tw-blocked select,.annotation-layout.tw-blocked input,.annotation-layout.tw-blocked textarea,.annotation-layout.tw-blocked a,.annotation-layout.tw-blocked [role=button],.annotation-layout.tw-blocked [contenteditable]{pointer-events:none}.annotation-layout.tw-blocked:after{content:"";z-index:50;-webkit-backdrop-filter:blur(.5px);pointer-events:none;background:#fff6;animation:.2s ease-out tw-overlay-fade-in;position:absolute;inset:0}@keyframes tw-overlay-fade-in{0%{opacity:0}to{opacity:1}}.cl-page{gap:var(--sp-3);flex-direction:column;display:flex}.cl-meta-row{justify-content:flex-start;align-items:center;gap:var(--sp-3);padding:0 var(--sp-1);font-size:var(--text-sm);color:var(--gray-600);letter-spacing:-.005em;flex-wrap:wrap;flex-shrink:0;display:flex}.cl-meta-text{color:var(--gray-600)}.cl-meta-text b{color:var(--gray-800);font-weight:500}.cl-dirty-badge{color:#ff9500;font-weight:500;font-size:var(--text-sm);border-radius:var(--radius-pill);background:#ff95001a;border:1px solid #ff95004d;margin-left:auto;padding:3px 10px}.cl-error-inline{color:#c32a23;font-size:var(--text-sm);border-radius:var(--radius-pill);background:#ff3b3014;border:1px solid #ff3b3040;padding:3px 10px}.cl-content{border:1px solid var(--gray-150);border-radius:var(--radius-lg);background:#fff;height:calc(100vh - 200px);min-height:360px;display:flex;overflow:hidden;box-shadow:0 1px 3px #00000008}.cl-sidebar{background:var(--gray-50,#fafafa);border-right:1px solid var(--gray-150);flex-direction:column;flex-shrink:0;width:240px;min-height:0;display:flex}.cl-sidebar-head{padding:var(--sp-4) var(--sp-4) var(--sp-2);letter-spacing:.04em;text-transform:uppercase;color:var(--gray-500);flex-shrink:0;font-size:11.5px;font-weight:600}.cl-sidebar-list{padding:0 var(--sp-2);flex:1;overflow-y:auto}.cl-side-item{border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%;font-family:inherit;font-size:var(--text-sm);color:var(--gray-700);letter-spacing:-.005em;background:0 0;border:none;justify-content:space-between;align-items:center;margin-bottom:1px;padding:8px 12px;transition:background .12s,color .12s;display:flex}.cl-side-item:hover{background:#0000000a}.cl-side-item.active{background:var(--blue);color:#fff}.cl-side-item.active .cl-side-count{color:#fff;background:#ffffff38}.cl-side-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cl-side-count{font-feature-settings:"tnum";color:var(--gray-500);background:var(--gray-150);border-radius:var(--radius-pill);margin-left:var(--sp-2);flex-shrink:0;padding:1px 8px;font-size:11px;font-weight:500}.cl-sidebar-foot{padding:var(--sp-3);border-top:1px solid var(--gray-150);flex-shrink:0}.cl-side-add{border-radius:var(--radius-md);border:1px dashed var(--gray-300);width:100%;color:var(--gray-600);font-size:var(--text-sm);cursor:pointer;background:0 0;padding:8px 12px;font-family:inherit;transition:background .12s,color .12s,border-color .12s}.cl-side-add:hover{border-color:var(--blue);color:var(--blue);background:#0071e30d}.cl-side-add-form{gap:var(--sp-2);flex-direction:column;display:flex}.cl-side-add-input{border:1px solid var(--blue);border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);box-sizing:border-box;background:#fff;padding:7px 10px;font-family:inherit;box-shadow:0 0 0 3px #0071e326}.cl-side-add-input:focus{outline:none}.cl-side-add-actions{gap:var(--sp-2);display:flex}.cl-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.cl-main-head{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--gray-150);flex-shrink:0;display:flex}.cl-main-title{align-items:baseline;gap:var(--sp-3);min-width:0;display:flex}.cl-main-title h2{letter-spacing:-.022em;color:var(--gray-800);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;font-weight:600;overflow:hidden}.cl-main-sub{color:var(--gray-500);font-feature-settings:"tnum";letter-spacing:-.005em;flex-shrink:0;font-size:12.5px}.cl-hier-drawer{border-bottom:1px solid var(--gray-150);background:var(--gray-50,#fafafa);flex-shrink:0}.cl-hier-toggle{align-items:center;gap:var(--sp-2);width:100%;padding:10px var(--sp-5);cursor:pointer;color:var(--gray-700);letter-spacing:-.005em;text-align:left;background:0 0;border:none;font-family:inherit;font-size:12.5px;transition:background .12s;display:flex}.cl-hier-toggle:hover{background:#00000006}.cl-hier-toggle-chevron{color:var(--gray-500);width:12px;font-size:11px;transition:transform .18s ease-out;display:inline-block}.cl-hier-drawer.open .cl-hier-toggle-chevron{transform:rotate(180deg)}.cl-hier-toggle-hint{color:var(--gray-500);margin-left:auto;font-size:11.5px}.cl-hier-body{padding:var(--sp-3) var(--sp-5) var(--sp-4);border-top:1px solid var(--gray-150);background:#fff}.cl-hier-actions{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--gray-200);justify-content:flex-end;display:flex}.cl-table-scroll{flex:1;min-height:0;overflow:auto}.cl-main-foot{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--gray-150);background:var(--gray-50,#fafafa);flex-shrink:0}.cl-toggle-label{align-items:center;gap:var(--sp-2);color:var(--gray-600);cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:-.005em;white-space:nowrap;font-size:12.5px;display:inline-flex}.cl-empty-state{color:var(--gray-500);font-size:var(--text-sm);padding:var(--sp-8);flex:1;justify-content:center;align-items:center;display:flex}.cl-btn-primary{border-radius:var(--radius-pill);background:var(--blue);color:#fff;font-size:var(--text-sm);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;border:none;padding:7px 14px;font-weight:500;transition:background .12s,transform 80ms}.cl-btn-primary:hover{background:var(--blue-hover)}.cl-btn-primary:active{transform:scale(.97)}.cl-btn-primary:disabled{opacity:.5;cursor:not-allowed}.cl-btn-primary.cl-btn-sm{padding:6px 12px;font-size:12.5px}.cl-btn-ghost{border-radius:var(--radius-pill);border:1px solid var(--gray-200);color:var(--gray-700);font-size:var(--text-sm);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;background:#fff;padding:7px 14px;font-weight:500;transition:background .12s,border-color .12s}.cl-btn-ghost:hover{background:var(--gray-100);border-color:var(--gray-300)}.cl-btn-link{color:var(--blue);cursor:pointer;border-radius:var(--radius-sm);letter-spacing:-.005em;background:0 0;border:none;padding:3px 8px;font-size:12px;transition:background .12s}.cl-btn-link:hover{background:#0071e314}.cl-btn-link.cl-danger{color:#ff3b30}.cl-btn-link.cl-danger:hover{background:#ff3b3014}.cl-tree-wrap{padding:var(--sp-4) var(--sp-5)}.cl-tree-node{font-size:var(--text-sm)}.cl-tree-row{align-items:center;gap:var(--sp-2);padding:4px 0;display:flex}.cl-tree-dot{color:var(--gray-400);justify-content:center;width:14px;font-size:8px;display:inline-flex}.cl-tree-input{border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--gray-800);background:0 0;border:1px solid #0000;width:240px;padding:5px 10px;font-family:inherit;transition:background .12s,border-color .12s}.cl-tree-input:hover{background:var(--gray-100)}.cl-tree-input:focus{border-color:var(--blue);background:#fff;outline:none;box-shadow:0 0 0 2px #0071e31f}.cl-tree-tag{color:var(--blue);border-radius:var(--radius-pill);letter-spacing:-.01em;background:#0071e31a;padding:1px 7px;font-size:10.5px;font-weight:500}.cl-tree-children{margin-left:var(--sp-5);padding-left:var(--sp-3);border-left:1px dashed var(--gray-200)}.cl-toggle-label{align-items:center;gap:var(--sp-2);color:var(--gray-600);cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:-.005em;font-size:12.5px;display:inline-flex}.cl-toggle-label input{cursor:pointer;width:14px;height:14px}.cl-table-wrap{border-top:1px solid var(--gray-150);overflow-x:auto}.cl-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.cl-table th{text-align:left;background:var(--gray-100);color:var(--gray-700);letter-spacing:-.005em;white-space:nowrap;border-bottom:1px solid var(--gray-200);z-index:1;padding:10px 12px;font-size:12px;font-weight:500;position:sticky;top:0}.cl-table th.cl-th-internal{color:var(--blue);background:#0071e30a}.cl-table th.cl-col-num,.cl-table td.cl-col-num{text-align:right;width:48px;padding-right:10px}.cl-table th.cl-col-action,.cl-table td.cl-col-action{text-align:center;width:64px}.cl-table td{border-bottom:1px solid var(--gray-100);vertical-align:top;padding:7px 10px}.cl-table td.cl-td-internal{background:#0071e304}.cl-table tbody tr:hover td{background:#0071e306}.cl-table tbody tr:hover td.cl-td-internal{background:#0071e30d}.cl-rownum{color:var(--gray-400);font-feature-settings:"tnum";padding-top:13px;font-size:11.5px}.cl-empty-row{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--gray-500);font-size:var(--text-sm)}.cl-empty-state{padding:var(--sp-8);text-align:center;color:var(--gray-500);background:var(--gray-100);border-radius:var(--radius-lg);font-size:var(--text-sm)}.cl-add-row{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--gray-150);background:var(--gray-50,#fafafa)}.cl-cell-checkbox{cursor:pointer;width:16px;height:16px}.cl-cell-input,.cl-cell-select,.cl-cell-textarea{border-radius:var(--radius-sm);background:var(--gray-100,#00000006);width:100%;color:var(--gray-800);letter-spacing:-.005em;border:1px solid #0000;padding:6px 9px;font-family:inherit;font-size:12px;transition:background .12s,border-color .12s,box-shadow .12s}.cl-cell-input:hover,.cl-cell-select:hover,.cl-cell-textarea:hover{background:#0000000a}.cl-cell-input:focus,.cl-cell-select:focus,.cl-cell-textarea:focus{border-color:var(--blue);background:#fff;outline:none;box-shadow:0 0 0 2px #0071e31f}.cl-cell-textarea{resize:vertical;min-height:30px;line-height:1.5}.cl-cell-select{cursor:pointer}.page-card{border:1px solid var(--gray-150);border-radius:var(--radius-lg);background:#fff;flex-direction:column;height:calc(100vh - 200px);min-height:360px;display:flex;overflow:hidden;box-shadow:0 1px 3px #00000008}.page-card-head{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--gray-150);background:var(--gray-50,#fafafa);align-items:center;gap:var(--sp-3);flex-wrap:wrap;flex-shrink:0;display:flex}.page-card-head-spacer{flex:1}.page-card-head-count{font-size:var(--text-sm);color:var(--gray-600);font-feature-settings:"tnum"}.page-card-body{flex:1;min-height:0;overflow:auto}.page-card-foot{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--gray-150);background:var(--gray-50,#fafafa);flex-shrink:0}.page-card-body .task-table{box-shadow:none;border:none;border-radius:0}.page-card-body .task-table thead th{z-index:2;background:var(--gray-100);position:sticky;top:0}.page-card-body .empty-state{justify-content:center;align-items:center;height:100%;display:flex}.auth-page{background:linear-gradient(135deg, var(--gray-100) 0%, var(--gray-150) 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--gray-0);border-radius:var(--radius-xl);padding:var(--sp-8);width:400px;max-width:90vw;box-shadow:var(--shadow-lg)}.auth-card h1{font-size:var(--text-2xl);color:var(--gray-800);text-align:center;margin-bottom:var(--sp-2);letter-spacing:-.022em;font-weight:600}.auth-card h2{font-size:var(--text-md);color:var(--gray-500);text-align:center;margin-bottom:var(--sp-6);font-weight:500}.auth-card .form-group{margin-bottom:var(--sp-4)}.auth-card .form-group label{font-size:var(--text-xs);color:var(--gray-600);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-weight:600;display:block}.auth-card .form-group input,.auth-card .form-group select{border:1px solid var(--gray-300);border-radius:var(--radius-md);width:100%;font-size:var(--text-base);background:var(--gray-0);padding:10px 12px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.auth-card .form-group input:focus,.auth-card .form-group select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring);outline:none}.auth-card .error{color:var(--red);font-size:var(--text-sm);margin-bottom:var(--sp-3)}.btn-primary{border-radius:var(--radius-pill);background:var(--blue);color:#fff;width:100%;font-size:var(--text-md);cursor:pointer;letter-spacing:-.01em;border:none;padding:11px 20px;font-weight:500;transition:background .15s,transform 80ms,opacity .15s}.btn-primary:hover{background:var(--blue-hover)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-link{text-align:center;margin-top:var(--sp-4);font-size:var(--text-sm);color:var(--gray-600)}.auth-link a{color:var(--blue);font-weight:500;text-decoration:none}.auth-link a:hover{text-underline-offset:2px;text-decoration:underline}.task-list-page{max-width:1280px;padding:var(--sp-6);box-sizing:border-box;flex-direction:column;height:100vh;margin:0 auto;display:flex}.task-list-header{margin-bottom:var(--sp-6);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.tlp-scroll{flex:1;min-height:0;overflow:visible auto}.task-list-header h1{font-size:var(--text-2xl);color:var(--gray-800);letter-spacing:-.022em;font-weight:600}.user-info{font-size:var(--text-sm);color:var(--gray-600);margin-left:var(--sp-4)}.role-badge{font-size:var(--text-xs);border-radius:var(--radius-pill);background:var(--blue-soft);color:var(--blue);margin-left:6px;padding:2px 9px;font-weight:500}.header-actions{gap:var(--sp-2);align-items:center;display:flex}.btn-secondary{border-radius:var(--radius-pill);background:var(--gray-150);color:var(--gray-800);cursor:pointer;font-size:var(--text-sm);letter-spacing:-.01em;border:none;padding:7px 16px;font-weight:500;transition:background .15s,transform 80ms,opacity .15s}.btn-secondary:hover{background:var(--gray-200)}.btn-secondary:active{transform:scale(.97)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-text{cursor:pointer;font-size:var(--text-sm);color:var(--gray-500);border-radius:var(--radius-pill);background:0 0;border:none;padding:6px 12px;transition:color .15s,background .15s}.btn-text:hover{color:var(--gray-800);background:var(--gray-150)}.btn-link{cursor:pointer;color:var(--blue);font-size:var(--text-sm);letter-spacing:-.01em;background:0 0;border:none;padding:0;font-weight:500;transition:opacity .15s}.btn-link:hover{opacity:.7;text-underline-offset:2px;text-decoration:underline}.btn-link:disabled{opacity:.4;cursor:not-allowed}.task-list-filters{margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-list-filters select,.task-list-filters input[type=text]{border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--gray-0);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%238e8e93' d='M5 6L0 0h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:7px 30px 7px 12px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.task-list-filters select:focus,.task-list-filters input[type=text]:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring);outline:none}.task-list-filters input[type=text]{background-image:none;padding-right:12px}.task-table{border-collapse:separate;border-spacing:0;background:var(--gray-0);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm);border:1px solid #0000000f;overflow:hidden}.task-table th{text-align:left;padding:10px var(--sp-4);background:var(--gray-50);border-bottom:1px solid var(--gray-200);font-size:var(--text-xs);color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.task-table td{padding:12px var(--sp-4);border-bottom:1px solid var(--gray-150);font-size:var(--text-sm);vertical-align:top}.task-table tr:last-child td{border-bottom:none}.task-table tr:hover td{background:var(--gray-50)}.collapse-group .task-table{box-shadow:none;border:none;border-radius:0}.collapse-group .task-table th{background:var(--gray-0)}.filename-cell{max-width:320px}.filename-cell>div:first-child{color:var(--gray-800);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.status-badge{border-radius:var(--radius-pill);font-size:var(--text-xs);color:#fff;padding:2px 9px;font-weight:500;display:inline-block}.status-badge-toolbar{font-size:var(--text-xs);border-radius:var(--radius-pill);background:var(--blue-soft);color:var(--blue);padding:2px 9px;font-weight:500}.badge-internal{border-radius:var(--radius-pill);font-size:inherit;vertical-align:middle;color:#6a4500;isolation:isolate;background:linear-gradient(135deg,#ffd94a 0%,#ffe97a 50%,#ffd94a 100%);align-items:center;padding:1px 8px;line-height:1.5;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 0 3px #f5c51873}.badge-internal:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff8c 50%,#0000 100%);width:40%;height:100%;animation:3.2s ease-in-out infinite badge-internal-shine;position:absolute;top:0;left:-60%;transform:skew(-20deg)}@keyframes badge-internal-shine{0%{left:-60%}60%{left:120%}to{left:120%}}.badge-internal-label{z-index:1;background:linear-gradient(90deg,#c2185b 0%,#6a1b9a 25%,#1565c0 50%,#00838f 75%,#c2185b 100%) 0 0/200% 100%;-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:600;animation:4s linear infinite badge-internal-hue;position:relative}@keyframes badge-internal-hue{0%{background-position:0 0}to{background-position:200% 0}}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#0006;justify-content:center;align-items:center;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--gray-0);border-radius:var(--radius-xl);padding:var(--sp-8);min-width:400px;max-width:90vw;box-shadow:var(--shadow-lg)}.modal-content h3{margin-bottom:var(--sp-4);font-size:var(--text-lg);letter-spacing:-.02em;font-weight:600}.admin-page{max-width:1280px;padding:var(--sp-6);margin:0 auto}.dashboard-grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));display:grid}.dashboard-card{background:var(--gray-0);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);border:1px solid #0000000f}.dashboard-card h3{font-size:var(--text-md);color:var(--gray-800);margin-bottom:var(--sp-4);letter-spacing:-.01em;font-weight:600}.stat-grid{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.stat-item{text-align:center;padding:var(--sp-2);background:var(--gray-100);border-radius:var(--radius-md)}.stat-num{font-size:var(--text-2xl);color:var(--gray-800);letter-spacing:-.02em;font-feature-settings:"tnum";font-weight:600;display:block}.stat-label{font-size:var(--text-xs);color:var(--gray-500)}.simple-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.simple-table th,.simple-table td{text-align:left;border-bottom:1px solid var(--gray-150);padding:8px 10px}.muted{color:var(--gray-500);font-size:var(--text-sm)}.document-toolbar button.danger{background:var(--red);color:#fff}.document-toolbar button.danger:hover{background:#d62b22}@keyframes pulseGreen{0%,to{box-shadow:0 0 #34c75999}50%{box-shadow:0 0 0 8px #34c75900}}.document-toolbar button.pulse-ready{color:#fff;animation:1.6s ease-in-out infinite pulseGreen;background:var(--green)!important}@keyframes elemFlash{0%,to{background:0 0}30%{background:#ffcc0052}}.doc-element.element-flash{animation:1.6s ease-in-out elemFlash}@keyframes cardFlash{0%{transform:translate(0);box-shadow:0 0 #ff95008c,0 0 #ff95004d}15%{transform:translate(2px);box-shadow:0 0 0 4px #ff9500d9,0 8px 22px #ff950073}30%{transform:translate(0);box-shadow:0 0 0 4px #ff9500d9,0 8px 22px #ff950073}55%{box-shadow:0 0 0 3px #ff950080,0 6px 14px #ff950040}to{box-shadow:0 0 0 2px #ff950059,0 0 #ff950000}}.annotation-card.rework-jump-flash{animation:1.8s ease-out cardFlash;border-color:var(--orange)!important}@keyframes pointFlash{0%{background:0 0;border-left-color:#0000}15%{border-left-color:var(--orange);background:#ff950024}60%{border-left-color:var(--orange);background:#ff950024}to{background:0 0;border-left-color:#0000}}.point-item.rework-jump-flash{animation:1.8s ease-out pointFlash}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.bar-row{align-items:center;gap:var(--sp-2);font-size:var(--text-sm);padding:6px 0;display:flex}.bar-row .bar-label{color:var(--gray-700);text-overflow:ellipsis;white-space:nowrap;flex:0 0 120px;overflow:hidden}.bar-row .bar-track{background:var(--gray-150);border-radius:var(--radius-pill);flex:1;height:12px;overflow:hidden}.bar-row .bar-fill{background:linear-gradient(90deg, var(--blue), #4a90f0);border-radius:var(--radius-pill);height:100%;transition:width .3s}.bar-row .bar-value{text-align:right;color:var(--gray-600);font-feature-settings:"tnum";flex:0 0 36px}.admin-shell{flex-direction:column;min-height:100vh;display:flex}.admin-topbar{padding:12px var(--sp-6);border-bottom:1px solid var(--gray-150);z-index:10;background:#fff;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0;box-shadow:0 1px #00000005}.admin-topbar-title{font-size:var(--text-2xl);color:var(--gray-800);letter-spacing:-.022em;align-items:center;gap:10px;margin:0;font-weight:600;display:flex}.admin-topbar-title img{width:auto;height:1.8em}.admin-topbar-actions{gap:var(--sp-2);align-items:center;display:flex}.admin-layout{flex:1;min-height:0;display:flex}.admin-sidenav{background:var(--gray-50);border-right:1px solid var(--gray-150);width:220px;padding:var(--sp-4) 0}.admin-sidenav h4{padding:var(--sp-2) var(--sp-5);margin:var(--sp-3) 0 var(--sp-1);font-size:var(--text-xs);color:var(--gray-500);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.admin-sidenav button{text-align:left;width:100%;padding:8px var(--sp-5);font-size:var(--text-sm);color:var(--gray-700);cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;font-family:inherit;transition:background .12s,color .12s;display:block}.admin-sidenav button:hover{background:var(--gray-100)}.admin-sidenav button.active{background:var(--blue-soft);border-left-color:var(--blue);color:var(--blue);font-weight:500}.admin-main{padding:var(--sp-6);flex:1;overflow:auto}
