:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:light;color:#213547;background-color:#fff;--muted: #666;--border: #ddd;--header-bg: #f5f5f5}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:#f0f0f0;color:#213547;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff;background-color:#e8e8e8}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.auth-page{max-width:360px;margin:0 auto;padding:2rem;text-align:center}.auth-page h1{font-size:1.75rem;margin-bottom:.25rem}.auth-subtitle{color:var(--muted);margin-bottom:1.5rem}.auth-form{display:flex;flex-direction:column;gap:1rem;text-align:left}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.auth-form input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.auth-hint{display:block;margin-top:.25rem;font-size:.8rem;color:var(--muted)}.auth-form button{margin-top:.5rem;padding:.6rem 1rem;cursor:pointer}.auth-form button:disabled{opacity:.7;cursor:not-allowed}.auth-error{padding:.5rem .75rem;background:#fdd;color:#c00;border-radius:6px;font-size:.9rem}.auth-message{padding:.5rem .75rem;background:#dfd;color:#060;border-radius:6px;font-size:.9rem}.auth-resend-link{display:block;margin-top:.5rem;padding:0;background:none;border:none;color:#060;text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit}.auth-resend-link:hover:not(:disabled){color:#040}.auth-resend-link:disabled{cursor:not-allowed;opacity:.8}.auth-footer{margin-top:1.5rem;font-size:.9rem;color:var(--muted)}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--muted)}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid var(--border);background:var(--header-bg)}.app-nav{display:flex;gap:1.5rem}.app-nav a{color:inherit;text-decoration:none;font-weight:500}.app-nav a:hover{text-decoration:underline}.app-header-right{display:flex;align-items:center;gap:1rem}.app-user{font-size:.875rem;color:var(--muted)}.btn-logout{padding:.4rem .75rem;font-size:.875rem;cursor:pointer}.app-main{flex:1;padding:1.5rem}.page h1{font-size:1.5rem;margin-bottom:1rem}.page p{color:var(--muted)}.page-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem}.filter-row{display:flex;gap:.75rem;align-items:flex-end}.filter-row label,.filter-select{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.filter-row input,.filter-select select{padding:.4rem .6rem;border:1px solid var(--border);border-radius:4px}.page-error{padding:.5rem .75rem;background:#fdd;color:#c00;border-radius:6px;margin-bottom:1rem}.table-loading,.table-empty{padding:1.5rem;text-align:center;color:var(--muted)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th.sortable span{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table tbody tr:hover{background:var(--header-bg)}.page-subtitle{color:var(--muted);font-size:.9rem;margin:-.5rem 0 1rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}.kpi-card{padding:1rem;border:1px solid var(--border);border-radius:8px;background:var(--header-bg)}.kpi-title{font-size:.8rem;color:var(--muted);margin-bottom:.25rem}.kpi-value{font-size:1.5rem;font-weight:600}.chart-section{margin-top:1.5rem}.chart-section h2{font-size:1.1rem;margin-bottom:.75rem}.chart-wrap{min-height:300px}.pivot-table .grand-total-row{background:var(--header-bg);font-weight:600}.dash-section{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border)}.dash-subheading{margin-top:1.25rem;font-size:1rem}.dummy-note{color:var(--muted);font-size:.9rem;margin:.5rem 0 1rem}
