:root{
  --ink:#f3f5fb;--surface:#fff;--border:#e2e7f1;--elev:#f1f4fa;
  --text:#1a263c;--muted:#6f7b92;--dim:#a6b0c2;
  --accent:#2d5bff;--accentSoft:#e1e8ff;--go:#34c759;--warn:#ff9f45;
  --banned:#ff5c5c;--cautious:#ff9f45;--flavor:#2d5bff;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;background:var(--ink);color:var(--text);font-size:14px;}
button{font-family:inherit;cursor:pointer;}
a{color:var(--accent);text-decoration:none;}
.login{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;}
.login .logo{font-size:56px;}
.login h1{font-size:24px;font-weight:700;}
.login p{color:var(--muted);font-size:13px;max-width:360px;text-align:center;}
.login input{width:320px;padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:var(--elev);font-size:15px;}
.login .tabs{display:flex;gap:18px;margin-bottom:4px;}
.login .tabs span{color:var(--muted);cursor:pointer;padding-bottom:4px;}
.login .tabs span.on{color:var(--accent);font-weight:600;border-bottom:2px solid var(--accent);}
.err{color:var(--banned);font-size:12px;min-height:16px;}
.btn{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:10px;padding:9px 16px;font-weight:500;font-size:14px;}
.btn.ghost{background:var(--elev);color:var(--text);border-color:var(--border);}
.btn.warn{background:var(--warn);border-color:var(--warn);color:#fff;}
.btn.danger{background:var(--banned);border-color:var(--banned);color:#fff;}
.btn.sm{padding:6px 11px;font-size:12px;border-radius:8px;}
.btn:disabled{opacity:.5;cursor:default;}
.shell{display:grid;grid-template-columns:268px 1fr;height:100vh;}
.side{background:var(--surface);border-right:1px solid var(--border);padding:14px;overflow:auto;}
.brand{display:flex;align-items:center;gap:6px;font-weight:700;font-size:16px;}
.me{color:var(--muted);font-size:12px;margin:8px 0 10px;display:flex;gap:6px;align-items:center;}
.navlabel{font-size:11px;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase;margin:14px 0 6px;}
.navitem{padding:7px 10px;border-radius:8px;color:var(--text);cursor:pointer;font-size:13px;display:flex;align-items:center;gap:6px;}
.navitem:hover{background:var(--elev);}
.navitem.on{background:var(--accentSoft);color:var(--accent);font-weight:600;}
.navitem.dim{color:var(--dim);cursor:default;}
.main{overflow:auto;padding:20px 24px;position:relative;}
.steps{display:flex;align-items:center;gap:8px;margin-bottom:16px;}
.step{display:flex;align-items:center;gap:6px;cursor:pointer;}
.step .n{width:22px;height:22px;border-radius:50%;background:var(--elev);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;}
.step.on .n,.step.done .n{background:var(--accent);color:#fff;}
.step .t{font-size:13px;color:var(--muted);}
.step.on .t{color:var(--text);font-weight:600;}
.step .line{width:22px;height:1px;background:var(--border);}
.card{background:var(--surface);border-radius:14px;padding:16px;margin-bottom:16px;box-shadow:0 4px 12px rgba(0,0,0,.04);}
.card h3{font-size:11px;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase;margin-bottom:10px;}
.h-title{font-size:22px;font-weight:700;display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.chip{display:inline-block;font-size:11px;padding:3px 8px;border-radius:999px;background:var(--accentSoft);color:var(--accent);}
.chip.fill{background:var(--accent);color:#fff;}
.chip.go{background:rgba(52,199,89,.16);color:var(--go);}
.chip.banned{background:var(--banned);color:#fff;}
.chip.cautious{background:var(--cautious);color:#fff;}
.chip.flavor{background:var(--flavor);color:#fff;}
.row{display:flex;align-items:center;gap:8px;}
.row.top{align-items:flex-start;}
.spacer{flex:1;}
.muted{color:var(--muted);}.dim{color:var(--dim);font-size:12px;}.mini{font-size:10px;color:var(--dim);}
.field{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--elev);font-size:13px;}
textarea.field{width:100%;resize:vertical;line-height:1.6;font-size:13px;}
select.field{cursor:pointer;}
.ins{border:1px solid transparent;background:var(--elev);border-radius:10px;padding:10px;margin-bottom:8px;cursor:pointer;display:flex;gap:10px;align-items:flex-start;}
.ins.on{background:var(--accentSoft);border-color:var(--accent);}
.ins .box{font-size:15px;color:var(--dim);}
.ins.on .box{color:var(--accent);}
.ins .t{font-size:14px;}.ins .d{font-size:12px;color:var(--muted);margin-top:3px;}
.editorwrap{position:relative;}
.preview{white-space:pre-wrap;font-size:13px;line-height:1.7;background:var(--elev);border:1px solid var(--border);border-radius:10px;padding:12px;min-height:120px;}
.preview mark{padding:0 1px;border-radius:3px;}
.preview mark.bannedHit{background:rgba(255,92,92,.32);}
.preview mark.cautiousHit{background:rgba(255,159,69,.32);}
.preview mark.aiFlavor{background:rgba(45,91,255,.22);}
.scan{position:absolute;left:0;right:0;height:46px;pointer-events:none;background:linear-gradient(180deg,rgba(45,91,255,0),rgba(45,91,255,.22),rgba(45,91,255,0));animation:scan 1s ease-in-out infinite alternate;border-radius:8px;}
@keyframes scan{from{top:0;}to{top:calc(100% - 46px);}}
.lexcol{flex:1;}
.lexitem{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);}
.lexitem .by{color:var(--dim);font-size:10px;margin-left:auto;}
.x{color:var(--dim);cursor:pointer;border:none;background:none;font-size:14px;}
.seltool{position:fixed;z-index:50;background:var(--text);border-radius:8px;padding:4px;display:flex;gap:4px;box-shadow:0 4px 14px rgba(0,0,0,.25);}
.seltool button{background:none;border:none;color:#fff;font-size:12px;padding:5px 8px;border-radius:6px;}
.seltool button:hover{background:rgba(255,255,255,.15);}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;z-index:60;}
.modal .box{background:var(--surface);border-radius:14px;padding:20px;width:460px;max-height:86vh;overflow:auto;}
label.lbl{font-size:11px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;display:block;margin:10px 0 4px;}
input.w,select.w,textarea.w{width:100%;}
