:root{--ink:#16202b;--muted:#667384;--line:#d9e0e8;--paper:#f5f7fa;--card:#fff;--navy:#16324f;--blue:#2563eb;--cyan:#d9f0fb;--green:#16835f;--green-bg:#dff5eb;--orange:#a85b00;--orange-bg:#fff0d6;--red:#c3313a;--red-bg:#fde4e5;--yellow:#7b6200;--yellow-bg:#fff5bf;--radius:12px;--shadow:0 12px 35px rgba(20,40,60,.08);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;background:var(--paper);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:66px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 28px;gap:28px;position:sticky;top:0;z-index:50}.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.01em;margin-right:auto}.brand small{opacity:.55;font-weight:500}.brand-mark{width:34px;height:34px;border:1px solid #6d88a3;display:grid;place-items:center;border-radius:8px;background:#244764}.topbar nav{display:flex;gap:22px;font-size:14px}.topbar nav a{opacity:.78}.topbar nav a:hover{opacity:1}.identity{font-size:14px}.session{opacity:.55;margin-left:8px}.live-dot{display:inline-block;width:8px;height:8px;background:#38d996;border-radius:50%;margin-right:8px}.project-nav{height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;position:sticky;top:66px;z-index:40}.project-nav>div:first-child{margin-right:auto}.project-nav span{color:var(--muted);margin-left:12px;font-size:13px}.tabs{display:flex;align-self:stretch}.tabs a{display:flex;align-items:center;padding:0 18px;color:var(--muted);border-bottom:2px solid transparent}.tabs a:hover{color:var(--blue);border-color:var(--blue)}.page{max-width:1600px;margin:0 auto;padding:30px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;margin:2px 0 24px}.page-heading h1,.document-head h1,.issue-head h1{font-size:30px;margin:3px 0 5px;line-height:1.18}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#6b7b8f;font-size:11px;font-weight:800;margin:0}.muted,.hint{color:var(--muted)}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #c5cfda;background:#fff;color:var(--ink);border-radius:8px;padding:9px 14px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{border-color:#8799ad;background:#f9fbfd}.btn:disabled{opacity:.5;cursor:wait}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.wide{width:100%}.status,.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;letter-spacing:.03em;background:#e9edf2;color:#566272}.status.ok,.badge.accepted,.badge.closed{background:var(--green-bg);color:var(--green)}.status.error,.badge.danger,.badge.rejected,.badge.returned{background:var(--red-bg);color:var(--red)}.status.empty,.status.never,.badge.unchecked,.badge.verify{background:var(--yellow-bg);color:var(--yellow)}.badge.updated{background:var(--cyan);color:#126384}.badge.partial{background:var(--orange-bg);color:var(--orange)}.badge.open,.badge.in_work,.badge.response_received{background:#e6efff;color:#295db3}.badge.neutral{background:#e9edf2;color:#5c6673}.scan-strip{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);padding:13px 16px;border-radius:8px;margin-bottom:12px;display:flex;justify-content:space-between;font-size:13px}.scan-strip span{margin-left:14px;color:var(--muted)}.scan-strip.error{border-left-color:var(--red)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green)!important;margin:0 8px 0 0!important}.blockers{border:1px solid #ecd58c;background:#fffbec;border-radius:8px;padding:12px 16px;margin-bottom:20px}.blockers summary{cursor:pointer;font-weight:700;color:#775d00}.blockers li{margin:7px 0}.ready-banner,.update-banner{border-radius:8px;padding:13px 16px;background:var(--green-bg);color:var(--green);margin-bottom:20px}.update-banner{background:var(--cyan);color:#134f68;display:flex;gap:18px;align-items:center}.update-banner a{margin-left:auto;text-decoration:underline}.workspace{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.folder-tree{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;height:max-content;position:sticky;top:140px}.folder-tree h3{margin:4px 8px 14px}.folder-tree a{display:block;padding:8px;border-radius:6px;color:#526274;font-size:13px;overflow:hidden;text-overflow:ellipsis}.folder-tree a:hover,.folder-tree .tree-root{background:#eef4fb;color:#1d4f84}.folder-tree .tree-root span{float:right}.folder-tree hr{border:0;border-top:1px solid var(--line)}.registry{min-width:0}.filters{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;gap:8px;margin-bottom:10px}.filters input{flex:1}.filters input,.filters select,input,select,textarea{border:1px solid #c9d2dc;border-radius:7px;padding:9px 11px;background:#fff;color:var(--ink)}textarea{resize:vertical;width:100%;line-height:1.45}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}table{border-collapse:collapse;width:100%}.registry-table{min-width:1120px;font-size:13px}.registry-table th{padding:12px;text-align:left;color:#607084;font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:#f4f7fa;border-bottom:1px solid var(--line);position:sticky;top:0}.registry-table td{padding:14px 12px;border-bottom:1px solid #e7ebef;vertical-align:top}.registry-table tr:hover td{background:#fbfdff}.registry-table tr.missing td{background:#fffafa}.doc-link b,.doc-link small,.registry-table td>small{display:block}.doc-link small,.registry-table small{color:var(--muted);margin-top:5px;max-width:360px;word-break:break-word}.version{font-weight:800;color:#25496e;border:1px solid #9fb5cb;padding:3px 7px;border-radius:5px;margin-right:5px}.counter{display:flex;gap:4px}.counter span,.legend span{padding:3px 7px;border-radius:4px;font-weight:700}.accepted{background:var(--green-bg);color:var(--green)}.partial{background:var(--orange-bg);color:var(--orange)}.rejected{background:var(--red-bg);color:var(--red)}.unchecked{background:var(--yellow-bg);color:var(--yellow)}.decision{text-align:center!important}.check{color:var(--green);font-weight:800}.empty-check{color:#a2acb7}.pagination{display:flex;justify-content:center;gap:14px;padding:18px}.pagination a{background:#fff;border:1px solid var(--line);padding:6px 11px;border-radius:6px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.project-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;align-items:center;gap:18px;box-shadow:var(--shadow)}.project-card:hover{border-color:#9cb4cd;transform:translateY(-1px)}.project-card h2{margin:0 0 5px}.project-card p{color:var(--muted);margin:0 0 12px}.project-icon{width:48px;height:58px;background:#e9f0f7;color:#214f7c;display:grid;place-items:center;border-radius:5px;font-weight:800}.project-card .arrow{margin-left:auto;font-size:24px}.auth-page{max-width:1200px}.auth-card{min-height:650px;margin:35px auto;display:grid;grid-template-columns:1.2fr .8fr;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(18,40,62,.15)}.auth-intro{background:linear-gradient(135deg,#15324f,#244f75);color:#fff;padding:80px 65px;display:flex;flex-direction:column;justify-content:center}.auth-intro h1{font-size:42px;line-height:1.1;margin:12px 0 22px;max-width:600px}.auth-intro p{font-size:17px;line-height:1.6;opacity:.8}.form-card{padding:30px;background:#fff;min-width:380px;align-self:center}.auth-card .form-card{padding:55px}.form-card h2{font-size:24px}.form-card label{display:block;margin:18px 0;color:#4c5b6b;font-weight:650}.form-card label input,.form-card label select{display:block;width:100%;margin-top:7px}.form-card .hint{font-size:12px;line-height:1.5}.errorlist{color:var(--red);font-size:13px;padding-left:18px}.narrow{max-width:640px;margin:auto}.back{display:inline-block;color:#41617f;margin-bottom:18px}.document-head,.issue-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.meta-row{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:13px}.document-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.viewer-card,.summary-card,.section,.composer,.message{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.viewer-toolbar{height:48px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:7px;padding:6px 10px}.viewer-toolbar button,.editor-tools button{border:1px solid #d3dae2;background:#fff;border-radius:6px;padding:5px 9px;cursor:pointer}.viewer-toolbar input{width:55px;padding:4px}.viewer-toolbar span:first-of-type{min-width:45px;text-align:center}.viewer-toolbar #page-controls{margin-left:auto}#document-viewer{min-height:600px;max-height:800px;overflow:auto;position:relative;display:flex;align-items:flex-start;justify-content:center;background:#dfe4e9;padding:20px}#document-viewer canvas,#document-viewer img{display:block;background:white;box-shadow:0 7px 25px rgba(0,0,0,.2);max-width:none}#document-viewer.selecting{cursor:crosshair;user-select:none}#selection-box{position:absolute;border:2px solid #e11d48;background:rgba(225,29,72,.12);pointer-events:none}.side-panel,.issue-aside{display:flex;flex-direction:column;gap:12px}.summary-card{padding:17px}.summary-card h3{margin:0 0 14px}.summary-card.warning{background:#fffbec;border-color:#ead78e}.big-count{font-size:38px;font-weight:800}.legend{display:flex;flex-wrap:wrap;gap:5px;font-size:11px}.approval-line{display:grid;grid-template-columns:65px 1fr auto;gap:8px;padding:9px 0;border-bottom:1px solid #e8edf2;font-size:13px;align-items:center}.link-btn{border:0;background:0;color:var(--blue);padding:0;cursor:pointer}.section{margin-top:22px;padding:22px}.section-head{display:flex;justify-content:space-between;align-items:center}.section h2{margin-top:0}.issue-list{display:flex;flex-direction:column}.issue-row{display:grid;grid-template-columns:110px 1fr auto;gap:15px;padding:15px 8px;border-top:1px solid var(--line);align-items:center}.issue-row:hover{background:#f8fafc}.issue-row small{display:block;color:var(--muted);margin-top:5px}.issue-id{font-family:monospace;font-weight:800;color:#315c83}.timeline{border-left:2px solid #bed0e2;margin-left:12px}.timeline>div{padding:0 0 24px 25px;position:relative}.timeline>div:before{content:"";position:absolute;left:-7px;top:0;width:12px;height:12px;border-radius:50%;background:#4476a5}.timeline span,.timeline small,.timeline em{display:block}.timeline small{color:var(--muted);word-break:break-all;margin-top:5px}.issue-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.conversation{display:flex;flex-direction:column;gap:12px}.message{padding:18px}.message.response{border-left:4px solid #2771b8}.message.issue{border-left:4px solid #d15442}.message header{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.message header b{color:var(--ink)}.message p{line-height:1.55}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.gallery figure{margin:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.gallery img{display:block;width:100%;max-height:360px;object-fit:contain;background:#eef1f4}.gallery figcaption{padding:8px;font-size:12px;color:var(--muted)}.composer{padding:20px}.composer h2{margin-top:0}.composer select{margin-bottom:10px;width:100%}.composer .actions{margin-top:10px}.save-state{font-size:12px;color:var(--muted);margin:8px 0}.result-picker{display:flex;gap:12px;margin-bottom:12px}.drop-zone{display:block;border:2px dashed #aab9c8;border-radius:9px;padding:22px 12px;text-align:center;color:#617184;cursor:pointer;font-size:13px}.drop-zone.over{border-color:var(--blue);background:#eef5ff}.editor-shell{border:1px solid var(--line);border-radius:10px;overflow:hidden}.editor-tools{display:flex;gap:5px;padding:8px;background:#f1f4f7;overflow:auto;align-items:center}.editor-tools span{flex:1}.editor-tools button.active{background:#245d91;color:#fff;border-color:#245d91}.editor-tools label{font-size:12px;display:flex;align-items:center;gap:5px}.editor-tools input[type=color]{padding:0;width:28px;height:28px}.editor-tools input[type=range]{width:90px}#konva-container{min-height:450px;overflow:auto;background:#cfd5db;padding:15px;display:flex;justify-content:center}.editor-caption{display:flex;gap:8px;padding:10px;background:#fff}.editor-caption input{flex:1}.history-list,.report-list{display:flex;flex-direction:column;gap:9px}.history-list article,.report-list article{background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px 18px;display:flex;gap:15px;align-items:center}.history-list article>div{flex:1}.history-list p,.history-list small{margin:4px 0;color:var(--muted)}.history-list pre{max-width:35%;white-space:pre-wrap;font-size:11px}.event-id{font-family:monospace;color:#61798f}.report-list article{justify-content:space-between}.report-list article small{display:block;color:var(--muted);margin-top:5px}.empty{padding:35px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #cbd5df;border-radius:var(--radius)}.empty-cell{text-align:center;padding:40px!important;color:var(--muted)}dialog{border:0;border-radius:14px;box-shadow:0 25px 80px rgba(0,0,0,.25);padding:0}dialog::backdrop{background:rgba(15,30,45,.48)}.dialog-close{float:right;border:0;background:0;font-size:25px;cursor:pointer}.toast{position:fixed;right:22px;bottom:22px;padding:13px 18px;border-radius:8px;background:#183b59;color:#fff;z-index:100;box-shadow:var(--shadow)}.toast.error{background:var(--red)}.flash{padding:12px;border-radius:8px;margin-bottom:15px;background:var(--green-bg);color:var(--green)}
/* Document panning after zoom; fragment selection keeps its crosshair cursor. */
#document-viewer{overscroll-behavior:contain}
#document-viewer.pannable:not(.selecting){cursor:grab;touch-action:none}
#document-viewer.panning:not(.selecting){cursor:grabbing;user-select:none}
#document-viewer img{-webkit-user-drag:none;user-select:none}
/* Maximum-contrast reading palette: all text on light surfaces is pure black. */
:root{--ink:#000;--muted:#000;--line:#bcc7d3;--blue:#1d4ed8;--green:#0f6f50;--orange:#8a4700;--red:#a9232d;--yellow:#665000}
body{color:#000;font-weight:500;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.page,.project-nav,.project-nav span,.project-nav a{color:#000}
.page :where(p,small,label,span,li,td,th,h1,h2,h3,h4,summary,figcaption,em,pre){color:#000}
.page a:not(.btn.primary),.page .link-btn{color:#000}
.muted,.hint,.scan-strip span,.meta-row,.issue-row small,.timeline small,.message header,.gallery figcaption,.save-state,.history-list p,.history-list small,.report-list article small{color:#000;font-weight:600}
.folder-tree a,.folder-tree a:hover,.folder-tree .tree-root{color:#000;font-weight:600}
.filters input,.filters select,input,select,textarea{color:#000;font-weight:600;border-color:#8795a5}
input::placeholder,textarea::placeholder{color:#000;opacity:1;font-weight:600}
.registry-table th{color:#000;font-weight:800;background:#e8edf2}
.doc-link b{color:#000;font-weight:700}
.doc-link small,.registry-table small{color:#000;font-weight:600}
.empty-check{color:#000;font-weight:700}
.status,.badge,.status.ok,.status.error,.status.empty,.status.never,.badge.accepted,.badge.closed,.badge.danger,.badge.rejected,.badge.returned,.badge.unchecked,.badge.verify,.badge.updated,.badge.partial,.badge.open,.badge.in_work,.badge.response_received,.badge.neutral{color:#000}
.blockers summary,.ready-banner,.update-banner,.version,.check,.back,.issue-id,.drop-zone,.event-id,.flash{color:#000}
.page .btn.primary,.page .editor-tools button.active,.toast,.toast.error{color:#fff}
/* Absolute black-text mode, including menus, options, dialogs and help text. */
html{color-scheme:light}
html,body,body *,body *::before,body *::after{color:#000!important;-webkit-text-fill-color:#000!important;text-shadow:none!important}
body *{opacity:1!important}
input,textarea,select,option,optgroup,button,dialog,[role=dialog],[role=menu],[role=menuitem],[role=tooltip]{color:#000!important;-webkit-text-fill-color:#000!important}
option,optgroup{background:#fff!important}
input::placeholder,textarea::placeholder{color:#000!important;-webkit-text-fill-color:#000!important;opacity:1!important}
.topbar{background:#fff!important;border-bottom:2px solid #000!important}
.brand-mark{background:#eef2f6!important;border-color:#000!important}
.btn.primary,.editor-tools button.active{background:#dbeafe!important;border-color:#000!important}
.auth-intro{background:#fff!important;border-right:2px solid #000!important}
.toast,.toast.error{background:#fff!important;border:2px solid #000!important}
.approval-line{grid-template-columns:minmax(110px,auto) 1fr auto}
.approval-note{font-size:12px;line-height:1.4;margin:0 0 6px}
.btn.danger{background:#ffd9d9!important;border:2px solid #8b0000!important}
.folder-tree .folder-link{display:flex;align-items:center;gap:5px}.folder-tree .folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-tree .folder-count{margin-left:auto;min-width:24px;text-align:right;font-weight:800}.folder-tree .folder-marker{flex:0 0 auto}
.counter .workflow-new{background:#ff4d4f;border:1px solid #b00000}
.counter .workflow-in-work{background:#ffd84d;border:1px solid #b08a00}
.counter .workflow-declined{background:#ff9fba;border:1px solid #b52c55}
.counter .workflow-accepted{background:#65d98a;border:1px solid #187a38}
.draft-strip{display:flex;gap:9px;overflow:auto;margin:12px 0}.draft-thumb{border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px;display:flex;align-items:center;gap:8px;cursor:pointer;min-width:210px;text-align:left}.draft-thumb img{width:70px;height:50px;object-fit:contain;background:#eef1f4}.draft-thumb span{font-size:12px;color:var(--muted)}
@media(max-width:1000px){.workspace,.document-layout,.issue-layout{grid-template-columns:1fr}.folder-tree,.side-panel{position:static}.auth-card{grid-template-columns:1fr}.auth-intro{padding:45px}.auth-card .form-card{padding:35px}.topbar{padding:0 15px}.identity .session{display:none}.document-head{flex-direction:column}.page{padding:20px}.project-nav{padding:0 15px}.folder-tree{display:none}}
@media(max-width:650px){.topbar .identity{display:none}.brand>span:last-child{font-size:13px}.page{padding:14px}.page-heading{flex-direction:column;gap:14px}.actions{width:100%}.auth-intro h1{font-size:30px}.form-card{min-width:auto;padding:22px}.auth-card{margin:5px}.project-grid{grid-template-columns:1fr}.project-nav .tabs a{padding:0 9px;font-size:12px}.project-nav>div:first-child span{display:none}.message header{flex-direction:column;gap:4px}.issue-row{grid-template-columns:1fr}.editor-tools span{display:none}}

