*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font-family:inherit}@font-face{font-family:Astronarium Sans;src:url(/assets/AstronariumSans-Bj_1GHAS.ttf)format("truetype");font-weight:400;font-style:normal}html,body{height:100%;overflow:hidden}body{color:#333;background:#fff;flex-direction:column;font-family:Astronarium Sans,sans-serif;transition:background-color .3s,color .3s;display:flex}.container{z-index:1;flex-direction:column;flex:1;width:100%;max-width:none;margin:0 auto;padding:20px;display:flex;position:relative;overflow:hidden}header{z-index:4;pointer-events:none;text-align:center;color:#333;padding-bottom:20px;transition:color .3s,opacity .4s;position:absolute;top:20px;left:0;right:0}body.chart-zoomed header{opacity:.15}.top-right-controls{z-index:10;align-items:center;gap:8px;display:flex;position:fixed;top:12px;right:12px}.app-container{display:contents}h1{text-transform:uppercase;letter-spacing:.22em;text-shadow:2px 2px 4px #0000004d;margin-bottom:10px;padding-left:.22em;font-size:2.5rem;font-weight:400}.header-rule{background:linear-gradient(90deg,#4facfe,#00f2fe);width:min(460px,50%);height:2px;margin:10px auto 12px;mask:linear-gradient(90deg,#0000,#000 45% 55%,#0000)}.subtitle{letter-spacing:1px;opacity:.9;font-size:.925rem}label{color:#555;margin-bottom:5px;font-weight:600;transition:color .3s}.info-popover{opacity:0;visibility:hidden;z-index:100;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border:1px solid #4facfe4d;border-radius:12px;min-width:220px;margin-top:8px;padding:16px 20px;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:100%;right:0;transform:translateY(-8px);box-shadow:0 8px 32px #0006,0 0 20px #4facfe1a}.info-popover.visible{opacity:1;visibility:visible;transform:translateY(0)}.info-popover:before{content:"";background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border-top:1px solid #4facfe4d;border-left:1px solid #4facfe4d;width:12px;height:12px;position:absolute;top:-6px;right:16px;transform:rotate(45deg)}.info-popover-title{color:#fff;align-items:center;gap:8px;margin-bottom:4px;font-size:18px;font-weight:700;display:flex}.info-popover-version{color:#4facfe;background:#4facfe26;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:500}.info-popover-subtitle{color:#9ca3af;margin-bottom:12px;font-size:12px}.info-popover-divider{background:linear-gradient(90deg,#0000,#4facfe4d,#0000);height:1px;margin:12px 0}.info-popover-credit{color:#6b7280;font-size:11px}.info-popover-credit a{color:#4facfe;text-decoration:none}.info-popover-credit a:hover{text-decoration:underline}.info-popover-ephemeris{font-size:12px;line-height:1.5}.ephemeris-status{color:#9ca3af}.ephemeris-status.loading{color:#f59e0b}.settings-popover{opacity:0;visibility:hidden;z-index:120;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border:1px solid #4facfe4d;border-radius:12px;width:420px;max-height:80vh;margin-top:8px;padding:16px 20px;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:100%;right:0;overflow:hidden;transform:translateY(-8px);box-shadow:0 8px 32px #0006,0 0 20px #4facfe1a}.settings-popover.visible{opacity:1;visibility:visible;transform:translateY(0)}.settings-popover:before{content:"";background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border-top:1px solid #4facfe4d;border-left:1px solid #4facfe4d;width:12px;height:12px;position:absolute;top:-6px;right:18px;transform:rotate(45deg)}.settings-popover-header{flex-direction:column;gap:4px;display:flex}.settings-popover-title{color:#fff;font-size:16px;font-weight:700}.settings-popover-subtitle{color:#9ca3af;font-size:12px}.settings-popover-content{max-height:calc(80vh - 80px);margin-top:12px;padding-right:6px;overflow-y:auto}.settings-popover-content::-webkit-scrollbar{width:6px}.settings-popover-content::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.settings-popover-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.settings-popover-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.ephemeris-status.loaded{color:#10b981}.ephemeris-status.error{color:#ef4444}.ephemeris-detail{color:#6b7280;margin-top:6px;padding-left:4px}.ephemeris-detail-item{align-items:center;gap:6px;margin-top:3px;display:flex}.ephemeris-detail-item:before{content:"•";color:#4facfe}input,select{color:#333;background:#fff;border:2px solid #e1e5e9;border-radius:6px;padding:10px 12px;font-size:14px;transition:background-color .3s,color .3s,border-color .3s}input:focus,select:focus{border-color:#4facfe;outline:none;box-shadow:0 0 0 3px #4facfe1a}#loginBtn,#settingsToggle,.top-right-controls .user-menu .toggle-btn{color:#fff;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border:1px solid #4facfe66;border-radius:999px;box-shadow:0 2px 8px #0000004d}#loginBtn:hover,#settingsToggle:hover,.top-right-controls .user-menu .toggle-btn:hover{color:#fff;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border-color:#4facfea6;transform:translateY(-1px);box-shadow:0 4px 12px #4facfe33}.toggle-btn{color:#333;cursor:pointer;background:#f0f2f5;border:1px solid #e1e5e9;border-radius:20px;padding:8px 12px;font-size:13px;transition:background-color .3s,color .3s,border-color .3s}.toggle-btn:hover{opacity:.9}.sign-select{color:#333;cursor:pointer;text-align:center;background:#f0f2f5;border:1px solid #d0d5db;border-radius:4px;min-width:110px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .2s}.sign-select:hover{background:#e5e7eb;border-color:#b0b5bb}.sign-select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 2px #667eea33}.chart-area{flex:auto;padding:8px;position:relative;overflow:hidden}.reset-zoom-btn{z-index:5;color:#4facfe;letter-spacing:.5px;cursor:pointer;user-select:none;opacity:0;visibility:hidden;background:#ffffffd9;border:1px solid #4facfe66;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:500;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;bottom:20px;left:20px;transform:translateY(6px)}.reset-zoom-btn.visible{opacity:1;visibility:visible;transform:translateY(0)}.reset-zoom-btn:hover{border-color:#4facfe;box-shadow:0 4px 12px #4facfe40}.loading{z-index:5;color:#666;white-space:nowrap;pointer-events:none;background:#ffffffd9;border:1px solid #4facfe40;border-radius:20px;padding:8px 16px;font-size:14px;font-style:italic;display:none;position:absolute;top:16px;left:50%;transform:translate(-50%)}.error{z-index:6;color:#c33;background:#fee;border-left:4px solid #c33;border-radius:6px;max-width:min(480px,80%);padding:12px 16px;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.info-text{color:#1976d2;background:#e8f4fd;border-left:4px solid #1976d2;border-radius:6px;margin:20px 0;padding:15px;font-size:14px;transition:background-color .3s,color .3s,border-color .3s}.fatal-error{z-index:10001;background:linear-gradient(135deg,#0a0a12 0%,#16101a 50%,#0a0a12 100%);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.fatal-error-content{text-align:center;max-width:460px}.fatal-error-icon{margin-bottom:16px;font-size:44px}.fatal-error-title{letter-spacing:1px;color:#fff;margin:0 0 16px;font-size:26px;font-weight:400}.fatal-error-message{color:#ff9b93;margin:0 0 16px;font-size:15px}.fatal-error-note{color:#9ca3af;margin:0 0 24px;font-size:14px;line-height:1.6}.fatal-error-retry{color:#cfe6ff;letter-spacing:.5px;cursor:pointer;background:#4facfe1f;border:1px solid #4facfe66;border-radius:20px;padding:10px 28px;font-size:14px;transition:background-color .2s,border-color .2s}.fatal-error-retry:hover{background:#4facfe38;border-color:#4facfeb3}.fatal-error-detail{color:#5b6472;word-break:break-word;margin:20px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.setting-row{border-bottom:1px solid #f0f0f0;flex-direction:column;gap:8px;padding:10px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-label{color:#555;justify-content:space-between;align-items:center;font-weight:500;display:flex}.setting-value{color:#333;background:#f0f2f5;border-radius:4px;padding:2px 8px;font-size:13px}.setting-slider{appearance:none;cursor:pointer;background:#e1e5e9;border-radius:3px;outline:none;width:100%;height:6px}.setting-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);border-radius:50%;width:18px;height:18px;transition:transform .15s;box-shadow:0 2px 6px #4facfe66}.setting-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.setting-slider::-moz-range-thumb{cursor:pointer;background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);border:none;border-radius:50%;width:18px;height:18px;box-shadow:0 2px 6px #4facfe66}.settings-section{border-bottom:1px solid #e1e5e9}.settings-section:last-child{border-bottom:none}.settings-section.info-section{border-top:1px solid #e1e5e9}.settings-section-header{cursor:pointer;user-select:none;justify-content:space-between;align-items:center;padding:12px 0;transition:color .2s;display:flex}.settings-section-header:hover{color:#4facfe}.settings-section-title{color:#444;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.settings-section-title .section-icon{font-size:14px}.settings-section-chevron{color:#888;font-size:12px;transition:transform .25s}.settings-section.open .settings-section-chevron{transform:rotate(180deg)}.settings-section-content{max-height:0;transition:max-height .3s ease-out;overflow:hidden}.settings-section.open .settings-section-content{max-height:1000px;transition:max-height .4s ease-in}.settings-section-inner{padding-bottom:12px}.settings-info{color:#444;flex-direction:column;gap:8px;font-size:13px;display:flex}.settings-info-title-row{color:#1a1a2e;align-items:center;gap:8px;font-weight:700;display:flex}.settings-info-version{color:#1a7fe0;background:#4facfe1f;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600}.settings-info-subtitle{color:#555;font-size:12px}.settings-info-divider{background:linear-gradient(90deg,#0000,#4facfe40,#0000);height:1px}.settings-info-credit{color:#666;font-size:12px}.settings-info-credit a{color:#1a7fe0;text-decoration:none}.settings-info-credit a:hover{text-decoration:underline}.color-picker-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.color-picker-row:last-child{border-bottom:none}.color-picker-label{color:#555;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.color-picker-label .element-icon{font-size:16px}.color-picker-input{appearance:none;cursor:pointer;background:0 0;border:2px solid #d0d5db;border-radius:6px;width:48px;height:32px;padding:2px}.color-picker-input::-webkit-color-swatch-wrapper{padding:0}.color-picker-input::-webkit-color-swatch{border:none;border-radius:4px}.color-picker-input::-moz-color-swatch{border:none;border-radius:4px}.color-picker-input:hover{border-color:#4facfe}.color-picker-input:focus{border-color:#4facfe;outline:none;box-shadow:0 0 0 2px #4facfe33}.color-reset-btn{color:#666;cursor:pointer;background:#f0f2f5;border:1px solid #d0d5db;border-radius:4px;padding:4px 8px;font-size:11px;transition:all .2s}.color-reset-btn:hover{background:#e5e7eb;border-color:#b0b5bb}.color-subsection-divider{border-top:1px solid #e1e5e9;margin-top:16px;padding-top:12px}body.dark{color:#e8e8e8;background:linear-gradient(135deg,#0a0a12 0%,#0e1525 50%,#0a0a12 100%) fixed}body.dark:before{content:"";opacity:.5;z-index:0;pointer-events:none;background-image:radial-gradient(2px 2px at 20px 30px,#fffc,#0000),radial-gradient(2px 2px at 40px 70px,#ffffff80,#0000),radial-gradient(1px 1px at 90px 40px,#fff9,#0000),radial-gradient(2px 2px at 130px 80px,#fff6,#0000),radial-gradient(1px 1px at 160px 120px,#ffffffb3,#0000),radial-gradient(1px 1px at 200px 50px,#ffffff80,#0000),radial-gradient(2px 2px at 250px 150px,#fff9,#0000),radial-gradient(1px 1px at 300px 100px,#fff6,#0000),radial-gradient(2px 2px at 50px 200px,#ffffff80,#0000),radial-gradient(1px 1px at 100px 250px,#ffffffb3,#0000),radial-gradient(2px 2px at 180px 300px,#fff6,#0000),radial-gradient(1px 1px at 280px 250px,#fff9,#0000),radial-gradient(2px 2px at 350px 200px,#ffffff80,#0000),radial-gradient(1px 1px at 400px 80px,#fff6,#0000),radial-gradient(2px 2px at 450px 180px,#fff9,#0000),radial-gradient(1px 1px at 500px 120px,#ffffff80,#0000),radial-gradient(2px 2px at 550px 280px,#ffffffb3,#0000),radial-gradient(1px 1px at 600px 60px,#fff6,#0000);background-size:650px 350px;position:fixed;inset:0}body.dark header{color:#e8e8e8}body.dark h1{text-shadow:0 0 30px #4facfe66}body.dark .subtitle{color:#9ca3af;opacity:1}body.dark label{color:#fff;letter-spacing:1px;text-shadow:0 0 15px #4facfe4d;font-weight:400}body.dark input,body.dark select{color:#e8e8e8;letter-spacing:.5px;background:#ffffff08;border:1px solid #4facfe26;font-weight:400}body.dark input:focus,body.dark select:focus{border-color:#4facfe66;box-shadow:0 0 10px #4facfe26}body.dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}body.dark input[type=time]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}body.dark .toggle-btn{color:#d1d5db;letter-spacing:.5px;background:#ffffff08;border:1px solid #4facfe26;font-weight:400}body.dark .toggle-btn:hover{color:#fff;background:#4facfe1a;border-color:#4facfe4d}body.dark .sign-select{color:#d1d5db;letter-spacing:.5px;background:#ffffff08;border:1px solid #4facfe26;font-weight:400}body.dark .sign-select:hover{background:#4facfe1a;border-color:#4facfe4d}body.dark .sign-select:focus{border-color:#4facfe80;box-shadow:0 0 10px #4facfe26}body.dark .loading{color:#ccc;background:#1b1d23d9}body.dark .error{color:#ff9b93;background:#3a1616eb;border-left-color:#e0635c;box-shadow:0 4px 12px #0006}body.dark .info-text{color:#9ec1ff;background:#182335;border-left-color:#4c78ff}body.dark #chartInfoContent,body.dark #ephemerisStatus{letter-spacing:.5px;border-bottom-color:#2a2d35;font-weight:400}body.dark .settings-popover{background:linear-gradient(135deg,#0f172a 0%,#0b1020 100%);border-color:#4facfe59;box-shadow:0 10px 38px #0009,0 0 24px #4facfe26}body.dark .settings-popover:before{background:linear-gradient(135deg,#0f172a 0%,#0b1020 100%);border-top-color:#4facfe59;border-left-color:#4facfe59}body.dark .setting-row{border-bottom-color:#2a2d35}body.dark .setting-label{color:#ccc;letter-spacing:.5px;font-weight:400}body.dark .setting-value{color:#e0e0e0;letter-spacing:.5px;background:#1b1d23;font-weight:400}body.dark .setting-slider{background:#2a2d35}body.dark .settings-section{border-bottom-color:#2a2d35}body.dark .settings-section.info-section{border-top:1px solid #2a2d35}body.dark .settings-section-title{color:#ddd;letter-spacing:.5px;font-weight:400}body.dark .settings-section-header:hover{color:#4facfe}body.dark .settings-section-chevron{color:#666}body.dark .settings-info{color:#d9d9e3}body.dark .settings-info-title-row{color:#f3f4f6}body.dark .settings-info-version{color:#7cc4ff;background:#4facfe2e}body.dark .settings-info-subtitle{color:#a3a3b1}body.dark .settings-info-divider{background:linear-gradient(90deg,#0000,#4facfe59,#0000)}body.dark .settings-info-credit{color:#9ca3af}body.dark .settings-info-credit a{color:#7cc4ff}body.dark .color-picker-row{border-bottom-color:#2a2d35}body.dark .color-picker-label{color:#ccc;letter-spacing:.5px;font-weight:400}body.dark .color-picker-input{background:#1b1d23;border-color:#2a2d35}body.dark .color-picker-input:hover{border-color:#4facfe}body.dark .color-reset-btn{color:#aaa;background:#1b1d23;border-color:#2a2d35}body.dark .color-reset-btn:hover{background:#252830;border-color:#3a3d45}body.dark .color-subsection-divider{border-top-color:#2a2d35}body.dark .reset-zoom-btn{color:#4facfe;background:#1b1d23d9;border-color:#4facfe59}body.dark .reset-zoom-btn:hover{border-color:#4facfe;box-shadow:0 4px 12px #4facfe33}body.mobile-view{overscroll-behavior:none;height:100dvh}body.mobile-view .top-right-controls,body.mobile-view #beta-watermark{display:none}body.mobile-view header{top:calc(env(safe-area-inset-top) + 10px);padding-bottom:10px}body.mobile-view h1{margin-bottom:4px;font-size:1.7rem}body.mobile-view .subtitle{font-size:.8rem}body.mobile-view .container{padding:calc(env(safe-area-inset-top) + 10px) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body.mobile-view .chart-area{padding:0}body.mobile-view #threejs-container{touch-action:none}.upgrade-prompt-overlay{z-index:1000;opacity:0;visibility:hidden;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s,visibility .3s;display:flex;position:fixed;top:0;left:0}.upgrade-prompt-overlay.open{opacity:1;visibility:visible}.upgrade-prompt{text-align:center;background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;border-radius:clamp(13px,1.69271vh,26px);width:90%;max-width:400px;padding:32px 36px;transition:transform .3s;position:relative;transform:translateY(20px)scale(.95);box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}.upgrade-prompt-overlay.open .upgrade-prompt{transform:translateY(0)scale(1)}.upgrade-prompt-close{cursor:pointer;color:#fff6;background:0 0;border:none;padding:4px;font-size:26px;line-height:1;transition:color .2s;position:absolute;top:12px;right:14px}.upgrade-prompt-close:hover{color:#fffc}.upgrade-prompt-lock{margin-bottom:12px;font-size:32px}.upgrade-prompt-message{color:#ffffffd9;margin-bottom:24px;font-size:15px;line-height:1.6}.upgrade-prompt-btn{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border:1px solid #4facfe66;border-radius:999px;width:100%;padding:13px 24px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s;display:block}.upgrade-prompt-btn:hover{border-color:#4facfea6;transform:translateY(-2px);box-shadow:0 8px 24px #4facfe33}.upgrade-prompt-btn:active{transform:translateY(0)}.auth-modal-overlay{z-index:1000;opacity:0;visibility:hidden;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s,visibility .3s;display:flex;position:fixed;top:0;left:0}.auth-modal-overlay.open{opacity:1;visibility:visible}.auth-modal{background:#fff;border-radius:clamp(13px,1.69271vh,26px);width:90%;max-width:400px;padding:30px;transition:transform .3s;position:relative;transform:translateY(20px);box-shadow:0 10px 40px #0003}.auth-modal-overlay.open .auth-modal{transform:translateY(0)}.auth-close-btn{cursor:pointer;color:#888;background:0 0;border:none;font-size:24px;transition:color .2s;position:absolute;top:15px;right:15px}.auth-close-btn:hover{color:#333}.auth-title{text-align:center;color:#333;margin-bottom:20px;font-size:24px}.auth-form{flex-direction:column;gap:15px;display:flex}.auth-input{border:1px solid #e1e5e9;border-radius:999px;padding:12px 18px;font-size:16px;transition:border-color .3s}.auth-input:focus{border-color:#4facfe;outline:none}.auth-submit-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border:1px solid #4facfe66;border-radius:999px;padding:12px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s}.auth-submit-btn:hover{border-color:#4facfea6;transform:translateY(-2px);box-shadow:0 4px 12px #4facfe33}.auth-divider{color:#999;align-items:center;gap:12px;margin:15px 0;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#e1e5e9;flex:1;height:1px}.auth-google-btn{color:#333;cursor:pointer;background:#fff;border:1px solid #e1e5e9;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:border-color .2s,box-shadow .2s;display:flex}.auth-google-btn:hover{border-color:#4facfe;box-shadow:0 2px 8px #4facfe26}.auth-google-btn:disabled{opacity:.6;cursor:default}.auth-switch-text{text-align:center;color:#666;margin-top:15px;font-size:14px}.auth-switch-link{color:#4facfe;cursor:pointer;font-weight:600;text-decoration:none}.auth-switch-link:hover{text-decoration:underline}.auth-error{color:#e74c3c;text-align:center;margin-top:10px;font-size:14px;display:none}body.dark .auth-modal{color:#e8e8e8;background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}body.dark .auth-title{color:#fff;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text}body.dark .auth-input{color:#e8e8e8;background:#ffffff08;border-color:#4facfe26}body.dark .auth-input:focus{border-color:#4facfe66;box-shadow:0 0 10px #4facfe26}body.dark .auth-close-btn{color:#666}body.dark .auth-close-btn:hover{color:#e8e8e8}body.dark .auth-switch-text{color:#aaa}body.dark .auth-divider{color:#777}body.dark .auth-divider:before,body.dark .auth-divider:after{background:#4facfe26}body.dark .auth-google-btn{color:#e8e8e8;background:#ffffff08;border-color:#4facfe26}body.dark .auth-google-btn:hover{border-color:#4facfe66;box-shadow:0 2px 8px #4facfe26}.welcome-modal-overlay{z-index:1000;opacity:0;visibility:hidden;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s,visibility .3s;display:flex;position:fixed;top:0;left:0}.welcome-modal-overlay.open{opacity:1;visibility:visible}.welcome-modal{background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;border-radius:clamp(13px,1.69271vh,26px);width:90%;max-width:520px;padding:36px 40px;transition:transform .3s;position:relative;transform:translateY(20px)scale(.95);box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}.welcome-modal-overlay.open .welcome-modal{transform:translateY(0)scale(1)}.welcome-close-btn{cursor:pointer;color:#fff6;background:0 0;border:none;padding:4px;font-size:28px;line-height:1;transition:color .2s,transform .2s;position:absolute;top:16px;right:16px}.welcome-close-btn:hover{color:#fffc;transform:scale(1.1)}.welcome-title{text-align:center;color:#fff;letter-spacing:.5px;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:24px;font-size:26px;font-weight:600}.welcome-content{color:#ffffffd9;font-size:15px;line-height:1.7}.welcome-content p{margin-bottom:16px}.welcome-content p:last-of-type:not(.welcome-signature){margin-bottom:20px}.welcome-signature{text-align:right;border-top:1px solid #4facfe33;margin-top:24px;margin-bottom:8px;padding-top:16px;font-style:italic}.welcome-signature a{color:#4facfe;font-weight:600;text-decoration:none;transition:color .2s}.welcome-signature a:hover{color:#00f2fe;text-decoration:underline}.welcome-dismiss-btn{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border:1px solid #4facfe66;border-radius:999px;width:100%;margin-top:24px;padding:14px 24px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s;display:block}.welcome-dismiss-btn:hover{border-color:#4facfea6;transform:translateY(-2px);box-shadow:0 8px 24px #4facfe33}.welcome-dismiss-btn:active{transform:translateY(0)}.beta-watermark{z-index:5;letter-spacing:2px;text-transform:uppercase;color:#ffffff2e;cursor:pointer;user-select:none;pointer-events:auto;font-size:24px;font-weight:600;transition:color .2s;position:fixed;top:20px;left:20px}.beta-watermark:hover{color:#4facfe80}.mobile-welcome-overlay{z-index:1000;opacity:0;visibility:hidden;width:100%;height:100%;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px calc(env(safe-area-inset-bottom,0px) + 12px);box-sizing:border-box;background:#0009;justify-content:center;align-items:center;transition:opacity .3s,visibility .3s;display:flex;position:fixed;top:0;left:0}.mobile-welcome-overlay.open{opacity:1;visibility:visible}.mobile-welcome-modal{-webkit-overflow-scrolling:touch;box-sizing:border-box;background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;border-radius:clamp(13px,1.69271vh,26px);width:100%;max-width:420px;max-height:100%;padding:28px 22px 22px;transition:transform .3s;position:relative;overflow-y:auto;transform:translateY(20px)scale(.95);box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}.mobile-welcome-overlay.open .mobile-welcome-modal{transform:translateY(0)scale(1)}.mobile-welcome-close-btn{cursor:pointer;color:#fff6;background:0 0;border:none;padding:8px 12px;font-size:28px;line-height:1;position:absolute;top:10px;right:10px}.mobile-welcome-close-btn:active{color:#fffc}.mobile-welcome-title{text-align:center;color:#fff;letter-spacing:.5px;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:18px;font-size:22px;font-weight:600}.mobile-welcome-content{color:#ffffffd9;font-size:15px;line-height:1.6}.mobile-welcome-content p{margin-bottom:14px}.mobile-welcome-tips-heading{color:#a0d8ef;margin-bottom:10px;font-weight:600}.mobile-welcome-tips{margin:0 0 14px;padding:0;list-style:none}.mobile-welcome-tips li{align-items:flex-start;gap:10px;padding:7px 0;display:flex}.mobile-welcome-tip-icon{text-align:center;color:#4facfe;flex-shrink:0;width:24px;font-size:17px;line-height:1.4}.mobile-welcome-dismiss-btn{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border:1px solid #4facfe66;border-radius:999px;width:100%;margin-top:16px;padding:14px 24px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s;display:block}.mobile-welcome-dismiss-btn:active{transform:translateY(1px)}.changelog-modal-overlay{z-index:1001;opacity:0;visibility:hidden;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s,visibility .3s;display:flex;position:fixed;top:0;left:0}.changelog-modal-overlay.open{opacity:1;visibility:visible}.changelog-modal{background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;border-radius:clamp(13px,1.69271vh,26px);flex-direction:column;width:90%;max-width:560px;max-height:82vh;padding:32px 8px 28px 32px;transition:transform .3s;display:flex;position:relative;transform:translateY(20px)scale(.95);box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}.changelog-modal-overlay.open .changelog-modal{transform:translateY(0)scale(1)}.changelog-close-btn{cursor:pointer;color:#fff6;z-index:1;background:0 0;border:none;padding:4px;font-size:28px;line-height:1;transition:color .2s,transform .2s;position:absolute;top:16px;right:16px}.changelog-close-btn:hover{color:#fffc;transform:scale(1.1)}.changelog-title{text-align:center;color:#fff;letter-spacing:.5px;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text;margin:0 24px 6px 0;font-size:26px;font-weight:600}.changelog-subtitle{text-align:center;color:#fff9;margin:0 24px 18px 0;font-size:14px}.changelog-body{flex:auto;margin-right:4px;padding-right:20px;overflow-y:auto}.changelog-body::-webkit-scrollbar{width:8px}.changelog-body::-webkit-scrollbar-thumb{background:#4facfe59;border-radius:4px}.changelog-version{border-bottom:1px solid #4facfe26;margin-bottom:18px;padding-bottom:18px}.changelog-version:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.changelog-version-header{align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.changelog-version-num{color:#4facfe;font-size:19px;font-weight:700}.changelog-version-date{color:#fff6;font-size:12px}.changelog-section{text-transform:uppercase;letter-spacing:1px;color:#a0d8ef;margin:14px 0 6px;font-size:13px;font-weight:700}.changelog-subhead{color:#ffffffeb;margin:10px 0 4px;font-size:14px;font-weight:600}.changelog-list{margin:0 0 4px;padding:0;list-style:none}.changelog-list li{color:#ffffffd1;margin-bottom:6px;padding-left:18px;font-size:14px;line-height:1.55;position:relative}.changelog-list li:before{content:"•";color:#4facfeb3;position:absolute;left:4px}.changelog-list li.changelog-sub{color:#ffffffa6;padding-left:34px;font-size:13px}.changelog-list li.changelog-sub:before{content:"◦";left:20px}.changelog-body p{color:#ffffffbf;margin:6px 0;font-size:14px;line-height:1.55}.changelog-body strong{color:#fff;font-weight:600}.changelog-dismiss-btn{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border:1px solid #4facfe66;border-radius:999px;flex:none;width:calc(100% - 32px);margin:20px 32px 0 0;padding:13px 24px;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s;display:block}.changelog-dismiss-btn:hover{border-color:#4facfea6;transform:translateY(-2px);box-shadow:0 8px 24px #4facfe33}.changelog-dismiss-btn:active{transform:translateY(0)}.settings-info-version.changelog-openable{cursor:pointer;transition:color .2s}.settings-info-version.changelog-openable:hover{color:#4facfe}.chart-list-modal{z-index:1100;background:#fff;border-radius:clamp(13px,1.69271vh,26px);flex-direction:column;width:90%;max-width:520px;max-height:80vh;padding:24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #0003}.chart-list-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.chart-list-title{color:#333;font-size:18px;font-weight:600}.chart-list-close{cursor:pointer;color:#888;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.chart-list-close:hover{color:#333}.chart-list-toolbar{border-bottom:1px solid #eee;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;display:flex}.chart-list-quota{text-align:center;color:#666;background:#0000000a;border-radius:6px;margin-bottom:12px;padding:6px 8px;font-size:13px}.chart-list-quota.at-limit{color:#e67e22;background:#e67e221a}.toolbar-left{gap:8px;display:flex}.toolbar-right{align-items:center;gap:6px;display:flex}.aaf-toolbar-btn{color:#555;cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.aaf-toolbar-btn:hover{color:#333;background:#eee;border-color:#ccc}.aaf-toolbar-btn .toolbar-icon{font-size:13px}.sort-controls{font-size:12px}.sort-label{color:#888;font-weight:500}.sort-field-select{color:#555;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:999px;padding:4px 10px;font-size:12px}.sort-field-select:focus{border-color:#4facfe;outline:none}.sort-direction-btn{color:#555;cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:14px;transition:all .2s;display:flex}.sort-direction-btn:hover{color:#333;background:#eee;border-color:#ccc}.sort-direction-btn[data-direction=desc]{color:#4facfe;background:#e8f4fd;border-color:#4facfe}.import-success-message{color:#27ae60;text-align:center;background:#e8f8f0;border:1px solid #27ae60;border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:500;animation:.3s fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.chart-list-content{flex:1;overflow-y:auto}.saved-chart-item{background:#f8f9fa;border-radius:clamp(13px,1.69271vh,26px);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;transition:background-color .2s;display:flex}.saved-chart-item:hover{background:#eef2f6}.chart-info{cursor:pointer;flex:1;min-width:0}.chart-name-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.chart-type-badge{text-transform:uppercase;color:#4facfe;background:#e8f4fd;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:600}.chart-type-badge[data-type=event]{color:#e67e22;background:#fef3e8}.chart-type-badge[data-type=horary]{color:#9b59b6;background:#f3e8fe}.chart-name{color:#333;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.rating-badge{color:#fff;border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700}.chart-details{color:#666;padding-left:0;font-size:12px}.chart-actions{flex-shrink:0;gap:4px;margin-left:8px;display:flex}.edit-chart-btn,.delete-chart-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:6px 8px;font-size:14px;transition:opacity .2s,transform .2s}.edit-chart-btn:hover,.delete-chart-btn:hover{opacity:1;transform:scale(1.1)}.delete-chart-btn{color:#e74c3c}.empty-charts-message{text-align:center;color:#888;padding:30px 0;font-style:italic}.loading-charts{text-align:center;color:#888;padding:30px 0}.error{text-align:center;color:#e74c3c;padding:20px}body.dark .chart-list-modal{color:#e8e8e8;background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}body.dark .chart-list-header{border-bottom-color:#4facfe26}body.dark .chart-list-title{color:#fff;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text}body.dark .chart-list-close{color:#666}body.dark .chart-list-close:hover{color:#e8e8e8}body.dark .saved-chart-item{background:#ffffff08}body.dark .saved-chart-item:hover{background:#4facfe14}body.dark .chart-name{color:#e8e8e8}body.dark .chart-details{color:#aaa}body.dark .chart-type-badge{background:#4facfe26}body.dark .chart-type-badge[data-type=event]{background:#e67e2226}body.dark .chart-type-badge[data-type=horary]{background:#9b59b626}body.dark .empty-charts-message,body.dark .loading-charts{color:#666}body.dark .chart-list-toolbar{border-bottom-color:#4facfe26}body.dark .chart-list-quota{color:#aaa;background:#ffffff0d}body.dark .aaf-toolbar-btn{color:#d1d5db;background:#ffffff08;border-color:#4facfe26}body.dark .aaf-toolbar-btn:hover{color:#fff;background:#4facfe1a;border-color:#4facfe4d}body.dark .import-success-message{background:#27ae6026;border-color:#27ae6066}body.dark .sort-label{color:#666}body.dark .sort-field-select{color:#d1d5db;background:#ffffff08;border-color:#4facfe26}body.dark .sort-field-select:focus{border-color:#4facfe66}body.dark .sort-direction-btn{color:#d1d5db;background:#ffffff08;border-color:#4facfe26}body.dark .sort-direction-btn:hover{color:#fff;background:#4facfe1a;border-color:#4facfe4d}body.dark .sort-direction-btn[data-direction=desc]{color:#4facfe;background:#4facfe26;border-color:#4facfe66}.aaf-import-modal{z-index:1100;background:#fff;border-radius:clamp(13px,1.69271vh,26px);flex-direction:column;width:90%;max-width:560px;max-height:85vh;padding:24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #0003}.aaf-import-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.aaf-import-title{color:#333;margin:0;font-size:18px;font-weight:600}.aaf-import-close{cursor:pointer;color:#888;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.aaf-import-close:hover{color:#333}.aaf-import-content{flex:1;overflow-y:auto}.aaf-import-instructions{margin-bottom:16px}.aaf-import-instructions p{color:#555;margin:0 0 8px;font-size:14px}.aaf-help-details{color:#666;font-size:13px}.aaf-help-details summary{cursor:pointer;color:#4facfe;font-weight:500}.aaf-help-details summary:hover{text-decoration:underline}.aaf-help-details ol{margin:10px 0;padding-left:20px}.aaf-help-details li{margin:6px 0;line-height:1.4}.aaf-help-details a{color:#4facfe}.aaf-input-section{margin-bottom:16px}.aaf-textarea{resize:vertical;box-sizing:border-box;border:1px solid #ddd;border-radius:12px;width:100%;min-height:160px;padding:12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;line-height:1.5}.aaf-textarea:focus{border-color:#4facfe;outline:none;box-shadow:0 0 0 3px #4facfe1a}.aaf-textarea::placeholder{color:#aaa}.aaf-preview-section{margin-bottom:16px}.aaf-preview-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;display:flex}.aaf-quota-note{color:#666;background:#0000000a;border-radius:6px;margin-bottom:8px;padding:6px 8px;font-size:13px}.aaf-quota-note.over-limit{color:#e67e22;background:#e67e221a}.aaf-preview-count{color:#27ae60;font-size:14px;font-weight:600}.aaf-clear-btn{color:#888;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px}.aaf-clear-btn:hover{color:#e74c3c}.aaf-preview-list{border:1px solid #eee;border-radius:12px;max-height:200px;overflow-y:auto}.aaf-preview-item{border-bottom:1px solid #f0f0f0;align-items:center;padding:10px 12px;display:flex}.aaf-preview-item:last-child{border-bottom:none}.aaf-preview-item:hover{background:#f9f9f9}.aaf-preview-checkbox{margin-right:12px}.aaf-preview-checkbox input{cursor:pointer;width:16px;height:16px}.aaf-preview-info{flex:1;min-width:0}.aaf-preview-name{color:#333;align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.aaf-type-badge{text-transform:uppercase;color:#4facfe;background:#e8f4fd;border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:9px;font-weight:600}.aaf-type-badge[data-type=event]{color:#e67e22;background:#fef3e8}.aaf-unknown-time{color:#e67e22;flex-shrink:0;font-size:12px}.aaf-preview-details{color:#888;margin-top:2px;font-size:12px}.aaf-errors{background:#fef5f5;border:1px solid #fdd;border-radius:6px;margin-top:12px;padding:10px 12px;display:none}.aaf-errors.show{display:block}.aaf-error-message{color:#e74c3c;font-size:13px}.aaf-error-title{color:#e67e22;margin-bottom:6px;font-size:12px;font-weight:600}.aaf-error-item{color:#c0392b;margin:3px 0;font-family:monospace;font-size:11px}.aaf-progress-section{text-align:center;padding:30px 0}.aaf-progress-bar{background:#eee;border-radius:4px;height:8px;margin-bottom:12px;overflow:hidden}.aaf-progress-fill{background:linear-gradient(90deg,#2c5a85,#4facfe);border-radius:4px;width:0%;height:100%;transition:width .3s}.aaf-progress-text{color:#666;font-size:13px}.aaf-import-actions{border-top:1px solid #eee;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:16px;display:flex}.aaf-btn{cursor:pointer;border:1px solid #0000;border-radius:999px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s}.aaf-btn.primary:hover{border-color:#4facfea6;transform:translateY(-1px);box-shadow:0 4px 12px #4facfe33}.aaf-btn.primary:disabled{opacity:.5;cursor:not-allowed;transform:none}body.dark .aaf-import-modal{color:#e8e8e8;background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}body.dark .aaf-import-header{border-bottom-color:#4facfe26}body.dark .aaf-import-title{color:#fff;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text}body.dark .aaf-import-close{color:#666}body.dark .aaf-import-close:hover{color:#e8e8e8}body.dark .aaf-import-instructions p{color:#aaa}body.dark .aaf-help-details{color:#888}body.dark .aaf-textarea{color:#e8e8e8;background:#ffffff08;border-color:#4facfe26}body.dark .aaf-textarea:focus{border-color:#4facfe66;box-shadow:0 0 10px #4facfe26}body.dark .aaf-textarea::placeholder{color:#555}body.dark .aaf-preview-header{border-bottom-color:#4facfe26}body.dark .aaf-quota-note{color:#aaa;background:#ffffff0d}body.dark .aaf-preview-list{border-color:#4facfe26}body.dark .aaf-preview-item{border-bottom-color:#4facfe1a}body.dark .aaf-preview-item:hover{background:#4facfe0f}body.dark .aaf-preview-name{color:#e8e8e8}body.dark .aaf-preview-details{color:#888}body.dark .aaf-type-badge{background:#4facfe26}body.dark .aaf-type-badge[data-type=event]{background:#e67e2226}body.dark .aaf-errors{background:#e74c3c1a;border-color:#e74c3c33}body.dark .aaf-progress-bar{background:#ffffff0f}body.dark .aaf-import-actions{border-top-color:#4facfe26}body.dark .aaf-clear-btn{color:#666}body.dark .aaf-clear-btn:hover{color:#e74c3c}.aaf-export-modal{z-index:1100;background:#fff;border-radius:clamp(13px,1.69271vh,26px);flex-direction:column;width:90%;max-width:600px;max-height:85vh;padding:24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #0003}.aaf-export-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.aaf-export-title{color:#333;margin:0;font-size:18px;font-weight:600}.aaf-export-close{cursor:pointer;color:#888;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.aaf-export-close:hover{color:#333}.aaf-export-content{flex:1;min-height:0;overflow-y:auto}.aaf-export-instructions{margin-bottom:16px}.aaf-export-instructions p{color:#555;margin:0 0 8px;font-size:14px}.aaf-export-toolbar{background:#f8f9fa;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 12px;display:flex}.aaf-chart-count{color:#555;font-size:14px}.aaf-count-number{color:#4facfe;font-weight:600}.aaf-sort-control{color:#666;align-items:center;gap:8px;font-size:13px;display:flex}.aaf-sort-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:999px;padding:4px 10px;font-size:13px}.aaf-sort-select:focus{border-color:#4facfe;outline:none}.aaf-output-section{margin-bottom:12px}.aaf-output{resize:vertical;box-sizing:border-box;color:#333;background:#fafafa;border:1px solid #ddd;border-radius:12px;width:100%;min-height:250px;max-height:350px;padding:12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;line-height:1.6}.aaf-output:focus{border-color:#4facfe;outline:none}.aaf-loading{color:#888;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px 20px;display:flex}.aaf-loading-spinner{border:3px solid #eee;border-top-color:#4facfe;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite aaf-spin}@keyframes aaf-spin{to{transform:rotate(360deg)}}.aaf-empty-message{text-align:center;color:#888;padding:40px 20px}.aaf-empty-message p{margin:0 0 8px}.aaf-empty-hint{opacity:.8;font-size:13px}.aaf-export-actions{border-top:1px solid #eee;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:16px;display:flex}.aaf-btn{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.aaf-btn.primary{color:#fff;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border-color:#4facfe66}.aaf-btn.primary:hover:not(:disabled){border-color:#4facfea6;transform:translateY(-1px);box-shadow:0 4px 12px #4facfe33}.aaf-btn.primary:disabled{opacity:.5;cursor:not-allowed}.aaf-btn.primary.copied{background:linear-gradient(135deg,#27ae60 0%,#2ecc71 100%)}.aaf-btn.secondary{color:#555;background:#f0f0f0}.aaf-btn.secondary:hover{background:#e5e5e5}.copy-icon{font-size:14px}body.dark .aaf-export-modal{color:#e8e8e8;background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}body.dark .aaf-export-header{border-bottom-color:#4facfe26}body.dark .aaf-export-title{color:#fff;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text}body.dark .aaf-export-close{color:#666}body.dark .aaf-export-close:hover{color:#e8e8e8}body.dark .aaf-export-instructions p{color:#aaa}body.dark .aaf-export-toolbar{background:#ffffff08}body.dark .aaf-chart-count{color:#aaa}body.dark .aaf-sort-control{color:#888}body.dark .aaf-sort-select{color:#e8e8e8;background:#ffffff08;border-color:#4facfe26}body.dark .aaf-sort-select:focus{border-color:#4facfe66}body.dark .aaf-output{color:#c8c8c8;background:#ffffff08;border-color:#4facfe26}body.dark .aaf-output:focus{border-color:#4facfe66;box-shadow:0 0 10px #4facfe26}body.dark .aaf-loading{color:#666}body.dark .aaf-loading-spinner{border-color:#4facfe #4facfe26 #4facfe26}body.dark .aaf-empty-message{color:#666}body.dark .aaf-export-actions{border-top-color:#4facfe26}body.dark .aaf-btn.secondary{color:#d1d5db;background:#ffffff08;border-color:#4facfe26}body.dark .aaf-btn.secondary:hover{color:#fff;background:#4facfe1a;border-color:#4facfe4d}.aaf-export-modal .aaf-help-details{color:#666;font-size:13px}.aaf-export-modal .aaf-help-details summary{cursor:pointer;color:#4facfe;font-weight:500}.aaf-export-modal .aaf-help-details summary:hover{text-decoration:underline}.aaf-export-modal .aaf-help-details ol{margin:10px 0;padding-left:20px}.aaf-export-modal .aaf-help-details li{margin:6px 0;line-height:1.4}.aaf-export-modal .aaf-help-details a{color:#4facfe}body.dark .aaf-export-modal .aaf-help-details{color:#888}.chart-save-modal{z-index:1100;background:#fff;border-radius:clamp(13px,1.69271vh,26px);flex-direction:column;width:90%;max-width:520px;max-height:85vh;padding:24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #0003}.chart-save-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.chart-save-title{color:#333;font-size:18px;font-weight:600}.chart-save-close{cursor:pointer;color:#888;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.chart-save-close:hover{color:#333}.chart-save-content{flex:1;padding-right:8px;overflow-y:auto}.chart-save-form{flex-direction:column;gap:16px;display:flex}.form-section{flex-direction:column;gap:12px;display:flex}.form-section-title{color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:13px;font-weight:600}.form-row{gap:12px;display:flex}.form-group{flex-direction:column;flex:1;gap:4px;display:flex}.form-group.half{flex:0 0 calc(50% - 6px)}.form-group.third{flex:0 0 calc(33.33% - 8px)}.form-label{color:#555;font-size:12px;font-weight:500}.form-input,.form-select{background:#fff;border:1px solid #e1e5e9;border-radius:999px;padding:10px 16px;font-size:14px;transition:border-color .2s}.form-input:focus,.form-select:focus{border-color:#4facfe;outline:none}.form-input::placeholder{color:#aaa}.form-input.readonly{color:#666;background:#f5f5f5}.chart-type-selector{gap:8px;display:flex}.chart-type-btn{color:#555;cursor:pointer;background:#fff;border:1px solid #e1e5e9;border-radius:999px;flex:1;padding:10px 12px;font-size:13px;font-weight:500;transition:all .2s}.chart-type-btn:hover{background:#4facfe0d;border-color:#4facfe}.chart-type-btn.active{color:#fff;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border-color:#4facfe66}.gender-selector{gap:8px;display:flex}.gender-btn{color:#555;cursor:pointer;background:#fff;border:1px solid #e1e5e9;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.gender-btn:hover{border-color:#4facfe}.gender-btn.active{color:#4facfe;background:#4facfe1a;border-color:#4facfe}.rating-select{cursor:pointer;background:#fff;border:1px solid #e1e5e9;border-radius:999px;padding:10px 16px;font-size:14px}.rating-description{color:#888;margin-top:4px;font-size:11px;font-style:italic}.chart-save-actions{border-top:1px solid #eee;gap:12px;margin-top:20px;padding-top:16px;display:flex}.save-btn{cursor:pointer;border:1px solid #0000;border-radius:999px;flex:1;padding:12px;font-size:14px;font-weight:600;transition:all .2s}.save-btn.primary{color:#fff;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border-color:#4facfe66}.save-btn.primary:hover{border-color:#4facfea6;transform:translateY(-2px);box-shadow:0 4px 12px #4facfe33}.save-btn.primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.save-btn.secondary{color:#555;background:#f0f2f5}.save-btn.secondary:hover{background:#e4e7eb}.chart-save-error{color:#e74c3c;text-align:center;background:#e74c3c1a;border-radius:6px;padding:8px;font-size:13px;display:none}.chart-save-error.show{display:block}.chart-save-quota{text-align:center;color:#666;background:#0000000a;border-radius:6px;margin-top:12px;padding:8px;font-size:13px}.chart-save-quota.at-limit{color:#e67e22;background:#e67e221a}body.dark .chart-save-modal{color:#e8e8e8;background:linear-gradient(145deg,#10131d 0%,#121a2e 50%,#0b0d15 100%);border:1px solid #4facfe33;box-shadow:0 20px 60px #00000080,0 0 40px #4facfe1a,inset 0 1px #ffffff0d}body.dark .chart-save-header{border-bottom-color:#4facfe26}body.dark .chart-save-title{color:#fff;background:linear-gradient(135deg,#fff 0%,#a0d8ef 100%);-webkit-text-fill-color:transparent;background-clip:text}body.dark .chart-save-close{color:#666}body.dark .chart-save-close:hover{color:#e8e8e8}body.dark .form-section-title{color:#888}body.dark .form-label{color:#aaa}body.dark .form-input,body.dark .form-select,body.dark .rating-select{color:#e8e8e8;background:#ffffff08;border-color:#4facfe26}body.dark .form-input:focus,body.dark .form-select:focus,body.dark .rating-select:focus{border-color:#4facfe66;box-shadow:0 0 10px #4facfe26}body.dark .form-input::placeholder{color:#555}body.dark .form-input.readonly{color:#888;background:#ffffff0d}body.dark .chart-type-btn,body.dark .gender-btn{color:#d1d5db;background:#ffffff08;border-color:#4facfe26}body.dark .chart-type-btn:hover,body.dark .gender-btn:hover{background:#4facfe1a;border-color:#4facfe66}body.dark .chart-type-btn.active{color:#fff;background:linear-gradient(135deg,#1b344d 0%,#111c2a 100%);border-color:#4facfe66}body.dark .gender-btn.active{color:#4facfe;background:#4facfe26;border-color:#4facfe}body.dark .chart-save-actions{border-top-color:#4facfe26}body.dark .chart-save-quota{color:#aaa;background:#ffffff0d}body.dark .save-btn.secondary{color:#d1d5db;background:#ffffff08;border-color:#4facfe26}body.dark .save-btn.secondary:hover{color:#fff;background:#4facfe1a;border-color:#4facfe4d}body.dark .rating-description{color:#666}
