@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/PatrickHand-Regular.woff2)format("woff2")}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/Caveat-Regular.woff2)format("woff2")}:root{--bg-primary:#fffdf7;--bg-secondary:#fdfaf5;--bg-tertiary:#fff8e6;--text-primary:#1c1917;--text-secondary:#57534e;--text-muted:#a8a29e;--text-secondary-strong:#44403c;--border-color:#44403c;--border-light:#d6d3d1;--accent-blue:#4285f4;--accent-blue-contrast:#1e52af;--accent-blue-light:#d2e3fc;--accent-blue-bg:#4285f414;--accent-yellow:#fbbc05;--accent-yellow-light:#fff5c8;--accent-yellow-bg:#fbbc0526;--accent-red:#f94a36;--accent-red-contrast:#b4281e;--accent-red-light:#fed7d2;--accent-red-bg:#f94a361a;--filter-bar-text:#352f2b;--filter-label-text:#44403c;--filter-btn-bg:#f5f0e4;--filter-btn-text:#57534e;--filter-btn-active-border:#4285f4;--filter-btn-active-bg:#dce8fc;--filter-btn-active-text:#1e52af;--filter-danger-border:#f94a36;--filter-danger-bg:#fee1dc;--filter-danger-text:#b4281e;--accent-green:#29b571;--accent-green-light:#c8f0dc;--accent-green-bg:#29b57126;--accent-purple:#9b51e0;--accent-purple-light:#e8daf6;--accent-purple-bg:#9b51e01a;--text-on-accent:#fff;--shimmer-highlight:#ffffff73;--decoration-blue:#4285f41f;--decoration-yellow:#fbbc051a;--decoration-purple:#9b51e01a;--shadow-sm:2px 2px 0 #57412f14;--shadow-md:4px 4px 0 #57412f14;--shadow-lg:6px 6px 0 #57412f1f;--grid-color:#1c191708;--selection-text:#1c1917;--transition-fast:.15s ease;--transition-normal:.3s ease}[data-theme=dark]{--bg-primary:#1c1917;--bg-secondary:#302b28;--bg-tertiary:#44403c;--text-primary:#e7e5e4;--text-secondary:#a8a29e;--text-muted:#78716c;--text-secondary-strong:#d6d3d1;--border-color:#9c8e82;--border-light:#57534e;--accent-blue:#7cc4fa;--accent-blue-contrast:#a5d8ff;--accent-blue-light:#28445c;--accent-blue-bg:#7cc4fa26;--accent-yellow:#f0ce52;--accent-yellow-light:#4a4428;--accent-yellow-bg:#f0ce5226;--accent-red:#e87470;--accent-red-contrast:#f0a5a2;--accent-red-light:#4a2b2a;--accent-red-bg:#e8747026;--filter-bar-text:#d6d3d1;--filter-label-text:#e7e5e4;--filter-btn-bg:#44403c;--filter-btn-text:#e7e5e4;--filter-btn-active-border:#7cc4fa;--filter-btn-active-bg:#28445c;--filter-btn-active-text:#e7e5e4;--filter-danger-border:#e8a29e;--filter-danger-bg:#4a2b2a;--filter-danger-text:#f5e0de;--accent-green:#72d4a3;--accent-green-light:#1e4d2d;--accent-green-bg:#72d4a326;--accent-purple:#c59cdb;--accent-purple-light:#3a264b;--accent-purple-bg:#c59cdb26;--text-on-accent:#fff;--shimmer-highlight:#e7e5e447;--decoration-blue:#7cc4fa26;--decoration-yellow:#f0ce521a;--decoration-purple:#c59cdb1a;--shadow-sm:2px 2px 0 #0a080659;--shadow-md:4px 4px 0 #0a080659;--shadow-lg:6px 6px 0 #0a080673;--grid-color:#e7e5e408;--selection-text:#1c1917}:root{--font-hand:"Patrick Hand", cursive;--font-hand-alt:"Caveat", cursive;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:20px;--font-size-xl:24px;--font-size-2xl:32px;--font-size-3xl:40px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--container-max-width:1400px;--container-wide:1600px;--title-size:clamp(35px, 4.5vw + 16px, 72px);--subtitle-size:clamp(16px, 2vw + 8px, 28px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-hand);font-size:var(--font-size-base);letter-spacing:.16px;color:var(--text-primary);background-color:var(--bg-primary);transition:background-color var(--transition-normal), color var(--transition-normal);background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);background-size:25px 25px;line-height:1.7}.skip-link{top:-100px;left:var(--space-md);z-index:500;padding:var(--space-sm) var(--space-md);border:2px solid var(--accent-blue);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-md)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#roughCanvas{pointer-events:none;z-index:-1;width:100%;height:100%;position:fixed;top:0;left:0}h1,h2,h3{font-family:var(--font-hand-alt);font-weight:600}p{color:var(--text-secondary)}button{color:inherit;font-family:inherit}.theme-toggle{top:var(--space-lg);right:var(--space-lg);border:2px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;width:48px;height:48px;transition:all var(--transition-fast);z-index:200;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.theme-toggle:hover{box-shadow:var(--shadow-md);transform:scale(1.06)rotate(8deg)}.theme-toggle .icon{width:24px;height:24px;color:var(--text-primary);transition:opacity var(--transition-fast)}.theme-toggle .icon-sun{display:block}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:block}.screens-container{width:100%;min-height:100vh;position:relative;overflow-x:hidden}.screen-inner{width:min(100%, var(--container-max-width));padding:var(--space-2xl) var(--space-lg) var(--space-xl);margin:0 auto}.screen-inner--wide{width:min(100%, var(--container-wide))}.screen-inner--hero{gap:var(--space-xl);padding-top:var(--space-xl);padding-bottom:var(--space-xl);flex-direction:column;display:flex}.title{font-size:var(--title-size);color:var(--text-primary);align-items:center;gap:var(--space-sm);justify-content:center;display:flex}.title-icon{display:inline-flex}.pencil-icon{width:42px;height:42px;color:var(--accent-blue)}.subtitle{font-size:var(--subtitle-size);color:var(--text-secondary);text-align:center}.top-nav{justify-content:center;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0 var(--space-xl);flex-wrap:wrap;display:flex}.top-link{font-size:var(--font-size-lg);padding:var(--space-xs) var(--space-md);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);transition:all var(--transition-fast);text-decoration:none}.top-link:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.top-link.is-active{border-color:var(--accent-blue);background:var(--accent-blue-bg);color:var(--accent-blue)}.hero-header{text-align:center;gap:var(--space-xs);flex-direction:column;display:flex}.screen-header{justify-content:space-between;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-xl);display:flex}.screen-header--center{text-align:center;flex-direction:column}.screen-header .title{justify-content:flex-start;font-size:clamp(29px,3vw + 13px,51px)}.screen-header .title:before{width:70%;left:0;transform:none}.screen-header--center .title:before{width:80%;left:50%;transform:translate(-50%)}.header-text{gap:var(--space-xs);flex-direction:column;display:flex}.header-text .subtitle{text-align:left;font-size:clamp(16px,1.4vw + 6px,22px)}.screen-header--center .title,.screen-header--center .subtitle{text-align:center;justify-content:center}.primary-btn{padding:var(--space-md) var(--space-2xl);border:3px solid var(--accent-blue);border-radius:var(--radius-lg);background:var(--accent-blue-bg);color:var(--text-primary);font-size:var(--font-size-lg);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-md);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.primary-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.primary-btn:hover:not(:disabled){background:var(--accent-blue);color:var(--text-on-accent);transform:translateY(-2px)}.ghost-btn{padding:var(--space-sm) var(--space-lg);border:2px dashed var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0}.ghost-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.link-btn{color:var(--accent-blue);cursor:pointer;font-size:var(--font-size-base);background:0 0;border:none}.link-btn:hover{color:var(--accent-blue)}.upload-layout{gap:var(--space-2xl);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start;display:grid}.upload-status-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-md);gap:var(--space-md);flex-direction:column;display:flex}.status-header h2{font-size:var(--font-size-2xl);color:var(--text-primary)}.file-status-list{gap:var(--space-md);flex-direction:column;display:flex}.file-status-item{align-items:center;gap:var(--space-md);padding:var(--space-sm);border-radius:var(--radius-md);background:var(--bg-tertiary);border:2px solid var(--border-light);display:flex}.file-status-item.is-ready{border-color:var(--accent-green);background:var(--accent-green-bg)}.status-indicator{background:var(--text-muted);border:2px solid var(--border-color);border-radius:50%;width:14px;height:14px}.file-status-item.is-ready .status-indicator{background:var(--accent-green);border-color:var(--accent-green)}.status-title{color:var(--text-primary);font-size:var(--font-size-lg)}.status-meta{color:var(--text-secondary);font-size:var(--font-size-sm)}.upload-hint{color:var(--text-secondary);font-size:var(--font-size-base)}.upload-hint.is-error{color:var(--accent-red)}.drop-zone{border:3px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--space-3xl) var(--space-xl);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:var(--accent-yellow-bg);justify-content:center;align-items:center;min-height:280px;display:flex;position:relative}.drop-zone:hover,.drop-zone:focus{border-color:var(--accent-blue);background:var(--accent-blue-bg);transform:scale(1.01)}.drop-zone.drag-over{border-color:var(--accent-green);background:var(--accent-green-bg);transform:scale(1.02)}.drop-zone-content{transition:opacity var(--transition-fast)}.drop-zone.drag-over .drop-zone-content{opacity:.3}.drop-zone-hover{font-size:var(--font-size-xl);color:var(--accent-green);opacity:0;transition:opacity var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drop-zone.drag-over .drop-zone-hover{opacity:1}.upload-icon{width:64px;height:64px;color:var(--text-secondary);margin-bottom:var(--space-md)}.drop-zone-text{font-size:var(--font-size-xl);color:var(--text-primary);margin-bottom:var(--space-xs)}.drop-zone-subtext{font-size:var(--font-size-base);color:var(--text-secondary)}.hub-grid{gap:var(--space-lg);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.hub-section{margin-top:var(--space-xl)}.hub-card{text-align:left;padding:var(--space-lg);border:2px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary);cursor:pointer;gap:var(--space-sm);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);color:inherit;flex-direction:column;text-decoration:none;display:flex}.hub-card:hover{transform:rotate(calc((var(--sketch-rotate,0) * .1deg) - .35deg));box-shadow:var(--shadow-md);border-color:var(--accent-blue-light)}.hub-icon{width:48px;height:48px;color:var(--accent-blue)}.hub-card h3{font-size:var(--font-size-xl);color:var(--text-primary)}.privacy-footnote{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center}.no-underline{padding-bottom:0;background-image:none!important}.file-type-section{margin-bottom:var(--space-xl)}.clean-layout{gap:var(--space-lg);flex-direction:column;display:flex}.file-type-label{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-md)}.file-type-options{gap:var(--space-md);flex-wrap:wrap;display:flex}.file-type-option{cursor:pointer}.file-type-option input{opacity:0;pointer-events:none;position:absolute}.file-type-option input:disabled+.option-box{opacity:.5;cursor:not-allowed}.option-box{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);transition:all var(--transition-fast);font-size:var(--font-size-lg);display:flex}.option-radio{border:2px solid var(--border-color);border-radius:50%;width:20px;height:20px;position:relative}.option-radio:after{content:"";width:10px;height:10px;transition:transform var(--transition-fast);background:currentColor;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.file-type-option input:checked+.option-box .option-radio:after{transform:translate(-50%,-50%)scale(1)}.file-type-option:hover .option-box{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.file-type-option input:checked+.option-box{box-shadow:var(--shadow-md);border-width:3px}.option-blue .option-box{border-color:var(--accent-blue)}.option-blue input:checked+.option-box{background:var(--accent-blue-bg)}.option-blue .option-radio{color:var(--accent-blue);border-color:var(--accent-blue)}.option-purple .option-box{border-color:var(--accent-purple)}.option-purple input:checked+.option-box{background:var(--accent-purple-bg)}.option-purple .option-radio{color:var(--accent-purple);border-color:var(--accent-purple)}.option-green .option-box{border-color:var(--accent-green)}.option-green input:checked+.option-box{background:var(--accent-green-bg)}.option-green .option-radio{color:var(--accent-green);border-color:var(--accent-green)}.option-yellow .option-box{border-color:var(--accent-yellow)}.option-yellow input:checked+.option-box{background:var(--accent-yellow-bg)}.option-yellow .option-radio{color:var(--accent-yellow);border-color:var(--accent-yellow)}.cleaner-hint{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.preview-section{margin-bottom:var(--space-xl);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);display:none;position:relative;overflow:hidden}.preview-section:not([hidden]){display:block}.preview-header{align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-tertiary);border-bottom:2px solid var(--border-light);display:flex}.preview-icon{width:24px;height:24px;color:var(--accent-blue)}.preview-header h3{font-size:var(--font-size-lg);font-weight:400}.file-info{font-size:var(--font-size-sm);color:var(--text-secondary);background:var(--accent-blue-bg);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);margin-left:auto}.preview-table-wrapper{max-height:320px;overflow:auto}.preview-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.preview-table th,.preview-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--border-light);text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.preview-table th{background:var(--bg-tertiary);font-weight:600;position:sticky;top:0}.preview-table tbody tr:hover{background:var(--accent-blue-bg)}.preview-note{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;border-top:1px solid var(--border-light)}.download-section{align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);flex-direction:column;display:none}.download-section:not([hidden]){display:flex}.action-buttons{gap:var(--space-lg);flex-wrap:wrap;justify-content:center;display:flex}.download-btn{font-size:var(--font-size-lg);padding:var(--space-md) var(--space-2xl);border:3px solid var(--accent-green);border-radius:var(--radius-lg);background:var(--accent-green-bg);color:var(--text-primary);cursor:pointer;align-items:center;gap:var(--space-md);transition:all var(--transition-fast);box-shadow:var(--shadow-md);display:flex}.download-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.download-btn:hover:not(:disabled){background:var(--accent-green);color:var(--text-on-accent);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.download-icon{width:28px;height:28px}.reset-btn{font-size:var(--font-size-base);padding:var(--space-md) var(--space-xl);border:2px solid color-mix(in srgb, var(--accent-red) 45%, var(--border-color));border-radius:var(--radius-lg);background:color-mix(in srgb, var(--accent-red-bg) 70%, var(--bg-secondary));color:color-mix(in srgb, var(--accent-red) 82%, var(--text-primary));cursor:pointer;align-items:center;gap:var(--space-sm);transition:all var(--transition-fast);text-decoration:none;display:flex}.reset-btn:hover{border-color:var(--accent-red);color:var(--text-on-accent);background:var(--accent-red)}.reset-icon{width:20px;height:20px}.error-message{align-items:flex-start;gap:var(--space-md);padding:var(--space-md);background:var(--accent-red-bg);border:2px solid var(--accent-red);border-radius:var(--radius-md);margin-bottom:var(--space-xl);display:none}.error-message:not([hidden]){display:flex}.error-icon{width:24px;height:24px;color:var(--accent-red);flex-shrink:0}.error-message p{color:var(--accent-red);font-size:var(--font-size-base)}.filters-bar{gap:var(--space-lg);padding:var(--space-md);border:2px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-sm);margin-bottom:var(--space-lg);color:var(--filter-bar-text);flex-wrap:wrap;align-items:center;display:flex}.filters-bar .ghost-btn{border-color:var(--filter-danger-border);color:var(--filter-danger-text);background:var(--filter-danger-bg)}.filters-bar .ghost-btn:hover{border-color:var(--accent-red);color:var(--text-on-accent);background:var(--accent-red)}.filter-group{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.filter-label{font-size:var(--font-size-sm);color:var(--filter-label-text);text-transform:uppercase;letter-spacing:1.12px}.filter-buttons{gap:var(--space-xs);flex-wrap:wrap;display:flex}.filter-btn{padding:var(--space-xs) var(--space-md);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--filter-btn-bg);color:var(--filter-btn-text);cursor:pointer;transition:all var(--transition-fast)}.filter-btn.active{border-color:var(--filter-btn-active-border);background:var(--filter-btn-active-bg);color:var(--filter-btn-active-text)}.filter-btn:hover{border-color:var(--accent-blue)}.filter-select{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);border:2px solid var(--border-light);background:var(--bg-tertiary);font-family:inherit}.active-filters{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.active-filters-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.active-filters-list{gap:var(--space-sm);flex-wrap:wrap;display:flex}.filter-chip{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);border:2px solid var(--border-light);background:var(--bg-tertiary);font-size:var(--font-size-sm);display:inline-flex}.filter-chip button{cursor:pointer;color:inherit;background:0 0;border:none}.analytics-grid{gap:var(--space-lg);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.chart-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);gap:var(--space-md);flex-direction:column;display:flex;position:relative}.chart-card--wide{grid-column:span 2}.chart-header h3{font-size:var(--font-size-xl);color:var(--text-primary)}.chart-header{position:relative}.chart-header p{font-size:var(--font-size-sm);color:var(--text-secondary)}.chart-export-btn{background:var(--bg-tertiary);border:1.5px solid var(--border-light);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer;color:var(--text-secondary);opacity:0;transition:opacity var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.chart-card:hover .chart-export-btn,.chart-card:focus-within .chart-export-btn{opacity:1}.chart-export-btn:hover{color:var(--text-primary);border-color:var(--border-color)}.chart-canvas-wrap{width:100%;height:260px;position:relative}.chart-card--wide .chart-canvas-wrap{height:320px}.chart-canvas-wrap canvas{width:100%;height:100%}.chart-note{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:left;align-self:flex-start;margin-top:auto}.global-error-banner{left:var(--space-lg);right:var(--space-lg);bottom:var(--space-lg);z-index:1000;background:var(--accent-red-light);border:2px solid var(--accent-red);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-md) var(--space-lg);color:var(--text-primary);position:fixed}.global-error-content{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.global-error-text{font-size:var(--font-size-sm);margin:0}.global-error-actions{gap:var(--space-sm);display:flex}.status-banner{left:var(--space-lg);right:var(--space-lg);top:var(--space-lg);z-index:950;background:var(--accent-yellow-light);border:2px solid var(--accent-yellow);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-sm) var(--space-lg);color:var(--text-primary);font-size:var(--font-size-sm);text-align:center;position:fixed}.analytics-empty,.insights-empty{text-align:center;padding:var(--space-xl);border:2px dashed var(--border-light);border-radius:var(--radius-lg);background:var(--bg-secondary);margin-bottom:var(--space-xl)}.stats-grid{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{background:var(--bg-tertiary);border:2px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-md);text-align:center}.stat-value{font-size:var(--font-size-2xl);color:var(--text-primary);position:relative}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.stat-asterisk{cursor:help;color:var(--accent-red);font-size:var(--font-size-lg);vertical-align:super;margin-left:2px}.stat-popup{margin-bottom:var(--space-xs);padding:var(--space-xs) var(--space-sm);border:2px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);box-shadow:var(--shadow-md);font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;z-index:100;pointer-events:none;display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.stat-popup.visible{display:block}.stat-card.popup-active{z-index:10;position:relative}.insights-grid{gap:var(--space-lg);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.insight-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);gap:var(--space-md);align-items:flex-start;display:flex}.insight-icon{width:64px;height:64px;color:var(--accent-blue);flex-shrink:0}.insight-icon.accent-yellow{color:var(--accent-yellow)}.insight-icon.accent-purple{color:var(--accent-purple)}.insight-icon.accent-blue{color:var(--accent-blue)}.insight-icon.accent-green{color:var(--accent-green)}.insight-icon.accent-red{color:var(--accent-red)}.insight-card[data-accent=accent-yellow]{border-color:var(--accent-yellow)}.insight-card[data-accent=accent-purple]{border-color:var(--accent-purple)}.insight-card[data-accent=accent-blue]{border-color:var(--accent-blue)}.insight-card[data-accent=accent-green]{border-color:var(--accent-green)}.insight-card[data-accent=accent-red]{border-color:var(--accent-red)}.insight-body h3{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-xs)}.insight-body p{font-size:var(--font-size-base);color:var(--text-secondary)}.insight-tip{align-items:center;gap:var(--space-md);padding:var(--space-md);border:2px dashed var(--border-light);border-radius:var(--radius-lg);background:var(--bg-tertiary);margin-bottom:var(--space-xl);display:flex}.insight-tip-icon{width:48px;height:48px;color:var(--accent-yellow)}.messages-layout{gap:var(--space-lg);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.message-panels{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.message-panel{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);gap:var(--space-md);flex-direction:column;display:flex}.message-panel[data-accent=blue]{border-color:var(--accent-blue)}.message-panel[data-accent=yellow]{border-color:var(--accent-yellow)}.message-panel[data-accent=purple]{border-color:var(--accent-purple)}.message-panel-header h3{font-size:var(--font-size-xl);color:var(--text-primary);margin:0}.message-panel-header p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.message-panel-header{align-items:start;column-gap:var(--space-sm);gap:var(--space-xs);padding-right:var(--space-xs);grid-template-columns:minmax(0,1fr) auto;display:grid}.export-panel-btn{font-size:var(--font-size-sm);padding:var(--space-sm) var(--space-lg);place-self:start end;gap:var(--space-xs);box-shadow:var(--shadow-sm);border-width:2px;grid-area:1/2/span 2;margin-top:0}.export-panel-btn:hover:not(:disabled){transform:translateY(-2px)}.export-panel-btn:disabled{transform:none}.message-item-title a{color:var(--text-primary);text-decoration:none}.message-item-title a:hover{color:var(--accent-blue)}.message-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.message-item{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);display:flex}.message-item-main{min-width:0}.message-item-title{color:var(--text-primary);font-size:var(--font-size-lg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.message-item-meta{color:var(--text-secondary);font-size:var(--font-size-sm)}.message-item-value{padding:var(--space-xs) var(--space-sm);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);flex-shrink:0}.message-empty{padding:var(--space-md);border:2px dashed var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--font-size-base)}.skeleton-row{align-items:center}.skeleton-block{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-tertiary) 70%, var(--border-light) 30%);position:relative;overflow:hidden}.skeleton-block:after{content:"";background:linear-gradient(90deg, transparent, var(--shimmer-highlight), transparent);animation:1.2s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-title{width:min(180px,62%);height:18px}.skeleton-meta{width:min(230px,84%);height:14px;margin-top:var(--space-xs)}.skeleton-meta--wide{width:92%}.skeleton-meta--mid{width:78%}.skeleton-value{width:72px;height:24px}.skeleton-icon{flex-shrink:0;width:56px;height:56px}.skeleton-body{flex:1}.skeleton-insight{min-height:118px}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.progress-overlay{background:color-mix(in srgb, var(--bg-primary) 58%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.progress-overlay[hidden]{display:none}.progress-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;box-shadow:var(--shadow-lg);align-items:center;gap:var(--space-sm);flex-direction:column;min-width:min(420px,90vw);display:flex}.content-loading-card{min-width:min(360px,88vw)}.content-loading-card .progress-canvas-wrap,.content-loading-card .progress-percent{display:none}.progress-gear-wrap{border:2px dashed var(--border-light);background:var(--bg-tertiary);border-radius:50%;place-items:center;width:88px;height:88px;animation:2.4s ease-in-out infinite gear-float;display:grid}.progress-gear{width:62px;height:62px;color:var(--accent-blue);animation:3.2s linear infinite gear-spin}.progress-card h2{font-size:var(--font-size-2xl);color:var(--text-primary)}.progress-card>p{max-width:34ch}.progress-canvas-wrap{height:76px;margin:var(--space-md) 0}.progress-canvas-wrap canvas{width:100%;height:100%}.progress-percent{font-size:var(--font-size-lg);color:var(--text-primary);min-height:28px;font-weight:600}@keyframes gear-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gear-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.progress-gear-wrap,.progress-gear{animation:none}}.chart-tooltip{z-index:400;padding:var(--space-xs) var(--space-sm);border:2px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);box-shadow:var(--shadow-sm);font-size:var(--font-size-sm);color:var(--text-primary);pointer-events:none;max-width:220px;position:fixed}.chart-tooltip[hidden]{display:none}@media (max-width:1000px){.upload-layout{grid-template-columns:1fr}.screen-header{flex-direction:column;align-items:flex-start}.screen-header .title{justify-content:flex-start}.chart-card--wide{grid-column:span 1}}@media (max-width:768px){.screen-inner{padding:var(--space-xl) var(--space-md)}.title{flex-direction:column}.theme-toggle{top:var(--space-md);right:var(--space-md)}.filters-bar{flex-direction:column;align-items:flex-start}}@media (max-width:540px){.action-buttons{flex-direction:column;width:100%}.message-item{flex-direction:column;align-items:flex-start}.download-btn,.reset-btn{justify-content:center;width:100%}}.screen{width:100%;min-height:100vh;display:none;position:relative}.screen.active{display:block}.screen.enter{animation:.35s cubic-bezier(.4,0,.2,1) screen-in}.screen.exit{animation:.35s cubic-bezier(.4,0,.2,1) forwards screen-out;display:block;position:absolute;top:0;left:0}.screen .screen-inner{transition:filter var(--transition-fast), opacity var(--transition-fast)}.screen.is-loading .screen-inner{filter:blur(4px);opacity:.7;pointer-events:none}@keyframes screen-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes screen-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-40px)}}.chart-card,.upload-status-card,.insight-card,.message-panel,.stat-card,.file-status-item{animation:.5s ease-out both card-in}.message-panels .message-panel:first-child,.insights-grid .insight-card:first-child,.analytics-grid .chart-card:first-child,.stats-grid .stat-card:first-child{animation-delay:40ms}.message-panels .message-panel:nth-child(2),.insights-grid .insight-card:nth-child(2),.analytics-grid .chart-card:nth-child(2),.stats-grid .stat-card:nth-child(2){animation-delay:90ms}.message-panels .message-panel:nth-child(3),.insights-grid .insight-card:nth-child(3),.analytics-grid .chart-card:nth-child(3),.stats-grid .stat-card:nth-child(3){animation-delay:.14s}.insights-grid .insight-card:nth-child(4),.stats-grid .stat-card:nth-child(4){animation-delay:.19s}.insights-grid .insight-card:nth-child(5),.stats-grid .stat-card:nth-child(5){animation-delay:.24s}@keyframes card-in{0%{opacity:0;transform:translateY(10px)rotate(-.3deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@media (prefers-reduced-motion:reduce){.screen.enter,.screen.exit,.chart-card,.upload-status-card,.insight-card,.message-panel,.stat-card,.file-status-item{animation:none}.screen .screen-inner{transition:none}}.drop-zone,.upload-status-card,.hub-card,.preview-section,.download-btn,.error-message,.insight-card,.progress-card,.message-panel{transform:rotate(calc(var(--sketch-rotate,0) * .1deg))}.drop-zone{--sketch-rotate:.3}.upload-status-card{--sketch-rotate:-.4}.hub-card:first-child{--sketch-rotate:-.2}.hub-card:nth-child(2){--sketch-rotate:.4}.hub-card:nth-child(3){--sketch-rotate:-.3}:focus-visible{box-shadow:0 0 0 2px var(--bg-secondary), 0 0 0 4px var(--accent-blue);outline:none}[tabindex="-1"]:focus-visible{box-shadow:none}.option-radio{border-radius:48% 52% 51% 49%/52% 48%}.drop-zone{border-radius:12px 14px 13px 15px/14px 12px 15px 13px}.hub-card,.chart-card,.upload-status-card,.insight-card,.message-panel,.message-item{border-radius:14px 12px 15px 13px/12px 15px 13px 14px}.download-btn,.primary-btn{border-radius:14px 16px 15px 17px/16px 14px 17px 15px}.drop-zone{background-image:repeating-linear-gradient(0deg, var(--border-color), var(--border-color) 10px, transparent 10px, transparent 20px), repeating-linear-gradient(90deg, var(--border-color), var(--border-color) 10px, transparent 10px, transparent 20px), repeating-linear-gradient(180deg, var(--border-color), var(--border-color) 10px, transparent 10px, transparent 20px), repeating-linear-gradient(270deg, var(--border-color), var(--border-color) 10px, transparent 10px, transparent 20px);background-position:0 0,0 0,100% 0,0 100%;background-repeat:no-repeat;background-size:3px 100%,100% 3px,3px 100%,100% 3px;border:none}.drop-zone:before{content:"";border-radius:inherit;pointer-events:none;border:3px dashed #0000;position:absolute;inset:-3px}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(.5deg)}75%{transform:rotate(-.5deg)}}.download-btn:hover,.primary-btn:hover{animation:.3s ease-in-out wobble}.title{position:relative}.title:before{content:"";background:linear-gradient(90deg, transparent 0%, var(--accent-blue) 10%, var(--accent-blue) 90%, transparent 100%);opacity:.5;border-radius:2px;width:80%;height:4px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.preview-section:not([hidden]):before,.preview-section:not([hidden]):after{content:"";background:var(--accent-yellow);opacity:.6;z-index:10;width:60px;height:24px;position:absolute;transform:rotate(-3deg)}.preview-section:not([hidden]):before{top:-12px;left:20px}.preview-section:not([hidden]):after{top:-12px;right:20px;transform:rotate(3deg)}@keyframes sketch-in{0%{opacity:0;transform:scale(.97)rotate(-1deg)}to{opacity:1;transform:scale(1)rotate(0)}}.upload-layout,.analytics-grid,.insights-grid,.messages-layout,.message-panels{animation:.5s ease-out sketch-in}.error-message{background:var(--accent-red-bg);position:relative;transform:rotate(-.5deg)}.error-message:before{content:"";background:var(--accent-red);opacity:.5;border-radius:0 0 4px 4px;width:40px;height:8px;position:absolute;top:0;left:50%;transform:translate(-50%)}::selection{background:var(--accent-yellow);color:var(--selection-text)}.drop-zone,.hub-card,.file-type-option,.download-btn,.primary-btn,.theme-toggle,.filter-btn{cursor:pointer}.theme-toggle,.top-link,.primary-btn,.ghost-btn,.reset-btn,.filter-btn,.drop-zone,.hub-card,.option-box,.message-item,.message-item-title a,.chart-card,.insight-card,.message-panel,.stat-card,.file-status-item{transition:background-color var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal)}.tutorial-open{overflow:hidden}.tutorial-layer{z-index:1200;pointer-events:auto;position:fixed;inset:0}.tutorial-overlay{background:color-mix(in srgb, var(--text-primary) 42%, transparent);opacity:.85;position:absolute;inset:0}.tutorial-spotlight{z-index:1;border:2px dashed var(--accent-yellow);box-shadow:0 0 0 9999px color-mix(in srgb, var(--text-primary) 38%, transparent), 0 0 0 3px color-mix(in srgb, var(--accent-blue) 65%, transparent), var(--shadow-md);background:color-mix(in srgb, var(--accent-yellow-bg) 65%, transparent);pointer-events:none;border-radius:14px 16px 13px 15px/15px 13px 16px 14px;animation:1.6s ease-in-out infinite alternate tutorial-spotlight-wobble;position:fixed}.tutorial-highlighted{z-index:1201!important}.tutorial-popover{z-index:1300;pointer-events:auto;width:min(420px,100vw - 24px);padding:var(--space-md);border:2px dashed var(--border-color);background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-lg);border-radius:16px 14px 17px 13px/14px 17px 13px 16px;position:fixed;transform:rotate(-.35deg)}.tutorial-popover:before{content:"";border:1px dashed color-mix(in srgb, var(--border-color) 45%, transparent);border-radius:inherit;pointer-events:none;position:absolute;inset:6px}.tutorial-title{margin:0 0 var(--space-sm);font-family:var(--font-hand-alt);font-size:clamp(20px,1.8vw,26px);line-height:1.1}.tutorial-text{font-family:var(--font-hand);font-size:var(--font-size-base);color:var(--text-secondary);margin:0;line-height:1.45}.tutorial-footer{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);display:flex}.tutorial-progress{gap:var(--space-xs);flex-direction:column;display:flex}.tutorial-counter{font-family:var(--font-hand);font-size:var(--font-size-sm);color:var(--text-secondary)}.tutorial-dots{align-items:center;gap:6px;display:flex}.tutorial-dot{border:1px dashed var(--border-color);background:var(--bg-tertiary);cursor:pointer;width:12px;height:12px;transition:transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);border-radius:47% 53% 50% 50%/53% 47% 52% 48%}.tutorial-dot:hover{transform:rotate(-6deg)scale(1.08)}.tutorial-dot.is-active{background:var(--accent-blue);border-color:var(--accent-blue)}.tutorial-controls{align-items:center;gap:var(--space-xs);display:flex}.tutorial-btn{appearance:none;border:2px dashed var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);font-family:var(--font-hand);font-size:var(--font-size-sm);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);border-radius:13px 15px 14px 16px/15px 13px 16px 14px;padding:9px 11px;line-height:1}.tutorial-btn:hover,.tutorial-btn:focus-visible{box-shadow:var(--shadow-sm);transform:translateY(-1px)rotate(-.7deg)}.tutorial-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.tutorial-btn-next{background:var(--accent-blue-bg);border-color:var(--accent-blue)}.tutorial-btn-skip{background:var(--accent-yellow-bg);border-color:var(--accent-yellow)}.tutorial-pointer{z-index:1700;pointer-events:none;width:92px;height:92px;filter:drop-shadow(0 4px 10px color-mix(in srgb, var(--text-primary) 24%, transparent));transform-origin:50%;display:none;position:fixed;overflow:visible}.tutorial-pointer-path-main{fill:none;stroke:color-mix(in srgb, var(--text-primary) 88%, var(--accent-blue));stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round}.tutorial-pointer-path-echo{fill:none;stroke:color-mix(in srgb, var(--accent-blue) 62%, var(--text-primary));stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;opacity:.62}.tutorial-pointer-head{fill:none;stroke:color-mix(in srgb, var(--text-primary) 90%, var(--accent-red));stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round}.tutorial-pointer[data-arrow-style=dashed] .tutorial-pointer-path-main{stroke-dasharray:10 7;animation:1.35s linear infinite tutorial-pointer-dash}.tutorial-pointer[data-arrow-style=dashed] .tutorial-pointer-path-echo{stroke-dasharray:4 8;animation:1.8s linear infinite reverse tutorial-pointer-dash}.tutorial-pointer[data-arrow-style=solid] .tutorial-pointer-path-main,.tutorial-pointer[data-arrow-style=solid] .tutorial-pointer-path-echo{animation:none}.tutorial-mini-layer{pointer-events:none;z-index:1100;position:fixed;inset:0}.tutorial-mini-tip{width:min(260px,100vw - 24px);padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-sm);border:2px dashed var(--border-color);background:var(--bg-secondary);box-shadow:var(--shadow-md);pointer-events:auto;border-radius:13px 16px 14px 15px/15px 13px 16px 14px;position:fixed;transform:rotate(.45deg)}.tutorial-mini-tip:nth-child(2n){transform:rotate(-.45deg)}.tutorial-mini-title{font-family:var(--font-hand-alt);color:var(--text-primary);margin-right:24px;font-size:18px;display:block}.tutorial-mini-text{font-family:var(--font-hand);font-size:var(--font-size-sm);color:var(--text-secondary);margin:3px 0 0}.tutorial-mini-dismiss{border:1px dashed var(--border-color);background:var(--bg-tertiary);width:22px;height:22px;color:var(--text-secondary);font-family:var(--font-hand-alt);cursor:pointer;border-radius:50%;line-height:1;position:absolute;top:6px;right:6px}.tutorial-restart-btn{border:2px dashed var(--accent-green);background:var(--accent-green-bg);color:var(--text-primary);font-family:var(--font-hand)}.tutorial-help-btn{right:var(--space-lg);bottom:var(--space-lg);border:2px dashed var(--border-color);background:color-mix(in srgb, var(--accent-yellow-bg) 70%, var(--bg-secondary));width:58px;height:58px;color:var(--text-primary);box-shadow:var(--shadow-md);z-index:260;cursor:pointer;font-family:var(--font-hand-alt);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);border-radius:47% 53% 50% 50%/53% 47% 52% 48%;place-items:center;font-size:32px;line-height:1;display:grid;position:fixed}.tutorial-help-btn:before{content:"";border:1px dashed color-mix(in srgb, var(--border-color) 45%, transparent);border-radius:inherit;pointer-events:none;position:absolute;inset:5px}.tutorial-help-btn:hover,.tutorial-help-btn:focus-visible{border-color:var(--accent-blue);box-shadow:var(--shadow-lg);transform:rotate(-4deg)translateY(-1px)}.tutorial-help-btn:focus-visible{box-shadow:0 0 0 2px var(--bg-secondary), 0 0 0 4px var(--accent-blue), var(--shadow-lg);outline:none}@media (max-width:700px){.tutorial-popover{width:calc(100vw - 20px);padding:14px}.tutorial-footer{flex-direction:column;align-items:flex-start}.tutorial-controls{justify-content:space-between;width:100%}.tutorial-btn{text-align:center;flex:1}.tutorial-mini-tip{width:calc(100vw - 20px)}.tutorial-pointer{width:82px;height:82px}.tutorial-help-btn{right:var(--space-md);bottom:var(--space-md);width:54px;height:54px;font-size:29px}}@media (prefers-reduced-motion:reduce){.tutorial-spotlight,.tutorial-pointer-path-main,.tutorial-pointer-path-echo,.tutorial-btn,.tutorial-dot,.tutorial-mini-tip,.tutorial-help-btn{transition:none!important;animation:none!important}.tutorial-spotlight,.tutorial-btn,.tutorial-dot,.tutorial-mini-tip,.tutorial-help-btn{transform:none}}@keyframes tutorial-spotlight-wobble{0%{transform:rotate(-.4deg)}to{transform:rotate(.4deg)}}@keyframes tutorial-pointer-dash{0%{stroke-dashoffset:0}to{stroke-dashoffset:-13px}}
