.card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--rl);padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}.card-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tx2)}.card-sub{font-weight:500;text-transform:none;letter-spacing:0;color:var(--tx3);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.role{padding:2px 7px;border-radius:5px;font-size:9px;letter-spacing:.06em;color:#fff}.role-p{background:var(--blue)}.role-s{background:var(--tx2)}.hint{font-size:11px;line-height:1.55;color:var(--tx3)}.hint b{color:var(--tx2)}.warn{color:var(--amber)!important}.empty{padding:18px 8px;text-align:center;font-size:12px;color:var(--tx3);line-height:1.6}.fg{display:flex;flex-direction:column;gap:5px;min-width:0}.fg label{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--tx3)}.fi{width:100%;min-width:0;padding:8px 10px;font-size:12.5px;background:var(--bg2);color:var(--tx);border:1.5px solid var(--border);border-radius:var(--r);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.fi:hover{border-color:var(--border2)}.fi:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-pale)}select.fi{cursor:pointer;appearance:none;-webkit-appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.fi-num{width:76px;flex:0 0 76px}.unit{font-size:11px;color:var(--tx3)}.color-in{width:40px;height:36px;flex:0 0 40px;padding:2px;border:1.5px solid var(--border);border-radius:var(--r);background:var(--bg2);cursor:pointer}input[type=range]{accent-color:var(--blue);width:100%}.check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--tx2);cursor:pointer}.check input{accent-color:var(--blue)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inline{display:flex;align-items:center;gap:8px;min-width:0}.inline>.fi:not(.fi-num){flex:1}.row-btns{display:flex;gap:6px;flex-wrap:wrap}.new-fields{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:var(--r);font-size:12px;font-weight:600;white-space:nowrap;transition:all .15s var(--ease)}.btn:active{transform:scale(.97)}.btn-block{width:100%}.btn-sm{padding:5px 9px;font-size:11px}.btn-brand{background:var(--navy);color:#fff;box-shadow:0 2px 8px rgba(11,29,46,.2)}body.dark-mode .btn-brand{background:var(--blue)}.btn-brand:hover{background:var(--blue);box-shadow:0 4px 14px rgba(14,159,132,.3)}.btn-out{background:var(--bg2);color:var(--tx2);border:1.5px solid var(--border)}.btn-out:hover{border-color:var(--blue);color:var(--blue)}.btn-out.on{background:var(--navy);border-color:var(--navy);color:#fff}body.dark-mode .btn-out.on{background:var(--blue);border-color:var(--blue)}.btn-ghost{color:var(--tx2);background:0 0;border:1px dashed var(--border2)}.btn-ghost:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-pale)}.btn-red{background:rgba(239,68,68,.08);color:var(--red);border:1px solid rgba(239,68,68,.3)}.btn-red:hover{background:rgba(239,68,68,.15)}.icon-btn{width:26px;height:26px;border-radius:6px;display:inline-grid;place-items:center;color:var(--tx3);font-size:12px;flex-shrink:0}.icon-btn:hover{background:var(--bg4);color:var(--tx)}.tg-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--tx2);cursor:pointer}.tg-row input[type=range]{width:120px;flex-shrink:0}.tg{position:relative;width:36px;height:20px;flex-shrink:0}.tg input{position:absolute;opacity:0;width:0;height:0}.tg i{position:absolute;inset:0;border-radius:10px;background:var(--bg4);transition:background .2s var(--ease)}.tg i::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s var(--ease)}.tg input:checked+i{background:var(--blue)}.tg input:checked+i::after{transform:translateX(16px)}.tg input:focus-visible+i{outline:2px solid var(--blue);outline-offset:2px}.presets{display:flex;gap:6px}.presets button{flex:1;padding:5px 0;font-size:11px;font-weight:700;border-radius:6px;border:1px solid var(--border);background:var(--bg2);color:var(--tx2)}.presets button:hover{border-color:var(--blue);color:var(--blue)}.seg{display:flex;padding:3px;gap:3px;background:var(--bg4);border-radius:9px}.seg button{flex:1;padding:6px 8px;border-radius:7px;font-size:11.5px;font-weight:600;color:var(--tx2)}.seg button.on{background:var(--bg2);color:var(--navy);box-shadow:var(--shadow-sm)}body.dark-mode .seg button.on{color:#fff;background:var(--blue)}.bulk{display:flex;gap:4px;margin-bottom:6px}#sec2Body{display:flex;flex-direction:column;gap:10px}.bulk button{flex:1;padding:4px 0;font-size:10.5px;font-weight:600;border-radius:6px;color:var(--tx2);border:1px solid var(--border);background:var(--bg2)}.bulk button:hover{color:#fff;background:var(--blue);border-color:var(--blue)}.vlist{display:flex;flex-direction:column;gap:4px;max-height:340px;overflow-y:auto;padding-right:2px}.vrow{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 8px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--border);transition:border-color .15s,opacity .15s}.vrow:hover{border-color:rgba(14,159,132,.45)}.vrow.off{opacity:.45}.vchk{width:15px;height:15px;accent-color:var(--blue);flex-shrink:0;cursor:pointer}.vsw{position:relative;width:20px;height:20px;border-radius:50%;background:var(--c);flex-shrink:0;cursor:pointer;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7),0 0 0 1px var(--border2)}.vsw input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.vshape{display:grid;place-items:center;width:18px;flex-shrink:0}.vsel{width:92px;flex-shrink:0;padding:3px 4px;font-size:11px;border:1px solid var(--border);border-radius:6px;background:var(--bg2);color:var(--tx2)}.vname{flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vname.muted{color:var(--tx3);font-style:italic;font-weight:500}.vkm{font-size:10.5px;color:var(--tx3);white-space:nowrap}.vcnt{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--tx2);background:var(--bg3);padding:1px 6px;border-radius:5px;flex-shrink:0}.vacts{display:flex;flex-shrink:0}.vacts button{width:22px;height:22px;border-radius:5px;font-size:11px;color:var(--tx3)}.vacts button:hover{background:var(--bg4);color:var(--tx)}.zone-count{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--border);font-size:12px;color:var(--tx2)}.zone-count b{font-family:var(--mono);font-size:16px;color:var(--tx3)}.zone-count b.hot{color:var(--blue)}.upload{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:26px 16px;border:2px dashed var(--border2);border-radius:var(--rl);background:var(--bg2);cursor:pointer;transition:all .2s var(--ease)}.upload input{position:absolute;width:0;height:0;opacity:0}.upload strong{font-size:13px;color:var(--tx)}.upload span{font-size:11.5px;color:var(--tx3)}.upload:hover,.upload.drag{border-color:var(--blue);background:var(--blue-pale)}.upload-icon{width:46px;height:46px;margin-bottom:6px;border-radius:50%;display:grid;place-items:center;background:var(--blue-pale);color:var(--blue)}.upload-icon svg{width:20px;height:20px}.upload-sm{padding:12px}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;text-align:center;border-radius:var(--rl);background:var(--bg2);border:1.5px solid var(--border);transition:all .2s var(--ease)}.export-btn svg{width:22px;height:22px;color:var(--blue);margin-bottom:3px}.export-btn b{font-size:12.5px}.export-btn small{font-size:11px;line-height:1.4;color:var(--tx3)}.export-btn:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 4px 14px rgba(14,159,132,.15)}.toast{position:fixed;left:50%;top:calc(var(--hdr) + 74px);z-index:3000;max-width:min(92vw,520px);transform:translate(-50%,-12px);opacity:0;pointer-events:none;padding:10px 16px;border-radius:10px;font-size:12.5px;font-weight:600;line-height:1.4;background:var(--navy);color:#fff;box-shadow:var(--shadow-lg);border-left:4px solid var(--green);transition:all .25s var(--ease)}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{border-left-color:var(--red)}.modal{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;padding:16px}.modal-backdrop{position:absolute;inset:0;background:rgba(6,18,30,.55);backdrop-filter:blur(3px)}.modal-card{position:relative;width:min(680px,100%);max-height:88vh;display:flex;flex-direction:column;background:var(--bg2);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;animation:fade-in .2s var(--ease)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head h2{font-size:17px;color:var(--navy)}body.dark-mode .modal-head h2{color:#fff}.modal-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.help-step{display:flex;gap:12px}.help-step>span{width:32px;height:32px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--blue),var(--navy))}.help-step>span svg{width:16px;height:16px}.help-step h3{font-size:13.5px;margin-bottom:3px}.help-step p{font-size:12.5px;line-height:1.6;color:var(--tx2)}.keys{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px;border-radius:var(--r);background:var(--bg3);font-size:11.5px;color:var(--tx2)}kbd{display:inline-block;padding:1px 6px;border-radius:4px;border:1px solid var(--border2);background:var(--bg2);font-family:var(--mono);font-size:10.5px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.vsw-ring{background:var(--bg2);box-shadow:inset 0 0 0 5px var(--c),0 0 0 1px var(--border2)}.link-btn{align-self:center;font-size:12px;font-weight:600;color:var(--blue);text-decoration:underline;text-underline-offset:3px;padding:2px 4px}.link-btn:hover{color:var(--navy)}body.dark-mode .link-btn:hover{color:#fff}.fi-auto{width:auto}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip-in,.fg label.chip-in{position:relative;cursor:pointer;font-size:inherit;font-weight:inherit;letter-spacing:0;text-transform:none;color:inherit}.chip-in input{position:absolute;opacity:0;width:0;height:0}.chip-in span{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:600;color:var(--tx2);background:var(--bg2);border:1.5px solid var(--border);transition:all .15s var(--ease)}.chip-in span small{font-weight:500;color:var(--tx3);font-size:10.5px}.chip-in input:checked+span{color:#fff;background:var(--navy);border-color:var(--navy)}body.dark-mode .chip-in input:checked+span{background:var(--blue);border-color:var(--blue)}.chip-in input:checked+span small{color:rgba(255,255,255,.7)}.chip-in input:checked+span::before{content:"✓";font-size:11px}.chip-in input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:600;color:var(--tx2);background:var(--bg2);border:1px solid var(--border);white-space:nowrap}.chip b{font-family:var(--mono);font-size:11px;color:var(--tx3)}.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}.chip.on b{color:rgba(255,255,255,.75)}.prog{position:relative;height:26px;border-radius:7px;background:var(--bg4);overflow:hidden}.prog i{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--blue),#1fc4a2);transition:width .2s var(--ease)}.prog span{position:relative;display:block;text-align:center;line-height:26px;font-size:11.5px;font-weight:600;color:var(--tx)}.res{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:var(--r);background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.3)}.res-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.res-kpis div{display:flex;flex-direction:column}.res-kpis b{font-size:18px;font-family:var(--mono);color:var(--green)}.res-kpis .warn b{color:var(--amber)}.res-kpis span{font-size:10.5px;color:var(--tx2)}.q-line{display:flex;align-items:baseline;gap:7px;padding:3px 0;font-size:12px;color:var(--tx2)}.q-line i{font-style:normal;width:16px;text-align:center;font-weight:700}.q-line b{font-family:var(--mono);color:var(--tx)}.q-line.ok i{color:var(--green)}.q-line.fix i{color:var(--blue)}.q-line.warn i{color:var(--amber)}.q-line.bad i{color:var(--red)}.tip-card{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:12px;border-radius:var(--rl);font-size:12px;line-height:1.5;color:var(--tx2);background:var(--blue-pale);border:1px dashed rgba(14,159,132,.45)}.tip-card svg{width:20px;height:20px;flex-shrink:0;color:var(--blue)}.tip-card:hover{border-style:solid}details.fold{display:block}details.fold>summary{list-style:none;cursor:pointer;margin:0}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary::after{content:"▸";margin-left:auto;transition:transform .15s}details.fold[open]>summary::after{transform:rotate(90deg)}details.fold[open]>summary{margin-bottom:10px}details.fold[open]{display:flex;flex-direction:column;gap:10px}.zone-count small{display:block;font-size:10.5px;color:var(--tx3)}button:disabled{cursor:default;opacity:.55}.link-inline{display:inline;padding:0;font-size:inherit;font-weight:600;color:var(--blue);text-decoration:underline;text-underline-offset:2px}.link-inline:hover{color:var(--navy)}body.dark-mode .link-inline:hover{color:#fff}.seg-bar{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-radius:var(--rl);background:var(--blue-pale);border:1px solid rgba(14,159,132,.3)}.seg-bar .fg{flex:1}.seg-bar .fg label{color:var(--blue)}.seg-acts{display:flex;align-items:center;gap:2px;padding-bottom:3px}.seg-acts .btn{margin-right:4px}.seg-acts .icon-btn{width:30px;height:30px;font-size:13px}.tg-strong>span:first-child{font-weight:600;color:var(--tx)}.tg-strong small{display:block;font-weight:400;font-size:10.5px;line-height:1.4;color:var(--tx3)}.tg-strong{padding:8px 10px;border-radius:var(--r);background:var(--bg3)}.export-btn.export-main{flex-direction:row;align-items:center;gap:14px;padding:16px;text-align:left;border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.06)}.export-main svg{width:34px;height:34px;flex-shrink:0;margin:0;color:var(--green)}.export-main span{display:flex;flex-direction:column;gap:3px}.export-main b{font-size:14px}.export-main small{line-height:1.45}.export-btn.export-main:hover{border-color:var(--green);box-shadow:0 4px 14px rgba(16,185,129,.18)}.modal.dlg{z-index:2600}.dlg-card{width:min(460px,100%)}.dlg-txt{font-size:12.5px;line-height:1.6;color:var(--tx2)}.dlg-txt p+p{margin-top:8px}.dlg-txt b{color:var(--tx)}.privacy p{font-size:12.5px;line-height:1.65;color:var(--tx2)}.privacy p b{color:var(--tx)}.privacy h3{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);margin-top:2px}body.dark-mode .privacy h3{color:var(--blue-light)}.privacy ul{display:flex;flex-direction:column;gap:6px;padding-left:18px;font-size:12.5px;line-height:1.55;color:var(--tx2)}.privacy li::marker{color:var(--blue)}.privacy .modal-foot{margin-top:4px}.btn-danger{background:var(--red);color:#fff;box-shadow:0 2px 8px rgba(239,68,68,.25)}.btn-danger:hover{background:#dc2626}.dlg-in{font-size:13px;padding:10px 12px}.coord-hint{padding:7px 10px;border-radius:var(--r);background:var(--blue-pale);color:var(--tx2)}.geo-fill{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:var(--r);background:var(--bg2);border:1px dashed var(--border2)}.geo-fill>p{font-size:11.5px;line-height:1.55;color:var(--tx2)}.geo-fill>p b{color:var(--tx)}.fg label small{text-transform:none;letter-spacing:0;font-weight:500}.geo-res{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--tx2)}.geo-res b{font-family:var(--mono);color:var(--tx)}.geo-res .bad{color:var(--red)}.res-line{font-size:11.5px;color:var(--tx2);line-height:1.5}.res-line b{font-family:var(--mono);color:var(--tx)}.depot-panel{display:flex;flex-direction:column;gap:8px}#depotRows{display:flex;flex-direction:column;gap:4px}.depot-list{display:flex;flex-direction:column;gap:4px;max-height:230px;overflow-y:auto;padding-right:2px}.depot-row{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 6px 6px 10px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--border)}.depot-row>i{width:10px;height:10px;border-radius:3px;flex-shrink:0}.dr-txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.dr-txt b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dr-txt small{font-size:10.5px;color:var(--tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dr-txt small.muted{color:var(--tx3);font-style:italic}.depot-row .btn{padding:4px 8px}.depot-pick{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:var(--r);background:rgba(244,182,63,.12);border:1px solid rgba(244,182,63,.55)}.depot-pick p{font-size:11.5px;line-height:1.5;color:var(--tx2)}.depot-pick p b{color:var(--tx)}.depot-res{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto}.depot-res button{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;text-align:left;font-size:12px;background:var(--bg2);border:1px solid var(--border)}.depot-res button:hover{border-color:var(--blue);color:var(--blue)}.depot-res button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.depot-res button small{flex-shrink:0;font-size:10.5px;color:var(--tx3)}.depot-pick .link-btn{align-self:flex-start;font-size:11.5px}.buf-r{flex-wrap:wrap}.buf-r .presets{flex:1;min-width:180px}.presets button.on{border-color:var(--blue);color:#fff;background:var(--blue)}.exp-group{display:flex;flex-direction:column;gap:8px}.exp-group h3{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tx2);margin-top:2px}.export-btn.export-wide{grid-column:1/-1;flex-direction:row;align-items:center;gap:12px;padding:12px 14px;text-align:left}.export-wide svg{margin:0;flex-shrink:0}.export-wide span{display:flex;flex-direction:column;gap:2px}.export-wide small{line-height:1.45}.exp-group .link-btn{font-size:11.5px;text-align:center}.help-save{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:var(--r);background:var(--blue-pale);border:1px solid rgba(14,159,132,.3)}.help-save svg{width:22px;height:22px;flex-shrink:0;color:var(--blue)}.help-save p{font-size:12.5px;line-height:1.6;color:var(--tx2)}.tg-row>span:first-child small{display:block;font-size:10.5px;font-weight:400;line-height:1.4;color:var(--tx3)}