@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-soft:#f9fafb;--color-text:#0f172a;--color-text-muted:#475569;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-soft:#dbeafe;--color-success:#0f766e;--color-success-soft:#ccfbf1;--color-error:#b91c1c;--color-error-soft:#fee2e2;--color-warning:#b45309;--color-warning-soft:#fef3c7;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 6px 20px #0f172a14;--shadow-lg:0 12px 32px #0f172a1f;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--transition-fast:.18s ease;--transition-base:.26s ease}[data-theme=dark]{--color-bg:#0b1220;--color-surface:#101827;--color-surface-soft:#151f31;--color-text:#e2e8f0;--color-text-muted:#94a3b8;--color-border:#22304a;--color-border-strong:#334155;--color-accent:#3b82f6;--color-accent-hover:#2563eb;--color-accent-soft:#3b82f63d;--color-success:#2dd4bf;--color-success-soft:#2dd4bf33;--color-error:#f87171;--color-error-soft:#f8717133;--color-warning:#fbbf24;--color-warning-soft:#fbbf2433;--shadow-sm:0 1px 2px #02061759;--shadow-md:0 8px 24px #02061780;--shadow-lg:0 16px 38px #0206178f}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at top, color-mix(in srgb, var(--color-accent) 12%, transparent), transparent 58%), var(--color-bg);color:var(--color-text);transition:background var(--transition-base), color var(--transition-fast);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}button,input{font:inherit}a{color:inherit}.sr-only{clip:rect(0 0 0 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100vh}.app-container{width:min(1160px,100% - 2rem);padding:var(--space-8) 0 var(--space-10);margin:0 auto}.app-main{gap:var(--space-6);display:grid}.surface-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.card-hover{transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-fast)}.card-hover:hover{box-shadow:var(--shadow-lg);border-color:var(--color-border-strong);transform:translateY(-2px)}.app-header{gap:var(--space-5);margin-bottom:var(--space-6);display:grid}.app-header__top-row{align-items:center;gap:var(--space-4);display:flex}.brand{align-items:center;gap:var(--space-4);min-width:0;color:inherit;flex:1;text-decoration:none;display:flex}.brand__logo{object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:52px;height:52px;padding:.4rem}.brand__title-wrap h1{letter-spacing:-.02em;margin:0;font-size:clamp(1.45rem,2vw,2.1rem)}.brand__title-wrap p{color:var(--color-text-muted);margin:.35rem 0 0}.app-header__meta{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.header-actions{align-items:center;gap:var(--space-2);display:inline-flex}.header-hint{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:.9rem;font-weight:500;display:inline-flex}.theme-toggle{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .75rem;display:inline-flex}.menu-toggle{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);width:2.4rem;height:2.4rem;color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;place-items:center;display:inline-grid}.theme-toggle:hover,.menu-toggle:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.theme-toggle:focus-visible,.menu-toggle:focus-visible,.button:focus-visible,.icon-button:focus-visible,.toast__close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.button:focus-visible,.theme-toggle:focus-visible,.menu-toggle:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 28%, transparent)}.sidebar-overlay{z-index:50;opacity:0;pointer-events:none;transition:opacity var(--transition-base);background:#0f172a3d;border:0;position:fixed;inset:0}.sidebar-overlay--open{opacity:1;pointer-events:auto}.sidebar-drawer{background:var(--color-surface);border-right:1px solid var(--color-border);width:min(320px,100vw - 2.5rem);height:100dvh;box-shadow:var(--shadow-lg);z-index:60;padding:var(--space-5);transition:transform var(--transition-base);position:fixed;top:0;left:0;transform:translate(-110%)}.sidebar-drawer--open{transform:translate(0)}.sidebar-drawer__header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.sidebar-drawer__header h2{margin:0;font-size:1rem}.sidebar-nav{gap:var(--space-2);display:grid}.sidebar-nav__label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.15rem;padding:0 .75rem;font-size:.72rem;font-weight:600}.sidebar-nav__link{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);background:var(--color-surface-soft);min-height:2.5rem;color:var(--color-text);transition:all var(--transition-fast);border-radius:.75rem;padding:0 .75rem;font-weight:500;text-decoration:none;display:inline-flex}.sidebar-nav__link:hover{border-color:var(--color-border-strong)}.sidebar-nav__link--active{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));border-color:color-mix(in srgb, var(--color-accent) 40%, transparent);color:var(--color-accent);font-weight:600}.sidebar-nav__link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.status-badge{border:1px solid #0000;border-radius:999px;align-items:center;gap:.45rem;padding:.42rem .74rem;font-size:.84rem;font-weight:600;display:inline-flex}.status-badge--up{background:var(--color-success-soft);color:var(--color-success);border-color:color-mix(in srgb, var(--color-success) 35%, transparent)}.status-badge--down{background:var(--color-error-soft);color:var(--color-error);border-color:color-mix(in srgb, var(--color-error) 35%, transparent)}.status-badge--checking{background:var(--color-warning-soft);color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 35%, transparent)}.upload-panel{padding:var(--space-6)}.upload-alternative{padding:var(--space-5);gap:var(--space-4);display:grid}.upload-alternative__header h2{letter-spacing:-.01em;margin:0;font-size:1.05rem}.upload-alternative__header p{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:.93rem}.upload-alternative__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.upload-alternative__cookie{gap:var(--space-2);display:grid}.upload-alternative__cookie label{font-size:.9rem;font-weight:600}.upload-alternative__cookie-input{resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft);width:100%;min-height:5.8rem;color:var(--color-text);padding:.65rem .75rem;line-height:1.35}.upload-alternative__cookie-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.upload-alternative__cookie p{color:var(--color-text-muted);margin:0;font-size:.86rem}.upload-alternative__steps{color:color-mix(in srgb, var(--color-text) 82%, var(--color-text-muted));gap:.35rem;margin:0;padding-left:1.2rem;display:grid}.upload-alternative__script{color:var(--color-text-muted);margin:0;font-size:.9rem}.upload-alternative__script code{background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.1rem .35rem;font-size:.86rem}.upload-alternative__header h2{align-items:center;gap:var(--space-2);display:flex}.upload-alternative__login-form{gap:var(--space-4);display:grid}.upload-alternative__field{gap:var(--space-1);display:grid}.upload-alternative__field label{font-size:.9rem;font-weight:600}.upload-alternative__input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft);width:100%;color:var(--color-text);padding:.6rem .75rem;font-size:.95rem;line-height:1.4;transition:border-color .15s,outline .15s}.upload-alternative__input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.upload-alternative__input:disabled{opacity:.6;cursor:not-allowed}.upload-alternative__password-wrapper{align-items:center;display:flex;position:relative}.upload-alternative__password-wrapper .upload-alternative__input{padding-right:2.6rem}.upload-alternative__toggle-password{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;transition:color .15s;display:flex;position:absolute;right:.5rem}.upload-alternative__toggle-password:hover{color:var(--color-text)}.upload-alternative__info{color:var(--color-text-muted);margin:0;font-size:.86rem;line-height:1.45}.upload-alternative__advanced{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.upload-alternative__advanced-toggle{align-items:center;gap:var(--space-1);cursor:pointer;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;font-size:.88rem;font-weight:500;list-style:none;display:flex}.upload-alternative__advanced-toggle::-webkit-details-marker{display:none}.upload-alternative__advanced-toggle svg{transition:transform .2s}.upload-alternative__advanced[open]>.upload-alternative__advanced-toggle svg{transform:rotate(180deg)}.upload-alternative__advanced-content{gap:var(--space-3);margin-top:var(--space-3);display:grid}.upload-panel__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.upload-panel__header h2{letter-spacing:-.02em;margin:0;font-size:1.1rem}.upload-panel__header p{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:.94rem}.upload-panel__toggle{flex-shrink:0}.upload-panel__chevron{transition:transform var(--transition-fast)}.upload-panel__chevron--open{transform:rotate(180deg)}.upload-form{gap:var(--space-5);display:grid}.upload-actions,.upload-submit{justify-content:center;display:flex}.dropzone-wrapper{gap:var(--space-3);display:grid}.dropzone{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-soft);text-align:center;justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);transition:all var(--transition-base);display:grid}.dropzone--active,.dropzone--filled{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface))}.dropzone:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 20%, transparent)}.dropzone--disabled{opacity:.7;pointer-events:none}.dropzone__icon{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface));width:2.8rem;height:2.8rem;color:var(--color-accent);border-radius:50%;place-items:center;display:grid}.dropzone__content strong{margin-bottom:.2rem;font-size:1.02rem;display:block}.dropzone__content p{color:var(--color-text-muted);margin:0;font-size:.94rem}.selected-file{justify-content:space-between;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:.68rem .78rem;font-size:.92rem;display:flex}.icon-button{border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:inline-grid}.icon-button:hover{border-color:var(--color-border-strong);color:var(--color-text)}.button{cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:.66rem 1.04rem;font-weight:600;display:inline-flex}.button:disabled{opacity:.6;cursor:not-allowed}.button--primary{background:var(--color-accent);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-accent-hover)}.button--secondary{background:var(--color-surface-soft);color:var(--color-text);border-color:var(--color-border-strong)}.button--secondary:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface)}.button--outline{border-color:var(--color-border-strong);color:var(--color-text);background:0 0}.button--outline:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.button--sm{padding:.46rem .78rem;font-size:.88rem}.button--md{min-height:2.4rem}.button--lg{min-width:12rem;min-height:2.8rem}.spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:.95rem;height:.95rem;animation:.8s linear infinite spin}.alert-error{gap:var(--space-3);border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--color-error) 35%, transparent);color:var(--color-error);background:var(--color-error-soft);align-items:flex-start;padding:.9rem 1rem;display:flex}.alert-error p{margin:0}.results-panel{gap:var(--space-6);min-width:0;display:grid}.results-foldable{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden}.results-foldable__summary{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-4) var(--space-5);transition:background var(--transition-fast), border-color var(--transition-fast);border-bottom:1px solid #0000;list-style:none;display:flex}.results-foldable__summary::-webkit-details-marker{display:none}.results-foldable__summary:hover{background:var(--color-surface-soft)}.results-foldable__summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.results-foldable__title{align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.results-foldable__chevron{color:var(--color-text-muted);transition:transform var(--transition-fast)}.results-foldable[open] .results-foldable__summary{border-color:var(--color-border)}.results-foldable[open] .results-foldable__chevron{transform:rotate(180deg)}.results-foldable__content{padding:var(--space-4) var(--space-5) var(--space-5)}.schedule-preview{gap:var(--space-4);display:grid}.schedule-preview__header h2{letter-spacing:-.02em;margin:0;font-size:1.25rem}.schedule-preview__header p{color:var(--color-text-muted);margin:.35rem 0 0}.schedule-preview__calendar{padding:var(--space-4)}.schedule-preview__hint{color:var(--color-text-muted);margin:0;font-size:.9rem}.schedule-preview .fc{--fc-border-color:var(--color-border);--fc-button-bg-color:var(--color-accent);--fc-button-border-color:var(--color-accent);--fc-button-hover-bg-color:color-mix(in srgb, var(--color-accent) 85%, black);--fc-button-hover-border-color:color-mix(in srgb, var(--color-accent) 85%, black);--fc-button-active-bg-color:color-mix(in srgb, var(--color-accent) 80%, black);--fc-button-active-border-color:color-mix(in srgb, var(--color-accent) 80%, black);--fc-page-bg-color:transparent;--fc-neutral-bg-color:var(--color-surface-soft);--fc-event-bg-color:color-mix(in srgb, var(--color-accent) 85%, #111827);--fc-event-border-color:color-mix(in srgb, var(--color-accent) 65%, #111827);--fc-event-text-color:#fff}.schedule-preview .fc .fc-toolbar-title{font-size:1.05rem}.schedule-preview .fc .fc-button{text-transform:none;font-weight:600}.schedule-event{min-width:0;display:block}.schedule-event strong,.schedule-event span{line-height:1.2;display:block}.schedule-event strong{margin-bottom:.08rem;font-size:.76rem}.schedule-event__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-left:.18rem;padding-right:.18rem;overflow:hidden}.schedule-event--month .schedule-event__title{font-size:.75rem}.schedule-event--week .schedule-event__title{font-size:.78rem}.schedule-preview .fc .fc-daygrid-event-harness,.schedule-preview .fc .fc-daygrid-event{min-width:0}.schedule-preview .fc .fc-daygrid-dot-event .fc-event-title,.schedule-preview .fc .fc-daygrid-block-event .fc-event-title,.schedule-preview .fc .fc-timegrid-event .fc-event-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.schedule-preview .fc .fc-timegrid-event .fc-event-main{padding:2px 4px;overflow:hidden}.schedule-preview .fc .fc-timegrid-event{border-radius:6px}.schedule-preview .fc .fc-daygrid-more-link.fc-more-link{border:1px solid color-mix(in srgb, var(--color-accent) 35%, transparent);background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));color:var(--color-accent);white-space:nowrap;transition:all var(--transition-fast);border-radius:999px;justify-content:center;align-items:center;margin-top:.18rem;padding:.12rem .5rem;font-size:.74rem;font-weight:700;line-height:1.1;text-decoration:none;display:inline-flex}.schedule-preview .fc .fc-daygrid-more-link.fc-more-link:hover{background:color-mix(in srgb, var(--color-accent) 20%, var(--color-surface));border-color:color-mix(in srgb, var(--color-accent) 50%, transparent)}.schedule-preview .fc .fc-daygrid-more-link.fc-more-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.schedule-preview .fc .fc-popover{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg);border-radius:var(--radius-md)}.schedule-preview .fc .fc-popover-header{background:var(--color-surface-soft);color:var(--color-text);border-bottom:1px solid var(--color-border);padding:.45rem .6rem}.schedule-preview .fc .fc-popover-body{max-height:260px;padding:.35rem;overflow:auto}.schedule-preview .fc .fc-popover-body .fc-daygrid-event-harness{margin:.18rem 0}.schedule-preview .fc .fc-popover-body .fc-daygrid-event{border-radius:6px}.results-panel__header h2,.results-panel__header p,.results-panel__actions h3{margin:0}.results-panel__header p{margin-top:var(--space-2);color:var(--color-text-muted);font-size:.97rem}.stats-grid{gap:var(--space-4);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.stats-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);min-width:0;overflow:hidden}.stats-card__header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.stats-card__header h3{margin:0;font-size:1rem}.stats-card__icon{color:var(--color-accent)}.stats-card__body{gap:.55rem;display:grid}.stats-line{align-items:start;gap:var(--space-2);color:color-mix(in srgb, var(--color-text) 78%, var(--color-text-muted));grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.stats-line__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.stats-line__value{text-align:right;font-variant-numeric:tabular-nums;justify-self:end;min-width:2.4rem}.stats-line--list .stats-line__label{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.stats-line--stats .stats-line__label{white-space:nowrap}.stats-line strong{color:var(--color-text)}.export-actions{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.charts-grid{gap:var(--space-4);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);min-width:0}.chart-card h3{margin:0 0 var(--space-4);font-size:1rem}.chart-list{gap:var(--space-3);display:grid}.chart-row{gap:.42rem;display:grid}.chart-row__meta{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:0;display:flex}.chart-row__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:color-mix(in srgb, var(--color-text) 78%, var(--color-text-muted));flex:1;overflow:hidden}.chart-row__track{background:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface-soft));border-radius:999px;height:.58rem;overflow:hidden}.chart-row__bar{border-radius:inherit;background:linear-gradient(90deg, var(--color-accent), color-mix(in srgb, var(--color-accent) 70%, white));height:100%;transition:width .46s;display:block}.chart-row__value{font-variant-numeric:tabular-nums;flex-shrink:0}.toast-viewport{z-index:40;gap:var(--space-2);width:min(360px,100vw - 2rem);display:grid;position:fixed;bottom:1rem;right:1rem}.toast{gap:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md);grid-template-columns:auto 1fr auto;align-items:start;padding:.78rem .86rem;animation:.22s fadeUp;display:grid}.toast__icon{margin-top:.1rem}.toast--success .toast__icon{color:var(--color-success)}.toast--error .toast__icon{color:var(--color-error)}.toast__content strong{font-size:.92rem;display:block}.toast__content p{color:color-mix(in srgb, var(--color-text) 72%, var(--color-text-muted));margin:.15rem 0 0;font-size:.86rem}.toast__close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:0;min-width:1.8rem;min-height:1.8rem;padding:.15rem}[data-theme=dark] .header-hint,[data-theme=dark] .results-panel__header p,[data-theme=dark] .stats-line,[data-theme=dark] .chart-row__label,[data-theme=dark] .toast__content p{color:color-mix(in srgb, var(--color-text) 86%, var(--color-text-muted))}[data-theme=dark] .button--secondary,[data-theme=dark] .button--outline,[data-theme=dark] .selected-file,[data-theme=dark] .toast,[data-theme=dark] .menu-toggle,[data-theme=dark] .sidebar-drawer,[data-theme=dark] .sidebar-nav__link,[data-theme=dark] .app-footer{border-color:var(--color-border-strong)}.field-error{color:var(--color-error);margin:0;font-size:.84rem}.app-footer{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--color-border);gap:var(--space-2) var(--space-4);color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.app-footer p{margin:0}.app-footer a{color:var(--color-accent);font-weight:600;text-decoration:none}.app-footer a:hover{text-decoration:underline}.landing-page{gap:var(--space-8);display:grid}.landing-hero{text-align:center;padding:var(--space-8) var(--space-4) var(--space-6)}.landing-hero__badge{text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));color:var(--color-accent);border:1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);margin-bottom:var(--space-4);border-radius:999px;padding:.28rem .78rem;font-size:.78rem;font-weight:600;display:inline-block}.landing-hero__title{margin:0 auto var(--space-3);letter-spacing:-.03em;max-width:640px;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.15}.landing-hero__subtitle{margin:0 auto var(--space-6);max-width:520px;color:var(--color-text-muted);font-size:1.05rem;line-height:1.6}.landing-hero__subtitle code{background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface-soft));border-radius:var(--radius-sm);padding:.12em .4em;font-size:.88rem;font-weight:500}.landing-hero__cta{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.landing-section{gap:var(--space-5);display:grid}.landing-section__title{letter-spacing:-.02em;margin:0;font-size:1.3rem}.landing-features{gap:var(--space-4);grid-template-columns:repeat(1,1fr);display:grid}.landing-feature{padding:var(--space-5);gap:var(--space-3);display:grid}.landing-feature__icon{border-radius:var(--radius-md);place-items:center;width:2.8rem;height:2.8rem;display:grid}.landing-feature__icon--blue{background:color-mix(in srgb, #3b82f6 14%, var(--color-surface));color:#3b82f6}.landing-feature__icon--green{background:color-mix(in srgb, #22c55e 14%, var(--color-surface));color:#22c55e}.landing-feature__icon--purple{background:color-mix(in srgb, #a855f7 14%, var(--color-surface));color:#a855f7}.landing-feature h3{margin:0;font-size:1.05rem}.landing-feature p{color:var(--color-text-muted);margin:0;font-size:.92rem;line-height:1.5}.landing-nav-grid{gap:var(--space-3);grid-template-columns:repeat(1,1fr);display:grid}.landing-nav-card{align-items:center;gap:var(--space-3);padding:var(--space-4);color:inherit;text-decoration:none;display:flex}.landing-nav-card>svg{color:var(--color-accent);flex-shrink:0}.landing-nav-card div{flex:1;min-width:0}.landing-nav-card h3{margin:0;font-size:.98rem}.landing-nav-card p{color:var(--color-text-muted);margin:.15rem 0 0;font-size:.86rem}.landing-nav-card__arrow{color:var(--color-text-muted);transition:transform var(--transition-fast);flex-shrink:0}.landing-nav-card:hover .landing-nav-card__arrow{color:var(--color-accent);transform:translate(3px)}.about-text{padding:var(--space-5)}.about-text p{margin:0 0 var(--space-3);color:color-mix(in srgb, var(--color-text) 85%, var(--color-text-muted));line-height:1.7}.about-text p:last-child{margin-bottom:0}.about-tech-grid{gap:var(--space-4);grid-template-columns:repeat(1,1fr);display:grid}.about-tech-card{padding:var(--space-5);gap:var(--space-3);display:grid}.about-tech-card__icon{border-radius:var(--radius-md);place-items:center;width:2.4rem;height:2.4rem;display:grid}.about-tech-card__icon--blue{background:color-mix(in srgb, #3b82f6 14%, var(--color-surface));color:#3b82f6}.about-tech-card__icon--green{background:color-mix(in srgb, #22c55e 14%, var(--color-surface));color:#22c55e}.about-tech-card h3{margin:0;font-size:1.05rem}.about-tech-list{color:color-mix(in srgb, var(--color-text) 82%, var(--color-text-muted));gap:.35rem;margin:0;padding-left:1.2rem;font-size:.92rem;display:grid}.about-author{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);display:flex}.about-author__info{flex:1}.about-author__info h3{margin:0;font-size:1.02rem}.about-author__info p{color:var(--color-text-muted);margin:.15rem 0 0;font-size:.9rem}.guide-cta{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);display:flex}.guide-cta>svg{color:var(--color-accent);flex-shrink:0}.guide-cta div{flex:1}.guide-cta h3{margin:0;font-size:1rem}.guide-cta p{color:var(--color-text-muted);margin:.15rem 0 0;font-size:.9rem}.guide-page{gap:var(--space-8);display:grid}.guide-hero{text-align:center;padding:var(--space-8) var(--space-4)}.guide-hero__icon{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));width:4rem;height:4rem;color:var(--color-accent);margin-bottom:var(--space-4);place-items:center;display:inline-grid}.guide-hero__title{margin:0 0 var(--space-2);letter-spacing:-.03em;font-size:clamp(1.8rem,3vw,2.6rem)}.guide-hero__subtitle{max-width:540px;color:var(--color-text-muted);margin:0 auto;font-size:1.08rem;line-height:1.6}.guide-section{gap:var(--space-5);display:grid}.guide-section__title{letter-spacing:-.02em;align-items:center;gap:var(--space-2);margin:0;font-size:1.4rem;display:flex}.guide-section__desc{color:var(--color-text-muted);margin:-.5rem 0 0}.guide-steps{align-items:stretch;gap:var(--space-3);display:flex}.guide-steps__arrow{color:var(--color-text-muted);flex-shrink:0;place-items:center;display:grid}.guide-step{padding:var(--space-5);text-align:center;gap:var(--space-3);flex:1;justify-items:center;display:grid;position:relative}.guide-step__number{top:var(--space-3);left:var(--space-3);background:var(--color-accent);color:#fff;border-radius:50%;place-items:center;width:1.6rem;height:1.6rem;font-size:.78rem;font-weight:700;display:grid;position:absolute}.guide-step__icon{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));width:3rem;height:3rem;color:var(--color-accent);border-radius:50%;place-items:center;display:grid}.guide-step h3{margin:0;font-size:1.05rem}.guide-step p{color:var(--color-text-muted);margin:0;font-size:.92rem;line-height:1.5}.guide-step code{background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface-soft));border-radius:var(--radius-sm);padding:.12em .4em;font-size:.82rem;font-weight:500}.guide-details{gap:var(--space-4);display:grid}.guide-detail-card{overflow:hidden}.guide-detail-card__header{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.guide-detail-card__icon{border-radius:var(--radius-md);flex-shrink:0;place-items:center;width:2.4rem;height:2.4rem;display:grid}.guide-detail-card__icon--blue{background:color-mix(in srgb, #3b82f6 14%, var(--color-surface));color:#3b82f6}.guide-detail-card__icon--green{background:color-mix(in srgb, #22c55e 14%, var(--color-surface));color:#22c55e}.guide-detail-card__icon--purple{background:color-mix(in srgb, #a855f7 14%, var(--color-surface));color:#a855f7}.guide-detail-card__header h3{margin:0;font-size:1.02rem}.guide-detail-card__header p{color:var(--color-text-muted);margin:.15rem 0 0;font-size:.88rem}.guide-detail-card__body{padding:var(--space-4) var(--space-5);gap:var(--space-4);display:grid}.guide-ol{color:color-mix(in srgb, var(--color-text) 85%, var(--color-text-muted));gap:.5rem;margin:0;padding-left:1.3rem;display:grid}.guide-ol--compact{gap:.3rem;font-size:.9rem}.guide-ol code{background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface-soft));border-radius:var(--radius-sm);padding:.12em .4em;font-size:.82rem}.guide-tip{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface-soft));border:1px solid color-mix(in srgb, var(--color-accent) 20%, transparent);color:color-mix(in srgb, var(--color-text) 88%, var(--color-text-muted));font-size:.9rem;display:flex}.guide-tip svg{color:var(--color-accent);flex-shrink:0;margin-top:.15rem}.guide-formats{gap:var(--space-4);grid-template-columns:repeat(1,1fr);display:grid}.guide-format-card{padding:var(--space-5);gap:var(--space-3);display:grid}.guide-format-card__badge{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;width:fit-content;padding:.28rem .68rem;font-size:.78rem;font-weight:700}.guide-format-card__badge--csv{background:color-mix(in srgb, #3b82f6 16%, var(--color-surface));color:#3b82f6}.guide-format-card__badge--ics{background:color-mix(in srgb, #a855f7 16%, var(--color-surface));color:#a855f7}.guide-format-card h3{margin:0;font-size:1.1rem}.guide-format-card>p{color:var(--color-text-muted);margin:0;font-size:.92rem}.guide-format-card__compat{gap:var(--space-2);flex-wrap:wrap;display:flex}.guide-compat-tag{background:var(--color-surface-soft);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .55rem;font-size:.78rem;font-weight:500;display:inline-flex}.guide-format-card__steps{border-top:1px solid var(--color-border);padding-top:var(--space-3);font-size:.92rem}.guide-format-card__steps strong{margin-bottom:var(--space-2);font-size:.88rem;display:block}.guide-faq{gap:var(--space-2);display:grid}.guide-faq-item{overflow:hidden}.guide-faq-item__trigger{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-5);cursor:pointer;color:var(--color-text);font:inherit;text-align:left;background:0 0;border:0;font-weight:500;display:flex}.guide-faq-item__trigger:hover{background:var(--color-surface-soft)}.guide-faq-item__trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.guide-faq-item__chevron{transition:transform var(--transition-fast);color:var(--color-text-muted);flex-shrink:0}.guide-faq-item--open .guide-faq-item__chevron{transform:rotate(180deg)}.guide-faq-item__content{transition:grid-template-rows var(--transition-base);grid-template-rows:0fr;display:grid}.guide-faq-item--open .guide-faq-item__content{grid-template-rows:1fr}.guide-faq-item__content p{padding:0 var(--space-5) 0;color:var(--color-text-muted);margin:0;font-size:.94rem;line-height:1.6;overflow:hidden}.guide-faq-item--open .guide-faq-item__content p{padding-bottom:var(--space-4)}@media (width>=768px){.stats-grid,.charts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-container{width:min(1160px,100% - 3rem)}.toast-viewport{top:1rem;bottom:auto}.guide-formats{grid-template-columns:repeat(2,1fr)}.landing-features{grid-template-columns:repeat(3,1fr)}.landing-nav-grid,.about-tech-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.stats-grid,.charts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.app-container{width:min(1160px,100% - 1.25rem);padding-top:var(--space-6);padding-bottom:var(--space-8)}.app-main{gap:var(--space-5)}.upload-panel{padding:var(--space-5)}.upload-alternative{padding:var(--space-4)}.upload-alternative__actions{grid-template-columns:1fr;display:grid}.upload-panel__header{margin-bottom:var(--space-4);flex-direction:column;align-items:stretch}.dropzone{padding:var(--space-6) var(--space-4);gap:var(--space-4)}.button{min-height:2.75rem}.button--sm,.button--md,.button--lg{width:100%}.upload-actions{justify-content:stretch}.export-actions{grid-template-columns:1fr;display:grid}.results-panel{gap:var(--space-5)}.results-foldable__summary{padding:var(--space-4)}.results-foldable__content{padding:var(--space-3) var(--space-4) var(--space-4)}.schedule-preview .fc .fc-toolbar{align-items:stretch;gap:var(--space-2);flex-direction:column}.schedule-preview .fc .fc-toolbar-chunk{justify-content:center;display:flex}.brand__title-wrap p{display:none}.brand__logo{width:46px;height:46px}.brand__title-wrap h1{font-size:1.45rem}.toast-viewport{width:calc(100vw - 1.25rem);bottom:.625rem;right:.625rem}.app-footer{margin-top:var(--space-6);flex-direction:column;align-items:flex-start}.landing-hero{padding:var(--space-6) var(--space-2)}.landing-hero__cta{flex-direction:column;align-items:stretch}.guide-cta,.about-author{text-align:center;padding:var(--space-4);flex-direction:column}.guide-steps{flex-direction:column}.guide-steps__arrow{transform:rotate(90deg)}.guide-hero{padding:var(--space-6) var(--space-2)}.guide-detail-card__header,.guide-detail-card__body,.guide-faq-item__trigger{padding:var(--space-3) var(--space-4)}.guide-faq-item__content p{padding-left:var(--space-4);padding-right:var(--space-4)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.22s fadeIn}.fade-up{animation:.28s fadeUp}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
