:root{--bg:#05070d;--bg2:#0a0f1a;--ink:#e8eef6;--muted:#8da2b8;--teal:#2ee6d6;--blue:#3b82f6;--blue-d:#1d4ed8;--plate:#eef3f8;--plate-ink:#0b1220;--line:rgba(46,230,214,.22);--grad:linear-gradient(90deg,#2ee6d6,#3b82f6)}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 "Golos Text",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);
background:radial-gradient(900px 600px at 95% 0%,rgba(0,214,201,.18),transparent 60%),radial-gradient(900px 700px at 0% 70%,rgba(37,99,235,.18),transparent 60%),var(--bg);min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(46,230,214,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(46,230,214,.05) 1px,transparent 1px);background-size:56px 56px;z-index:0}
header,main,footer{position:relative;z-index:1}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;background:rgba(5,7,13,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:5}
.brand{font-weight:700;font-size:17px;display:flex;align-items:center;gap:10px;color:#fff}
.logo{width:13px;height:13px;border-radius:50%;background:var(--teal);box-shadow:0 0 12px var(--teal)}
.tag{background:rgba(46,230,214,.12);border:1px solid rgba(46,230,214,.5);color:var(--teal);border-radius:20px;padding:1px 9px;font:700 11px "JetBrains Mono",monospace;letter-spacing:.08em}
.top nav{display:flex;gap:12px;align-items:center}.top a{color:var(--muted)}.top a:hover{color:var(--teal)}
main{max-width:1440px;margin:0 auto;padding:20px}
.panel{background:var(--plate);color:var(--plate-ink);padding:20px;border-radius:24px}
#start.panel{background:rgba(238,243,248,.04);border:1px solid var(--line);color:var(--ink);padding:34px}
.kicker{display:inline-flex;align-items:center;gap:10px;border:1.5px solid rgba(46,230,214,.55);background:rgba(46,230,214,.08);color:var(--teal);font:700 12px "JetBrains Mono",monospace;letter-spacing:.16em;padding:6px 14px;border-radius:30px;margin:0 0 16px}
.kicker i{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal)}
h1{font-size:clamp(26px,3.4vw,42px);line-height:1.12;margin:0 0 12px;color:#fff;font-weight:800;letter-spacing:-.015em}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
h3{margin:0 0 10px;color:var(--plate-ink);font-size:17px}#start h3{color:#fff}
.lead{font-size:17px;max-width:900px;color:#c3d0de}.lead b{font-family:"JetBrains Mono",monospace;background:var(--teal);color:#04131a;border-radius:6px;padding:0 6px}
.agree{display:flex;gap:10px;align-items:center;margin-top:18px;font-weight:600;color:#e8eef6}.agree input{width:18px;height:18px;accent-color:var(--teal)}
.drop{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;border:2px dashed rgba(46,230,214,.6);background:rgba(46,230,214,.05);border-radius:20px;padding:44px;margin:16px 0;cursor:pointer;text-align:center;transition:background .15s}
.drop b{color:#fff;font-size:17px}.drop span{color:var(--muted)}.drop:hover,.drop.over{background:rgba(46,230,214,.14)}.drop.off{opacity:.4;pointer-events:none}
.warn{background:rgba(255,214,102,.08);border-left:4px solid #e2b500;border-radius:10px;padding:10px 14px;font-size:14px;color:#f3e3b0}
button{font:inherit;font-weight:600;cursor:pointer;border-radius:12px;padding:9px 16px;border:1.5px solid transparent;transition:background .15s,box-shadow .15s}
.primary{background:var(--grad);color:#04131a;box-shadow:0 6px 22px rgba(46,230,214,.22)}.primary:hover{box-shadow:0 8px 30px rgba(46,230,214,.4)}
.ghost{background:transparent;color:var(--blue-d);border-color:#b9c6d6}.ghost:hover{background:#fff}
.top .ghost,#start .ghost{color:var(--teal);border-color:rgba(46,230,214,.55);background:rgba(46,230,214,.06)}.top .ghost:hover,#start .ghost:hover{background:rgba(46,230,214,.15)}
button:disabled{opacity:.4;cursor:default}
.grid{display:grid;grid-template-columns:250px 1fr 350px;gap:14px;align-items:start}
#fileList{list-style:none;margin:0;padding:0}#fileList li{padding:9px 10px;border-radius:12px;margin-bottom:4px;cursor:pointer;word-break:break-all;font-size:14px}
#fileList li:hover{background:#fff}#fileList li.on{background:var(--plate-ink);color:#fff}#fileList li.on small{color:var(--teal)}
#fileList li small{display:block;color:#5b6b80}#fileList li.err small{color:#c0392b}
.vhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.vhead h3{word-break:break-all}
.seg,.seg2{display:inline-flex;background:#dde5ef;border-radius:12px;padding:3px}.seg button,.seg2 button{border-radius:10px;padding:5px 12px;background:transparent;color:#334155;font-size:14px}
.seg button.on,.seg2 button.on{background:var(--plate-ink);color:#fff}
.hint{color:#5b6b80;font-size:13px;margin:6px 0 10px}#start .hint{color:var(--muted)}
#doc{max-height:66vh;overflow:auto;background:#fff;border:1px solid #d5dee9;border-radius:14px;padding:12px;font-size:14px}
.ln{display:flex;gap:10px;padding:3px 0;border-bottom:1px dotted #e6ecf3}.ln .loc{color:#93a3b8;min-width:78px;font:500 12px "JetBrains Mono",monospace}
.ln .tx{white-space:pre-wrap;word-break:break-word;flex:1;color:#0b1220}
mark{border-radius:4px;padding:0 2px;cursor:pointer;background:var(--c,#ddd);color:#0b1220}mark.off{background:transparent;text-decoration:line-through;outline:1px dashed #9aa8ba}
mark.lab{background:var(--plate-ink);color:var(--teal);font:600 .95em "JetBrains Mono",monospace;cursor:default}
mark.fk{background:#d9fbf6;color:#0b1220;outline:1px solid var(--teal);cursor:default}
#groups{max-height:66vh;overflow:auto}.cat{margin-bottom:14px}.cat h4{display:flex;justify-content:space-between;align-items:center;margin:0 0 6px;font-size:14px;color:var(--plate-ink)}
.cat h4 .sw{font-size:12px;padding:3px 9px}.g{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #e1e8f0;font-size:13px}
.g input{accent-color:var(--blue-d)}.g .v{word-break:break-word}.g .l{color:var(--blue-d);font:600 12px "JetBrains Mono",monospace;white-space:nowrap}.g .low{color:#b07800;font-size:11px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--c)}
.more{color:#5b6b80;font-size:12px;padding:4px 0}
.bar{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:12px;flex-wrap:wrap}.bar>div{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.stylepick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stylepick>span:first-child{font-weight:600}#stat{color:#5b6b80;font-size:14px}
.float{position:fixed;z-index:9}
dialog{border:0;padding:0;max-width:680px;width:94vw;border-radius:24px;background:var(--plate);color:var(--plate-ink)}dialog::backdrop{background:rgba(5,7,13,.7)}
.dlg{padding:24px;display:flex;flex-direction:column;gap:10px}.dlg label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:14px}
textarea{width:100%;font:inherit;padding:10px;border:1px solid #cfd9e6;border-radius:12px;background:#fff}.row{display:flex;gap:8px}
#msg{margin-top:12px;font-weight:600;color:#e8eef6}#msg small{color:var(--muted);font-weight:400}
.prog{height:10px;background:rgba(255,255,255,.1);border-radius:6px;overflow:hidden;margin:8px 0}.prog div{height:100%;background:var(--grad);transition:width .4s}
.pgr{display:flex;gap:10px;align-items:center;justify-content:center;padding:12px;color:#5b6b80}
#sess{margin-top:24px}#sessList{list-style:none;padding:0;margin:0}#sessList li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}#sessList small{color:var(--muted)}#sessList div{display:flex;gap:8px}
.foot{max-width:1440px;margin:0 auto;padding:6px 20px 28px;color:var(--muted);font-size:14px}.foot a{color:var(--teal)}
@media(max-width:1000px){.grid{grid-template-columns:1fr}#doc,#groups{max-height:none}#start.panel{padding:22px}}
