

:root{
 
 --page:#f7f6f2;
 --page-2:#efeee8;
 --surface:#ffffff;
 --surface-2:#faf9f6;
 --surface-3:#f1efe9;

 
 --ink:#14171a;
 --ink-2:#4c5257;
 --ink-3:#8a9094;

 
 --line:#e6e4dd;
 --line-strong:#d3d0c6;

 
 --brand:#0d7f6f;
 --brand-2:#15a18b;
 --brand-deep:#0a5f55;
 --brand-soft:#e7f3f0;
 --brand-line:rgba(13,127,111,.20);

 
 --accent:#bf7127;
 --accent-soft:#fbf1e4;

 
 --ok:#1c7c4d;
 --ok-soft:#e8f5ee;
 --warn:#a96512;
 --warn-soft:#fdf3e4;
 --danger:#bf3a2b;
 --danger-soft:#fcedea;
 --info:#3f6382;
 --info-soft:#eef2f6;

 
 --cn:'Inter','Noto Sans SC',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
 --mono:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;

 
 --r-lg:18px;
 --r-md:12px;
 --r-sm:8px;
 --sh-1:0 1px 2px rgba(20,23,26,.045), 0 1px 3px rgba(20,23,26,.03);
 --sh-2:0 8px 26px rgba(20,23,26,.07);
 --sh-3:0 24px 60px rgba(20,23,26,.14);
 --ease:cubic-bezier(.22,.8,.28,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{
 font-family:var(--cn);
 background:var(--page);
 color:var(--ink);
 font-size:14px;
 line-height:1.65;
 letter-spacing:.005em;
 -webkit-font-smoothing:antialiased;
}
::selection{background:var(--brand-soft);color:var(--brand-deep);}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit;}
input,select,textarea{font:inherit;color:inherit;}
a{color:inherit;text-decoration:none;}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.link{color:var(--brand);cursor:pointer;font-weight:500;}
.link:hover{color:var(--brand-deep);text-decoration:underline;text-underline-offset:3px;}

.btn{
 display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;
 border-radius:var(--r-md);font-size:13px;font-weight:500;border:1px solid var(--line-strong);
 background:var(--surface);color:var(--ink);transition:all .2s var(--ease);white-space:nowrap;
}
.btn:hover{border-color:var(--brand-line);color:var(--brand-deep);transform:translateY(-1px);box-shadow:var(--sh-1);}
.btn:active{transform:none;}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 3px 12px rgba(13,127,111,.22);}
.btn.primary:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff;box-shadow:0 6px 18px rgba(13,127,111,.3);}
.btn.soft{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-deep);}
.btn.soft:hover{background:#dcf0eb;color:var(--brand-deep);}
.btn.danger{background:transparent;border-color:rgba(191,58,43,.32);color:var(--danger);}
.btn.danger:hover{background:var(--danger-soft);border-color:rgba(191,58,43,.45);}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2);}
.btn.ghost:hover{background:var(--surface-2);color:var(--ink);}
.btn.sm{height:29px;padding:0 11px;font-size:12px;border-radius:var(--r-sm);}
.btn.block{width:100%;height:46px;font-size:14.5px;border-radius:var(--r-md);}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}

.badge{
 display:inline-flex;align-items:center;gap:5px;height:21px;padding:0 9px;border-radius:999px;
 font-size:10.5px;font-weight:500;border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface);white-space:nowrap;
}
.badge i{width:5px;height:5px;border-radius:50%;background:currentColor;}
.badge.ok{color:var(--ok);background:var(--ok-soft);border-color:rgba(28,124,77,.22);}
.badge.warn{color:var(--warn);background:var(--warn-soft);border-color:rgba(169,101,18,.22);}
.badge.danger{color:var(--danger);background:var(--danger-soft);border-color:rgba(191,58,43,.22);}
.badge.info{color:var(--info);background:var(--info-soft);border-color:rgba(63,99,130,.22);}
.badge.brand{color:var(--brand-deep);background:var(--brand-soft);border-color:var(--brand-line);}

