:root{--bg: #ffffff;--fg: #0d0d0d;--muted: #71717a;--faint: #a1a1aa;--line: #e4e4e7;--soft: #f4f4f5;--soft-2: #fafafa;--warn: #b45309;--err: #dc2626;--brand: #0d0d0d;--radius: 14px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--fg);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}input,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit}svg{display:block;flex:none}.app-shell{display:flex;flex-direction:column;height:100dvh;background:var(--bg)}.topbar{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 10px;flex:none;border-bottom:1px solid var(--line);background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;z-index:5}.topbar-title{display:flex;align-items:center;gap:7px;font-size:16px}.brand-mark{color:var(--fg)}.brand-logo{width:22px;height:22px;border-radius:6px;object-fit:cover}.topbar-right{display:flex;align-items:center;gap:4px}.topbar-user{font-size:13px;color:var(--muted);max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:34px;height:34px;border-radius:10px;color:var(--muted);transition:background .12s,color .12s}.icon-btn:hover{background:var(--soft);color:var(--fg)}.tag{font-size:11px;padding:1px 8px;border-radius:99px;background:var(--soft);color:var(--muted);margin-left:2px;white-space:nowrap}.tag-warn{background:#fef3c7;color:var(--warn)}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:20;animation:fadein .16s ease}.drawer{position:absolute;top:0;bottom:0;width:min(84vw,340px);background:var(--bg);box-shadow:0 8px 40px #00000024;display:flex;flex-direction:column;animation:slidein .2s ease}.drawer.left{left:0;border-radius:0 16px 16px 0}.drawer:not(.left){right:0;border-radius:16px 0 0 16px}@keyframes slidein{0%{transform:translate(-16px);opacity:.6}}@keyframes fadein{0%{opacity:0}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;font-weight:600;border-bottom:1px solid var(--line)}.drawer-body{flex:1;overflow-y:auto;padding:12px}.drawer-link{display:flex;align-items:center;gap:10px;width:100%;margin-top:8px;padding:10px 12px;border-radius:10px;font-size:14px;color:var(--fg);transition:background .12s}.drawer-link:hover{background:var(--soft-2)}.sess-list{margin-top:10px;display:flex;flex-direction:column;gap:2px}.sess-item{padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .12s}.sess-item:hover{background:var(--soft-2)}.sess-item.active{background:var(--soft)}.sess-title{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sess-item.active .sess-title{font-weight:600}.sess-time{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--faint);margin-top:2px}.sess-del{color:var(--faint);padding:2px;border-radius:6px}.sess-del:hover{color:var(--err);background:#fee2e2}.chat-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain}.chat-col{max-width:768px;margin:0 auto;padding:20px 16px 12px}.empty-chat{padding:9vh 6px 20px;text-align:center}.empty-logo{width:52px;height:52px;margin:0 auto 16px;border-radius:16px;background:var(--soft);color:var(--fg);display:flex;align-items:center;justify-content:center}.empty-logo img{width:40px;height:40px;object-fit:contain}.empty-chat h3{font-size:19px;font-weight:650;margin-bottom:8px}.empty-chat p{color:var(--muted);font-size:13.5px;max-width:460px;margin:0 auto}.suggest{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:22px}.msg{margin:18px 0;display:flex}.msg.user{justify-content:flex-end}.user-bubble{background:var(--soft);border-radius:18px 18px 4px;padding:9px 14px;max-width:86%;white-space:pre-wrap;word-break:break-word}.ai-bubble{max-width:100%;flex:1;min-width:0}.mode-tip{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-bottom:6px}.mode-tip.warn{color:var(--warn)}.mode-tip.status .typing{padding:0}.mode-tip.status .typing span{width:4px;height:4px}.typing{display:inline-flex;gap:4px;padding:6px 0}.typing span{width:6px;height:6px;border-radius:50%;background:var(--faint);animation:tp 1.2s infinite ease-in-out}.typing span:nth-child(2){animation-delay:.18s}.typing span:nth-child(3){animation-delay:.36s}@keyframes tp{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.cursor{display:inline-block;color:var(--fg);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.msg-error{display:flex;align-items:center;gap:6px;color:var(--err);font-size:13px;margin-top:6px}.msg-foot{display:flex;align-items:center;gap:2px;margin-top:8px}.msg-foot .icon-btn{width:30px;height:30px;border-radius:8px}.foot-n{font-size:12px}.fb{display:inline-flex}.fb button{color:var(--faint)}.fb button.on{color:var(--fg)}.fb .icon-btn{width:30px;height:30px;border-radius:8px}.followups{margin-top:10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.fu-label{font-size:12px;color:var(--faint)}.chip{border:1px solid var(--line);border-radius:99px;padding:7px 14px;font-size:13.5px;color:var(--fg);background:var(--bg);transition:background .12s,border-color .12s}.chip:hover{background:var(--soft-2);border-color:#d4d4d8}.chip.sm{padding:4px 11px;font-size:12.5px}.focus-bar{flex:none;max-width:768px;margin:0 auto;width:100%;padding:6px 16px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.focus-chip{display:inline-flex;align-items:center;gap:6px;background:var(--soft);border-radius:99px;padding:4px 12px;font-size:12.5px}.focus-chip .x{display:inline-flex;color:var(--muted)}.focus-chip .x:hover{color:var(--fg)}.disambig{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px;color:var(--muted)}.composer-wrap{flex:none;padding:8px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}.composer{max-width:768px;margin:0 auto;display:flex;align-items:flex-end;gap:8px;border:1px solid var(--line);border-radius:24px;padding:8px 8px 8px 16px;background:var(--bg);box-shadow:0 2px 12px #0000000d;transition:border-color .15s}.composer:focus-within{border-color:#c4c4cc}.composer textarea{flex:1;border:none;outline:none;resize:none;background:none;max-height:128px;overflow-y:auto;line-height:1.55;padding:6px 0;font-size:15px}.send-btn{width:36px;height:36px;border-radius:50%;flex:none;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;transition:opacity .12s,background .12s}.send-btn:disabled{background:var(--soft);color:var(--faint);cursor:default}.composer-hint{max-width:768px;margin:8px auto 0;text-align:center;font-size:11.5px;color:var(--faint)}.beian{max-width:768px;margin:4px auto 0;text-align:center;font-size:11px;color:var(--faint);display:flex;gap:12px;justify-content:center}.beian a{text-decoration:none}.beian a:hover{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:8px 16px;font-size:14px;background:var(--bg);transition:background .12s}.btn:hover{background:var(--soft-2)}.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}.btn.pri:hover{background:#262626}.btn.block{width:100%}.form-row{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.form-row label{font-size:13px;color:var(--muted)}.form-row input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none;background:var(--bg)}.form-row input:focus{border-color:#c4c4cc}.detail-card input{display:block;width:100%;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none;background:var(--bg);transition:border-color .15s}.detail-card input:focus{border-color:#c4c4cc}.detail-card h3{font-size:15px;font-weight:600;margin-bottom:12px}.form-err{color:var(--err);font-size:12.5px;min-height:18px;margin-bottom:6px}.auth-shell{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.auth-card{width:min(92vw,360px);text-align:center}.auth-logo{width:56px;height:56px;margin:0 auto 14px;border-radius:16px;background:var(--soft);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}.auth-logo img{width:44px;height:44px;object-fit:contain}.auth-card h2{font-size:20px;margin-bottom:4px}.auth-hint{color:var(--muted);font-size:13px;margin-bottom:24px}.auth-card form{text-align:left}.auth-card form input{display:block;width:100%;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none;background:var(--bg);transition:border-color .15s}.auth-card form input:focus{border-color:#c4c4cc}.auth-foot{margin-top:18px;font-size:13px;color:var(--muted)}.auth-foot a{color:var(--fg)}.page-scroll{flex:1;overflow-y:auto;padding:14px 16px 30px}.filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin:10px 16px 0}.drawer .filter-bar{margin:10px 12px 0}.panel-title{display:flex;align-items:center;gap:6px;font-weight:600}.filter-bar input{flex:1 1 100%;border:1px solid var(--line);border-radius:10px;padding:9px 12px;outline:none;background:var(--bg);transition:border-color .15s}.filter-bar input:focus{border-color:#c4c4cc}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip.on{background:var(--fg);color:#fff;border-color:var(--fg)}.policy-card{border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px;margin-bottom:10px;cursor:pointer;transition:background .12s}.policy-card:hover{background:var(--soft-2)}.policy-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.policy-name{font-weight:600;font-size:14.5px}.policy-summary{color:var(--muted);font-size:13px;margin-top:4px}.section-title{font-size:13px;color:var(--muted);margin:18px 0 8px}.detail-card{border:1px solid var(--line);border-radius:var(--radius);padding:15px;margin-bottom:12px}.detail-card h2{font-size:18px;font-weight:650;margin:10px 0 12px;line-height:1.5}.kv{display:flex;gap:10px;font-size:13.5px;padding:3px 0}.kv b{color:var(--muted);font-weight:500;flex:none}.policy-doc{white-space:pre-wrap;font-size:14px}.muted{color:var(--muted)}.pad{padding:16px}.center{text-align:center}.chunk-view{display:flex;flex-direction:column;gap:8px}.chunk-section{font-size:13px;color:var(--muted);margin-top:8px}.chunk-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13.5px;cursor:pointer}.chunk-item:hover{background:var(--soft-2)}.chunk-head{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:4px}.chunk-text{font-family:inherit;white-space:pre-wrap;font-size:13.5px;line-height:1.7;background:var(--soft-2);border-radius:8px;padding:10px 12px;margin-top:10px}.cite-list{display:flex;flex-direction:column;gap:8px}.cite-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}.cite-card.active{border-color:var(--fg)}.cite-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cite-no{font-size:12px;color:var(--muted)}.cite-policy{font-weight:600;font-size:13.5px;margin:3px 0}.cite-meta{font-size:12px;color:var(--faint)}.lv{font-size:10.5px;padding:0 7px;border-radius:99px;background:var(--soft);color:var(--muted)}.lv-exp{background:#fee2e2;color:var(--err)}.lv-plain{background:#ede9fe;color:#6d28d9}.lv-nat{background:#fee2e2;color:#b91c1c}.lv-prov{background:#dbeafe;color:#1d4ed8}.lv-city{background:#dcfce7;color:#15803d}.md{font-size:15px;word-break:break-word}.md p{margin:0 0 10px}.md p:last-child{margin-bottom:0}.md-li{padding-left:4px;margin:4px 0}.md-th{font-weight:600;background:var(--soft)}.md-table-wrap{overflow-x:auto;margin:10px 0;border:1px solid var(--line);border-radius:10px}.md table{border-collapse:collapse;width:100%;font-size:13.5px}.md th,.md td{border-bottom:1px solid var(--line);padding:7px 11px;text-align:left}.md tr:last-child td{border-bottom:none}.cite-chip{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;margin:0 1px;border-radius:6px;background:var(--soft);color:var(--muted);font-size:11px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.cite-chip:hover{background:#e4e4e7;color:var(--fg)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:99px}::-webkit-scrollbar-track{background:transparent}
