/* Chart laboratory (/constructor/, 2026-09-17). Everything is scoped to .lab; tokens as on the match page. */
.lab{--paper:#f3f3f3;--surface:#fff;--tint:#eef1fb;--chip:#dee4f8;--ink:#2d242e;--text:#3a323b;--muted:#7b7480;--line:#e4e2e8;--line-blue:#c4cdec;
  --blue:#5976dd;--blue-deep:#4f6cd3;--purple:#8e59dd;--night:#28114d;--menu:#37284a;--shadow-blue:rgba(79,108,211,.3);
  --fav:#7495fc;--out:#e1578e;--ok:#2e8b57;--gold:#f6c343;
  --display:"Proxima Nova","Helvetica Neue",Arial,sans-serif;--body:"Open Sans","Segoe UI",Roboto,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  background:var(--paper);color:var(--text);font:14px/1.5 var(--body);text-align:left;padding-bottom:30px}
.lab *,.lab *::before,.lab *::after{box-sizing:border-box}
.lab h2,.lab h3,.lab h4{font-family:var(--display);color:var(--ink);margin:0;font-weight:700;text-transform:none;letter-spacing:normal}
.lab button{font:inherit;color:inherit;border-radius:0;box-shadow:none;text-transform:none;height:auto;line-height:normal;min-width:0}
.lab input,.lab select,.lab textarea{font:inherit;color:inherit;border-radius:0}
.lab ul{list-style:none;margin:0;padding:0}
.lab ul li::before,.lab ul li::after{content:none!important;display:none!important}
.lab [hidden]{display:none!important}
.lab :focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.lab kbd{font:600 11px var(--mono);background:rgba(0,0,0,.07);padding:1px 4px}
.lab-wrap{max-width:1400px;margin:0 auto;padding-inline:16px}
.lab-btn{border:0;background:var(--blue);color:#fff!important;padding:7px 13px;font:700 12.5px var(--display);cursor:pointer;display:inline-flex;gap:7px;align-items:center;white-space:nowrap}
.lab-btn:hover{background:var(--blue-deep)}
.lab-btn.line{background:#fff;color:var(--blue)!important;box-shadow:inset 0 0 0 1px var(--line-blue)}
.lab-btn.line:hover{background:var(--tint)}
.lab-input{width:100%;border:1px solid var(--line-blue);background:#fff;padding:7px 10px;font-size:13.5px}
.lab-label{display:block;font:700 10.5px var(--display);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.lab-hint{font-size:12px;color:var(--muted);margin:6px 0 0}

/* bar */
.lab-bar{background:var(--surface);border-bottom:1px solid var(--line)}
.lab-bar-in{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding-block:10px}
.lab-board{display:flex;gap:8px;align-items:center;min-width:0}
.lab-board input{border:0;border-bottom:1px dashed var(--line-blue);background:none;font:700 17px var(--display);color:var(--ink);padding:2px;width:24ch;max-width:44vw}
.lab-board input:focus{outline:none;border-bottom-color:var(--blue)}
.lab-board select{border:1px solid var(--line-blue);background:#fff;padding:5px 8px;font:600 12.5px var(--display);max-width:220px}
.lab-bar-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}

/* time block: fixed by the script, since the site's body scroller breaks position:sticky */
.lab-time{background:var(--surface);border-bottom:2px solid var(--chip);padding:10px 0 12px}
.lab-time.is-fixed{position:fixed;top:0;left:0;right:0;z-index:60;box-shadow:0 10px 18px -14px rgba(40,17,77,.5)}
.lab-tl-line{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.lab-tl-top{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;flex:1 1 auto;min-width:0}
.lab-tl-now{font:700 18px var(--display);color:var(--ink);white-space:nowrap}
.lab-tl-now span{font:600 12.5px var(--mono);color:var(--muted);margin-left:8px}
.lab-tl-delta{font:700 13px var(--display);color:var(--blue);background:var(--tint);padding:3px 8px}
.lab-busy{font:600 12px var(--display);color:var(--muted)}
.lab-tl-ctrl{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.lab-arrows{display:inline-flex;gap:4px}
.lab-arrows button{border:1px solid var(--line-blue);background:#fff;color:var(--blue);width:34px;height:30px;font:700 15px var(--display);cursor:pointer;padding:0}
.lab-arrows button:hover{background:var(--tint)}
.lab-arrows button:disabled{opacity:.4;cursor:default}
.lab-steps{display:inline-flex;flex-wrap:wrap}
.lab-steps button{border:1px solid var(--line-blue);background:#fff;color:var(--blue);padding:5px 10px;font:600 12.5px var(--display);cursor:pointer;margin-left:-1px}
.lab-steps button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff;position:relative}
.lab-tl-sub{margin-top:6px;font-size:12.5px;color:var(--muted);gap:4px 12px}
.lab-track{position:relative;height:46px;background:var(--tint);cursor:pointer;margin-top:8px;touch-action:none}
.lab-track .base{position:absolute;top:0;bottom:0;width:2px;background:var(--muted)}
.lab-track .head{position:absolute;top:-4px;bottom:-4px;width:3px;background:var(--blue);box-shadow:0 0 0 1px #fff;pointer-events:none}
.lab-track .mk{position:absolute;top:6px;width:10px;height:10px;margin-left:-5px;border-radius:50%;border:2px solid #fff;background:var(--muted)}
.lab-track .mk:hover{transform:scale(1.35)}
.lab-track .tick{position:absolute;bottom:2px;font:500 10px var(--mono);color:var(--muted);transform:translateX(-50%);white-space:nowrap;pointer-events:none}
.lab-track .tickline{position:absolute;top:22px;bottom:15px;width:1px;background:#d6dcf0;pointer-events:none}
.lab .start,.lab .mk.start{--c:var(--ink)}
.lab .goal-home,.lab .res-w{--c:var(--fav)}
.lab .goal-away,.lab .res-l{--c:var(--out)}
.lab .card-home,.lab .card-away{--c:var(--gold)}
.lab .res-d{--c:var(--muted)}
.lab .res-n{--c:#c9c3d4}
.lab-track .mk{background:var(--c,var(--muted))}
.lab-marks{display:flex;flex-wrap:nowrap;gap:6px;margin-top:8px;overflow-x:auto;padding-bottom:2px;font-size:12px}
.lab-marks::-webkit-scrollbar{height:0}
.lab-marks button{flex:none;border:1px solid var(--line-blue);background:#fff;padding:3px 8px;font:600 12px var(--display);color:var(--ink);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.lab-marks button:hover{border-color:var(--blue);color:var(--blue)}
.lab-marks button i{width:8px;height:8px;border-radius:50%;background:var(--c,var(--muted))}
.lab-marks .empty{color:var(--muted);font-size:12.5px}

/* work area */
.lab-work{display:grid;grid-template-columns:290px minmax(0,1fr) 340px;gap:14px;padding-top:14px;align-items:start}
.lab-pane{background:var(--surface);min-width:0;display:flex;flex-direction:column}
.lab-pane-h{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;border-bottom:1px solid var(--line)}
.lab-pane-h h2{font-size:15px;margin-right:auto}
.lab-icon{border:1px solid var(--line-blue);background:#fff;color:var(--blue);width:26px;height:26px;cursor:pointer;font:700 16px/1 var(--display);padding:0}
.lab-icon:hover{background:var(--tint)}
.lab-pane-body{padding:10px 14px 14px;display:grid;gap:10px;align-content:start;overflow:auto}
.lab-left .lab-pane-body{max-height:calc(100vh - 150px)}
.lab-kinds{display:flex;flex-wrap:wrap;gap:4px}
.lab-kinds button{border:1px solid var(--line-blue);background:#fff;color:var(--blue);padding:4px 9px;font:600 12px var(--display);cursor:pointer}
.lab-kinds button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.lab-list h4{font:700 10.5px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 0 4px}
.lab-src{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:1px 8px;padding:7px 4px;border-top:1px solid var(--line);cursor:pointer}
.lab-src:hover{background:var(--tint)}
.lab-src.on{box-shadow:inset 3px 0 0 var(--blue);padding-left:8px}
.lab-src b{grid-column:1;font:700 13.5px/1.3 var(--display);color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-src small{grid-column:1;display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--muted);min-width:0}
.lab-src small .tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-src .put{grid-column:2;grid-row:1/span 2;display:flex;gap:3px;align-self:center}
.lab-src .put button{border:1px solid var(--line-blue);background:#fff;color:var(--blue);width:24px;height:24px;font:700 11px var(--display);cursor:pointer;padding:0}
.lab-src .put button:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.lab-src .del{border:0;background:none;color:var(--muted);cursor:pointer;padding:0 2px;font-size:14px}
.lab-kind{font:700 9.5px var(--display);letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;color:#fff;background:var(--muted);margin-right:4px;vertical-align:1px}
.lab-kind.k-match{background:var(--blue)}.lab-kind.k-coach{background:var(--purple)}.lab-kind.k-player{background:#6a86e6}.lab-kind.k-horary{background:var(--gold);color:var(--night)}
.lab-kind.k-person{background:var(--menu)}.lab-kind.k-event{background:var(--ok)}.lab-kind.k-moment{background:var(--muted)}
.lab-rr{font:600 10px var(--mono);padding:1px 4px;background:var(--chip);color:var(--ink);flex:none}
.lab-rr.x{background:#f6e3ea;color:var(--out)}
.lab-empty{color:var(--muted);padding:8px 0;font-size:13px}

.lab-add{display:grid;gap:8px;background:var(--tint);padding:10px}
.lab-add .row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lab-add .row2>div{min-width:0}
.lab-city{position:relative}
.lab-city ul{position:absolute;z-index:30;left:0;right:0;top:100%;background:#fff;box-shadow:0 10px 24px rgba(40,17,77,.2);max-height:240px;overflow:auto}
.lab-city li{padding:6px 10px;cursor:pointer;font-size:13px}
.lab-city li small{color:var(--muted);margin-left:6px}
.lab-city li:hover,.lab-city li.act{background:var(--tint)}
.lab-check{display:inline-flex;gap:6px;align-items:center;font-size:13px;cursor:pointer}
.lab-check input{accent-color:var(--blue);width:15px;height:15px;margin:0}
.lab-err{color:var(--out);font-size:12.5px}

/* center */
.lab-center{min-width:0;display:grid;gap:10px;align-content:start}
.lab-rings{display:grid;gap:8px}
.lab-ring{background:var(--surface);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:9px 12px;cursor:pointer}
.lab-ring.on{box-shadow:inset 0 0 0 2px var(--blue)}
.lab-ring .dot{grid-column:1;grid-row:1/span 2;width:12px;height:12px;border-radius:50%;background:var(--ink)}
.lab-ring.r2 .dot{background:var(--blue)}
.lab-ring b{grid-column:2;font:700 14px var(--display);color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-ring small{grid-column:2;font-size:12px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-ring .warn{color:var(--out);font-weight:600}
.lab-ring .tech{grid-column:3;grid-row:1/span 2;display:flex;gap:6px;align-items:center}
.lab-ring select{border:1px solid var(--line-blue);background:#fff;padding:5px 7px;font:600 12.5px var(--display)}
.lab-ring .x{border:0;background:none;color:var(--muted);font-size:17px;cursor:pointer;padding:0 2px}
.lab-people{background:var(--surface);padding:8px 12px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12.5px}
.lab-people b{font:700 11px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.lab-people .person{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);padding:2px 4px 2px 8px}
.lab-people .person button{border:1px solid var(--line-blue);background:#fff;color:var(--blue);width:20px;height:20px;font:700 10px var(--display);cursor:pointer;padding:0}
.lab-people .person button:hover{background:var(--blue);color:#fff}
.lab-people details{width:100%}
.lab-people summary{cursor:pointer;color:var(--blue);font:600 12.5px var(--display)}
.lab-people .lineup{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.lab-chart-box{background:var(--surface);padding:6px 6px 0;display:grid;justify-items:center}
.lab-chart{width:100%;max-width:720px;aspect-ratio:1;display:grid;place-items:center}
.lab-chart svg{display:block;max-width:100%;height:auto}
.lab-chart .lab-empty{padding:40px}
.lab-chart-foot{width:100%;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:9px 8px 11px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.lab-chart-foot label{display:inline-flex;gap:7px;align-items:center}
.lab-chart-foot select{border:1px solid var(--line-blue);background:#fff;padding:4px 6px;font:600 12.5px var(--display);color:var(--ink)}
.lab-legend{margin-left:auto;display:inline-flex;gap:6px;align-items:center}
.lab-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--ink);margin-left:6px}
.lab-legend i.l2{background:var(--blue)}

/* right: the module's tables */
.lab-tabs{display:flex;gap:2px;padding:8px 10px 0;border-bottom:1px solid var(--line)}
.lab-tabs button{border:0;background:none;padding:7px 9px 9px;font:700 12.5px var(--display);color:var(--ink);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.lab-tabs button[aria-selected="true"]{color:var(--blue);border-bottom-color:var(--blue)}
.lab-right .lab-pane-body{max-height:calc(100vh - 150px)}
.lab-eng-table table{display:table;width:100%;border-collapse:collapse;font:13px/1.3 var(--mono);font-variant-numeric:tabular-nums}
.lab-eng-table tbody{display:table-row-group}
.lab-eng-table tr{display:table-row}
.lab-eng-table td{display:table-cell;padding:3px 2px!important;border-bottom:1px solid var(--line);white-space:nowrap;float:none!important}
.lab-eng-table td span[style*="AstrologyPro"]{font-size:17px;line-height:1}
.lab-eng-table tr:hover td{background:var(--tint)}
.lab-asp-h{font:700 10.5px var(--display)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--muted)!important;padding:8px 0 4px;border-bottom:1px solid var(--line);margin-bottom:4px!important}
.lab-eng-asp{font:12.5px/1.35 var(--mono);display:flow-root}
.lab-eng-asp span[style*="AstrologyPro"]{font-size:16px}
.lab-sig .sig{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:7px 2px;border-bottom:1px solid var(--line)}
.lab-sig b{font:700 13px var(--display);color:var(--ink)}
.lab-sig small{grid-column:1;color:var(--muted);font-size:11.5px}
.lab-sig .o{grid-column:2;grid-row:1/span 2;align-self:center;font:500 12px var(--mono);color:var(--blue)}

/* palette */
.lab-palette{position:fixed;inset:0;z-index:200;background:rgba(40,17,77,.35);display:grid;place-items:start center;padding-top:12vh}
.lab-palette-box{background:#fff;width:min(620px,92vw);box-shadow:0 20px 60px rgba(20,8,40,.4);font:14px/1.5 var(--body);color:var(--text)}
.lab-palette-box input{width:100%;border:0;border-bottom:1px solid var(--line);padding:15px 18px;font-size:16px}
.lab-palette-box input:focus{outline:none}
.lab-palette-list{max-height:52vh;overflow:auto}
.lab-palette-list button{display:flex;width:100%;gap:8px;align-items:center;border:0;background:none;text-align:left;padding:8px 18px;cursor:pointer;font-size:13.5px}
.lab-palette-list button:hover,.lab-palette-list button.act{background:var(--tint)}
.lab-palette-list .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-palette-list small{margin-left:auto;color:var(--muted);font-size:11.5px;white-space:nowrap;padding-left:8px}
.lab-palette-h{font:700 10.5px var(--display);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:10px 18px 4px}
.lab-toast{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:210;background:var(--night);color:#fff;padding:8px 14px;font:600 13px var(--display);box-shadow:0 8px 24px rgba(20,8,40,.35)}

@media (max-width:1240px){
  .lab-work{grid-template-columns:270px minmax(0,1fr);grid-template-areas:"left center" "right right"}
  .lab-left{grid-area:left}.lab-center{grid-area:center}.lab-right{grid-area:right}
  .lab-right .lab-pane-body{max-height:none}
}
@media (max-width:860px){
  .lab-work{grid-template-columns:1fr;grid-template-areas:"center" "left" "right"}
  .lab-left .lab-pane-body{max-height:380px}
  .lab-time.is-fixed{position:static;box-shadow:none}
  .lab-board input{width:100%;max-width:none}
  .lab-legend{margin-left:0}
}
