.hmi-screen{position:relative;width:100%;height:100vh;-webkit-user-select:none;user-select:none;overflow:hidden}.hmi-image{width:100%;height:100vh;display:block;object-fit:fill}.hmi-hotspot{position:absolute;background:transparent;border:none;cursor:pointer;padding:0;margin:0}.hmi-hotspot.debug{background:#0064ff33;border:1px dashed rgba(0,100,255,.5)}.hmi-hotspot.noop{cursor:default}.hmi-hotspot:hover{background:#0064ff26}.hmi-hotspot.noop:hover{background:transparent}.hmi-hotspot.debug:hover{background:#0064ff59}.hmi-hotspot.debug.noop{background:#80808033;border-color:#80808080}.hmi-svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.hmi-svg-hotspot{fill:transparent;stroke:none;pointer-events:all;cursor:pointer}.hmi-svg-hotspot.noop{cursor:default}.hmi-svg-hotspot.debug{fill:#0064ff33;stroke:#0064ff80;stroke-width:.15;stroke-dasharray:.5}.hmi-svg-hotspot.debug.noop{fill:#80808033;stroke:#80808080}.hmi-svg-hotspot.debug:hover{fill:#0064ff59}.hmi-svg-hotspot:hover{fill:#0064ff26}.hmi-svg-hotspot.noop:hover{fill:transparent}.hmi-input{position:absolute;background:transparent;border:1px solid transparent;text-align:center;font-size:1.2vw;font-weight:700;font-family:inherit;padding:0;outline:none}.hmi-input:focus{background:transparent;border-color:transparent;box-shadow:none}.hmi-input.asset-number{font-weight:700;text-align:center;pointer-events:none;cursor:default}.asset-number-display{pointer-events:none;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;color:#2b3e7f;font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:1.8vh;line-height:1;white-space:nowrap;background:transparent}.hmi-hotspot.asset-arrow{display:flex;align-items:center;justify-content:center;background:transparent}.hmi-hotspot.asset-arrow:hover{background:#0064ff26}.arrow-svg{width:100%;height:100%;display:block}.arrow-shape{fill:#2b3e7f}.arrow-outline{fill:none;stroke:#2b3e7f;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}.hmi-hotspot.asset-arrow:hover .arrow-shape{fill:#4a5fa0}.hmi-hotspot.asset-arrow:hover .arrow-outline{stroke:#4a5fa0}.hmi-input.debug{background:#ffc8004d;border:1px dashed rgba(255,150,0,.7)}.settings-dropdown{position:absolute;top:7%;left:0;width:10%;height:35vh;overflow:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .4s ease;background:#fff;border-radius:0 0 4px 4px;box-shadow:0 4px 12px #00000026;z-index:10;pointer-events:none}.settings-dropdown.open{clip-path:inset(0 0 0 0);pointer-events:all}.settings-item{display:block;width:100%;padding:1vh .8vw;background:transparent;color:#2b3e7f;border:none;cursor:pointer;font-size:1.2vh;font-weight:700;text-align:left;white-space:nowrap}.settings-item:hover{background:#2b3e7f14}.settings-item.clear-data{border-left:none;color:#2b3e7f}.settings-item.clear-data:hover{background:#2b3e7f14}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0006;display:flex;align-items:center;justify-content:center;z-index:20}.modal-panel{background:#fff;border-radius:6px;box-shadow:0 8px 32px #00000040;min-width:30%;min-height:30%;display:flex;flex-direction:column}.modal-panel.modal-password{min-width:20%;min-height:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.2vh 1vw;border-bottom:1px solid #eee;font-weight:700;font-size:1.4vh;color:#2b3e7f}.modal-close{background:none;border:none;font-size:1.6vh;cursor:pointer;color:#666;padding:0 .3vw}.modal-close:hover{color:#333}.modal-body{padding:2vh 1.5vw;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;font-size:1.3vh;color:#555}.password-input{padding:.8vh .6vw;font-size:1.3vh;border:1px solid #ccc;border-radius:3px;width:80%;text-align:center;outline:none}.password-input:focus{border-color:#2b3e7f}.password-error{color:#c0392b;font-size:1.1vh;margin-top:.8vh}.password-submit{padding:.6vh 1.5vw;background:#e0e0e0;color:#333;border:none;border-radius:3px;cursor:pointer;font-size:1.2vh;font-weight:700}.password-buttons{display:flex;gap:.8vw;margin-top:1.2vh}.password-submit:hover{background:#ccc}.modal-panel.modal-confirm{min-width:20%;min-height:auto}.confirm-message{margin:0 0 2vh;font-size:1.3vh;color:#333;text-align:center}.confirm-buttons{display:flex;gap:1vw}.confirm-btn{padding:.6vh 1.5vw;border:none;border-radius:3px;cursor:pointer;font-size:1.2vh;font-weight:700}.confirm-yes{background:#e0e0e0;color:#333}.confirm-yes:hover{background:#ccc}.confirm-no{background:#e0e0e0;color:#333}.confirm-no:hover{background:#ccc}.modal-panel.modal-clear{min-width:25%;min-height:auto}.clear-body{align-items:center;justify-content:center}.clear-rows{display:flex;flex-direction:column;gap:1.2vh;width:auto}.clear-row{display:flex;align-items:center;justify-content:space-between;gap:.8vw}.clear-cancel-row{justify-content:flex-end}.clear-label{font-size:1.2vh;color:#333;text-align:right;flex:1;font-weight:700}.clear-btn{padding:.6vh 1.2vw;background:#e0e0e0;color:#333;border:none;border-radius:3px;cursor:pointer;font-size:1.1vh;font-weight:700;white-space:nowrap;min-width:6vw;width:6vw;text-align:center}.clear-btn:hover{background:#ccc}.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw;background:#121220}.login-card{background:#1e1e2e;border:1px solid #333;border-radius:12px;padding:40px 36px;width:360px;max-width:90vw}.login-title{margin:0 0 4px;font-size:24px;color:#e0e0e0;text-align:center}.login-subtitle{margin:0 0 24px;font-size:13px;color:#888;text-align:center}.login-field{margin-bottom:16px}.login-field label{display:block;font-size:12px;color:#aaa;margin-bottom:6px}.login-field input{width:100%;padding:10px 12px;background:#2a2a3e;border:1px solid #444;border-radius:6px;color:#e0e0e0;font-size:14px;outline:none;box-sizing:border-box}.login-field input:focus{border-color:#668}.login-field input::placeholder{color:#666}.login-btn{width:100%;padding:12px;background:#3a3a5e;border:1px solid #555;border-radius:6px;color:#e0e0e0;font-size:14px;cursor:pointer;margin-top:8px}.login-btn:hover:not(:disabled){background:#4a4a6e;border-color:#88f}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-error{background:#3a1a1a;border:1px solid #c44;color:#f88;padding:8px 12px;border-radius:6px;margin-bottom:16px;font-size:13px}.login-denied{text-align:center;color:#ccc}.login-denied h2{color:#f88;margin:0 0 12px}.login-denied p{margin:0 0 8px;font-size:13px;color:#999}.login-denied .login-btn{margin-top:16px}.landing-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1a2744;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative}.user-bar{position:absolute;top:0;right:0;padding:12px 20px;display:flex;align-items:center;gap:12px}.user-name{font-size:13px;opacity:.7}.user-logout{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:5px 14px;border-radius:4px;cursor:pointer;font-size:12px}.user-logout:hover{background:#ffffff1a;border-color:#ffffff80}.landing-header{text-align:center;margin-bottom:3rem}.landing-title{font-size:2rem;font-weight:700;margin:0 0 .5rem;letter-spacing:1px}.landing-subtitle{font-size:1rem;opacity:.7;margin:0}.landing-form{background:#fff;border-radius:12px;padding:2rem;width:400px;max-width:90vw;color:#333}.form-group{margin-bottom:1.5rem}.form-label{display:block;font-size:.85rem;font-weight:600;color:#1a2744;margin-bottom:.5rem}.form-select{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer}.form-select:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e833}.button-group{display:flex;flex-direction:column;gap:12px}.launch-btn{width:100%;padding:12px;background:#2e7d32;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;letter-spacing:.5px}.launch-btn:hover{background:#256b29}.launch-btn:disabled{background:#999;cursor:not-allowed}.dashboard-btn{width:100%;padding:12px;background:transparent;color:#1a2744;border:1px solid #ccc;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer}.dashboard-btn:hover{background:#f0f2f5;border-color:#1a2744}.dashboard{min-height:100vh;background:#f5f6f8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#2b3e7f;color:#fff;height:50px}.dash-nav{display:flex;gap:0;height:100%}.dash-tab{background:transparent;border:none;color:#fff9;padding:0 20px;font-size:14px;font-weight:600;cursor:pointer;border-bottom:3px solid transparent;height:100%;display:flex;align-items:center}.dash-tab.active{color:#fff;border-bottom-color:#fff}.dash-tab:hover{color:#fff}.dash-back{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:6px 16px;border-radius:4px;cursor:pointer;font-size:13px}.dash-back:hover{background:#ffffff1a}.dash-status{padding:40px;text-align:center;color:#888;font-size:14px}.view-title{margin:0;padding:20px 24px 12px;font-size:16px;color:#333}.scorecard-view{flex:1}.scorecard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;padding:0 24px 24px}.scorecard-card{background:#fff;border-radius:8px;padding:20px;text-align:center;cursor:pointer;box-shadow:0 1px 4px #00000014;transition:box-shadow .2s}.scorecard-card:hover{box-shadow:0 4px 12px #00000026}.card-site{font-size:18px;font-weight:700;color:#2b3e7f;margin-bottom:8px}.card-score{font-size:32px;font-weight:700;margin-bottom:8px}.card-details{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.card-asset{font-size:11px;font-weight:600}.site-view{flex:1;display:flex;flex-direction:column}.site-filters{display:flex;gap:16px;padding:16px 24px;background:#fff;border-bottom:1px solid #ddd;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:11px;font-weight:600;color:#666;text-transform:uppercase}.filter-group select{padding:6px 10px;border:1px solid #ccc;border-radius:4px;font-size:13px;min-width:120px;background:#fff}.equipment-scores{display:flex;gap:10px;padding:16px 24px;flex-wrap:wrap}.equip-badge{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#fff;border:2px solid;border-radius:20px;font-size:13px}.equip-num{font-weight:600;color:#333}.equip-score{font-weight:700}.dash-table-wrap{flex:1;overflow:auto;padding:0 24px 24px}.dash-table{border-collapse:collapse;font-size:12px;min-width:100%}.dash-table th,.dash-table td{padding:6px 12px;border:1px solid #ddd;white-space:nowrap;text-align:center}.dash-table th{background:#2b3e7f;color:#fff;font-weight:600;position:sticky;top:0;z-index:2}.dash-table td{background:#fff}.dash-table tbody tr:hover td{background:#f0f4ff}.dash-table td.oot{background:#fde8e8;color:#c0392b;font-weight:600}.sticky-col{position:sticky;left:0;z-index:1;text-align:left;font-weight:500;min-width:200px;background:#f9f9fb}.dash-table th.sticky-col{z-index:3;background:#1a2d66}.dash-footer{padding:12px 24px;font-size:12px;color:#888;border-top:1px solid #ddd;background:#fff}.picker-wrapper{background:#222;height:100vh;color:#fff;display:flex;flex-direction:column;overflow:hidden}.picker-toolbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#333;z-index:10;flex-wrap:wrap;flex-shrink:0}.shape-selector{display:flex;align-items:center;gap:4px}.shape-label{font-size:.8rem;opacity:.7;margin-right:4px}.shape-btn{padding:5px 10px;border:1px solid #555;background:#444;color:#aaa;border-radius:4px;cursor:pointer;font-size:.75rem}.shape-btn.active{background:#1a73e8;border-color:#1a73e8;color:#fff;font-weight:600}.shape-btn:hover:not(.active){background:#555}.zoom-controls{display:flex;align-items:center;gap:4px}.zoom-level{font-size:.75rem;min-width:40px;text-align:center}.poly-hint{font-size:.75rem;color:#afa}.picker-btn-inline{background:none;border:none;color:#f88;cursor:pointer;font-size:.75rem;text-decoration:underline;padding:0}.picker-count{font-size:.8rem;opacity:.7;margin-left:auto}.picker-btn{padding:5px 12px;border:1px solid #666;background:#444;color:#fff;border-radius:4px;cursor:pointer;font-size:.75rem}.picker-btn:hover{background:#555}.picker-btn:disabled{opacity:.4;cursor:not-allowed}.picker-btn.export{background:#2e7d32;border-color:#2e7d32}.picker-btn.export:hover{background:#256b29}.picker-body{display:flex;flex:1;overflow:hidden}.picker-scroll{flex:1;overflow:auto;cursor:default}.picker-scroll:active{cursor:grabbing}.picker-container{position:relative;cursor:crosshair;-webkit-user-select:none;user-select:none;min-width:100%;transform-origin:top left}.picker-image{width:100%;display:block}.picker-rect{position:absolute;pointer-events:auto;cursor:pointer}.picker-rect.button{border:2px solid #4488ff;background:#4488ff26}.picker-rect.input{border:2px solid #ff8844;background:#ff884426}.picker-rect.selected{border-width:3px}.picker-rect.button.selected{border-color:#6af;background:#4488ff40}.picker-rect.input.selected{border-color:#fa6;background:#ff884440}.picker-rect.drawing{border:2px dashed #ffaa00;background:#ffaa0026;pointer-events:none}.picker-rect-label{position:absolute;top:-1px;left:-1px;color:#fff;font-size:.6rem;padding:1px 5px;font-weight:700;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.picker-rect-label.button{background:#48f}.picker-rect-label.input{background:#f84}.resize-handle-abs{position:absolute;width:8px;height:8px;background:#fff;border:1px solid #333;z-index:15;transform:translate(-50%,-50%);pointer-events:auto}.resize-handle-abs.handle-nw{cursor:nw-resize}.resize-handle-abs.handle-n{cursor:n-resize}.resize-handle-abs.handle-ne{cursor:ne-resize}.resize-handle-abs.handle-e{cursor:e-resize}.resize-handle-abs.handle-se{cursor:se-resize}.resize-handle-abs.handle-s{cursor:s-resize}.resize-handle-abs.handle-sw{cursor:sw-resize}.resize-handle-abs.handle-w{cursor:w-resize}.poly-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.picker-sidebar{width:280px;background:#2a2a2a;border-left:1px solid #444;overflow-y:auto;flex-shrink:0}.sidebar-title{padding:10px 14px;margin:0;font-size:.85rem;border-bottom:1px solid #444}.sidebar-hint{padding:14px;font-size:.75rem;opacity:.5;text-align:center;line-height:1.5}.region-list{display:flex;flex-direction:column}.region-item{padding:8px 10px;border-bottom:1px solid #333;cursor:pointer}.region-item:hover{background:#333}.region-item.selected{background:#383838}.region-item-header{display:flex;align-items:center;gap:6px}.region-type-badge{font-size:.6rem;padding:1px 5px;border-radius:3px;font-weight:600;text-transform:uppercase}.region-type-badge.button{background:#48f}.region-type-badge.input{background:#f84}.region-shape-badge{font-size:.6rem;padding:1px 5px;border-radius:3px;background:#555;color:#ccc}.region-name-display{flex:1;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-delete{background:none;border:none;color:#888;cursor:pointer;font-size:.75rem;padding:2px 4px}.region-delete:hover{color:#f44}.region-edit{margin-top:8px;display:flex;flex-direction:column;gap:6px}.region-name-input{width:100%;padding:5px 8px;background:#444;border:1px solid #666;color:#fff;border-radius:4px;font-size:.75rem;box-sizing:border-box}.region-name-input:focus{outline:none;border-color:#8af}.region-type-toggle{display:flex;gap:4px}.type-btn{flex:1;padding:4px;border:1px solid #555;background:#444;color:#aaa;border-radius:4px;cursor:pointer;font-size:.7rem}.type-btn.active{color:#fff;font-weight:600}.type-btn.active:first-child{background:#48f;border-color:#48f}.type-btn.active:last-child{background:#f84;border-color:#f84}.admin-page{min-height:100vh;background:#f5f6f8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#2b3e7f;color:#fff}.admin-header h1{margin:0;font-size:18px}.admin-back{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:6px 16px;border-radius:4px;cursor:pointer;font-size:13px}.admin-back:hover{background:#ffffff1a}.admin-create{display:flex;gap:10px;padding:16px 24px;background:#fff;border-bottom:1px solid #ddd;align-items:center}.admin-input{padding:8px 12px;border:1px solid #ccc;border-radius:4px;font-size:13px;width:200px}.admin-select{padding:8px 10px;border:1px solid #ccc;border-radius:4px;font-size:13px}.admin-btn{padding:8px 18px;background:#2b3e7f;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600}.admin-btn:hover:not(:disabled){background:#3a5199}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-status{padding:40px;text-align:center;color:#888;font-size:14px}.admin-error{color:#c0392b}.admin-table-wrap{padding:16px 24px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{padding:10px 14px;border:1px solid #ddd;text-align:left}.admin-table th{background:#2b3e7f;color:#fff;font-weight:600}.admin-table td{background:#fff}.admin-table tbody tr:hover td{background:#f0f4ff}.status-badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.status-badge.confirmed{background:#e6f4ea;color:#1e7e34}.status-badge.pending{background:#fff3e0;color:#e65100}.delete-btn{padding:4px 12px;background:#e0e0e0;border:none;border-radius:3px;cursor:pointer;font-size:12px;color:#333}.delete-btn:hover{background:#ccc}.simple-hmi{display:flex;flex-direction:column;height:100vh;background:#f0f2f5;font-family:Arial,sans-serif;min-width:350px}.simple-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#2b3e7f;color:#fff}.simple-title{margin:0;font-size:16px}.simple-site{font-size:14px;opacity:.8}.simple-form{flex:1;overflow-y:auto;overflow-x:auto;padding:10px 20px}.simple-row{display:flex;align-items:center;padding:5px 0;border-bottom:1px solid #e0e0e0;gap:12px}.simple-label{flex:1;font-size:13px;color:#333;font-weight:500;white-space:nowrap}.simple-input,.simple-select{width:120px;min-width:120px;padding:4px 6px;font-size:13px;border:1px solid #ccc;border-radius:3px;text-align:center;outline:none;background:#fff}.simple-input:focus,.simple-select:focus{border-color:#2b3e7f}.simple-footer{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 20px;background:#e8eaed;border-top:1px solid #ccc}.simple-btn{padding:6px 16px;font-size:12px;font-weight:700;border:none;border-radius:3px;cursor:pointer;background:#e0e0e0;color:#333;white-space:nowrap}.simple-btn:hover{background:#ccc}.simple-submit{background:#2b3e7f;color:#fff}.simple-submit:hover{background:#3a5199}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#1a2744;color:#333}.app{display:flex;flex-direction:column;min-height:100vh}.content-area{flex:1}
