:root{--ink:#111218;--muted:#777b88;--line:#dedfe5;--canvas:#151720;--violet:#8e7cff;--lime:#d9ff54;--aqua:#60e0d0;--coral:#ff8062;--paper:#f5f5f7}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:0}button,input{font:inherit}.shell{min-height:100vh;display:grid;grid-template:68px 1fr/282px minmax(0,1fr)}header{grid-column:1/-1;background:#101116;color:#fff;display:flex;align-items:center;gap:18px;padding:0 24px;border-bottom:1px solid #2a2c35}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff;height:42px;font-size:10px;letter-spacing:1.8px}.brand img{width:148px;height:40px;object-fit:contain;filter:invert(1) grayscale(1) contrast(1.5)}.brand span{height:17px;width:1px;background:#555863}.system{margin-left:auto;font-size:10px;letter-spacing:1.2px;color:#a7abb8;display:flex;align-items:center;gap:8px}.system i,footer i{height:7px;width:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(217,255,84,.12)}.system em{font-style:normal;color:#565a65}.icon{width:34px;height:34px;border:1px solid #3b3e49;background:transparent;border-radius:5px;color:inherit;cursor:pointer;font-weight:800}aside{grid-row:2;background:#fafafb;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.side-title{padding:25px 22px 17px;display:flex;justify-content:space-between;align-items:center}.side-title p,.panel-top p,.detail>p,.signal p{font-size:10px;letter-spacing:1.2px;font-weight:800;color:#747987;margin:0 0 6px}.side-title h2,.panel-top h2{font-size:18px;margin:0}.side-title>b,.list-panel .panel-top>b{background:#e7e8ed;border-radius:5px;font-size:11px;padding:4px 7px}.search{height:38px;margin:0 16px 14px;border:1px solid var(--line);background:#fff;border-radius:5px;padding:0 10px;display:flex;align-items:center;gap:7px;color:#737883}.search input{border:0;outline:0;min-width:0;width:100%;background:transparent;font-size:12px}nav{overflow:auto;padding:0 9px 12px}.work{width:100%;border:0;border-left:2px solid transparent;background:transparent;text-align:left;padding:11px 12px;cursor:pointer}.work:hover{background:#f0f0f3}.work.on{background:#e9e7ff;border-left-color:var(--violet)}.work b,.work span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work b{font-size:12px}.work span{font-size:11px;color:var(--muted);margin-top:3px}footer{border-top:1px solid var(--line);padding:15px 20px;color:#7a7f8c;font-size:11px;display:flex;gap:8px;align-items:center;margin-top:auto}footer i{background:var(--aqua);box-shadow:none}main{padding:30px clamp(22px,4vw,58px) 48px;max-width:1640px;width:100%;margin:auto}.signal{height:154px;position:relative;overflow:hidden;background:#11131a;color:#fff;margin-bottom:18px;padding:27px 30px;display:flex;align-items:flex-end;justify-content:space-between}.signal video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32;filter:grayscale(1) contrast(1.25)}.signal:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,11,15,.94),rgba(10,11,15,.2))}.signal>div{z-index:1}.signal p{color:var(--lime)}.signal h1{font-family:Georgia,serif;font-size:clamp(30px,3vw,46px);line-height:.95;margin:0;max-width:770px}.signal span{display:block;margin-top:10px;color:#d7d9df;font-size:14px}.signal-data{text-align:right}.signal-data b{font-size:10px;letter-spacing:.7px;font-weight:700}.stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);margin-bottom:18px}.stats div{padding:16px 18px;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats span{display:block;color:#777c89;font-size:10px;letter-spacing:1px;font-weight:800}.stats b{display:block;font-size:20px;margin-top:4px}.roll-panel,.list-panel,.detail{background:#fff;border:1px solid var(--line);border-radius:7px}.roll-panel{padding:20px}.panel-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px}#filters{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}#filters button{border:1px solid var(--line);background:#fff;border-radius:4px;padding:6px 8px;color:#5c6170;font-size:11px;cursor:pointer}#filters button.on{background:#15161d;color:#fff;border-color:#15161d}.canvas-wrap{height:320px;position:relative;background:var(--canvas);overflow:hidden;border-radius:5px}.canvas-wrap canvas{width:100%;height:100%;display:block;cursor:grab}.canvas-wrap canvas.drag{cursor:grabbing}.canvas-wrap span{position:absolute;right:12px;bottom:10px;background:rgba(10,11,15,.65);color:#b8bdc8;font-size:10px;padding:5px 7px;border-radius:4px;pointer-events:none}.range{display:grid;grid-template-columns:34px 1fr 34px 105px;gap:10px;align-items:center;margin-top:14px}.range .icon{color:#2e3340;border-color:var(--line)}.range input{accent-color:var(--violet)}.range b{font-size:11px;text-align:right;color:#747987}.legend{display:flex;gap:18px;margin-top:13px;font-size:11px;color:#6f7481}.legend span{display:flex;gap:6px;align-items:center}.legend i{height:8px;width:8px;border-radius:2px;background:#8290ad}.legend span:nth-child(2) i{background:var(--violet)}.legend span:nth-child(3) i{background:var(--lime)}.bottom{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.8fr);gap:18px;margin-top:18px}.list-panel,.detail{padding:20px}.occurrences{border-top:1px solid var(--line);max-height:360px;overflow:auto}.occurrence{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:14px 2px;text-align:left;display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;cursor:pointer}.occurrence:hover b{text-decoration:underline}.occurrence i{height:8px;width:8px;border-radius:2px}.occurrence b{font-size:12px}.occurrence small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.occurrence time{font-size:11px;color:#757a87}.empty{padding:28px 0;color:var(--muted);font-size:13px}.detail{font-size:13px;color:#747987;line-height:1.5}.detail>p{margin-top:0}.detail hr{border:0;border-top:1px solid var(--line);margin:20px 0}.family h3{font-size:17px;line-height:1.1;margin:0 0 8px;color:var(--ink)}.signature{font:10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-word}.mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.mini div{background:#f3f4f7;padding:9px;border-radius:5px}.mini span{display:block;font-size:9px;letter-spacing:.7px;font-weight:800}.mini b{display:block;font-size:17px;color:var(--ink);margin-top:3px}.rel{background:#f3f4f7;padding:8px;border-radius:5px;font-size:11px;color:#464b58;margin-top:6px}.profile{display:grid;gap:10px}.profile div{display:grid;grid-template-columns:98px 1fr 30px;gap:8px;align-items:center;font-size:10px;color:#565b68}.profile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar{height:6px;background:#e5e6eb;border-radius:3px}.bar i{display:block;height:100%;background:var(--violet);border-radius:3px}dialog{width:min(440px,calc(100% - 36px));border:1px solid var(--line);border-radius:7px;padding:30px;box-shadow:0 25px 70px rgba(20,22,28,.28)}dialog::backdrop{background:rgba(10,11,16,.62)}dialog button{float:right;border:0;background:transparent;font-size:24px;cursor:pointer}dialog p{color:var(--violet);letter-spacing:1px;font-size:10px;font-weight:800}dialog h2{font:32px/1 Georgia,serif;margin:0 0 15px}@media(max-width:980px){.shell{grid-template:68px 1fr/230px minmax(0,1fr)}main{padding:25px}.bottom{grid-template-columns:1fr}.system{display:none}}@media(max-width:720px){.shell{display:block}header{height:60px;padding:0 15px}.brand img{width:125px}aside{height:245px;border-right:0;border-bottom:1px solid var(--line)}.side-title{padding:16px 18px 10px}nav{display:flex;overflow:auto}.work{min-width:190px;border-left:0;border-bottom:2px solid transparent}.work.on{border-bottom-color:var(--violet)}footer{display:none}main{padding:18px 14px 35px}.signal{height:145px;padding:22px}.signal-data{display:none}.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}.roll-panel,.list-panel,.detail{padding:15px}.panel-top{display:block}#filters{justify-content:flex-start;margin-top:12px}.canvas-wrap{height:245px}.range{grid-template-columns:32px 1fr 32px}.range b{grid-column:1/-1;text-align:left}.legend{flex-wrap:wrap;gap:12px}}
