.tools-app{--panel:#f4f6fb;--raise:#e8ecf5;--border:#d0d8ee;--border2:#b8c4dc;--text:#1a2040;--muted:#6070a0;--dim:#8896c0;--amber:#f5a623;--green:#1a9650;--navy:#182b84;--sky:#29b0e0;--dark:#000;--tooltip-bg:#0a0e1eeb;--tooltip-text:#e0f0ff;color:var(--text);font-family:var(--font-puhuiti), system-ui, sans-serif}.tools-app *,.tools-app :before,.tools-app :after{box-sizing:border-box}.tools-app input[type=number]{appearance:textfield}.tools-app input[type=number]::-webkit-inner-spin-button{display:none}.tools-app input[type=range]{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;flex:1;height:4px}.tools-app input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--navy);border:2px solid #fff;border-radius:50%;width:18px;height:18px;transition:box-shadow .15s;box-shadow:0 2px 6px #1a30804d}.tools-app input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 0 6px #29b0e040}.tools-app input[type=range]::-moz-range-thumb{background:var(--navy);border:2px solid #fff;border-radius:50%;width:18px;height:18px}.tools-app .shell{max-width:1030px;margin-left:auto;margin-right:auto}.tools-app .tabs{background:var(--panel);border:1px solid var(--border);z-index:10;width:100%;top:var(--site-nav-offset,64px);justify-content:center;gap:6px;padding:4px;transition:top .3s;display:flex;position:sticky}.tools-app .tab{text-transform:uppercase;cursor:pointer;color:var(--muted);letter-spacing:.02em;background:0 0;border:0;border-radius:4px;padding:9px 22px;font-size:14px;font-weight:700;transition:all .15s}.tools-app .tab.active{background:var(--navy);color:#fff}.tools-app .tab:hover:not(.active){background:var(--raise)}.tools-app .tab-select{text-transform:uppercase;letter-spacing:.06em;width:100%;height:40px;color:var(--text);cursor:pointer;background:0 0;border:0;outline:none;padding:0 8px;font-size:14px;font-weight:700;display:none}@media (max-width:768px){.tools-app .tab{display:none}.tools-app .tab-select{display:block}}.tools-app .tab-panel{padding-top:48px;padding-bottom:96px;display:none}.tools-app .tab-panel.active{display:block}.tools-app .card{border:1px solid var(--border);background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 4px #1a30800f}.tools-app .card+.card{margin-top:16px}.tools-app .section-label{align-items:center;gap:10px;margin-bottom:16px;font-size:18px;font-weight:700;display:flex}.tools-app .section-label:after{content:"";background:var(--border);flex:1;height:1px}.tools-app .field{margin-bottom:14px}.tools-app .field:last-child{margin-bottom:0}.tools-app .field-row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}@media (max-width:768px){.tools-app .field-row{grid-template-columns:1fr}}.tools-app label{color:var(--muted);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.tools-app input[type=number],.tools-app select{border:1px solid var(--border);width:100%;height:42px;color:var(--text);background:#fff;border-radius:4px;outline:none;padding:0 12px;font-size:14px;transition:border-color .15s}.tools-app input[type=number]:focus,.tools-app select:focus{border-color:var(--sky);box-shadow:0 0 0 3px #29b0e026}.tools-app select{cursor:pointer}.tools-app .sliders-grid{grid-template-columns:1fr 1fr;gap:24px 12px;display:grid}@media (max-width:768px){.tools-app .sliders-grid{grid-template-columns:1fr}}.tools-app .slider-row{margin-bottom:16px}.tools-app .slider-row-label{align-items:baseline;margin-bottom:6px;display:flex}.tools-app .slider-row-label label{flex:1;margin:0}.tools-app .slider-controls{align-items:center;gap:10px;display:flex}.tools-app .slider-num{text-align:right;flex-shrink:0;width:70px!important;height:34px!important;padding:0 7px!important;font-size:12px!important}.tools-app .app{flex-direction:column;gap:16px;max-width:1030px;margin:0 auto;display:flex}.tools-app .ohm-app{grid-template-columns:1fr 1fr;align-items:start;gap:16px;max-width:1030px;margin:0 auto;display:grid}@media (max-width:760px){.tools-app .ohm-app{grid-template-columns:1fr}}.tools-app .results-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}@media (max-width:768px){.tools-app .results-grid{grid-template-columns:1fr}}.tools-app .result-tile{border:1px solid var(--border);background:#fff;border-radius:8px;padding:14px 16px;box-shadow:0 1px 3px #1a30800d}.tools-app .result-tile.hi{background:var(--navy)}.tools-app .result-label{letter-spacing:.1em;color:#fff;opacity:.7;margin-bottom:6px;font-size:14px}.tools-app .result-value{color:#fff;font-size:22px;font-weight:700;line-height:1.2}.tools-app .result-value.big{font-size:28px}.tools-app .result-sub{color:#fff;opacity:.5;margin-top:2px;font-size:14px}.tools-app .status-bar{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--sky);color:var(--muted);border-radius:4px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:13px;display:flex}.tools-app .status-dot{background:var(--dim);border-radius:50%;flex-shrink:0;width:8px;height:8px}.tools-app .status-dot.ok{background:var(--green);box-shadow:0 0 6px var(--green)}.tools-app .status-dot.warn{background:var(--amber);box-shadow:0 0 6px var(--amber)}.tools-app .visual-wrap{border:1px solid var(--border);background:var(--dark);touch-action:none;border-radius:8px;position:relative;overflow:hidden;box-shadow:inset 0 2px 12px #0006}.tools-app .visual-wrap svg{width:100%;height:100%;display:block}.tools-app .unit-toggle{background:var(--panel);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;padding:2px;display:inline-flex}.tools-app .unit-option{letter-spacing:.08em;color:var(--muted);border-radius:3px;padding:5px 14px;font-size:14px;font-weight:700;transition:all .15s}.tools-app .unit-option.on{background:var(--navy);color:#fff}.tools-app .fixture-select-wrap{margin-bottom:12px;position:relative}.tools-app .fixture-search{border:1px solid var(--border);width:100%;height:46px;color:var(--text);background:#fff;border-radius:4px;outline:none;padding:0 14px;font-size:14px;transition:border-color .15s}.tools-app .fixture-search:focus{border-color:var(--sky);box-shadow:0 0 0 3px #29b0e026}.tools-app .fixture-search::placeholder{color:var(--muted)}.tools-app .fixture-dropdown{border:1px solid var(--border2);z-index:50;background:#fff;border-radius:6px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 24px #1a30801f}.tools-app .fixture-dropdown-item{cursor:pointer;color:var(--text);padding:10px 14px;font-size:14px;transition:background-color .1s}.tools-app .fixture-dropdown-item:hover,.tools-app .fixture-dropdown-item.focused{background:var(--panel)}.tools-app .fixture-dropdown-item.selected{background:var(--raise);font-weight:600}.tools-app .fixture-dropdown-empty{color:var(--muted);padding:12px 14px;font-size:14px}.tools-app .fixture-specs{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}@media (max-width:768px){.tools-app .fixture-specs{grid-template-columns:repeat(2,1fr)!important}}.tools-app .spec-chip{background:var(--navy);border-radius:4px;padding:10px 12px}.tools-app .spec-chip.lens-active{cursor:pointer}.tools-app .spec-chip.lens-active:hover{filter:brightness(1.1)}.tools-app .spec-chip.lens-active .spec-val:after{content:" ▾";vertical-align:middle;font-size:10px}.tools-app .spec-chip .spec-label{letter-spacing:.1em;color:#fff;opacity:.7;margin-bottom:4px;font-size:12px;display:block}.tools-app .spec-chip .spec-val{color:#fff;font-size:18px;font-weight:600}.tools-app .lens-btn{letter-spacing:.06em;cursor:pointer;color:var(--text);text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:6px 10px;font-size:13px;font-weight:700;transition:all .15s;display:flex}.tools-app .lens-btn:hover{background:var(--panel);border-color:var(--border)}.tools-app .lens-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.tools-app .lens-btn .lens-lux-hint{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:400}.tools-app .lens-btn.active .lens-lux-hint{color:#fff9}.tools-app .ohm-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.tools-app .ohm-field label{align-items:center;gap:8px;margin-bottom:6px;display:flex}.tools-app .ohm-field label .utag{background:var(--raise);border:1px solid var(--border2);color:var(--dim);border-radius:3px;padding:0 4px;font-size:13px}.tools-app .ohm-field input{text-align:center;width:100%;height:52px;transition:all .15s;border-radius:4px!important;padding:0 10px!important;font-size:22px!important;font-weight:700!important}.tools-app .ohm-field input.src{border-color:var(--amber)!important;background:#f5a62312!important}.tools-app .ohm-field input.calc{border-color:var(--sky)!important;background:#29b0e012!important}.tools-app .ohm-hint{color:var(--dim);margin-bottom:14px;font-size:14px;line-height:1.6}.tools-app .ohm-reset{letter-spacing:.1em;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:4px;padding:9px 18px;font-size:13px;font-weight:700;transition:all .15s}.tools-app .ohm-reset:hover{border-color:var(--navy);color:#fff;background:var(--navy)}.tools-app .ohm-field-label{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.tools-app .ohm-field-label span{color:var(--muted);letter-spacing:.06em;font-size:14px;font-weight:500}.tools-app .unit-btn-group{gap:2px;display:flex}.tools-app .unit-btn{letter-spacing:.06em;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:2px;padding:2px 8px;font-size:13px;font-weight:700;line-height:1.4;transition:all .15s}.tools-app .unit-btn:hover{border-color:var(--navy)}.tools-app .unit-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.tools-app .fml-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tools-app .fml-cell{background:var(--panel);border:1px solid var(--border);padding:14px 16px}.tools-app .fml-title{letter-spacing:.14em;margin-bottom:10px;font-size:14px;font-weight:700}.tools-app .fml-eq{color:var(--text);font-size:14px;line-height:2}.tools-app .fml-eq span{color:var(--amber)}.tools-app .formula-note{color:var(--muted);border-top:1px solid var(--border);margin-top:16px;padding-top:12px;font-size:14px;line-height:1.7}.tools-app .drag-handle{cursor:grab}.tools-app .drag-handle:active{cursor:grabbing}.tools-app .res-layout{grid-template-columns:1fr 1fr;align-items:start;gap:16px;max-width:1030px;margin:0 auto;display:grid}@media (max-width:760px){.tools-app .res-layout{grid-template-columns:1fr}}.tools-app .res-svg-wrap{width:100%;overflow:visible}.tools-app .band-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}.tools-app .band-grid.five-band{grid-template-columns:repeat(5,1fr)}.tools-app .band-col{flex-direction:column;align-items:center;gap:6px;display:flex}.tools-app .band-col label{letter-spacing:.1em;color:var(--muted);text-align:center;margin:0;font-size:12px}.tools-app .band-swatch{border:2px solid #0000;border-radius:6px;flex-shrink:0;width:28px;height:28px}.tools-app .band-col select{text-align:center;height:36px;padding:0 6px;font-size:14px}.tools-app .res-result{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--sky);border-radius:4px;justify-content:space-between;align-items:center;margin-top:4px;padding:16px 20px;display:flex}.tools-app .res-result-val{color:var(--green);font-size:32px;font-weight:800}.tools-app .res-result-tol{color:var(--muted);margin-top:4px;font-size:13px}.tools-app .res-manual{align-items:flex-end;gap:10px;margin-top:16px;display:flex}.tools-app .res-manual input{flex:1;height:46px;font-size:18px}.tools-app .res-manual select{width:80px;height:46px}.tools-app .res-manual-btn{letter-spacing:.1em;border:1px solid var(--navy);cursor:pointer;white-space:nowrap;background:#1a308014;border-radius:4px;flex-shrink:0;height:46px;padding:0 18px;font-size:13px;font-weight:700;transition:all .15s}.tools-app .res-manual-btn:hover{background:var(--navy);color:#fff}.tools-app .band-count-toggle{gap:4px;margin-bottom:16px;display:flex}.tools-app .band-count-btn{letter-spacing:.1em;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:4px;padding:6px 14px;font-size:14px;font-weight:700;transition:all .15s}.tools-app .band-count-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.tools-app .color-ref-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tools-app .color-ref-row{background:var(--panel);border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.tools-app .color-ref-swatch{border-radius:4px;flex-shrink:0;width:22px;height:22px}.tools-app .color-ref-name{color:var(--text);flex:1;font-size:14px}.tools-app .color-ref-vals{color:var(--muted);text-align:right;font-size:14px}.tools-app .ies-layout{flex-direction:column;gap:16px;max-width:1030px;margin:0 auto;display:flex}.tools-app .ies-drop-zone{border:2px dashed var(--border2);text-align:center;cursor:pointer;background:var(--panel);border-radius:8px;padding:32px 20px;transition:all .15s;position:relative}.tools-app .ies-drop-zone.drag-over{border-color:var(--sky);background:#29b0e012}.tools-app .ies-drop-zone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.tools-app .ies-drop-icon{opacity:.5;margin-bottom:10px;font-size:36px}.tools-app .ies-drop-label{letter-spacing:.08em;color:var(--muted);font-size:14px;font-weight:600}.tools-app .ies-drop-sub{color:var(--dim);margin-top:6px;font-size:14px}.tools-app .ies-meta-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.tools-app .ies-meta-cell{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:10px 12px}.tools-app .ies-meta-label{letter-spacing:.12em;color:var(--muted);margin-bottom:2px;font-size:12px;display:block}.tools-app .ies-meta-val{font-size:13px;font-weight:600}.tools-app .ies-meta-cell.span2{grid-column:span 2/span 2}.tools-app .ies-polar-wrap{background:var(--dark);border:1px solid var(--border);border-radius:8px;position:relative;overflow:hidden}.tools-app .ies-polar-wrap canvas{width:100%;height:auto;display:block}.tools-app .ies-tooltip{white-space:nowrap;pointer-events:none;color:var(--tooltip-text);background:var(--tooltip-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #29b0e066;border-radius:4px;padding:6px 12px;font-size:14px;display:none;position:absolute}.tools-app .ies-plane-tabs{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.tools-app .ies-plane-btn{letter-spacing:.06em;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:2px;padding:4px 10px;font-size:14px;font-weight:700;transition:all .15s}.tools-app .ies-plane-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.tools-app .ies-stat-row{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;display:grid}.tools-app .ies-stat{background:var(--dark);text-align:center;border:1px solid #29b0e033;border-radius:4px;padding:10px 12px}.tools-app .ies-stat-val{color:var(--sky);font-size:20px;font-weight:700}.tools-app .ies-stat-label{letter-spacing:.1em;color:#fff6;margin-top:2px;font-size:12px}.tools-app .ies-kw-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:14px}.tools-app .ies-kw-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:4px 8px}.tools-app .ies-kw-table td:first-child{color:var(--muted);letter-spacing:.06em;width:38%;font-size:14px}.tools-app .ies-kw-table td:last-child{color:var(--text);word-break:break-word}.tools-app .ies-empty{text-align:center;color:var(--muted);padding:40px 20px;font-size:14px}@media (max-width:768px){.tools-app .viz-card{z-index:9;position:sticky;top:112px}}
