*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:#0a0a0f;color:#e0e0e0;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#00000026}::-webkit-scrollbar-thumb{background:#3a3a4a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#4a4a5a}#loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;z-index:10000;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#fff;font-size:1.2rem;font-weight:500}.spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid #fff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#layout-container{display:flex;height:100vh;width:100vw;gap:10px}.dimension-label{background:#000000b3;padding:2px 4px;border-radius:4px;font-family:monospace;font-weight:700;color:#0f0;-webkit-user-select:none;user-select:none;pointer-events:none}.sidebar{width:340px;background:linear-gradient(180deg,#12121a,#0d0d12);padding:10px;overflow-y:auto;border-right:1px solid #2a2a3a}.tenant-brand-card{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:8px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff0a}.tenant-brand-mark{width:100%;min-width:0;min-height:40px;height:auto;border-radius:0;background:none;border:none;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0}.tenant-brand-logo{display:block;width:auto;max-width:140px;height:auto;max-height:40px;object-fit:contain}.tenant-brand-fallback{min-width:112px;min-height:60px;padding:0 14px;border-radius:16px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;letter-spacing:.08em;color:#8cc7ff}.tenant-brand-text{min-width:0;width:100%;text-align:center}.tenant-brand-title{font-size:14px;font-weight:700;color:#f3f6fb;line-height:1.2}.tenant-brand-subtitle{font-size:10px;letter-spacing:.06em;color:#9fb0c7;margin-top:4px}.tenant-brand-subtitle-tool{text-transform:capitalize}#sidebar-right{border-right:none;border-left:1px solid #2a2a3a}#app{flex:1;width:100%;height:100%;position:relative;overflow:hidden}#main-view{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column}.sidebar h2{font-size:15px;margin-bottom:8px;color:#7cb3ff;border-bottom:1px solid #2a2a3a;padding-bottom:5px}.sidebar h3{font-size:11px;margin-top:10px;margin-bottom:5px;color:#888;text-transform:uppercase;letter-spacing:.5px}.mode-switch-card{margin-bottom:12px;padding:12px;border:1px solid #2b3650;border-radius:10px;background:linear-gradient(180deg,#121e36f2,#0b111ef2)}.mode-switch-header{margin-bottom:8px}.eyebrow{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8cc7ff}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.job-name-card{margin-bottom:12px;padding:12px;border:1px solid #2a2f44;border-radius:10px;background:linear-gradient(180deg,#111624f2,#0b0f19f2);box-shadow:inset 0 1px #ffffff08}.job-name-card label{display:block;margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8cc7ff}.job-name-input{width:100%;padding:10px 12px;background:#090c14f2;border:1px solid #32415f;color:#f3f6fb;border-radius:8px;font-size:13px;box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.job-name-input::placeholder{color:#6f7d95}.job-name-input:focus{outline:none;border-color:#5eaaff;box-shadow:0 0 0 3px #5eaaff24;background:#0d121efa}.mode-chip{border:1px solid #38507d;border-radius:999px;background:#101828e6;color:#b7c8e7;padding:8px 10px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.mode-chip:hover{background:#1f2f4ff2;color:#fff}.mode-chip.is-active{background:linear-gradient(135deg,#4facfe,#2d6cdf);border-color:#5eaaff;color:#fff;box-shadow:0 8px 20px #2d6cdf4d}.mode-panel.hidden{display:none}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:#4facfe}.info-box{margin:8px 0 12px;padding:10px;border:1px solid #2a2a3a;border-radius:8px;background:#ffffff08;font-size:12px;color:#c7d2e4;line-height:1.45}.luminaire-preview-frame{width:100%;height:100px;margin-top:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.luminaire-preview-image{width:100%;height:100%;display:block;object-fit:contain;object-position:center}.result-box{margin-bottom:12px;padding:10px;border:1px solid #2a2a3a;border-radius:8px;background:#ffffff05}.result-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px}.result-row:last-child{border-bottom:none}.result-label{color:#a8b3c6}.result-value{text-align:right;font-weight:600;color:#f3f6fb}.action-buttons{margin-top:12px}.action-buttons button{width:100%;padding:10px 12px;border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer}.control-group{display:flex;align-items:center;margin-bottom:8px;gap:8px}.control-group label{flex:1;font-size:12px;color:#aaa}.control-group input[type=number],.control-group select{width:70px;padding:4px 4px 4px 6px;background:#1a1a24;border:1px solid #333;color:#fff;border-radius:4px;font-size:12px;box-sizing:border-box}@media print{@page{margin:.5in;size:letter portrait}body *{visibility:hidden}#print-report,#print-report *{visibility:visible}#unit-select{width:140px}.info-box{font-size:.85rem}#print-report{position:absolute;left:0;top:0;width:100%;height:auto;min-height:100%;padding:0;background:#fff;overflow:visible}.report-content{width:100%;padding:0;margin:0;border:none;box-shadow:none}.report-header h1{font-size:24pt!important}.report-date{font-size:12pt!important}.data-card h3{font-size:14pt!important;border-bottom:2px solid #ccc;margin-bottom:8px}.data-row{font-size:12pt!important;padding:4px 0;border-bottom:1px dotted #eee}.heatmap-section h3{font-size:14pt!important}.report-footer{font-size:10pt!important}.report-logo{height:80px!important}.report-rows-container,.report-grid{gap:20px}.heatmap-section{page-break-inside:avoid;margin-top:20px}#report-heatmap-container{width:100%;text-align:center;border:1px solid #ccc;min-height:400px}#report-heatmap-img{max-width:100%;max-height:60vh;object-fit:contain}#btn-close-report,#btn-do-print{display:none!important}}
