:root{--navy:#18202e;--navy-2:#222c3d;--cream:#f2eee6;--card:#fcfaf6;--white:#ffffff;--ink:#17181c;--ink-2:#3a3a3f;--muted:#6e6b64;--faint:#a39e94;--line:#dcd5c9;--line-soft:#e7e1d6;--grass:#e9e4d9;--cobalt:#2457c5;--cobalt-hover:#1d4aab;--cobalt-soft:#dce5f7;--rust:#c2582e;--rust-soft:#f4e0d6;--teal:#139a82;--teal-soft:#d8efe9;--amber:#b7860b;--amber-soft:#f5ebcf;--radius:10px;--radius-sm:8px;--shadow-sm:0 1px 2px rgba(24,32,46,0.05);--shadow:0 1px 2px rgba(24,32,46,0.04),0 4px 16px rgba(24,32,46,0.06);--shadow-lg:0 2px 6px rgba(24,32,46,0.06),0 12px 40px rgba(24,32,46,0.1);--font:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--display:"Inter Tight","Inter",system-ui,sans-serif;--nav-h:56px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font);font-size:14px;line-height:1.5;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px;border-radius:6px}::selection{background:var(--cobalt-soft)}h1,h2,h3,h4{font-family:var(--display);margin:0;letter-spacing:-.015em;color:var(--ink)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);color:var(--ink);font-weight:500;font-size:13.5px;white-space:nowrap;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.btn:hover{background:var(--white);border-color:#cbc3b5}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{flex:none}.btn-primary{background:var(--cobalt);border-color:var(--cobalt);color:#fff;box-shadow:0 1px 2px rgba(36,87,197,.25)}.btn-primary:hover{background:var(--cobalt-hover);border-color:var(--cobalt-hover)}.btn-primary:disabled:hover{background:var(--cobalt)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-ghost:hover{background:rgba(24,32,46,.05);border-color:transparent;color:var(--ink)}.btn-teal{background:var(--teal);border-color:var(--teal);color:#fff}.btn-teal:hover{background:#10866f;border-color:#10866f}.btn-sm{height:30px;padding:0 10px;font-size:13px;border-radius:7px}.btn-lg{height:42px;padding:0 18px;font-size:14.5px}.btn-icon{width:36px;padding:0}.btn-icon.btn-sm{width:30px}.input,.select,.textarea{height:36px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);font-size:13.5px;transition:border-color .12s,box-shadow .12s}.textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--cobalt);box-shadow:0 0 0 3px rgba(36,87,197,.12)}.select{padding-right:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236E6B64' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}.field-label{display:block;font-size:12.5px;margin-bottom:6px}.badge,.field-label{font-weight:500;color:var(--ink-2)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;white-space:nowrap;background:var(--grass)}.badge-type{background:transparent;border:1px solid var(--line);color:var(--ink-2);border-radius:6px}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-working{background:var(--amber-soft);color:#8a6508}.status-ready{background:var(--cobalt-soft);color:var(--cobalt)}.status-approved,.status-final{background:var(--teal-soft);color:#0e7a67}.status-draft{background:var(--grass);color:var(--muted)}.status-working.badge-dot:before{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.side{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:#ebe6dc;border-right:1px solid var(--line)}.side-brand{display:flex;align-items:center;gap:10px;height:60px;padding:0 16px;background:var(--navy);flex:none}.side-brand img{height:20px;width:auto;display:block}.side-brand span{font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:500;padding-left:10px;border-left:1px solid rgba(255,255,255,.18)}.side-new{margin:14px 12px 6px}.side-new .btn{width:100%;justify-content:flex-start;height:38px;background:var(--white);box-shadow:var(--shadow-sm)}.side-new .btn:hover{border-color:#c6bdae}.side-nav{display:flex;flex-direction:column;gap:1px;padding:6px 8px}.side-link{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:7px;color:var(--ink-2);font-weight:500;font-size:13.5px;transition:background .1s,color .1s}.side-link svg{color:var(--muted);flex:none}.side-link:hover{background:rgba(24,32,46,.05);color:var(--ink)}.side-link.active{background:var(--white);color:var(--ink);box-shadow:var(--shadow-sm)}.side-link.active svg{color:var(--navy)}.side-link .nav-count{margin-left:auto}.nav-count{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--rust);color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.side-recent{flex:1 1;min-height:0;overflow-y:auto;padding:10px 8px;border-top:1px solid var(--line);margin-top:8px}.side-recent h3{font-family:var(--font);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:4px 10px 6px}.side-chat{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border-radius:6px;font-size:13px;color:var(--ink-2)}.side-chat span.t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.side-chat:hover{background:rgba(24,32,46,.05)}.side-chat.active{background:rgba(24,32,46,.07);color:var(--ink)}.side-chat .live{width:7px;height:7px;border-radius:50%;background:var(--cobalt);animation:pulse 1.4s infinite;flex:none}.side-foot{flex:none;border-top:1px solid var(--line);padding:10px 12px;gap:10px;position:relative}.side-foot,.side-user{display:flex;align-items:center}.side-user{gap:9px;flex:1 1;min-width:0;border:0;background:none;padding:4px;border-radius:8px;text-align:left}.side-user:hover{background:rgba(24,32,46,.05)}.avatar{flex:none;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-size:11.5px;font-weight:600;display:flex;align-items:center;justify-content:center}.side-user .who{min-width:0}.side-user .who strong{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user .who span{display:block;font-size:11.5px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.menu{position:absolute;left:12px;bottom:calc(100% + 6px);min-width:220px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;z-index:40}.menu-head{padding:8px 10px 10px;border-bottom:1px solid var(--line-soft);margin-bottom:4px}.menu-head strong{display:block;font-weight:600}.menu-head span{font-size:12.5px;color:var(--muted)}.menu-item{display:flex;width:100%;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;border:0;background:none;text-align:left;font-size:13.5px}.menu-item:hover{background:var(--grass)}.main{min-width:0}.topbar{display:none}.page{max-width:1040px;margin:0 auto;padding:44px 24px 80px}.page-narrow{max-width:860px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head h1{font-size:26px;font-weight:600}.page-head p{margin:6px 0 0;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.empty,.muted{color:var(--muted)}.empty{padding:48px 24px;text-align:center}.empty strong{display:block;color:var(--ink);font-family:var(--display);font-size:16px;font-weight:600;margin-bottom:4px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.login-brand{background:var(--navy);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-brand img{height:30px;width:auto;align-self:flex-start}.login-brand h2{color:#fff;font-size:34px;line-height:1.15;font-weight:600;max-width:420px;letter-spacing:-.02em}.login-brand p{color:rgba(255,255,255,.6);max-width:400px;margin:14px 0 0;font-size:15px}.login-brand small{color:rgba(255,255,255,.4);font-size:12px}.login-pitch{right:-120px;bottom:-120px;width:460px;height:460px}.login-pitch,.login-pitch:after{position:absolute;border:1.5px solid rgba(255,255,255,.07);border-radius:50%}.login-pitch:after{content:"";inset:120px}.login-form-side{display:flex;align-items:center;justify-content:center;padding:48px 24px}.login-form{width:100%;max-width:360px}.login-form h1{font-size:24px;font-weight:600;margin-bottom:6px}.login-form>p{color:var(--muted);margin:0 0 28px}.login-form .input{width:100%;height:42px;font-size:14.5px}.login-form .stack{display:grid;grid-gap:16px;gap:16px}.login-form .btn{width:100%;margin-top:8px}.form-error{background:var(--rust-soft);color:#9a3f1b;border-radius:var(--radius-sm);padding:9px 12px;font-size:13px}.hero{text-align:left;margin-bottom:48px}.hero h1{font-size:32px;font-weight:600;letter-spacing:-.025em;margin-bottom:6px}.hero>p{color:var(--muted);margin:0 0 22px;font-size:15px}.composer-card{position:relative;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s}.composer-card:focus-within{border-color:#b9c8ea;box-shadow:0 0 0 4px rgba(36,87,197,.08),var(--shadow)}.composer-card.dragging{border-color:var(--cobalt)}.composer-card textarea{display:block;width:100%;border:0;outline:none;background:transparent;resize:none;padding:18px 20px 6px;font-size:16px;line-height:1.55;min-height:104px;max-height:360px}.composer-card textarea::placeholder{color:var(--faint)}.composer-bar{display:flex;align-items:center;gap:10px;padding:10px 12px 12px 14px;flex-wrap:wrap}.composer-bar .spacer{flex:1 1}.composer-hint{font-size:12px;color:var(--faint)}.drop-overlay{position:absolute;inset:0;border-radius:14px;background:rgba(220,229,247,.92);border:2px dashed var(--cobalt);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--cobalt);font-weight:600;pointer-events:none;z-index:2}.drop-overlay span{font-weight:400;font-size:13px;color:#3b62b8}.chips{display:flex;flex-wrap:wrap;gap:6px}.file-chip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 6px 0 9px;border:1px solid var(--line);background:var(--card);border-radius:7px;font-size:12.5px;max-width:280px}.file-chip .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chip .size{color:var(--faint);flex:none}.file-chip .ext{flex:none;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 5px;border-radius:4px;background:var(--grass);color:var(--ink-2);text-transform:uppercase}.file-chip .ext.csv,.file-chip .ext.xls,.file-chip .ext.xlsx{background:var(--teal-soft);color:#0e7a67}.file-chip .ext.pdf{background:var(--rust-soft);color:#9a3f1b}.file-chip .ext.jpeg,.file-chip .ext.jpg,.file-chip .ext.png,.file-chip .ext.webp{background:var(--cobalt-soft);color:var(--cobalt)}.file-chip button{width:20px;height:20px;border-radius:5px;border:0;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;padding:0}.file-chip button:hover{background:var(--grass);color:var(--ink)}.file-chip.uploading{opacity:.6}.examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;align-items:center}.examples>span{font-size:12.5px;color:var(--muted);margin-right:2px}.example{border:1px solid var(--line);background:transparent;border-radius:999px;padding:5px 12px;font-size:12.5px;color:var(--ink-2);transition:background .12s,border-color .12s;text-align:left}.example:hover{background:var(--card);border-color:#cbc3b5}.section-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.section-head h2{font-size:18px;font-weight:600}.section-head .count{color:var(--faint);font-weight:500;font-size:14px}.filters{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.search{position:relative}.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}.search .input{padding-left:33px;width:240px}.report-list{overflow:hidden}.report-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 104px 112px 118px;align-items:center;grid-gap:16px;gap:16px;padding:14px 18px;border-top:1px solid var(--line-soft);transition:background .1s;cursor:pointer}.report-row:first-child{border-top:0}.report-row:hover{background:var(--white)}.report-row:hover .rr-title{color:var(--cobalt)}.rr-main{min-width:0;display:flex;gap:14px;align-items:center}.rr-thumb{flex:none;width:54px;height:38px;border-radius:4px;border:1px solid var(--line);background:var(--grass) center /cover no-repeat}.rr-text{min-width:0}.rr-title{font-weight:600;font-size:14px;transition:color .1s}.rr-sub,.rr-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rr-sub{font-size:12.5px;color:var(--muted);margin-top:2px}.rr-sub .sep{color:var(--faint);margin:0 6px}.rr-meta{font-size:12.5px;color:var(--muted);line-height:1.35}.rr-meta strong{display:block;color:var(--ink-2);font-weight:500}.rr-dl{justify-self:end}.rr-dl .btn{gap:6px}.list-foot{padding:12px 18px;border-top:1px solid var(--line-soft);font-size:12.5px;color:var(--muted)}.ws{display:grid;grid-template-columns:minmax(0,1fr);height:100vh}.ws.with-panel{grid-template-columns:minmax(360px,440px) minmax(0,1fr)}.ws-chat{display:flex;flex-direction:column;min-height:0;background:var(--cream);border-right:1px solid var(--line)}.ws-head{flex:none;padding:14px 20px 12px;border-bottom:1px solid var(--line-soft);display:flex;gap:10px;align-items:flex-start}.ws-back{flex:none;margin-top:1px}.ws-title{min-width:0;flex:1 1}.ws-title h1{font-size:16px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:text;border-radius:4px}.ws-title h1:hover{background:rgba(24,32,46,.04)}.ws-title input{width:100%;font-family:var(--display);font-size:16px;font-weight:600;border:1px solid var(--cobalt);border-radius:6px;padding:2px 6px;outline:none;background:var(--white)}.ws-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.chat-scroll{flex:1 1;overflow-y:auto;padding:20px 20px 8px;scroll-behavior:smooth}.chat-inner{display:flex;flex-direction:column;gap:14px}.msg-user{align-self:flex-end;max-width:88%;background:var(--white);border:1px solid var(--line);border-radius:14px 14px 4px 14px;padding:10px 14px;box-shadow:var(--shadow-sm);white-space:pre-wrap;word-wrap:break-word}.msg-user .chips{margin-top:8px}.msg-meta{font-size:11.5px;color:var(--faint);margin-top:-8px;align-self:flex-end}.msg-assistant{color:var(--ink);line-height:1.6;font-size:14px;word-wrap:break-word}.msg-assistant p{margin:0 0 10px}.msg-assistant p:last-child{margin-bottom:0}.msg-assistant ol,.msg-assistant ul{margin:0 0 10px;padding-left:20px}.msg-assistant li{margin:2px 0}.msg-assistant h3,.msg-assistant h4{font-size:14.5px;margin:14px 0 6px}.msg-assistant code{font-size:12.5px;background:var(--grass);padding:1px 5px;border-radius:4px}.caret{display:inline-block;width:7px;height:15px;margin-left:2px;background:var(--ink);vertical-align:-2px;animation:blink 1s steps(2,start) infinite;border-radius:1px}@keyframes blink{to{visibility:hidden}}.status-line{gap:9px;font-size:12.5px;color:var(--muted)}.status-line,.status-line .ico{display:flex;align-items:center}.status-line .ico{flex:none;width:16px;height:16px;justify-content:center;color:var(--teal)}.status-group{display:flex;flex-direction:column;gap:6px}.status-toggle{border:0;background:none;padding:0;font-size:12px;color:var(--faint);text-align:left}.status-toggle:hover{color:var(--muted)}.status-history{display:flex;flex-direction:column;gap:5px;padding-left:25px;border-left:1px solid var(--line);margin-left:7px}.status-history .status-line{font-size:12px;color:var(--faint)}.spinner{width:13px;height:13px;border-radius:50%;border:2px solid var(--cobalt-soft);border-top-color:var(--cobalt);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.thinking{display:inline-flex;gap:4px;padding:6px 0}.thinking i{width:6px;height:6px;border-radius:50%;background:var(--faint);animation:bounce 1.2s ease-in-out infinite}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}.msg-error{background:var(--rust-soft);color:#8c3a19;border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;display:flex;gap:8px}.confirm{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.confirm-head{padding:14px 16px 12px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px}.confirm-head h3{font-size:14.5px;font-weight:600}.confirm-head .badge{margin-left:auto}.confirm-subject{padding:14px 16px 4px}.confirm-subject .name{font-family:var(--display);font-size:19px;font-weight:600;letter-spacing:-.02em}.confirm-subject .facts{color:var(--muted);font-size:13px;margin-top:2px}.confirm-grid{display:grid;grid-template-columns:96px minmax(0,1fr);grid-gap:9px 12px;gap:9px 12px;padding:12px 16px 14px;font-size:13px}.confirm-grid dt{color:var(--muted);font-size:12.5px;padding-top:1px}.confirm-grid dd{margin:0;color:var(--ink)}.confirm-section{padding:12px 16px;border-top:1px solid var(--line-soft);font-size:13px}.confirm-section h4{font-family:var(--font);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.confirm-section ol,.confirm-section ul{margin:0;padding-left:18px}.confirm-section li{margin:3px 0}.confirm-section ol li::marker{color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.confirm-section.questions{background:var(--amber-soft);border-top-color:#eadbb0}.confirm-section.questions h4{color:#8a6508}.forbid-chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:6px;background:var(--rust-soft);color:#9a3f1b;font-size:12px;font-weight:500;margin:0 4px 4px 0}.forbid-chip:before{content:"";width:9px;height:1.5px;background:currentColor;border-radius:1px}.more-btn{border:0;background:none;padding:4px 0 0;color:var(--cobalt);font-size:12.5px;font-weight:500}.confirm-actions{padding:12px 16px 14px;gap:8px}.confirm-actions,.confirm-done{border-top:1px solid var(--line-soft);display:flex;background:var(--white)}.confirm-done{padding:10px 16px;font-size:12.5px;color:var(--muted);align-items:center;gap:6px}.vcard{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 12px 10px 10px;border:1px solid var(--line);border-radius:11px;background:var(--card);box-shadow:var(--shadow-sm);transition:border-color .12s,background .12s}.vcard:hover{border-color:#c6bdae;background:var(--white)}.vcard.selected{border-color:var(--cobalt);box-shadow:0 0 0 3px rgba(36,87,197,.1)}.vcard-thumb{flex:none;width:76px;height:53px;border-radius:5px;border:1px solid var(--line);background:var(--grass) center /cover no-repeat}.vcard-thumb.failed{filter:grayscale(1);opacity:.55}.vcard-body{min-width:0;flex:1 1}.vcard-title{font-weight:600;font-family:var(--display);font-size:14px}.vcard-sub{font-size:12.5px;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;margin-top:2px}.vcard-sub>span{white-space:nowrap}.vcard-sub .ok{color:#0e7a67}.vcard-sub .fail,.vcard-sub .ok{display:inline-flex;align-items:center;gap:4px;font-weight:500}.vcard-sub .fail{color:var(--rust)}.vcard-go{flex:none;color:var(--faint)}.rule-card{border:1px solid #e3d6b9;background:#fbf6ea;border-radius:11px;padding:12px 14px}.rule-card .label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:#8a6508;letter-spacing:.02em}.rule-card .text{margin:6px 0 10px;font-size:13.5px;color:var(--ink)}.rule-card .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rule-card .scope{margin-left:auto;font-size:11.5px;color:var(--muted)}.rule-card.decided{background:var(--card);border-color:var(--line)}.rule-card .decision{font-size:12.5px;color:var(--muted);display:inline-flex;gap:6px;align-items:center}.fc-card{border:1px solid var(--line);background:var(--card);border-radius:11px;padding:10px 14px;font-size:13px}.fc-card .head{display:flex;align-items:center;gap:7px;font-weight:600}.fc-card.passed .head{color:#0e7a67}.fc-card.failed .head{color:var(--rust)}.fc-card p{margin:4px 0 0;color:var(--ink-2)}.fc-card ul{margin:6px 0 0;padding-left:18px;color:var(--ink-2)}.chat-compose{flex:none;padding:10px 16px 14px}.change-banner{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--cobalt);background:var(--cobalt-soft);border-radius:9px 9px 0 0;padding:7px 10px 7px 12px;margin:0 8px;font-weight:500}.change-banner button{margin-left:auto}.chat-box{position:relative;background:var(--white);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s}.chat-box:focus-within{border-color:#b9c8ea;box-shadow:0 0 0 4px rgba(36,87,197,.08),var(--shadow)}.chat-box.dragging{border-color:var(--cobalt)}.chat-box textarea{display:block;width:100%;border:0;outline:none;resize:none;background:transparent;padding:12px 14px 4px;font-size:14px;line-height:1.5;max-height:220px;min-height:46px}.chat-box textarea::placeholder{color:var(--faint)}.chat-box textarea:disabled{background:transparent;color:var(--muted)}.chat-box .chips{padding:6px 12px 0}.chat-box-bar{display:flex;align-items:center;gap:6px;padding:4px 8px 8px}.chat-box-bar .hint{font-size:11.5px;color:var(--faint);margin-left:4px}.chat-box-bar .send{width:32px;padding:0}.chat-box-bar .send,.stop-btn{margin-left:auto;height:32px;border-radius:9px}.stop-btn .sq{width:9px;height:9px;background:currentColor;border-radius:2px}.ws-preview{display:flex;flex-direction:column;min-height:0;min-width:0;background:#e6e1d6}.pv-bar{flex:none;gap:12px;padding:10px 18px;background:var(--card);border-bottom:1px solid var(--line);min-height:57px}.pv-bar,.vtabs{display:flex;align-items:center;flex-wrap:wrap}.vtabs{gap:4px}.vtab{height:30px;padding:0 10px;border-radius:7px;border:1px solid transparent;background:none;font-size:13px;font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.vtab:hover{background:var(--grass);color:var(--ink)}.vtab.active{background:var(--white);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}.vtab.failed{color:var(--faint);text-decoration:line-through;-webkit-text-decoration-color:rgba(194,88,46,.5);text-decoration-color:rgba(194,88,46,.5)}.vtab .fixing,.vtab.failed.active{text-decoration:none}.vtab .fixing{font-size:11px;color:var(--rust)}.pv-info{font-size:12.5px;color:var(--muted)}.pv-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.stars{display:inline-flex;gap:1px}.star{width:26px;height:26px;border:0;background:none;padding:0;color:#cfc7b8;display:flex;align-items:center;justify-content:center;border-radius:5px;transition:color .1s,transform .1s}.star.on{color:#e0a42b}.star:hover{transform:scale(1.12)}.star:disabled{cursor:default}.star:disabled:hover{transform:none}.pv-scroll{flex:1 1;overflow-y:auto;padding:28px 28px 60px}.pv-pages{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.pv-page{position:relative}.pv-page img{display:block;width:100%;height:auto;aspect-ratio:1000/700;background:var(--card);border-radius:3px;box-shadow:0 1px 3px rgba(24,32,46,.1),0 8px 28px rgba(24,32,46,.1)}.pv-page .pno{position:absolute;left:-2px;top:calc(100% + 6px);font-size:11.5px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pv-page.failed img{filter:grayscale(.9);opacity:.55}.pv-banner{max-width:1000px;margin:0 auto 18px;display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;font-size:13px}.pv-banner.fail{background:var(--rust-soft);color:#8c3a19}.pv-banner.info{background:var(--card);color:var(--ink-2);border:1px solid var(--line)}.pv-banner ul{margin:6px 0 0;padding-left:18px}.pv-empty{max-width:520px;margin:9vh auto 0;text-align:center}.pv-empty .sheet{width:300px;height:210px;margin:0 auto 26px;border-radius:6px;background:var(--card);box-shadow:0 1px 3px rgba(24,32,46,.08),0 12px 32px rgba(24,32,46,.08);position:relative;overflow:hidden}.pv-empty .sheet:before{content:"";position:absolute;left:0;top:0;bottom:0;width:42%;background:var(--navy)}.pv-empty .sheet i{position:absolute;left:50%;right:9%;height:7px;border-radius:4px;background:var(--grass)}.pv-empty .sheet img{position:absolute;left:6%;top:10%;width:28%;opacity:.9}.pv-empty .sheet .bar{position:absolute;left:6%;bottom:14%;width:22%;height:5px;border-radius:3px;background:rgba(255,255,255,.2)}.pv-empty h2{font-size:18px;font-weight:600;margin-bottom:6px}.pv-empty p{color:var(--muted);margin:0}.steps{display:flex;justify-content:center;gap:6px;margin-top:22px;flex-wrap:wrap}.step{font-size:12px;padding:4px 10px;border-radius:999px;background:rgba(252,250,246,.7);color:var(--muted);border:1px solid var(--line-soft)}.mobile-tabs{display:none}.rule-add{padding:16px;display:grid;grid-gap:10px;gap:10px;margin-bottom:28px}.rule-add-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rule-add-row .select{min-width:200px}.rule-add-row .btn{margin-left:auto}.rules-section{margin-bottom:30px}.rules-section h2{font-size:15px;font-weight:600;margin-bottom:10px;display:flex;gap:8px;align-items:center}.rules-section h2 .count{color:var(--faint);font-weight:500}.rule-row{display:flex;gap:14px;padding:13px 16px;border-top:1px solid var(--line-soft);align-items:flex-start}.rule-row:first-child{border-top:0}.rule-row .num{flex:none;width:34px;font-size:12px;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-top:2px}.rule-row .body{flex:1 1;min-width:0}.rule-row .text{font-size:13.5px}.rule-row .meta{font-size:12px;color:var(--muted);margin-top:5px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rule-row .meta a{color:var(--cobalt)}.rule-row .actions{flex:none;display:flex;gap:6px}.rule-row.proposed{background:#fbf6ea}.scope-tag{display:inline-flex;height:20px;align-items:center;padding:0 7px;border-radius:5px;background:var(--grass);color:var(--ink-2);font-size:11.5px;font-weight:500}details.retired summary{cursor:pointer;font-size:13.5px;color:var(--muted);font-weight:500;padding:4px 0;list-style:none}details.retired summary::-webkit-details-marker{display:none}details.retired .card{margin-top:10px}details.retired .rule-row .text{color:var(--muted)}.players{display:grid;grid-template-columns:300px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.ent-list{overflow:hidden}.ent-group{padding:12px 14px 6px;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.ent-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;text-align:left;padding:9px 14px;border-left:2px solid transparent}.ent-item.active,.ent-item:hover{background:var(--white)}.ent-item.active{border-left-color:var(--cobalt)}.ent-item .initials{flex:none;width:30px;height:30px;border-radius:50%;background:var(--grass);display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:600;color:var(--ink-2)}.ent-item.team .initials{border-radius:8px;background:var(--navy);color:#fff}.ent-item .n{font-weight:500;font-size:13.5px}.ent-item .s{font-size:12px;color:var(--muted)}.ent-detail{padding:24px 26px;min-height:300px}.ent-detail h2{font-size:22px;font-weight:600}.ent-detail .sub{color:var(--muted);margin-top:4px;font-size:13px}.ent-notes{margin-top:20px;padding-top:18px;border-top:1px solid var(--line-soft)}.ent-notes h3,.ent-reports h3{font-family:var(--font);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.ent-reports{margin-top:22px}.ent-report{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:13.5px}.ent-report:hover .t{color:var(--cobalt)}.ent-report .t{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.ent-report .d{font-size:12px;color:var(--muted);flex:none}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:9px;font-size:13px;box-shadow:var(--shadow-lg);z-index:60;animation:toastIn .18s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,6px)}}.home{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 24px 12vh}.home-inner{width:100%;max-width:720px}.home-greet{margin:0 0 6px;color:var(--muted);font-size:15px;font-weight:500}.home h1{font-size:34px;font-weight:600;letter-spacing:-.03em;margin-bottom:22px}.home .examples{justify-content:flex-start}.send-lg{width:38px;height:38px;padding:0;border-radius:10px}.spinner.light{border-color:#fff rgba(255,255,255,.35) rgba(255,255,255,.35)}.file-chip .dup{flex:none;font-size:11px;color:#0e7a67;background:var(--teal-soft);padding:1px 6px;border-radius:4px;font-weight:500}a.file-chip:hover{border-color:#c6bdae;background:var(--white)}.ws-head{align-items:center;min-height:57px}.chat-compose.centred,.chat-inner.centred{max-width:760px;margin-left:auto;margin-right:auto;width:100%}.chat-scroll{padding-top:24px}.lib-card{border:1px solid var(--line);background:var(--card);border-radius:11px;padding:10px 14px;font-size:13px}.lib-card .label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted)}.lib-card ul{margin:6px 0 0;padding:0;list-style:none;display:grid;grid-gap:4px;gap:4px}.lib-card .dup,.lib-card .new{margin-left:8px;font-size:11px;padding:1px 6px;border-radius:4px;font-weight:500}.lib-card .dup{background:var(--grass);color:var(--muted)}.lib-card .new{background:var(--teal-soft);color:#0e7a67}.lib-card .sum{color:var(--muted)}.rule-card.memory{border-color:#c9d6f0;background:#f2f5fc}.rule-card.memory .label{color:var(--cobalt)}.rule-card.memory.decided{background:var(--card);border-color:var(--line)}.rule-card a.scope:hover{color:var(--cobalt)}.proposal-notes{margin:0 0 10px;padding:10px 12px;background:var(--white);border:1px solid var(--line-soft);border-radius:8px;font-size:13px;max-height:260px;overflow:auto}.panel{display:flex;flex-direction:column;min-height:0;min-width:0;background:#e6e1d6}.panel-head{flex:none;display:flex;align-items:center;gap:10px;padding:0 12px 0 18px;min-height:57px;background:var(--card);border-bottom:1px solid var(--line-soft)}.panel-title{flex:1 1;min-width:0}.panel-name strong{font-family:var(--display);font-size:14.5px;font-weight:600}.panel-name span,.panel-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-name span{font-size:12px;color:var(--muted)}.rtabs{display:flex;gap:4px;overflow-x:auto}.rtab{height:32px;padding:0 12px;border-radius:8px;border:1px solid transparent;background:none;font-size:13px;color:var(--muted);font-weight:500;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.rtab strong{font-family:var(--display);color:inherit;margin-right:3px}.rtab:hover{background:var(--grass);color:var(--ink)}.rtab.active{background:var(--navy);color:#fff}.panel .pv-bar{min-height:52px;padding:8px 14px 8px 18px}.panel-body{flex:1 1;min-height:0;display:flex}.thumbs{flex:none;width:112px;overflow-y:auto;padding:18px 10px 40px 14px;display:flex;flex-direction:column;gap:10px;border-right:1px solid rgba(24,32,46,.06)}.thumb{position:relative;border:0;padding:0;background:none;text-align:left;border-radius:4px}.thumb img{display:block;width:100%;height:auto;aspect-ratio:10/7;border-radius:3px;background:var(--card);box-shadow:0 1px 2px rgba(24,32,46,.12);outline:2px solid transparent;outline-offset:2px;transition:outline-color .12s}.thumb:hover img{outline-color:rgba(36,87,197,.35)}.thumb.active img{outline-color:var(--cobalt)}.thumb.failed img{filter:grayscale(.9);opacity:.55}.thumb span{display:block;font-size:10.5px;color:var(--muted);margin-top:3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel .pv-scroll{padding:22px 26px 60px}.pv-page{scroll-margin-top:18px}.viewer{display:flex;flex-direction:column;height:100vh}.viewer-head{flex:none;display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--cream);border-bottom:1px solid var(--line)}.viewer .panel{flex:1 1}.chat-row{display:flex;align-items:center;gap:10px;padding:14px 18px;border-top:1px solid var(--line-soft);transition:background .1s}.chat-row:first-child{border-top:0}.chat-row:hover{background:var(--white)}.chat-row .t{flex:1 1;min-width:0}.chat-row .t strong{display:block;font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row .t span{font-size:12.5px;color:var(--muted)}.chat-row .go{color:var(--faint);flex:none}.chat-row:hover strong{color:var(--cobalt)}.small{font-size:12.5px}code{font-size:12px;background:var(--grass);padding:1px 5px;border-radius:4px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.stat{padding:16px 18px;display:flex;flex-direction:column;gap:6px}.stat .k{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.stat .v{font-family:var(--display);font-size:26px;font-weight:600;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .v small{font-size:14px;color:var(--muted);font-weight:500;letter-spacing:0}.meter{height:6px;background:var(--grass);overflow:hidden}.meter,.meter i{border-radius:3px}.meter i{display:block;height:100%}.rule-row .avatar{margin-top:1px}.brand{display:grid;grid-template-columns:240px minmax(0,1fr);overflow:hidden;margin-bottom:30px}.brand-logo{background:var(--navy);display:flex;align-items:center;justify-content:center;padding:30px}.brand-logo img{width:150px;height:auto}.brand-info{padding:18px 20px}.brand-info h2{font-size:15px;font-weight:600}.brand-info p{margin:4px 0 0}.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));grid-gap:8px;gap:8px;margin-top:14px}.swatch{display:grid;grid-template-columns:22px 1fr;grid-template-rows:auto auto;grid-column-gap:8px;column-gap:8px;align-items:center;font-size:12.5px}.swatch i{grid-row:span 2;width:22px;height:22px;border-radius:6px;border:1px solid rgba(24,32,46,.12)}.swatch code{background:none;padding:0;color:var(--muted);font-size:11px}.brand .fonts{margin-top:14px;font-size:13px;color:var(--ink-2)}.dropzone{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-style:dashed;border-width:1.5px;background:transparent;box-shadow:none;transition:background .12s,border-color .12s}.dropzone.dragging{background:var(--cobalt-soft);border-color:var(--cobalt)}.dropzone strong{display:block;font-family:var(--display);font-size:15px;font-weight:600}.dropzone span{font-size:13px;color:var(--muted)}.upload-result{margin-top:10px;font-size:13px;display:grid;grid-gap:4px;gap:4px}.table-card{overflow:hidden}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);background:var(--card)}.table td{padding:11px 14px;border-top:1px solid var(--line-soft);vertical-align:middle}.table tbody tr:first-child td{border-top:0}.table tbody tr:hover td{background:var(--white)}.table .num{text-align:right;white-space:nowrap}.table td.file .fwrap{display:flex;gap:10px;align-items:center;min-width:0}.table td.file strong{font-weight:500}.table td.file .sum{display:block;font-size:12px;color:var(--muted)}.ent-report .ext,.table .ext{flex:none;font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 6px;border-radius:4px;background:var(--grass);color:var(--ink-2);text-transform:uppercase}.table .ext.csv,.table .ext.xlsx{background:var(--teal-soft);color:#0e7a67}.table .ext.pdf{background:var(--rust-soft);color:#9a3f1b}.link{color:var(--cobalt)}.link:hover{text-decoration:underline}@media (max-width:1100px){.report-row{grid-template-columns:minmax(0,1fr) 104px 112px 118px}.report-row .rr-type{display:none}.ws.with-panel{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}.thumbs{display:none}}@media (max-width:900px){.shell{grid-template-columns:1fr}.topbar{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 8px;background:var(--navy);position:-webkit-sticky;position:sticky;top:0;z-index:30}.topbar,.topbar .btn{color:#fff}.topbar-logo img{height:18px;display:block}.side{position:fixed;left:0;top:0;bottom:0;width:272px;z-index:50;transform:translateX(-100%);transition:transform .2s}.side.open{transform:none;box-shadow:var(--shadow-lg)}.side-scrim{position:fixed;inset:0;background:rgba(24,32,46,.35);z-index:45}.page{padding:24px 16px 60px}.home{min-height:calc(100vh - 48px);align-items:flex-start;padding-top:10vh}.home h1{font-size:26px}.chat-box-bar .hint,.composer-hint{display:none}.report-row{grid-template-columns:minmax(0,1fr) auto}.report-row .rr-status,.report-row .rr-updated{display:none}.filters{margin-left:0}.filters,.search,.search .input{width:100%}.ws,.ws.with-panel{grid-template-columns:1fr;height:calc(100vh - 48px)}.mobile-tabs~.ws{height:calc(100vh - 92px)}.ws-chat{border-right:0}.ws[data-view=chat] .panel,.ws[data-view=preview] .ws-chat{display:none}.ws:not(.with-panel) .ws-chat{display:flex!important}.mobile-tabs{display:flex;height:44px;background:var(--card);border-bottom:1px solid var(--line)}.mobile-tabs button{flex:1 1;border:0;background:none;font-weight:500;color:var(--muted);border-bottom:2px solid transparent}.mobile-tabs button.active{color:var(--ink);border-bottom-color:var(--cobalt)}.panel .pv-scroll,.pv-scroll{padding:14px}.pv-actions{margin-left:0;flex-wrap:wrap}.brand,.players,.settings-grid{grid-template-columns:1fr}.table td:nth-child(3),.table td:nth-child(4),.table th:nth-child(3),.table th:nth-child(4){display:none}.login-wrap{grid-template-columns:1fr}.login-brand{padding:28px;min-height:180px}.login-brand h2{font-size:24px}.viewer{height:calc(100vh - 48px)}}