:root{--ink:#253041;--sub:#6f7887;--line:rgba(80,96,120,.14);--blue:#3977d5;--blue-soft:#edf4ff;--orange:#d99a64;--orange-soft:rgba(217,154,100,.28);--panel:rgba(255,255,255,.9);--shadow:0 22px 60px rgba(55,68,90,.16)}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden}
body{font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:#0b1018}
button,select,textarea{font:inherit}
.app-shell{height:100vh;padding:18px;display:grid;grid-template-columns:minmax(240px,25%) minmax(460px,1fr) minmax(300px,31%);gap:1px;max-width:1720px;margin:auto;background:#0b1018}
.column{min-width:0;height:calc(100vh - 36px);overflow-y:auto;background:var(--panel);border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow);scrollbar-width:thin}
.intro-column{border-radius:24px 0 0 24px}.review-column{border-radius:0 24px 24px 0}.diary-column{background:#fff}
.intro-inner{padding:30px 28px 48px}.eyebrow{display:inline-block;padding:6px 10px;border-radius:99px;font-size:11px;letter-spacing:.13em}
.intro-inner h1{font-size:26px;line-height:1.2;margin:17px 0 34px}.intro-inner section{margin:0 0 30px}.intro-inner h2{font-size:15px;margin:0 0 12px}.intro-inner p,.intro-inner li{font-size:14px;line-height:1.82}.steps p{margin:0 0 11px}.steps ul{padding-left:18px;margin:2px 0 14px}
.column-header{height:72px;position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(255,255,255,.88);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.column-header h2{margin:0;font-size:19px}.header-actions{display:flex;gap:10px;align-items:center}.column-body{min-height:calc(100% - 72px)}
.button{border:0;border-radius:10px;padding:9px 16px;cursor:pointer;font-weight:600;font-size:13px}.button.primary{background:linear-gradient(135deg,#326dcc,#4c88e5);color:#fff;box-shadow:0 8px 18px rgba(55,119,213,.22)}.button.secondary{background:var(--blue-soft);color:#326dcc}
.control{border:1px solid var(--line);border-radius:10px;padding:8px 30px 8px 12px;background:#fff;color:var(--ink)}.hidden{display:none!important}
.empty-state{min-height:calc(100vh - 108px);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--sub)}.empty-icon{font-size:38px;filter:grayscale(.3)}.empty-state h3{font-size:17px;color:var(--ink);margin:16px 0 5px}.empty-state p{font-size:13px;margin:0 0 20px}
.diary-article{max-width:760px;margin:0 auto;padding:52px 52px 120px;line-height:1.9}.diary-top{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;margin-bottom:24px}.diary-title{font-size:28px;line-height:1.38;margin:0;font-weight:700;letter-spacing:-.02em}
.diary-date{margin-bottom:7px;color:#929baa;font-size:12px;line-height:1.4}
.emotion{text-align:right;flex:0 0 auto;font-size:14px;line-height:1.7}.summary-block{padding:15px 18px;border-left:3px solid #5a8fd8;border-radius:3px 13px 13px 3px;background:#eef5ff;color:#435a78;margin:0 0 30px;line-height:1.8}.summary-label{font-size:12px;font-weight:700;letter-spacing:.08em;color:#3977d5;margin-bottom:7px}
.content-block h2{font-size:18px;margin:32px 0 13px}.content-block p{font-size:15px;margin:0;line-height:2;color:#374254}.paragraph-gap{height:34px;position:relative;width:100%}.gap-button{opacity:0;position:absolute;left:0;top:50%;width:100%;transform:translateY(-50%);border:1px dashed #d49a69;background:#fff8f1;color:#a96835;border-radius:8px;padding:5px 12px;font-size:12px;cursor:pointer;transition:.15s}.paragraph-gap:hover .gap-button,.gap-button:focus{opacity:1}
.review-pane{padding:22px}.rubric-card{padding:17px 18px;margin-bottom:12px;border:1px solid var(--line);border-radius:14px}.rubric-card h3{font-size:14px;margin:0 0 8px}.rubric-id{color:var(--blue);margin-right:7px}.rubric-card p{font-size:13px;line-height:1.65;margin:0}
.add-global{width:100%;padding:12px;border:1px dashed #88aee8;border-radius:12px;background:var(--blue-soft);color:#326dcc;font-weight:600;cursor:pointer;margin-bottom:16px}.no-issues{text-align:center;padding:90px 10px;font-size:14px;line-height:1.8}.no-issues span{font-size:12px}
.issue-card{position:relative;padding:16px 42px 16px 16px;margin-bottom:12px;border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:.18s}.issue-card .tag{display:inline-block;border-radius:6px;padding:3px 7px;font-size:11px}.issue-card h4{font-size:13px;margin:10px 0 7px}.issue-quote{font-size:12px;border-radius:7px;padding:6px 8px;margin-bottom:7px}.issue-correct{font-size:12px;line-height:1.55}.trash{position:absolute;right:10px;top:10px;border:0;background:transparent;cursor:pointer}
.annotation{background:rgba(217,154,100,.52);border-radius:3px;cursor:pointer}.annotation.block{background:rgba(217,154,100,.25)}.annotation.active{outline:2px solid #c8793f;outline-offset:2px}.missing-token{display:block;width:100%;margin:0;padding:4px 10px;border-radius:6px;text-align:center;color:#7f4b26;font-size:13px}
.modal-backdrop{position:fixed;inset:0;z-index:90;background:rgba(27,34,45,.38);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(5px)}.modal-card{background:#fbfcfe;border-radius:20px;box-shadow:0 30px 70px rgba(20,29,43,.25);width:min(680px,90vw);max-height:82vh;display:flex;flex-direction:column}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid var(--line)}.modal-head h2{margin:7px 0 0}.modal-scroll{padding:18px 24px 24px;overflow:auto}.icon-button{border:0;background:transparent;font-size:24px;color:#7c8490;cursor:pointer}
.annotator{position:fixed;z-index:100;width:min(440px,calc(100vw - 24px));max-height:520px;overflow:auto;border-radius:17px;padding:17px}.annotator-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.choice-grid{display:flex;flex-direction:column;align-items:stretch;gap:7px}.choice{width:100%;text-align:left;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12px;cursor:pointer}.form-label{display:block;font-size:12px;font-weight:600;margin:14px 0 8px}.annotator textarea{width:100%;min-height:78px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:10px;outline:none}.complete-row{display:flex;justify-content:flex-end;margin-top:12px}
.toast{position:fixed;z-index:200;left:50%;transform:translateX(-50%);font-size:13px}
@media(max-width:1050px){.app-shell{grid-template-columns:240px minmax(430px,1fr) 290px;padding:8px}.column{height:calc(100vh - 16px)}.diary-article{padding-left:34px;padding-right:34px}}@media(max-width:800px){html,body{overflow:auto}.app-shell{height:auto;display:block;padding:0}.column{height:auto;min-height:100vh;border-radius:0}.intro-column{min-height:auto}.intro-inner{padding-bottom:30px}}

/* Dark side panels and blue diary metadata */
.diary-column{background:#fff}.intro-column,.review-column{color:#eef3fb;background:#151b25;border-color:#27303e}.intro-column{background:linear-gradient(180deg,#171e29,#111720)}
.intro-column .eyebrow,.review-column .eyebrow{color:#91b9f5;background:#202b3a}.intro-inner p,.intro-inner li{color:#aeb8c7}.intro-inner h1,.intro-inner h2{color:#f4f7fb}.intro-column .steps b{color:#79aaf0}
.intro-column::-webkit-scrollbar,.review-column::-webkit-scrollbar{width:8px}.intro-column::-webkit-scrollbar-thumb,.review-column::-webkit-scrollbar-thumb{background:#3a4555;border-radius:99px}
.review-column .column-header{color:#f4f7fb;background:rgba(21,27,37,.9);border-color:#303948}.diary-column .column-header{background:rgba(255,255,255,.9)}
.review-column .button.secondary{background:#23344c;color:#91b9f5}.review-column .rubric-card{background:#1d2531;border-color:#303a49}.review-column .rubric-card p{color:#aeb8c7}.review-column .rubric-id{color:#82aff0}
.review-column .add-global{background:#1c2b40;border-color:#547bad;color:#91b9f5}.review-column .no-issues{color:#8d98a8}.review-column .no-issues span{color:#687486}
.review-column .issue-card{background:#1c2430;border-color:#303a48;color:#edf2f9}.review-column .issue-card:hover,.review-column .issue-card.active{background:#252f3d;border-color:#c88955;box-shadow:0 8px 22px rgba(0,0,0,.22)}
.review-column .issue-card .tag{background:#243a59;color:#9ec1f5}.review-column .issue-quote{background:#31271f;color:#e1ad81}.review-column .issue-correct{color:#aeb8c7}
.summary-block{padding:15px 18px;border-left-color:#5a8fd8;background:#eef5ff;color:#435a78}.summary-label{font-size:12px;font-weight:700;letter-spacing:.08em;color:#3977d5;margin-bottom:7px}.emotion{color:#58708f}.emotion-main{color:#3977d5;font-weight:700}
.annotator{color:#eef3fb;background:#171e28;border-color:#344052;box-shadow:0 26px 70px rgba(0,0,0,.4)}.annotator .icon-button{color:#8e9aab}.annotator .choice-grid{display:flex;flex-direction:column;align-items:stretch;gap:7px}.annotator .choice{text-align:left;width:100%;background:#202936;border-color:#354052;color:#dce4ef;padding:9px 11px}.annotator .choice:hover,.annotator .choice.selected{background:#263b58;border-color:#5e8fce;color:#a9ccfa}.annotator textarea{color:#edf2f8;background:#111720;border-color:#354052}.annotator textarea::placeholder{color:#6f7b8c}.annotator .tag{display:inline-block;background:#263b58;color:#a9ccfa;border-radius:6px;padding:4px 8px;font-size:11px}

/* Final-step annotation and issue-card details */
body{background:#0b1018}.app-shell{background:#0b1018}
.paragraph-gap{width:100%;height:34px}.gap-button{left:0;width:100%;transform:translateY(-50%);border-radius:8px}.missing-token{width:100%;margin:0;padding:4px 10px;border-radius:6px;text-align:center}
.annotator-dimension{font-size:12px;color:#9ec1f5;margin-bottom:10px}.annotator-issue-type{font-size:15px;line-height:1.55;color:#eef3fb;margin-bottom:14px}.annotator-original{display:flex;align-items:flex-start;gap:2px;font-size:12px;line-height:1.55;color:#aeb8c7;margin-bottom:14px}.annotator-original b{flex:0 0 auto;color:#dbe4f0}.annotator-original span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow-wrap:anywhere}.expected-label{display:block;font-size:12px;font-weight:600;margin:0 0 8px}.required-star,.field-error{color:#ff646c;font-style:normal}.field-error{font-weight:400;margin-left:8px}.annotator textarea{font-size:15px}
.review-column .issue-dimension{font-size:12px;color:#9ec1f5;padding-right:28px}.review-column .issue-type{font-size:15px;line-height:1.5;margin:10px 0}.review-column .issue-quote{display:flex;align-items:flex-start;gap:2px;font-size:12px;line-height:1.55}.review-column .issue-quote b{flex:0 0 auto;color:#dce5f0}.review-column .issue-quote span{overflow-wrap:anywhere}.review-column .issue-correct{font-size:12px;line-height:1.55;color:#6fd59a;background:rgba(49,173,105,.13);border-radius:7px;padding:6px 8px;overflow-wrap:anywhere}.review-column .issue-correct b{color:#6fd59a}.trash{display:grid;place-items:center;width:28px;height:28px;color:#ff626b;border-radius:6px}.trash:hover{background:rgba(255,80,92,.12)}.trash svg{width:18px;height:18px;fill:currentColor}
.pending-annotation{background:rgba(217,154,100,.52)}
.annotation.cross-paragraph,.annotation.block{background:rgba(217,154,100,.25)}
.annotation.missing-token{background:rgba(217,154,100,.25)}
.content-block.global-highlight{background:rgba(217,154,100,.1);border-radius:10px}
.review-column .issue-correct b{color:#fff}
.annotator-title-row{display:flex;align-items:center;gap:9px}.annotator-back-icon{display:grid;place-items:center;width:27px;height:27px;padding:0;border:0;border-radius:7px;background:#222d3b;color:#9fc5f8;cursor:pointer}.annotator-back-icon:hover{background:#2b3b50;color:#d4e7ff}.annotator-back-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.annotator-current-dimension{font-size:12px;color:#9ec1f5;margin-bottom:12px}
.rubric-status{padding:48px 16px;text-align:center;color:#8d98a8;font-size:13px;line-height:1.8}.rubric-status.error{color:#ff7b82}.rubric-status span{font-size:12px;color:#7d8999}
.button:disabled{cursor:not-allowed;opacity:.38;box-shadow:none}

/* Three-step evaluation */
.evaluation-steps{position:sticky;top:72px;z-index:15;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:-22px -22px 20px;padding:14px 16px;background:rgba(21,27,37,.94);border-bottom:1px solid #303948;backdrop-filter:blur(14px)}
.evaluation-step{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;padding:9px 5px;border:1px solid #344052;border-radius:9px;background:#1c2430;color:#8995a6;font-size:12px;white-space:nowrap;cursor:pointer}.evaluation-step span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#303a49;font-size:10px}.evaluation-step.active{border-color:#608dcc;background:#243650;color:#b9d5fb}.evaluation-step.completed{color:#78d99f;border-color:#387552}.evaluation-step.completed span{background:#2f8a59;color:#fff}.evaluation-step.active.completed{background:#203b38}
.score-card{margin-bottom:14px;padding:16px;border:1px solid #303a48;border-radius:14px;background:#1c2430;cursor:pointer;transition:.18s}.score-card.active{border-color:#6f9bd5;box-shadow:0 0 0 1px rgba(111,155,213,.25)}.score-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.score-card-head>div{display:flex;align-items:center;gap:7px}.score-card-head span{color:#8eb9f3;font-size:12px}.score-card-head h3{margin:0;color:#eef3fa;font-size:14px}.score-card-head small{color:#7d8999;font-size:11px}.score-options{display:flex;flex-direction:column;gap:7px}.score-option{display:grid;grid-template-columns:auto 24px 1fr;align-items:flex-start;gap:8px;padding:9px;border-radius:8px;background:#151c26;color:#aeb8c7;font-size:12px;line-height:1.55;cursor:pointer}.score-option:has(input:checked){background:#243650;color:#dceaff}.score-option input{margin-top:4px;accent-color:#5d93dc}.score-number{color:#91baf2;font-weight:700}
.score-card:not(.active) .score-card-head{margin-bottom:0}.score-card-state{display:flex!important;align-items:center;gap:8px}.score-card-state small.scored{color:#78d99f;font-weight:700}.score-card-state small.unscored{color:#ff686f;font-weight:700}.score-chevron{width:17px;height:17px;fill:none;stroke:#7f8b9c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s}.score-card.active .score-chevron{transform:rotate(180deg)}
.subjective-intro{margin:4px 0 16px;color:#eef3fa;font-size:14px;line-height:1.7}.subjective-option{display:grid;grid-template-columns:18px 1fr;gap:10px;margin-bottom:10px;padding:13px;border:1px solid #303a48;border-radius:12px;background:#1c2430;color:#b2bdcb;font-size:12px;line-height:1.65;cursor:pointer}.subjective-option:has(input:checked){border-color:#6593ce;background:#243650;color:#e3efff}.subjective-option input{position:absolute;opacity:0}.subjective-radio{width:16px;height:16px;margin-top:2px;border:1px solid #637086;border-radius:50%}.subjective-option:has(input:checked) .subjective-radio{border:5px solid #78a8e7;background:#fff}
.annotation{position:relative}.annotation[data-tooltip]:hover::after{content:attr(data-tooltip);position:absolute;z-index:80;left:50%;bottom:calc(100% + 8px);width:260px;transform:translateX(-50%);padding:10px 12px;border:1px solid #3b4656;border-radius:9px;background:#151b24;color:#eef3f9;box-shadow:0 12px 30px rgba(0,0,0,.3);font-size:12px;font-weight:400;line-height:1.55;white-space:pre-line;text-align:left;pointer-events:none}
.merge-choice{margin-top:5px;border-style:dashed!important;color:#9fc5f8!important}.merge-choice:disabled{cursor:not-allowed;opacity:.42;color:#8993a1!important}.merge-issue-list{display:flex;flex-direction:column;gap:8px}.merge-issue{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;padding:11px;border:1px solid #354052;border-radius:9px;background:#202936;color:#e4ebf5;text-align:left;cursor:pointer}.merge-issue:hover{border-color:#6e9ede;background:#263b58}.merge-issue span{color:#9fc3f4;font-size:12px}.merge-issue b{font-size:14px}.merge-issue small{display:-webkit-box;overflow:hidden;color:#9faab9;font-size:12px;font-weight:400;-webkit-box-orient:vertical;-webkit-line-clamp:2}.issue-originals{display:flex;flex-direction:column;gap:7px;margin-bottom:7px}.issue-originals .issue-quote{margin-bottom:0}.remove-source{flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;margin-left:auto;padding:0;border:0;border-radius:50%;background:rgba(255,97,107,.12);color:#ff747d;font-size:15px;line-height:1;cursor:pointer}.remove-source:hover{background:rgba(255,97,107,.25)}
.dimension-choice{position:relative}.dimension-choice:hover::after{content:attr(data-description);display:block;margin-top:7px;padding-top:7px;border-top:1px solid #3b485b;color:#aeb9c8;font-size:11px;font-weight:400;line-height:1.55;white-space:normal}.dimension-description{margin:-5px 0 13px;color:#98a5b6;font-size:12px;line-height:1.6}.score-dimension-description{margin:-2px 0 13px;padding:10px;border-radius:8px;background:#151c26;color:#9faaba;font-size:12px;line-height:1.65}
.toast{top:22%;bottom:auto;min-width:180px;max-width:min(460px,calc(100vw - 32px));padding:12px 18px;border:1px solid #435064;border-radius:11px;background:#1b2430;color:#f2f6fb;text-align:center;box-shadow:0 18px 45px rgba(0,0,0,.38);animation:toast-in .2s ease-out}@keyframes toast-in{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}
.confirm-card{width:min(380px,calc(100vw - 32px));padding:26px;border:1px solid #354052;border-radius:18px;background:#171e28;color:#eef3f9;text-align:center;box-shadow:0 28px 70px rgba(0,0,0,.42)}.confirm-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:14px;background:rgba(255,87,98,.12);color:#ff6871}.confirm-icon svg{width:25px;height:25px;fill:currentColor}.confirm-card h3{margin:0 0 8px;font-size:18px}.confirm-card p{margin:0;color:#9faab8;font-size:13px;line-height:1.65}.confirm-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}.confirm-cancel{background:#293342;color:#d9e1eb}.confirm-delete{background:#d94b55;color:#fff}.confirm-delete:hover{background:#e15861}
