:root{--color-bg:#ffffff;--color-fg:#14181f;--color-accent:#1f7a4d;--color-muted:#5b6470;--color-border:#e6e8eb;--color-error:#b3261e;--color-on-accent:#ffffff;--space-2:0.5rem;--space-4:1rem;--space-6:1.5rem;--radius:8px;--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--color-fg);background:var(--color-bg);line-height:1.5}.page{max-width:720px;margin:0 auto;padding:var(--space-6) var(--space-4)}a{color:var(--color-accent)}.auth-card{max-width:420px;margin:4rem auto;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius)}.auth-card h1{margin-top:0}.field{display:block;margin-bottom:var(--space-4)}.field .label{display:block;margin-bottom:var(--space-2);font-weight:600}.input{width:100%;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;color:var(--color-fg);background:var(--color-bg)}.hint{color:var(--color-muted);font-size:.875rem;margin-top:var(--space-2)}.btn{display:inline-block;padding:var(--space-2) var(--space-6);border:1px solid transparent;border-radius:var(--radius);font:inherit;cursor:pointer}.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-link{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:0;font:inherit}.form-error{color:var(--color-error);margin-bottom:var(--space-4)}.muted{color:var(--color-muted)}.app-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border)}.app-nav{display:flex;gap:var(--space-6);align-items:baseline}.app-nav a{text-decoration:none}.inline-form{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-6)}.inline-form .input{width:auto;flex:1 1 8rem}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border)}.table th{color:var(--color-muted);font-weight:600;font-size:.875rem}.card-links{list-style:none;padding:0}.card-links li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}