/* Portal-Basistheme – Design-Tokens der Busverwaltung (voller Ausbau in M3) */
:root {
  --accent-solid: #c1182e; --accent-dark: #9e1426; --accent-light: #fdf2f4;
  --sidebar-bg: #1a0a0c;
  --bg: #f8fafc; --surface: #ffffff; --border: #e2e8f0;
  --text: #0f172a; --text-muted: #64748b;
  --radius: 12px; --radius-sm: 8px;
  --shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);
}
*,*::before,*::after{box-sizing:border-box}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);margin:0;line-height:1.6}
.portal-header{display:flex;justify-content:space-between;align-items:center;background:var(--sidebar-bg);color:#fff;padding:.75rem 1.25rem}
.portal-header a{color:#c4a0a5}
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;padding:1.5rem;max-width:1100px;margin:0 auto}
.tile{display:flex;flex-direction:column;gap:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;text-decoration:none;color:var(--text);transition:box-shadow .15s}
.tile:hover{box-shadow:var(--shadow-md)}
.tile-name{font-weight:700;font-size:1.05rem}
.tile-desc{color:var(--text-muted);font-size:.9rem}
.tile-admin{border-color:var(--accent-solid)}
.auth-page{display:flex;min-height:100vh;align-items:center;justify-content:center}
.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:2rem;width:min(380px,92vw)}
.auth-card h1{font-size:1.2rem;margin:.25rem 0 1rem}
.auth-logo{height:56px;display:block;margin:0 auto .5rem}
label{display:block;margin-bottom:.9rem;font-weight:600;font-size:.9rem}
input{width:100%;padding:.55rem .7rem;margin-top:.25rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit}
.btn{display:inline-block;border:0;border-radius:var(--radius-sm);padding:.6rem 1.1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--accent-solid);color:#fff}
.btn-primary:hover{background:var(--accent-dark)}
.alert{padding:.6rem .8rem;border-radius:var(--radius-sm);font-size:.9rem}
.alert-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.alert-success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
.alert-info{background:var(--accent-light);color:var(--accent-dark);border:1px solid #f5c6cd}
