@keyframes page-loader-spin{to{transform:rotate(360deg)}}@keyframes page-loader-in{0%{opacity:0}to{opacity:1}}@keyframes page-loader-out{0%{opacity:1}to{opacity:0}}.page-loader{z-index:9999;justify-content:center;align-items:center;animation:.18s both page-loader-in;display:flex;position:fixed;inset:0}.page-loader-backdrop{-webkit-backdrop-filter:blur(10px);background:#f5f7fbe0;position:absolute;inset:0}.page-loader-content{flex-direction:column;align-items:center;gap:14px;display:flex;position:relative}.page-loader-ring{border:3.5px solid #16a34a26;border-top-color:#16a34a;border-radius:50%;width:48px;height:48px;animation:.72s linear infinite page-loader-spin}.page-loader-msg{color:#4b6358;letter-spacing:.01em;margin:0;font-family:Sora,system-ui,sans-serif;font-size:13px;font-weight:600}@media (prefers-reduced-motion:reduce){.page-loader-ring{border-top-color:#16a34a;animation:none}.page-loader{animation:none}}.not-found-page{background:radial-gradient(circle at 0 0,#22c55e14,#0000 24%),radial-gradient(circle at 100% 100%,#22c55e0a,#0000 24%),linear-gradient(#f4f8f7 0%,#eef5f3 52%,#e8f2f0 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.not-found-card{text-align:center;color:#052e16;background:#fffffff5;border:1px solid #94a7b82e;border-radius:30px;width:min(640px,100%);padding:40px;box-shadow:0 24px 60px #00000014}.not-found-eyebrow{color:#22c55e;letter-spacing:.06em;text-transform:uppercase;background:#22c55e1f;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;display:inline-flex}.not-found-code{color:#052e16;margin:18px 0 8px;font-size:clamp(72px,10vw,120px);font-weight:900;line-height:1}.not-found-card h1{margin:0 0 14px;font-size:clamp(28px,5vw,40px);line-height:1.05}.not-found-card p{color:#475569;max-width:46ch;margin:0 auto;line-height:1.7}.not-found-signal-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.not-found-signal-card{text-align:left;background:#fffffff5;border:1px solid #94a7b82e;border-radius:18px;padding:16px;transition:transform .18s,border-color .18s,box-shadow .18s}.not-found-signal-card:hover{border-color:#22c55e33;box-shadow:0 8px 24px #0000001a}.not-found-signal-card strong{color:#052e16;margin-bottom:6px;display:block}.not-found-signal-card span{color:#475569;font-size:13px;line-height:1.55}.not-found-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.not-found-primary-link,.not-found-secondary-link,.not-found-back-button{border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:13px 18px;font-weight:700;text-decoration:none;display:inline-flex}button.not-found-primary-link,button.not-found-secondary-link,button.not-found-back-button{cursor:pointer;font:inherit;border:none}.not-found-primary-link{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 14px 28px #22c55e2e}.not-found-secondary-link,.not-found-back-button{color:#052e16;background:#ffffffe6;border:1px solid #94a7b82e}.not-found-back-button{cursor:pointer;margin-top:14px}.not-found-primary-link:focus-visible,.not-found-secondary-link:focus-visible,.not-found-back-button:focus-visible{outline:none;box-shadow:0 0 0 4px #22c55e24}@media (width<=640px){.not-found-card{border-radius:22px;padding:28px 22px}.not-found-signal-strip,.not-found-actions{flex-direction:column}}:root{--tf-green-50:#f0fdf4;--tf-green-100:#dcfce7;--tf-green-200:#bbf7d0;--tf-green-400:#4ade80;--tf-green-500:#22c55e;--tf-green-600:#16a34a;--tf-green-700:#15803d;--tf-green-800:#166534;--tf-green-900:#052e16;--tf-success-bg:#22c55e14;--tf-success-border:#22c55e38;--tf-success-text:#15803d;--tf-error-bg:#ef444414;--tf-error-border:#ef444438;--tf-error-text:#b91c1c;--tf-warning-bg:#eab30814;--tf-warning-border:#eab30838;--tf-warning-text:#92400e;--tf-info-bg:#06b6d414;--tf-info-border:#06b6d438;--tf-info-text:#0e7490;--tf-ink:#052e16;--tf-copy:#1a3a2a;--tf-muted:#4b6358;--tf-subtle:#94a7a4;--tf-slate:#475569;--tf-line:#00000017;--tf-surface:#fff;--tf-surface-2:#f8f9fa;--tf-bg:#f5f7fb;--tf-placeholder:#7b8ea1;--tf-selection:#22c55e47;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-xl:var(--radius-xl);--radius-2xl:24px;--radius-full:999px;--shadow-sm:0 1px 3px #0000000f, 0 2px 6px #0000000a;--shadow-md:0 2px 6px #0000000d, 0 10px 28px #00000012;--shadow-lg:0 4px 12px #0000000f, 0 20px 44px #0000001a;--shadow-xl:0 8px 24px #00000014, 0 32px 56px #0000001a;--shadow-btn:0 8px 24px #16a34a47;--shadow-focus:0 0 0 4px #22c55e24;--font-sans:"Sora", "Segoe UI Variable Text", system-ui, sans-serif;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.25;--line-height-base:1.5;--line-height-loose:1.75;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:18px;--text-xl:21px;--text-2xl:27px;--text-3xl:32px;--text-4xl:42px;--z-overlay:499;--z-modal:500;--z-tooltip:1000;--opacity-disabled:.6;--opacity-hover:.8;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.18s;--duration-normal:.25s;--accent-blue:#3b82f6;--accent-red:#ef4444;--color-text-main:#0f172a;--bg-primary:var(--tf-bg);--bg-panel:var(--tf-surface);--color-text-muted:var(--tf-slate);--primary:var(--tf-green-600);--primary-hover:var(--tf-green-700);--primary-light:var(--tf-green-500);--primary-bg:var(--tf-success-bg);--primary-border:var(--tf-success-border);--accent-yellow:var(--tf-warning-text);--shadow-subtle:0 2px 8px #00000005;--shadow-card:0 4px 16px #0f172a0a;--shadow-hover:0 12px 32px #0f172a14;--shadow-cta:0 4px 16px #16a34a4d, 0 1px 2px #ffffff4d inset;--shadow-cta-hover:0 8px 24px #16a34a66, 0 1px 2px #ffffff4d inset;--transition-bounce:all .3s cubic-bezier(.34, 1.56, .64, 1);--transition-smooth:all .2s ease}*{box-sizing:border-box}body{background-color:var(--bg-primary);color:var(--color-text-main);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,.btn{border-radius:var(--radius-md);cursor:pointer;min-height:44px;transition:var(--transition-bounce);border:none;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:linear-gradient(180deg, #22c55e 0%, var(--primary) 100%);color:#fff;box-shadow:var(--shadow-cta);padding:0 24px}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-cta-hover);background:linear-gradient(180deg, #16a34a 0%, var(--primary-hover) 100%);transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:focus-visible{box-shadow:0 0 0 2px #fff, 0 0 0 5px var(--primary);outline:none}.btn-secondary{color:var(--color-text-main);box-shadow:var(--shadow-subtle);background:#fff;border:1px solid #94a3b866;padding:0 20px}.btn-secondary:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b899;transform:translateY(-1px)}button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}input,select,textarea{min-height:44px;font-family:inherit;font-size:16px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@keyframes ui-rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-fade-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes ui-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.animate-fade-in{animation:ui-fade-in var(--duration-normal,.25s) var(--ease-out,ease) forwards}.animate-fade-scale-in{animation:ui-fade-scale-in var(--duration-normal,.25s) var(--ease-out,ease) forwards}.animate-slide-up{animation:ui-slide-up .35s var(--ease-out,ease) forwards}.stagger-1{animation-delay:80ms}.stagger-2{animation-delay:.16s}.stagger-3{animation-delay:.24s}.stagger-4{animation-delay:.32s}.stagger-5{animation-delay:.4s}.skeleton{border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(90deg,#e8eaed 25%,#f0f2f5 50%,#e8eaed 75%) 0 0/800px 100%;animation:1.8s linear infinite skeleton-shimmer;color:#0000!important}@media (width<=1024px){.dashboard-main-content{padding:24px 16px!important}}@media (width<=640px){.dashboard-main-content{padding:16px 12px!important}.btn.btn-block-mobile{width:100%}.btn.inline{width:auto}}.text-center{text-align:center}.hidden{display:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.metric-card-icon-badge{border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:16px;display:flex}.metric-card-icon-badge.accent-green{color:#16a34a;background:#22c55e1f;border:1px solid #22c55e2e}.metric-card-icon-badge.accent-cyan{color:#0891b2;background:#06b6d41f;border:1px solid #06b6d42e}.metric-card-icon-badge.accent-yellow{color:#ca8a04;background:#eab3081f;border:1px solid #eab3082e}.metric-card-icon-badge.accent-blue{color:#2563eb;background:#3b82f61f;border:1px solid #3b82f62e}.metric-card.highlight .metric-card-icon-badge{color:#4ade80;background:#ffffff24;border-color:#fff3}.metric-card{box-shadow:var(--shadow-sm);background:#fff;border:1px solid #00000012;border-radius:16px;padding:20px;transition:border-color .2s,box-shadow .2s;animation:.42s both ui-rise-in;position:relative;overflow:hidden}.metric-card:before,.metric-card:after{content:none}.metric-card.highlight.green{background:linear-gradient(150deg,#052e16 0%,#073e1b 65%,#0a4220 100%);border:1px solid #4ade802e;box-shadow:inset 0 1px #4ade8026,0 8px 16px #0000001f,0 24px 48px #0003}.metric-card.highlight.blue{background:linear-gradient(135deg,#082424f5,#0d5b66e6 58%,#12b5c9b8),#102a2a;border:1px solid #12b5c933}.metric-card.highlight.yellow{background:linear-gradient(135deg,#082424f5,#6c5212e0 58%,#f4c84a8f),#102a2a;border:1px solid #f4c84a38}.metric-card:hover,.metric-card:focus-within{box-shadow:var(--shadow-md);border-color:#22c55e38}.metric-card-label{z-index:1;color:var(--dash-card-muted,#4b6358);max-width:20ch;margin-bottom:10px;font-size:12px;font-weight:600;display:block;position:relative}.metric-card-value{z-index:1;color:var(--dash-card-text,#052e16);letter-spacing:-.03em;margin-bottom:8px;font-size:34px;font-weight:800;line-height:1;display:block;position:relative}.metric-card-info{z-index:1;color:var(--dash-card-muted,#4b6358);font-size:12px;line-height:1.5;position:relative}.metric-card.highlight .metric-card-label,.metric-card.highlight .metric-card-value,.metric-card.highlight .metric-card-info{color:#fff}.metric-card.highlight .metric-card-label{color:#ffffffd9}.metric-card.highlight .metric-card-info{color:#ffffffbf}.metric-card.highlight .metric-card-value{color:#4ade80}.panel-card{box-shadow:var(--shadow-sm);background:#fff;border:1px solid #00000012;border-radius:16px;padding:22px;transition:border-color .2s,box-shadow .2s;animation:.46s both ui-rise-in;position:relative;overflow:hidden}.panel-card-glow{display:none}.panel-card:hover,.panel-card:focus-within{box-shadow:var(--shadow-md);border-color:#22c55e38}.panel-card-header{z-index:1;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex;position:relative}.panel-card-heading{flex-direction:column;gap:8px;display:flex}.panel-card-header h3{color:var(--dash-card-text,#052e16);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:800}.panel-card-header span{color:var(--dash-card-muted,#4b6358);max-width:62ch;font-size:13px;line-height:1.5}.panel-card-header-right{flex-shrink:0}.panel-card-body{z-index:1;flex-direction:column;gap:14px;display:flex;position:relative}.status-badge-ui{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff61,0 8px 18px #102a2a0f}.status-badge-ui:before{content:"";opacity:.9;background:currentColor;border-radius:999px;width:7px;height:7px}.status-badge-ui.blue{color:#0d8fa0;background:#12b5c929;border-color:#12b5c942}.status-badge-ui.green{color:#12924a;background:#18b35b29;border-color:#18b35b42}.status-badge-ui.yellow{color:#975a16;background:#f4c84a33;border-color:#f4c84a4d}.status-badge-ui.red{color:#c2410c;background:#ef444429;border-color:#ef444442}.status-badge-ui.gray{color:#466160;background:#8fa6ba2e;border-color:#8fa6ba47}.rating-stars{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.rating-stars-icons{color:#facc15;background:#facc1514;border:1px solid #facc152e;border-radius:999px;align-items:center;gap:4px;padding:6px 10px;display:inline-flex}.rating-star{opacity:.35;transition:opacity .2s,transform .2s,filter .2s}.rating-star.filled{opacity:1;filter:drop-shadow(0 0 8px #facc1533);transform:translateY(-.5px)}.rating-stars-value{color:#b7791f;letter-spacing:.01em;font-size:13px;font-weight:700}.distribution-bars{flex-direction:column;gap:14px;display:flex}.distribution-bars.compact{gap:12px}.distribution-row{flex-direction:column;gap:8px;display:flex}.distribution-row-head{color:var(--dash-card-muted,#5f7473);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.distribution-row-head strong{color:var(--dash-card-text,#102a2a);font-size:14px}.distribution-track{background:#8fa6ba24;border-radius:999px;width:100%;height:10px;position:relative;overflow:hidden}.distribution-fill{border-radius:inherit;height:100%;transition:width .28s}.distribution-fill.tone-green{background:linear-gradient(90deg,#18b35be0,#40d890c7)}.distribution-fill.tone-blue{background:linear-gradient(90deg,#12b5c9d6,#5ed8e4c2)}.distribution-fill.tone-yellow{background:linear-gradient(90deg,#f4c84ae6,#fbdd76d1)}.distribution-fill.tone-red{background:linear-gradient(90deg,#ef4444d6,#f87171c2)}.distribution-fill.tone-slate{background:linear-gradient(90deg,#5f7473d1,#94a3b8b8)}.progress-ring-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.progress-ring-card{background:#ffffffe6;border:1px solid #94a7a42e;border-radius:20px;grid-template-columns:auto 1fr;align-items:center;gap:16px;min-height:0;padding:18px;display:grid}.progress-ring-visual{place-items:center;display:grid;position:relative}.progress-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring-track,.progress-ring-value{fill:none}.progress-ring-track{stroke:#8fa6ba2e}.progress-ring-value{stroke-linecap:round;transition:stroke-dashoffset .28s}.progress-ring-value.tone-green{stroke:#18b35b}.progress-ring-value.tone-blue{stroke:#12b5c9}.progress-ring-value.tone-yellow{stroke:#f4c84a}.progress-ring-center{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.progress-ring-center strong{color:var(--dash-card-text,#102a2a);letter-spacing:-.03em;font-size:24px}.progress-ring-copy{flex-direction:column;gap:8px;display:flex}.progress-ring-copy span{color:var(--dash-card-text,#102a2a);font-size:15px;font-weight:700}.progress-ring-copy p{color:var(--dash-card-muted,#5f7473);margin:0;font-size:13px;line-height:1.6}.panel-card:nth-child(2){animation-delay:.12s}.panel-card:nth-child(3){animation-delay:.2s}.panel-card:nth-child(4){animation-delay:.28s}.panel-card:nth-child(5){animation-delay:.36s}.metric-card:nth-child(2){animation-delay:.1s}.metric-card:nth-child(3){animation-delay:.18s}.metric-card:nth-child(4){animation-delay:.26s}.skeleton-block{background:linear-gradient(90deg,#0000000d 25%,#00000017 50%,#0000000d 75%) 0 0/1200px 100%;border-radius:20px;animation:1.5s ease-in-out infinite skeleton-shimmer}.tf-form-group{flex-direction:column;gap:6px;display:flex}.tf-label{color:var(--tf-ink,#052e16);font-size:var(--text-base,14px);font-weight:600;display:block}.tf-input,.tf-select,.tf-textarea{border:1px solid var(--tf-line,#0000001a);border-radius:var(--radius-md,12px);background:var(--tf-surface,#fff);width:100%;color:var(--tf-ink,#052e16);font:inherit;transition:border-color var(--duration-fast,.18s) ease, box-shadow var(--duration-fast,.18s) ease, background var(--duration-fast,.18s) ease;padding:11px 14px}.tf-input:focus-visible,.tf-select:focus-visible,.tf-textarea:focus-visible{box-shadow:var(--shadow-focus,0 0 0 4px #22c55e1f);background:#fff;border-color:#22c55e52;outline:none}.tf-input:disabled,.tf-select:disabled,.tf-textarea:disabled{opacity:.6;cursor:not-allowed;background:var(--tf-surface-2,#f8f8f8)}.tf-textarea{resize:vertical;min-height:96px}.tf-field-hint{font-size:var(--text-xs,12px);color:var(--tf-muted,#4b6358);line-height:1.5}.tf-btn{justify-content:center;align-items:center;gap:var(--sp-2,8px);font-family:var(--font-sans,"Sora", system-ui, sans-serif);letter-spacing:-.01em;cursor:pointer;transition:transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease, filter var(--duration-fast) ease, background var(--duration-fast) ease;white-space:nowrap;border:none;font-weight:700;display:inline-flex}.tf-btn:focus-visible{box-shadow:var(--shadow-focus,0 0 0 4px #22c55e1f);outline:none}.tf-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.tf-btn:hover:not(:disabled){transform:translateY(-2px)}.tf-btn:active:not(:disabled){transform:translateY(0)}.tf-btn--sm{height:36px;padding:0 var(--sp-3,12px);border-radius:var(--radius-sm,8px);font-size:var(--text-sm,13px)}.tf-btn--md{height:44px;padding:0 var(--sp-5,20px);border-radius:var(--radius-md,12px);font-size:var(--text-base,14px)}.tf-btn--lg{height:52px;padding:0 var(--sp-6,24px);border-radius:var(--radius-lg,16px);font-size:var(--text-md,15px);font-weight:800}.tf-btn--primary{background:linear-gradient(135deg, var(--tf-green-600,#16a34a), var(--tf-green-500,#22c55e));color:#fff;box-shadow:var(--shadow-btn,0 10px 28px #16a34a4d)}.tf-btn--primary:hover:not(:disabled){filter:brightness(1.04);box-shadow:0 16px 40px #16a34a61}.tf-btn--secondary{color:var(--tf-ink,#052e16);border:1px solid var(--tf-line,#0000001a);background:#ffffffe6}.tf-btn--secondary:hover:not(:disabled){background:#fff;border-color:#22c55e3d}.tf-btn--danger{background:var(--tf-error-bg);color:var(--tf-error-text,#b91c1c);border:1px solid var(--tf-error-border)}.tf-btn--danger:hover:not(:disabled){background:#ef444424}.tf-btn--ghost{color:var(--tf-muted,#4b6358);background:0 0}.tf-btn--ghost:hover:not(:disabled){color:var(--tf-ink,#052e16);background:#0000000d}.tf-btn--full{width:100%}.tf-btn-spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.65s linear infinite spin;display:inline-block}.tf-btn--secondary .tf-btn-spinner,.tf-btn--ghost .tf-btn-spinner{border-color:#00000026;border-top-color:var(--tf-green-600,#16a34a)}.tf-empty{align-items:center;gap:var(--sp-3,12px);padding:var(--sp-10,40px) var(--sp-6,24px);text-align:center;border-radius:var(--radius-xl,20px);border:1.5px dashed var(--tf-line,#0000001a);background:#f8f8f880;flex-direction:column;display:flex}.tf-empty-icon{border-radius:var(--radius-lg,16px);width:56px;height:56px;color:var(--tf-green-600,#16a34a);background:#22c55e1a;place-items:center;display:grid}.tf-empty-title{color:var(--tf-ink,#052e16);font-size:var(--text-md,15px);font-weight:800}.tf-empty-desc{max-width:42ch;color:var(--tf-muted,#4b6358);font-size:var(--text-base,14px);margin:0;line-height:1.6}.tf-skeleton--card{border-radius:var(--radius-xl,20px)}.tf-skeleton--row{border-radius:var(--radius-lg,16px)}.tf-skeleton--metric{border-radius:var(--radius-xl,20px)}.tf-skeleton--chart{border-radius:var(--radius-2xl,24px)}.tf-skeleton--text{border-radius:var(--radius-sm,8px);width:80%}.tf-breadcrumb{margin-bottom:var(--sp-2,8px)}.tf-breadcrumb-list{align-items:center;gap:var(--sp-1,4px);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tf-breadcrumb-item{align-items:center;gap:var(--sp-1,4px);display:flex}.tf-breadcrumb-link{color:var(--tf-green-600,#16a34a);font-size:var(--text-sm,13px);transition:color var(--duration-fast) ease;font-weight:600;text-decoration:none}.tf-breadcrumb-link:hover{color:var(--tf-ink,#052e16)}.tf-breadcrumb-link:focus-visible{border-radius:4px;outline:none;box-shadow:0 0 0 3px #22c55e33}.tf-breadcrumb-current{color:var(--tf-muted,#4b6358);font-size:var(--text-sm,13px);font-weight:600}.tf-breadcrumb-sep{color:var(--tf-subtle,#94a7a4);flex-shrink:0}.tf-toast-container{top:var(--sp-5,20px);right:var(--sp-5,20px);z-index:9999;gap:var(--sp-2,8px);pointer-events:none;flex-direction:column;width:100%;max-width:420px;display:flex;position:fixed}.tf-toast{align-items:flex-start;gap:var(--sp-3,12px);padding:var(--sp-4,16px);border-radius:var(--radius-lg,16px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:tf-toast-in .35s var(--ease-out) both;pointer-events:auto;border:1px solid #0000;display:flex;box-shadow:0 8px 32px #0000001f}.tf-toast--success{border-color:var(--tf-success-border);color:var(--tf-success-text,#15803d);background:#f9f9f9f5}.tf-toast--error{border-color:var(--tf-error-border);color:var(--tf-error-text,#b91c1c);background:#fef2f2f5}.tf-toast--warning{border-color:var(--tf-warning-border);color:var(--tf-warning-text,#92400e);background:#fefce8f5}.tf-toast--info{border-color:var(--tf-info-border);color:var(--tf-info-text,#0e7490);background:#ecfefff5}.tf-toast-icon{flex-shrink:0;margin-top:1px}.tf-toast-msg{font-size:var(--text-base,14px);flex:1;font-weight:500;line-height:1.5}.tf-toast-close{border-radius:var(--radius-sm,8px);width:28px;height:28px;color:inherit;cursor:pointer;opacity:.5;transition:opacity var(--duration-fast) ease, background var(--duration-fast) ease;background:0 0;border:none;flex-shrink:0;place-items:center;display:grid}.tf-toast-close:hover{opacity:1;background:#0000000f}.tf-toast-close:focus-visible{opacity:1;outline:none;box-shadow:0 0 0 3px #fff6}@keyframes tf-toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.tf-toast--closing{animation:.2s cubic-bezier(.16,1,.3,1) forwards tf-toast-out}@keyframes tf-toast-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(12px)scale(.96)}}.dashboard-feedback{padding:var(--sp-3,12px) var(--sp-4,16px);border-radius:var(--radius-md,12px);background:var(--tf-info-bg);border:1px solid var(--tf-info-border);color:var(--tf-info-text,#0e7490);font-size:var(--text-base,14px);font-weight:500;line-height:1.5}.dashboard-error{padding:var(--sp-3,12px) var(--sp-4,16px);border-radius:var(--radius-md,12px);background:var(--tf-error-bg);border:1px solid var(--tf-error-border);color:var(--tf-error-text,#b91c1c);font-size:var(--text-base,14px);flex-wrap:wrap;align-items:center;gap:10px;font-weight:500;line-height:1.5;display:flex}.dashboard-error span{flex:1;min-width:0}.dashboard-error button{color:inherit;cursor:pointer;opacity:.85;background:0 0;border:1px solid;border-radius:999px;flex-shrink:0;padding:5px 14px;font-size:13px;font-weight:600;transition:opacity .15s}.dashboard-error button:hover{opacity:1}.dashboard-error button:focus-visible{opacity:1;outline:none;box-shadow:0 0 0 3px #f43f5e40}@media (prefers-reduced-motion:reduce){.metric-card,.panel-card,.rating-star,.skeleton-block,.tf-toast{transition:none;animation:none}}@media (width<=640px){.panel-card-header{flex-direction:column}.progress-ring-grid,.progress-ring-card{grid-template-columns:1fr}.progress-ring-visual{justify-self:center}.tf-toast-container{left:var(--sp-3,12px);right:var(--sp-3,12px);max-width:none}}
