@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Manrope:wght@400;500;600;700&display=swap";@tailwind base;@tailwind components;@tailwind utilities;:root{--highlight: #3fcf8e;--red: #e46161;--blue: #2facff;--yellow: #d4a03f;--background: #ffffff;--surface: #f8f9fa;--dark-surface: #e9ecef;--text: #212529;--text-secondary: #6c757d;--text-tertiary: #adb5bd;--success-bg: #d4f4dd;--success-text: #198754;--error-bg: #f8d7da;--error-text: #dc3545}[data-theme=dark]{--highlight: #3fcf8e;--red: #e46161;--blue: #2facff;--yellow: #ebeb81;--background: #1c1c1c;--surface: #232323;--dark-surface: #141414;--text: #ededed;--text-secondary: #707070;--text-tertiary: #919191;--success-bg: #081d13;--success-text: #bee7c5;--error-bg: #3d1414;--error-text: #ffc1c1}*{box-sizing:border-box;transition:background-color .2s ease,color .2s ease,border-color .2s ease}html,body,#root{width:100%;min-height:100%}html,body{margin:0;padding:0;background-color:var(--background);color:var(--text);font-family:Noto Sans,system-ui,-apple-system,sans-serif}html{scroll-behavior:smooth}button,input,select{font:inherit}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.shimmer{background:linear-gradient(90deg,var(--surface) 0%,var(--dark-surface) 50%,var(--surface) 100%);background-size:1000px 100%;animation:shimmer 2s infinite}.glass{background:rgba(var(--surface-rgb, 248, 249, 250),.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--bg-0: #061019;--bg-1: #0b1f2d;--bg-2: #15384b;--card: rgba(10, 30, 43, .78);--card-2: rgba(18, 46, 63, .76);--line: rgba(143, 214, 255, .18);--text: #e9fbff;--text-muted: rgba(207, 239, 255, .68);--mint: #10b981;--mint-soft: rgba(16, 185, 129, .25);--amber: #f59e0b;--amber-soft: rgba(245, 158, 11, .24);--rose: #f43f5e;--indigo: #2dd4bf;--radius: 18px;--shadow: 0 22px 60px rgba(0, 0, 0, .36)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Manrope,Segoe UI,Tahoma,sans-serif;min-height:100vh;color:var(--text);background:var(--bg-0)}.app{min-height:100vh;position:relative;overflow-x:hidden}.bg-gradient{position:fixed;inset:0;background:radial-gradient(900px 500px at 85% 10%,rgba(16,185,129,.18),transparent 70%),radial-gradient(700px 420px at 20% 85%,rgba(245,158,11,.12),transparent 68%),linear-gradient(145deg,var(--bg-0) 0%,var(--bg-1) 50%,var(--bg-2) 100%);z-index:-3}.bg-gradient:before,.bg-gradient:after{content:"";position:absolute;border-radius:50%;filter:blur(70px);opacity:.46;animation:floatGlow 18s ease-in-out infinite}.bg-gradient:before{width:380px;height:380px;top:-90px;right:12%;background:#10b98152}.bg-gradient:after{width:340px;height:340px;bottom:-100px;left:12%;background:#f59e0b47;animation-delay:4s}@keyframes floatGlow{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(22px,-18px,0) scale(1.08)}}.container{max-width:1220px;margin:0 auto;padding:34px 18px 48px}.header{text-align:center;margin-bottom:24px;display:flex;flex-direction:column;align-items:center;gap:12px}.header-controls{display:flex;align-items:center;gap:12px;margin-top:12px}.theme-toggle{width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:#0a1e2b80;color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.theme-toggle:hover{background:#10b98126;border-color:#10b98180;color:var(--mint);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.header h1{font-family:Space Grotesk,sans-serif;font-size:clamp(2rem,4vw,3.1rem);font-weight:700;line-height:1.05;letter-spacing:-.02em;color:var(--text);text-shadow:0 12px 40px rgba(0,0,0,.35)}.header p{margin-top:10px;color:var(--text-muted);font-size:1.03rem}.auth-badge{margin-top:12px;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(143,214,255,.26);border-radius:999px;background:#ffffff0f;color:#effdff;padding:6px 10px;font-size:.82rem}.login-card{width:min(520px,100%);margin:0 auto 20px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(145deg,#0a1f2ee6,#081824e6);box-shadow:var(--shadow);padding:22px 18px}.login-card h2{font-family:Space Grotesk,sans-serif;color:#ecfeff;margin-bottom:6px;font-size:1.25rem}.login-card p{color:var(--text-muted);font-size:.9rem;margin-bottom:14px}.login-form{display:grid;gap:10px}.login-form input{width:100%;border-radius:4px;border:1px solid rgba(56,189,248,.35);background:#041621d1;color:#ecfeff;padding:11px 12px;min-height:40px;font-size:.95rem;transition:all .2s ease}.login-form input:focus{outline:none;border-color:#3fcf8eb8;box-shadow:0 0 0 3px #3fcf8e33;background:#041621f2}.error-message{text-align:center;margin-bottom:22px;padding:12px 16px;border-radius:12px;color:#ffd4dc;background:linear-gradient(180deg,#f43f5e33,#f43f5e21);border:1px solid rgba(255,132,158,.4)}.file-upload-container{margin-bottom:20px}.file-upload-zone{position:relative;border-radius:var(--radius);border:1.5px dashed rgba(63,207,142,.35);background:linear-gradient(155deg,#0f2b3ce0,#091d2acc);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 12px #3fcf8e14;padding:42px 22px;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);will-change:transform,border-color,box-shadow}.file-upload-zone:before{content:"";position:absolute;inset:1px;border-radius:calc(var(--radius) - 1px);pointer-events:none;background:linear-gradient(120deg,#3fcf8e0f,#f59e0b0f)}.file-upload-zone:hover{transform:translateY(-3px) scale(1.01);border-color:#3fcf8ea6;box-shadow:0 12px 32px #3fcf8e33}.file-upload-zone.drag-active{border-color:#3fcf8ed9;background:linear-gradient(145deg,#0f3f43eb,#0a272ddb);box-shadow:0 16px 40px #3fcf8e40;transform:scale(1.02)}.file-upload-zone.loading{pointer-events:none;opacity:.8;animation:pulse 2s ease-in-out infinite}.upload-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px}.upload-icon{font-size:2.3rem;filter:drop-shadow(0 6px 12px rgba(0,0,0,.35));animation:bounce 2s ease-in-out infinite;display:inline-block}.upload-content p{font-size:1.08rem;color:#f3fdff}.upload-hint{color:var(--text-muted);font-size:.86rem}.upload-error{margin-top:12px;border-radius:10px;background:#f43f5e33;border:1px solid rgba(244,63,94,.4);color:#ffd4dc;padding:10px 14px;font-size:.87rem}.progress-box{border-radius:14px;border:1px solid rgba(56,189,248,.3);background:linear-gradient(150deg,#072635e0,#0a212cd1);padding:16px 18px;margin-bottom:22px;box-shadow:var(--shadow)}.progress-text{color:#e9fdff;font-weight:600;margin-bottom:10px}.progress-bar{height:10px;border-radius:999px;background:#ffffff14;overflow:hidden;border:1px solid rgba(143,214,255,.2)}.progress-fill{height:100%;background:linear-gradient(90deg,#14b8a6,#10b981 35%,#f59e0b);transition:width .35s ease;background-size:190% 100%;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:0 0}to{background-position:190% 0}}.progress-detail{margin-top:8px;color:var(--text-muted);font-size:.84rem}.file-info{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px 16px;margin-bottom:18px;border-radius:12px;border:1px solid rgba(16,185,129,.35);background:linear-gradient(145deg,#10b98130,#08252da6);color:#d7fff4}.reset-btn{border:1px solid rgba(63,207,142,.35);background:linear-gradient(135deg,#3fcf8e1f,#3fcf8e14);color:#d8f7ff;padding:8px 14px;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.reset-btn:hover{background:linear-gradient(135deg,#3fcf8e33,#3fcf8e24);border-color:#3fcf8e99;transform:translateY(-1px);box-shadow:0 4px 12px #3fcf8e26}.datasets-section{margin-top:20px}.datasets-section h3{color:#ecfeff;font-family:Space Grotesk,sans-serif;font-size:1.1rem;margin-bottom:12px}.datasets-list{display:grid;grid-template-columns:1fr;gap:10px}.dataset-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(145deg,#0a1f2ed1,#081723d9);padding:14px 16px;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);will-change:transform,border-color,box-shadow}.dataset-item:hover{transform:translateY(-2px);border-color:#3fcf8e80;background:linear-gradient(145deg,#0a1f2ef2,#081723f2);box-shadow:0 8px 24px #3fcf8e26}.dataset-info{display:flex;flex-direction:column;gap:2px}.dataset-name{color:#ecfeff;font-weight:600}.dataset-meta{color:var(--text-muted);font-size:.82rem}.dataset-delete{background:transparent;border:none;font-size:1.1rem;cursor:pointer;opacity:.75}.dataset-delete:hover{opacity:1}.user-admin-card{margin-top:16px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(145deg,#0a1f2ed1,#081723d9);padding:14px}.user-admin-card h3{color:#ecfeff;font-size:1rem;margin-bottom:10px}.user-create-form{display:grid;grid-template-columns:1.4fr 1.2fr 1fr .8fr auto;gap:8px;margin-bottom:10px}.user-create-form input,.user-create-form select{border-radius:4px;border:1px solid rgba(56,189,248,.35);background:#031520d1;color:#ecfeff;padding:9px 10px;min-height:40px;font-size:.9rem;transition:all .2s ease}.user-create-form input:focus,.user-create-form select:focus{outline:none;border-color:#3fcf8eb8;box-shadow:0 0 0 2px #3fcf8e26}.users-table{display:grid;gap:8px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(143,214,255,.18);border-radius:10px;padding:8px 10px;background:#ffffff08;opacity:0;transform:translateY(-5px);animation:fadeInUp .3s ease-out forwards;transition:all .2s ease;will-change:transform,border-color,background}.user-row:nth-child(1){animation-delay:50ms}.user-row:nth-child(2){animation-delay:90ms}.user-row:nth-child(3){animation-delay:.13s}.user-row:nth-child(4){animation-delay:.17s}.user-row:nth-child(5){animation-delay:.21s}.user-row:nth-child(n+6){animation-delay:.25s}.user-row:hover{border-color:#3fcf8e66;background:#3fcf8e14;transform:translateY(-2px)}.user-info-line{display:flex;flex-direction:column;gap:2px}.user-info-line strong{color:#effdff;font-size:.88rem}.user-info-line span{color:var(--text-muted);font-size:.78rem}.mapping-section{position:relative}.mapper-container{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(150deg,#0a1e2ce8,#0a1823e6);box-shadow:var(--shadow);padding:24px 20px}.mapper-header{text-align:center;margin-bottom:20px}.mapper-header h2{font-family:Space Grotesk,sans-serif;font-size:1.4rem;color:#ecfeff}.mapper-header p{margin-top:6px;color:var(--text-muted)}.auto-badge{display:inline-block;margin-top:10px;border-radius:999px;padding:6px 12px;background:var(--mint-soft);border:1px solid rgba(16,185,129,.45);color:#b4ffe4;font-size:.8rem}.mapper-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;opacity:0;transform:translateY(10px);animation:fadeInUp .5s ease-out forwards}.mapper-row{display:grid;grid-template-columns:220px 1fr;gap:12px;align-items:center;border:1px solid rgba(143,214,255,.14);border-radius:12px;padding:10px 12px;background:#ffffff08;opacity:0;transform:translate(-10px);animation:slideInLeft .4s ease-out forwards;transition:all .2s ease}.mapper-row:nth-child(1){animation-delay:60ms}.mapper-row:nth-child(2){animation-delay:.11s}.mapper-row:nth-child(3){animation-delay:.16s}.mapper-row:nth-child(4){animation-delay:.21s}.mapper-row:nth-child(5){animation-delay:.26s}.mapper-row:nth-child(6){animation-delay:.31s}.mapper-row:nth-child(7){animation-delay:.36s}.mapper-row:nth-child(8){animation-delay:.41s}.mapper-row:nth-child(9){animation-delay:.46s}.mapper-row.required{border-color:#3fcf8e73}.mapper-row:hover,.mapper-row:focus-within{border-color:#3fcf8ea6;background:#3fcf8e14;box-shadow:0 4px 12px #3fcf8e1a;transform:translateY(-2px)}.mapper-label{display:flex;flex-direction:column;gap:3px}.field-name{color:#ecfeff;font-weight:600}.required-star{color:#fb7185;margin-left:3px}.field-hint{color:var(--text-muted);font-size:.77rem}.mapper-select{display:flex;flex-direction:column;gap:4px}.mapper-select select{width:100%;background:#031520d1;color:#ecfeff;border:1px solid rgba(56,189,248,.35);border-radius:4px;padding:10px 11px;min-height:40px;cursor:pointer;transition:all .2s ease;font-size:.9rem}.mapper-select select:focus{outline:none;border-color:#3fcf8eb8;box-shadow:0 0 0 3px #3fcf8e33}.mapper-select select option{background:#0a1f2c}.sample-value{color:#bae9ffc7;font-size:.78rem}.mapper-actions{display:flex;justify-content:center;gap:12px;opacity:0;transform:translateY(10px);animation:fadeInUp .6s ease-out .5s forwards}.btn-cancel,.btn-submit{border-radius:4px;padding:11px 24px;min-height:40px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;justify-content:center}.btn-cancel{border:1px solid rgba(255,255,255,.25);background:#ffffff0f;color:#effdff}.btn-cancel:hover{background:#ffffff1f;border-color:#fff6;transform:translateY(-1px)}.btn-submit{border:1px solid rgba(63,207,142,.45);background:linear-gradient(125deg,#0ea5a4,#3fcf8e 55%,#f59e0b);color:#042114;font-weight:700;box-shadow:0 4px 12px #3fcf8e33}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3fcf8e59;border-color:#3fcf8eb3}.btn-submit:active{transform:translateY(-1px)}.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-overlay{position:absolute;inset:0;border-radius:var(--radius);background:#040c13a6;display:flex;align-items:center;justify-content:center;color:#effdff;font-weight:600}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.kpi-card{display:flex;align-items:center;gap:12px;min-height:102px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(145deg,var(--card),var(--card-2));padding:14px;box-shadow:var(--shadow);transition:all .3s cubic-bezier(.34,1.56,.64,1);will-change:transform,border-color,box-shadow}.kpi-card:hover{transform:translateY(-3px) scale(1.01);border-color:#3fcf8e80;box-shadow:0 12px 32px #3fcf8e33}.kpi-card.clickable{cursor:pointer}.kpi-icon{width:46px;height:46px;border-radius:11px;background:linear-gradient(145deg,#10b9813d,#f59e0b3d);display:flex;align-items:center;justify-content:center;font-size:1.46rem;flex-shrink:0}.kpi-content{min-width:0;flex:1}.kpi-title{color:var(--text-muted);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px}.kpi-value{font-size:1.2rem;font-weight:700;color:#effdff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-arrow{color:#cfefff80}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.chart-card{border-radius:14px;border:1px solid var(--line);background:linear-gradient(145deg,#0a1c29e0,#08141feb);padding:16px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:all .3s cubic-bezier(.34,1.56,.64,1);will-change:transform,border-color,box-shadow}.chart-card:hover{transform:translateY(-2px);border-color:#3fcf8e66;box-shadow:0 12px 32px #3fcf8e26}.chart-card h3{color:#ecfeff;font-size:.98rem;margin-bottom:10px;font-family:Space Grotesk,sans-serif}.pareto-list{margin-top:8px;border-top:1px solid rgba(143,214,255,.14);padding-top:8px;display:grid;grid-template-columns:1fr;gap:6px;max-height:200px;overflow-y:auto}.pareto-row{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:8px;border:1px solid rgba(143,214,255,.16);border-radius:8px;padding:6px 8px;background:#ffffff05}.pareto-rank{color:#fff1ba;background:#f59e0b38;border-radius:6px;text-align:center;font-size:.75rem;font-weight:700;padding:3px 4px}.pareto-name{color:#ecfeff;font-size:.78rem}.pareto-value{color:#d8f7ff;font-size:.75rem;font-weight:600;white-space:nowrap}.heatmap-card{grid-column:1 / -1}.heatmap-grid{display:grid;gap:6px;overflow-x:auto;padding-bottom:4px}.heatmap-head{border-radius:8px;border:1px solid rgba(143,214,255,.22);background:#ffffff0a;color:#d8f7ff;font-size:.76rem;font-weight:700;text-align:center;padding:8px 6px;white-space:nowrap}.heatmap-brand{border-radius:8px;border:1px solid rgba(143,214,255,.16);background:#ffffff08;color:#ecfeff;font-size:.76rem;font-weight:600;padding:8px 10px;display:flex;align-items:center}.heatmap-cell{border-radius:8px;border:1px solid rgba(255,255,255,.1);color:#fff;font-size:.69rem;text-align:center;padding:8px 6px;min-height:36px;display:grid;place-items:center}.heatmap-legend{margin-top:10px;display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--text-muted);font-size:.74rem}.heatmap-legend-bar{width:120px;height:10px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:linear-gradient(90deg,#1f7ae0,#15d4ff 35%,#ffe600 65%,#ff006e)}.modal-overlay{position:fixed;inset:0;background:#03080ebd;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1200;display:grid;place-items:center;padding:16px;opacity:0;animation:fadeIn .3s ease-out forwards}.modal-content{width:min(560px,100%);max-height:82vh;overflow-y:auto;border-radius:16px;border:1px solid rgba(56,189,248,.32);background:linear-gradient(150deg,#0a2230f5,#07141ef5);padding:20px;position:relative;opacity:0;transform:scale(.95) translateY(20px);animation:modalSlideIn .4s cubic-bezier(.34,1.56,.64,1) forwards}.modal-content h2{font-family:Space Grotesk,sans-serif;font-size:1.2rem;color:#ecfeff;margin-bottom:14px}.modal-summary{color:var(--text-muted);font-size:.84rem;margin-bottom:12px}.modal-close{position:absolute;top:10px;right:10px;border:none;background:transparent;color:#ecfeff;font-size:1.3rem;cursor:pointer}.modal-list{list-style:none;display:flex;flex-direction:column;gap:8px}.modal-list li{display:flex;align-items:center;gap:10px;border:1px solid rgba(143,214,255,.2);border-radius:10px;padding:10px;background:#ffffff08;opacity:0;transform:translate(-10px);animation:slideInLeft .3s ease-out forwards;transition:all .2s ease}.modal-list li:nth-child(1){animation-delay:.1s}.modal-list li:nth-child(2){animation-delay:.14s}.modal-list li:nth-child(3){animation-delay:.18s}.modal-list li:nth-child(4){animation-delay:.22s}.modal-list li:nth-child(5){animation-delay:.26s}.modal-list li:nth-child(n+6){animation-delay:.3s}.modal-list li:hover{border-color:#3fcf8e80;background:#3fcf8e1a;transform:translate(4px)}.modal-rank{min-width:42px;text-align:center;border-radius:8px;background:var(--amber-soft);color:#fff0c4;padding:4px 6px;font-weight:700}.modal-name{color:#effdff}.modal-name-wrap{flex:1;display:flex;flex-direction:column;gap:2px}.modal-extra{color:var(--text-muted);font-size:.74rem}.modal-value{color:#b7ffe9;font-weight:700}@media(max-width:1120px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.container{padding:22px 14px 34px}.charts-grid,.mapper-row,.user-create-form{grid-template-columns:1fr}.field-hint{display:none}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-card,.chart-card,.mapper-row,.dataset-item,.user-row{transition:all .2s ease}.kpi-card:hover{transform:translateY(-2px) scale(1.005)}.mapper-row:hover,.mapper-row:focus-within{transform:translateY(-1px)}}@media(max-width:560px){.kpi-grid{grid-template-columns:1fr}.btn-cancel,.btn-submit{width:100%}.mapper-actions{flex-direction:column}.kpi-card,.chart-card,.mapper-row,.dataset-item,.user-row{transition:all .15s ease;will-change:auto}.kpi-card:hover{transform:translateY(-1px) scale(1);box-shadow:0 4px 12px #3fcf8e1a}.mapper-row:hover,.mapper-row:focus-within{transform:translateY(0);box-shadow:none}.file-upload-zone:hover{transform:translateY(-1px) scale(1)}.file-upload-zone.drag-active{transform:scale(1)}}:root{--fx-cyan: #22d3ee;--fx-teal: #2dd4bf;--fx-emerald: #34d399;--fx-amber: #f59e0b;--fx-card: rgba(6, 24, 38, .78);--fx-card-2: rgba(8, 34, 52, .72);--fx-line: rgba(94, 234, 212, .28);--fx-glow: 0 0 0 1px rgba(45, 212, 191, .22), 0 16px 40px rgba(2, 10, 16, .65)}body{background:radial-gradient(1200px 680px at 86% 6%,rgba(45,212,191,.14),transparent 70%),radial-gradient(900px 560px at 12% 88%,rgba(245,158,11,.1),transparent 72%),linear-gradient(152deg,#030a11,#061827 43%,#0a2a3c)}.bg-gradient{background:radial-gradient(1100px 620px at 84% 8%,rgba(34,211,238,.14),transparent 66%),radial-gradient(960px 590px at 9% 88%,rgba(245,158,11,.12),transparent 70%),linear-gradient(155deg,#02070d,#071826 45%,#0b2b3d)}.bg-gradient:before{width:520px;height:520px;top:-140px;right:8%;background:radial-gradient(circle at 40% 40%,#2dd4bf70,#2dd4bf05 70%)}.bg-gradient:after{width:420px;height:420px;bottom:-120px;left:8%;background:radial-gradient(circle at 50% 50%,#f59e0b5c,#f59e0b0a 68%)}.app:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background-image:linear-gradient(rgba(124,245,227,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(124,245,227,.05) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(circle at 50% 40%,rgba(0,0,0,.75),transparent 78%);mask-image:radial-gradient(circle at 50% 40%,rgba(0,0,0,.75),transparent 78%)}.header h1{letter-spacing:-.03em;text-shadow:0 12px 40px rgba(0,0,0,.45),0 0 24px rgba(34,211,238,.22)}.header p{letter-spacing:.01em}.file-info{border:1px solid rgba(52,211,153,.36);background:linear-gradient(120deg,#2dd4bf29,#082230a8),linear-gradient(155deg,#092434e6,#05121cdb);box-shadow:var(--fx-glow)}.reset-btn{background:linear-gradient(135deg,#ffffff1f,#2dd4bf1f);border:1px solid rgba(180,255,241,.26)}.kpi-card,.chart-card,.mapper-container,.dataset-item,.progress-box,.modal-content{-webkit-backdrop-filter:blur(13px) saturate(124%);backdrop-filter:blur(13px) saturate(124%);background:linear-gradient(140deg,var(--fx-card),var(--fx-card-2));border:1px solid var(--fx-line);box-shadow:var(--fx-glow)}.kpi-card,.chart-card{position:relative;overflow:hidden}.kpi-card:before,.chart-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(34,211,238,.1),rgba(245,158,11,.07) 40%,transparent 70%);opacity:.68}.kpi-card:after{content:"";position:absolute;top:0;right:-36%;width:42%;height:100%;transform:skew(-20deg);background:linear-gradient(180deg,rgba(255,255,255,.18),transparent);opacity:0;transition:right .45s ease,opacity .45s ease}.kpi-card:hover:after{right:115%;opacity:.55}.kpi-card:hover{transform:translateY(-3px) scale(1.01);border-color:#22d3ee85}.kpi-icon{background:linear-gradient(145deg,#2dd4bf59,#f59e0b42);border:1px solid rgba(178,255,232,.24);box-shadow:0 8px 20px #030c1399}.kpi-title{color:#d0faf6b8;letter-spacing:.07em}.kpi-value{font-family:Space Grotesk,sans-serif;font-size:clamp(1.25rem,1.6vw,1.9rem)}.chart-card h3{position:relative;padding-left:10px;letter-spacing:.01em}.chart-card h3:before{content:"";position:absolute;left:0;top:4px;width:3px;height:calc(100% - 8px);border-radius:999px;background:linear-gradient(180deg,var(--fx-cyan),var(--fx-emerald),var(--fx-amber));box-shadow:0 0 16px #22d3ee85}.trend-card{grid-column:1 / -1}.file-upload-zone{border-style:solid;border-color:#7efce842;background:linear-gradient(145deg,#082233e6,#04141fd6);box-shadow:var(--fx-glow)}.file-upload-zone:hover{border-color:#22d3ee9e;transform:translateY(-2px) scale(1.005)}.mapper-row{background:linear-gradient(140deg,#061622d1,#091e2cb8)}.mapper-row:focus-within{border-color:#22d3ee94;box-shadow:0 0 0 2px #22d3ee24}.mapper-select select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,#8cf6e7 50%),linear-gradient(135deg,#8cf6e7 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 3px),calc(100% - 10px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.mapper-select select:hover{border-color:#22d3ee9e}.btn-submit{background:linear-gradient(130deg,#19c2bb,#34d399 52%,#f59e0b);color:#022f2a;border-color:#b6fff159;box-shadow:0 12px 26px #14b8a64d}.btn-cancel{background:linear-gradient(135deg,#ffffff14,#22d3ee14)}.datasets-section h3{letter-spacing:.015em}.dataset-item:hover{box-shadow:0 14px 34px #02090f99}@media(max-width:900px){.kpi-value{font-size:1.4rem}.chart-card{padding:14px}}.kpi-grid .kpi-card{opacity:0;transform:translateY(10px) scale(.985);animation:cardReveal .52s cubic-bezier(.2,.75,.2,1) forwards}.kpi-grid .kpi-card:nth-child(1){animation-delay:40ms}.kpi-grid .kpi-card:nth-child(2){animation-delay:90ms}.kpi-grid .kpi-card:nth-child(3){animation-delay:.14s}.kpi-grid .kpi-card:nth-child(4){animation-delay:.19s}.kpi-grid .kpi-card:nth-child(5){animation-delay:.24s}.kpi-grid .kpi-card:nth-child(6){animation-delay:.29s}.kpi-grid .kpi-card:nth-child(7){animation-delay:.34s}.kpi-grid .kpi-card:nth-child(8){animation-delay:.39s}.kpi-grid .kpi-card:nth-child(9){animation-delay:.44s}.kpi-icon{position:relative}.kpi-icon:after{content:"";position:absolute;inset:-6px;border-radius:inherit;border:1px solid rgba(34,211,238,.22);opacity:0;animation:iconPulse 2.8s ease-out infinite}.charts-grid .chart-card{opacity:0;transform:translateY(14px);animation:chartReveal .62s cubic-bezier(.2,.75,.2,1) forwards}.charts-grid .chart-card:nth-child(1){animation-delay:80ms}.charts-grid .chart-card:nth-child(2){animation-delay:.14s}.charts-grid .chart-card:nth-child(3){animation-delay:.2s}.charts-grid .chart-card:nth-child(4){animation-delay:.26s}.charts-grid .chart-card:nth-child(5){animation-delay:.32s}.charts-grid .chart-card:nth-child(6){animation-delay:.38s}.charts-grid .chart-card:nth-child(7){animation-delay:.44s}@keyframes cardReveal{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes chartReveal{to{opacity:1;transform:translateY(0)}}@keyframes iconPulse{0%{opacity:0;transform:scale(.94)}25%{opacity:.52}to{opacity:0;transform:scale(1.2)}}.kpi-growth{display:inline-block;margin-top:4px;font-size:.78rem;font-weight:700;padding:2px 7px;border-radius:12px;letter-spacing:.02em}.growth-up{background:#3fcf8e2e;color:#3fcf8e}.growth-down{background:#e461612e;color:#e46161}.smart-kpi-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.smart-kpi-row .kpi-card{flex:1 1 160px;min-width:140px}.concentration-banner{padding:12px 18px;border-radius:10px;margin-bottom:16px;font-size:.92rem;font-weight:500}.banner-danger{background:#e4616126;border:1px solid rgba(228,97,97,.4);color:#f8a0a0}.banner-warn{background:#ebeb811f;border:1px solid rgba(235,235,129,.35);color:#ebebab}.quality-badge{display:inline-block;margin-left:10px;padding:2px 10px;border-radius:12px;font-size:.78rem;font-weight:600;cursor:default}.quality-good{background:#3fcf8e2e;color:#3fcf8e}.quality-warn{background:#ebeb8126;color:#ebebab}.quality-bad{background:#e461612e;color:#e46161}.sheet-select-card{background:var(--card-bg, rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:24px;max-width:480px;margin:24px auto}.sheet-select-card h3{margin:0 0 16px;font-size:1rem;color:#cfefffe6}.sheet-list{display:flex;flex-direction:column;gap:8px}.sheet-btn{display:block;width:100%;padding:10px 16px;text-align:left;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#cfefffe6;font-size:.92rem;cursor:pointer;transition:background .15s,border-color .15s}.sheet-btn:hover,.sheet-btn.active{background:#3fcf8e26;border-color:#3fcf8e80;color:#3fcf8e}.sheet-btn:disabled{opacity:.5;cursor:not-allowed}.rfm-card{grid-column:1 / -1}.rfm-alert{background:#e4616126;border:1px solid rgba(228,97,97,.35);border-radius:8px;padding:10px 16px;margin-bottom:16px;font-size:.9rem;color:#f8a0a0}
