@font-face{font-family:Obel Mono;src:url(/fonts/ObelMono-VF.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Object Sans;src:url(/fonts/ObjectSans-Heavy.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--canvas: #FDFBFA;--surface: #FFFFFF;--sheet-ground: #F4F2F0;--ink: #191919;--ink-80: rgba(25, 25, 25, .8);--mid: rgba(25, 25, 25, .62);--faint: rgba(25, 25, 25, .45);--hair: rgba(25, 25, 25, .16);--hair-strong: rgba(25, 25, 25, .3);--select: rgba(25, 25, 25, .07);--hover: rgba(25, 25, 25, .04);--alert: #B33A2A;--approved: #3f7d54;--warn: #854F0B;--warn-bg: #FAEEDA;--ok-bg: #E1F5EE;--mono: "Obel Mono", "SF Mono", Consolas, Monaco, monospace;--display: "Object Sans", Inter, system-ui, sans-serif;--r-sm: 6px;--r-md: 8px;--r-lg: 12px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--mono);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--ink)}a:hover{color:var(--alert)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.display{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:.02em;margin:0;line-height:1.05}.title{font-family:var(--display);font-weight:900;margin:0;line-height:1.25;font-size:20px}.caption{font-size:11px;color:var(--mid)}.micro{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mid)}.muted{color:var(--mid)}.error{color:var(--alert);font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--hair-strong);background:transparent;font-size:12px;cursor:pointer;text-decoration:none;color:var(--ink);white-space:nowrap}.btn:hover{background:var(--hover);color:var(--ink)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}.btn.primary:hover{background:#000;color:#fff}.btn.block{width:100%;height:40px}.btn:disabled{opacity:.45;cursor:default}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-md);border:0;background:transparent;cursor:pointer}.icon-btn:hover{background:var(--hover)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{position:relative;border:0;height:26px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:600;background:#1919190f;color:var(--ink-80);cursor:pointer}.chip.on{color:#fff}.seg{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:#1919190d}.seg-item{position:relative;height:30px;padding:0 12px;border:0;border-radius:999px;font-size:11px;font-weight:600;background:transparent;color:var(--ink-80);cursor:pointer}.seg-item.on{color:#fff}.choice-ind{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--ink);z-index:0}.choice-text{position:relative;z-index:1;transition:color .12s ease-out}.rail-ind{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--select);z-index:0}.rail-item>span:not(.rail-ind){position:relative;z-index:1}.check{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--hair-strong);background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease-out,border-color .12s ease-out}.check.on{background:var(--ink);border-color:var(--ink)}.check:disabled{opacity:.4;cursor:default}.sk{display:inline-block;position:relative;overflow:hidden;background:#19191912;border-radius:4px;vertical-align:middle}.sk:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:sk-shimmer 1.4s ease-in-out infinite}@keyframes sk-shimmer{to{transform:translate(100%)}}.sk-sheet{width:100%;overflow:hidden}.progress-rule{position:absolute;top:0;left:0;right:0;height:2px;overflow:hidden;z-index:5;background:#1919190f}.progress-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);transform-origin:left center}.progress-indet{position:absolute;top:0;bottom:0;width:30%;background:var(--ink);animation:indet 1.1s ease-in-out infinite}@keyframes indet{0%{transform:translate(-100%)}to{transform:translate(340%)}}.stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:56px 16px;text-align:center}.stamp-seal{width:64px;height:64px;border:2.5px solid var(--alert);display:flex;align-items:center;justify-content:center}.stamp-rule{display:block;width:96px;height:2px;background:var(--alert);transform-origin:left center}.stamp-label{font-size:13px;font-weight:700;letter-spacing:.16em;display:flex}@media (prefers-reduced-motion: reduce){.sk:after,.progress-indet{animation:none}.progress-indet{width:100%;opacity:.4}}.pill{font-size:10px;font-weight:600;letter-spacing:.05em;border:1px solid currentColor;border-radius:999px;padding:2px 8px;white-space:nowrap;text-transform:uppercase}.rev{font-size:10px;font-weight:600;padding:3px 8px;border-radius:999px;background:#1919190f;color:#191919b3;border:0;cursor:pointer}.rev.on{background:var(--ink);color:#fff}.field{display:flex;flex-direction:column;gap:4px}.field label,.field .label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mid)}.field input,.field textarea,.field select{border:0;border-bottom:1px solid var(--hair-strong);padding:8px 0;background:transparent;outline:none;font-size:13px;border-radius:0}.field input:focus,.field textarea:focus,.field select:focus{border-bottom:2px solid var(--ink);padding-bottom:7px}.field textarea{resize:vertical;min-height:64px}.row{display:flex;flex-wrap:wrap;gap:20px}.row>*{flex:1 1 140px}.shell{display:flex;min-height:100%}.rail{flex:0 0 224px;display:flex;flex-direction:column;background:var(--canvas);border-right:1px solid var(--hair);position:sticky;top:0;height:100vh;overflow-y:auto}.rail-head{padding:20px 20px 14px;display:flex;flex-direction:column;gap:2px}.rail-sep{height:1px;background:var(--hair);margin:8px 12px}.rail-list{display:flex;flex-direction:column;gap:2px;padding:0 8px}.rail-item{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;height:36px;padding:0 12px;border-radius:999px;font-size:13px;color:var(--ink-80);border:0;background:transparent;cursor:pointer;text-align:left;text-decoration:none;width:100%}.rail-item:hover{background:var(--hover);color:var(--ink)}.rail-item.on{color:var(--ink);font-weight:600}.rail-item .tag{font-size:10px;color:var(--faint);font-weight:600}.main{flex:1 1 auto;min-width:0;background:var(--surface);position:relative}.topbar,.phone-only{display:none}.split{display:flex;min-height:100vh}.list-pane{flex:0 0 340px;background:var(--canvas);border-right:1px solid var(--hair);display:flex;flex-direction:column;min-width:0}.pane-head{padding:24px 24px 10px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.list-row{position:relative;display:flex;flex-direction:column;gap:5px;padding:12px 24px;border:0;border-bottom:1px solid rgba(25,25,25,.08);background:transparent;text-align:left;cursor:pointer;width:100%;color:inherit;text-decoration:none}.list-row:hover{background:var(--hover)}.list-row.on{background:#1919190f}.list-stack{position:relative}.detail-pane{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.page{padding:32px 40px 64px;max-width:1080px}.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg)}.empty{padding:48px 24px;text-align:center;color:var(--mid);font-size:12px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty .title{font-size:15px;color:var(--ink)}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#19191914;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:100%;background:var(--surface);border-left:1px solid rgba(25,25,25,.2);box-shadow:-12px 0 32px #1919191f;z-index:41;display:flex;flex-direction:column;overflow:hidden}.drawer.wide{width:min(1040px,100vw)}.drawer-body.reading{background:var(--sheet-ground);padding:16px 20px 24px;gap:14px}.viewer-img{display:block;max-width:100%;margin:0 auto;background:#fff;border:1px solid rgba(25,25,25,.2)}.drawer-head{padding:24px 28px 8px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.drawer-body{padding:12px 28px;display:flex;flex-direction:column;gap:20px;overflow-y:auto;flex:1 1 auto}.drawer-foot{padding:16px 28px 24px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--hair)}.drop{border:1px dashed rgba(25,25,25,.35);border-radius:var(--r-lg);padding:24px 16px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.drop.over{background:var(--hover);border-color:var(--ink)}.file-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--hair);border-radius:var(--r-md);font-size:12px}.file-row .ext{font-size:10px;font-weight:700;border:1px solid rgba(25,25,25,.4);border-radius:4px;padding:2px 5px}.file-row .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer{flex:1 1 auto;min-width:0;padding:20px 24px;background:var(--sheet-ground);display:flex;flex-direction:column;gap:14px}.sheet{position:relative;background:#fff;border:1px solid rgba(25,25,25,.2);box-shadow:0 1px 3px #19191914}.sheet canvas{display:block;width:100%;height:auto}.sheet svg.markups{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.sheet.placing{cursor:crosshair}.pin{position:absolute;width:26px;height:26px;border-radius:50%;border:2px solid #fff;font-size:11px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 1px 4px #19191959;background:var(--alert);cursor:pointer}.pin.gc{background:#191919}.pin.on{outline:3px solid rgba(179,58,42,.35)}.pin.pending{background:#fff;color:var(--ink);border-color:var(--ink)}.conv{flex:0 0 320px;border-left:1px solid var(--hair);display:flex;flex-direction:column;background:var(--surface);min-width:0}.thread{display:flex;flex-direction:column;gap:6px;padding:10px 20px;border:0;background:transparent;text-align:left;width:100%;cursor:pointer}.thread.on{background:#1919190d}.reply{margin-left:12px;padding-left:10px;border-left:1px solid rgba(25,25,25,.2);display:flex;flex-direction:column;gap:2px}.badge{width:20px;height:20px;border-radius:50%;font-size:10px;font-weight:700;color:#fff;display:inline-flex;align-items:center;justify-content:center;background:var(--alert);flex:0 0 auto}.badge.gc{background:#191919}.composer{padding:12px 20px 20px;display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--hair)}.composer textarea{flex:1;min-width:0;border:0;border-bottom:1px solid var(--hair-strong);padding:8px 0;font-size:12px;background:transparent;outline:none;resize:none;min-height:34px}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mid);padding:8px 10px;border-bottom:1px solid var(--hair)}.table td{padding:10px;border-bottom:1px solid rgba(25,25,25,.08);vertical-align:top}.scroll-x{overflow-x:auto}.table .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.g703 td,.g703 th{padding:7px 10px}.g703-section td{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:#19191908;color:var(--ink)}.g703-total td{font-weight:700;border-bottom:1px solid var(--hair)}.e-cell{width:110px;text-align:right;border:0;border-bottom:1px solid var(--hair-strong);background:transparent;padding:4px 2px;font-variant-numeric:tabular-nums;outline:none;font-size:12px}.e-cell:focus{border-bottom:2px solid var(--ink);padding-bottom:3px}.notice{font-size:11px;padding:8px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn)}.overview-grid{display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start}.ov-row{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid rgba(25,25,25,.08);text-decoration:none;color:inherit;font-size:12px}.ov-row:hover{color:inherit;background:var(--hover)}.ov-date{width:56px;flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.06em}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.photo{position:relative;aspect-ratio:4 / 3;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--hair);background:#1919190d;padding:0;cursor:pointer}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-x{position:absolute;top:4px;right:4px;background:#ffffffe6;width:26px;height:26px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.chat{display:flex;flex-direction:column;height:calc(100vh - var(--banner-h, 0px))}.chat-head{padding:24px 28px 14px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--hair)}.chat-list{flex:1 1 auto;overflow-y:auto;padding:16px 28px;display:flex;flex-direction:column}.chat-day{display:flex;align-items:center;gap:12px;margin:18px 0 8px;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mid)}.chat-day:before,.chat-day:after{content:"";flex:1;height:1px;background:var(--hair)}.msg-row{display:flex;gap:12px;align-items:flex-start;margin-top:18px;max-width:780px}.msg-row.grouped{margin-top:4px}.msg-avatar{flex:0 0 32px;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.02em}.msg-avatar.spacer{visibility:hidden;height:0}.msg-avatar.cp{background:var(--ink);color:#fff;font-family:var(--display);font-size:10px}.msg-avatar.g0{background:#e7e3de;color:var(--ink)}.msg-avatar.g1{background:#dcdad5;color:var(--ink)}.msg-avatar.g2{background:#eae6e0;color:var(--ink);box-shadow:inset 0 0 0 1px #1919191f}.msg-avatar.g3{background:#d6d2cc;color:var(--ink)}.msg-avatar.mine{background:#fff;box-shadow:inset 0 0 0 1.5px var(--ink)}.msg{flex:1 1 auto;min-width:0;padding:12px 16px 13px;border-radius:var(--r-lg)}.msg-row.cp .msg{background:#19191913}.msg-row.other .msg{background:#fff;border:1px solid var(--hair)}.msg-row.mine .msg{background:#19191906;border:1px solid rgba(25,25,25,.28)}.msg-row.grouped .msg{padding-top:10px}.msg-row.auto .msg{background:transparent;border:1px dashed var(--hair-strong)}.msg-row.auto .msg-body{color:var(--mid);font-style:italic}.msg-meta{display:flex;gap:10px;align-items:baseline;margin-bottom:8px}.msg-who{font-size:12.5px;font-weight:800;letter-spacing:.01em}.msg-body{font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.msg-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.msg-files .file-row{min-width:220px}.msg-thumb{position:relative;width:160px;height:120px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--hair);padding:0;cursor:pointer;background:#1919190d}.msg-thumb img{width:100%;height:100%;object-fit:cover;display:block}.chat-composer{border-top:1px solid var(--hair);padding:12px 28px 18px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}.chat-composer textarea{flex:1;min-width:0;resize:none;border:1px solid var(--hair-strong);border-radius:var(--r-lg);padding:10px 12px;font-size:13px;outline:none;background:#fff;min-height:40px}.chat-composer textarea:focus{border-color:var(--ink)}.chat-composer textarea:disabled{background:#19191908;color:var(--mid)}@media (max-width: 860px){.shell{flex-direction:column}.rail{position:fixed;z-index:50;left:0;top:0;bottom:0;height:auto;width:280px;transform:translate(-100%);transition:transform .18s ease-out;box-shadow:12px 0 32px #1919191f}.rail.open{transform:none}.phone-only{display:inline-flex}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--hair);background:var(--canvas);position:sticky;top:0;z-index:30}.split{flex-direction:column;min-height:0}.list-pane{flex:0 0 auto;border-right:0}.split.has-detail .list-pane{display:none}.split:not(.has-detail) .detail-pane{display:none}.detail-body{flex-direction:column}.conv{flex:0 0 auto;border-left:0;border-top:1px solid var(--hair)}.viewer{padding:12px}.page{padding:20px 16px 48px}.drawer{width:100%}.overview-grid{grid-template-columns:1fr}.chat{height:calc(100vh - 57px - var(--banner-h, 0px))}.chat-head,.chat-list,.chat-composer{padding-left:16px;padding-right:16px}.btn,.rail-item{height:44px}}.vellum-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.vellum-scroll{position:relative;overflow:auto;max-height:calc(100vh - 210px);min-height:320px;background:var(--sheet-ground);border:1px solid var(--hair);overscroll-behavior:contain}.vellum-stage{position:relative;background:#fff;margin:0 auto;touch-action:none}.vellum-stage canvas{display:block;width:100%;height:100%}.vellum-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.vellum-text-input{position:absolute;transform:translateY(-4px);min-width:160px;font:500 13px Obel Mono,ui-monospace,monospace;background:#ffffffeb;border:1px solid currentColor;padding:3px 6px}.sketch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:18px}.sketch-card{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--surface);border:1px solid var(--hair);padding:10px;cursor:pointer;font:inherit;color:inherit}.sketch-card:hover{border-color:#19191959}.sketch-thumb{aspect-ratio:3 / 2;background:var(--sheet-ground);display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--hair)}.sketch-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.sketch-strip{display:flex;gap:10px;flex-wrap:wrap}.sketch-strip .sketch-card{width:180px}
