:root{--color-text-primary: #2d3748;--color-text-secondary: #4a5568;--color-text-muted: #718096;--color-text-dark: #1a202c;--color-text-placeholder: #a0aec0;--color-text-inverse: #ffffff;--color-text-on-dark: rgba(255, 255, 255, .95);--color-bg-page: #f4f4f4;--color-bg-white: #ffffff;--color-bg-card: rgba(255, 255, 255, .95);--color-bg-subtle: #f7fafc;--color-bg-subtle-2: #f5f5f5;--color-bg-drawer: #fafafa;--color-bg-overlay: rgba(26, 32, 44, .5);--color-bg-overlay-strong: rgba(0, 0, 0, .75);--color-bg-overlay-light: rgba(0, 0, 0, .7);--color-bg-hover: rgba(0, 0, 0, .04);--color-bg-hover-strong: rgba(0, 0, 0, .06);--color-bg-black: #000000;--color-border: #e2e8f0;--color-border-light: rgba(0, 0, 0, .06);--color-border-light-2: rgba(0, 0, 0, .1);--color-border-input: #cbd5e0;--color-primary: #333f47;--color-primary-hover: #2a3239;--color-success-bg: #c6f6d5;--color-success-text: #22543d;--color-success-border: #9ae6b4;--color-error-bg: #fed7d7;--color-error-text: #742a2a;--color-error-border: #fc8181;--color-red: #e53e3e;--color-accent: #667eea;--color-accent-dark: #764ba2;--color-accent-yellow: #ccce48;--color-accent-yellow-muted: rgba(204, 206, 72, .3);--color-accent-pink: #f093fb;--color-accent-pink-dark: #f5576c;--color-gray-mid: #858585;--color-skeleton: #d3d3d3;--color-black: #000000;--color-status-green: #4ade80;--color-status-blue: #3b82f6;--color-status-red: #ef4444;--color-status-dark: #1f2937;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-card: 0 4px 6px rgba(0, 0, 0, .1);--shadow-card-hover: 0 8px 16px rgba(0, 0, 0, .15);--shadow-dropdown: 0 4px 12px rgba(0, 0, 0, .15);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .3);--shadow-drawer: -8px 0 40px rgba(0, 0, 0, .12), -2px 0 8px rgba(0, 0, 0, .06);--shadow-primary: 0 4px 12px rgba(51, 63, 71, .3);--shadow-accent: 0 4px 12px rgba(102, 126, 234, .4);--shadow-accent-pink: 0 4px 12px rgba(245, 87, 108, .4);--shadow-primary-glow: 0 6px 20px rgba(51, 63, 71, .4);--shadow-accent-yellow: 0 4px 8px rgba(204, 206, 72, .2)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-dark) 100%);padding:20px}.login-card{background:var(--color-bg-white);border-radius:16px;box-shadow:var(--shadow-modal);padding:40px;width:100%;max-width:420px;animation:slideUp .3s ease-out}.login-title{font-size:28px;font-weight:700;color:var(--color-text-dark);margin:0 0 8px;text-align:center}.login-subtitle{font-size:16px;color:var(--color-text-muted);margin:0 0 32px;text-align:center}.auth-method-toggle{display:flex;gap:8px;margin-bottom:16px;background:var(--color-bg-subtle);padding:4px;border-radius:8px}.login-type-toggle{display:flex;gap:8px;margin-bottom:24px;background:var(--color-bg-subtle);padding:4px;border-radius:8px}.toggle-btn{flex:1;padding:10px 16px;border:none;background:transparent;border-radius:6px;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.toggle-btn:hover{background:var(--color-bg-hover-strong)}.toggle-btn.active{background:var(--color-bg-white);color:var(--color-accent);box-shadow:var(--shadow-sm)}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:var(--color-text-primary)}.form-group input{padding:12px 16px;border:2px solid var(--color-border);border-radius:8px;font-size:16px;transition:all .2s;outline:none}.form-group input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-yellow-muted)}.form-group input:disabled{background:var(--color-bg-subtle);cursor:not-allowed}.error-message{padding:12px 16px;background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:8px;color:var(--color-error-text);font-size:14px;text-align:center}.submit-btn{padding:14px 24px;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-dark) 100%);color:var(--color-text-inverse);border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-accent)}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.dashboard{min-height:100vh;background:var(--color-bg-subtle)}.dashboard-header{background:var(--color-bg-white);padding:20px 32px;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{margin:0;font-size:24px;color:var(--color-text-dark)}.dashboard-content{padding:32px;max-width:1200px;margin:0 auto}.welcome-card{background:var(--color-bg-white);border-radius:12px;padding:48px;box-shadow:var(--shadow-card);text-align:center;max-width:600px;margin:0 auto}.welcome-icon{font-size:64px;margin-bottom:24px;animation:wave 2s ease-in-out infinite}@keyframes wave{0%,to{transform:rotate(0)}25%{transform:rotate(20deg)}75%{transform:rotate(-20deg)}}.welcome-card h2{margin:0 0 16px;font-size:32px;color:var(--color-text-dark);font-weight:600}.welcome-message{margin:16px 0;font-size:18px;color:var(--color-text-primary);font-weight:500}.welcome-description{margin:24px 0;font-size:16px;color:var(--color-text-secondary);line-height:1.6}.session-details{margin-top:32px;padding:20px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.session-label{margin:0 0 12px;font-size:14px;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.session-token{display:block;padding:12px;background:var(--color-bg-white);border-radius:6px;font-size:13px;color:var(--color-text-primary);font-family:Monaco,Menlo,Ubuntu Mono,monospace;word-break:break-all;border:1px solid var(--color-border);margin:0}.dashboard-nav{margin:32px 0;padding:24px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.nav-title{margin:0 0 16px;font-size:18px;font-weight:600;color:var(--color-text-primary);text-align:left}.nav-buttons{display:flex;flex-direction:column;gap:12px}.nav-button{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--color-bg-white);border:2px solid var(--color-border);border-radius:8px;font-size:16px;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s;text-align:left;width:100%}.nav-button:hover{border-color:var(--color-accent-yellow);background:var(--color-bg-white);transform:translateY(-2px);box-shadow:var(--shadow-accent-yellow)}.nav-icon{font-size:24px;line-height:1}.nav-text{flex:1}.region-selector{margin:32px 0;padding:24px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.region-label{display:block;margin-bottom:12px;font-size:14px;font-weight:600;color:var(--color-text-primary);text-align:left}.region-select{width:100%;padding:12px 40px 12px 16px;border:2px solid var(--color-border);border-radius:8px;font-size:16px;background:var(--color-bg-white);color:var(--color-text-primary);cursor:pointer;transition:all .2s;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a5568' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;box-sizing:border-box}.region-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-yellow-muted)}.region-select:disabled{background-color:var(--color-bg-subtle);cursor:not-allowed;opacity:.6}.region-loading-text{margin-top:12px;font-size:14px;color:var(--color-text-muted);text-align:center}.region-error-text{margin-top:12px;padding:12px 16px;background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:6px;color:var(--color-error-text);font-size:14px;text-align:center}.selected-region-info{margin-top:16px;padding:12px 16px;background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:6px;text-align:center}.selected-region-info p{margin:0;font-size:14px;color:var(--color-success-text)}.selected-region-info strong{font-weight:600}.regions-page{min-height:100vh;background:var(--color-bg-subtle)}.regions-header{background:var(--color-bg-white);padding:20px 32px;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center}.regions-header h1{margin:0;font-size:24px;color:var(--color-text-dark)}.back-btn{padding:8px 16px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.back-btn:hover{background:var(--color-accent-dark);transform:translateY(-1px)}.regions-content{padding:32px;max-width:1200px;margin:0 auto}.loading-container,.error-container{text-align:center;padding:48px;background:var(--color-bg-white);border-radius:12px;box-shadow:var(--shadow-card)}.error-text{font-size:16px;color:var(--color-error-text);padding:12px 16px;background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:8px;display:inline-block}.regions-header-info{margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.regions-header-info h2{margin:0;font-size:28px;color:var(--color-text-dark);font-weight:600}.regions-count{margin:0;font-size:16px;color:var(--color-text-muted);font-weight:500}.empty-state{text-align:center;padding:48px;background:var(--color-bg-white);border-radius:12px;box-shadow:var(--shadow-card)}.regions-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.region-card{background:var(--color-bg-white);border-radius:12px;padding:24px;box-shadow:var(--shadow-card);transition:all .2s;border:2px solid transparent;cursor:pointer}.region-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-accent-yellow);border-color:var(--color-accent-yellow)}.region-id{font-size:12px;color:var(--color-text-muted);font-weight:500;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.region-name{font-size:20px;color:var(--color-text-dark);font-weight:600;margin:0}.header-actions-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.add-region-btn{padding:10px 20px;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.add-region-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.add-region-form-container{margin-bottom:32px;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.add-region-form{background:var(--color-bg-white);border-radius:12px;padding:32px;box-shadow:var(--shadow-card);border:2px solid var(--color-border)}.form-title{margin:0 0 24px;font-size:24px;color:var(--color-text-dark);font-weight:600}.required{color:var(--color-red)}.form-input{width:100%;padding:12px 16px;border:2px solid var(--color-border);border-radius:8px;font-size:16px;transition:all .2s;outline:none;box-sizing:border-box}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-accent-yellow-muted)}.form-input:disabled{background:var(--color-bg-subtle);cursor:not-allowed;opacity:.6}.form-success{padding:12px 16px;background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:8px;color:var(--color-success-text);font-size:14px;margin-bottom:20px;font-weight:500}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.form-btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-btn{background:var(--color-border);color:var(--color-text-primary)}.cancel-btn:hover:not(:disabled){background:var(--color-border-input);transform:translateY(-1px)}.submit-btn{background:var(--color-primary);color:var(--color-text-inverse)}.submit-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-bg-white);border-radius:12px;box-shadow:var(--shadow-modal);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 0;border-bottom:1px solid var(--color-border);margin-bottom:24px}.modal-title{margin:0;font-size:24px;color:var(--color-text-dark);font-weight:600}.modal-close-btn{background:none;border:none;font-size:32px;color:var(--color-text-muted);cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.modal-close-btn:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.modal-form{padding:0 24px 24px}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;flex-wrap:nowrap}.modal-actions-right{display:flex;align-items:center;gap:12px}.modal-btn{padding:12px 24px;margin:0;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;height:44px;min-height:44px;max-height:44px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1;white-space:nowrap;flex-shrink:0;vertical-align:top;font-family:inherit}.modal-btn.delete-btn{background:var(--color-red);color:var(--color-text-inverse)}.modal-btn.delete-btn:hover:not(:disabled){background:var(--color-status-red);transform:translateY(-1px);box-shadow:var(--shadow-accent-pink)}.modal-btn.cancel-btn{background:var(--color-border);color:var(--color-text-primary)}.modal-btn.cancel-btn:hover:not(:disabled){background:var(--color-border-input);transform:translateY(-1px)}.modal-btn.submit-btn{background:var(--color-primary);color:var(--color-text-inverse)}.modal-btn.submit-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.modal-btn:disabled{opacity:.6;cursor:not-allowed}.resorts-page{min-height:100vh;background:var(--color-bg-subtle)}.resorts-header{background:var(--color-bg-white);padding:20px 32px;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center}.resorts-header h1{margin:0;font-size:24px;color:var(--color-text-dark)}.export-btn{padding:8px 16px;background:var(--color-status-green);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.export-btn:hover{background:var(--color-success-text);transform:translateY(-1px);box-shadow:var(--shadow-card)}.export-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.export-photos-btn{padding:8px 16px;background:var(--color-status-blue);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.export-photos-btn:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:var(--shadow-card)}.export-photos-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.export-webcams-btn{padding:8px 16px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.export-webcams-btn:hover{background:var(--color-accent-dark);transform:translateY(-1px);box-shadow:var(--shadow-accent)}.export-webcams-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.create-btn{padding:8px 16px;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.create-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.back-btn{padding:8px 16px;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.logout-btn{padding:8px 16px;background:var(--color-red);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.logout-btn:hover{background:var(--color-status-red);transform:translateY(-1px)}.resorts-content{padding:32px;max-width:1200px;margin:0 auto}.resorts-container{display:flex;flex-direction:column;gap:32px}.region-selector-section{background:var(--color-bg-white);border-radius:12px;padding:32px;box-shadow:var(--shadow-card)}.section-title{margin:0 0 24px;font-size:28px;color:var(--color-text-dark);font-weight:600}.region-selector{display:flex;flex-direction:column;gap:16px}.region-label{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-bottom:8px}.region-select{width:100%;max-width:500px;padding:12px 16px;border:2px solid var(--color-border);border-radius:8px;font-size:16px;background:var(--color-bg-white);color:var(--color-text-dark);cursor:pointer;transition:all .2s;outline:none}.region-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-accent-yellow-muted)}.region-select:disabled{background:var(--color-bg-subtle);cursor:not-allowed;opacity:.6}.loading-text{font-size:14px;color:var(--color-text-muted);margin:0}.error-text{font-size:14px;color:var(--color-error-text);padding:12px 16px;background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:8px;margin:0}.resorts-section{background:var(--color-bg-white);border-radius:12px;padding:32px;box-shadow:var(--shadow-card)}.resorts-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.resorts-section-header .section-title{margin:0}.loading-container,.error-container,.empty-state{text-align:center;padding:48px}.empty-state p{font-size:18px;color:var(--color-text-muted);margin:0}.resorts-count{margin:0 0 24px;font-size:16px;color:var(--color-text-muted);font-weight:500}.resorts-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.resort-card{background:var(--color-bg-subtle);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm);transition:all .2s;border:2px solid transparent;cursor:pointer}.resort-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:var(--color-accent-yellow);background:var(--color-bg-white)}.resort-id{font-size:12px;color:var(--color-text-muted);font-weight:500;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.resort-name{font-size:20px;color:var(--color-text-dark);font-weight:600;margin:0 0 8px}.resort-region{font-size:14px;color:var(--color-text-muted);margin:0 0 8px}.resort-location{font-size:12px;color:var(--color-text-placeholder);margin:0 0 12px}.resort-photo{margin-top:12px;border-radius:8px;overflow:hidden;width:100%;aspect-ratio:16 / 9;position:relative}.resort-photo-img{width:100%;height:100%;display:block;object-fit:cover}@media (max-width: 768px){.resorts-content{padding:16px}.region-selector-section,.resorts-section{padding:20px}.resorts-section-header{flex-direction:column;align-items:flex-start;gap:12px}.resorts-section-header .create-btn{width:100%}.resorts-header{flex-direction:column;align-items:flex-start;gap:12px}.header-actions{width:100%;flex-wrap:wrap;gap:12px}.resorts-list{grid-template-columns:1fr}}.resort-details-page{min-height:100vh;background:var(--color-bg-subtle)}.resort-details-header{background:#fff;padding:20px 32px;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center}.resort-details-header h1{margin:0;font-size:24px;color:var(--color-text-dark)}.header-actions{display:flex;align-items:center;gap:16px}.back-btn{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.back-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.session-info{font-size:14px;color:var(--color-text-muted);font-family:monospace}.logout-btn{padding:8px 16px;background:var(--color-red);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.logout-btn:hover{background:var(--color-error-text);transform:translateY(-1px)}.resort-details-content{padding:32px;max-width:1200px;margin:0 auto}.tabs-container{background:#fff;border-radius:12px;box-shadow:var(--shadow-card);overflow:hidden;margin-top:24px}.tabs-header{display:flex;border-bottom:2px solid var(--color-border);background:var(--color-bg-subtle)}.tab-button{flex:1;padding:16px 24px;background:transparent;border:none;border-bottom:3px solid transparent;font-size:16px;font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:all .2s;position:relative}.tab-button:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:#fff}.tabs-content{padding:0}.tab-panel{padding:24px;display:flex;flex-direction:column;gap:24px}.info-tab-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.edit-resort-btn{padding:12px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.edit-resort-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.edit-resort-btn:disabled{opacity:.6;cursor:not-allowed}.edit-resort-btn.cancel-btn{background:var(--color-border);color:var(--color-text-primary)}.edit-resort-btn.cancel-btn:hover:not(:disabled){background:var(--color-border-input)}.edit-resort-form{display:flex;flex-direction:column;gap:24px}.edit-resort-form .form-group{margin-bottom:0}.edit-resort-form .form-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.edit-resort-form .form-input,.edit-resort-form .form-textarea{width:100%;padding:12px;border:2px solid var(--color-border);border-radius:8px;font-size:14px;background:#fff;transition:all .2s;box-sizing:border-box}.edit-resort-form .form-input:focus,.edit-resort-form .form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-accent-yellow-muted)}.edit-resort-form .form-textarea{resize:vertical;min-height:100px;font-family:inherit}.edit-resort-form .form-hint{margin:8px 0 0;font-size:12px;color:var(--color-text-muted)}.edit-resort-form .form-error{padding:12px 16px;background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:8px;color:var(--color-error-text);font-size:14px;margin-bottom:20px}.edit-resort-form .form-error p{margin:0}.slopes-edit-form{display:flex;flex-direction:column;gap:20px}.slope-form-group{padding:16px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.slope-form-title{font-size:16px;font-weight:600;color:var(--color-text-dark);margin:0 0 16px}.checkbox-group{display:flex;flex-wrap:wrap;gap:16px;padding:12px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500;color:var(--color-text-secondary);font-size:14px}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.loading-container,.error-container{text-align:center;padding:48px;background:#fff;border-radius:12px;box-shadow:var(--shadow-card)}.loading-text{font-size:16px;color:var(--color-text-muted)}.error-text{font-size:16px;color:var(--color-error-text);margin-bottom:24px}.back-to-list-btn{padding:12px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.back-to-list-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.resort-details-container{display:flex;flex-direction:column;gap:24px}.resort-header-section{background:#fff;border-radius:12px;padding:32px;box-shadow:var(--shadow-card);display:flex;gap:24px;align-items:flex-start}.resort-icon{flex-shrink:0}.main-photo-container{display:flex;justify-content:center;align-items:center;width:100%}.main-photo-image{max-width:100%;max-height:500px;width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:var(--shadow-card)}.image-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-border);border-radius:8px;color:var(--color-text-muted);font-size:48px;min-height:120px}.image-placeholder.large{min-height:300px;font-size:64px}.image-placeholder.photo{min-height:300px;width:100%;gap:12px}.image-placeholder.photo .placeholder-text{font-size:14px;color:var(--color-text-placeholder)}.resort-header-info{flex:1}.resort-title-wrapper{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.resort-title{margin:0;font-size:32px;color:var(--color-text-dark);font-weight:600;flex:1}.delete-resort-btn{padding:10px 20px;background:transparent;color:var(--color-text-primary);border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:12px;white-space:nowrap}.delete-resort-btn:hover:not(:disabled){background:transparent;color:var(--color-text-dark);transform:translateY(-1px)}.delete-resort-btn:disabled{opacity:.6;cursor:not-allowed}.resort-region,.resort-coordinates,.resort-id-display{margin:8px 0;font-size:16px;color:var(--color-text-muted)}.resort-section{background:#fff;border-radius:12px;padding:24px;box-shadow:var(--shadow-card)}.section-title{margin:0 0 48px;font-size:24px;color:var(--color-text-dark);font-weight:600;border-bottom:2px solid var(--color-accent-yellow);padding-bottom:12px}.section-title.no-border{border-bottom:none;padding-bottom:0;margin-bottom:0}.resort-description{font-size:16px;line-height:1.6;color:var(--color-text-primary);margin:24px 0 0}.resort-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:24px}.resort-link{display:inline-flex;align-items:center;padding:12px 20px;background:var(--color-primary);color:#fff;text-decoration:none;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s}.resort-link:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:24px}.info-item{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid transparent;transition:all .2s}.info-item:hover{border-color:var(--color-accent-yellow)}.info-label{font-size:14px;color:var(--color-text-muted);font-weight:500}.info-value{font-size:20px;color:var(--color-text-dark);font-weight:600}.slopes-info{display:flex;flex-direction:column;gap:20px;margin-top:24px}.slope-category{padding:16px;background:var(--color-bg-subtle);border-radius:8px;border-left:4px solid var(--color-primary);transition:all .2s}.slope-category:hover{border-left-color:var(--color-accent-yellow)}.slope-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.slope-color{font-size:20px}.slope-label{font-size:16px;font-weight:600;color:var(--color-text-dark)}.slope-details{display:flex;gap:24px;font-size:14px;color:var(--color-text-muted)}.slope-features{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--color-border)}.feature-badge{display:inline-block;padding:8px 16px;background:var(--color-success-bg);color:var(--color-success-text);border-radius:20px;font-size:14px;font-weight:500}.resort-map{border-radius:8px;overflow:hidden;border:2px solid var(--color-border)}.map-image{width:100%;height:auto;display:block}.section-header-with-action{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;border-bottom:2px solid var(--color-accent-yellow);padding-bottom:12px}.add-photo-btn{padding:10px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.add-photo-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.add-photo-btn:disabled{opacity:.6;cursor:not-allowed}.add-photo-form{margin-bottom:24px;padding:24px;background:var(--color-bg-subtle);border-radius:8px;border:2px solid var(--color-border)}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.form-file-input{width:100%;padding:12px;border:2px solid var(--color-border);border-radius:8px;font-size:14px;background:#fff;cursor:pointer;transition:all .2s}.form-file-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-accent-yellow-muted)}.form-file-input:disabled{background:var(--color-bg-subtle);cursor:not-allowed;opacity:.6}.form-hint{margin:8px 0 0;font-size:12px;color:var(--color-text-muted)}.form-error{padding:12px 16px;background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:8px;color:var(--color-error-text);font-size:14px;margin-bottom:20px}.form-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center}.form-actions .form-btn{flex-shrink:0;flex-grow:0}.form-btn{padding:0 24px;margin:0;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;height:44px;min-height:44px;max-height:44px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1;white-space:nowrap;vertical-align:middle}.form-btn.cancel-btn{background:var(--color-border);color:var(--color-text-primary);height:44px;min-height:44px;max-height:44px}.form-btn.cancel-btn:hover:not(:disabled){background:var(--color-border-input);transform:translateY(-1px)}.form-btn.submit-btn{background:var(--color-primary);color:#fff;height:44px;min-height:44px;max-height:44px}.form-btn.submit-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.form-btn:disabled{opacity:.6;cursor:not-allowed}.empty-photos{text-align:center;padding:48px;color:var(--color-text-muted)}.empty-photos p{margin:0;font-size:16px}.resort-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.photo-item{position:relative;border-radius:8px;overflow:hidden;border:2px solid var(--color-border);transition:all .2s}.photo-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:var(--color-accent-yellow)}.photo-wrapper{position:relative;width:100%}.photo-image{width:100%;height:auto;display:block;object-fit:cover;max-height:300px}.delete-photo-btn{position:absolute;top:8px;right:8px;width:36px;height:36px;background:var(--color-red);color:#fff;border:none;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:var(--shadow-sm)}.delete-photo-btn:hover:not(:disabled){background:var(--color-status-red);transform:scale(1.1);box-shadow:var(--shadow-modal)}.delete-photo-btn:disabled{opacity:.6;cursor:not-allowed}.webcameras-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:24px}.webcamera-card{background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border);transition:all .2s;overflow:hidden;display:flex;flex-direction:column}.webcamera-card:hover{border-color:var(--color-accent-yellow);box-shadow:var(--shadow-accent-yellow)}.webcamera-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);background:#fff}.webcamera-card-title{margin:0;font-size:16px;color:var(--color-text-primary);font-weight:600;flex:1}.webcamera-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}.webcamera-external-link{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-secondary);text-decoration:none;font-size:16px;transition:all .2s;cursor:pointer}.webcamera-external-link:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-primary)}.webcamera-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-secondary);font-size:16px;transition:all .2s;cursor:pointer}.webcamera-edit-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-primary)}.webcamera-edit-btn:disabled{opacity:.5;cursor:not-allowed}.webcamera-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:6px;color:var(--color-red);font-size:16px;transition:all .2s;cursor:pointer}.webcamera-delete-btn:hover:not(:disabled){background:var(--color-red);border-color:var(--color-red);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-accent-pink)}.webcamera-delete-btn:disabled{opacity:.5;cursor:not-allowed}.webcamera-iframe-wrapper{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden;background:var(--color-bg-black)}.webcamera-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.webcamera-item{padding:20px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border);transition:all .2s}.webcamera-item:hover{border-color:var(--color-accent-yellow)}.webcamera-description{margin:0 0 12px;font-size:16px;color:var(--color-text-primary);font-weight:500}.webcamera-link{display:inline-flex;align-items:center;padding:10px 18px;background:var(--color-primary);color:#fff;text-decoration:none;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s}.webcamera-link:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.resort-map-section{margin-top:24px;background:#fff;border-radius:12px;box-shadow:var(--shadow-card);overflow:hidden;border:1px solid var(--color-border)}.map-section-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:2px solid var(--color-accent-yellow);transition:background-color .2s}.map-section-header:hover{background-color:var(--color-bg-subtle)}.map-section-title{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.map-toggle-btn{background:transparent;border:none;font-size:14px;color:var(--color-text-secondary);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.map-toggle-btn:hover{background-color:var(--color-border);color:var(--color-text-primary)}.map-content{overflow:hidden;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.yandex-map-container{width:100%;border-radius:12px;overflow:hidden}.yandex-map{width:100%;height:400px;border-radius:0}.map-placeholder{padding:40px;text-align:center;color:var(--color-text-muted);background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}@media (max-width: 768px){.resort-details-content{padding:16px}.webcameras-list{grid-template-columns:1fr;gap:16px}.yandex-map{height:300px}.resort-header-section{flex-direction:column;align-items:center;text-align:center}.resort-section{padding:20px}.resort-photos,.info-grid{grid-template-columns:1fr}}.create-resort-page{min-height:100vh;background:var(--color-bg-subtle);display:flex;flex-direction:column}.create-resort-content{flex:1;padding:2rem;display:flex;justify-content:center;align-items:flex-start}.create-resort-container{width:100%;max-width:900px;background:var(--color-bg-white);border-radius:12px;box-shadow:var(--shadow-dropdown);padding:2rem}.resort-form{display:flex;flex-direction:column;gap:2rem}.form-section{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}.form-section:last-of-type{border-bottom:none}.section-title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:0;padding-bottom:.5rem;border-bottom:2px solid var(--color-accent-yellow)}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.form-label{font-weight:500;color:var(--color-text-secondary);font-size:.95rem}.form-input,.form-select,.form-textarea{padding:.75rem;border:2px solid var(--color-border);border-radius:8px;font-size:1rem;transition:all .2s;font-family:inherit}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-accent-yellow-muted)}.form-input:disabled,.form-select:disabled{background-color:var(--color-bg-subtle);cursor:not-allowed;opacity:.6}.form-textarea{resize:vertical;min-height:100px}.form-hint{font-size:.85rem;color:var(--color-text-muted);margin-top:-.25rem}.error-container{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.error-text{color:var(--color-error-text);margin:0;font-weight:500}.slopes-form{display:flex;flex-direction:column;gap:1.5rem}.slope-form-group{padding:1rem;background-color:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.slope-form-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem}.checkbox-group{display:flex;flex-wrap:wrap;gap:1.5rem;padding:.75rem;background-color:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500;color:var(--color-text-secondary)}.checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--color-primary)}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-primary)}.btn-secondary{background-color:var(--color-border);color:var(--color-text-secondary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border-input)}@media (max-width: 768px){.create-resort-content{padding:1rem}.create-resort-container{padding:1.5rem}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.btn{width:100%}.checkbox-group{flex-direction:column;gap:.75rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.header-brand{display:flex;align-items:center;gap:12px}.header-logo{height:40px;width:auto;display:block;border-radius:8px;flex-shrink:0}.header-brand-text{display:flex;flex-direction:column;gap:2px;line-height:1.2}.header-brand-title{font-size:18px;font-weight:700;color:var(--color-text-dark)}.header-brand-subtitle{font-size:12px;color:var(--color-text-muted)}.header-left{display:flex;align-items:center;gap:24px}.header-page-title{margin:0;font-size:24px;font-weight:600;color:var(--color-text-dark)}
