:root{--color-primary:#667eea;--color-primary-dark:#5a67d8;--color-secondary:#764ba2;--color-secondary-dark:#5a3d8a;--color-bg:#f3f5fb;--color-surface:#fff;--color-surface-2:#f8f9fc;--color-surface-hover:#f1f3f9;--color-text-primary:#1a1a2e;--color-text-secondary:#4a4a6a;--color-text-muted:#8a8aa3;--color-border:#e5e7eb;--color-input-bg:#fff;--color-success-bg:#d5f4e6;--color-success-fg:#16874a;--color-warning-bg:#fff4d6;--color-warning-fg:#b27d0a;--color-error-bg:#fceceb;--color-error-fg:#d92d20;--color-neutral-bg:#fef5e7;--color-neutral-fg:#8a6d3b;--color-skeleton-base:#e6e8f2;--color-skeleton-shimmer:#f4f6fb;--font-family:"Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-size-xs:clamp(.72rem, 2vw, .8rem);--font-size-sm:clamp(.82rem, 2.2vw, .9rem);--font-size-base:clamp(.95rem, 2.5vw, 1rem);--font-size-md:clamp(1.05rem, 2.8vw, 1.15rem);--font-size-lg:clamp(1.25rem, 4vw, 1.5rem);--font-size-xl:clamp(1.5rem, 5vw, 1.875rem);--font-size-2xl:clamp(1.75rem, 6vw, 2.25rem);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.3;--line-height-normal:1.5;--letter-spacing-tight:-.02em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:9px;--radius-md:14px;--radius-lg:20px;--radius-full:999px;--shadow-sm:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow-md:0 6px 20px #1018281a;--shadow-lg:0 12px 32px #10182829;--shadow-soft:0 4px 12px #64748b14;--container-max-width:1280px;--container-padding-mobile:14px;--container-padding-tablet:24px;--container-padding-desktop:40px;--content-max-width:720px;--touch-target-min:44px;--bottom-nav-height:64px;--topbar-height:56px;--sidebar-width:260px;--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--ease-default:cubic-bezier(.4, 0, .2, 1);--z-base:0;--z-nav:50;--z-dropdown:100;--z-modal:200;--z-toast:300;--z-bottomsheet:400}[data-theme=dark]{--color-bg:#0f0f1f;--color-surface:#1e1e30;--color-surface-2:#24243c;--color-surface-hover:#2b2b48;--color-text-primary:#e6e6f5;--color-text-secondary:#b8b8d4;--color-text-muted:#8f8fb0;--color-border:#34345a;--color-input-bg:#232340;--color-success-bg:#123524;--color-success-fg:#4ade80;--color-warning-bg:#332a10;--color-warning-fg:#fbbf24;--color-error-bg:#3a1414;--color-error-fg:#f87171;--color-neutral-bg:#332a10;--color-neutral-fg:#f5b942;--color-skeleton-base:#2b2b48;--color-skeleton-shimmer:#38385c;--shadow-sm:0 1px 3px #00000080;--shadow-md:0 8px 24px #0009;--shadow-lg:0 12px 32px #000000b3;--shadow-soft:0 4px 12px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background:radial-gradient(1200px 600px at 80% -10%, var(--color-primary) 0%, transparent 50%), radial-gradient(1000px 500px at -10% 110%, var(--color-secondary) 0%, transparent 50%), var(--color-bg)}@supports (color:color-mix(in lab, red, red)){body{background:radial-gradient(1200px 600px at 80% -10%, color-mix(in srgb, var(--color-primary) 10%, transparent) 0%, transparent 50%), radial-gradient(1000px 500px at -10% 110%, color-mix(in srgb, var(--color-secondary) 10%, transparent) 0%, transparent 50%), var(--color-bg)}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);font-weight:var(--font-weight-semibold)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}a{color:var(--color-primary);transition:color var(--duration-fast) var(--ease-default);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:var(--container-max-width);padding:var(--space-4) var(--container-padding-mobile);margin:0 auto}main{padding-bottom:calc(var(--bottom-nav-height) + var(--space-6))}:focus-visible{outline:3px solid var(--color-primary)}@supports (color:color-mix(in lab, red, red)){:focus-visible{outline:3px solid color-mix(in srgb, var(--color-primary) 40%, transparent)}}:focus-visible{outline-offset:2px;border-radius:var(--radius-sm)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);transition:box-shadow var(--duration-normal) var(--ease-default), transform var(--duration-normal) var(--ease-default)}.card-hover:active{transform:scale(.99)}button{font-family:var(--font-family)}.btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:transform var(--duration-fast) var(--ease-default), box-shadow var(--duration-normal) var(--ease-default), opacity var(--duration-fast) var(--ease-default), background var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:none;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn:hover{text-decoration:none}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);color:#fff;box-shadow:var(--shadow-soft)}.btn-primary:hover{box-shadow:var(--shadow-md);opacity:.95}.btn-secondary{background:var(--color-surface-2);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.btn-danger{color:var(--color-error-fg);border:1px solid var(--color-error-fg);background:0 0}@supports (color:color-mix(in lab, red, red)){.btn-danger{border:1px solid color-mix(in srgb, var(--color-error-fg) 40%, transparent)}}.btn-danger:hover{background:var(--color-error-fg)}@supports (color:color-mix(in lab, red, red)){.btn-danger:hover{background:color-mix(in srgb, var(--color-error-fg) 8%, transparent)}}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.btn-sm{width:auto;min-height:36px;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.btn-block{width:100%}.btn-loading{opacity:.7;cursor:progress}.btn-spinner{border:2px solid var(--color-border);border-radius:var(--radius-full);border-top-color:currentColor;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;display:inline-flex}.badge-positive{background:var(--color-success-bg);color:var(--color-success-fg)}.badge-negative{background:var(--color-error-bg);color:var(--color-error-fg)}.badge-neutral{background:var(--color-neutral-bg);color:var(--color-neutral-fg)}.badge-engine{background:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.badge-engine{background:color-mix(in srgb, var(--color-primary) 12%, transparent)}}.badge-engine{color:var(--color-primary)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.badge-outline{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.card-highlight{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.card-highlight{border-color:color-mix(in srgb, var(--color-primary) 40%, transparent)}}.card-highlight{box-shadow:var(--shadow-md)}.card-pad-sm{padding:var(--space-2) var(--space-3)}.card-pad-md{padding:var(--space-4)}.card-pad-lg{padding:var(--space-6)}.card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.card-header h3{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.card-header-text{min-width:0}.card-body{padding-top:var(--space-4)}.card-footer{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);margin-top:var(--space-2);border-top:1px solid var(--color-border);display:flex}input[type=text],input[type=password],input[type=email],input[type=date],input[type=number],input[type=url],input[type=search],textarea,select{width:100%;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-family);background:var(--color-input-bg);color:var(--color-text-primary);transition:border-color var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-default);appearance:none}textarea{resize:vertical;min-height:120px}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary);outline:none}@supports (color:color-mix(in lab, red, red)){input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent)}}label{margin-bottom:var(--space-2);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);display:block}.form-group{margin-bottom:var(--space-5)}.input-error{border-color:var(--color-error-fg);box-shadow:0 0 0 3px var(--color-error-fg)}@supports (color:color-mix(in lab, red, red)){.input-error{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-error-fg) 15%, transparent)}}.field-error{margin-top:var(--space-2);color:var(--color-error-fg);font-size:var(--font-size-xs)}.field-hint{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-xs)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-5);font-size:var(--font-size-sm)}.alert-error{color:var(--color-error-fg);background:var(--color-error-bg)}.alert-success{color:var(--color-success-fg);background:var(--color-success-bg)}.alert-warning{color:var(--color-warning-fg);background:var(--color-warning-bg)}.muted{color:var(--color-text-muted)}.text-center{text-align:center}.hidden-mobile,.hidden-desktop{display:none}.w-full{width:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skeleton{background:var(--color-skeleton-base);border-radius:var(--radius-sm);display:block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(100deg, transparent 20%, var(--color-skeleton-shimmer) 50%, transparent 80%);animation:skeleton-shimmer 1.4s var(--ease-default) infinite;position:absolute;inset:0;transform:translate(-100%)}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-text:last-child{margin-bottom:0}.skeleton-text-sm{height:11px}.skeleton-text-lg{height:20px}.skeleton-card{border-radius:var(--radius-md);height:120px}.skeleton-stat{border-radius:var(--radius-md);height:88px}.skeleton-table-row{height:48px;margin-bottom:var(--space-2)}.skeleton-avatar{border-radius:var(--radius-full);flex-shrink:0;width:44px;height:44px}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.ptr-indicator{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min);margin:0 auto var(--space-3);padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);background:var(--color-primary);display:flex}@supports (color:color-mix(in lab, red, red)){.ptr-indicator{background:color-mix(in srgb, var(--color-primary) 12%, transparent)}}.ptr-indicator{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:center;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;max-width:220px}@media (prefers-reduced-motion:reduce){.ptr-indicator{transition:none!important}}.progress-bar{border-radius:var(--radius-full);background:var(--color-border);width:100%;height:8px;margin:var(--space-3) 0;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:var(--color-primary);height:100%;transition:width .3s}@media (prefers-reduced-motion:reduce){.progress-bar-fill{transition:none}}.sentiment-arc-chart{width:100%;margin:var(--space-3) 0}.sentiment-arc-chart svg{width:100%;height:160px;display:block}.arc-zero-line{stroke:var(--color-border);stroke-width:1px}.arc-line{stroke:var(--color-primary);stroke-width:2px}.arc-area{fill:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.arc-area{fill:color-mix(in srgb, var(--color-primary) 15%, transparent)}}.arc-area{stroke:none}.arc-labels{font-size:var(--font-size-xs);margin-top:var(--space-1);justify-content:space-between;display:flex}.sentiment-mix-summary{gap:var(--space-4);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.sentiment-mix-item{align-items:baseline;gap:var(--space-2);display:flex}.sentiment-mix-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.table-scroll{-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm);border:1px solid var(--color-border);width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm);min-width:520px}th{padding:var(--space-3);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-surface-2);border-bottom:2px solid var(--color-border);position:sticky;top:0}td{padding:var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:top}tbody tr:nth-child(2n){background:var(--color-surface-2)}@supports (color:color-mix(in lab, red, red)){tbody tr:nth-child(2n){background:color-mix(in srgb, var(--color-surface-2) 45%, transparent)}}tbody tr:active{background:var(--color-surface-hover)}.table-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-10) var(--space-4)}.table-row-clickable{cursor:pointer}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-header-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.section{margin-top:var(--space-8)}.section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.dashboard-stats{margin-bottom:var(--space-4)}.stat{gap:var(--space-1);flex-direction:column;display:flex}.stat-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:1.1}.stat-positive{color:var(--color-success-fg)}.stat-negative{color:var(--color-error-fg)}.stat-pct{font-size:var(--font-size-xs);color:var(--color-text-muted)}.dashboard-distribution,.dashboard-distribution h3{margin-bottom:var(--space-4)}.distribution-bar{border-radius:var(--radius-full);background:var(--color-surface-2);border:1px solid var(--color-border);height:16px;display:flex;overflow:hidden}.distribution-positive{background:var(--color-success-fg)}.distribution-neutral{background:var(--color-neutral-fg)}.distribution-negative{background:var(--color-error-fg)}.distribution-legend{justify-content:center;gap:var(--space-6);margin-top:var(--space-3);font-size:var(--font-size-sm);display:flex}.billing-actions{margin-top:var(--space-8);text-align:center}.billing-actions p{margin-bottom:var(--space-4)}.analysis-card{max-width:640px;margin:0 auto}.analysis-result{margin-top:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-5)}.analysis-score-row{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.analysis-metrics{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.analysis-original{margin-top:var(--space-4);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.metrics-breakdown{margin-top:var(--space-2);gap:var(--space-2);flex-direction:column;display:flex}.metrics-breakdown-label{font-size:var(--font-size-xs)}.emotion-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.analysis-list{gap:var(--space-3);flex-direction:column;display:flex}.analysis-item-row{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.analysis-engine{flex:1}.analysis-date{white-space:nowrap}.analysis-preview{color:var(--color-text-primary);margin-bottom:var(--space-2);line-height:var(--line-height-normal)}.analysis-item-meta{font-size:var(--font-size-xs)}.empty-icon{text-align:center;margin-bottom:var(--space-3);font-size:2.5rem}.empty-state{text-align:center;padding:var(--space-8) var(--space-4)}.empty-state h3{margin-bottom:var(--space-2)}.empty-state p{margin-bottom:var(--space-4)}.hero-actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.hero{text-align:center;padding:var(--space-10) var(--space-4)}.hero h1{margin-top:var(--space-3);margin-bottom:var(--space-3)}.hero-sub{max-width:480px;margin:0 auto}.hero .badge{margin-bottom:var(--space-3)}.auth-card{max-width:400px;margin:var(--space-8) auto}.auth-card h1{margin-bottom:var(--space-2)}.auth-terms{margin-top:var(--space-5);font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center}.auth-terms a{color:var(--color-primary)}.form-row{margin-bottom:var(--space-3);justify-content:flex-end;display:flex}.link-sm{font-size:var(--font-size-sm);color:var(--color-primary)}.demo-card{max-width:640px;padding:var(--space-6);margin:0 auto}.demo-result{margin-top:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-5)}.demo-score-row{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.demo-metrics{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.metric{background:var(--color-surface-2);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}.metric-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-1);display:block}.metric-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.plan-price{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:var(--space-3) 0}.plan-price .muted{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal)}.plan-features{margin:var(--space-4) 0;gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.plan-features li{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.admin-header{margin-bottom:var(--space-6)}.admin-nav{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.admin-nav a{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.admin-nav a:hover{background:var(--color-surface-hover);text-decoration:none}.admin-nav a.active{color:var(--color-primary);background:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.admin-nav a.active{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}}.grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}.grid-2,.grid-3{grid-template-columns:1fr}.bottom-nav{height:var(--bottom-nav-height);background:var(--color-surface);position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.bottom-nav{background:color-mix(in srgb, var(--color-surface) 92%, transparent)}}.bottom-nav{-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--color-border);z-index:var(--z-nav);padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;align-items:center;display:flex}.bottom-nav a{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--touch-target-min);min-width:var(--touch-target-min);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);-webkit-tap-highlight-color:transparent;padding:var(--space-1) 0;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-default), background var(--duration-fast) var(--ease-default);flex-direction:column;flex:1 1 0;text-decoration:none;display:flex}.bottom-nav a:active{background:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bottom-nav a:active{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}}.bottom-nav a.active{color:var(--color-primary)}.bottom-nav a:hover{text-decoration:none}.bottom-nav svg{flex-shrink:0;width:22px;height:22px}.topbar,.sidebar{display:none}.topbar{z-index:var(--z-nav);height:var(--topbar-height);background:var(--color-surface);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.topbar{background:color-mix(in srgb, var(--color-surface) 92%, transparent)}}.topbar{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.topbar-inner{justify-content:space-between;align-items:center;gap:var(--space-4);height:100%;max-width:var(--container-max-width);padding:0 var(--container-padding-mobile);margin:0 auto;display:flex}.topbar-brand{align-items:center;gap:var(--space-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex}.topbar-brand:hover{text-decoration:none}.topbar-nav{align-items:center;gap:var(--space-2);display:flex}.topbar-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.topbar-nav a:hover{color:var(--color-text-primary);background:var(--color-surface-hover);text-decoration:none}.topbar-nav a.active{color:var(--color-primary);background:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.topbar-nav a.active{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}}.topbar-actions{align-items:center;gap:var(--space-2);display:flex}.sidebar{top:var(--topbar-height);width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-6) var(--space-4);z-index:var(--z-nav);position:fixed;bottom:0;left:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:var(--space-2);padding:0 var(--space-2) var(--space-6);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--color-text-primary);display:flex}.sidebar-logo{font-size:1.4rem}.sidebar-nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar-nav a{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);transition:background var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default);display:flex}.sidebar-nav a:hover{background:var(--color-surface-hover);color:var(--color-text-primary);text-decoration:none}.sidebar-nav a.active{color:var(--color-primary);background:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.sidebar-nav a.active{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}}.sidebar-nav svg{flex-shrink:0;width:20px;height:20px}.toast{left:50%;bottom:calc(var(--bottom-nav-height) + var(--space-4));background:var(--color-text-primary);color:var(--color-surface);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-lg);z-index:var(--z-toast);opacity:0;pointer-events:none;transition:opacity var(--duration-normal) var(--ease-default), transform var(--duration-normal) var(--ease-default);max-width:calc(100vw - calc(var(--space-8) * 2));white-space:nowrap;text-overflow:ellipsis;position:fixed;overflow:hidden;transform:translate(-50%)}.toast.show{opacity:1;transform:translate(-50%)translateY(-4px)}.toast-stack{left:50%;bottom:calc(var(--bottom-nav-height) + var(--space-4));gap:var(--space-2);z-index:var(--z-toast);pointer-events:none;max-width:calc(100vw - calc(var(--space-8) * 2));flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.toast-stack .toast{align-items:center;gap:var(--space-2);opacity:1;pointer-events:auto;width:100%;display:flex;position:static;transform:none}.toast-stack .toast.toast-show{transform:none}.toast-success{background:var(--color-success-fg);color:#fff}.toast-error{background:var(--color-error-fg);color:#fff}.toast-warning{background:var(--color-warning-fg);color:#fff}.toast-info{background:var(--color-text-primary);color:var(--color-surface)}.toast-icon{font-weight:var(--font-weight-bold);flex-shrink:0}.toast-message{flex:1;min-width:0}.toast-dismiss{color:inherit;cursor:pointer;font-size:var(--font-size-xs);padding:var(--space-1);opacity:.7;border-radius:var(--radius-full);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.toast-dismiss:hover{opacity:1;background:#fff3}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal);animation:fade-in var(--duration-fast) var(--ease-default);background:#0a0a1e99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:85dvh;padding:var(--space-6);animation:slide-up var(--duration-normal) var(--ease-default);outline:none;overflow-y:auto}.modal-sm{max-width:400px}.modal-md{max-width:560px}.modal-lg{max-width:720px}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.modal-body{padding-bottom:var(--space-4)}.modal-footer{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.modal-close{flex-shrink:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (min-width:768px){.container{padding:var(--space-6) var(--container-padding-tablet)}.btn{width:auto}.grid,.grid-2,.grid-3{grid-template-columns:repeat(2,1fr)}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-hover:active{transform:scale(1)}.table-scroll{border-radius:var(--radius-md)}.modal{border-radius:var(--radius-lg);margin:var(--space-8) auto}.modal-backdrop{align-items:center}.topbar{display:flex}.bottom-nav{display:none}main{padding-bottom:var(--space-8)}.hidden-mobile{display:revert}.hidden-desktop{display:none}}@media (min-width:1024px){.container{padding:var(--space-8) var(--container-padding-desktop)}.grid,.grid-2,.grid-3{grid-template-columns:repeat(3,1fr)}.sidebar{display:block}.topbar-nav{display:none}main{margin-left:var(--sidebar-width)}h1{font-size:var(--font-size-2xl)}.hidden-desktop{display:revert}}@media (min-width:1440px){.container{max-width:var(--container-max-width)}}.analytics-section{margin-top:var(--space-8)}.analytics-grid{gap:var(--space-4);display:grid}.analytics-stat{gap:var(--space-1);flex-direction:column;display:flex}.analytics-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.analytics-stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.analytics-chart{height:140px;padding:var(--space-3) var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-md);align-items:flex-end;gap:3px;display:flex;overflow-x:auto}.analytics-bar{background:linear-gradient(180deg, var(--color-primary), var(--color-secondary));border-radius:var(--radius-sm) var(--radius-sm) 2px 2px;opacity:.9;flex:auto;min-width:6px}.analytics-bar:hover{opacity:1}.analytics-bar.bar-strong{background:var(--color-secondary)}.analytics-channel{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-md);margin-bottom:var(--space-2);display:flex}.analytics-channel-value{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