.field{display:block;margin-bottom:16px;}
.field>span{display:block;font-size:12.5px;color:var(--ink-2);margin-bottom:7px;font-weight:500;}
.field>span .req{color:var(--danger);margin-left:3px;}
.field>span .opt{color:var(--ink-3);font-size:10.5px;font-weight:400;margin-left:5px;font-family:var(--mono);}
.input{
 width:100%;height:46px;padding:0 14px;border-radius:var(--r-md);
 background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);font-size:14px;
 outline:none;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.input::placeholder{color:var(--ink-3);}
.input:hover{border-color:#c3c0b5;}
.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(13,127,111,.12);}
.input.err{border-color:var(--danger);box-shadow:0 0 0 3px rgba(191,58,43,.1);}
.field .msg{font-size:11px;margin-top:6px;min-height:15px;color:var(--ink-3);}
.field .msg.err{color:var(--danger);}
.field .msg.ok{color:var(--ok);}
textarea.input{height:auto;padding:12px 14px;min-height:88px;resize:vertical;line-height:1.6;}
select.input{appearance:none;cursor:pointer;}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 22px;border-bottom:1px solid var(--line);}
.card-head h4{font-size:14px;font-weight:700;}
.card-head .sub{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.12em;margin-top:2px;}
.card-body{padding:22px;}

