:root{--bg-primary:#0f1419;--bg-secondary:#1a1f2e;--bg-tertiary:#252b3d;--bg-hover:#2d3447;--text-primary:#c7d5e0;--text-secondary:#8f98a0;--text-muted:#6b7280;--accent-primary:#66c0f4;--accent-secondary:#1e90ff;--accent-hover:#4a9eff;--border-primary:#2d3447;--border-secondary:#252b3d;--success:#4caf50;--error:#f44336;--warning:#ff9800;--shadow:#00000080;--shadow-light:#0003}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f1419;background-color:var(--bg-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}body,code{color:#c7d5e0;color:var(--text-primary)}code{background-color:#252b3d;background-color:var(--bg-tertiary);border-radius:3px;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;padding:2px 4px}.App{background-color:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column;height:100vh;text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);box-shadow:0 2px 8px var(--shadow-light);color:var(--text-primary);flex-shrink:0;padding:12px 20px}.App-header h1{font-size:1.4rem;margin:0}.App-main{align-items:center;background:var(--bg-primary);display:flex;flex:1 1;flex-direction:column;overflow:hidden}.centered-block{flex-direction:column;gap:0}.centered-block,.row{display:flex;margin:0;width:100%}.row{align-items:stretch;flex-direction:row}.main-image-area,.row{justify-content:flex-start}.main-image-area{align-items:center;display:flex;flex:0 0 auto;margin:0;margin-bottom:0!important;max-width:100%;min-width:0;padding:0}.canvas-details,.main-image-area,.main-image-area+.main-image-area{margin-top:0!important}.details-panel{box-sizing:border-box;font-size:14px;max-width:220px;min-width:120px;padding:10px 0 10px 16px;width:180px}.details-panel.no-border{background:none;border:none}.details-panel h3{color:var(--text-primary);font-size:.95rem;margin-top:0}.detail-item{background:none;border-radius:0;font-size:.75rem;margin-bottom:5px;padding:0}.detail-item strong{color:var(--text-secondary)}.coordinates-display{background:none;border:none;border-radius:0;margin-top:10px;padding:0}.coordinates-display h4{color:var(--text-primary);font-size:.85rem;margin:0 0 5px}.coordinates-display p{color:var(--text-muted);font-family:monospace;font-size:.9rem;margin:2px 0}.grid-scroll-wrapper,.reference-scroll-wrapper{flex:0 0 auto;overflow:auto;width:100%}.canvas-container{background:none;border:none;height:864px;margin:0;max-height:864px;max-width:1536px;min-height:864px;min-width:1536px;padding:0;width:1536px}.reference-container{align-items:center;background:none;display:flex;flex-direction:column;justify-content:center;margin:0;min-height:0;padding:0}.reference-container h2{display:none}.reference-image{height:100%;object-fit:contain;transform:scale(1.5);transform-origin:center center;width:100%}.App-link{color:var(--accent-primary)}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.canvas-details{margin-top:120px}.row>div:first-child{justify-content:flex-start;max-width:110px;min-width:80px;padding:10px 5px 10px 0;width:100px}.row>div:first-child,.sidebar{box-sizing:border-box;display:flex;flex-direction:column;height:100%}.sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border-primary);max-width:300px;min-width:200px;overflow-y:auto;padding:16px;width:250px}.sidebar-section{margin-bottom:24px}.sidebar-section h3{color:var(--text-primary);font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.weapon-select{background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);font-size:13px;padding:8px 12px;width:100%}.weapon-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #66c0f440;outline:none}.placements-list{max-height:300px;overflow-y:auto}.placement-item{background-color:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:4px;cursor:pointer;margin-bottom:6px;padding:8px 12px;transition:all .2s ease}.placement-item:hover{background-color:var(--bg-hover);border-color:var(--accent-primary)}.placement-item.active{background-color:var(--accent-primary);border-color:var(--accent-primary);color:var(--bg-primary)}.placement-id{color:var(--text-muted);font-family:monospace;font-size:11px;margin-bottom:2px;word-break:break-all}.placement-item.active .placement-id{color:#1b2838cc}.placement-name{color:var(--text-primary);font-size:12px;font-weight:500}.placement-item.active .placement-name{color:var(--bg-primary)}.no-placements{color:var(--text-muted);font-size:12px;font-style:italic;padding:16px 8px;text-align:center}.new-placements{min-height:100px}.placeholder-text{color:var(--text-muted);font-size:12px;font-style:italic;padding:16px 8px;text-align:center}.right-sidebar{background-color:var(--bg-secondary);border-left:1px solid var(--border-primary);box-sizing:border-box;display:flex;flex-direction:column;height:100%;max-width:300px;min-width:200px;overflow-y:auto;padding:16px;width:250px}.actions-section{border-top:1px solid var(--border-primary);margin-top:auto;padding-top:16px}.action-buttons{display:flex;flex-direction:column;gap:8px}.save-button{background-color:var(--accent-primary);border:none;border-radius:4px;color:var(--bg-primary);cursor:pointer;font-size:16px;font-weight:600;padding:8px 24px;transition:background-color .2s ease}.save-button:hover{background-color:var(--accent-hover)}.delete-button{background-color:var(--error);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:8px 24px;transition:background-color .2s ease}.delete-button:hover:not(:disabled){background-color:#d32f2f}.delete-button:disabled{background-color:var(--text-muted);cursor:not-allowed}.image-loading{align-items:center;background-color:var(--bg-secondary);border:2px dashed var(--border-primary);border-radius:8px;display:flex;flex-direction:column;height:300px;justify-content:center;width:960px}.loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--bg-tertiary);border:4px solid var(--bg-tertiary);border-radius:50%;border-top-color:var(--accent-primary);height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.status-message{border-radius:4px;font-size:14px;font-weight:500;margin-top:8px;padding:8px 12px}.status-message.success{background-color:#4caf5033;border:1px solid var(--success);color:var(--success)}.status-message.error{background-color:#f4433633;border:1px solid var(--error);color:var(--error)}.status-message.info{background-color:#66c0f433;border:1px solid var(--accent-primary);color:var(--accent-primary)}.canvas-actions{align-items:center;background-color:var(--bg-secondary);border-top:1px solid var(--border-primary);display:flex;flex-direction:row;gap:20px;justify-content:center;padding:16px}.canvas-actions .action-buttons{display:flex;gap:12px}.canvas-actions .delete-button,.canvas-actions .save-button{border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:500;padding:10px 24px;transition:background-color .2s ease}.canvas-actions .save-button{background-color:var(--accent-primary);color:var(--bg-primary)}.canvas-actions .save-button:hover{background-color:var(--accent-hover)}.canvas-actions .delete-button{background-color:var(--error);color:#fff}.canvas-actions .delete-button:hover:not(:disabled){background-color:#d32f2f}.canvas-actions .delete-button:disabled{background-color:var(--text-muted);cursor:not-allowed}.canvas-actions .status-message{flex-shrink:0;margin:0;max-width:300px;text-align:left}.floating-actions{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#1a1f2ef2;border:1px solid var(--border-primary);border-radius:8px;bottom:20px;box-shadow:0 4px 12px var(--shadow);display:flex;flex-direction:row;gap:20px;justify-content:center;left:50%;opacity:0;padding:16px 24px;position:absolute;transform:translateX(-50%);transition:opacity .3s ease,visibility .3s ease;visibility:hidden;z-index:10}.main-image-area:hover .floating-actions{opacity:1;visibility:visible}.floating-actions .delete-button,.floating-actions .save-button{border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:500;padding:10px 24px;transition:background-color .2s ease}.floating-actions .save-button{background-color:var(--accent-primary);color:var(--bg-primary)}.floating-actions .save-button:hover{background-color:var(--accent-hover)}.floating-actions .delete-button{background-color:var(--error);color:#fff}.floating-actions .delete-button:hover:not(:disabled){background-color:#d32f2f}.floating-actions .delete-button:disabled{background-color:var(--text-muted);cursor:not-allowed}.floating-actions .status-message{flex-shrink:0;margin:0;max-width:300px;text-align:left}.main-content-area{background:#0000;display:flex;flex:1 1;flex-direction:column;min-height:100%;position:relative;width:100%}.bottom-action-bar{align-items:center;background-color:var(--bg-secondary);border-top:1px solid var(--border-primary);bottom:0;box-shadow:0 -2px 8px var(--shadow-light);display:flex;flex-direction:row;gap:20px;justify-content:center;left:0;padding:16px 24px;position:-webkit-sticky;position:sticky;right:0;z-index:2}.bottom-action-bar .delete-button,.bottom-action-bar .save-button{border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:500;padding:10px 24px;transition:background-color .2s ease}.bottom-action-bar .save-button{background-color:var(--accent-primary);color:var(--bg-primary)}.bottom-action-bar .save-button:hover{background-color:var(--accent-hover)}.bottom-action-bar .delete-button{background-color:var(--error);color:#fff}.bottom-action-bar .delete-button:hover:not(:disabled){background-color:#d32f2f}.bottom-action-bar .delete-button:disabled{background-color:var(--text-muted);cursor:not-allowed}.bottom-action-bar .status-message{flex-shrink:0;margin:0;max-width:300px;text-align:left}.auth-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.auth-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-width:400px;padding:32px;width:90%}.auth-modal h2{color:#333;font-size:24px;margin:0 0 16px}.auth-modal p{color:#666;font-size:14px;margin:0 0 24px}.form-group{margin-bottom:16px}.form-group label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:6px}.form-group input{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:10px 12px;width:100%}.form-group input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.auth-button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px;transition:background-color .2s ease;width:100%}.auth-button:hover{background-color:#0056b3}.auth-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;font-size:14px;margin-bottom:16px;padding:8px 12px}.reference-canvas-wrapper{height:auto;margin:20px 0 24px;width:100%}.reference-canvas-wrapper,.reference-image-centerer{align-items:center;display:flex;justify-content:center}.reference-image{background:var(--bg-tertiary);border-radius:8px;box-shadow:0 2px 8px var(--shadow-light);display:block;height:auto;max-height:80vh;max-width:90%;width:auto}.skip-button{background-color:var(--warning);border:none;border-radius:4px;color:var(--bg-primary);cursor:pointer;font-size:16px;font-weight:500;padding:10px 24px;transition:background-color .2s ease}.skip-button:disabled{background-color:#ff980080;color:var(--text-muted);cursor:not-allowed}.skip-button:hover:not(:disabled){background-color:#f57c00}
/*# sourceMappingURL=main.341b0fe0.css.map*/