body{margin:0;overflow:hidden;font-family:Inter,sans-serif;background-color:#1a1a1a;color:#e0e0e0}::-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:fixed;top:20px;right:20px;left:auto;width:auto;height:auto;background:#000c;color:#fff;padding:10px 20px;border-radius:20px;display:none;align-items:center;justify-content:center;z-index:10000;pointer-events:none;box-shadow:0 4px 6px #0000004d;font-size:.9rem;flex-direction:row}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #fff;border-radius:50%;animation:spin 1s linear infinite;margin-right:10px;margin-bottom:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#dimension-hud{position:absolute;top:10px;right:50%;transform:translate(50%);background:#0009;padding:8px 16px;border-radius:8px;z-index:100;pointer-events:none;border:1px solid rgba(255,255,255,.2);color:#fff;text-align:center;font-family:monospace;font-size:1.1rem;box-shadow:0 2px 4px #00000080;display:flex;gap:15px}#dimension-hud span{font-weight:600;color:#4db8ff}#layout-container{display:flex;height:100vh;width:100vw;overflow:hidden}.sidebar{width:300px;background-color:#252525;border-right:1px solid #333;padding:10px;box-sizing:border-box;display:flex;flex-direction:column;gap:5px;overflow-y:auto;flex-shrink:0;z-index:10}.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:64px;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:100%;height:auto;max-height:64px;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}.job-name-card{margin-bottom:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff0a}.job-name-card label{display:block;margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#9fb0c7}.job-name-input{width:100%;padding:8px 10px;background-color:#333;border:1px solid #444;color:#fff;border-radius:8px;font-size:13px;font-family:inherit;box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.job-name-input::placeholder{color:#8d96a6}.job-name-input:focus{outline:none;border-color:#4db8ff;box-shadow:0 0 0 3px #4db8ff1f;background-color:#363636}#main-view{min-width:0;overflow:hidden}#app{width:100%;height:100%}#category-select,#fixture-select{flex:1;min-width:0}#sidebar-right{border-left:1px solid #333;border-right:none;border-right:0}h2{font-size:1.1rem;margin-bottom:5px;border-bottom:1px solid #444;padding-bottom:2px;color:#fff;margin-top:0}h3{font-size:.95rem;margin-top:10px;margin-bottom:4px;color:#ccc}.control-group,.result-group{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}label{font-size:.9rem;color:#aaa}input[type=number],select{background-color:#333;border:1px solid #444;color:#fff;padding:4px 8px;border-radius:4px;width:80px;box-sizing:border-box}input[type=number]{text-align:right;padding-right:4px}select{text-align:left;text-align-last:left;padding-left:8px;padding-right:22px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin-left:2px}.print-controls,#btn-do-print,#btn-close-report{display:none}.report-header{display:flex;justify-content:space-between;align-items:flex-start}.report-rows-container{display:flex;flex-direction:column}.report-row{display:flex;width:100%}.data-card{flex:1;border:1px solid #ddd;padding:8px 12px;border-radius:4px;background:#fff}.data-card h3{color:#06c;border-bottom:2px solid #eee;padding-bottom:2px;margin:0 0 5px}.data-row{display:flex;justify-content:space-between;border-bottom:1px solid #f0f0f0;padding:4px 0;color:#333}.data-row:last-child{border-bottom:none}.highlight{background:#f0f7ff;font-weight:700}.heatmap-section{margin-top:10px}.heatmap-layout-split{display:flex}#report-heatmap-container{width:100%;text-align:center;border:1px solid #ccc;padding:5px}#report-heatmap-img{display:block;width:100%;max-width:100%;max-height:4.5in;height:auto;object-fit:contain;margin:0 auto}#report-snapshots-column{display:none}.report-footer{color:#666;text-align:center}@media print{@page{margin:.3in;size:letter portrait}#layout-container,#layout-container *{display:none!important}#report-heatmap-container{page-break-inside:avoid;text-align:center}#report-heatmap-img{max-width:100%!important;max-height:4.5in!important;object-fit:contain!important;display:block;margin:0 auto}body{background:#fff;overflow:visible}#print-report{display:block!important;position:relative;width:100%;height:auto;overflow:visible;background:#fff;padding:0;margin:0}.report-content{width:100%;padding:0;margin:0;border:none;box-shadow:none}.report-header h1{font-size:18pt!important}.header-meta{font-size:11pt!important}.data-card h3{font-size:12pt!important;border-bottom:2px solid #ccc;margin:0 0 4px!important;padding-bottom:2px!important;color:#06c!important}.report-header{display:flex!important;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #ccc;padding-bottom:8px!important;margin-bottom:10px!important}.report-rows-container{display:flex!important;flex-direction:column!important;gap:8px!important;margin-bottom:8px!important}.report-row{display:flex!important;gap:12px!important;width:100%!important}.data-card{flex:1!important;border:1px solid #ddd!important;padding:6px 10px!important;border-radius:4px!important;background:#fff!important}.data-row{display:flex!important;justify-content:space-between;font-size:10pt!important;padding:2px 0;border-bottom:1px solid #f0f0f0}.highlight{background:#f0f7ff;font-weight:700}.heatmap-section{page-break-inside:avoid;break-inside:avoid;margin-top:8px}.heatmap-section h3{font-size:13pt!important;margin-bottom:6px}#report-heatmap-img{display:block;width:100%;max-width:100%;max-height:4.5in;height:auto;object-fit:contain;margin:0 auto}#report-heatmap-container{width:100%;text-align:center;border:1px solid #ccc;padding:4px;box-sizing:border-box}.heatmap-layout-split{display:flex!important;gap:0;justify-content:center}#report-snapshots-column{display:none!important}.header-right img{max-width:120px!important;max-height:56px!important;width:auto!important;height:auto!important;object-fit:contain}.report-footer{font-size:10pt!important}.report-logo{height:80px!important}.print-page-break{page-break-before:always;break-before:page;margin-top:20px;display:block}.snapshot-page{width:100%;height:9.4in;display:flex;flex-direction:column;align-items:center;justify-content:center;page-break-inside:avoid}.snapshot-page img{max-width:100%;max-height:8.5in;object-fit:contain;border:1px solid #ddd}.snapshot-page h4{font-size:16pt;margin-bottom:10px;text-align:center;color:#333}#btn-close-report,#btn-do-print,.print-controls,#dimension-hud{display:none!important}}#unit-select{width:140px}.info-box{font-size:.85rem}.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}.density-btn,#btn-angled-view,#btn-birds-eye{background:#23293b!important;border:1px solid rgba(255,255,255,.11)!important;color:#8ea3ba!important;border-radius:5px!important;transition:background .15s,border-color .15s}.density-btn.active,.density-btn[aria-pressed=true]{background:#2563eb!important;border-color:#3b82f6!important;color:#fff!important}
