*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#1a56db;--color-primary-hover:#1648b8;--color-bg:#f8f9fa;--color-surface:#fff;--color-text:#1f2937;--color-text-muted:#6b7280;--color-border:#e5e7eb;--color-error:#dc2626;--color-success:#16a34a;--color-warning:#d97706;--radius:6px}body{color:var(--color-text);background:var(--color-bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.login-container{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;max-width:400px;padding:2.5rem 2rem}.login-card h1{margin-bottom:.25rem;font-size:1.5rem}.login-card .subtitle{color:var(--color-text-muted);margin-bottom:1.5rem;font-size:.875rem}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.25rem;font-size:.875rem;font-weight:500;display:block}.form-group input{border:1px solid var(--color-border);border-radius:var(--radius);width:100%;padding:.5rem .75rem;font-size:.875rem}button[type=submit],.btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;margin-top:.5rem;padding:.625rem;font-size:.875rem;font-weight:500}button[type=submit]:hover{background:var(--color-primary-hover)}button:disabled{opacity:.6;cursor:not-allowed}.error-message{color:var(--color-error);margin-bottom:.5rem;font-size:.8125rem}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:1.5rem;height:56px;padding:0 1.5rem;display:flex}.app-header .brand{margin-right:1rem;font-size:1.125rem;font-weight:700}.main-nav{flex:1;gap:.25rem;display:flex}.nav-link{color:var(--color-text-muted);border-radius:var(--radius);padding:.375rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--color-text);background:var(--color-bg)}.nav-link.active{color:var(--color-primary);background:#eff6ff}.sign-out-btn{border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;color:var(--color-text-muted);background:0 0;width:auto;padding:.375rem .75rem;font-size:.8125rem}.sign-out-btn:hover{background:var(--color-bg)}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem;display:grid}.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.dashboard-card h3{color:var(--color-text-muted);margin-bottom:.5rem;font-size:.8125rem;font-weight:500}.dashboard-card .metric{font-size:2rem;font-weight:700}.dashboard-card .label{color:var(--color-text-muted);margin-top:.25rem;font-size:.75rem}.placeholder-page{padding:1rem 0}.placeholder-page p{color:var(--color-text-muted);margin-top:.5rem}.auth-link{text-align:center;color:var(--color-text-muted);margin-top:1rem;font-size:.8125rem}.auth-link a{color:var(--color-primary);text-decoration:none}.auth-link a:hover{text-decoration:underline}.field-hint{color:var(--color-text-muted);margin-top:.25rem;font-size:.75rem}.user-email{color:var(--color-text-muted);font-size:.8125rem}.loading{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.dashboard-user-info{color:var(--color-text-muted);margin-bottom:1rem;font-size:.875rem}.dashboard-user-info code{background:var(--color-bg);border-radius:3px;padding:.125rem .375rem;font-size:.75rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.page-header .btn-primary{width:auto;margin-top:0;padding:.5rem 1rem}.entity-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.25rem}.entity-form button[type=submit]{width:auto;margin-top:.5rem;padding:.5rem 1.25rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.75rem;display:grid}.entity-form select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;padding:.5rem .75rem;font-size:.875rem}.data-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.625rem .75rem;font-size:.8125rem}.data-table th{background:var(--color-bg);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.data-table code{background:var(--color-bg);border-radius:3px;padding:.125rem .375rem;font-size:.75rem}.status-badge{color:#166534;background:#dcfce7;border-radius:10px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-block}.loading-text,.empty-text{color:var(--color-text-muted);text-align:center;padding:2rem 0;font-size:.875rem}.page-header-actions{align-items:center;gap:.5rem;display:flex}.status-filter{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:.5rem .75rem;font-size:.8125rem}.status-draft{color:#3730a3;background:#e0e7ff}.status-validationfailed{color:#991b1b;background:#fef2f2}.status-ready{color:#166534;background:#dcfce7}.status-locked{color:#854d0e;background:#fef9c3}.status-submittedmanual{color:#1e40af;background:#dbeafe}.status-accepted{color:#065f46;background:#d1fae5}.status-rejected{color:#991b1b;background:#fee2e2}.validation-error-row td{background:#fef2f2;padding:.375rem .75rem}.validation-errors{margin:0;padding:0;list-style:none}.validation-errors li{color:var(--color-error);padding:.0625rem 0;font-size:.75rem}.validation-errors li:before{content:"•"}.btn-secondary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;color:var(--color-text);padding:.5rem 1rem;font-size:.875rem;font-weight:500}.btn-secondary:hover{background:var(--color-bg)}.btn-validate{color:var(--color-primary);border-color:var(--color-primary)}.btn-validate:hover{background:#eff6ff}.actions-cell{gap:.25rem;display:flex}.btn-sm{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;color:var(--color-text);padding:.25rem .5rem;font-size:.6875rem}.btn-sm:hover{background:var(--color-bg)}.btn-danger{color:var(--color-error);border-color:var(--color-error)}.btn-danger:hover{background:#fef2f2}.import-status-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.25rem}.import-status-card.processing{border-color:var(--color-primary)}.import-status-card h3{margin-bottom:.5rem;font-size:.875rem}.import-status-details{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.import-counts{color:var(--color-text-muted);font-size:.8125rem}.import-errors{border-top:1px solid var(--color-border);margin-top:.75rem;padding-top:.75rem}.import-errors h4{color:var(--color-error);margin-bottom:.375rem;font-size:.75rem}.import-errors ul{padding:0;list-style:none}.import-errors li{color:var(--color-text-muted);padding:.125rem 0;font-size:.75rem}.import-hint{margin-bottom:.75rem}.import-hint p{color:var(--color-text-muted);font-size:.75rem}.import-hint code{background:var(--color-bg);border-radius:3px;padding:.0625rem .25rem;font-size:.6875rem}input[type=file]{padding:.375rem 0;font-size:.8125rem}
