:root{--bg-color: #f8fafc;--surface-color: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b;--border-color: rgba(0, 0, 0, .1);--primary-color: #003DA5;--secondary-color: #a855f7;--accent-color: #ec4899;--header-bg: #003DA5;--header-text: #ffffff;--glass-bg: rgba(255, 255, 255, .8);--glass-border: rgba(0, 0, 0, .1);--header-height: 64px;--bottom-nav-height: 64px;--radius-md: 12px;--radius-lg: 16px;--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--card-bg: rgba(255, 255, 255, .8);--card-border: rgba(255, 255, 255, .4);--item-border: rgba(0, 0, 0, .05);--item-active-bg: rgba(0, 0, 0, .02);--btn-border: rgba(0, 0, 0, .1);--btn-text: var(--text-secondary);--badge-bg: rgba(0, 0, 0, .05);--badge-text: var(--text-secondary)}@media(prefers-color-scheme:dark){:root{--bg-color: #0f172a;--surface-color: #1e293b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--border-color: rgba(255, 255, 255, .1);--glass-bg: rgba(15, 23, 42, .8);--glass-border: rgba(255, 255, 255, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--card-bg: rgba(30, 30, 30, .9);--card-border: rgba(255, 255, 255, .1);--item-border: rgba(255, 255, 255, .1);--item-active-bg: rgba(255, 255, 255, .1);--btn-border: rgba(255, 255, 255, .2);--btn-text: rgba(255, 255, 255, .8);--badge-bg: rgba(255, 255, 255, .1);--badge-text: rgba(255, 255, 255, .8)}}[data-theme=light]{--bg-color: #f8fafc;--surface-color: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b;--border-color: rgba(0, 0, 0, .1);--glass-bg: rgba(255, 255, 255, .8);--glass-border: rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--card-bg: rgba(255, 255, 255, .8);--card-border: rgba(255, 255, 255, .4);--item-border: rgba(0, 0, 0, .05);--item-active-bg: rgba(0, 0, 0, .02);--btn-border: rgba(0, 0, 0, .1);--btn-text: var(--text-secondary);--badge-bg: rgba(0, 0, 0, .05);--badge-text: var(--text-secondary)}[data-theme=dark]{--bg-color: #0f172a;--surface-color: #1e293b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--border-color: rgba(255, 255, 255, .1);--glass-bg: rgba(15, 23, 42, .8);--glass-border: rgba(255, 255, 255, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--card-bg: rgba(30, 30, 30, .9);--card-border: rgba(255, 255, 255, .1);--item-border: rgba(255, 255, 255, .1);--item-active-bg: rgba(255, 255, 255, .1);--btn-border: rgba(255, 255, 255, .2);--btn-text: rgba(255, 255, 255, .8);--badge-bg: rgba(255, 255, 255, .1);--badge-text: rgba(255, 255, 255, .8)}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;-webkit-text-size-adjust:100%;overscroll-behavior:none;-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:0 16px}.glass{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)}.gradient-text{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color),var(--accent-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-primary{background:var(--primary-color);color:#fff;padding:12px 24px;border-radius:12px;font-weight:600;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer}.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #003da54d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.header{position:fixed;top:0;left:0;right:0;height:calc(var(--header-height) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);z-index:100;display:flex;align-items:center;overflow:hidden;touch-action:none}.header-content{display:flex;position:relative;align-items:center;justify-content:space-between;width:100%;height:100%}.logo{font-size:1.5rem;font-weight:700;letter-spacing:-.5px;color:var(--header-text)}.desktop-only{display:none}.mobile-only{display:block}.page-title{font-size:1.25rem;font-weight:600;color:var(--header-text);position:absolute;left:50%;transform:translate(-50%);z-index:1}.hamburger-btn{position:absolute;left:16px;z-index:2}.add-btn{position:absolute;right:16px;z-index:2}.desktop-nav{display:none;gap:32px}.nav-link{font-weight:500;color:#ffffffb3;transition:color .2s;font-size:.95rem}.nav-link:hover,.nav-link.active{color:#fff}.icon-btn{color:var(--text-primary);padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.icon-btn:hover{background:#ffffff1a}@media(min-width:768px){.desktop-nav{display:flex}.desktop-only{display:block}.mobile-only{display:none}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:space-around;align-items:center;z-index:100;border-top:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-secondary);font-size:.75rem;font-weight:500;transition:color .2s;width:100%;height:100%}.nav-item.active{color:var(--primary-color)}@media(min-width:768px){.bottom-nav{display:none}}.sub-page{position:fixed;inset:0;width:100%;height:100dvh;background:var(--bg-color);z-index:2000;display:flex;flex-direction:column;touch-action:pan-y;overscroll-behavior:none}.sub-page-header{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:calc(var(--header-height) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);background:var(--header-bg);color:var(--header-text);overflow:hidden;touch-action:none}.sub-page-header h2{font-size:1.25rem;font-weight:600;color:var(--header-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%;text-align:center;z-index:1}.sub-page-back-btn{position:absolute;left:16px;z-index:2;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--header-text);transition:background .2s;padding:0;background:transparent;border:none;cursor:pointer}.sub-page-back-btn:hover{background:#ffffff1a}.sub-page-iframe{flex:1;width:100%;border:none;background:#fff}.sub-page-content{flex:1;width:100%;overflow-y:auto;background:var(--bg-color);overscroll-behavior-y:none;touch-action:pan-y}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;animation:fadeIn .2s ease}.modal-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e1e23f2;border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:32px;max-width:400px;width:90%;z-index:1000;box-shadow:0 20px 40px #0006;animation:scaleUp .3s cubic-bezier(.16,1,.3,1)}@keyframes scaleUp{0%{opacity:0;transform:translate(-50%,-45%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.modal-header h2{font-size:1.5rem;font-weight:700;margin:0;padding-right:16px;color:#fff;line-height:1.3}.modal-close-btn{padding:8px;border-radius:50%;color:#fff9;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#ffffff0d;flex-shrink:0}.modal-close-btn:hover{background:#ffffff26;color:#fff}.modal-desc{color:#ffffffb3;margin:0 0 32px;font-size:1rem;line-height:1.5}.modal-buttons{display:flex;flex-direction:column;gap:16px}.modal-option-btn{display:flex;align-items:center;gap:20px;padding:20px 24px;border-radius:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff;font-size:1.1rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);cursor:pointer;position:relative;overflow:hidden}.modal-option-btn:hover{background:#ffffff1a;border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 8px 24px #0003}.modal-option-btn:active{transform:translateY(0)}.option-icon{font-size:24px;background:#ffffff1a;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px}.option-text{flex:1;text-align:left}.course-detail-card{background:var(--surface-color);border:1px solid var(--glass-border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.instructor-list{display:flex;flex-direction:column;gap:4px}.instructor-item{display:flex;align-items:center;gap:8px;font-size:.95rem;color:var(--text-primary)}.primary-badge{font-size:.65rem;background:var(--primary-color);color:#fff;padding:2px 6px;border-radius:4px;text-transform:uppercase;font-weight:700;letter-spacing:.5px}.card-footer{padding:16px;background:#00000005;border-top:1px solid var(--glass-border);display:flex;flex-direction:column;gap:12px}.action-buttons{display:flex;flex-direction:column;gap:8px}.action-btn{width:100%;padding:10px;border-radius:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;border:none;font-size:.9rem;cursor:pointer;text-decoration:none;box-sizing:border-box}.action-btn:active{transform:scale(.98)}.map-btn{background:var(--primary-color);color:#fff}.exam-btn,.classmates-btn{background:var(--surface-color);border:1px solid var(--glass-border);color:var(--text-primary)}.remove-link-btn{background:none;border:none;color:#ef4444;font-size:.85rem;font-weight:500;cursor:pointer;padding:4px;opacity:.8;transition:opacity .2s}.remove-link-btn:hover{opacity:1;text-decoration:underline}.add-course-btn{width:100%;padding:12px;background:var(--primary-color);color:#fff;border-radius:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;border:none;font-size:.95rem;cursor:pointer}.instructor-item.clickable{cursor:pointer;color:var(--primary-color);text-decoration:underline;text-decoration-color:transparent;transition:all .2s}.instructor-item.clickable:hover{text-decoration-color:var(--primary-color);opacity:.8}.instructor-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.instructor-modal{background:var(--surface-color);padding:24px;border-radius:20px;width:90%;max-width:320px;text-align:center;box-shadow:0 10px 25px #0003;animation:slideUp .2s ease-out}.instructor-modal h3{margin:0 0 20px;color:var(--text-primary);font-size:1.2rem}.instructor-actions{display:flex;flex-direction:column;gap:12px}.instructor-btn{padding:14px;border-radius:12px;border:none;font-weight:600;cursor:pointer;font-size:1rem;transition:transform .1s;display:flex;align-items:center;justify-content:center;text-decoration:none}.instructor-btn:active{transform:scale(.98)}.instructor-btn.email{background:var(--primary-color);color:#fff}.instructor-btn.rmp{background:#22c55e;background:var(--surface-color);border:2px solid var(--primary-color);color:var(--primary-color)}.instructor-btn.cancel{background:transparent;color:var(--text-secondary);font-size:.9rem;margin-top:4px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.custom-event-form{padding:16px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column}.form-label{display:block;margin-bottom:8px;font-weight:500}.time-fields-row{display:flex;gap:16px}.day-toggles{display:flex;gap:8px;flex-wrap:wrap}.day-toggle-btn{padding:8px 12px;border-radius:8px;border:1px solid var(--glass-border);background:var(--bg-color);color:var(--text-primary);cursor:pointer;text-transform:capitalize;font-size:.9rem;transition:all .2s}.day-toggle-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.search-input{width:100%;max-width:100%;padding:12px;border-radius:12px;border:1px solid var(--glass-border);background:var(--surface-color);color:var(--text-primary);font-size:.95rem;box-sizing:border-box;-webkit-appearance:none;appearance:none}@media(max-width:767px){.time-fields-row{flex-direction:column;gap:16px}}.manual-add-container{padding:16px;min-height:100%;display:flex;flex-direction:column;background:var(--bg-color)}.wizard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:0 12px}.step{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-secondary);opacity:.5;transition:all .3s}.step.active{opacity:1;color:var(--primary-color)}.step.clickable{cursor:pointer}.step.clickable:hover{opacity:1;color:var(--primary-color)}.step.completed{opacity:1;color:var(--success-color, #10b981)}.step-icon{width:32px;height:32px;border-radius:50%;background:var(--surface-color);display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border)}.step.active .step-icon{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.step.completed .step-icon{background:var(--success-color, #10b981);color:#fff;border-color:var(--success-color, #10b981)}.step span{font-size:.75rem;font-weight:600}.step-line{flex:1;height:2px;background:var(--glass-border);margin:0 12px 16px}.content-area{display:flex;flex-direction:column}.list-group h3{font-size:1.1rem;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.search-box{position:relative;margin-bottom:16px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary)}.search-input{width:100%;padding:12px 12px 12px 40px;border-radius:12px;border:1px solid var(--glass-border);background:var(--surface-color);color:var(--text-primary);font-size:.95rem}.scrollable-list{padding-bottom:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.list-item{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--surface-color);border:1px solid var(--glass-border);border-radius:12px;margin-bottom:0;text-align:left;transition:all .2s}.list-item:hover{background:#0000000d}.item-content{display:flex;flex-direction:column;gap:2px}.item-code{font-size:.8rem;font-weight:700;color:var(--primary-color)}.item-title{font-size:.95rem;color:var(--text-primary);font-weight:500}.item-arrow{color:var(--text-secondary)}.course-card{background:var(--surface-color);border:1px solid var(--glass-border);border-radius:16px;margin-bottom:0;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.card-header{padding:16px;color:#fff}.course-header-main{display:flex;flex-direction:column;gap:4px}.course-code{font-size:1.1rem;font-weight:700;letter-spacing:.5px}.course-title{font-size:.95rem;font-weight:500;line-height:1.3;opacity:.95}.course-term{font-size:.8rem;opacity:.8;margin-top:4px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.card-body{padding:16px;display:flex;flex-direction:column;gap:12px}.card-body p{margin:0;font-size:.95rem;color:var(--text-primary);line-height:1.4}.card-body .muted{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600;display:block;margin-bottom:2px}.day-chips{display:flex;gap:8px;margin-top:4px}.day-chip{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;background:var(--bg-color);color:var(--text-secondary);border:1px solid var(--glass-border)}.day-chip.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.meeting-row{display:flex;align-items:center;gap:12px;margin-top:4px;padding-top:12px;border-top:1px solid var(--glass-border)}.meeting-time{font-weight:600;color:var(--text-primary);font-size:.95rem}.meeting-range{font-size:.8rem;color:var(--text-secondary);margin-top:2px}.card-footer{padding:16px;background:#00000005;border-top:1px solid var(--glass-border)}.add-course-btn{width:100%;padding:12px;background:var(--primary-color);color:#fff;border-radius:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;border:none;font-size:.95rem}.add-course-btn.added{background:#ef4444}.loading-state{grid-column:1 / -1;min-height:200px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);gap:12px}.spinner{width:32px;height:32px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.error-toast{position:absolute;top:16px;left:50%;transform:translate(-50%);background:#ef4444;color:#fff;padding:10px 20px;border-radius:999px;display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:500;box-shadow:0 4px 12px #ef44444d;z-index:100;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translate(-50%,-100%);opacity:0}to{transform:translate(-50%);opacity:1}}@media(prefers-color-scheme:dark){.list-item:hover{background:#ffffff1a}.spinner{border-color:#ffffff1a;border-top-color:var(--primary-color)}}.add-custom-event-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;margin-bottom:16px;border:2px dashed var(--primary-color);border-radius:12px;background:#003da50d;color:var(--primary-color);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.add-custom-event-btn:hover{background:#003da51a;transform:translateY(-1px)}.add-custom-event-btn:active{transform:translateY(0)}.add-custom-event-btn.secondary{border-color:var(--text-secondary);color:var(--text-secondary);background:transparent;opacity:.7;padding:12px;border-width:1px;font-size:.9rem}.add-custom-event-btn.secondary:hover{opacity:1;background:#0000000d}.search-header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:24px;padding:16px 12px 0}.search-header h2{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0}.back-btn{position:absolute;left:12px;background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.back-btn:hover{background:#0000000d;color:var(--text-primary)}.scan-qr-container{display:flex;flex-direction:column;height:100%;background:var(--bg-color);color:var(--text-primary)}.scan-tabs{display:flex;border-bottom:1px solid var(--glass-border);background:var(--surface-color)}.scan-tab{flex:1;padding:16px;background:none;border:none;color:var(--text-secondary);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.scan-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:#2563eb0d}.scan-content{flex:1;padding:24px;display:flex;flex-direction:column;align-items:center;overflow-y:auto;gap:24px}.qr-instruction{text-align:center;margin-bottom:20px;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.guide-tabs{display:flex;gap:10px;margin-bottom:16px;justify-content:center}.guide-tab{padding:8px 16px;border-radius:20px;border:1px solid var(--glass-border);background:var(--surface-color);color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s ease}.guide-tab.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.guide-details{text-align:left;background:var(--surface-color);padding:16px;border-radius:12px;border:1px solid var(--glass-border);font-size:.9rem}.guide-notice{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444;padding:12px;border-radius:8px;margin-bottom:16px;font-size:.85rem}.guide-steps{margin:16px 0 0 20px;padding:0}.guide-steps li{margin-bottom:12px}.guide-steps ul{margin:8px 0 16px 20px;list-style-type:disc}.sub-list-title{font-weight:600;color:var(--text-primary);margin-top:16px;list-style:none;margin-left:-20px}.guide-image{width:100%;border-radius:8px;margin:8px 0;border:1px solid var(--glass-border)}.inline-icon{height:1.2em;vertical-align:middle;margin:0 4px}.qr-instruction a{color:var(--primary-color);font-weight:600;text-decoration:none}.qr-instruction a:hover{text-decoration:underline}.scanner-wrapper{width:100%;max-width:400px;aspect-ratio:1;background:#000;border-radius:16px;overflow:hidden;position:relative;flex-shrink:0}#reader{width:100%;height:100%}.upload-area{width:100%;max-width:400px;height:300px;border:2px dashed var(--glass-border);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;cursor:pointer;transition:all .2s;background:var(--surface-color);flex-shrink:0}.upload-area:hover{border-color:var(--primary-color);background:#2563eb0d}.upload-icon{color:var(--text-secondary)}.scan-action-btn{padding:12px 24px;background:var(--primary-color);color:#fff;border:none;border-radius:12px;font-weight:600;cursor:pointer;width:100%;max-width:300px;margin:0 auto}.paste-area{width:100%;max-width:500px;display:flex;flex-direction:column;gap:16px;align-items:center;flex-shrink:0}.code-input{width:100%;height:200px;padding:16px;border-radius:12px;border:1px solid var(--glass-border);background:var(--surface-color);color:var(--text-primary);font-family:monospace;resize:vertical}.scan-results{width:100%;max-width:500px;display:flex;flex-direction:column;gap:16px;align-items:center}.result-card{width:100%;background:var(--surface-color);border:1px solid var(--glass-border);border-radius:12px;padding:16px;display:flex;justify-content:space-between;align-items:center}.result-info{display:flex;flex-direction:column;gap:4px}.result-code{font-weight:700;font-size:.9rem}.result-title{font-size:.85rem;opacity:.8}.status-badge{padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:600}.status-badge.success{background:#10b9811a;color:#10b981}.status-badge.error{background:#ef44441a;color:#ef4444}.action-btn:disabled{opacity:.5;cursor:not-allowed}.error-message{color:#ef4444;text-align:center;padding:12px;background:#ef44441a;border-radius:8px;font-size:.9rem}.schedule-container{position:fixed;top:calc(var(--header-height) + env(safe-area-inset-top));left:0;right:0;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));width:100%;height:auto;display:flex;flex-direction:column;background:var(--bg-color);overflow:hidden;z-index:1}@media(min-width:768px){.schedule-container{bottom:0}}.schedule-header{padding:16px;display:flex;align-items:center;justify-content:space-between;background:var(--surface-color);border-bottom:1px solid var(--glass-border);z-index:1200}.term-selector-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-primary);font-size:1.1rem;font-weight:600;cursor:pointer;padding:8px 12px;border-radius:8px;transition:background .2s}.term-selector-btn:hover{background:#0000000d}.calendar-wrapper{flex:1;overflow:auto;position:relative;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior-y:none}.calendar-grid{display:grid;grid-template-columns:60px repeat(5,1fr);grid-template-rows:50px 15px;grid-auto-rows:60px;min-width:800px;position:relative}.calendar-grid.weekend-visible{grid-template-columns:60px repeat(7,1fr);min-width:1000px}.header-row{display:contents}.time-header-spacer{position:sticky;top:0;left:0;background:var(--bg-color);z-index:1150;border-bottom:1px solid var(--glass-border);border-right:1px solid var(--glass-border)}.day-header{position:sticky;top:0;background:var(--bg-color);padding:12px;text-align:center;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--glass-border);border-right:1px solid var(--glass-border);z-index:1100;display:flex;flex-direction:column;gap:4px;height:100%;box-sizing:border-box}.day-header.today{color:var(--primary-color);background-color:var(--bg-color);background-image:linear-gradient(#2563eb0d,#2563eb0d)}.day-name{font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.time-column{display:contents}.time-slot-label{grid-column:1;text-align:right;padding:0 8px;font-size:.75rem;color:var(--text-secondary);border-right:1px solid var(--glass-border);background:var(--bg-color);position:sticky;left:0;z-index:150;transform:translateY(-50%);display:flex;align-items:center;justify-content:flex-end;height:1em;margin-top:-1px}.grid-lines{grid-column:2 / -1;border-top:1px solid var(--glass-border);opacity:.5;pointer-events:none}.day-column{position:relative;height:100%}.event-card{position:absolute;padding:6px 8px;border-radius:8px;color:#fff;font-size:.8rem;overflow:hidden;cursor:pointer;transition:transform .2s,z-index .2s;box-shadow:0 2px 4px #0000001a;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:2px;left:2px;right:2px;box-sizing:border-box}.event-card:hover{transform:scale(1.02);z-index:50;box-shadow:0 4px 8px #0003}.event-card.lecture{background:#003da5}.event-card.other{background:#3e5b8d}.event-header{display:flex;justify-content:space-between;align-items:center}.event-code{font-weight:700;font-size:.85rem}.event-time{font-size:.75rem;opacity:.9;font-variant-numeric:tabular-nums}.event-location{font-size:.7rem;opacity:.8}.event-type-pill{margin-top:auto;align-self:flex-start;background:#fff3;padding:2px 6px;border-radius:12px;font-size:.65rem;font-weight:600;white-space:normal;max-width:100%;line-height:1.2}.current-time-line{position:absolute;left:60px;right:0;height:2px;background:var(--error-color, #ef4444);z-index:40;pointer-events:none}.current-time-line:before{content:"";position:absolute;left:-6px;top:-5px;width:12px;height:12px;border-radius:50%;background:var(--error-color, #ef4444)}.event-card.next-class{border:2px solid #fbbf24;box-shadow:0 0 15px #fbbf2480;z-index:100;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #fbbf24b3}70%{box-shadow:0 0 0 10px #fbbf2400}to{box-shadow:0 0 #fbbf2400}}.short-event .event-time{display:none}.short-event .event-type-pill,.short-event .event-location{display:block}.short-event .event-code{font-size:.7rem;line-height:1.1}.short-event:hover{height:auto!important;min-height:fit-content;z-index:1000;padding-bottom:8px}.short-event:hover .event-time{display:block}.term-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.term-modal{background:var(--surface-color);border-radius:16px;padding:24px;width:90%;max-width:400px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.term-modal h2{margin-top:0;margin-bottom:16px;color:var(--text-primary)}.term-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.term-option{padding:12px;border:1px solid var(--glass-border);border-radius:8px;background:var(--bg-color);color:var(--text-primary);text-align:left;cursor:pointer;transition:all .2s}.term-option:hover{background:#0000000d;border-color:var(--primary-color)}.term-option.selected{background:#2563eb1a;border-color:var(--primary-color);color:var(--primary-color);font-weight:600}@media(prefers-color-scheme:dark){.term-selector-btn:hover{background:#ffffff1a}.day-header.today{background-color:var(--bg-color);background-image:linear-gradient(#2563eb33,#2563eb33)}.term-option:hover{background:#ffffff1a}}@media(max-width:768px){.calendar-grid{min-width:auto;grid-template-columns:35px repeat(5,1fr);grid-template-rows:50px 15px}.calendar-grid.weekend-visible{grid-template-columns:35px repeat(7,1fr);min-width:auto}.day-header{padding:8px 2px;font-size:.75rem}.day-name{font-size:.7rem;letter-spacing:0;white-space:normal;overflow:visible}.time-slot-label{font-size:.65rem;padding:8px 2px;text-align:center}.event-card{padding:2px 3px;left:1px;right:1px;border-radius:4px}.event-code{font-size:.65rem;line-height:1.1;white-space:normal;word-break:break-word}.event-time{font-size:.55rem;white-space:normal;overflow:visible;line-height:1.1}.event-location{display:block;font-size:.5rem;white-space:normal;word-break:break-word;line-height:1.1;opacity:.9}.event-type-pill{font-size:.5rem;padding:1px 4px;margin-top:1px;white-space:normal;overflow:visible;line-height:1.1}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:32px;text-align:center;color:var(--text-secondary);gap:16px}.loading-state p{font-size:1.1rem;margin:0}.add-course-btn{display:flex;align-items:center;gap:8px;background:var(--primary-color);color:#fff;border:none;padding:12px 24px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s;box-shadow:0 4px 6px #2563eb33}.add-course-btn:active{transform:scale(.98)}.add-course-btn:hover{opacity:.9}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;width:100%}@media(min-width:1024px){.short-event .event-code{font-size:.6rem}}.parking-forecast{padding:16px;background:var(--bg-color);height:100%;overflow-y:auto}.forecast-header{margin-bottom:24px;text-align:center}.forecast-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 8px}.forecast-header .tag{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;padding:4px 12px;border-radius:999px;background:#003da51a;color:var(--primary-color);font-weight:600}.selectors{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.selector-group{text-align:center}.selector-group .label{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}.selector-group .buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.selector-btn{font-size:.85rem;padding:6px 14px;border-radius:999px;border:1px solid var(--glass-border);background:var(--surface-color);color:var(--text-primary);transition:all .2s}.selector-btn:hover{background:#0000000d}.selector-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 2px 8px #003da54d}.chart-wrapper{height:320px;background:var(--surface-color);border-radius:16px;padding:16px;border:1px solid var(--glass-border);box-shadow:var(--shadow-lg)}.loading-state,.no-data{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-secondary);font-weight:500}@media(prefers-color-scheme:dark){.selector-btn:hover{background:#ffffff1a}}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:16px;color:var(--text-secondary);text-align:center}.retry-btn{padding:8px 24px;background:var(--primary-color);color:#fff;border:none;border-radius:999px;font-weight:600;font-size:.9rem;cursor:pointer;transition:opacity .2s}.retry-btn:hover{opacity:.9}.parking-page{position:fixed;top:calc(var(--header-height) + env(safe-area-inset-top));left:0;right:0;bottom:var(--bottom-nav-height);width:100%;height:auto;overflow:hidden;background:var(--bg-color);z-index:1}@media(min-width:768px){.parking-page{bottom:0}}.parking-iframe{width:100%;height:100%;border:none;display:block}.floating-action-btn{position:fixed;z-index:101;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s,background .2s}.floating-action-btn:active{transform:scale(.95)}@media(max-width:767px){.floating-action-btn{top:calc(12px + env(safe-area-inset-top));right:16px;width:40px;height:40px;border-radius:50%;background:transparent;color:var(--header-text);box-shadow:none;font-size:1.25rem}.floating-action-btn:hover{background:#ffffff1a}}@media(min-width:768px){.floating-action-btn{bottom:32px;right:32px;width:56px;height:56px;border-radius:50%;background:var(--primary-color);color:#fff;box-shadow:0 4px 12px #0000004d;font-size:1.5rem}}.import-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.import-modal{background:var(--surface-color);border-radius:20px;width:90%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 25px #0003;animation:slideUp .2s ease-out;overflow:hidden}.import-header{padding:16px 20px;border-bottom:1px solid var(--glass-border);display:flex;justify-content:space-between;align-items:center}.import-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.close-btn:hover{background:#0000000d}.import-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 0;text-align:center;gap:12px}.spinner{animation:spin 1s linear infinite;color:var(--primary-color)}.error-icon{color:#ef4444}.import-retry-btn{padding:8px 16px;background:var(--surface-color);border:1px solid var(--glass-border);border-radius:8px;cursor:pointer;font-weight:600;margin-top:8px}.import-summary{display:flex;flex-direction:column;gap:12px}.term-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:#2563eb1a;color:var(--primary-color);border-radius:8px;font-weight:600;font-size:.95rem;align-self:flex-start}.override-warning{display:flex;align-items:flex-start;gap:8px;padding:12px;background:#ef44441a;color:#ef4444;border-radius:8px;font-size:.9rem;line-height:1.4}.courses-preview h4{margin:0 0 12px;font-size:1rem;color:var(--text-primary)}.courses-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto;padding-right:4px}.course-preview-item{padding:12px;background:var(--bg-color);border:1px solid var(--glass-border);border-radius:12px}.import-course-code{font-weight:700;color:var(--primary-color);font-size:.95rem}.import-course-section{font-size:.8rem;color:var(--text-secondary);margin-top:2px}.import-course-title{font-size:.9rem;color:var(--text-primary);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-actions{display:flex;gap:12px;margin-top:8px}.cancel-btn,.import-confirm-btn{flex:1;padding:12px;border-radius:12px;font-weight:600;font-size:.95rem;cursor:pointer;border:none;transition:opacity .2s}.cancel-btn{background:var(--bg-color);color:var(--text-secondary)}.import-confirm-btn{background:var(--primary-color);color:#fff}.import-confirm-btn:active,.cancel-btn:active{transform:scale(.98)}.app-layout{min-height:100dvh;display:flex;flex-direction:column}.main-content{flex:1;padding-top:calc(var(--header-height) + env(safe-area-inset-top));padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom))}.schedule-page{position:fixed;top:calc(var(--header-height) + env(safe-area-inset-top));left:0;right:0;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));width:100%;height:auto;overflow:hidden}.schedule-iframe{width:100%;height:100%;border:none}@media(min-width:768px){.main-content{padding-bottom:32px}.schedule-page{bottom:0}.floating-course-btn{position:fixed;bottom:32px;right:32px;width:64px;height:64px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0003;transition:all .3s ease;z-index:100}.floating-course-btn:hover{transform:scale(1.1);box-shadow:0 6px 20px #0000004d}.floating-course-btn:active{transform:scale(.95)}.floating-add-btn{position:fixed;bottom:112px;right:32px;width:64px;height:64px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0003;transition:all .3s ease;z-index:100}.floating-add-btn:hover{transform:scale(1.1);box-shadow:0 6px 20px #0000004d}.floating-add-btn:active{transform:scale(.95)}}.migration-container{padding:16px;display:flex;flex-direction:column;height:100%;max-width:600px;margin:0 auto}.migration-header{text-align:center;margin-bottom:32px}.migration-icon-wrapper{width:64px;height:64px;background:rgba(var(--primary-rgb),.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.migration-header h2{margin:0 0 8px;font-size:1.5rem}.migration-header p{margin:0;color:var(--text-secondary)}.selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.selector-header label{margin:0}.migration-btn-text{background:none;border:none;color:var(--primary-color);font-size:.9rem;cursor:pointer;padding:4px 8px}.migration-term-list{display:flex;flex-direction:column;gap:12px;max-height:45vh;overflow-y:auto;overscroll-behavior-y:none}.migration-term-option{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--surface-color);border:1px solid var(--glass-border);border-radius:12px;color:var(--text-primary);font-size:1rem;cursor:pointer;transition:all .2s ease}.migration-term-option:hover:not(.disabled){background:rgba(var(--primary-rgb),.05);border-color:var(--primary-color)}.migration-term-option.selected{background:rgba(var(--primary-rgb),.1);border-color:var(--primary-color)}.migration-term-option.disabled{opacity:.6;cursor:not-allowed;background:#0000000d}.term-info{display:flex;flex-direction:column;gap:4px}.term-name{font-weight:600;display:flex;align-items:center;gap:8px}.term-courses{font-size:.85rem;color:var(--text-secondary)}.badge{font-size:.75rem;padding:2px 6px;border-radius:4px;font-weight:500}.badge.success{background:#10b9811a;color:#10b981}.badge.neutral{background:#6b72801a;color:#6b7280}.checkbox{width:20px;height:20px;border:2px solid var(--glass-border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary-color)}.migration-term-option.selected .checkbox{border-color:var(--primary-color);background:rgba(var(--primary-rgb),.1)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary)}.migration-progress,.migration-success,.migration-error,.migration-done{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 0}.progress-bar-container{width:100%;height:8px;background:var(--surface-color);border-radius:4px;margin-top:24px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary-color);transition:width .3s ease}.migration-stats{display:flex;gap:32px;margin:24px 0}.stat-item{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:2rem;font-weight:700}.stat-value.success{color:#10b981}.stat-value.error{color:#ef4444}.stat-label{font-size:.875rem;color:var(--text-secondary)}.migration-note{color:var(--text-secondary);margin-bottom:24px}.full-width{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:12px;font-weight:600;font-size:1rem;cursor:pointer;border:none;transition:transform .1s ease}.full-width:active{transform:scale(.98)}.btn-primary{background:var(--primary-color);color:#fff}.btn-secondary{background:transparent;border:1px solid var(--glass-border);color:var(--text-primary)}.btn-danger{background:#ef4444;color:#fff}.mt-4{margin-top:16px}.mt-2{margin-top:8px}.text-primary{color:var(--primary-color)}.text-success{color:#10b981}.text-error{color:#ef4444}.spinning{animation:spin 1s linear infinite}.about-container{padding:24px 24px 60px;display:flex;flex-direction:column;gap:32px;color:var(--text-primary);max-width:800px;margin:0 auto}.about-hero{text-align:center;margin-top:20px;display:flex;flex-direction:column;align-items:center}.hero-logo img{width:80px;height:80px;border-radius:20px;margin-bottom:16px;box-shadow:0 8px 20px #00000026}.about-hero h3{margin:0;font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--primary-color),#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.5px}.subtitle{color:var(--text-secondary);font-size:1rem;margin-top:8px;font-weight:500}.about-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:768px){.about-grid{grid-template-columns:repeat(2,1fr)}.info-card,.contact-card{grid-column:span 2}}.about-card{background:var(--surface-color);border:1px solid var(--glass-border);border-radius:20px;padding:24px;box-shadow:0 4px 6px -1px #0000000d;transition:transform .2s,box-shadow .2s}.about-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #00000014}.card-icon-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.card-icon-header h4{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-primary)}.icon-blue{color:#3b82f6}.icon-orange{color:#f97316}.icon-red{color:#ef4444}.icon-green{color:#22c55e}.about-card p{margin:0 0 12px;line-height:1.6;font-size:.95rem;color:var(--text-primary)}.about-card p:last-child{margin-bottom:0}.muted-text{color:var(--text-secondary)!important;font-size:.9rem!important}.muted-text.small{font-size:.85rem!important;margin-top:16px!important}.privacy-content{display:flex;flex-direction:column;gap:12px}.credits-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.credits-list li{display:flex;flex-direction:column;gap:2px}.credit-role{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-weight:600}.credit-name{font-weight:600;font-size:1rem}.credit-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--primary-color);text-decoration:none;margin-top:4px;font-weight:500}.contact-buttons{display:flex;gap:12px;margin-top:20px}.contact-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;border-radius:16px;text-decoration:none;transition:all .2s;border:1px solid transparent}.contact-btn:active{transform:scale(.98)}.contact-btn.discord{background:#5865f2;color:#fff;box-shadow:0 4px 12px #5865f24d}.contact-btn.email{background:var(--surface-color);border-color:var(--glass-border);color:var(--text-primary)}.btn-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.btn-title{font-weight:700;font-size:1rem}.contact-btn small{font-size:.8rem;opacity:.9}.about-footer{text-align:center;margin-top:auto;padding-top:20px}.about-footer p{margin:0;font-size:.9rem;color:var(--text-secondary)}.about-footer .version{font-size:.8rem;opacity:.7;margin-top:4px;font-family:monospace}.settings-container{padding:20px 20px 80px;max-width:600px;margin:0 auto;color:var(--text-primary)}.settings-header{margin-bottom:24px;text-align:center}.settings-header h2{font-size:24px;font-weight:700;margin-bottom:8px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.settings-header p{color:var(--text-secondary);font-size:14px}.settings-section{margin-bottom:24px}.settings-section h3{font-size:14px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px;padding-left:4px;letter-spacing:.5px}.settings-card{background:var(--card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:16px;border:1px solid var(--card-border);box-shadow:0 4px 20px #0000000d;overflow:hidden}.settings-item{display:flex;align-items:center;padding:16px;border-bottom:1px solid var(--item-border);transition:background-color .2s ease}.settings-item:last-child{border-bottom:none}.settings-item.clickable{cursor:pointer}.settings-item.clickable:active{background-color:var(--item-active-bg)}.settings-icon-wrapper{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-right:16px;flex-shrink:0}.icon-blue{background:#007aff1a;color:#007aff}.icon-purple{background:#5856d61a;color:#5856d6}.icon-orange{background:#ff95001a;color:#ff9500}.settings-content{flex:1;display:flex;flex-direction:column}.settings-label{font-size:16px;font-weight:500;color:var(--text-primary)}.settings-value{font-size:13px;color:var(--text-secondary);margin-top:2px}.settings-actions{display:flex;gap:8px}.lang-btn{padding:6px 12px;border-radius:8px;border:1px solid var(--btn-border);background:transparent;font-size:13px;font-weight:600;color:var(--btn-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.lang-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 2px 8px #003da54d}.theme-badge{padding:4px 10px;background:var(--badge-bg);border-radius:6px;font-size:12px;font-weight:500;color:var(--badge-text)}.chevron-icon{color:var(--text-secondary);opacity:.5}.settings-footer{text-align:center;margin-top:32px;color:var(--text-secondary);font-size:12px;opacity:.6}@media(max-width:480px){.settings-item{flex-wrap:wrap}.settings-content{min-width:120px}.settings-actions{width:100%;margin-top:12px;justify-content:space-between}.lang-btn{flex:1;padding:8px 4px;font-size:12px}}.weather-widget{display:flex;align-items:center;gap:12px;background:var(--surface-color);padding:10px 16px;border-radius:16px;border:1px solid var(--glass-border);color:var(--text-primary);width:fit-content;margin-top:0;box-shadow:0 2px 8px #0000000d;transition:all .2s ease}.weather-widget:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a;border-color:var(--primary-color)}.weather-main{display:flex;align-items:center;gap:8px}.weather-temp{font-size:1.5rem;font-weight:700;line-height:1;color:var(--text-primary)}.weather-info{display:flex;flex-direction:column;line-height:1.1}.weather-location{font-size:.75rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.weather-desc{font-size:.85rem;font-weight:500;color:var(--text-primary)}.weather-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.weather-icon.sun{color:#f59e0b}.weather-icon.cloud{color:#9ca3af}.weather-icon.rain{color:#3b82f6}.weather-icon.storm{color:#ef4444}.weather-icon.snow{color:#60a5fa}.weather-icon.fog{color:#6b7280}.weather-widget.loading{justify-content:center;min-width:140px;height:54px}.weather-spinner{width:24px;height:24px;border:3px solid var(--glass-border);border-top-color:var(--primary-color);border-radius:50%;animation:weather-spin 1s linear infinite}@keyframes weather-spin{to{transform:rotate(360deg)}}.weather-details-container{color:#fff;padding:20px;background:linear-gradient(180deg,#1e3a8a,#172554);min-height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.weather-header{display:flex;flex-direction:column;align-items:center;margin-bottom:32px;padding-top:20px}.weather-location-name{font-size:2rem;font-weight:500;margin-bottom:4px;color:#fff}.current-temp{font-size:6rem;font-weight:200;line-height:1;margin-bottom:4px}.current-condition{font-size:1.2rem;font-weight:500;opacity:.9;margin-bottom:4px}.high-low{font-size:1.1rem;font-weight:500}.weather-section{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:16px;margin-bottom:16px;border:1px solid rgba(255,255,255,.15)}.section-title{font-size:.8rem;text-transform:uppercase;opacity:.7;margin-bottom:12px;display:flex;align-items:center;gap:6px;font-weight:600}.hourly-scroll{display:flex;overflow-x:auto;gap:24px;padding-bottom:8px;padding-left:4px;padding-right:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.hourly-scroll::-webkit-scrollbar{display:none}.hourly-item{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:40px}.hour-time{font-size:.9rem;font-weight:600}.hour-temp{font-size:1.1rem;font-weight:600}.daily-list{display:flex;flex-direction:column;gap:12px}.daily-item{display:flex;align-items:center;justify-content:space-between;height:36px}.weather-day-name{width:50px;font-weight:600;font-size:1rem}.day-icon{width:30px;display:flex;justify-content:center}.day-temps{flex:1;display:flex;align-items:center;gap:12px;margin-left:12px}.temp-val{width:30px;text-align:center;font-weight:600;font-size:1rem}.temp-val.low{opacity:.7}.temp-bar-container{flex:1;height:4px;background:#0003;border-radius:2px;position:relative;overflow:hidden}.temp-bar{position:absolute;height:100%;background:linear-gradient(90deg,#60a5fa,#fcd34d);border-radius:2px}.weather-icon.sun{color:#fcd34d}.weather-icon.moon,.weather-icon.cloud{color:#e5e7eb}.weather-icon.rain{color:#93c5fd}.weather-icon.storm{color:#fca5a5}.weather-icon.snow{color:#f3f4f6}.weather-icon.fog{color:#d1d5db}.weather-details-loading{display:flex;justify-content:center;align-items:center;height:300px;color:#fff}.spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.fc-container{padding:16px 16px 80px}.fc-loading{display:flex;justify-content:center;align-items:center;height:200px;color:var(--text-secondary)}.fc-description{color:var(--text-secondary);margin-bottom:24px;font-size:.95rem;line-height:1.5;text-align:center}.fc-list{display:flex;flex-direction:column;gap:12px}.fc-course-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px;background-color:var(--primary-color);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;text-decoration:none;color:#fff}.fc-course-btn:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.fc-course-info{display:flex;flex-direction:column;gap:4px}.fc-course-code{font-weight:600;font-size:1.1rem;color:#fff}.fc-course-title{font-size:.9rem;color:#ffffffe6;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical}.fc-icon{color:#fff;flex-shrink:0;margin-left:12px}.fc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;text-align:center;color:var(--text-secondary)}.fc-empty-icon{margin-bottom:16px;opacity:.5}.fc-empty-sub{font-size:.9rem;margin-top:8px;opacity:.8}@media(min-width:768px){.fc-container{max-width:800px;margin:0 auto;padding-bottom:24px}.fc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.fc-course-btn{height:100%}}.cd-container{padding:16px 16px 80px;max-width:1200px;margin:0 auto}.cd-loading,.cd-error{display:flex;flex-direction:column;justify-content:center;align-items:center;height:300px;color:var(--text-secondary);gap:16px;text-align:center}.cd-retry-btn{padding:8px 16px;background-color:var(--primary-color);color:#fff;border:none;border-radius:8px;cursor:pointer}.cd-header{margin-bottom:24px;text-align:center;position:sticky;top:0;z-index:100;background-color:var(--bg-color);padding-top:16px;padding-bottom:16px}.cd-description{color:var(--text-secondary);margin-bottom:16px;font-size:.95rem;text-align:center;padding:0 16px}.cd-search-wrapper{position:relative;max-width:600px;margin:0 auto}.cd-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);opacity:.7}.cd-search-input{width:100%;padding:12px 40px;border-radius:24px;border:1px solid var(--border-color);background-color:var(--bg-color);color:var(--text-primary);font-size:1rem;outline:none;transition:all .2s}.cd-search-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #003da51a}.cd-search-input.small{padding:8px 36px;font-size:.9rem}.cd-clear-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.cd-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:640px){.cd-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.cd-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.cd-grid{grid-template-columns:repeat(4,1fr)}}.cd-card{background-color:var(--surface-color);border-radius:16px;overflow:hidden;box-shadow:0 4px 12px #0000000d;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.cd-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.cd-card-header{background-color:var(--primary-color);color:#fff;padding:12px 16px}.cd-card-header h5{margin:0;font-size:1.1rem;font-weight:600}.cd-card-body{padding:16px;flex:1}.cd-meta{font-size:.85rem;color:var(--text-secondary);margin-bottom:8px}.cd-difficulty{font-weight:600;color:var(--text-primary);margin-bottom:8px}.cd-progress-bg{height:6px;background-color:var(--border-color);border-radius:3px;overflow:hidden}.cd-progress-bg.small{height:4px;margin-top:4px}.cd-progress-bar{height:100%;background-color:#dc2626;border-radius:3px}.cd-no-data{color:var(--text-secondary);font-size:.9rem;font-style:italic}.cd-card-footer{padding:12px 16px;background-color:var(--item-active-bg);border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px}.cd-btn{width:100%;padding:8px;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:opacity .2s}.cd-btn:hover{opacity:.9}.cd-btn-primary{background-color:var(--primary-color);color:#fff}.cd-btn-secondary{background-color:var(--primary-color);color:#fff;opacity:.9}.cd-see-also-btn{background:none;border:none;padding:0;color:var(--primary-color);font-size:.9rem;font-style:italic;cursor:pointer;text-decoration:underline;display:inline-flex;align-items:center;transition:opacity .2s}.cd-see-also-btn:hover{opacity:.8}.cd-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cd-modal{background-color:var(--surface-color);width:100%;max-width:600px;max-height:80vh;border-radius:16px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.cd-modal-header{padding:16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.cd-modal-header h3{margin:0;font-size:1.2rem;color:var(--text-primary)}.cd-close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.cd-modal-body{padding:16px;overflow-y:auto}.cd-reviews-list{display:flex;flex-direction:column;gap:16px}.cd-review-item{padding-bottom:16px;border-bottom:1px dashed var(--border-color)}.cd-review-item:last-child{border-bottom:none}.cd-review-text{margin-bottom:8px;color:var(--text-primary);font-size:.95rem;line-height:1.5}.cd-review-text strong{display:block;margin-bottom:4px;color:var(--text-primary)}.cd-review-meta{margin-top:8px;margin-bottom:8px}.cd-review-rating{font-size:.9rem;font-weight:600;color:var(--text-primary)}.cd-review-date{font-size:.85rem;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.cd-no-reviews{text-align:center;color:var(--text-secondary);padding:24px;font-style:italic}.mb-3{margin-bottom:16px}.cd-promo-alert{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:12px;padding:16px;margin-bottom:24px;display:flex;gap:16px;align-items:flex-start}.cd-promo-icon{color:#3b82f6;flex-shrink:0;margin-top:2px}.cd-promo-content{flex:1;font-size:.95rem;color:var(--text-primary)}.cd-promo-content strong{display:block;margin-bottom:4px;color:#3b82f6}.cd-promo-content p{margin:4px 0;line-height:1.5}.cd-promo-content a{color:#3b82f6;text-decoration:underline}.cd-promo-note{font-size:.85rem;color:var(--text-secondary);margin-top:8px!important;font-style:italic}.cd-promo-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;margin-left:auto;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.cd-promo-close:hover{background-color:#0000000d;color:var(--text-primary)}.home-container{padding:16px 16px 100px;max-width:600px;margin:0 auto}.migration-alert{background:rgba(var(--primary-rgb),.1);border:1px solid var(--primary-color);border-radius:16px;padding:16px;margin-bottom:24px;display:flex;flex-direction:column;gap:12px}.migration-alert-content{display:flex;gap:12px;align-items:flex-start}.migration-alert-content svg{color:var(--primary-color);flex-shrink:0;margin-top:2px}.migration-alert-content h4{margin:0 0 4px;color:var(--primary-color)}.migration-alert-content p{margin:0;font-size:.9rem;color:var(--text-secondary)}.migration-alert button{background:var(--primary-color);color:#fff;border:none;padding:10px;border-radius:8px;font-weight:600;cursor:pointer;transition:opacity .2s}.migration-alert button:active{opacity:.8}.home-review-alert{background:linear-gradient(135deg,#f93,#fc3);border-radius:16px;padding:20px;margin-bottom:24px;position:relative;color:#fff;box-shadow:0 4px 15px #ff99334d}.review-close-btn{position:absolute;top:12px;right:12px;background:#fff3;border:none;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.review-close-btn:hover{background:#ffffff4d}.review-alert-content{display:flex;gap:16px;align-items:flex-start;margin-bottom:16px}.review-icon-circle{background:#fff3;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.review-text h4{margin:0 0 4px;font-size:1.1rem;font-weight:700}.review-text p{margin:0 0 8px;font-size:.95rem;opacity:.95;line-height:1.4}.review-note{font-size:.8rem;opacity:.8;font-style:italic;display:block}.review-action-btn{display:block;background:#fff;color:#d97706;text-align:center;padding:12px;border-radius:12px;font-weight:700;text-decoration:none;transition:transform .2s}.review-action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.welcome-wrap{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-start}.welcome-wrap h4{font-size:1.5rem;font-weight:700;margin:0 0 4px;color:var(--text-primary)}.welcome-sub{color:var(--text-secondary);font-size:.95rem}.next-class-section{margin-bottom:32px}.no-class-msg{font-size:1.1rem;font-weight:600;color:var(--text-primary);padding:16px;background:var(--surface-color);border-radius:16px;border:1px solid var(--glass-border);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.no-class-msg p{margin:0}.load-courses-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--primary-color);color:#fff;border:none;border-radius:12px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s;margin-top:4px}.load-courses-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb33}.next-class-card{background:var(--surface-color);border:1px solid var(--glass-border);border-radius:16px;padding:16px;box-shadow:0 4px 6px -1px #0000001a}.next-class-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--primary-color);margin-bottom:8px}.next-class-info h3{margin:0 0 4px;font-size:1.1rem}.next-class-time{color:var(--text-secondary);font-size:.9rem;margin-bottom:12px;display:flex;align-items:center;gap:4px}.next-class-countdown{display:inline-block;background:#fbbf2426;color:#d97706;font-weight:700;font-size:.85rem;padding:4px 8px;border-radius:8px;margin-top:4px;margin-bottom:12px;border:1px solid rgba(251,191,36,.3)}@media(prefers-color-scheme:dark){.next-class-countdown{background:#fbbf241a;color:#fbbf24;border-color:#fbbf2433}}.view-class-btn{width:100%;padding:10px;background:#2563eb1a;color:var(--primary-color);border:none;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s}.view-class-btn:hover{background:#2563eb33}.tile-container{display:flex;flex-direction:column;gap:16px}.tile-card{background:var(--surface-color);border:1px solid var(--glass-border);border-radius:16px;padding:16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .2s;text-align:left;text-decoration:none;color:inherit}.tile-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d;border-color:var(--primary-color)}.tile-content{flex:1;padding-right:12px;min-width:0}.tile-content h6{font-size:.95rem;font-weight:600;margin:0;color:var(--text-primary);display:flex;align-items:center;gap:12px;line-height:1.3}.tile-content h6 svg{flex-shrink:0}.tile-action-btn{width:36px;height:36px;border-radius:50%;background:var(--primary-color);color:#fff;border:none;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.tile-card:hover .tile-action-btn{transform:scale(1.1)}.bottom-buttons{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;justify-content:center}.btn-secondary{padding:10px 20px;background:var(--surface-color);border:1px solid var(--glass-border);border-radius:12px;color:var(--text-primary);font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.btn-secondary:hover{background:#0000000d}.map-choice-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-choice-modal{background:var(--surface-color);padding:24px;border-radius:20px;width:90%;max-width:320px;text-align:center;box-shadow:0 10px 25px #0003}.map-choice-modal h3{margin:0 0 16px}.map-choice-btns{display:flex;flex-direction:column;gap:12px}.map-btn{padding:14px;border-radius:12px;border:none;font-weight:600;cursor:pointer;font-size:1rem;display:block;width:100%;text-align:center;text-decoration:none;box-sizing:border-box}.map-btn.primary{background:var(--primary-color);color:#fff}.map-btn.outline{background:transparent;border:2px solid var(--primary-color);color:var(--primary-color)}.map-btn.cancel{background:transparent;color:var(--text-secondary);font-size:.9rem;margin-top:8px}@media(min-width:768px){.home-container{max-width:1200px;margin:0 auto;padding:24px}.tile-container{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.welcome-wrap h4{font-size:2rem}}@media(min-width:1024px){.tile-container{grid-template-columns:repeat(3,1fr)}.next-class-card{display:block;padding:24px}.next-class-info{display:flex;align-items:center;justify-content:space-between;width:100%}.next-class-details{flex:1}.view-class-btn{width:auto;padding:12px 24px;margin-left:24px}}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:var(--surface-color);border:1px solid var(--glass-border);padding:12px 24px;border-radius:50px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-lg);z-index:1000;animation:toast-slideUp .3s ease-out;min-width:200px;justify-content:center}.toast span{font-size:14px;font-weight:500;color:var(--text-primary)}.toast-success{border-color:#10b981}.toast-success svg{color:#10b981}.toast-error{border-color:#ef4444}.toast-error svg{color:#ef4444}.toast-info{border-color:var(--primary-color)}.toast-info svg{color:var(--primary-color)}@keyframes toast-slideUp{0%{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%);opacity:1}}.tasks-page{padding:16px;max-width:800px;margin:0 auto}.tasks-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.tasks-header h2{margin:0;font-size:24px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.tasks-actions{display:flex;gap:12px}.tasks-action-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--glass-border);background:var(--surface-color);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.tasks-action-btn:hover{background:var(--item-active-bg);transform:translateY(-2px)}.tasks-action-btn.spinning svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tasks-loading-state,.tasks-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0;text-align:center;color:var(--text-secondary)}.tasks-empty-state h3{margin-top:16px;margin-bottom:8px;color:var(--text-primary)}.tasks-text-success{color:#10b981}.task-group{margin-bottom:32px}.task-group h3{font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:12px;padding-left:4px}.task-list{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:768px){.task-list{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}}.task-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:16px;padding:16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s}.task-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d;border-color:var(--primary-color)}.task-card-left{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.course-badge{padding:4px 8px;border-radius:6px;color:#fff;font-size:11px;font-weight:700;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.2)}.course-badge.large{font-size:14px;padding:6px 12px;border-radius:8px}.task-info{flex:1;min-width:0}.task-info h4{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-time{font-size:12px;color:var(--text-secondary)}.task-arrow{color:var(--text-secondary);opacity:.5}.url-config-content{padding:16px}.tasks-info-card{background:#2563eb1a;border-radius:12px;padding:16px;display:flex;gap:12px;margin-bottom:24px}.tasks-info-card p{margin:0;font-size:14px;color:var(--text-primary);line-height:1.5}.tasks-info-card-text{display:flex;flex-direction:column;gap:12px;flex:1}.canvas-btn{width:fit-content;gap:8px;font-size:13px;padding:8px 16px}.tasks-url-form{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.tasks-url-form input{padding:12px;border-radius:12px;border:1px solid var(--item-border);background:var(--bg-color);color:var(--text-primary);font-size:16px}.tasks-url-form input:focus{outline:none;border-color:var(--primary-color)}.tasks-privacy-note{font-size:13px;color:var(--text-secondary)}.tasks-privacy-note h4{color:var(--text-primary);margin-bottom:8px}.tasks-privacy-note ul{padding-left:20px;margin:0}.tasks-privacy-note li{margin-bottom:4px}.task-detail-content{padding:20px 20px 100px;max-width:800px;margin:0 auto}.task-detail-header{margin-bottom:32px;text-align:center}.task-detail-header h2{margin:16px 0 8px;font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.3}.tasks-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px}.tasks-meta-item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:16px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.tasks-meta-item svg{color:var(--primary-color);opacity:.8}.tasks-meta-item label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-weight:600}.tasks-meta-item p{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.tasks-description{background:var(--surface-color);border:1px solid var(--item-border);border-radius:16px;padding:20px}.tasks-description label{display:block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--item-border)}.tasks-markdown-body{font-size:15px;line-height:1.7;color:var(--text-primary)}.tasks-markdown-body p{margin-bottom:16px}.tasks-markdown-body a{color:var(--primary-color);text-decoration:none;font-weight:500}.tasks-markdown-body ul,.tasks-markdown-body ol{padding-left:20px;margin-bottom:16px}.tasks-footer{position:fixed;bottom:0;left:0;right:0;padding:20px;background:var(--surface-color);border-top:1px solid var(--glass-border);z-index:100;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.tasks-full-width{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;padding:16px;border-radius:16px;font-size:16px;font-weight:600;box-shadow:0 4px 12px rgba(var(--primary-rgb),.2)}.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top{left:50%;top:0;transform:translate(-50%)}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-right{right:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{left:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media(-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:initial;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media(-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:initial}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M3.3335 11.6666C3.3335 12.5871 4.07969 13.3333 5.00016 13.3333C5.92064 13.3333 6.66683 12.5871 6.66683 11.6666L6.66683 6.66659L11.6668 6.66659C12.5873 6.66659 13.3335 5.92039 13.3335 4.99992C13.3335 4.07944 12.5873 3.33325 11.6668 3.33325H3.3335V11.6666Z' fill='currentColor'/%3E%3Cpath d='M26.6668 11.6666C26.6668 12.5871 25.9206 13.3333 25.0002 13.3333C24.0797 13.3333 23.3335 12.5871 23.3335 11.6666L23.3335 6.66659L18.3335 6.66659C17.413 6.66659 16.6668 5.92039 16.6668 4.99992C16.6668 4.07944 17.413 3.33325 18.3335 3.33325H26.6668L26.6668 11.6666Z' fill='currentColor'/%3E%3Cpath d='M13.3335 24.9999C13.3335 25.9204 12.5873 26.6666 11.6668 26.6666H3.3335V18.3333C3.3335 17.4128 4.07969 16.6666 5.00016 16.6666C5.92064 16.6666 6.66683 17.4128 6.66683 18.3333V23.3333H11.6668C12.5873 23.3333 13.3335 24.0794 13.3335 24.9999Z' fill='currentColor'/%3E%3Cpath d='M18.3335 26.6666C17.413 26.6666 16.6668 25.9204 16.6668 24.9999C16.6668 24.0794 17.413 23.3333 18.3335 23.3333H23.3335V18.3333C23.3335 17.4128 24.0797 16.6666 25.0002 16.6666C25.9206 16.6666 26.6668 17.4128 26.6668 18.3333V26.6666H18.3335Z' fill='currentColor'/%3E%3C/svg%3E");background-size:26px 26px}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle.mapboxgl-ctrl-level-button-selected .mapboxgl-ctrl-icon{filter:invert(1) brightness(1)}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media(-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:initial;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;box-sizing:initial;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid #0000;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:initial;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:#000000b3;color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-ctrl-separator{background-color:#e0e0e0;height:1px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button{color:#333;font-size:18px;font-weight:700;height:50px;width:50px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:hover{background-color:#f5f5f5}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected{background-color:#4a5568;color:#fff}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover{background-color:#2d3748}.mapbox-container{width:100%;height:100%;position:absolute;top:0;left:0}.mapbox-marker-container{display:flex;flex-direction:column;align-items:center;cursor:pointer;transform:translate(-50%,-100%)}.marker-pin{width:24px;height:24px;background-color:#003da5;border:2px solid white;border-radius:50%;box-shadow:0 2px 4px #0000004d;position:relative;transition:transform .2s ease}.marker-pin.ev-marker{background-color:#22c55e}.marker-pin:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #003DA5}.marker-pin.ev-marker:after{border-top-color:#22c55e}.marker-label{background:#ffffffe6;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600;color:#0f172a;margin-top:4px;white-space:nowrap;box-shadow:0 1px 3px #0003;pointer-events:none;opacity:1;transition:opacity .2s ease;text-shadow:0 0 2px white}.mapbox-marker-container:hover .marker-pin{transform:scale(1.1);z-index:10}.mapbox-marker-container:hover .marker-label{opacity:1!important;z-index:10}.details-content{background:var(--bg-color);min-height:100%}.location-details-drawer{display:none}.drawer-handle{width:40px;height:4px;background:#0003;border-radius:2px;margin:12px auto;cursor:pointer}.close-btn{position:absolute;top:16px;right:16px;background:#00000080;border-radius:50%;padding:8px;z-index:10;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center}.image-container{position:relative;width:100%;height:220px}.location-image{width:100%;height:100%;object-fit:cover}.location-image-placeholder{width:100%;height:100%;background:var(--bg-color);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.category-badge{position:absolute;bottom:16px;left:24px;padding:6px 16px;background:var(--primary-color);color:#fff;border-radius:100px;font-size:.875rem;font-weight:600;box-shadow:0 2px 8px #0003}.info-container{padding:24px}.location-name{margin:0 0 4px;font-size:1.75rem;color:var(--text-primary);font-weight:700;line-height:1.2}.location-building{color:var(--text-secondary);margin:0 0 24px;font-size:1rem}.action-buttons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:12px;margin-bottom:32px}.action-btn{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:.75rem;color:var(--text-secondary);background:var(--bg-color);padding:12px;border-radius:16px;border:1px solid var(--glass-border);transition:transform .2s}.action-btn:active{transform:scale(.95)}.btn-icon{width:40px;height:40px;border-radius:50%;background:var(--surface-color);display:flex;align-items:center;justify-content:center;color:var(--primary-color);box-shadow:0 2px 8px #0000000d}.apple-maps .btn-icon{background:#000;color:#fff}.google-maps .btn-icon{background:#4285f4;color:#fff}.alert-box{background:#ec48991a;border:1px solid var(--accent-color);color:var(--accent-color);padding:16px;border-radius:12px;margin-bottom:24px;font-size:.9rem}.info-section{margin-bottom:24px}.info-section h3{display:flex;align-items:center;gap:8px;font-size:1.1rem;margin:0 0 12px;color:var(--text-primary);font-weight:600}.hours-list p{margin:4px 0;color:var(--text-secondary);font-size:.95rem}.distances-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.distance-item{background:var(--bg-color);padding:12px;border-radius:12px;display:flex;flex-direction:column}.distance-item .label{font-size:.8rem;color:var(--text-secondary)}.distance-item .value{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.report-btn{display:block;width:100%;padding:16px;background:#ef4444;color:#fff;text-align:center;border-radius:16px;font-weight:600;margin-top:32px;box-shadow:0 4px 12px #ef44444d}.map-controls{position:absolute;top:16px;left:16px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.map-controls>*{pointer-events:auto}@media(min-width:768px){.map-controls{width:400px;left:24px;right:auto}}.search-container{border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-color);box-shadow:var(--shadow-lg)}.search-bar{position:relative;width:100%;display:flex;align-items:center}.search-icon{position:absolute;left:16px;color:var(--text-secondary)}.search-bar input{width:100%;padding:16px 48px;border:none;background:transparent;color:var(--text-primary);font-size:1rem;outline:none}.clear-search{position:absolute;right:16px;color:var(--text-secondary);padding:4px;display:flex;align-items:center;justify-content:center}.search-results{max-height:300px;overflow-y:auto;border-top:1px solid var(--glass-border)}.search-result-item{width:100%;padding:12px 16px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:transparent;border-bottom:1px solid var(--glass-border);transition:background .2s}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:#0000000d}.result-name{font-weight:600;color:var(--text-primary);font-size:.95rem}.result-category{font-size:.8rem;color:var(--text-secondary)}.custom-dropdown-container{position:relative;width:100%}.dropdown-trigger{width:100%;padding:16px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:space-between;background:var(--surface-color);color:var(--text-primary);font-size:1rem;font-weight:500;box-shadow:var(--shadow-lg);transition:all .2s}.dropdown-trigger:active{transform:scale(.98)}.dropdown-arrow{color:var(--text-secondary);transition:transform .3s ease}.dropdown-arrow.rotate{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:300px;overflow-y:auto;z-index:1100;padding:8px;display:flex;flex-direction:column;gap:4px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{width:100%;padding:12px 16px;text-align:left;border-radius:var(--radius-md);color:var(--text-secondary);font-size:.95rem;transition:all .2s}.dropdown-item:hover{background:#0000000d;color:var(--text-primary)}.dropdown-item.active{background:var(--primary-color);color:#fff;font-weight:600}.category-dropdown-container{border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-color);box-shadow:var(--shadow-lg);position:relative}.category-select{width:100%;padding:12px 16px;border:none;background:transparent;color:var(--text-primary);font-size:.95rem;font-weight:500;outline:none;appearance:none;-webkit-appearance:none;cursor:pointer}.category-dropdown-container:after{content:"▼";font-size:.8rem;color:var(--text-secondary);position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none}.map-page{position:fixed;top:calc(var(--header-height) + env(safe-area-inset-top));left:0;right:0;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));width:100%;height:auto;overflow:hidden;overscroll-behavior:none;z-index:1;background:var(--bg-color)}@media(min-width:768px){.map-page{bottom:0}}.map-container{width:100%;height:100%;z-index:0;position:absolute;top:0;left:0}.loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2000;background:var(--bg-color)}.spinner{width:40px;height:40px;border:4px solid rgba(0,0,0,.1);border-left-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.app-loading-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--bg-color);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .3s ease}.app-loading-content{display:flex;flex-direction:column;align-items:center;gap:24px}.app-logo-spinner{position:relative;width:64px;height:64px}.spinner-ring{position:absolute;top:0;left:0;width:100%;height:100%;border:3px solid transparent;border-top-color:var(--primary-color);border-right-color:var(--secondary-color);border-radius:50%;animation:loading-spin 1s linear infinite}.spinner-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40%;height:40%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:50%;box-shadow:0 0 20px #003da54d;animation:loading-pulse 2s ease-in-out infinite}.app-loading-title{font-size:24px;font-weight:700;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;opacity:0;animation:fadeIn .5s ease forwards .2s}@keyframes loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loading-pulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:.8}50%{transform:translate(-50%,-50%) scale(1.1);opacity:1}to{transform:translate(-50%,-50%) scale(.8);opacity:.8}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
