:root{--color-primary: #0b5fff;--color-primary-dark: #0048cc;--color-danger: #b91c1c;--color-warning: #92400e;--color-info: #0369a1;--color-success: #15803d;--color-bg: #f1f5f9;--color-surface: #ffffff;--color-text: #0f172a;--color-muted: #475569;--color-border: #e2e8f0;--color-action: #0b5fff;--color-subtle: #f8fafc;--color-info-bg: #e0f2fe;--color-danger-bg: #fef2f2;--color-warning-bg: #fef3c7;--color-success-bg: #f0fdf4;--color-control-border: #64748b;--radius: 12px;--nav-height: 68px}:root[data-theme=dark]{--color-primary: #a3c3ff;--color-primary-dark: #154dc5;--color-action: #235de0;--color-danger: #fca5a5;--color-warning: #fcd68d;--color-info: #a5d8ff;--color-success: #a0e8bb;--color-bg: #0b1220;--color-surface: #121e30;--color-subtle: #19273c;--color-text: #edf3fc;--color-muted: #b0bfd4;--color-border: #34445e;--color-control-border: #6c819f;--color-info-bg: #142f48;--color-danger-bg: #3c2030;--color-warning-bg: #3c301c;--color-success-bg: #17392c}*{box-sizing:border-box}html{scroll-padding-block:6rem}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55;background:var(--color-bg);color:var(--color-text)}h1{font-size:clamp(1.5rem,2.5vw,1.9rem);line-height:1.25;letter-spacing:-.035em;margin:0}a{color:var(--color-primary)}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}select{color:var(--color-text);background:var(--color-surface)}input:disabled,select:disabled{cursor:not-allowed}.icon{width:1.25rem;height:1.25rem;flex-shrink:0;vertical-align:middle}.app-header{position:sticky;top:0;z-index:20;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-header__inner{max-width:1200px;margin:auto;min-height:80px;padding:.8rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--color-text);font-size:.9rem;line-height:1.35;font-weight:750;text-decoration:none;max-width:250px}.app-brand__mark{display:grid;place-items:center;background:linear-gradient(135deg,var(--color-action),var(--color-primary-dark));color:#fff;width:36px;height:36px;flex-shrink:0;border-radius:10px;box-shadow:0 2px 8px #0b5fff4d}.theme-selector{display:flex;flex-direction:column;gap:.2rem;min-width:100px}.theme-selector label{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--color-muted);font-weight:600}.theme-selector label .icon{width:.9rem;height:.9rem}.theme-selector select{min-height:44px;max-width:100%;border:1px solid var(--color-control-border);border-radius:8px;padding:.35rem .5rem}.shell{min-height:calc(100dvh - 80px);display:flex;flex-direction:column;max-width:1200px;margin:auto}.shell__content{flex:1;padding:1.5rem 1rem;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 1.5rem);max-width:900px;margin:0 auto;width:100%;min-width:0}.page{display:flex;flex-direction:column;gap:1rem}.page-intro{color:var(--color-muted);margin:-.25rem 0 .5rem;max-width:68ch}.bottom-nav{position:fixed;bottom:0;left:0;right:0;min-height:calc(var(--nav-height) + env(safe-area-inset-bottom));display:flex;background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom);z-index:25}.bottom-nav__link{flex:1;display:flex;flex-direction:column;gap:.3rem;align-items:center;justify-content:center;font-size:.75rem;color:var(--color-muted);text-decoration:none;min-height:var(--nav-height);overflow-wrap:anywhere;padding:.25rem}.bottom-nav__link.is-active{color:var(--color-primary);font-weight:700;background:var(--color-info-bg);box-shadow:inset 0 3px var(--color-primary)}.btn{min-height:44px;min-width:44px;padding:.6rem 1.2rem;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;line-height:1.4;transition:background .15s ease,transform .12s ease,box-shadow .15s ease}.btn--primary{background:var(--color-action);color:#fff;box-shadow:0 2px 6px #0b5fff40}.btn--primary:active{background:var(--color-primary-dark);transform:translateY(1px)}.btn--secondary{background:var(--color-border);color:var(--color-text)}.btn--secondary:active{transform:translateY(1px)}.btn--danger{background:#b91c1c;color:#fff}.btn--ghost{background:transparent;color:var(--color-primary)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.card{background:var(--color-surface);border-radius:var(--radius);padding:1.25rem;box-shadow:0 2px 5px #0000000a;border:1px solid var(--color-border);transition:box-shadow .15s ease}.card-footer{margin-top:1.25rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}.badge--critical{background:var(--color-danger-bg);color:var(--color-danger)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--info{background:var(--color-info-bg);color:var(--color-info)}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--neutral{background:var(--color-border);color:var(--color-muted)}.form-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem}.form-field label{font-size:.85rem;font-weight:600;color:var(--color-muted)}.form-field input,.form-field select{min-height:44px;padding:.5rem .75rem;font-size:1rem;border:1px solid var(--color-control-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);width:100%}.form-field input:focus,.form-field select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.stat-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{border-inline-start:3px solid transparent}.stat-card--primary{border-inline-start-color:var(--color-primary)}.stat-card--success{border-inline-start-color:var(--color-success)}.stat-card--warning{border-inline-start-color:var(--color-warning)}.stat-card--danger{border-inline-start-color:var(--color-danger)}.stat-card__label{margin:0;font-size:.75rem;color:var(--color-muted);text-transform:uppercase;display:flex;align-items:center;gap:.4rem}.stat-card__icon{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:6px;background:var(--color-info-bg);color:var(--color-primary)}.stat-card--success .stat-card__icon{background:var(--color-success-bg);color:var(--color-success)}.stat-card--warning .stat-card__icon{background:var(--color-warning-bg);color:var(--color-warning)}.stat-card--danger .stat-card__icon{background:var(--color-danger-bg);color:var(--color-danger)}.stat-card__icon .icon{width:.95rem;height:.95rem}.stat-card__value{margin:.25rem 0 0;font-size:clamp(1rem,2.3vw,1.4rem);font-weight:750;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-card__hint{margin:.5rem 0 0;font-size:.78rem;color:var(--color-muted);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.insights__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.insights__list li{display:flex;align-items:center;gap:.75rem;font-size:.95rem}.insights__icon{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:8px;background:var(--color-info-bg);color:var(--color-primary);flex-shrink:0}.insights__icon .icon{width:1.1rem;height:1.1rem}.alert-strip{display:flex;align-items:center;gap:.75rem;border-inline-start:3px solid var(--color-warning)}.alert-strip>.icon{color:var(--color-warning)}.alert-strip p{margin:0;flex:1;font-weight:600}.alert-strip .btn{min-height:40px;padding:.4rem .9rem;font-size:.85rem;flex-shrink:0}.auth-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.auth-features li{display:flex;align-items:center;gap:.7rem;color:var(--color-muted);font-size:.92rem}.auth-features__icon{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:8px;background:var(--color-info-bg);color:var(--color-primary);flex-shrink:0}.auth-features__icon .icon{width:1.1rem;height:1.1rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skeleton-stack{display:flex;flex-direction:column;gap:.85rem}.skeleton{border-radius:10px;background:linear-gradient(100deg,var(--color-subtle) 40%,var(--color-border) 50%,var(--color-subtle) 60%);background-size:250% 100%;animation:shimmer 1.6s linear infinite}.skeleton--field{height:44px}.skeleton-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton--stat{height:82px}.skeleton--chart{height:260px}@keyframes shimmer{0%{background-position:125% 0}to{background-position:-125% 0}}.alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.alert{display:flex;flex-direction:column;gap:.4rem;border-inline-start:3px solid var(--color-primary)}.alert--read{border-inline-start-color:var(--color-border);opacity:.8}.alert__header{display:flex;justify-content:space-between;align-items:center}.alert__horizon{font-size:.75rem;color:var(--color-muted)}.alert p{margin:0}.upload-form{display:flex;flex-direction:column;gap:.8rem}.upload-form input[type=file]{min-height:44px}.upload-picker{border:1px dashed var(--color-control-border);border-radius:12px;background:var(--color-subtle);padding:clamp(1rem,4vw,2rem);display:flex;flex-direction:column;gap:.85rem}.upload-picker__icon{width:46px;height:46px;border-radius:12px;background:var(--color-info-bg);color:var(--color-primary);display:grid;place-items:center}.upload-picker__icon .icon{width:26px;height:26px}.upload-picker label{font-weight:650}.upload-picker input{width:100%;min-width:0;color:var(--color-text);font-size:.9rem}.upload-picker input::file-selector-button{font:inherit;padding:.6rem .9rem;margin-inline-end:.75rem;border:1px solid var(--color-control-border);border-radius:8px;color:var(--color-text);background:var(--color-surface);cursor:pointer;min-height:44px}.field-hint,.upload-file-size{color:var(--color-muted);font-size:.85rem;margin:0}.upload-feedback{display:flex;gap:.65rem;padding:1rem;border:1px solid currentColor;border-radius:10px;overflow-wrap:anywhere}.upload-feedback p{margin:0}.upload-feedback .icon{margin-top:.15rem}.upload-feedback--error{color:var(--color-danger);background:var(--color-danger-bg)}.upload-feedback--success{color:var(--color-success);background:var(--color-success-bg)}.upload-next{align-self:flex-start}.upload-progress{height:5px;background:var(--color-border);border-radius:4px;overflow:hidden}.upload-progress:before{content:"";display:block;width:40%;height:100%;background:var(--color-primary);animation:processing 1.4s ease-in-out infinite alternate}.upload-processing p{margin:.5rem 0 0;color:var(--color-muted);font-size:.85rem}@keyframes processing{0%{transform:translate(0)}to{transform:translate(150%)}}.form-message{font-size:.9rem;color:var(--color-success);margin:0}.form-message--error{color:var(--color-danger)}.forecast-chart{min-width:0}.forecast-chart__header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;margin-bottom:.35rem}.forecast-chart__header h2{margin:0;font-size:1.05rem;line-height:1.3}.forecast-chart__legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;list-style:none;margin:0;padding:0 0 .35rem;color:var(--color-muted);font-size:.78rem}.forecast-chart__legend li{display:flex;align-items:center;gap:.4rem}.forecast-chart__key{display:inline-block;width:1rem;height:0;flex:0 0 auto;border-top:2px solid var(--color-primary)}.forecast-chart__key--threshold{border-top-color:var(--color-danger);border-top-style:dashed}.forecast-chart__plot{width:100%;height:290px;min-width:0}.forecast-chart__plot .recharts-tooltip-wrapper{max-width:60%}.empty-state{color:var(--color-muted);text-align:center;padding:2rem 0}.report-actions{display:flex;gap:.75rem;flex-wrap:wrap}.auth-page{max-width:440px;margin:3rem auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px}.auth-form,.account-form{display:flex;flex-direction:column}.skip-link{position:fixed;top:-100px;left:1rem;z-index:50;background:var(--color-surface);color:var(--color-text);padding:.75rem;border:1px solid var(--color-primary);border-radius:8px}.skip-link:focus{top:.5rem}:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}.demo-notice{border:1px solid var(--color-info);border-radius:var(--radius);padding:.85rem 1rem;background:var(--color-info-bg);color:var(--color-text);margin:0 0 1.5rem;font-size:.9rem}.forecast-table{overflow-x:auto}.forecast-table summary{cursor:pointer;padding:.75rem 0}.forecast-table table{width:100%;border-collapse:collapse}.forecast-table th,.forecast-table td{text-align:start;padding:.5rem;border-bottom:1px solid var(--color-border)}.forecast-table td{text-align:end}@media(min-width:640px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bottom-nav__link{font-size:.85rem}}@media(min-width:1024px){.app-header__inner{padding-inline:1.5rem}.shell__content{max-width:none;width:calc(100% - 224px);margin:0 0 0 224px;padding:2rem 1.5rem 3rem}.bottom-nav{top:112px;bottom:auto;left:max(1.5rem,calc((100vw - 1200px)/2));right:auto;width:200px;flex-direction:column;gap:.25rem;padding:.5rem;border:1px solid var(--color-border);border-radius:12px}.bottom-nav__link{flex:none;flex-direction:row;justify-content:flex-start;gap:.8rem;min-height:48px;padding:.65rem .75rem;border-radius:8px;font-size:.9rem}.bottom-nav__link.is-active{box-shadow:inset 3px 0 var(--color-primary)}.card{padding:1.5rem}}@media(max-width:479px){.auth-page{margin:1.5rem 1rem}.app-brand{font-size:.8rem;gap:.5rem}.app-brand__mark{width:30px;height:30px}}@media(hover:hover){.btn--primary:hover{background:var(--color-primary-dark)}.bottom-nav__link:hover{background:var(--color-subtle);color:var(--color-primary)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
