:root{--brand-50:#f2f0ff;--brand-100:#e2dcfe;--brand-200:#c8bafc;--brand-300:#a58cf8;--brand-400:#825af2;--brand-500:#6830e8;--brand-600:#571ad1;--brand-700:#4e18aa;--brand-800:#421782;--brand-900:#33145d;--excel-color:#22a04c;--csv-color:#127ae2;--pdf-color:#d92626;--excel-gradient-end:#f2fcf6;--csv-gradient-end:#f1f7fe;--word-gradient-end:#fdf2f2;--gray-50:#f9fafb;--gray-100:#edeff2;--gray-200:#dcdfe5;--gray-300:#c1c5cd;--gray-400:#959ba7;--gray-500:#6c727f;--gray-600:#4f545f;--gray-700:#32363e;--gray-800:#1f2228;--gray-900:#111318;--gray-950:#0a0c0f;--bg-base:var(--gray-50);--bg-surface:#fff;--bg-elevated:var(--gray-100);--bg-overlay:#00000080;--border-subtle:var(--gray-200);--border-default:var(--gray-300);--border-strong:var(--gray-400);--text-primary:var(--gray-900);--text-secondary:var(--gray-600);--text-muted:var(--gray-400);--text-inverse:#fff;--text-on-brand:#fff;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 12px #00000014, 0 2px 6px #0000000d;--shadow-lg:0 10px 30px #0000001a, 0 4px 10px #0000000f;--shadow-xl:0 20px 60px #0000001f, 0 8px 20px #00000012;--shadow-brand:0 4px 20px #633cdc4d;--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;--space-20:80px;--space-24:96px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.3s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-base:var(--gray-950);--bg-surface:var(--gray-900);--bg-elevated:var(--gray-800);--bg-overlay:#000000b3;--border-subtle:#23272e;--border-default:#32363e;--border-strong:#4f545f;--text-primary:var(--gray-50);--text-secondary:var(--gray-400);--text-muted:var(--gray-600);--text-inverse:var(--gray-900);--excel-gradient-end:#15321f;--csv-gradient-end:#122436;--word-gradient-end:#361212;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #0000004d, 0 2px 6px #0003;--shadow-lg:0 10px 30px #0006, 0 4px 10px #00000040;--shadow-xl:0 20px 60px #00000080, 0 8px 20px #0000004d;--shadow-brand:0 4px 20px #825aff66}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--text-primary);background-color:var(--bg-base);transition:background-color var(--transition-slow), color var(--transition-slow);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-elevated)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,h5,h6{letter-spacing:-.025em;color:var(--text-primary);font-weight:700;line-height:1.2}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.5rem,3.5vw,2.25rem)}h3{font-size:clamp(1.25rem,2.5vw,1.5rem)}h4{font-size:1.125rem}p{color:var(--text-secondary);line-height:1.7}a{color:var(--brand-500);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--brand-600)}code,pre{font-family:var(--font-mono);font-size:.875em}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:var(--radius-sm)}.btn{align-items:center;gap:var(--space-2);font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1.5px solid #0000;padding:10px 20px;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-sm{border-radius:var(--radius-sm);padding:6px 14px;font-size:.875rem}.btn-lg{border-radius:var(--radius-lg);padding:14px 28px;font-size:1.0625rem}.btn-primary{background:linear-gradient(135deg, var(--brand-500), var(--brand-600));color:var(--text-on-brand);border-color:var(--brand-600);box-shadow:var(--shadow-brand)}.btn-primary:hover{background:linear-gradient(135deg, var(--brand-400), var(--brand-500));transform:translateY(-1px);box-shadow:0 6px 24px #633cdc66}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-default);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:var(--brand-400);color:var(--brand-500);background:var(--brand-50)}[data-theme=dark] .btn-secondary:hover{background:#191236}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-elevated);color:var(--text-primary)}.btn-danger{color:#fff;background:#cf1717;border-color:#b81414}.btn-danger:hover{background:#b81414;transform:translateY(-1px)}.btn-excel{color:#fff;background:linear-gradient(135deg,#1f9346,#197638);border-color:#197638;box-shadow:0 4px 14px #27945359}.btn-excel:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-csv{color:#fff;background:linear-gradient(135deg,#1173d4,#0f61b3);border-color:#0f61b3;box-shadow:0 4px 14px #1e64d259}.btn-csv:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-pdf{color:#fff;background:linear-gradient(135deg,#cc2424,#ad1f1f);border-color:#ad1f1f;box-shadow:0 4px 14px #dc323259}.btn-pdf:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), border-color var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-default)}.badge{border-radius:var(--radius-full);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-brand{background:var(--brand-100);color:var(--brand-700)}.badge-excel{color:#166932;background:#d5f6e0}.badge-csv{color:#0b4784;background:#d0e6fb}.badge-pdf{color:#821717;background:#f9dcdc}[data-theme=dark] .badge-brand{color:var(--brand-300);background:#24194d}[data-theme=dark] .badge-excel{color:#6ce092;background:#1c4028}[data-theme=dark] .badge-csv{color:#71b3f4;background:#172e45}[data-theme=dark] .badge-pdf{color:#e87d7d;background:#451717}.input{width:100%;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-surface);border:1.5px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:9px 14px;font-size:.9375rem;display:block}.input:focus{border-color:var(--brand-400);outline:none;box-shadow:0 0 0 3px #633cdc1f}.input::placeholder{color:var(--text-muted)}select.input{cursor:pointer}.upload-zone{border:2px dashed var(--border-default);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-8);text-align:center;cursor:pointer;transition:all var(--transition-base);background:var(--bg-elevated);position:relative}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--brand-400);background:var(--brand-50)}[data-theme=dark] .upload-zone:hover,[data-theme=dark] .upload-zone.drag-over{background:#151127}.toolbar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}@media (width<=768px){.toolbar{flex-wrap:wrap;overflow-x:visible}.toolbar>div:last-child{width:100%;margin-top:4px;margin-left:0!important}}.toolbar-divider{background:var(--border-default);width:1px;height:24px;margin:0 var(--space-1);flex-shrink:0}.toolbar-btn{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:.8125rem;font-weight:500;display:inline-flex}.toolbar-btn:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-subtle)}.toolbar-btn.active{background:var(--brand-100);color:var(--brand-700);border-color:var(--brand-200)}[data-theme=dark] .toolbar-btn.active{color:var(--brand-300);background:#231c40;border-color:#362b64}.navbar{z-index:100;padding:0 var(--space-6);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);height:64px;transition:background var(--transition-slow);background:#ffffffd9;align-items:center;display:flex;position:sticky;top:0}[data-theme=dark] .navbar{background:#0d0e12d9}.navbar-brand{align-items:center;gap:var(--space-3);color:var(--text-primary);letter-spacing:-.04em;font-size:1.25rem;font-weight:800;text-decoration:none;display:flex}.navbar-logo{border-radius:var(--radius-sm);object-fit:contain;width:32px;height:32px}.navbar-nav{align-items:center;gap:var(--space-1);margin:0 auto 0 var(--space-8);list-style:none;display:flex}.navbar-nav a{align-items:center;gap:var(--space-2);color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);padding:6px 12px;font-size:.9rem;font-weight:500;display:flex}.navbar-nav a:hover,.navbar-nav a.active{color:var(--text-primary);background:var(--bg-elevated)}.navbar-actions{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.container{width:100%;max-width:1200px;padding:0 var(--space-6);margin:0 auto}.section{padding:var(--space-20) 0}.spinner{border:3px solid var(--border-default);border-top-color:var(--brand-500);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.grid-2{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=1024px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.navbar-nav{display:none}.container{padding:0 var(--space-4)}.section{padding:var(--space-12) 0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-glow{0%,to{box-shadow:var(--shadow-brand)}50%{box-shadow:0 6px 30px #633cdc80}}.animate-fade-in-up{animation:.5s forwards fadeInUp}.animate-fade-in{animation:.4s forwards fadeIn}.gradient-text{background:linear-gradient(135deg, var(--brand-500), #c23cdd);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.chip{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);align-items:center;gap:6px;padding:4px 12px;font-size:.8125rem;display:inline-flex}.react-hot-toast{font-family:var(--font-sans)!important}.dropdown{display:inline-block;position:relative}.dropdown-menu{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);min-width:180px;box-shadow:var(--shadow-lg);z-index:200;padding:var(--space-1);animation:.15s fadeInUp;position:absolute;top:calc(100% + 6px);right:0}.dropdown-item{align-items:center;gap:var(--space-2);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);text-align:left;width:100%;font-size:.9rem;font-family:var(--font-sans);background:0 0;border:none;padding:8px 12px;display:flex}.dropdown-item:hover{background:var(--bg-elevated)}.menu-toggle{cursor:pointer;color:var(--text-primary);background:0 0;border:none;padding:8px;display:none}@media (width<=768px){.menu-toggle{display:flex}}.mobile-nav{background:var(--bg-surface);z-index:99;padding:var(--space-4);border-top:1px solid var(--border-subtle);flex-direction:column;animation:.2s fadeIn;display:flex;position:fixed;inset:64px 0 0}.mobile-nav a{color:var(--text-primary);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);padding:14px 16px;font-size:1rem;font-weight:500;display:flex}.mobile-nav a:hover{background:var(--bg-elevated)}.editor-shell{flex-direction:column;height:calc(100vh - 64px);display:flex;overflow:hidden}.editor-workspace{background:var(--bg-base);flex:1;overflow:auto}.editor-topbar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;min-height:56px;display:flex}@media (width<=768px){.editor-topbar{flex-direction:column;align-items:stretch}.editor-topbar>div{justify-content:flex-start!important;margin-left:0!important}}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.modified{background:#f29e0d}.status-dot.saved{background:#28bd5a}.status-dot.error{background:#d92626}.data-table{border-collapse:collapse;width:100%;font-size:.875rem;font-family:var(--font-mono)}.data-table th{background:var(--bg-elevated);text-align:left;font-weight:600;font-family:var(--font-sans);color:var(--text-secondary);border-bottom:1.5px solid var(--border-default);z-index:2;white-space:nowrap;padding:8px 12px;font-size:.8125rem;position:sticky;top:0}.data-table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:6px 12px}.data-table tr:hover td{background:var(--bg-elevated)!important}.filter-row{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.word-document{word-wrap:break-word;min-height:1056px;padding:96px}@media (width<=768px){.word-document{min-height:800px;padding:32px 24px}}.word-document p{margin-bottom:1em}.word-document h1,.word-document h2,.word-document h3,.word-document h4,.word-document h5,.word-document h6{margin-top:1em;margin-bottom:.5em}.word-document ul,.word-document ol{margin-bottom:1em;padding-left:2em}.word-document li{margin-bottom:.25em}.word-document a{color:#2b579a;text-decoration:underline}.word-document table{border-collapse:collapse;width:100%;margin-bottom:1em}.word-document td,.word-document th{border:1px solid var(--border-default);padding:4px 8px}