.flash{display:flex;gap:9px;align-items:flex-start;border-radius:var(--r-md);padding:10px 13px;font-size:12.5px;margin-bottom:12px;border:1px solid;}
.flash.ok{background:var(--ok-soft);border-color:rgba(28,124,77,.2);color:#145c39;}
.flash.err{background:var(--danger-soft);border-color:rgba(191,58,43,.2);color:#8f2b1f;}
.flash.warn{background:var(--warn-soft);border-color:rgba(169,101,18,.2);color:#8a5609;}
.flash.info{background:var(--info-soft);border-color:rgba(63,99,130,.2);color:#2a4560;}
.flash svg{width:14px;height:14px;flex:0 0 14px;margin-top:3px;}

.tag-chip{padding:4px 11px;border-radius:999px;font-size:11px;color:var(--ink-2);border:1px solid var(--line-strong);background:var(--surface);transition:all .18s;}
.tag-chip:hover{border-color:var(--brand-line);color:var(--brand-deep);}
.tag-chip.on{color:var(--brand-deep);background:var(--brand-soft);border-color:var(--brand-line);font-weight:500;}

.svc-card{background:linear-gradient(160deg,#eaf5f2 0%,#f6f8f5 55%,#fbf6ee 100%);border:1px solid var(--brand-line);border-radius:18px;padding:24px 22px;display:flex;flex-direction:column;}
.svc-card h3{font-size:16px;font-weight:700;}
.svc-card p{font-size:11.5px;color:var(--ink-2);margin:7px 0 14px;line-height:1.75;}
.svc-lines{margin-top:auto;padding-top:16px;display:grid;gap:7px;}
.svc-lines div{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--ink-3);}
.svc-lines b{font-family:var(--mono);font-weight:500;color:var(--ink-2);}
.svc-lines b.ok{color:var(--ok);}

.svc-ic{width:42px;height:42px;flex:0 0 42px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-deep);border:1px solid var(--brand-line);}
.svc-ic svg{width:19px;height:19px;}
.svc-ic.warm{background:var(--accent-soft);color:var(--accent);border-color:rgba(191,113,39,.2);}
.svc-ic.gray{background:var(--surface-3);color:var(--ink-2);border-color:var(--line-strong);}
.svc-body{flex:1;min-width:0;}
.svc-body b{display:block;font-size:13.5px;font-weight:600;}
.svc-body span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px;line-height:1.6;}
.svc-arrow{color:var(--ink-3);margin-top:2px;transition:all .2s;}
.svc-arrow svg{width:15px;height:15px;}
.svc:hover .svc-arrow{color:var(--brand);transform:translateX(2px);}

.faq-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line);cursor:pointer;}
.faq-item:first-child{padding-top:0;}
.faq-item:last-child{border-bottom:0;padding-bottom:0;}
.faq-item .q{flex:1;min-width:0;}
.faq-item .q b{display:block;font-size:12.5px;font-weight:600;}
.faq-item .q span{display:block;font-size:11px;color:var(--ink-3);margin-top:1px;}
.faq-arrow{color:var(--ink-3);line-height:0;transition:all .2s;}
.faq-arrow svg{width:14px;height:14px;}
.faq-item:hover .faq-arrow{color:var(--brand);transform:translateX(2px);}

.chat-log{display:grid;gap:10px;padding:4px 2px 10px;max-height:286px;overflow:auto;}
.chat-msg{max-width:80%;font-size:12px;line-height:1.66;padding:8px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);}
.chat-msg .who{display:block;font-size:10px;color:var(--ink-3);margin-bottom:2px;}
.chat-msg.me{margin-left:auto;background:var(--brand);border-color:var(--brand);color:#fff;border-bottom-right-radius:4px;}
.chat-msg.me .who{color:rgba(255,255,255,.72);text-align:right;}
.chat-quick{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 8px;}
.chat-input{display:flex;gap:8px;}

.chat-msg.ai{background:var(--brand-soft);border-color:var(--brand-line);color:var(--ink);}
.chat-msg.ai .who{color:var(--brand-deep);font-weight:600;}
.chat-msg.ai .who .ai-badge{display:inline-flex;align-items:center;gap:4px;padding:0 6px;height:16px;border-radius:999px;background:var(--brand);color:#fff;font-family:var(--mono);font-size:9px;letter-spacing:.06em;margin-right:6px;vertical-align:2px;}
.chat-msg.ai .cite{margin-top:8px;padding-top:6px;border-top:1px dashed var(--brand-line);font-size:11px;color:var(--brand-deep);}
.chat-msg.ai .cite b{font-weight:600;margin-right:4px;color:var(--brand-deep);}
.chat-msg.ai .cite a{display:inline-flex;align-items:center;gap:4px;color:var(--brand);margin-right:10px;}
.chat-msg.ai .cite a:hover{color:var(--brand-deep);text-decoration:underline;text-underline-offset:2px;}
.chat-msg.ai .cite a .num{font-family:var(--mono);font-size:9.5px;background:#fff;border:1px solid var(--brand-line);border-radius:4px;padding:0 4px;color:var(--brand-deep);}
.chat-msg.ai .conf{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.04em;}

.chat-msg.agent{background:var(--surface);border-color:var(--line-strong);color:var(--ink);}
.chat-msg.agent .who{color:var(--brand-deep);font-weight:600;}
.chat-msg.agent .who .tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:5px;font-family:var(--mono);font-size:9px;background:var(--surface-3);color:var(--ink-3);letter-spacing:.05em;}

.chat-msg.system{max-width:70%;margin:2px auto;background:transparent;border:0;color:var(--ink-3);font-size:10.5px;font-family:var(--mono);letter-spacing:.03em;text-align:center;padding:4px 10px;}
.chat-msg.system::before,.chat-msg.system::after{content:"";display:inline-block;width:24px;height:1px;background:var(--line-strong);vertical-align:middle;margin:0 8px;}

.chat-msg.note{background:var(--accent-soft);border-color:rgba(191,113,39,.22);color:var(--ink);}
.chat-msg.note .who{color:var(--accent);font-weight:600;}
.chat-msg.note .who::after{content:" · 仅内部可见";font-family:var(--mono);font-size:9px;color:var(--accent);opacity:.75;}

.tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.tbl th{text-align:left;font-weight:500;color:var(--ink-3);font-size:10.5px;letter-spacing:.06em;padding:11px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);}
.tbl td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle;}
.tbl tbody tr:hover{background:var(--surface-2);}
.tbl tbody tr:last-child td{border-bottom:0;}
.tbl .num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12.5px;}
.tbl .num.brand{color:var(--brand-deep);font-weight:600;}
.tbl .num.ok{color:var(--ok);}
.tbl .num.danger{color:var(--danger);}
.table-wrap{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--line);}
.table-wrap .tbl th:first-child,.table-wrap .tbl td:first-child{padding-left:18px;}
.table-wrap .tbl th:last-child,.table-wrap .tbl td:last-child{padding-right:18px;}

.switch{width:38px;height:21px;flex:0 0 38px;border-radius:99px;background:var(--line-strong);position:relative;cursor:pointer;transition:background .2s;border:0;padding:0;}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:all .2s var(--ease);}
.switch.on{background:var(--brand);}
.switch.on::after{left:19px;}
.switch:disabled{opacity:.5;cursor:not-allowed;}

