:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.landing-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.landing-header{background:#fff;box-shadow:0 1px 3px #00000014;position:sticky;top:0;z-index:100}.header-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700;color:#0539a5;letter-spacing:-.02em}.login-btn{background:#0539a5;color:#fff;border:none;padding:.6rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.login-btn:hover{background:#042d80;transform:translateY(-1px)}.landing-main{flex:1}.hero-section{max-width:1200px;margin:0 auto;padding:5rem 2rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.hero-content h1{font-size:3.5rem;font-weight:700;color:#1e293b;line-height:1.1;margin:0 0 1.5rem;letter-spacing:-.03em}.hero-subtitle{font-size:1.25rem;color:#64748b;line-height:1.6;margin:0 0 2rem}.hero-actions{display:flex;gap:1rem}.cta-button{padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.cta-button.primary{background:linear-gradient(135deg,#e36735,#c9532a);color:#fff;box-shadow:0 4px 12px #e367354d}.cta-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #e3673566}.cta-button.large{padding:1rem 2.5rem;font-size:1.1rem}.hero-visual{display:flex;flex-direction:column;gap:1rem}.visual-card{background:#fff;padding:1.5rem 2rem;border-radius:12px;display:flex;align-items:center;gap:1rem;box-shadow:0 4px 15px #0000000f;transition:all .3s ease}.visual-card:hover{transform:translate(10px);box-shadow:0 8px 25px #0000001a}.visual-card:nth-child(1){margin-left:2rem}.visual-card:nth-child(3){margin-left:2rem}.visual-icon{font-size:2rem}.visual-card span{font-size:1.1rem;font-weight:600;color:#334155}.features-section{background:#fff;padding:5rem 2rem}.features-section h2{text-align:center;font-size:2.5rem;font-weight:700;color:#1e293b;margin:0 0 3rem}.features-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}.feature-card{background:#f8fafc;padding:2rem;border-radius:12px;text-align:center;transition:all .3s ease;border:1px solid #e2e8f0}.feature-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000014;border-color:#0539a5}.feature-icon{font-size:2.5rem;margin-bottom:1rem}.feature-card h3{font-size:1.2rem;font-weight:600;color:#1e293b;margin:0 0 .75rem}.feature-card p{font-size:.95rem;color:#64748b;line-height:1.5;margin:0}.cta-section{text-align:center;padding:5rem 2rem;background:linear-gradient(135deg,#0539a5,#042d80);color:#fff}.cta-section h2{font-size:2.5rem;font-weight:700;margin:0 0 1rem}.cta-section p{font-size:1.2rem;opacity:.9;margin:0 0 2rem}.cta-section .cta-button.primary{background:#fff;color:#0539a5;box-shadow:0 4px 15px #0003}.cta-section .cta-button.primary:hover{background:#f8fafc;box-shadow:0 6px 25px #0000004d}.landing-footer{background:#1e293b;color:#94a3b8;padding:2rem;text-align:center}.footer-content p{margin:0;font-size:.9rem}@media (max-width: 1024px){.hero-section{grid-template-columns:1fr;text-align:center;padding:3rem 2rem}.hero-content h1{font-size:2.5rem}.hero-actions{justify-content:center}.hero-visual{display:none}.features-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.header-container{padding:1rem}.logo{font-size:1.25rem}.hero-section{padding:2rem 1rem}.hero-content h1{font-size:2rem}.hero-subtitle{font-size:1rem}.features-section{padding:3rem 1rem}.features-section h2{font-size:1.75rem}.features-grid{grid-template-columns:1fr}.cta-section{padding:3rem 1rem}.cta-section h2{font-size:1.75rem}.cta-section p{font-size:1rem}}.login-container{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;background:var(--bg-secondary, #fafaf9);padding:0;margin:0;overflow:auto}.login-card{background:var(--bg-primary, white);padding:2.5rem;border-radius:var(--radius-lg, 12px);box-shadow:0 4px 6px #0000000d,0 10px 25px #00000014,0 20px 50px #0000000f;width:100%;max-width:520px;border:none;margin:1rem}.login-header{text-align:center;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:2px solid var(--border-light, #f5f5f4)}.login-card h1{color:var(--primary-700, #1d4ed8);margin:0 0 .5rem;font-size:var(--text-3xl, 2rem);font-weight:var(--font-bold, 700);letter-spacing:var(--tracking-tighter, -.03em)}.subtitle{color:var(--text-secondary, #57534e);font-size:1rem;margin:0;font-weight:var(--font-medium, 500);letter-spacing:var(--tracking-wide, .01em)}.app-description{background:var(--bg-secondary, #fafaf9);padding:1.25rem 1.5rem;border-radius:var(--radius-md, 8px);margin-bottom:1.5rem;border-left:4px solid var(--accent-600, #0d9488);box-shadow:0 2px 8px #0d948814}.app-description p{margin:0;color:var(--text-primary, #1c1917);font-size:.9rem;line-height:var(--leading-relaxed, 1.6)}.login-card h2{color:var(--text-primary, #1c1917);margin-bottom:1.25rem;text-align:center;font-size:var(--text-2xl, 1.5rem);font-weight:var(--font-semibold, 600);letter-spacing:var(--tracking-tight, -.02em)}.error-message{background-color:var(--error-100, #fee2e2);color:var(--error-700, #b91c1c);padding:.875rem;border-radius:var(--radius-sm, 4px);margin-bottom:1.25rem;border:1px solid var(--error-600, #dc2626);font-size:.875rem}.success-message{background-color:var(--success-100, #dcfce7);color:var(--success-700, #15803d);padding:1.25rem;border-radius:var(--radius-md, 8px);margin-bottom:1.25rem;border:1px solid var(--success-500, #22c55e);font-size:.95rem;text-align:center;line-height:var(--leading-relaxed, 1.6)}.success-message p{margin:0 0 .5rem}.success-message p:last-of-type{margin-bottom:1rem}.form-description{color:var(--text-primary, #1c1917);font-size:.95rem;text-align:center;margin-bottom:1.5rem;line-height:var(--leading-normal, 1.5)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.6rem;color:var(--text-primary, #1c1917);font-weight:var(--font-semibold, 600);font-size:.9rem;letter-spacing:var(--tracking-wide, .01em)}.form-group input{width:100%;padding:.9rem 1rem;border:2px solid var(--border-default, #e7e5e4);border-radius:var(--radius-md, 8px);font-size:1rem;box-sizing:border-box;transition:all .3s cubic-bezier(.4,0,.2,1);background:var(--bg-secondary, #fafaf9);color:var(--text-primary, #1c1917)}.form-group input:hover{border-color:var(--accent-400, #2dd4bf);background:var(--bg-primary, #fff)}.form-group input:focus{outline:none;border-color:var(--primary-700, #1d4ed8);background:var(--bg-primary, #fff);box-shadow:0 0 0 4px #1d4ed81a,0 2px 8px #1d4ed814;transform:translateY(-1px)}.submit-button{width:100%;padding:1rem;background:linear-gradient(135deg,#e36735,#b44b46);color:#fff;border:none;border-radius:var(--radius-md, 8px);font-size:1rem;font-weight:var(--font-semibold, 600);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);margin-top:1.5rem;letter-spacing:var(--tracking-wider, .03em);text-transform:uppercase;box-shadow:0 4px 12px #e3673540}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#d45a2f,#9e3d38);transform:translateY(-2px);box-shadow:0 8px 20px #e3673559,0 4px 12px #e3673533}.submit-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #e367354d}.submit-button:disabled{opacity:.6;cursor:not-allowed}.toggle-auth{margin-top:1.25rem;text-align:center;padding-top:1rem;border-top:1px solid var(--border-light, #f5f5f4)}.link-button{background:none;border:none;color:var(--accent-600, #0d9488);cursor:pointer;font-size:.875rem;text-decoration:none;transition:color .2s ease}.link-button:hover{color:var(--primary-700, #1d4ed8);text-decoration:underline}.state-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1.5rem;text-align:center;color:var(--text-secondary, #57534e)}.state-icon{font-size:2.5rem;line-height:1;margin-bottom:.25rem;opacity:.85}.state-title{font-size:var(--text-lg, 1.125rem);font-weight:var(--font-semibold, 600);color:var(--text-primary, #1c1917)}.state-detail{font-size:var(--text-sm, .875rem);color:var(--text-secondary, #57534e);max-width:32rem;line-height:var(--leading-normal, 1.5)}.state-action{margin-top:.75rem;padding:.5rem 1rem;border-radius:var(--radius-md, 8px);border:1px solid var(--border-medium, #d6d3d1);background:var(--bg-primary, white);color:var(--text-primary, #1c1917);font-size:.9rem;font-weight:var(--font-semibold, 600);cursor:pointer;transition:all .15s ease}.state-action:hover{background:var(--gray-50, #fafaf9);border-color:var(--border-strong, #a8a29e)}.state-loading{color:var(--text-tertiary, #a8a29e)}.state-loading .state-title{color:var(--text-secondary, #57534e);font-weight:var(--font-medium, 500)}.state-error .state-title{color:var(--error-700, #b91c1c)}.state-error{background:var(--error-50, #fef2f2);border-radius:var(--radius-md, 8px)}.dashboard{min-height:100vh;background:var(--bg-page)}.dashboard-header{background:#fff;border-bottom:1px solid var(--border-default);box-shadow:0 1px 3px #0000000a;padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.dashboard-header>div{max-width:var(--container-2xl);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-6);flex-wrap:wrap}.dashboard-header h1{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);color:var(--primary-600)}.suppliers-link-button{background:var(--accent-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);font-weight:var(--font-semibold);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.suppliers-link-button:hover{background:var(--accent-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.dashboard-main{max-width:var(--container-2xl);margin:0 auto;padding:var(--space-5) var(--space-6)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);margin-bottom:var(--space-10)}.stat-card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-6);display:flex;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);transition:var(--transition-all)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-action{cursor:pointer;background:linear-gradient(135deg,var(--accent-500),var(--accent-600));border:none}.stat-card-action .stat-icon,.stat-card-action .stat-label,.stat-card-action .stat-action{color:#fff}.stat-icon{font-size:2.5rem}.stat-content{flex:1}.stat-value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--primary-600);line-height:1}.stat-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium);margin-top:var(--space-1)}.stat-action{font-size:var(--text-lg);font-weight:var(--font-semibold)}.dashboard-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin:calc(-1 * var(--space-2)) 0 var(--space-4) 0}.dashboard-main h2{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight)}.loading,.error,.empty-state{text-align:center;padding:var(--space-12);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--text-lg)}.projects-grid{display:flex;flex-wrap:wrap;gap:var(--space-4);max-width:var(--container-2xl);margin:0 auto;justify-content:center}.project-card{background:#fff;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:1 1 320px;max-width:400px;border:1px solid var(--border-default);border-left:3px solid var(--primary-500);cursor:pointer;transition:var(--transition-all);position:relative;overflow:hidden}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-left-color:var(--primary-600)}.project-card h3{margin:0 0 var(--space-2) 0;color:var(--primary-600);font-size:var(--text-lg);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight)}.project-card p{margin:0 0 var(--space-2) 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-snug)}.project-meta{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-light);font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium);display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-1) var(--space-4)}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dashboard-header h1{font-size:var(--text-xl)}.user-info{display:none}.dashboard-main{padding:var(--space-6) var(--space-4)}.stats-grid,.projects-grid{grid-template-columns:1fr}}.breadcrumb{display:flex;align-items:center;margin:0;padding:0}.breadcrumb-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:var(--space-2);flex-wrap:wrap}.breadcrumb-item{display:flex;align-items:center;gap:var(--space-2)}.breadcrumb-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-all);text-decoration:none}.breadcrumb-link:hover{background:var(--bg-tertiary);border-color:var(--primary-300);color:var(--primary-600);transform:translateY(-1px)}.breadcrumb-link:focus{outline:none;box-shadow:0 0 0 3px var(--primary-100);background:var(--bg-tertiary)}.breadcrumb-link:active{transform:translateY(0)}.breadcrumb-icon{font-size:var(--text-base);line-height:1;flex-shrink:0}.breadcrumb-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.breadcrumb-separator{display:flex;align-items:center;color:var(--text-tertiary);flex-shrink:0}.breadcrumb-current{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md);color:var(--primary-700);font-size:var(--text-sm);font-weight:var(--font-semibold)}@media (max-width: 768px){.breadcrumb-text{max-width:120px}.breadcrumb-link,.breadcrumb-current{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}}.part-details{min-height:100vh;background:var(--bg-page)}.part-details-header{background:#fff;border-bottom:1px solid var(--border-default);box-shadow:0 1px 3px #0000000a;padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.part-details-main{max-width:var(--container-2xl);margin:0 auto;padding:var(--space-5) var(--space-6)}.part-info{background:#fff;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);border-left:3px solid var(--accent-500);margin-bottom:var(--space-4)}.part-info h2{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight)}.part-description{color:var(--text-secondary);margin-bottom:var(--space-3);line-height:var(--leading-snug);font-size:var(--text-base)}.part-stats{display:flex;gap:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--border-light)}.part-stats .stat{color:var(--text-secondary);font-size:var(--text-sm)}.part-stats .stat strong{color:var(--primary-600);font-size:var(--text-2xl);font-weight:var(--font-bold);display:block;margin-bottom:0;line-height:1.1}.chapters-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}@media (max-width: 900px){.chapters-grid{grid-template-columns:1fr}}.chapter-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);border-left:3px solid var(--primary-500);transition:var(--transition-all);cursor:pointer;overflow:hidden}.chapter-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-left-color:var(--primary-600)}.chapter-card-header{background:var(--bg-tertiary);color:var(--text-primary);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-default)}.chapter-card-header h3{margin:0;font-size:var(--text-base);font-weight:var(--font-bold);color:var(--primary-600)}.chapter-card-body{padding:var(--space-3) var(--space-4)}.chapter-name{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--space-1) 0}.chapter-description{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:var(--leading-snug)}.chapter-card-footer{padding:var(--space-2) var(--space-4);background:var(--bg-secondary);border-top:1px solid var(--border-light);display:flex;gap:var(--space-4)}.subchapter-count,.article-count,.price-count{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium)}@media (max-width: 768px){.header-row{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.header-right{width:100%;justify-content:flex-start;flex-wrap:wrap}.user-info{display:none}.part-details-main{padding:var(--space-6) var(--space-4)}.part-stats{flex-direction:column;gap:var(--space-4)}.chapters-grid{grid-template-columns:1fr}}.price-form-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.price-form-modal{background:var(--bg-primary, white);border-radius:var(--radius-lg, 12px);box-shadow:0 10px 40px #0003;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.price-form-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2.5rem;border-bottom:2px solid var(--border-light, #f5f5f4);background:linear-gradient(135deg,var(--gray-100, #f5f5f4) 0%,var(--gray-200, #e7e5e4) 100%)}.price-form-header h2{margin:0;color:var(--text-primary, #1c1917);font-size:var(--text-2xl, 1.5rem);font-weight:var(--font-bold, 700);letter-spacing:var(--tracking-tight, -.02em)}.close-button{background:none;border:none;font-size:2rem;color:var(--text-tertiary, #a8a29e);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 4px);transition:all .2s ease}.close-button:hover{background:#0000000d;color:var(--text-primary, #1c1917)}.price-form{padding:1.25rem 2.5rem 1.5rem}.form-group{margin-bottom:.75rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary, #57534e);font-weight:var(--font-semibold, 600);font-size:.95rem}.required{color:var(--error-600, #dc2626);margin-left:.25rem}.calculated-label{font-size:.85em;color:var(--text-tertiary, #a8a29e);font-weight:var(--font-normal, 400)}.form-group input[type=text],.form-group input[type=number],.form-group input[type=date],.form-group select,.form-group textarea{width:100%;padding:.6rem .875rem;border:2px solid var(--border-default, #e7e5e4);border-radius:var(--radius-md, 8px);font-size:.95rem;color:var(--text-primary, #1c1917);background-color:var(--bg-primary, white);transition:all .2s ease;font-family:inherit}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group input[type=date]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-600, #0d9488);box-shadow:0 0 0 3px #0d948826}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--error-600, #dc2626)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--bg-secondary, #fafaf9);color:var(--text-secondary, #57534e);cursor:not-allowed;border-color:var(--border-light, #f5f5f4)}.form-group textarea{resize:vertical;min-height:56px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.error-message{display:block;color:var(--error-600, #dc2626);font-size:.85rem;margin-top:.5rem;font-weight:var(--font-medium, 500)}.submit-error{background:var(--error-50, #fef2f2);border:1px solid var(--error-600, #dc2626);color:var(--error-700, #b91c1c);padding:1rem;border-radius:var(--radius-md, 8px);margin-bottom:1.5rem;font-size:.9rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-light, #f5f5f4)}.cancel-button,.submit-button{padding:.75rem 1.5rem;border-radius:var(--radius-md, 8px);font-size:.9rem;font-weight:var(--font-semibold, 600);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none}.cancel-button{background:var(--bg-primary, white);color:var(--text-secondary, #57534e);border:1px solid var(--border-default, #e7e5e4);padding:.5rem 1rem}.cancel-button:hover{background:var(--gray-50, #fafaf9);border-color:var(--border-medium, #d6d3d1);color:var(--text-primary, #1c1917)}.submit-button{background:linear-gradient(135deg,var(--accent-600, #0d9488) 0%,var(--accent-700, #0f766e) 100%);color:var(--text-inverse, white);box-shadow:0 2px 8px #0d948840}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-700, #0f766e) 0%,var(--accent-800, #115e59) 100%);transform:translateY(-2px);box-shadow:0 6px 16px #0d948859}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading{text-align:center;padding:3rem;color:var(--text-tertiary, #a8a29e);font-size:1rem}@media (max-width: 768px){.price-form-modal{width:95%;max-height:95vh}.price-form-header,.price-form{padding:1.5rem}.form-row{grid-template-columns:1fr;gap:1rem}.form-actions{flex-direction:column-reverse}.cancel-button,.submit-button{width:100%}}.form-hint{display:block;margin-top:.4rem;color:var(--text-tertiary, #a8a29e);font-size:var(--text-xs, .75rem);line-height:1.4}.confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-modal{background:#fff;border-radius:var(--radius-lg, 12px);box-shadow:0 10px 40px #0003;width:90%;max-width:480px;padding:1.5rem 1.75rem}.confirm-title{margin:0 0 .75rem;font-size:var(--text-lg, 1.125rem);font-weight:700;color:var(--gray-900, #1c1917);letter-spacing:-.01em}.confirm-message{color:var(--gray-700, #44403c);font-size:.95rem;line-height:1.5;margin-bottom:1.5rem;white-space:pre-line}.confirm-actions{display:flex;justify-content:flex-end;gap:.75rem}.confirm-cancel,.confirm-primary,.confirm-destructive{padding:.6rem 1.25rem;border-radius:var(--radius-md, 8px);font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:all .15s ease;font-family:inherit}.confirm-cancel{background:#fff;color:var(--gray-600, #57534e);border:1px solid var(--gray-300, #d6d3d1)}.confirm-cancel:hover{background:var(--gray-50, #fafaf9);border-color:var(--gray-400, #a8a29e);color:var(--gray-800, #292524)}.confirm-primary{background:var(--primary-600, #2563eb);color:#fff}.confirm-primary:hover{background:var(--primary-700, #1d4ed8)}.confirm-destructive{background:#dc2626;color:#fff}.confirm-destructive:hover{background:#b91c1c}.chapter-details{min-height:100vh;background:var(--bg-page)}.chapter-header{background:#fff;border-bottom:1px solid var(--border-default);box-shadow:0 1px 3px #0000000a;padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.chapter-main{max-width:var(--container-2xl);margin:0 auto;padding:var(--space-5) var(--space-6)}.chapter-info{background:#fff;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);border-left:3px solid var(--primary-500);margin-bottom:var(--space-4)}.chapter-info h2{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight)}.chapter-description{color:var(--text-secondary);margin-bottom:var(--space-3);line-height:var(--leading-snug);font-size:var(--text-base)}.chapter-stats{display:flex;gap:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--border-light)}.chapter-stats .stat{color:var(--text-secondary);font-size:var(--text-sm)}.chapter-stats .stat strong{color:var(--primary-600);font-size:var(--text-2xl);font-weight:var(--font-bold);display:block;margin-bottom:0;line-height:1.1}.subchapters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4)}.subchapter-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);border-left:3px solid var(--accent-500);transition:var(--transition-all);cursor:pointer;overflow:hidden}.subchapter-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-left-color:var(--accent-600)}.subchapter-card-header{background:var(--bg-tertiary);color:var(--text-primary);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-default)}.subchapter-card-header h3{margin:0;font-size:var(--text-base);font-weight:var(--font-bold);color:var(--accent-600)}.subchapter-card-body{padding:var(--space-3) var(--space-4)}.subchapter-name{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--space-1) 0}.subchapter-description{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:var(--leading-snug)}.subchapter-card-footer{padding:var(--space-2) var(--space-4);background:var(--bg-secondary);border-top:1px solid var(--border-light);display:flex;gap:var(--space-4)}.article-count,.price-count{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium)}@media (max-width: 768px){.header-row{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.header-right{width:100%;justify-content:flex-start;flex-wrap:wrap}.user-info{display:none}.chapter-main{padding:var(--space-6) var(--space-4)}.chapter-stats{flex-direction:column;gap:var(--space-4)}.subchapters-grid{grid-template-columns:1fr}}.actions-cell{display:flex;gap:var(--space-2);justify-content:flex-end}.btn-icon{background:none;border:none;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:background-color .2s;font-size:1.1em}.btn-icon:hover{background-color:var(--bg-secondary)}.btn-icon.edit:hover{background-color:#e0f2fe;color:#0284c7}.btn-icon.delete:hover{background-color:#fee2e2;color:#dc2626}.subchapter-details{min-height:100vh;background:var(--bg-page)}.subchapter-header{background:#fff;border-bottom:1px solid var(--border-default);box-shadow:0 1px 3px #0000000a;padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.header-row{max-width:var(--container-2xl);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-row h1{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--primary-600)}.breadcrumb-row{max-width:var(--container-2xl);margin:var(--space-3) auto 0}.btn-nav{background:var(--accent-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:var(--transition-all);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.btn-nav:hover{background:var(--accent-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--accent-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:var(--transition-all);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.btn-secondary:hover{background:var(--accent-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.user-info{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium)}.btn-logout{background:var(--error-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:var(--transition-all);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.btn-logout:hover{background:var(--error-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.subchapter-main{max-width:var(--container-2xl);margin:0 auto;padding:var(--space-5) var(--space-6)}.subchapter-info{background:#fff;padding:var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);border-left:3px solid var(--accent-500);margin-bottom:var(--space-4)}.subchapter-info h2{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--text-xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight)}.subchapter-description{color:var(--text-secondary);margin-bottom:var(--space-2);line-height:var(--leading-snug);font-size:var(--text-sm)}.subchapter-stats{display:flex;gap:var(--space-6);padding-top:var(--space-2);border-top:1px solid var(--border-light)}.subchapter-stats .stat{color:var(--text-secondary);font-size:var(--text-sm)}.subchapter-stats .stat strong{color:var(--accent-600);font-size:var(--text-2xl);font-weight:var(--font-bold);display:block;margin-bottom:0;line-height:1.1}.articles-container{display:flex;flex-direction:column;gap:var(--space-3)}.article-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);padding:var(--space-4);transition:var(--transition-all)}.article-card:hover{box-shadow:var(--shadow-md)}.article-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-light)}.article-title h3{margin:0 0 var(--space-1) 0;color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--font-bold)}.article-description{color:var(--text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.article-unit{background:var(--gray-100);color:var(--text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-semibold)}.article-notes{background:var(--bg-secondary);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);border-left:3px solid var(--accent-300)}.article-notes strong{color:var(--text-primary);font-weight:var(--font-semibold)}.price-comparison{margin:var(--space-3) 0}.price-comparison h4{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--font-bold)}.price-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);background:#fff;border-radius:var(--radius-md);overflow:hidden}.price-table th{background:var(--bg-tertiary);padding:var(--space-2) var(--space-3);text-align:left;font-weight:var(--font-semibold);color:var(--text-secondary);border-bottom:2px solid var(--border-default);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.price-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);color:var(--text-primary)}.price-table tbody tr:hover{background:var(--bg-secondary)}.price-table tbody tr.price-row-overridden{background:#eab3080f}.price-table tbody tr.price-row-overridden:hover{background:#eab3081f}.index-percent{display:inline-flex;align-items:baseline;gap:2px;white-space:nowrap}.index-percent.overridden{color:var(--warning-700, #b45309);font-weight:var(--font-semibold)}.index-percent .override-marker{color:var(--warning-700, #b45309);font-weight:var(--font-bold)}.index-percent-input{width:70px;padding:.2rem .35rem;border:1px solid var(--border-default);border-radius:4px;font-size:var(--text-sm);background:#fff;color:inherit;text-align:right;-moz-appearance:textfield}.index-percent-input::-webkit-outer-spin-button,.index-percent-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.index-percent-input:focus{outline:none;border-color:var(--accent-500, #2563eb);box-shadow:0 0 0 2px #2563eb2e}.index-percent-suffix{color:var(--text-secondary)}.price-table tbody tr:last-child td{border-bottom:none}.notes-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.article-actions{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-light);display:flex;gap:var(--space-3)}.btn-primary{background:var(--primary-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:var(--transition-all);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.btn-primary:hover{background:var(--primary-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.loading{text-align:center;padding:var(--space-12);color:var(--text-secondary);font-size:var(--text-lg)}.error-container{background:var(--error-50);border:1px solid var(--error-200);border-radius:var(--radius-lg);padding:var(--space-6);margin:var(--space-8);color:var(--error-600)}.no-data{text-align:center;padding:var(--space-12);background:#fff;border-radius:var(--radius-lg);color:var(--text-tertiary);box-shadow:var(--shadow-sm);border:1px solid var(--border-default)}@media (max-width: 768px){.header-row{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.header-right{width:100%;justify-content:flex-start;flex-wrap:wrap}.user-info{display:none}.subchapter-main{padding:var(--space-6) var(--space-4)}.subchapter-stats{flex-direction:column;gap:var(--space-4)}.price-table{font-size:var(--text-xs)}.price-table th,.price-table td{padding:var(--space-2) var(--space-3)}}._supplier-form-overlay_hkye2_1{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}._supplier-form-modal_hkye2_14{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}._supplier-form-header_hkye2_24{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}._supplier-form-header_hkye2_24 h2{margin:0;font-size:1.5rem;color:#1f2937}._close-button_hkye2_38{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}._close-button_hkye2_38:hover{background-color:#f3f4f6;color:#1f2937}._supplier-form_hkye2_1{padding:24px}._form-group_hkye2_63{margin-bottom:20px}._form-group_hkye2_63 label{display:block;margin-bottom:6px;font-weight:500;color:#374151}._form-group_hkye2_63 ._required_hkye2_74{color:#ef4444}._form-group_hkye2_63 input[type=text],._form-group_hkye2_63 input[type=email],._form-group_hkye2_63 input[type=password],._form-group_hkye2_63 textarea,._form-group_hkye2_63 select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s;box-sizing:border-box;color:#333;background:#fff}._form-group_hkye2_63 input[type=text]:focus,._form-group_hkye2_63 input[type=email]:focus,._form-group_hkye2_63 input[type=password]:focus,._form-group_hkye2_63 textarea:focus,._form-group_hkye2_63 select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}._form-group_hkye2_63 input._error_hkye2_105,._form-group_hkye2_63 textarea._error_hkye2_105{border-color:#ef4444}._form-group_hkye2_63 textarea{resize:vertical;min-height:100px}._error-message_hkye2_115{display:block;margin-top:6px;color:#ef4444;font-size:.875rem}._submit-error_hkye2_122{padding:12px;background-color:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;margin-bottom:20px}._form-actions_hkye2_131{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}._cancel-button_hkye2_138,._submit-button_hkye2_139{padding:10px 20px;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}._cancel-button_hkye2_138{background-color:#f3f4f6;color:#374151}._cancel-button_hkye2_138:hover{background-color:#e5e7eb}._submit-button_hkye2_139{background-color:#10b981;color:#fff}._submit-button_hkye2_139:hover:not(:disabled){background-color:#059669}._submit-button_hkye2_139:disabled{background-color:#9ca3af;cursor:not-allowed}._form-row_hkye2_172{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 480px){._form-row_hkye2_172{grid-template-columns:1fr}}.suppliers-page{min-height:100vh;background:var(--bg-page);display:flex;flex-direction:column}.suppliers-header{background:#fff;border-bottom:1px solid var(--border-default);box-shadow:0 1px 3px #0000000a;padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.suppliers-header>div:first-child{max-width:var(--container-2xl);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:var(--space-6)}.header-left h1{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--primary-600)}.back-button{background:#fff;color:var(--primary-600);border:1px solid var(--border-default);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);font-weight:var(--font-semibold);font-family:var(--font-sans)}.back-button:hover{background:var(--bg-secondary);border-color:var(--primary-500);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.user-info{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium)}.logout-button{background:var(--error-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);font-weight:var(--font-semibold);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.logout-button:hover{background:var(--error-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.suppliers-main{flex:1;max-width:var(--container-2xl);width:100%;margin:0 auto;padding:var(--space-5) var(--space-6)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.section-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.add-supplier-button{background:var(--accent-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:var(--transition-all);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.add-supplier-button:hover{background:var(--accent-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.suppliers-table-container{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);overflow:hidden}.suppliers-table{width:100%;border-collapse:collapse}.suppliers-table thead{background:var(--bg-tertiary);border-bottom:2px solid var(--border-default)}.suppliers-table th{padding:var(--space-3) var(--space-5);text-align:left;font-weight:var(--font-semibold);font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.suppliers-table tbody tr{border-bottom:1px solid var(--border-light);transition:var(--transition-colors)}.suppliers-table tbody tr:hover{background:var(--bg-secondary)}.suppliers-table tbody tr:last-child{border-bottom:none}.suppliers-table td{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--text-primary)}.supplier-name{font-weight:var(--font-semibold);color:var(--text-primary)}.supplier-notes{color:var(--text-secondary);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supplier-date{color:var(--text-tertiary);font-size:var(--text-sm)}.supplier-actions{display:flex;gap:var(--space-2)}.icon-button{background:none;border:none;cursor:pointer;font-size:var(--text-xl);padding:var(--space-2);transition:var(--transition-transform);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{transform:scale(1.15);background:var(--bg-tertiary)}.edit-icon{opacity:.7}.edit-icon:hover{opacity:1}.delete-icon{opacity:.5}.delete-icon:hover{opacity:1}.loading,.error,.empty-state{padding:var(--space-12);text-align:center;font-size:var(--text-lg);color:var(--text-secondary);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default)}@media (max-width: 768px){.suppliers-header>div:first-child{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.header-left{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.user-info{display:none}.suppliers-main{padding:var(--space-6) var(--space-4)}.section-header{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.suppliers-table{font-size:var(--text-sm)}.suppliers-table th,.suppliers-table td{padding:var(--space-3) var(--space-4)}.supplier-notes{max-width:150px}}._excel-uploads-page_1qdim_1{max-width:1400px;margin:0 auto;padding:1rem 1.5rem}._page-header_1qdim_7{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}._page-header_1qdim_7 h1{margin:0;font-size:1.5rem;color:#1a1a1a}._upload-section_1qdim_21{background:#fff;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1rem;box-shadow:0 2px 8px #0000001a}._upload-section_1qdim_21 h2{margin-top:0;margin-bottom:.75rem;font-size:1.15rem;color:#333}._drop-zone_1qdim_37{border:2px dashed #ccc;border-radius:8px;padding:1.25rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#f9f9f9;margin-bottom:1rem}._drop-zone_1qdim_37:hover{border-color:#007bff;background:#f0f7ff}._drop-zone_1qdim_37._drag-active_1qdim_53{border-color:#007bff;background:#e3f2fd;transform:scale(1.02)}._drop-zone_1qdim_37._has-file_1qdim_59{border-color:#28a745;background:#f0fff4}._drop-zone-content_1qdim_64{display:flex;flex-direction:column;align-items:center;gap:.25rem}._upload-icon_1qdim_71{font-size:2rem;margin-bottom:.25rem;line-height:1}._drop-zone_1qdim_37 p{margin:0;color:#666}._upload-hint_1qdim_82{font-size:.85rem;color:#999}._upload-format_1qdim_87{font-size:.8rem;color:#999;margin-top:.25rem}._selected-file_1qdim_94{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border-radius:8px}._file-icon_1qdim_103{font-size:3rem}._file-info_1qdim_107{text-align:left}._file-name_1qdim_111{font-weight:600;font-size:1.1rem;color:#333;margin-bottom:.25rem}._file-size_1qdim_118{font-size:.9rem;color:#666}._upload-options_1qdim_124{display:flex;gap:2rem;align-items:flex-end}._form-group_1qdim_130{flex:0 0 auto}._form-group_1qdim_130 label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}._form-group_1qdim_130 input[type=date]{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;width:200px}._upload-btn_1qdim_149{flex:0 0 auto;padding:.75rem 2rem;font-size:1rem;font-weight:600}._upload-history_1qdim_157{background:#fff;border-radius:8px;padding:1rem 1.5rem;box-shadow:0 2px 8px #0000001a}._upload-history_1qdim_157 h2{margin-top:0;margin-bottom:.75rem;font-size:1.15rem;color:#333}._loading_1qdim_171{text-align:center;padding:1.5rem;color:#666}._empty-state_1qdim_177{text-align:center;padding:1.5rem;color:#999}._uploads-table_1qdim_184{overflow-x:auto}._uploads-table_1qdim_184 table{width:100%;border-collapse:collapse}._uploads-table_1qdim_184 th{text-align:left;padding:.5rem .75rem;background:#f8f9fa;border-bottom:2px solid #dee2e6;font-weight:600;color:#495057;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}._uploads-table_1qdim_184 td{padding:.5rem .75rem;border-bottom:1px solid #dee2e6;vertical-align:top}._uploads-table_1qdim_184 tbody tr:hover{background:#f8f9fa}._file-cell_1qdim_215{display:flex;flex-direction:column;gap:.25rem}._file-cell_1qdim_215 strong{color:#333}._file-cell_1qdim_215 small{color:#666;font-size:.85rem}._date-cell_1qdim_230{font-size:.9rem;color:#666;white-space:nowrap}._status-badge_1qdim_237{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:uppercase}._status-pending_1qdim_246{background:#fff3cd;color:#856404}._status-processing_1qdim_251{background:#cce5ff;color:#004085;animation:_pulse_1qdim_1 1.5s ease-in-out infinite}._status-completed_1qdim_257{background:#d4edda;color:#155724}._status-failed_1qdim_262{background:#f8d7da;color:#721c24}@keyframes _pulse_1qdim_1{0%,to{opacity:1}50%{opacity:.6}}._error-hint_1qdim_276{display:inline-block;margin-left:.5rem;cursor:help;font-size:1.2rem}._stats-cell_1qdim_284{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:#666}._no-stats_1qdim_292{color:#999}._actions-cell_1qdim_297{display:flex;gap:.5rem;flex-wrap:wrap}._btn-sm_1qdim_303{padding:.4rem .8rem;font-size:.85rem;border:none;border-radius:4px;cursor:pointer;transition:all .2s}._btn-sm_1qdim_303:disabled{opacity:.5;cursor:not-allowed}._btn-danger_1qdim_317{background:#dc3545;color:#fff}._btn-danger_1qdim_317:hover:not(:disabled){background:#c82333}._error-message_1qdim_327{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:1rem}@media (max-width: 768px){._excel-uploads-page_1qdim_1{padding:1rem}._page-header_1qdim_7{flex-direction:column;align-items:flex-start;gap:1rem}._upload-options_1qdim_124{flex-direction:column;align-items:stretch}._form-group_1qdim_130 input[type=date]{width:100%}._uploads-table_1qdim_184{font-size:.9rem}._uploads-table_1qdim_184 th,._uploads-table_1qdim_184 td{padding:.75rem}._actions-cell_1qdim_297{flex-direction:column}._btn-sm_1qdim_303{width:100%}}.users-page{min-height:100vh;background:var(--bg-page);display:flex;flex-direction:column}.users-header{background:#fff;border-bottom:1px solid var(--border-default);box-shadow:0 1px 3px #0000000a;padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.users-header>div:first-child{max-width:var(--container-2xl);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.users-page .header-left{display:flex;align-items:center;gap:var(--space-6)}.users-page .header-left h1{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--primary-600)}.users-page .back-button{background:#fff;color:var(--primary-600);border:1px solid var(--border-default);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);font-weight:var(--font-semibold);font-family:var(--font-sans)}.users-page .back-button:hover{background:var(--bg-secondary);border-color:var(--primary-500);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.users-page .user-info{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium)}.users-page .logout-button{background:var(--error-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);font-weight:var(--font-semibold);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.users-page .logout-button:hover{background:var(--error-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.users-main{flex:1;max-width:var(--container-2xl);width:100%;margin:0 auto;padding:var(--space-5) var(--space-6)}.users-page .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.users-page .section-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.add-user-button{background:var(--accent-500);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:var(--transition-all);box-shadow:var(--shadow-sm);font-family:var(--font-sans)}.add-user-button:hover{background:var(--accent-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.users-table-container{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:var(--bg-tertiary);border-bottom:2px solid var(--border-default)}.users-table th{padding:var(--space-3) var(--space-5);text-align:left;font-weight:var(--font-semibold);font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.users-table tbody tr{border-bottom:1px solid var(--border-light);transition:var(--transition-colors)}.users-table tbody tr:hover{background:var(--bg-secondary)}.users-table tbody tr:last-child{border-bottom:none}.users-table tbody tr.inactive-row{background:var(--bg-tertiary);opacity:.7}.users-table td{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--text-primary)}.user-name{font-weight:var(--font-semibold);color:var(--text-primary)}.user-email{color:var(--text-secondary)}.user-date{color:var(--text-tertiary);font-size:var(--text-sm)}.role-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.role-admin{background:var(--primary-100);color:var(--primary-700)}.role-user{background:var(--bg-tertiary);color:var(--text-secondary)}.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.status-active{background:var(--success-100);color:var(--success-700)}.status-inactive{background:var(--error-100);color:var(--error-700)}.user-actions{display:flex;gap:var(--space-2)}.users-page .icon-button{background:none;border:none;cursor:pointer;font-size:var(--text-lg);padding:var(--space-2);transition:var(--transition-transform);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}.users-page .icon-button:hover:not(:disabled){transform:scale(1.15);background:var(--bg-tertiary)}.users-page .icon-button:disabled{opacity:.3;cursor:not-allowed}.users-page .edit-icon{opacity:.7}.users-page .edit-icon:hover:not(:disabled){opacity:1}.users-page .delete-icon{opacity:.5}.users-page .delete-icon:hover:not(:disabled){opacity:1}.deactivate-icon,.activate-icon{opacity:.7}.deactivate-icon:hover:not(:disabled),.activate-icon:hover:not(:disabled){opacity:1}.users-page .loading,.users-page .error,.users-page .empty-state{padding:var(--space-12);text-align:center;font-size:var(--text-lg);color:var(--text-secondary);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default)}.users-page .error{color:var(--error-600);background:var(--error-50);border-color:var(--error-200)}@media (max-width: 768px){.users-header>div:first-child{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.users-page .header-left{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.users-page .user-info{display:none}.users-main{padding:var(--space-6) var(--space-4)}.users-page .section-header{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.users-table{font-size:var(--text-sm)}.users-table th,.users-table td{padding:var(--space-3) var(--space-4)}}.price-indexes-table input[type=date],.price-indexes-table input[type=number],.price-indexes-table input[type=text]{width:100%;padding:.4rem .5rem;border:1px solid #cbd5e1;border-radius:4px;font-size:.875rem;background:#fff;color:#1f2937}.price-indexes-table input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.price-indexes-table .edit-row{background:#f8fafc}.price-indexes-table .edit-row td{vertical-align:middle;padding:.5rem}.price-indexes-table .supplier-actions{display:flex;gap:.5rem;align-items:center}.price-indexes-table .supplier-actions .btn-primary,.price-indexes-table .supplier-actions .btn-secondary{padding:.4rem .75rem;font-size:.8rem;white-space:nowrap}.price-indexes-table .percent-neutral{color:#6b7280}.price-indexes-table .percent-active{color:#047857;font-weight:600}.price-indexes-table .muted{color:#9ca3af}.price-indexes-table .empty-state-cell{text-align:center;padding:1.5rem;color:#6b7280}.dashboard-subtitle code{background:#f3f4f6;padding:.05rem .35rem;border-radius:3px;font-size:.85em}.admin-tile{display:flex;flex-direction:column;text-align:left;outline:none}.admin-tile:focus-visible{box-shadow:0 0 0 3px var(--primary-200);border-left-color:var(--primary-600)}.admin-tile-icon{font-size:2rem;line-height:1;margin-bottom:var(--space-3)}.audit-export-form{background:var(--surface-1);border:1px solid var(--border-200);border-radius:var(--radius-md);padding:var(--space-5);max-width:720px}.audit-export-row{display:flex;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap}.audit-export-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:160px}.audit-export-field span{font-size:var(--font-size-sm);color:var(--text-2);font-weight:500}.audit-export-field input[type=date]{padding:var(--space-2) var(--space-3);border:1px solid var(--border-300);border-radius:var(--radius-sm);font-size:var(--font-size-base)}.audit-export-hint{margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--text-3)}.audit-export-validation{margin-top:var(--space-2);font-size:var(--font-size-sm);color:var(--danger-600)}:root{--primary-50: #eff6ff;--primary-100: #dbeafe;--primary-200: #bfdbfe;--primary-300: #93c5fd;--primary-400: #60a5fa;--primary-500: #3b82f6;--primary-600: #2563eb;--primary-700: #1d4ed8;--primary-800: #1e40af;--primary-900: #1e3a8a;--accent-50: #f0fdfa;--accent-100: #ccfbf1;--accent-200: #99f6e4;--accent-300: #5eead4;--accent-400: #2dd4bf;--accent-500: #14b8a6;--accent-600: #0d9488;--accent-700: #0f766e;--accent-800: #115e59;--accent-900: #134e4a;--gray-50: #fafaf9;--gray-100: #f5f5f4;--gray-200: #e7e5e4;--gray-300: #d6d3d1;--gray-400: #a8a29e;--gray-500: #78716c;--gray-600: #57534e;--gray-700: #44403c;--gray-800: #292524;--gray-900: #1c1917;--success-50: #f0fdf4;--success-100: #dcfce7;--success-500: #22c55e;--success-600: #16a34a;--success-700: #15803d;--warning-50: #fffbeb;--warning-100: #fef3c7;--warning-500: #f59e0b;--warning-600: #d97706;--warning-700: #b45309;--error-50: #fef2f2;--error-100: #fee2e2;--error-500: #ef4444;--error-600: #dc2626;--error-700: #b91c1c;--info-50: #eff6ff;--info-100: #dbeafe;--info-500: #3b82f6;--info-600: #2563eb;--info-700: #1d4ed8;--bg-primary: #ffffff;--bg-secondary: #fafaf9;--bg-tertiary: #f5f5f4;--bg-page: #fafaf9;--text-primary: #1c1917;--text-secondary: #57534e;--text-tertiary: #a8a29e;--text-inverse: #ffffff;--border-light: #f5f5f4;--border-default: #e7e5e4;--border-medium: #d6d3d1;--border-strong: #a8a29e;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Menlo", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-section: var(--space-12);--space-card: var(--space-6);--space-input: var(--space-3);--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-focus: 0 0 0 3px rgba(5, 57, 165, .1);--shadow-focus-error: 0 0 0 3px rgba(239, 68, 68, .1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--transition-colors: color var(--duration-normal) var(--ease-in-out), background-color var(--duration-normal) var(--ease-in-out), border-color var(--duration-normal) var(--ease-in-out);--transition-transform: transform var(--duration-normal) var(--ease-in-out);--transition-shadow: box-shadow var(--duration-normal) var(--ease-in-out);--transition-all: all var(--duration-normal) var(--ease-in-out);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1400px;--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-fixed: 30;--z-modal-backdrop: 40;--z-modal: 50;--z-popover: 60;--z-tooltip: 70}.card{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);transition:var(--transition-all);overflow:hidden}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-medium)}.card-accent{border-left:3px solid var(--primary-500)}.card-accent.accent{border-left-color:var(--accent-500)}.card-header{padding:var(--space-6);border-bottom:1px solid var(--border-light)}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);background:var(--bg-secondary);border-top:1px solid var(--border-light)}.card-clickable{cursor:pointer}.card-clickable:active{transform:translateY(0)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-base);font-weight:var(--font-semibold);line-height:var(--leading-tight);border-radius:var(--radius-md);border:none;cursor:pointer;transition:var(--transition-all);white-space:nowrap;font-family:var(--font-sans)}.btn:focus{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary-500);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--accent-500);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--accent-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-tertiary{background:transparent;color:var(--primary-500);border:2px solid var(--primary-500)}.btn-tertiary:hover:not(:disabled){background:var(--primary-50);border-color:var(--primary-600);color:var(--primary-600)}.btn-danger{background:var(--error-500);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){background:var(--error-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.btn-on-dark{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.25)}.btn-on-dark:hover:not(:disabled){background:#ffffff40;border-color:#fff6;transform:translateY(-1px)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg)}.btn-icon{padding:var(--space-3);aspect-ratio:1}.form-group{margin-bottom:var(--space-6)}.form-label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.form-label .required{color:var(--error-500);margin-left:var(--space-1)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);border:2px solid var(--border-default);border-radius:var(--radius-md);transition:var(--transition-colors)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--border-medium)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:var(--shadow-focus)}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--error-500)}.form-input.error:focus,.form-select.error:focus,.form-textarea.error:focus{box-shadow:var(--shadow-focus-error)}.form-error{display:block;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--error-600);font-weight:var(--font-medium)}.form-helper{display:block;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-tertiary)}.form-textarea{resize:vertical;min-height:100px}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed}.table-container{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default);overflow:hidden}.table-container.has-sticky-header{overflow:visible}.table-container.has-sticky-header thead th{position:sticky;top:80px;background:var(--bg-tertiary);z-index:5;box-shadow:inset 0 -2px 0 var(--border-default)}.table{width:100%;border-collapse:collapse}.table thead{background:var(--bg-tertiary);border-bottom:2px solid var(--border-default)}.table th{padding:var(--space-4) var(--space-6);text-align:left;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.table td{padding:var(--space-4) var(--space-6);font-size:var(--text-base);color:var(--text-primary);border-bottom:1px solid var(--border-light)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:var(--transition-colors)}.table tbody tr:hover{background:var(--bg-secondary)}@media (max-width: 768px){.table-responsive{overflow-x:auto}}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-inverse{color:var(--text-inverse)}.bg-primary{background:var(--bg-primary)}.bg-secondary{background:var(--bg-secondary)}.bg-tertiary{background:var(--bg-tertiary)}.mt-4{margin-top:var(--space-4)}.mb-4{margin-bottom:var(--space-4)}.ml-4{margin-left:var(--space-4)}.mr-4{margin-right:var(--space-4)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.pt-4{padding-top:var(--space-4)}.pb-4{padding-bottom:var(--space-4)}.pl-4{padding-left:var(--space-4)}.pr-4{padding-right:var(--space-4)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-primary)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin:0 0 var(--space-4) 0}a{color:var(--primary-500);text-decoration:none;transition:var(--transition-colors)}a:hover{color:var(--primary-600);text-decoration:underline}#root{min-height:100vh}.container{width:100%;margin:0 auto;padding:0 var(--space-6)}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.container-lg{max-width:var(--container-lg)}.container-xl{max-width:var(--container-xl)}.container-2xl{max-width:var(--container-2xl)}.page{min-height:100vh;background:var(--bg-secondary)}.page-gradient{min-height:100vh;background:var(--bg-gradient)}.app-header{background:#fff;color:var(--text-primary);border-bottom:1px solid var(--border-default);box-shadow:0 1px 3px #0000000a;position:sticky;top:0;z-index:var(--z-sticky)}.header-container{max-width:var(--container-2xl);margin:0 auto;padding:var(--space-4) var(--space-6);display:flex;justify-content:space-between;align-items:center;gap:var(--space-6)}.header-left{display:flex;align-items:center;gap:var(--space-6);flex:1;min-width:0}.header-title{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);white-space:nowrap;color:var(--primary-600)}.header-right{display:flex;align-items:center;gap:var(--space-4)}.user-info{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium)}.main-content{max-width:var(--container-2xl);margin:0 auto;padding:var(--space-8) var(--space-6)}.loading,.error,.empty-state{text-align:center;padding:var(--space-12);background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-default)}.loading{color:var(--text-secondary)}.error{color:var(--error-600);background:var(--error-50);border-color:var(--error-200)}.empty-state{color:var(--text-tertiary)}.grid{display:grid;gap:var(--space-6)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}@media (max-width: 768px){.user-info{display:none}.header-container{padding:var(--space-3) var(--space-4)}.main-content{padding:var(--space-6) var(--space-4)}.grid-cols-2,.grid-cols-3{grid-template-columns:repeat(1,minmax(0,1fr))}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}*:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}@media print{.app-header,.btn,.breadcrumb{display:none}}
