:root{--color-primary:#852c84;--color-primary-dark:#6b2369;--color-primary-light:#a33da2;--color-accent:#c98cff;--color-accent-soft:#f1d7e9;--color-neutral:#4d4d4d;--color-on-primary:#ffffff;--color-background:#fafafa;--color-surface:#ffffff;--color-border:#e2e2e2}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--color-neutral);background:var(--color-background)}a{color:var(--color-primary)}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.85rem 1.5rem;background:var(--color-primary);color:var(--color-on-primary)}.app-header__brand{font-size:1.15rem;font-weight:600}.app-header__status{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.app-header__logout{border:1px solid var(--color-on-primary);background:transparent;color:var(--color-on-primary);border-radius:4px;padding:.3rem .75rem;cursor:pointer}.app-header__logout:hover{background:var(--color-primary-dark)}.app-main{max-width:1100px;margin:0 auto;padding:1.5rem}.status-band{background:var(--color-accent-soft);border:1px solid var(--color-accent);border-radius:6px;margin-bottom:1rem}.month-picker,.status-band{padding:.75rem 1rem;color:var(--color-neutral)}.month-picker{border:1px dashed var(--color-border);border-radius:6px;margin-bottom:1.5rem}.dashboard-placeholder p{color:var(--color-neutral)}.login-page{display:flex;min-height:calc(100vh - 4rem);align-items:center;justify-content:center}.login-box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:2.5rem;max-width:420px;width:100%;text-align:center;box-shadow:0 2px 10px rgba(0,0,0,.06)}.login-box h1{font-size:1.3rem;color:var(--color-neutral)}.btn-primary{background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:4px;padding:.65rem 1.5rem;font-size:1rem;cursor:pointer;margin-top:1rem}.btn-primary:hover{background:var(--color-primary-dark)}@media (max-width:560px){.app-header{flex-direction:column;align-items:flex-start}}