/* AI + redaction tools */
.aibar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 4px}
.aibar button,.lab button{font:700 11px var(--head);letter-spacing:.1em;padding:7px 10px;border-radius:4px;border:1px solid rgba(0,0,0,.25);background:#e9e2cc;color:#2b2820;cursor:pointer;transition:.18s}
.aibar button:hover{transform:translateY(-1px);background:#fff}
.aibar button.ai,.lab button.ai{background:linear-gradient(135deg,#2a2146,#3b2a6b);color:#e9dcff;border-color:#6f56c9}
.aibar button.ai:hover,.lab button.ai:hover{background:linear-gradient(135deg,#3b2a6b,#5a3fb0);color:#fff}
.aibar button[hidden]{display:none}
.aisep{width:1px;height:20px;background:rgba(0,0,0,.25);margin:0 2px}
.aicustom{flex-basis:100%;display:flex;gap:6px}
.aicustom[hidden]{display:none}
.aicustom input{flex:1;padding:8px 10px;border:1px solid rgba(0,0,0,.3);border-radius:4px;font:14px var(--mono);background:#fffdf4}
.ai-spin{display:inline-block;width:11px;height:11px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:aispin .7s linear infinite;vertical-align:-2px}
.ai-spin.big{width:34px;height:34px;border-width:4px}
@keyframes aispin{to{transform:rotate(360deg)}}
.ai-busy{opacity:.8;cursor:progress}
.aibadge{position:absolute;right:6px;top:6px;z-index:3;background:#3b2a6b;color:#e9dcff;font:700 10px var(--head);letter-spacing:.14em;padding:3px 7px;border-radius:3px;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.th{position:relative}
.th .th-btns{display:flex;gap:4px;margin-top:4px}
.th .th-btns button{flex:1;font:700 10px var(--head);letter-spacing:.08em;padding:5px 4px;border-radius:3px;border:1px solid rgba(0,0,0,.25);background:#e9e2cc;cursor:pointer}
.th .th-btns button.ai{background:#3b2a6b;color:#e9dcff;border-color:#6f56c9}
.th .aibadge{right:auto;left:4px;top:4px}
/* lab */
body.lab-open{overflow:hidden}
.lab{position:fixed;inset:0;z-index:80;background:rgba(5,8,6,.82);backdrop-filter:blur(4px);display:grid;place-items:center;padding:12px;animation:labin .25s both}
@keyframes labin{from{opacity:0;transform:scale(.98)}}
.lab-box{width:min(1180px,100%);max-height:100%;display:flex;flex-direction:column;background:#17201b;border:1px solid rgba(217,178,90,.4);border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.6);color:var(--paper);overflow:hidden}
.lab-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.lab-head b{font:700 18px var(--head);letter-spacing:.2em;color:var(--gold)}
.lab-head span{font-size:13px;color:#a89f83;flex:1}
.lab .lab-x{background:none;border:0;color:#fff;font-size:26px;padding:0 8px;line-height:1}
.lab-main{display:grid;grid-template-columns:1fr 300px;min-height:0;flex:1}
@media(max-width:860px){.lab-main{grid-template-columns:1fr;overflow:auto}}
.lab-stage{position:relative;background:repeating-conic-gradient(#222 0 25%,#2a2a2a 0 50%) 0 0/20px 20px;display:grid;place-items:center;padding:12px;min-height:260px;overflow:auto}
.lab-cv canvas{max-width:100%;max-height:62vh;display:block;cursor:crosshair;touch-action:none;box-shadow:0 8px 30px rgba(0,0,0,.6)}
.lab-loading{position:absolute;inset:0;background:rgba(0,0,0,.6);display:grid;place-content:center;justify-items:center;gap:12px;color:#e9dcff;font:700 14px var(--head);letter-spacing:.16em}
.lab-loading[hidden]{display:none}
.lab-side{padding:14px;overflow:auto;border-left:1px solid rgba(255,255,255,.1);max-height:70vh}
.lab-side h4{font:700 11px var(--head);letter-spacing:.22em;color:var(--gold);margin:16px 0 8px}
.lab-side h4:first-child{margin-top:0}
.lab-side h4 em{font-style:normal;color:#fff;background:rgba(255,255,255,.15);padding:1px 7px;border-radius:9px;margin-left:6px}
.lab-styles,.lab-det{display:flex;flex-wrap:wrap;gap:6px}
.lab-styles button.on{background:var(--gold);color:#1b1a17;border-color:var(--gold)}
.lab-side button{background:#26302a;color:var(--paper);border-color:rgba(255,255,255,.2)}
.lab-side button.wide{width:100%;margin-top:6px}
.lab-row{display:flex;gap:6px;margin-top:8px}
.lab-row input,.lab-side textarea{flex:1;min-width:0;padding:9px;background:#0e1511;border:1px solid rgba(255,255,255,.2);color:var(--paper);font:13px var(--mono);border-radius:4px;width:100%;resize:vertical}
.lab-note{display:block;color:#8f866c;font-size:12px;margin-top:6px;line-height:1.4}
.lab-ops{display:flex;flex-wrap:wrap;gap:6px;max-height:120px;overflow:auto}
.lab-ops small{color:#8f866c}
.lab-ops .chip{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.08);border-radius:99px;padding:3px 4px 3px 10px;font-size:12px}
.lab-ops .chip button{padding:0 7px;font-size:15px;border:0;background:none;color:#f08b8b;border-radius:99px}
.lab-foot{display:flex;gap:8px;padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);align-items:center;flex-wrap:wrap}
.lab-foot .grow{flex:1}
.lab-foot button{background:#26302a;color:var(--paper);border-color:rgba(255,255,255,.2);padding:10px 14px}
.lab-foot button.gold{background:var(--gold);color:#1b1a17;border-color:var(--gold)}
.lab button:disabled{opacity:.5;cursor:not-allowed}
.th .th-btns button{position:static;width:auto;height:auto;border-radius:3px;line-height:normal;color:#2b2820}
.th .th-btns button.ai{color:#e9dcff}
.th{overflow:visible}
