/* v16: render looks panel + screen effects over the map */
.fxpop{width:330px;padding:4px 12px 12px!important;right:46px;max-height:min(78vh,640px);overflow:auto}
.fxpop .sp-h small{font-weight:400;opacity:.55;margin-left:6px;font-size:11px}
.fx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:6px 0 4px}
.fx-card{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:5px;border-radius:9px;padding:5px;border:1px solid var(--line,rgba(127,127,127,.25));transition:border-color .15s,transform .15s}
.fx-card:hover{transform:translateY(-1px);border-color:var(--accent,#ff7a18)}
.fx-card.on{border-color:var(--accent,#ff7a18);box-shadow:0 0 0 1px var(--accent,#ff7a18) inset}
.fx-card i{display:block;height:44px;border-radius:6px;position:relative;overflow:hidden}
.fx-card i:after{content:"";position:absolute;inset:auto 18% 0 18%;height:62%;background:var(--b);clip-path:polygon(0 30%,22% 30%,22% 0,48% 0,48% 45%,70% 45%,70% 15%,100% 15%,100% 100%,0 100%);box-shadow:0 0 0 1px var(--e) inset}
.fx-card b{font-size:11.5px;font-weight:600;line-height:1.15}
.fx-card span{font-size:10px;opacity:.6;line-height:1.2}
.fx-tog{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin:4px 0 8px}
.fx-tog label{display:flex;align-items:center;gap:7px;font-size:12px;cursor:pointer}
.fx-match{all:unset;cursor:pointer;display:block;text-align:center;font-size:12px;padding:7px 10px;border-radius:8px;border:1px solid var(--line,rgba(127,127,127,.3))}
.fx-match:hover{border-color:var(--accent,#ff7a18)}
.fx-match[disabled]{opacity:.4;pointer-events:none}

.tkfx{position:absolute;inset:0;pointer-events:none;z-index:1;--fx-paper:0;--fx-grain:0;--fx-vig:0;--fx-glow:0}
.tkfx i{position:absolute;inset:0;display:block}
.tkfx .fx-paper{opacity:calc(var(--fx-paper) * .16);mix-blend-mode:multiply;background-size:320px}
.tkfx .fx-grain{opacity:var(--fx-grain);mix-blend-mode:overlay;background-size:140px;animation:tkgrain 1.2s steps(6) infinite}
.tkfx.dark .fx-paper{mix-blend-mode:screen;opacity:calc(var(--fx-paper) * .08)}
.tkfx .fx-vig{background:radial-gradient(120% 95% at 50% 45%,transparent 55%,rgba(0,0,0,calc(var(--fx-vig) * .9)) 100%)}
.tkfx .fx-glow{opacity:var(--fx-glow);mix-blend-mode:screen;background:radial-gradient(70% 45% at 50% 100%,color-mix(in srgb,var(--fx-glow-c) 35%,transparent),transparent 70%)}
.tkfx .fx-tilt{display:none;left:0;right:0;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.tkfx.tilt .fx-tilt{display:block}
.tkfx .fx-tilt.t{top:0;height:38%;mask-image:linear-gradient(#000,transparent);-webkit-mask-image:linear-gradient(#000,transparent)}
.tkfx .fx-tilt.b{bottom:0;height:34%;mask-image:linear-gradient(transparent,#000);-webkit-mask-image:linear-gradient(transparent,#000)}
@keyframes tkgrain{0%{background-position:0 0}20%{background-position:-37px 21px}40%{background-position:19px -43px}60%{background-position:-11px 33px}80%{background-position:41px 9px}100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.tkfx .fx-grain{animation:none}}

/* v16: site analysis board tab */
.bd-wrap{display:grid;grid-template-columns:340px 1fr;gap:18px;height:100%;min-height:0;padding:16px}
.bd-side{overflow:auto;padding-right:6px}
.bd-side h3{margin:0 0 6px;font-size:18px}
.bd-lead{font-size:12.5px;opacity:.75;line-height:1.45;margin:0 0 14px}
.bd-h{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.6;margin:14px 0 8px}
.bd-themes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bd-theme{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:7px;border-radius:10px;border:1px solid var(--line,rgba(127,127,127,.25));transition:border-color .15s,transform .15s}
.bd-theme:hover{transform:translateY(-1px);border-color:var(--accent,#ff7a18)}
.bd-theme.on{border-color:var(--accent,#ff7a18);box-shadow:0 0 0 1px var(--accent,#ff7a18) inset}
.bd-theme i{display:flex;gap:3px;padding:8px;border-radius:6px;height:34px;align-items:flex-end;box-shadow:0 0 0 1px rgba(127,127,127,.2) inset}
.bd-theme i b{flex:1;border-radius:2px;height:60%}.bd-theme i b:first-child{height:100%}.bd-theme i b:nth-child(2){height:40%}
.bd-theme span{font-size:12.5px;font-weight:600}.bd-theme small{font-size:10.5px;opacity:.6;line-height:1.25}
.bd-size{margin-bottom:10px}
.bd-chk{display:flex;gap:8px;align-items:center;font-size:12.5px;margin:6px 0 14px}
.bd-go{width:100%;justify-content:center}
.bd-status{font-size:12px;opacity:.75;margin:10px 0;min-height:16px}
.bd-dl{display:flex;gap:8px}
.bd-view{overflow:auto;border-radius:12px;background:repeating-conic-gradient(rgba(127,127,127,.08) 0 25%,transparent 0 50%) 0 0/24px 24px;display:flex;align-items:flex-start;justify-content:center;padding:18px;min-height:0}
.bd-img{width:min(100%,900px);height:auto;box-shadow:0 24px 60px rgba(0,0,0,.35);border-radius:2px}
.bd-empty{margin:auto;opacity:.6;font-size:14px}
@media (max-width:900px){.bd-wrap{grid-template-columns:1fr}}

/* v17: Plot studio design tools */
.pp-inc{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;margin:4px 0 8px;border-radius:9px;border:1px solid var(--accent,#ff7a18);background:color-mix(in srgb,var(--accent,#ff7a18) 9%,transparent);cursor:pointer}
.pp-inc input{margin-top:3px}.pp-inc b{display:block;font-size:12.5px}.pp-inc small{display:block;font-size:11px;opacity:.7;line-height:1.35;margin-top:2px}
.pp-sub{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;opacity:.6;margin:10px 0 6px}.pp-sub small{text-transform:none;letter-spacing:0;opacity:.8;margin-left:4px}
.pp-shapes{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.pp-shape{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:8px;border:1px solid var(--line,rgba(127,127,127,.25));font-size:9.5px;text-align:center;line-height:1.1}
.pp-shape svg{width:22px;height:22px;fill:currentColor;opacity:.85}.pp-shape:hover{border-color:var(--accent,#ff7a18);color:var(--accent,#ff7a18)}
.pp-mass2{border:1px solid var(--line,rgba(127,127,127,.25));border-radius:10px;padding:8px;margin:7px 0;display:flex;flex-direction:column;gap:7px}
.pp-mass2.off{opacity:.45}
.pm-top{display:flex;align-items:center;gap:7px}.pm-top input[type=color]{width:26px;height:26px;border:0;padding:0;background:none;border-radius:6px;cursor:pointer}
.pm-name{flex:1;min-width:0;font-weight:600;background:transparent;border:0;border-bottom:1px dashed rgba(127,127,127,.4);color:inherit;font:inherit;padding:2px 0}
.pm-top em{font-style:normal;font-size:11px;opacity:.65;white-space:nowrap}
.pm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.pm-grid label{display:flex;flex-direction:column;gap:2px;font-size:10px;opacity:.85}
.pm-grid input,.pm-grid select{width:100%;min-width:0;font-size:12px;padding:4px 5px;border-radius:6px;border:1px solid var(--line,rgba(127,127,127,.3));background:transparent;color:inherit}
.pm-grid select option{color:#111}
.pm-tools{display:flex;flex-wrap:wrap;gap:3px}.pm-tools button{all:unset;cursor:pointer;min-width:22px;height:22px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--line,rgba(127,127,127,.25));font-size:12px}
.pm-tools button:hover{border-color:var(--accent,#ff7a18);color:var(--accent,#ff7a18)}.pm-tools .x{margin-left:auto}
.pp-sched table{width:100%;border-collapse:collapse;font-size:11.5px;margin-top:6px}.pp-sched th,.pp-sched td{text-align:left;padding:3px 4px;border-bottom:1px solid rgba(127,127,127,.18)}.pp-sched th{font-weight:600;opacity:.7;font-size:10.5px}
