/* Gemeinsames Design für Login, Budget-Seite, Platzhalterseite und Admin-Oberfläche.
   Farben aus dem DHBW Light Theme (light-theme.css). Wird beim Bauen in jeden Dienst kopiert. */
:root {
  --red: #E2001A;
  --red-dark: #C8001A;
  --red-soft: #FDECEE;
  --grey: #5C6971;
  --grey-dark: #4A5860;
  --text: #212529;
  --text-muted: #6C757D;
  --bg: #FFFFFF;
  --bg-soft: #F8F9FA;
  --bg-secondary: #E7E9EA;
  --border: #CED4DA;
  --border-light: #E9ECEF;
  --success: #28A745;
  --warning: #FFC107;
  --warning-soft: #FFF8E1;
  --focus-shadow: rgba(226, 0, 26, 0.25);
}

* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; color: var(--text);
       background: var(--bg-soft); line-height: 1.5; }
a { color: var(--red); }
a:hover { color: var(--red-dark); }

.topbar { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.4rem; padding: .8rem 1.5rem;
          background: var(--bg); border-bottom: 3px solid var(--red); }
.topbar .brand { color: var(--red); font-weight: bold; font-size: 1.25rem; text-decoration: none; margin-right: .5rem; }
.topbar a:not(.brand), .topbar .link { color: var(--grey); text-decoration: none; }
.topbar a:not(.brand):hover, .topbar .link:hover { color: var(--red); }
.topbar .right { margin-left: auto; }

.page { max-width: 72rem; margin: 0 auto; padding: 1.5rem; }
.narrow { max-width: 28rem; margin: 3rem auto; padding: 0 1rem; }
.card { background: var(--bg); border: 1px solid var(--border-light); border-radius: 6px; padding: 1.5rem;
        box-shadow: 0 1px 3px rgba(0, 0, 0, .06); margin-bottom: 1.25rem; }

h1 { font-size: 1.5rem; margin: 0 0 1rem; }
h2 { font-size: 1.15rem; margin: 1.75rem 0 .6rem; }
.card > h2:first-child { margin-top: 0; }

label { display: block; margin: .8rem 0; color: var(--grey); font-weight: bold; font-size: .9rem; }
input[type=text], input[type=password] { display: block; width: 100%; margin-top: .3rem; padding: .6rem .75rem;
  font: inherit; font-weight: normal; color: var(--text); background: var(--bg); border: 1px solid var(--border);
  border-radius: 4px; }
input.short { display: inline-block; width: 8rem; margin-top: 0; }
input:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 .2rem var(--focus-shadow); }
input[type=checkbox] { accent-color: var(--red); }

button, .button { display: inline-block; font: inherit; font-weight: bold; padding: .55rem 1.1rem;
  border: 1px solid var(--red); border-radius: 4px; background: var(--red); color: #fff; cursor: pointer;
  text-decoration: none; }
button:hover, .button:hover { background: var(--red-dark); border-color: var(--red-dark); color: #fff; }
button.secondary { background: var(--grey); border-color: var(--grey); }
button.secondary:hover { background: var(--grey-dark); border-color: var(--grey-dark); }
button.danger { background: var(--bg); color: var(--red); }
button.danger:hover { background: var(--red); color: #fff; }
button.link { background: none; border: none; padding: 0; font-weight: normal; color: var(--grey); }
button.link:hover { background: none; color: var(--red); }
button.wide { width: 100%; margin-top: .6rem; }

.error { border-left: 4px solid var(--red); background: var(--red-soft); padding: .7rem 1rem; margin: 0 0 1rem; }
.flash, .notice { border-left: 4px solid var(--warning); background: var(--warning-soft); padding: .7rem 1rem; margin: 0 0 1rem; }
.muted { color: var(--text-muted); }

table { width: 100%; border-collapse: collapse; background: var(--bg); }
th, td { padding: .5rem .7rem; text-align: left; white-space: nowrap; }
th { background: var(--bg-soft); color: var(--grey); font-size: .85rem; border-bottom: 2px solid var(--border); }
td { border-bottom: 1px solid var(--border-light); }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }

.bar { height: .6rem; background: var(--bg-secondary); border-radius: 3px; overflow: hidden; margin: 1.2rem 0 .4rem; }
.bar div { height: 100%; background: var(--red); }
.secret { font-family: ui-monospace, Consolas, monospace; background: var(--bg-secondary); padding: .1rem .4rem; border-radius: 3px; }
pre { background: var(--bg); border: 1px solid var(--border-light); border-radius: 4px; padding: .8rem; overflow-x: auto; font-size: .85rem; }
