:root{--navy: #1b3a5c;--navy-dark: #142c46;--teal: #1aabb8;--bg: #f5f7f9;--card: #ffffff;--ink: #1d2733;--muted: #5c6b7a;--line: #dde4ea;--danger: #b3372f}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:15px}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}.login-wrap{display:grid;place-items:center;height:100%;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-dark) 60%,#0d1f33 100%)}.login-card{background:var(--card);border-radius:10px;padding:34px 38px;width:430px;box-shadow:0 18px 60px #00000059}.brand-mark{font-size:22px;font-weight:700;color:var(--navy)}.brand-logo{display:block;max-height:46px;max-width:260px;margin-bottom:12px}.login-sub{color:var(--muted);margin:4px 0 22px;font-size:13px}.login-card label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:12px 0 4px;text-transform:uppercase;letter-spacing:.04em}.login-card input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-size:15px}.login-card input:focus{outline:2px solid var(--teal);border-color:transparent}.login-card button{width:100%;margin-top:18px;padding:11px;background:var(--navy);color:#fff;border:0;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer}.login-card button:hover{background:var(--navy-dark)}.error{color:var(--danger);font-size:13px;margin-top:10px}.login-note{margin-top:20px;background:#f0f6f8;border:1px solid #d8e8ec;border-radius:6px;padding:10px 14px;font-size:13px}.login-note ul{margin:6px 0 0;padding-left:18px}.login-note code{background:#e2edf1;padding:1px 5px;border-radius:4px}.login-foot{margin-top:14px;font-size:12px;color:var(--muted);text-align:center}.shell{display:flex;flex-direction:column;height:100%}header{display:flex;align-items:center;gap:26px;background:var(--navy);color:#fff;padding:0 22px;height:54px;flex:0 0 auto}.brand{font-weight:700;font-size:16px;display:flex;align-items:center;gap:10px}.brand .by{font-weight:400;font-size:12px;opacity:.7;margin-left:6px}.brand-img{height:26px;width:auto;display:block}header nav{display:flex;gap:4px}header nav button{background:transparent;color:#cfdbe6;border:0;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:14px}header nav button.on{background:#ffffff24;color:#fff;font-weight:600}.user-box{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.fence{font-size:15px;cursor:default}main{flex:1 1 auto;overflow:hidden}footer{flex:0 0 auto;text-align:center;font-size:11.5px;color:var(--muted);padding:7px;border-top:1px solid var(--line);background:#fff}button.small{background:#eef2f5;border:1px solid var(--line);border-radius:5px;padding:4px 10px;cursor:pointer;font-size:12.5px}button.small:hover{background:#e2e9ee}.chat-layout{display:flex;height:100%}.chat-main{flex:1;overflow-y:auto;padding:26px 8% 20px;display:flex;flex-direction:column;gap:14px}.empty{margin:auto;max-width:620px;text-align:center;color:var(--muted)}.empty h2{color:var(--navy);margin-bottom:6px}.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px}.chip{background:#fff;border:1px solid var(--line);padding:8px 14px;border-radius:18px;cursor:pointer;font-size:13px;color:var(--ink)}.chip:hover{border-color:var(--teal);color:var(--navy)}.msg{max-width:860px;padding:12px 18px;border-radius:10px;line-height:1.55}.msg.user{align-self:flex-end;background:var(--navy);color:#fff}.msg.assistant{align-self:flex-start;background:var(--card);border:1px solid var(--line);box-shadow:0 1px 3px #0000000d;width:100%}.msg.assistant.thinking{color:var(--muted);font-style:italic}.msg.assistant.error{color:var(--danger)}.msg.assistant table{border-collapse:collapse;margin:8px 0;font-size:13.5px}.msg.assistant th,.msg.assistant td{border:1px solid var(--line);padding:5px 9px;text-align:left}.msg.assistant th{background:#f0f4f7}.msg.assistant p{margin:6px 0}.cites{margin-left:4px}.cite{background:#e5f4f6;color:var(--navy);border:1px solid #bfe3e8;border-radius:4px;font-size:11px;padding:1px 7px;margin:0 2px;cursor:pointer;vertical-align:super}.cite:hover{background:var(--teal);color:#fff}.src-strip{border-top:1px dashed var(--line);margin-top:12px;padding-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.src-label{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.src-pill{background:#f2f5f8;border:1px solid var(--line);border-radius:12px;padding:2px 10px;font-size:12px;cursor:pointer;color:var(--ink)}.src-pill:hover{border-color:var(--teal)}.ask{position:sticky;bottom:0;display:flex;gap:10px;padding:14px 0 4px;background:linear-gradient(transparent,var(--bg) 30%);margin-top:auto}.ask input{flex:1;padding:13px 16px;border:1px solid var(--line);border-radius:8px;font-size:15px;box-shadow:0 2px 10px #0000000f}.ask input:focus{outline:2px solid var(--teal);border-color:transparent}.ask button{padding:0 26px;background:var(--teal);color:#fff;border:0;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.ask button:disabled{opacity:.5;cursor:default}.source-panel{width:360px;flex:0 0 auto;border-left:1px solid var(--line);background:#fff;padding:18px;overflow-y:auto}.sp-head{display:flex;justify-content:space-between;align-items:center;color:var(--navy)}.sp-head .x{background:none;border:0;font-size:22px;cursor:pointer;color:var(--muted)}.sp-title{font-weight:600;margin:10px 0 6px}.sp-meta{display:flex;gap:6px;margin-bottom:10px}.tag{background:#eef2f5;border:1px solid var(--line);border-radius:4px;padding:1px 8px;font-size:11.5px;color:var(--muted)}.tag.muted{font-weight:400}.sp-sub{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 4px}.source-panel blockquote{margin:0;padding:10px 12px;background:#fdf8e9;border-left:3px solid #e5c96b;font-size:13.5px}.sp-snippet{white-space:pre-wrap;background:#f6f8fa;border:1px solid var(--line);border-radius:6px;padding:10px;font-size:12.5px;max-height:300px;overflow-y:auto}.open-file{display:inline-block;margin-top:12px;color:var(--teal);font-weight:600;text-decoration:none}.open-file:hover{text-decoration:underline}.sp-verify{margin-top:16px;font-size:12px;color:var(--muted);font-style:italic}.admin{padding:26px 6%;overflow-y:auto;height:100%}.admin section{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px 22px;margin-bottom:18px}.admin h3{margin:0 0 6px;color:var(--navy)}.hint{color:var(--muted);font-size:13px;margin-top:0}.admin table{width:100%;border-collapse:collapse;font-size:13.5px}.admin th,.admin td{border-bottom:1px solid var(--line);text-align:left;padding:8px 10px}.admin th{font-size:11.5px;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.disabled-row{color:var(--ink);background:#b3372f12}.disabled-row td{border-bottom-color:#b3372f2e}.mono{font-family:Consolas,monospace;font-size:12.5px}.qcell{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice{background:#e8f6ee;border:1px solid #bfe5cd;border-radius:6px;padding:10px 14px;margin-bottom:14px}.admin>section button{background:var(--navy);color:#fff;border:0;border-radius:6px;padding:9px 16px;cursor:pointer}.admin>section button.small{background:#eef2f5;color:var(--ink);border:1px solid var(--line);padding:4px 10px}.folder-add{display:flex;gap:8px;margin:10px 0 14px;align-items:center;flex-wrap:wrap}.folder-add input{padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:13.5px}.folder-add .grow{flex:1;min-width:280px}.folder-add button{white-space:nowrap}.audit-answer{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:10px 0 14px;font-size:14px}.audit-answer details{margin-top:8px}.audit-answer summary{cursor:pointer;color:var(--muted);font-size:12.5px}.audit-answer blockquote{margin:6px 0;padding:5px 10px;border-left:3px solid var(--teal);background:#f5f8fa;color:var(--muted);overflow-wrap:anywhere}.report-row{display:flex;gap:8px;align-items:center;margin:6px 0 14px;flex-wrap:wrap}.report-row select{padding:5px 8px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;background:#fff}.btn-link{display:inline-block;background:#eef2f5;border:1px solid var(--line);border-radius:5px;padding:4px 10px;font-size:12.5px;color:var(--ink);text-decoration:none}.btn-link:hover{background:#e2e9ee}.chat-toolbar{display:flex;justify-content:flex-end;padding:4px 0 10px}.brand.clickable{cursor:pointer}.msg.assistant.thinking{display:flex;align-items:center;gap:10px}.spinner{width:16px;height:16px;flex:none;border-radius:50%;border:2px solid var(--line);border-top-color:var(--teal);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dots{margin-left:-6px}.dots span{animation:dotblink 1.4s infinite both}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes dotblink{0%,80%,to{opacity:0}40%{opacity:1}}.ask .new-search{background:#eef2f5;border:1px solid var(--line);border-radius:8px;padding:0 14px;cursor:pointer;font-size:13px;color:var(--ink);white-space:nowrap}.ask .new-search:hover{background:#e2e9ee}ul.hint{color:var(--muted);font-size:13px;margin:4px 0 8px 18px}ul.hint li{margin-bottom:4px}td.actions{white-space:nowrap}button.small.danger{border-color:#d8b4b0;color:var(--danger);background:#fbf1f0}button.small.danger:hover{background:#f5e2e0}.recent{margin-top:26px;text-align:left;max-width:640px;margin-left:auto;margin-right:auto}.recent-head{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.recent-item{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:6px;cursor:pointer;font-size:13.5px;color:var(--ink)}.recent-item:hover{background:#f3f7f9}.ask select.scope{border:1px solid var(--line);border-radius:8px;padding:0 8px;font-size:13px;background:#fff;max-width:170px}.src-pill.memo{border-color:var(--teal);color:var(--navy);font-weight:600}.tiles{display:flex;gap:12px;flex-wrap:wrap}.tile{flex:1;min-width:130px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px}.tile-num{font-size:22px;font-weight:700;color:var(--navy)}.tile-num.small{font-size:13px;padding-top:6px}.tile-sub{font-size:13px;color:var(--muted);font-weight:400}.tile-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:2px}.empty{margin:auto;width:100%;max-width:920px;text-align:center;color:var(--muted);padding:30px 0 26px}.empty h2{color:var(--navy);margin-bottom:6px;font-size:26px}.empty>p{max-width:640px;margin:0 auto}.home-panels{display:grid;gap:16px;margin-top:30px;text-align:left}.home-panels.two{grid-template-columns:1fr 1fr}.home-panels.one{grid-template-columns:minmax(0,640px);justify-content:center}@media (max-width: 980px){.home-panels.two{grid-template-columns:1fr}}.home-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px 8px;box-shadow:0 1px 3px #0000000a}.panel-head{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:2px 6px 10px;border-bottom:1px solid var(--line)}.panel-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #f0f3f6;padding:11px 6px;font-size:13.5px;color:var(--ink);cursor:pointer}.panel-item:last-child{border-bottom:0}.panel-item:hover{background:#f2f8fa;color:var(--navy)}.panel-item .pi-text{flex:1}.panel-item .pi-go{color:var(--teal);opacity:0;font-weight:700}.panel-item:hover .pi-go{opacity:1}.panel-item .pi-time{color:var(--muted);font-size:11.5px;white-space:nowrap}.ask{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;padding:12px 0;background:var(--bg);box-shadow:0 -10px 14px -12px #0d1f332e;margin-top:auto}.ask input{flex:1;height:46px;padding:0 16px;border:1px solid var(--line);border-radius:8px;font-size:14.5px;box-shadow:none}.ask select.scope{height:46px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:13px;background:#fff;color:var(--ink);max-width:180px}.ask button{height:46px;padding:0 26px;border-radius:8px}.ask .new-search{height:46px;padding:0 16px;border-radius:8px;font-size:13px}.chips,.recent{display:none}.pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 0 2px}.pager-info{font-size:12.5px;color:var(--muted)}.review-banner{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;background:#eaf6f7;border:1px solid #bfe3e8;border-radius:8px;padding:10px 14px;font-size:13.5px}.review-banner .rb-text{flex:1}.review-card{display:flex;align-items:center;gap:16px;text-align:left;background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:10px;padding:14px 16px;margin:26px auto 0;max-width:720px;box-shadow:0 1px 3px #0000000a}.review-card .rc-sub{color:var(--muted);font-size:12.5px;margin-top:3px}.rc-btn{white-space:nowrap;height:40px;padding:0 18px;background:var(--navy);color:#fff;border:0;border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer}.rc-btn:hover{background:var(--navy-dark)}.rc-btn:disabled{opacity:.6;cursor:default}.scope-lock{display:inline-flex;align-items:center;height:46px;padding:0 12px;border:1px solid #bfe3e8;background:#eaf6f7;border-radius:8px;font-size:12.5px;color:var(--navy);white-space:nowrap}.receipt{position:relative;background:#e8f6ee;border:1px solid #bfe5cd;border-radius:8px;padding:12px 40px 12px 16px;font-size:13.5px;max-width:920px;margin:0 auto;width:100%}.receipt-detail{color:var(--muted);font-size:12px;margin-top:6px}.receipt .x,.notice .x{position:absolute;top:6px;right:10px;background:none;border:0;font-size:18px;cursor:pointer;color:var(--muted)}.notice{position:relative}
