@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&display=swap";.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--nmdot-black);padding:1rem}.login-container:before{content:"";position:fixed;top:0;left:0;right:0;height:4px;background:var(--nmdot-yellow)}.login-card{background:#fff;border-radius:8px;box-shadow:0 25px 50px #00000080;width:100%;max-width:420px;overflow:hidden}.login-header{background:var(--nmdot-grey-dark);padding:2rem;text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;gap:1rem}.login-header h1{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.025em}.login-header p{margin:0;opacity:.7;font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;font-weight:500}.login-form{padding:2rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--nmdot-black);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.form-group input{width:100%;padding:.875rem 1rem;border:2px solid var(--border);border-radius:4px;font-size:1rem;font-family:var(--font-family);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--nmdot-teal);box-shadow:0 0 0 3px #27969c26}.form-group input:disabled{background:var(--background);cursor:not-allowed}.login-error{background:#fef2f2;color:var(--nmdot-red);padding:.75rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.875rem;font-weight:500;border-left:4px solid var(--nmdot-red)}.login-button{width:100%;padding:1rem;background:var(--nmdot-yellow);color:var(--nmdot-black);border:none;border-radius:4px;font-size:.9375rem;font-weight:700;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-family)}.login-button:hover:not(:disabled){background:#e5c922;transform:translateY(-1px);box-shadow:0 4px 12px #fdde2666}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-footer{padding:1rem 2rem 1.5rem;text-align:center;border-top:1px solid var(--border);background:var(--background)}.login-footer p{margin:0;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}:root{--nmdot-purple: #5855A5;--nmdot-yellow: #FDDE26;--nmdot-blue: #30639F;--nmdot-teal: #27969C;--nmdot-teal-dark: #277988;--nmdot-orange: #F4834E;--nmdot-red: #A7443E;--nmdot-pink: #AD55A1;--nmdot-black: #1A1A1A;--nmdot-grey-dark: #333333;--nmdot-grey: #666666;--nmdot-grey-light: #878787;--primary: var(--nmdot-teal);--primary-dark: var(--nmdot-teal-dark);--secondary: var(--nmdot-blue);--accent: var(--nmdot-yellow);--accent-dark: var(--nmdot-orange);--background: #f5f7fa;--surface: #ffffff;--text: var(--nmdot-black);--text-muted: var(--nmdot-grey);--border: #e2e8f0;--success: var(--nmdot-teal);--warning: var(--nmdot-orange);--error: var(--nmdot-red);--font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", "Consolas", "Monaco", monospace}*{box-sizing:border-box}body{font-family:var(--font-family);background:var(--background);color:var(--text);margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container:before{content:"";position:fixed;top:0;left:0;right:0;height:4px;background:var(--nmdot-yellow);z-index:1000}.app-container{display:flex;width:100%;height:100vh;padding-top:4px}.map-container{flex:1;position:relative}.map-container canvas{cursor:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><rect x="14" y="2" width="4" height="10" fill="%23FDDE26" stroke="%231A1A1A" stroke-width="1"/><rect x="14" y="20" width="4" height="10" fill="%23FDDE26" stroke="%231A1A1A" stroke-width="1"/><rect x="2" y="14" width="10" height="4" fill="%23FDDE26" stroke="%231A1A1A" stroke-width="1"/><rect x="20" y="14" width="10" height="4" fill="%23FDDE26" stroke="%231A1A1A" stroke-width="1"/><circle cx="16" cy="16" r="3" fill="%2327969C" stroke="%231A1A1A" stroke-width="1"/></svg>') 16 16,crosshair}.sidebar{width:400px;background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column}.sidebar-header{position:relative;padding:0;background:var(--nmdot-black);color:#fff}.sidebar-header-content{padding:1.25rem;display:flex;align-items:center;gap:1rem}.sidebar-header h1{font-size:1.5rem;font-weight:700;margin:0;letter-spacing:-.025em}.sidebar-header p{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;opacity:.8;margin:.25rem 0 0}.hydro-logo-full{display:flex;align-items:center;gap:.875rem}.hydro-logo-text{display:flex;flex-direction:column}.hydro-logo-title{font-size:1.5rem;font-weight:700;letter-spacing:-.025em;line-height:1.1}.hydro-logo-subtitle{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;opacity:.7;margin-top:2px}.info-button{position:absolute;top:1rem;right:1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.info-button:hover{background:#fff3}.user-info{display:flex;align-items:center;justify-content:space-between;padding:.625rem 1.25rem;background:var(--nmdot-grey-dark);color:#fff;font-size:.8125rem}.user-details{display:flex;align-items:center;gap:.625rem}.user-avatar{width:28px;height:28px;background:var(--nmdot-teal);border-radius:4px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem}.user-name{font-weight:500}.user-points{display:flex;align-items:center;gap:.375rem;background:var(--nmdot-yellow);color:var(--nmdot-black);padding:.25rem .625rem;border-radius:4px;font-weight:700;font-size:.75rem}.points-icon{font-size:.875rem}.logout-button{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.25rem .625rem;border-radius:4px;font-size:.6875rem;font-weight:500;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.05em}.logout-button:hover{background:#ffffff1a;border-color:#ffffff80}.sidebar-content{flex:1;padding:1.25rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 3px #0000000d}.panel-title{font-size:.6875rem;font-weight:700;color:var(--nmdot-purple);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.1em}.data-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border)}.data-row:last-child{border-bottom:none}.data-label{color:var(--text-muted);font-size:.8125rem}.data-value{font-weight:600;font-size:.8125rem;color:var(--text)}.instruction-box{background:linear-gradient(135deg,var(--nmdot-teal) 0%,var(--nmdot-blue) 100%);border-radius:6px;padding:1.5rem;text-align:center;color:#fff}.instruction-box p{font-size:.9375rem;font-weight:500;margin:0;line-height:1.5}.coords-display{font-family:var(--font-mono);font-size:.8125rem;background:var(--background);padding:.625rem .875rem;border-radius:4px;margin-top:.75rem;color:var(--text);border:1px solid var(--border)}.peak-flow-table{width:100%;border-collapse:collapse;font-size:.8125rem}.peak-flow-table th,.peak-flow-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border)}.peak-flow-table th{font-weight:700;color:var(--nmdot-purple);font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:4px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none;font-family:var(--font-family)}.btn-primary{background:var(--nmdot-teal);color:#fff}.btn-primary:hover{background:var(--nmdot-teal-dark)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--background);border-color:var(--nmdot-grey-light)}.analyze-section{margin-bottom:1rem}.analyze-button{width:100%;padding:1rem;background:var(--nmdot-yellow);color:var(--nmdot-black);border:none;border-radius:4px;font-size:.9375rem;font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:.5rem;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-family)}.analyze-button:hover:not(:disabled){background:#e5c922;transform:translateY(-1px);box-shadow:0 4px 12px #fdde2666}.analyze-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.analyze-cost{font-size:.75rem;font-weight:600;opacity:.8}.insufficient-points{background:var(--nmdot-red);color:#fff}.insufficient-points:hover:not(:disabled){background:#8f3a35;box-shadow:0 4px 12px #a7443e66}.download-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.download-button{width:100%;padding:.875rem 1rem;background:var(--nmdot-teal);color:#fff;border:none;border-radius:4px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-family)}.download-button:hover:not(:disabled){background:var(--nmdot-teal-dark);transform:translateY(-1px);box-shadow:0 4px 12px #27969c66}.download-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.error-message{background:#fef2f2;color:var(--nmdot-red);padding:.75rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.8125rem;font-weight:500;border-left:4px solid var(--nmdot-red)}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:1.5rem}.spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--nmdot-teal);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-panel{text-align:center}.loading-title{color:var(--text);font-weight:600;font-size:1rem;margin-bottom:.75rem}.loading-timer{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.75rem;font-family:var(--font-mono)}.elapsed-time{font-size:1.5rem;font-weight:700;color:var(--nmdot-teal)}.time-separator{color:var(--text-muted);font-size:1.25rem}.estimated-time{font-size:1rem;color:var(--text-muted)}.progress-bar{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-bottom:.75rem}.progress-fill{height:100%;background:linear-gradient(90deg,var(--nmdot-teal) 0%,var(--nmdot-blue) 100%);border-radius:3px;transition:width 1s linear}.loading-note{color:var(--text-muted);font-size:.75rem;margin:0}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--nmdot-black);color:#fff}.app-loading:before{content:"";position:fixed;top:0;left:0;right:0;height:4px;background:var(--nmdot-yellow)}.app-loading .loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--nmdot-yellow);border-radius:50%;animation:spin .8s linear infinite;padding:0}.app-loading p{margin-top:1.5rem;font-size:.875rem;font-weight:500;opacity:.8;text-transform:uppercase;letter-spacing:.1em}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal-content{background:var(--surface);border-radius:8px;max-width:800px;max-height:90vh;overflow-y:auto;padding:2rem;position:relative;box-shadow:0 25px 50px -12px #0006}.modal-close{position:absolute;top:1rem;right:1rem;background:var(--background);border:none;font-size:1.25rem;cursor:pointer;color:var(--text-muted);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.modal-close:hover{background:var(--border);color:var(--text)}.modal-content h1{font-size:1.75rem;font-weight:700;color:var(--nmdot-black);margin-bottom:.25rem}.modal-content .subtitle{color:var(--text-muted);font-size:.875rem;margin-bottom:2rem;text-transform:uppercase;letter-spacing:.05em}.modal-content section{margin-bottom:2rem}.modal-content h2{font-size:1.125rem;font-weight:700;color:var(--nmdot-purple);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:3px solid var(--nmdot-yellow)}.modal-content h3{font-size:.9375rem;font-weight:700;color:var(--text);margin-top:1.25rem;margin-bottom:.5rem}.modal-content p{font-size:.875rem;line-height:1.7;color:var(--text);margin-bottom:.75rem}.modal-content ul{margin:.5rem 0 1rem 1.5rem;font-size:.875rem;line-height:1.7}.modal-content li{margin-bottom:.375rem}.modal-content a{color:var(--nmdot-teal);text-decoration:none;font-weight:500}.modal-content a:hover{text-decoration:underline}.reference-box{background:var(--background);border-left:4px solid var(--nmdot-teal);padding:.75rem 1rem;margin:.75rem 0 1rem;font-size:.8125rem;border-radius:0 4px 4px 0}.equation{background:var(--background);padding:1rem 1.25rem;margin:.75rem 0;border-radius:4px;font-family:Georgia,serif;font-size:1.1rem;text-align:center;color:var(--text);border:1px solid var(--border)}.limitations-list li{margin-bottom:.75rem}.references-list{list-style:none;margin-left:0!important;padding-left:0}.references-list li{padding-left:1.5rem;position:relative;margin-bottom:.75rem}.references-list li:before{content:"";position:absolute;left:0;top:.5rem;width:8px;height:8px;background:var(--nmdot-yellow);border-radius:2px}.modal-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center}.modal-footer p{font-size:.8125rem;color:var(--text-muted)}.modal-footer .version{font-size:.6875rem;margin-top:.5rem;text-transform:uppercase;letter-spacing:.1em}
