:root{--primary-color: #62778b;--secondary-color: #364453;--accent-color: #f0a63e;--accent-strong: #ffc25c;--background-color: #1d2732;--background-elevated: #24303d;--surface-color: #3a4755;--surface-raised: #4d5d6d;--surface-muted: #2b3642;--text-color: #eaf1f7;--text-secondary: #aeb8c1;--success-color: #67be7d;--warning-color: #f0a63e;--error-color: #d9655f;--border-color: rgba(216, 228, 236, .12);--border-strong: rgba(216, 228, 236, .22);--border-radius: 14px;--control-radius: 10px;--transition: all .3s ease;--shadow: inset 1px 1px 0 rgba(255, 255, 255, .07), inset -1px -1px 0 rgba(0, 0, 0, .45), 0 10px 24px rgba(0, 0, 0, .28);--shadow-lg: inset 1px 1px 0 rgba(255, 255, 255, .08), inset -2px -2px 0 rgba(0, 0, 0, .52), 0 18px 36px rgba(0, 0, 0, .35);--inset-shadow: inset 3px 3px 7px rgba(0, 0, 0, .52), inset -2px -2px 3px rgba(255, 255, 255, .04);--field-shadow: inset 5px 5px 11px rgba(0, 0, 0, .64), inset -2px -2px 3px rgba(255, 255, 255, .03), 0 1px 0 rgba(255, 255, 255, .04);--display-shadow: inset 6px 6px 14px rgba(8, 14, 20, .72), inset -2px -2px 3px rgba(120, 145, 166, .06), 0 1px 0 rgba(255, 255, 255, .03);--panel-gradient: linear-gradient(180deg, #4b5a69 0%, #3b4957 52%, #313c49 100%);--well-gradient: linear-gradient(180deg, #2c3743 0%, #232d38 100%);--body-gradient: radial-gradient(circle at top, rgba(104, 127, 147, .18), transparent 32%), linear-gradient(180deg, #27323d 0%, #1c252f 100%);--panel-radius-tight: 8px}[data-theme=light]{--primary-color: #8c9aa6;--secondary-color: #64707c;--accent-color: #ca8a2d;--accent-strong: #e6b45a;--background-color: #c3ccd4;--background-elevated: #d3dbe2;--surface-color: #a6b1bb;--surface-raised: #b8c1ca;--surface-muted: #98a4af;--text-color: #15202a;--text-secondary: #44525f;--success-color: #3f8c54;--warning-color: #b9781f;--error-color: #ad4e49;--border-color: rgba(21, 32, 42, .12);--border-strong: rgba(21, 32, 42, .2);--shadow: inset 1px 1px 0 rgba(255, 255, 255, .55), inset -1px -1px 0 rgba(82, 96, 110, .18), 0 8px 18px rgba(38, 50, 56, .12);--shadow-lg: inset 1px 1px 0 rgba(255, 255, 255, .65), inset -2px -2px 0 rgba(82, 96, 110, .22), 0 14px 28px rgba(38, 50, 56, .18);--inset-shadow: inset 3px 3px 7px rgba(86, 98, 110, .18), inset -2px -2px 3px rgba(255, 255, 255, .52);--field-shadow: inset 4px 4px 8px rgba(86, 98, 110, .24), inset -2px -2px 3px rgba(255, 255, 255, .58), 0 1px 0 rgba(255, 255, 255, .45);--display-shadow: inset 5px 5px 10px rgba(86, 98, 110, .26), inset -2px -2px 3px rgba(255, 255, 255, .5), 0 1px 0 rgba(255, 255, 255, .35);--panel-gradient: linear-gradient(180deg, #c4cdd5 0%, #b0bac3 52%, #a3afb9 100%);--well-gradient: linear-gradient(180deg, #b0bac3 0%, #a3adb7 100%);--body-gradient: radial-gradient(circle at top, rgba(255, 255, 255, .42), transparent 32%), linear-gradient(180deg, #d6dde4 0%, #bcc6ce 100%);--panel-radius-tight: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-tap-highlight-color:transparent}body{font-family:Bahnschrift,Arial Narrow,Segoe UI,sans-serif;background:var(--body-gradient);color:var(--text-color);line-height:1.6;min-height:100vh;overflow-x:hidden;letter-spacing:.02em}.auth-container{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--body-gradient);display:none;align-items:center;justify-content:center;padding:1.5rem;z-index:1002}.auth-container.active{display:flex}.auth-screen{display:none;width:100%;max-width:420px}.auth-screen.active{display:block}.auth-card{background:var(--panel-gradient);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:2rem;box-shadow:var(--shadow-lg);text-align:center}.auth-title{font-size:1.5rem;margin-bottom:.5rem}.auth-subtitle{color:var(--text-secondary);margin-bottom:1.5rem}.auth-info{background:var(--well-gradient);border:1px solid var(--border-color);border-radius:var(--control-radius);box-shadow:var(--inset-shadow);padding:1rem;font-size:.9rem;color:var(--text-secondary);margin-bottom:1.5rem}.auth-info-warning{color:var(--warning-color);font-weight:600}.auth-form{display:flex;flex-direction:column;gap:.75rem;text-align:left}.auth-label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.auth-form input{padding:.75rem;border-radius:var(--control-radius);border:1px solid var(--border-color);background:var(--well-gradient);box-shadow:var(--field-shadow);color:var(--text-color);text-align:center}.auth-action{margin-top:.5rem}.auth-error{color:var(--error-color);font-size:.85rem;padding:.5rem 0}.auth-install-instructions{background-color:rgba(240,166,62,.08);border:1px solid rgba(240,166,62,.18);padding:.75rem;border-radius:var(--control-radius);font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem}iframe{max-width:100%}#app{display:flex;flex-direction:column;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;margin-bottom:.5em}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.25rem}p{margin-bottom:1em;color:var(--text-secondary)}a{color:var(--accent-color);text-decoration:none;transition:var(--transition)}a:hover{opacity:.8}.header{background:linear-gradient(180deg,rgba(86,103,120,.96),rgba(51,64,78,.96));border:1px solid var(--border-color);padding:1rem;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.header-actions{display:flex;align-items:center;gap:.75rem}.wifi-indicator{position:relative;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent-strong);border-radius:999px;background:var(--well-gradient);border:1px solid var(--border-color);box-shadow:var(--inset-shadow)}.wifi-indicator svg{width:20px;height:20px}.wifi-indicator .wifi-slash{position:absolute;width:2px;height:22px;background-color:currentColor;transform:rotate(-45deg);border-radius:999px;opacity:0;transition:var(--transition)}.wifi-indicator.offline .wifi-slash{opacity:1}.logo{font-size:1.5rem;font-weight:700;color:var(--accent-strong);letter-spacing:.16em;margin:0;text-shadow:0 1px 0 rgba(0,0,0,.45)}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:var(--well-gradient);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;padding:.55rem;z-index:101;box-shadow:var(--inset-shadow)}.menu-toggle span{display:block;width:24px;height:2px;background-color:var(--text-secondary);border-radius:2px;transition:var(--transition)}.menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.nav{background:linear-gradient(180deg,rgba(61,75,89,.98),rgba(44,56,68,.98));border-bottom:1px solid var(--border-color);position:fixed;top:60px;left:0;right:0;transform:translateY(-100%);opacity:0;transition:var(--transition);z-index:99;box-shadow:var(--shadow)}.nav.active{transform:translateY(0);opacity:1}.nav-list{list-style:none;padding:1rem;max-width:1200px;margin:0 auto}.nav-link{display:block;padding:1rem;color:var(--text-color);border-radius:var(--control-radius);transition:var(--transition);border:1px solid transparent}.nav-link:hover,.nav-link.active{background:var(--well-gradient);border-color:var(--border-color);box-shadow:var(--inset-shadow);color:var(--accent-strong)}.main{flex:1;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%}.container{width:100%}.page{display:none;animation:fadeIn .3s ease}.page.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.home-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.5rem 0;max-width:560px;margin:0 auto}.home-warning{margin:0 auto;padding:.9rem 1rem;max-width:560px;border-radius:12px;background:linear-gradient(180deg,rgba(100,58,40,.32),rgba(66,40,31,.42));border:1px solid rgba(240,166,62,.34);color:#ffd392;box-shadow:var(--inset-shadow);font-size:.85rem;font-weight:600;text-align:center;line-height:1.3}.home-warning-label{display:block;color:#d9655f;text-transform:uppercase;letter-spacing:.08em}.home-menu-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;aspect-ratio:1 / 1;background:transparent;border:none;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);box-shadow:none;text-align:center;position:relative;isolation:isolate;z-index:0}.home-menu-btn:hover,.home-menu-btn:active{transform:none}.home-menu-btn:focus,.home-menu-btn:focus-visible{outline:none}.home-menu-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--border-radius);background:linear-gradient(180deg,#1f2932,#18212a);box-shadow:inset 10px 10px 18px rgba(6,12,18,.74),inset -2px -2px 4px rgba(103,123,141,.04),0 0 0 1px rgba(86,105,121,.22);z-index:-2}.home-menu-btn:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:calc(var(--border-radius) - 8px);background:linear-gradient(180deg,#3f4b58,#2f3b47);box-shadow:inset 1px 1px rgba(255,255,255,.1),inset -1px -1px rgba(0,0,0,.34),0 0 0 1px rgba(116,134,149,.18);z-index:-1}.home-menu-btn:hover:after,.home-menu-btn:focus:after,.home-menu-btn:focus-visible:after{background:linear-gradient(180deg,#465360,#34414d);box-shadow:inset 1px 1px rgba(255,255,255,.11),inset -1px -1px rgba(0,0,0,.38),0 0 0 1px rgba(154,121,62,.22)}.home-menu-btn:active:after{top:9px;right:9px;bottom:9px;left:9px;background:linear-gradient(180deg,#384450,#2a3540);box-shadow:inset 2px 2px 4px rgba(0,0,0,.32),inset -1px -1px rgba(255,255,255,.04),0 0 0 1px rgba(96,113,127,.16)}.home-menu-icon{color:var(--accent-strong);display:flex;align-items:center;justify-content:center}.home-menu-label{font-size:1.25rem;font-weight:700;color:var(--text-color);letter-spacing:.14em;text-shadow:0 1px 0 rgba(0,0,0,.4)}@media (max-width: 520px){.home-menu{gap:.75rem;padding:1rem 0 .5rem}.home-menu-btn{padding:1rem;gap:.75rem}.home-menu-label{font-size:1rem;letter-spacing:.08em}}.placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;min-height:50vh}.placeholder-icon{color:var(--text-secondary);margin-bottom:1.5rem;opacity:.5}.placeholder-text{font-size:1.25rem;color:var(--text-secondary);margin-bottom:2rem}.placeholder-content .btn{max-width:200px}.directory-search{margin-top:1.5rem;background:var(--panel-gradient);border:1px solid var(--border-color);padding:1.25rem;border-radius:var(--border-radius);box-shadow:var(--shadow)}.directory-label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.directory-input{width:100%;padding:.9rem 1rem;border:1px solid var(--border-color);border-radius:var(--control-radius);background:var(--well-gradient);box-shadow:var(--field-shadow);color:var(--text-color);font-size:1rem;transition:var(--transition)}.directory-input:focus{outline:none;border-color:var(--accent-color)}.directory-dropdown{margin-top:.75rem;border-radius:var(--control-radius);overflow:hidden;display:none;border:1px solid var(--border-color);background:var(--well-gradient);box-shadow:var(--inset-shadow);max-height:360px;overflow-y:auto}.directory-dropdown.open{display:block}.directory-item{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;background-color:transparent;border:none;color:var(--text-color);text-align:left;cursor:pointer;transition:var(--transition)}.directory-dropdown::-webkit-scrollbar{width:8px}.directory-dropdown::-webkit-scrollbar-track{background:rgba(255,255,255,.04)}.directory-dropdown::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:999px}.directory-item+.directory-item{border-top:1px solid rgba(255,255,255,.06)}.directory-item:hover{background-color:rgba(255,255,255,.06)}.directory-item-name{display:block;font-weight:600}.directory-item-info{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.directory-item-full-name{display:block;font-size:.82rem;color:var(--text-secondary);line-height:1.35}.directory-item-meta{display:block;font-size:.8rem;color:var(--text-secondary)}.directory-hint{margin-top:.75rem;font-size:.85rem;color:var(--text-secondary)}.stats-header{display:flex;gap:1rem;align-items:center;margin:1.5rem 0}.stats-label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.stats-select{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--control-radius);background:var(--well-gradient);box-shadow:var(--field-shadow);color:var(--text-color);font-size:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.stats-card{background:var(--panel-gradient);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:1.25rem;box-shadow:var(--shadow)}.stats-card-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:.75rem}.stats-list{display:flex;flex-direction:column;gap:.5rem;max-height:240px;overflow-y:auto}.stats-list-item{display:flex;justify-content:space-between;align-items:center;background:var(--well-gradient);border-radius:var(--control-radius);box-shadow:var(--inset-shadow);padding:.6rem .75rem;font-size:.9rem}.stats-metric{display:flex;justify-content:space-between;align-items:baseline;margin-top:.5rem;font-size:.95rem}.stats-metric strong{font-size:1.2rem;color:var(--accent-color)}.stats-note{font-size:.75rem;color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.875rem 1.5rem;border:none;border-radius:var(--border-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);width:100%;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 1px 0 rgba(0,0,0,.35);box-shadow:none;position:relative;isolation:isolate;z-index:0;background:transparent}.btn-primary{color:#f1bb59}.btn-primary:hover{color:#ffc566;transform:none}.btn-secondary{color:var(--text-color)}.btn-secondary:hover,.btn:active{transform:none}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--border-radius);background:linear-gradient(180deg,#202a33,#19222b);box-shadow:inset 8px 8px 14px rgba(8,14,20,.68),inset -2px -2px 4px rgba(120,145,166,.03),0 0 0 1px rgba(92,109,123,.2);z-index:-2}.btn:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:calc(var(--border-radius) - 5px);background:linear-gradient(180deg,#4a5562,#37424d);box-shadow:inset 1px 1px rgba(255,255,255,.1),inset -1px -1px rgba(0,0,0,.34),0 0 0 1px rgba(116,134,149,.14);z-index:-1}.btn:hover:after,.btn:focus:after,.btn:focus-visible:after{background:linear-gradient(180deg,#46525f,#343f4a);box-shadow:inset 1px 1px rgba(255,255,255,.11),inset -1px -1px rgba(0,0,0,.38),0 0 0 1px rgba(154,121,62,.18)}.btn:active:after{top:6px;right:6px;bottom:6px;left:6px;background:linear-gradient(180deg,#3c4753,#2d3842);box-shadow:inset 2px 2px 4px rgba(0,0,0,.32),inset -1px -1px rgba(255,255,255,.04),0 0 0 1px rgba(96,113,127,.14)}.hidden{display:none!important}.visually-hidden{display:none}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-top:1.5rem}.feature-card{background:var(--panel-gradient);border:1px solid var(--border-color);padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--shadow);transition:var(--transition)}.feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.feature-icon{width:48px;height:48px;margin-bottom:1rem;color:var(--accent-color)}.feature-icon svg{width:100%;height:100%}.feature-card h3{margin-bottom:.5rem}.feature-card p{margin:0;font-size:.9rem}.about-content{margin-top:1.5rem}.info-card{background:var(--panel-gradient);border:1px solid var(--border-color);padding:1.5rem;border-radius:var(--border-radius);margin-bottom:1rem;box-shadow:var(--shadow)}.info-card h3{color:var(--accent-color);margin-bottom:.5rem}.info-card ul{list-style:none;padding:0}.info-card li{padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.05);color:var(--text-secondary)}.info-card li:last-child{border-bottom:none}.settings-list{margin-top:1.5rem}.setting-item{display:flex;justify-content:space-between;align-items:center;background:var(--panel-gradient);border:1px solid var(--border-color);padding:1.25rem;border-radius:var(--border-radius);margin-bottom:1rem;box-shadow:var(--shadow)}.setting-info h3{margin-bottom:.25rem;font-size:1rem}.setting-info{flex:1;min-width:0}.setting-info p{margin:0;font-size:.85rem;word-break:break-word;overflow-wrap:break-word}.toggle{position:relative;display:inline-block;width:52px;height:28px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--well-gradient);border:1px solid var(--border-color);box-shadow:var(--inset-shadow);border-radius:28px;transition:var(--transition)}.toggle-slider:before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:linear-gradient(180deg,#e2e9ef,#a8b6c1);border-radius:50%;transition:var(--transition)}.toggle input:checked+.toggle-slider{background-color:var(--accent-color)}.toggle input:checked+.toggle-slider:before{transform:translate(24px)}.footer{background:linear-gradient(180deg,rgba(58,71,85,.92),rgba(43,54,66,.96));border-top:1px solid var(--border-color);padding:1.5rem;text-align:center;margin-top:auto}.footer p{margin:0;font-size:.875rem}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(100px);background:var(--panel-gradient);border:1px solid var(--border-color);color:var(--text-color);padding:1rem 2rem;border-radius:var(--border-radius);box-shadow:var(--shadow-lg);z-index:1000;opacity:0;transition:var(--transition)}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.toast.success{border-left:4px solid var(--success-color)}.toast.error{border-left:4px solid var(--error-color)}.toast.warning{border-left:4px solid var(--warning-color)}.update-banner{position:fixed;top:0;left:0;right:0;background:linear-gradient(180deg,#f0b75a,#cf8829);color:#15202a;padding:.75rem 1rem;display:flex;justify-content:center;align-items:center;gap:1rem;z-index:1100;font-weight:500;box-shadow:var(--shadow)}.update-banner.hidden{display:none}.update-banner .btn{padding:.4rem 1rem;font-size:.85rem;background:rgba(21,32,42,.92);color:#f8d49d}.update-banner .btn:hover{background-color:#15202a}@media (min-width: 768px){.menu-toggle{display:none}.nav{position:static;transform:none;opacity:1;background-color:transparent;box-shadow:none}.nav-list{display:flex;gap:.5rem;padding:.5rem 1rem}.nav-link{padding:.5rem 1rem}.header-content{flex-wrap:wrap}.main{padding:2rem}}@supports (padding: max(0px)){.header{padding-top:max(1rem,env(safe-area-inset-top))}.footer{padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#roster-import .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.roster-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem 1.1rem;background:var(--panel-gradient);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow)}.roster-container{position:relative}.roster-loading{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(12,18,24,.5);display:flex;align-items:center;justify-content:center;z-index:5;border-radius:var(--border-radius);backdrop-filter:blur(2px)}.roster-header h2{margin:0}.roster-actions{display:flex;gap:.5rem;align-items:stretch}.roster-actions .btn-sm{min-height:40px}.hidden-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.btn-sm{padding:.5rem 1rem;font-size:.875rem;width:auto;gap:.5rem}.btn-icon{background:transparent;border:none;color:var(--text-color);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--transition);box-shadow:none;position:relative;isolation:isolate;z-index:0}.btn-icon:hover{background:transparent}.btn-icon:active{transform:none}.btn-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:linear-gradient(180deg,#202a33,#19222b);box-shadow:inset 8px 8px 14px rgba(8,14,20,.68),inset -2px -2px 4px rgba(120,145,166,.03),0 0 0 1px rgba(92,109,123,.2);z-index:-2}.btn-icon:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:linear-gradient(180deg,#424e5b,#313c47);box-shadow:inset 1px 1px rgba(255,255,255,.1),inset -1px -1px rgba(0,0,0,.34),0 0 0 1px rgba(116,134,149,.14);z-index:-1}.btn-icon:hover:after,.btn-icon:focus:after,.btn-icon:focus-visible:after{background:linear-gradient(180deg,#46525f,#343f4a)}.btn-icon:active:after{top:5px;right:5px;bottom:5px;left:5px;background:linear-gradient(180deg,#39444f,#2b3540)}.btn-icon svg{width:24px;height:24px}.btn-danger{background:linear-gradient(180deg,#4a5562,#37424d);color:#ef8b83}.btn-danger:hover{background:linear-gradient(180deg,#44505d,#323c47);color:#ff9e96}.calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;background:var(--panel-gradient);border:1px solid var(--border-color);padding:1rem;border-radius:var(--panel-radius-tight);box-shadow:var(--shadow)}.calendar-nav h3{margin:0;font-size:1.1rem}.month-picker-trigger{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease}.month-picker-trigger:hover{color:var(--accent-color)}.month-picker-input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.calendar{background:var(--panel-gradient);border:1px solid var(--border-color);border-radius:var(--panel-radius-tight);padding:1rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem}.calendar-weekdays div{text-align:center;font-weight:600;font-size:.75rem;color:var(--text-secondary);padding:.5rem;text-transform:uppercase;background:var(--well-gradient);border:1px solid rgba(255,255,255,.04);border-radius:var(--control-radius);box-shadow:var(--display-shadow)}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--control-radius);cursor:pointer;transition:var(--transition);font-size:1.2rem;position:relative;min-height:40px;background:var(--well-gradient);border:1px solid rgba(255,255,255,.04);box-shadow:var(--display-shadow)}.calendar-day:hover{border-color:rgba(240,166,62,.28);transform:translateY(-1px)}.calendar-day.other-month{color:var(--text-secondary);opacity:.5}.calendar-day.today{background:linear-gradient(180deg,#647a90,#4c6175);color:#f4f8fb;font-weight:600}.calendar-day.today-highlight{background:linear-gradient(180deg,#af7d44,#8f6333);color:#fff4df}.calendar-day.selected{background:linear-gradient(180deg,#f2bb61,#d89231);color:#17212a;box-shadow:inset 0 1px rgba(255,244,217,.35),inset 0 -2px rgba(117,70,12,.38),0 4px 10px rgba(0,0,0,.22)}.calendar-day.today-highlight.selected{background:linear-gradient(180deg,#efbf6f,#d29338);color:#17212a}.calendar-day.has-flight{font-weight:600}.calendar-day.has-flight:after{content:"";position:absolute;bottom:1px;left:50%;transform:translate(-50%);width:10px;height:10px;background-color:var(--accent-color);border-radius:50%}.calendar-day.free-day:after{content:"";position:absolute;bottom:1px;left:50%;transform:translate(-50%);width:10px;height:10px;background-color:transparent;border:2px solid var(--success-color);border-radius:50%;box-sizing:border-box}.calendar-day.today.has-flight:after,.calendar-day.selected.has-flight:after{background-color:#fff}.calendar-day.icon-takeoff:after,.calendar-day.icon-landing:after,.calendar-day.icon-hotel:after,.calendar-day.icon-turnaround:after{width:clamp(14px,4vw,24px);height:clamp(14px,4vw,24px);bottom:0;border-radius:0;background-color:var(--accent-color);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.calendar-day.icon-takeoff:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z'/%3E%3C/svg%3E")}.calendar-day.icon-landing:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19'/%3E%3Cpath d='M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z' transform='rotate(45 12 12)'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19'/%3E%3Cpath d='M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z' transform='rotate(45 12 12)'/%3E%3C/svg%3E")}.calendar-day.icon-hotel:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19,7H11V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19,7H11V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13Z'/%3E%3C/svg%3E");background-color:var(--accent-color)!important;border:none!important}.calendar-day.icon-turnaround:after{width:clamp(16px,4.5vw,28px);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 9.74C4.46 10.97 4 12.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 9.74C4.46 10.97 4 12.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z'/%3E%3C/svg%3E")}.calendar-day.connect-right:before,.calendar-day.connect-left:before{content:"";position:absolute;bottom:4px;height:2px;background-color:var(--accent-color);width:50%;z-index:0}.calendar-day.connect-right:before{right:0}.calendar-day.connect-left:before{left:0}.calendar-day.has-flight.intermediate:after{background-color:transparent!important;border:2px solid var(--accent-color);box-sizing:border-box}.calendar-day.has-flight.intermediate.icon-hotel:after{background-color:var(--accent-color)!important;border:none!important;width:14px;height:14px;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19,7H11V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19,7H11V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13Z'/%3E%3C/svg%3E")}.calendar-day.has-flight.intermediate.duty-standby:after{border-color:var(--warning-color)}.calendar-day.has-flight.intermediate.duty-dayoff:after{border-color:var(--success-color)}.calendar-day.has-flight.intermediate.duty-training:after{border-color:#9c27b0}.calendar-day.has-flight.intermediate.duty-sick:after{border-color:var(--warning-color)}.calendar-day.has-flight.intermediate.duty-medical:after{border-color:#ec407a}.calendar-day.has-flight.intermediate.duty-vacation:after{border-color:#00bcd4}.calendar-day.has-flight.intermediate.duty-ground:after{border-color:#607d8b}.calendar-day.today.has-flight.intermediate:after,.calendar-day.selected.has-flight.intermediate:after{border-color:#fff}.calendar-day.today.icon-takeoff:after,.calendar-day.selected.icon-takeoff:after,.calendar-day.today.icon-landing:after,.calendar-day.selected.icon-landing:after,.calendar-day.today.icon-hotel:after,.calendar-day.selected.icon-hotel:after,.calendar-day.today.icon-turnaround:after,.calendar-day.selected.icon-turnaround:after{background-color:#fff!important}.calendar-day.duty-standby:after{background-color:#f5c400}.calendar-day.duty-dayoff:after{background-color:var(--success-color)}.calendar-day.duty-training:after{background-color:#9c27b0}.calendar-day.duty-sick:after{background-color:#ff7a00}.calendar-day.duty-medical:after{background-color:#ec407a}.calendar-day.duty-vacation:after{background-color:#00bcd4}.calendar-day.duty-ground:after{background-color:#607d8b}.calendar-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.5rem;padding:1.25rem 1.1rem;background:var(--panel-gradient);border:1px solid var(--border-color);border-radius:var(--panel-radius-tight);box-shadow:var(--shadow)}.auth-card,.directory-search,.stats-card,.feature-card,.info-card,.setting-item,.calendar-nav,.calendar,.calendar-legend,.day-details,.next-flight-duty,.upcoming-flights,.modal-content,.search-panel,.weather-card,.station-info-card,.flight-search-result-item{position:relative;border-radius:var(--panel-radius-tight);overflow:visible;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cdefs%3E%3CradialGradient id='g' cx='34%25' cy='34%25' r='72%25'%3E%3Cstop offset='0%25' stop-color='%23606a74'/%3E%3Cstop offset='45%25' stop-color='%23414b55'/%3E%3Cstop offset='78%25' stop-color='%232a323a'/%3E%3Cstop offset='100%25' stop-color='%23171d23'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='8' cy='8' r='7.25' fill='none' stroke='%23000000' stroke-width='0.8' opacity='0.92'/%3E%3Ccircle cx='8' cy='8' r='6.45' fill='url(%23g)' stroke='%2312191e' stroke-width='1.05'/%3E%3Cline x1='4.9' y1='11.1' x2='11.1' y2='4.9' stroke='%23101418' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cdefs%3E%3CradialGradient id='g' cx='34%25' cy='34%25' r='72%25'%3E%3Cstop offset='0%25' stop-color='%23606a74'/%3E%3Cstop offset='45%25' stop-color='%23414b55'/%3E%3Cstop offset='78%25' stop-color='%232a323a'/%3E%3Cstop offset='100%25' stop-color='%23171d23'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='8' cy='8' r='7.25' fill='none' stroke='%23000000' stroke-width='0.8' opacity='0.92'/%3E%3Ccircle cx='8' cy='8' r='6.45' fill='url(%23g)' stroke='%2312191e' stroke-width='1.05'/%3E%3Cline x1='4.9' y1='11.1' x2='11.1' y2='4.9' stroke='%23101418' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cdefs%3E%3CradialGradient id='g' cx='34%25' cy='34%25' r='72%25'%3E%3Cstop offset='0%25' stop-color='%23606a74'/%3E%3Cstop offset='45%25' stop-color='%23414b55'/%3E%3Cstop offset='78%25' stop-color='%232a323a'/%3E%3Cstop offset='100%25' stop-color='%23171d23'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='8' cy='8' r='7.25' fill='none' stroke='%23000000' stroke-width='0.8' opacity='0.92'/%3E%3Ccircle cx='8' cy='8' r='6.45' fill='url(%23g)' stroke='%2312191e' stroke-width='1.05'/%3E%3Cline x1='4.9' y1='11.1' x2='11.1' y2='4.9' stroke='%23101418' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cdefs%3E%3CradialGradient id='g' cx='34%25' cy='34%25' r='72%25'%3E%3Cstop offset='0%25' stop-color='%23606a74'/%3E%3Cstop offset='45%25' stop-color='%23414b55'/%3E%3Cstop offset='78%25' stop-color='%232a323a'/%3E%3Cstop offset='100%25' stop-color='%23171d23'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='8' cy='8' r='7.25' fill='none' stroke='%23000000' stroke-width='0.8' opacity='0.92'/%3E%3Ccircle cx='8' cy='8' r='6.45' fill='url(%23g)' stroke='%2312191e' stroke-width='1.05'/%3E%3Cline x1='4.9' y1='11.1' x2='11.1' y2='4.9' stroke='%23101418' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"),var(--panel-gradient);background-repeat:no-repeat;background-size:10px 10px,10px 10px,10px 10px,10px 10px,auto;background-position:left 4px top 4px,right 4px top 4px,left 4px bottom 4px,right 4px bottom 4px,center}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#eef5fb;text-transform:uppercase;letter-spacing:.08em}.legend-marker{display:inline-block;width:12px;height:12px}.legend-marker.dot{border-radius:50%;width:8px;height:8px}.legend-marker.standby{background-color:#f5c400}.legend-marker.dayoff{background-color:var(--success-color)}.legend-marker.sick{background-color:#ff6b00}.legend-marker.medical{background-color:#ec407a}.legend-marker.free{background-color:transparent;border:2px solid var(--success-color);box-sizing:border-box}.legend-marker.vacation{background-color:#00bcd4}.legend-marker.training{background-color:#9c27b0}.legend-marker.ground{background-color:#607d8b}.legend-marker.icon-takeoff,.legend-marker.icon-landing,.legend-marker.icon-hotel,.legend-marker.icon-turnaround{background-color:var(--accent-color);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.legend-marker.icon-takeoff{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z'/%3E%3C/svg%3E")}.legend-marker.icon-landing{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19'/%3E%3Cpath d='M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z' transform='rotate(45 12 12)'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5,19H21.5V21H2.5V19'/%3E%3Cpath d='M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.44,15.92L22.07,9.64Z' transform='rotate(45 12 12)'/%3E%3C/svg%3E")}.legend-marker.icon-hotel{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19,7H11V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19,7H11V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13Z'/%3E%3C/svg%3E")}.legend-marker.icon-turnaround{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 9.74C4.46 10.97 4 12.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 9.74C4.46 10.97 4 12.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z'/%3E%3C/svg%3E")}.day-details{border:1px solid var(--border-color);border-radius:var(--panel-radius-tight);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow);scroll-margin-top:3.5rem}.day-details h3{margin-bottom:1rem;color:#f3f7fb;text-transform:uppercase;letter-spacing:.1em;font-weight:500}.day-flights{display:flex;flex-direction:column;gap:.75rem}.flight-card{background:var(--well-gradient);border:1px solid var(--border-color);border-left:4px solid var(--accent-color);border-radius:var(--control-radius);box-shadow:var(--field-shadow);padding:1rem;cursor:pointer;transition:var(--transition)}.flight-card:hover{transform:translate(4px);border-color:rgba(240,166,62,.28)}.flight-card.standby{border-left-color:var(--warning-color)}.flight-card.dayoff{border-left-color:var(--success-color)}.flight-card.vacation{border-left-color:#00bcd4}.flight-card.training{border-left-color:#9c27b0}.flight-card.sick{border-left-color:#ff6b00}.flight-card.medical{border-left-color:#ec407a}.flight-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.flight-number{font-weight:700;font-size:1.1rem;color:var(--text-color)}.flight-aircraft{font-size:.8rem;color:var(--text-secondary);background:var(--well-gradient);border:1px solid var(--border-color);padding:.2rem .5rem;border-radius:6px;box-shadow:var(--field-shadow)}.flight-route{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.flight-airport{font-weight:600;font-size:1rem}.flight-arrow{color:var(--text-secondary);flex-shrink:0;display:flex;align-items:center}.flight-arrow svg{transform:rotate(90deg)}.flight-times{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-secondary)}.flight-times.vertical{flex-direction:column;gap:.25rem}.next-flight-duty{border:1px solid var(--border-color);border-radius:var(--panel-radius-tight);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.next-flight-duty h3{margin-bottom:1rem;color:#f3f7fb;text-transform:uppercase;letter-spacing:.1em;font-weight:500}.upcoming-flights{border:1px solid var(--border-color);border-radius:var(--panel-radius-tight);padding:1.5rem;box-shadow:var(--shadow)}.upcoming-flights h3{margin-bottom:1rem;color:#f3f7fb;text-transform:uppercase;letter-spacing:.1em;font-weight:500}.flight-list{display:flex;flex-direction:column;gap:.75rem}.empty-state{text-align:center;color:var(--text-secondary);padding:2rem}body.modal-open{overflow:hidden;touch-action:none}.modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal.hidden{display:none}.modal-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7)}.modal-content{position:relative;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:var(--border-radius);width:100%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:var(--shadow-lg);animation:modalSlideIn .3s ease}.sigwx-modal-content{max-width:900px;width:95vw;max-height:90vh}.sigwx-modal-body{display:flex;flex-direction:column}.sigwx-modal-canvas{flex:1;overflow:auto;background:var(--well-gradient);border-radius:var(--control-radius);box-shadow:var(--field-shadow);padding:.5rem;touch-action:none}.sigwx-modal-image{display:block;width:100%;height:auto;touch-action:none}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);background-color:var(--surface-color);flex-shrink:0;z-index:1}.modal-header h3{margin:0}.modal-body{padding:1.5rem;flex:1;overflow-y:auto}.modal-footer{display:flex;gap:1rem;margin-top:1.5rem}.modal-footer .btn{flex:1}.roster-import-actions{margin-top:1.5rem;display:flex;justify-content:center}.roster-import-text{margin:0 0 1rem;color:var(--text-secondary);font-size:.95rem}.roster-import-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.roster-import-image{width:100%;border-radius:8px;border:1px solid rgba(255,255,255,.08);background-color:var(--background-color)}.notes-container{display:flex;flex-direction:column}.notes-list{display:flex;flex-direction:column;gap:1rem}.note-card{background-color:var(--background-color);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;transition:var(--transition)}.hotel-info-placeholder{padding:1.5rem;text-align:center}.hotel-info-placeholder p{color:var(--text-secondary);font-size:.95rem;margin:0}.note-card:hover{border-color:rgba(255,255,255,.2)}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.note-timestamp{font-size:.85rem;color:var(--text-secondary)}.note-actions{display:flex;gap:.5rem}.note-edit-btn,.note-delete-btn{padding:.25rem;opacity:.7;transition:var(--transition)}.note-edit-btn:hover,.note-delete-btn:hover{opacity:1}.note-edit-btn svg{width:18px;height:18px}.note-delete-btn svg{width:18px;height:18px;stroke:#ff6b6b}.note-content{color:var(--text-color);font-size:.95rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.no-notes-text,.error-text{text-align:center;padding:2rem 1rem;color:var(--text-secondary);font-size:.95rem}.error-text{color:#ff6b6b}.note-modal-content{max-width:600px}.note-textarea{width:100%;min-height:200px;padding:1rem;border:1px solid var(--border-color);border-radius:var(--control-radius);background:var(--well-gradient);box-shadow:var(--display-shadow);color:var(--text-color);font-size:1rem;font-family:inherit;line-height:1.6;resize:vertical;transition:var(--transition)}.note-textarea:focus{outline:none;border-color:var(--accent-color)}.note-textarea::placeholder{color:var(--text-secondary);opacity:.5}#add-note-btn{margin-bottom:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.85rem;font-weight:600;margin-bottom:.5rem;color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:var(--control-radius);background:var(--well-gradient);box-shadow:var(--field-shadow);color:var(--text-color);font-size:1rem;transition:var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-color)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.form-group textarea{resize:vertical;min-height:60px}.details-modal-content{max-width:450px}.details-body{padding:1.5rem}.details-section{margin-bottom:1.5rem}.details-section:last-of-type{margin-bottom:0}.details-section-title{font-size:.75rem;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.5rem;letter-spacing:.5px}.details-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.details-row:last-child{border-bottom:none}.details-label{color:var(--text-secondary);font-size:.9rem}.details-value{font-weight:600;font-size:.95rem;color:var(--text-color)}.details-route{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;background:var(--well-gradient);border:1px solid var(--border-color);border-radius:var(--control-radius);box-shadow:var(--display-shadow);margin:.5rem 0}.details-airport{flex:1;text-align:center;padding:.5rem}.details-airport-label{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.details-airport-code-row{display:flex;align-items:center;justify-content:center;gap:.5rem}.airport-info-icon{color:var(--accent-color);cursor:pointer;display:flex;align-items:center;opacity:.8;transition:var(--transition)}.airport-info-icon:hover{opacity:1;transform:scale(1.1)}.details-airport-code{font-size:1.5rem;font-weight:700;color:var(--text-color)}.details-airport-time{font-size:.9rem;color:var(--text-color);margin-top:.25rem;font-weight:500}.details-airport-time-utc{font-size:.85rem;color:var(--accent-color);margin-top:.15rem;font-weight:500}.details-airport-date{font-size:.8rem;color:var(--text-secondary);margin-top:.15rem}.airport-info-btn{padding:.3rem .9rem;font-size:.96rem;width:auto;margin-top:.5rem}.details-arrow{color:var(--accent-color);flex-shrink:0;display:flex;align-items:center;flex-direction:column;gap:.35rem}.details-arrow svg{transform:rotate(90deg)}.details-sun-event{font-size:.7rem;font-weight:600;color:var(--accent-color);text-align:center;line-height:1.2}.sun-event{display:inline-flex;flex-direction:column;align-items:center;gap:.1rem}.sun-event-label{font-size:.68rem;color:var(--text-secondary)}.sun-event-time{white-space:nowrap}.sun-event-sep{margin:0 .25rem}.details-radiation{display:flex;flex-direction:column;align-items:center;gap:.2rem;font-size:.7rem;color:var(--text-secondary);text-align:center}.radiation-label{color:var(--text-secondary);font-size:.68rem}.radiation-value{color:#e04646;font-weight:700}.details-duration{display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center;margin-top:.5rem}.duration-label{font-size:.7rem;color:var(--text-secondary);font-weight:500}.duration-value{font-size:.85rem;color:var(--accent-color);font-weight:600}.details-badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;font-weight:600;box-shadow:var(--field-shadow)}.details-badge.flight{background-color:rgba(233,69,96,.2);color:var(--accent-color)}.details-badge.standby{background-color:rgba(255,152,0,.2);color:var(--warning-color)}.details-badge.dayoff{background-color:rgba(76,175,80,.2);color:var(--success-color)}.details-badge.vacation{background-color:rgba(0,188,212,.2);color:#00bcd4}.details-badge.training{background-color:rgba(156,39,176,.2);color:#ce93d8}.details-badge.sick{background-color:rgba(255,107,0,.2);color:#ff6b00}.details-badge.medical{background-color:rgba(236,64,122,.2);color:#f48fb1}.details-badge.ground{background-color:rgba(33,150,243,.2);color:#64b5f6}.details-notes{background:var(--well-gradient);border:1px solid var(--border-color);border-radius:var(--control-radius);box-shadow:var(--display-shadow);padding:1rem;font-size:.9rem;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;max-height:150px;overflow-y:auto}.img-fluid{display:block;max-width:100%;height:auto}.sigwx-chart{background:var(--well-gradient);border:1px solid var(--border-color);border-radius:var(--control-radius);box-shadow:var(--display-shadow);padding:.75rem;text-align:center}.sigwx-chart img{cursor:zoom-in}.sigwx-caption{margin-top:.5rem;font-size:.75rem;color:var(--text-secondary)}.crew-list{background:var(--well-gradient);border:1px solid var(--border-color);border-radius:var(--control-radius);box-shadow:var(--display-shadow);padding:.5rem;max-height:200px;overflow-y:auto}.crew-member{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-bottom:1px solid rgba(255,255,255,.05)}.crew-member:last-child{border-bottom:none}.crew-role{font-size:.7rem;font-weight:700;padding:.2rem .5rem;border-radius:6px;min-width:36px;text-align:center;background:var(--well-gradient);border:1px solid var(--border-color);box-shadow:var(--field-shadow);color:var(--text-secondary)}.crew-role-shared{color:#f5c542;border:1px solid rgba(245,197,66,.6);background-color:rgba(245,197,66,.15)}.crew-name-flown{color:#f5c542!important}.crew-name{font-size:.9rem;color:var(--text-color)}.crew-name.clickable{color:var(--text-color);cursor:pointer;transition:var(--transition)}.crew-pairings-list{margin:.5rem 0 0;padding-left:1.25rem;color:var(--text-color);font-size:.9rem;line-height:1.4}.crew-name.clickable:hover{text-decoration:underline;opacity:.8}.crew-modal-content{max-width:400px}.crew-modal-close{width:auto;padding:.35rem .9rem;font-size:.75rem;letter-spacing:.08em}.crew-info-header{text-align:center;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.crew-info-name{font-size:1.25rem;font-weight:700;color:var(--text-color);margin-bottom:.5rem}.crew-info-pills{display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap}.crew-info-role{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;font-weight:600;background-color:rgba(233,69,96,.2);color:var(--accent-color);box-shadow:var(--field-shadow)}.crew-info-role--tri-tre{background-color:rgba(37,99,235,.2);color:#60a5fa}.crew-info-role--fleet{background-color:rgba(16,185,129,.2);color:#34d399}.crew-info-section{margin-bottom:1rem}.crew-info-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.crew-info-row:last-child{border-bottom:none}.crew-info-label{color:var(--text-secondary);font-size:.9rem}.crew-info-value{font-weight:600;color:var(--text-color);text-align:right}.crew-contact-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.crew-contact-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1rem;border-radius:var(--border-radius);font-size:.95rem;font-weight:600;text-decoration:none;transition:var(--transition);border:none;box-shadow:none;position:relative;isolation:isolate;z-index:0;background:transparent}.crew-contact-btn svg{width:20px;height:20px;flex-shrink:0}.crew-contact-btn.email{color:var(--accent-strong)}.crew-contact-btn.email:hover{transform:none}.crew-contact-btn.phone{color:#8fd1a1}.crew-contact-btn.phone:hover,.crew-contact-btn:active{transform:none}.crew-contact-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--border-radius);background:linear-gradient(180deg,#202a33,#19222b);box-shadow:inset 8px 8px 14px rgba(8,14,20,.68),inset -2px -2px 4px rgba(120,145,166,.03),0 0 0 1px rgba(92,109,123,.2);z-index:-2}.crew-contact-btn:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:calc(var(--border-radius) - 5px);background:linear-gradient(180deg,#465360,#34404b);box-shadow:inset 1px 1px rgba(255,255,255,.1),inset -1px -1px rgba(0,0,0,.34),0 0 0 1px rgba(116,134,149,.14);z-index:-1}.crew-contact-btn:hover:after,.crew-contact-btn:focus:after,.crew-contact-btn:focus-visible:after{background:linear-gradient(180deg,#404c58,#303b46)}.crew-contact-btn:active:after{top:6px;right:6px;bottom:6px;left:6px;background:linear-gradient(180deg,#38434e,#2c3741)}.crew-contact-btn.disabled{background-color:rgba(255,255,255,.1);color:var(--text-secondary);cursor:not-allowed;pointer-events:none}.crew-not-found{text-align:center;padding:2rem 1rem;color:var(--text-secondary)}.crew-not-found svg{width:48px;height:48px;margin-bottom:1rem;opacity:.5}.crew-not-found p{margin:0}.email-all-crew-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:1rem;padding:.75rem 1rem;background:transparent;color:var(--text-color);border:none;border-radius:var(--border-radius);font-size:.9rem;font-weight:600;cursor:pointer;transition:var(--transition);box-shadow:none;position:relative;isolation:isolate;z-index:0}.email-all-crew-btn:hover,.email-all-crew-btn:active{transform:none}.email-all-crew-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--border-radius);background:linear-gradient(180deg,#202a33,#19222b);box-shadow:inset 8px 8px 14px rgba(8,14,20,.68),inset -2px -2px 4px rgba(120,145,166,.03),0 0 0 1px rgba(92,109,123,.2);z-index:-2}.email-all-crew-btn:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:calc(var(--border-radius) - 5px);background:linear-gradient(180deg,#6d8397,#596c7e);box-shadow:inset 1px 1px rgba(255,255,255,.14),inset -1px -1px rgba(0,0,0,.28),0 0 0 1px rgba(140,161,180,.2);z-index:-1}.email-all-crew-btn:hover:after,.email-all-crew-btn:focus:after,.email-all-crew-btn:focus-visible:after{background:linear-gradient(180deg,#768da2,#607487)}.email-all-crew-btn:active:after{top:6px;right:6px;bottom:6px;left:6px;background:linear-gradient(180deg,#5f7386,#506172)}.email-all-crew-btn svg{flex-shrink:0}@media (max-width: 480px){.main,.weather-card{padding:1rem}.roster-header{gap:.5rem}.roster-header h2{font-size:1.25rem}.roster-actions .btn-sm{padding:.4rem .6rem;font-size:.75rem}.calendar-day{font-size:.8rem;min-height:35px}.form-row{grid-template-columns:1fr}.flight-route{flex-wrap:wrap}}.weather-container{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem;min-height:200px}.weather-card{background-color:var(--surface-color);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--shadow)}.weather-card.warning-banner{background-color:rgba(255,152,0,.15);border-left:4px solid var(--warning-color);margin-bottom:1rem}.weather-card.warning-banner p{margin:0;color:var(--text-color)}.weather-card.warning-banner strong{color:var(--warning-color)}.weather-card h3{color:var(--accent-color);margin-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.5rem}.weather-raw{font-family:Courier New,Courier,monospace;font-size:.95rem;line-height:1.5;white-space:pre-wrap;color:var(--text-color);background-color:rgba(0,0,0,.2);padding:1rem;border-radius:6px;border-left:3px solid var(--primary-color)}.weather-time{font-size:.8rem;color:var(--text-secondary);margin-top:.5rem;text-align:right}.forecast-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-top:.5rem}.forecast-day{background-color:rgba(0,0,0,.2);padding:.75rem;border-radius:6px;border-left:3px solid var(--accent-color);text-align:center}.forecast-date{display:flex;flex-direction:column;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.forecast-date strong{font-size:1rem;color:var(--accent-color)}.forecast-date span{font-size:.85rem;color:var(--text-secondary)}.forecast-condition{font-size:.9rem;margin-bottom:.5rem;color:var(--text-color);font-weight:500}.forecast-temp{font-size:1.1rem;margin-bottom:.5rem}.forecast-temp .temp-max{color:#ff9500;font-weight:700}.forecast-temp .temp-min{color:#5ac8fa}.forecast-wind,.forecast-precip{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.station-info-card{border-left:3px solid var(--accent-color)}.station-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-top:.75rem}.station-item{display:flex;flex-direction:column;gap:.25rem}.station-label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.station-value{font-size:1rem;color:var(--text-color)}.runways-section{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.runways-section h4{color:var(--accent-color);font-size:.95rem;margin-bottom:.5rem}.runway-info{padding:.5rem;background-color:rgba(0,0,0,.2);border-radius:4px;margin-bottom:.5rem;font-size:.9rem}.runway-info:last-child{margin-bottom:0}.runway-info strong{color:var(--accent-color);margin-right:.5rem}.aerodrome-restrictions-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.restrictions-header{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;font-size:1rem;color:var(--text-color);font-weight:600}.restriction-category{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-weight:600;font-size:.75rem;letter-spacing:.5px}.restriction-category-button{border:none;cursor:pointer}.restriction-category-button:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.aerodrome-modal-content{max-width:520px}.search-actions{display:flex;gap:.75rem;margin:1rem 0 1.5rem;flex-wrap:wrap}.search-panel{padding:1rem;border-radius:var(--border-radius);border:1px solid var(--border-color);box-shadow:var(--shadow)}.search-label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-secondary)}.search-panel input{width:100%;padding:.9rem 1rem;border:1px solid var(--border-color);border-radius:var(--control-radius);background:var(--well-gradient);box-shadow:var(--field-shadow);color:var(--text-color);font-size:1rem;transition:var(--transition)}.search-panel input:focus{outline:none;border-color:var(--accent-color)}#search-aerodrome-input{text-transform:uppercase}.search-results{margin-top:.75rem;display:grid;gap:.5rem}.search-result{display:flex;flex-direction:column;gap:.2rem;padding:.75rem;border-radius:var(--control-radius);border:1px solid var(--border-color);background:var(--well-gradient);box-shadow:var(--display-shadow);cursor:pointer}.search-result:hover{border-color:var(--accent-color)}.search-result-title{font-weight:600;color:var(--text-color)}.search-result-meta{font-size:.85rem;color:var(--text-secondary)}.category-a{background-color:rgba(76,175,80,.2);color:#4caf50;border:1px solid #4CAF50}.category-b{background-color:rgba(255,152,0,.2);color:#ff9800;border:1px solid #FF9800}.category-c{background-color:rgba(244,67,54,.2);color:#f44336;border:1px solid #F44336}.category-na{background-color:#000;color:red;border:1px solid #FF0000;cursor:default;pointer-events:none}.flight-search-filters{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:.75rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px}.flight-search-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%;overflow:hidden}.flight-search-filter-group{display:flex;flex-direction:column;gap:.35rem;min-width:0;overflow:hidden}.flight-search-filter-group label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flight-search-filter-group input{width:100%;box-sizing:border-box;padding:.6rem .5rem;font-size:.95rem;border:1px solid var(--border-color);border-radius:var(--control-radius);background:var(--well-gradient);box-shadow:var(--field-shadow);color:var(--text-color);transition:var(--transition)}.flight-search-filter-group input:focus{outline:none;border-color:var(--accent-color)}.flight-search-filter-group input[type=date]{color-scheme:dark}.flight-search-actions{display:flex;justify-content:flex-end;margin-top:.5rem}.flight-search-results{display:flex;flex-direction:column;gap:.75rem}.flight-search-result-item{padding:1rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;transition:all .2s ease}.flight-search-result-item:hover{background:rgba(255,255,255,.06);border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.2)}.flight-search-result-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.flight-search-result-flight{font-weight:600;color:var(--accent-color);font-size:1.1rem}.flight-search-result-route{font-weight:500;color:var(--text-color)}.flight-search-result-details{display:flex;gap:1rem;font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem}.flight-search-result-crew{font-size:.85rem;color:var(--text-secondary);font-style:italic}.flight-search-empty-state{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}.restriction-subsection{margin-bottom:1.25rem}.restriction-subsection:last-child{margin-bottom:0}.restriction-subsection strong{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem}.restriction-list{list-style:disc;list-style-position:outside;padding-left:1.5rem;margin:.5rem 0}.restriction-list li{margin-bottom:.4rem;padding-left:.25rem;color:var(--text-color);font-size:.85rem;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word;white-space:normal;max-width:100%;width:100%}.restriction-row{display:flex;align-items:baseline;gap:.4rem;flex-wrap:nowrap;white-space:nowrap}.restriction-row strong{display:inline;margin-bottom:0}.restriction-row .restriction-empty{color:var(--text-secondary)}.min-hours,.capt-req{margin:.4rem 0;font-size:.85rem;color:var(--text-color);padding-left:1rem}.fleet-subsection{padding:.75rem;background-color:rgba(255,255,255,.03);border-radius:6px;border-left:3px solid rgba(255,107,0,.5)}.collapsible-card{overflow:hidden}.collapsible-header{cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.collapse-icon{font-size:.9rem;transition:transform .3s ease}.collapsible-content{max-height:2000px;opacity:1;overflow:hidden;transition:max-height .5s ease-in-out,opacity .4s ease,padding .4s ease}.collapsible-card.collapsed .collapsible-content{max-height:0;opacity:0;padding-top:0;padding-bottom:0}.loading-text,.loading-spinner{text-align:center;color:var(--text-secondary);padding:2rem}.action-area{margin-top:2rem}
