:root{--bg:#fafafa;--bg-soft:#f9fafb;--card:#fff;--line:#dcdfe4;--line-soft:#edf0f3;--ink:#212636;--ink-strong:#111827;--ink-soft:#434a60;--muted:#667085;--primary:#007fff;--primary-d:#0056cc;--link:#006fe0;--brand:#173595;--wash:#e6f2ff;--wash-2:#f0f8ff;--primary-wash:#e6f2ff;--primary-tint:#007fff14;--danger:#d92d20;--danger-wash:#fef0ef;--ok:#0a7d43;--ok-wash:#e7f7ee;--warn:#b45309;--warn-wash:#fdf3e2;--bg-grad-2:#f7f9fc;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-meta:"Roboto", "Inter", system-ui, sans-serif;--font-serif:"Merriweather", Georgia, "Times New Roman", serif;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #1018280a;--shadow:0 2px 6px #00000014;--shadow-lg:0 12px 32px #10182824;--ease:.18s cubic-bezier(.4, 0, .2, 1);--maxw:1080px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh;margin:0}::selection{background:var(--wash)}body .ant-card-head-title,body h1.ant-typography,body h2.ant-typography,body h3.ant-typography,body .serif{font-family:var(--font-serif);letter-spacing:-.01em}.app{width:100%;max-width:var(--maxw);margin:32px auto;padding:0 24px}.app>*{animation:rise var(--ease)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (min-width:992px){.submission-rail{max-height:calc(100vh - 96px);position:sticky;top:80px;overflow-y:auto}}.loading{color:var(--muted);text-align:center;padding:56px;font-size:14px}.muted{color:var(--muted)}.pre{white-space:pre-wrap;word-break:break-word;background:var(--bg-soft);border:1px solid var(--line-soft);border-radius:var(--radius-sm);color:var(--ink-soft);margin:6px 0;padding:12px 14px;font-size:14px;line-height:1.6}a.link{color:var(--link);cursor:pointer;font-weight:600;text-decoration:none}a.link:hover{color:var(--primary-d);text-decoration:underline}.alert{border-radius:var(--radius-sm);border:1px solid #0000;border-left-width:4px;margin:12px 0;padding:13px 15px;font-size:14px}.alert.info{background:var(--wash);color:var(--brand);border-color:#b9d6ff}.alert.warn{background:var(--warn-wash);color:#8a5300;border-color:#f2d8a8}.alert.ok{background:var(--ok-wash);color:#0a6b3d;border-color:#b9e6cc}.pdf-anno-wrap{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:16px;display:grid}.pdf-anno-viewer{background:var(--bg-grad-2);border:1px solid var(--line);border-radius:var(--radius-sm);max-height:74vh;padding:10px;position:relative;overflow:auto}.pa-root{position:relative}.pa-pages{flex-direction:column;align-items:center;gap:14px;width:max-content;min-width:100%;margin-inline:auto;display:flex}.pa-page{box-shadow:var(--shadow);background:#fff;flex:none;position:relative}.pa-page canvas{display:block}.pa-loading,.pa-error{text-align:center;color:var(--muted);padding:28px;font-size:14px}.pa-error a{color:var(--primary)}.textLayer{opacity:1;z-index:2;line-height:1;position:absolute;inset:0;overflow:hidden}.textLayer span,.textLayer br{color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}.textLayer ::selection{background:#3457d559}.pa-overlay{z-index:3;pointer-events:none;position:absolute;inset:0}.pa-hl{pointer-events:auto;cursor:pointer;mix-blend-mode:multiply;background:#ffd54f61;border-radius:2px;position:absolute}.pa-hl:hover{background:#ffc1078c}.pa-hl-flash{outline-offset:1px;border-radius:3px;outline:2px solid #fa8c16;animation:1.6s ease-out paHlFlash}@keyframes paHlFlash{0%,60%{background:#fa8c16a6;box-shadow:0 0 0 6px #fa8c1640}to{box-shadow:0 0 #fa8c1600}}.pa-popup{z-index:40;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);width:260px;box-shadow:var(--shadow-lg);position:absolute}.pa-popup-body{padding:10px}.pa-quote{color:var(--muted);max-height:60px;margin-bottom:6px;font-size:12px;font-style:italic;overflow:auto}.pa-comment{color:var(--ink);white-space:pre-wrap;font-size:14px}.pa-input{width:100%;min-height:64px;font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);resize:vertical;padding:8px;font-size:14px}.pa-popup-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.pa-popup button{font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;background:#fff;padding:6px 12px;font-size:13px;font-weight:600}.pa-popup button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.pa-del{color:var(--danger);cursor:pointer;margin-top:8px;font-size:12px;background:0 0!important;border:none!important;padding:0!important}.pa-del:hover{text-decoration:underline}.pdf-anno-side #annoList{flex-direction:column;gap:8px;max-height:74vh;display:flex;overflow:auto}.anno-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-grad-2);align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.anno-num{background:var(--primary-wash);width:22px;height:22px;color:var(--primary-d);border-radius:100px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.anno-body{overflow-wrap:anywhere;flex:1;min-width:0;font-size:13px}.anno-quote{color:var(--muted);margin-bottom:2px;font-size:11px;font-style:italic}.anno-del{color:var(--danger);cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:13px}.pdf-anno-card.is-full{z-index:1000;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;inset:0;overflow:hidden}.pdf-anno-card.is-full>.ant-card-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.pdf-anno-card.is-full .pdf-anno-wrap{flex:1;align-items:stretch;min-height:0}.pdf-anno-card.is-full .pdf-anno-viewer{max-height:none}.pdf-anno-card.is-full .pdf-anno-side{flex-direction:column;min-height:0;display:flex}.pdf-anno-card.is-full .pdf-anno-side #annoList{flex:1;max-height:none}@media (max-width:760px){.pdf-anno-wrap{grid-template-columns:1fr}.pdf-anno-side #annoList{max-height:320px}}@media (max-width:640px){.app{margin:20px auto;padding:0 16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
