:root{--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ink:#111;--ink-2:#333;--ink-3:#6f6f6f;--line:#e6e6e6;--line-2:#d4d4d4;--paper:#fff;--bg:#f7f7f7;--bg-2:#efefef;--canvas:#e3e3e3;--accent:#ea616a;--accent-ink:#c6303b;--accent-soft:#ea616a24;--danger:#d1302c;--danger-soft:#d1302c1f;--ok:#1a7f4b;--ok-soft:#1a7f4b1f;--warn:#946012;--warn-soft:#9460121f;--pink:#f6cfdc;--radius:10px;--shadow:0 1px 2px #0000000d, 0 4px 6px -1px #00000014;--header-h:52px;font-family:var(--font-ui);color:var(--ink);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:22px}h2{font-size:16px}h3{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-size:13px;font-weight:600}p{margin:0}code,kbd{font-family:var(--font-mono);font-size:12px}kbd{border:1px solid var(--line-2);background:var(--paper);border-bottom-width:2px;border-radius:4px;padding:0 5px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}.app{flex-direction:column;height:100%;display:flex}.header{height:var(--header-h);background:var(--paper);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:18px;padding:0 20px;display:flex}.header .brand{letter-spacing:-.02em;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.header .brand i{background:var(--accent);border-radius:2px;width:10px;height:10px;display:inline-block}.header .crumbs{color:var(--ink-2);white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.header .crumbs .sep{color:var(--line-2)}.header .spacer{flex:1}.header .user{color:var(--ink-2);align-items:center;gap:10px;display:flex}.main{flex:1;min-height:0;overflow:auto}.main>.state{justify-content:center;min-height:min(60vh,420px)}.page{max-width:960px;margin:0 auto;padding:40px 24px 80px}.page.with-rail{grid-template-columns:240px 1fr;gap:24px;max-width:1200px;display:grid}.page-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.page-head .sub{color:var(--ink-3)}.rail .card{padding:16px}.btn{border-radius:var(--radius);border:1px solid var(--line-2);background:var(--paper);height:30px;color:var(--ink);white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--ink-3)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.primary:hover{background:#000}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.accent:hover{background:var(--accent-ink)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-2)}.btn.sm{height:24px;padding:0 8px;font-size:12px}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--paper);width:100%;height:32px;padding:0 10px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}textarea.input{resize:vertical;height:auto;min-height:64px;padding:8px 10px}.label{color:var(--ink-2);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.field{margin-bottom:14px}.chip{letter-spacing:.02em;background:var(--bg-2);height:20px;color:var(--ink-2);text-transform:capitalize;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.chip.proposed{background:var(--warn-soft);color:var(--warn)}.chip.applied,.chip.resolved,.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.accepted{color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok);background:0 0}.chip.rejected,.chip.danger{background:var(--danger-soft);color:var(--danger)}.chip.superseded{background:var(--bg-2);color:var(--ink-3)}.chip.open,.chip.accent{background:var(--accent-soft);color:var(--accent-ink)}.chip.role{text-transform:none}.card{background:var(--paper);border:1px solid var(--line);border-radius:8px}.list{flex-direction:column;display:flex}.list>.row{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:14px 16px;display:flex}.list>.row:last-child{border-bottom:none}.list>a.row:hover{background:var(--bg);text-decoration:none}.row .title{font-weight:500}.row a.title{display:block}.row .meta{color:var(--ink-3);font-size:12px}.row .grow{flex:1;min-width:0}.muted{color:var(--ink-3)}.small{font-size:12px}.mono{font-family:var(--font-mono);font-size:12px}.error-text{color:var(--danger);font-size:13px}.state{text-align:center;color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.state .title{color:var(--ink);font-weight:600}.state .glyph{border:1px dashed var(--line-2);width:40px;height:40px;color:var(--ink-3);border-radius:50%;place-items:center;margin-bottom:6px;font-size:16px;display:grid}.state.error .glyph{border-color:var(--danger);color:var(--danger)}.spinner{border:2px solid var(--line-2);border-top-color:var(--ink);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.banner{background:var(--ink);color:var(--paper);align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:flex}.banner.warn{background:var(--warn);color:#fff}.banner .btn{height:26px}.banner .grow{flex:1}.login{place-items:center;min-height:100%;padding:24px;display:grid}.login .card{width:min(360px,100%);padding:32px}.login h1{margin-bottom:4px}.login .sub{color:var(--ink-3);margin-bottom:24px}.timeline{flex-direction:column;gap:0;display:flex}.timeline .draft{border-bottom:1px solid var(--line);grid-template-columns:56px 1fr auto;align-items:center;gap:14px;padding:12px 16px;display:grid}.timeline .draft:last-child{border-bottom:none}.timeline .num{letter-spacing:-.02em;font-size:18px;font-weight:700}.timeline .draft.current .num{color:var(--accent-ink)}.viewer{grid-template-rows:auto 1fr;grid-template-columns:200px 1fr 360px;height:100%;min-height:0;display:grid}.viewer .toolbar{background:var(--paper);border-bottom:1px solid var(--line);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;padding:6px 12px;font-size:13px;display:flex}.toolbar .group{align-items:center;gap:4px;display:flex}.toolbar .divider{background:var(--line);width:1px;height:20px;margin:0 4px}.toolbar .zoom{text-align:center;font-variant-numeric:tabular-nums;width:56px}.toolbar input[type=range]{width:90px;accent-color:var(--accent)}.navigator{border-right:1px solid var(--line);background:var(--paper);flex-direction:column;gap:10px;padding:12px;display:flex;overflow:auto}.navigator .thumb{text-align:left;background:0 0;border:2px solid #0000;border-radius:6px;width:100%;padding:6px;display:block}.navigator .thumb:hover{background:var(--bg)}.navigator .thumb.current{border-color:var(--accent)}.navigator .thumb .pages{background:var(--canvas);border-radius:3px;gap:2px;display:flex;overflow:hidden}.navigator .thumb .pg{background:var(--paper);aspect-ratio:var(--ar,.707);flex:1;position:relative;overflow:hidden}.navigator .thumb .pg img{object-fit:cover;width:100%;height:100%;display:block}.navigator .thumb .pg .ov{background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:3px;right:3px}.navigator .thumb .cap{color:var(--ink-3);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.navigator .thumb .cap .num{color:var(--ink);font-weight:500}.canvas-wrap{background:var(--canvas);min-width:0;min-height:0;position:relative;overflow:auto}.canvas-inner{place-items:center;min-width:100%;min-height:100%;padding:24px;display:grid}.canvas-svg{background:var(--paper);display:block;box-shadow:0 4px 30px #0000002e}.canvas-svg.pin{cursor:crosshair}.canvas-svg text{white-space:pre;-webkit-user-select:none;user-select:none}.canvas-svg .frame-hit{fill:#0000;cursor:text}.canvas-svg .frame-hit:hover{fill:#1f5eff0a;stroke:var(--accent);stroke-width:.75px;vector-effect:non-scaling-stroke}.canvas-svg .frame-hit.locked{cursor:default}.canvas-svg .frame-hit.locked:hover{fill:#0000;stroke:var(--line-2)}.canvas-overlay{pointer-events:none;gap:8px;display:flex;position:absolute;bottom:12px;left:12px}.badge{background:var(--ink);color:var(--paper);box-shadow:var(--shadow);pointer-events:auto;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.danger{background:var(--danger)}.badge.muted{background:var(--paper);color:var(--ink-2)}.badge.preview-mark{background:var(--warn-soft);color:var(--warn);box-shadow:none;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.side{border-left:1px solid var(--line);background:var(--paper);flex-direction:column;min-height:0;display:flex}.side .tabs{border-bottom:1px solid var(--line);flex:none;display:flex}.side .tabs button{height:38px;color:var(--ink-3);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;margin-bottom:-1px;font-weight:500;display:inline-flex}.side .tabs button.on{color:var(--ink);border-bottom-color:var(--ink)}.side .tabs .count{background:var(--bg-2);color:var(--ink-2);border-radius:999px;padding:0 6px;font-size:11px}.side .body{flex:1;min-height:0;overflow:auto}.side .foot{border-top:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:10px 12px;display:flex}.panel-head{border-bottom:1px solid var(--line);color:var(--ink-2);align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.panel-head .grow{flex:1}.editor-wrap{padding:12px 14px 24px}.editor-wrap .tiptap{outline:none;min-height:200px}.editor-wrap .tiptap p{margin:0 0 .6em;padding-left:0;position:relative}.editor-wrap .tiptap p:before{content:attr(data-style-name);font:500 10px/1.4 var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin:0 0 2px;display:block}.editor-wrap .tiptap p.caret-para:before{color:var(--accent-ink)}.editor-wrap .tiptap span[data-thread]{cursor:pointer;background:#ffc40047;border-bottom:1px solid #be8c0099}.editor-wrap .tiptap span[data-thread].active{background:#ffc4008c}.editor-wrap .tiptap span[data-thread][data-resolved=true]{border-bottom:1px dotted var(--line-2);background:0 0}.editor-wrap .tiptap p.is-empty:after{content:"";height:1em;display:inline-block}.editor-tools{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;display:flex}.editor-tools .status{color:var(--ink-3);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.editor-tools .status .dot{background:var(--ok);border-radius:50%;width:7px;height:7px}.editor-tools .status .dot.off{background:var(--danger)}.editor-tools .status .dot.busy{background:var(--warn)}.thread{border-bottom:1px solid var(--line);cursor:pointer;padding:12px 14px}.thread:hover{background:var(--bg)}.thread.active{background:var(--accent-soft)}.thread .head{color:var(--ink-3);align-items:center;gap:8px;margin-bottom:4px;font-size:12px;display:flex}.thread .quote{color:var(--ink-2);border-left:2px solid var(--line-2);margin:4px 0 6px;padding-left:8px;font-size:12px;font-style:italic}.thread .comment{margin:6px 0}.thread .comment .who{margin-right:6px;font-size:12px;font-weight:600}.thread .comment .when{color:var(--ink-3);font-size:11px}.thread .reply{gap:6px;margin-top:8px;display:flex}.change{border-bottom:1px solid var(--line);padding:12px 14px}.change .head{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;display:flex}.change .head>.btn{text-overflow:ellipsis;min-width:0;max-width:100%;display:block;overflow:hidden}.change .head .who{white-space:nowrap;margin-left:auto}.change .diff{gap:4px;font-size:13px;display:grid}.change .diff .before{color:var(--danger);-webkit-text-decoration:line-through #d1302c80;text-decoration:line-through #d1302c80}.change .diff .after{color:var(--ok)}.change .note{color:var(--ink-2);background:var(--bg);border-radius:4px;margin-top:6px;padding:6px 8px;font-size:12px}.filter-row{border-bottom:1px solid var(--line);gap:6px;padding:8px 12px;display:flex}.compose-box{border-bottom:1px solid var(--line);background:var(--bg);padding:12px 14px}.audit table{border-collapse:collapse;width:100%;font-size:13px}.audit th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);border-bottom:1px solid var(--line);padding:8px 10px;font-size:11px;font-weight:600}.audit td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}.audit details summary{cursor:pointer;color:var(--accent-ink);font-size:12px}.audit pre{background:var(--bg);white-space:pre-wrap;border-radius:4px;max-height:240px;margin:6px 0 0;padding:8px;font-size:11px;overflow:auto}.audit .diff2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.popover{z-index:20;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;min-width:240px;margin-top:6px;padding:10px 12px;position:absolute;top:100%;left:0}.popover h3{margin-bottom:6px}.popover .opt{align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.popover .opt.dim{color:var(--ink-3)}.rel{position:relative}.dialog-backdrop{z-index:40;background:#14141473;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);box-shadow:var(--shadow);border-radius:10px;width:100%;max-width:440px;padding:20px}.dialog h2{margin-bottom:12px}.dialog .field{flex-direction:column;gap:8px;display:flex}.dialog .opt{align-items:center;gap:8px;font-size:13px;display:flex}.dialog .badge.danger{margin-top:12px;display:block}@media (max-width:1100px){.viewer{grid-template-columns:160px 1fr 320px}}@page{margin:0}.print{background:#fff}.print-problem{color:var(--danger);padding:24px;font-size:14px}.sheet{page-break-after:always;break-after:page;-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact;background:#fff;margin:0;position:relative;overflow:hidden}.sheet:last-child{page-break-after:auto;break-after:auto}.sheet-hidden{display:none}.sheet svg{width:100%;height:100%;box-shadow:none;display:block}.sheet-strip{font:500 7pt/1.3 var(--font-ui);color:#4a4a4a;background:#ffffffeb;border-bottom:.5pt solid #b8b2a8;align-items:baseline;gap:12px;padding:5pt 9pt;display:flex;position:absolute;top:0;left:0;right:0}.sheet-strip .caveat{flex:1;min-width:0}.sheet-strip .meta{white-space:nowrap;color:#5b5b5b}.sheet-watermark{opacity:.12;color:#141414;font-family:var(--font-ui);letter-spacing:.08em;white-space:nowrap;pointer-events:none;font-weight:700;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-30deg)}.sheet-note{font:500 7pt/1.3 var(--font-ui);color:#b7791f;background:#ffffffeb;border-top:.5pt solid #b8b2a8;padding:4pt 9pt;position:absolute;bottom:0;left:0;right:0}
