/* Shared shell styling for the sign-in and administration pages.
   The generator itself (index.html) carries its own copy so that it still
   works when opened straight from disk. */
:root{
  --olive:#5A6139; --olive-deep:#464C2C; --olive-soft:#EDEEE3; --olive-line:#B9BE9C;
  --bg:#F6F5EF; --surface:#FFFFFF; --surface-2:#F0EEE5; --surface-3:#E7E4D8;
  --text:#191A15; --text-2:#4A4B42; --muted:#74746A;
  --border:#DFDBCC; --border-strong:#C2BDA9;
  --danger:#8E2F1E; --danger-bg:#FBEDE9; --ok:#33693C; --ok-bg:#EBF3EC;
  --warn:#8A5A12; --warn-bg:#FBF2E2;
  --shadow: 0 1px 2px rgba(25,26,21,.05), 0 8px 24px -12px rgba(25,26,21,.18);
  --shadow-lg: 0 2px 4px rgba(25,26,21,.06), 0 24px 56px -20px rgba(25,26,21,.28);
  --r:10px; --r-sm:7px; --r-lg:16px;
  --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --olive:#A3AC72; --olive-deep:#C3CB96; --olive-soft:#262A1C; --olive-line:#4C5336;
    --bg:#131410; --surface:#1B1C17; --surface-2:#22241D; --surface-3:#2B2D24;
    --text:#EDECE4; --text-2:#C3C2B7; --muted:#8E8E82;
    --border:#33352B; --border-strong:#474a3c;
    --danger:#E39182; --danger-bg:#2C1A16; --ok:#96C89F; --ok-bg:#16241A;
    --warn:#DCB472; --warn-bg:#2A2114;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
    --shadow-lg: 0 2px 4px rgba(0,0,0,.4), 0 24px 56px -20px rgba(0,0,0,.75);
    color-scheme: dark;
  }
}
*,*::before,*::after{box-sizing:border-box}
/* a class with its own display must still yield to the hidden attribute */
[hidden]{display:none !important}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text);
  font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased; min-height:100vh;
}
h1,h2,h3{margin:0; font-weight:600; letter-spacing:-.015em}
p{margin:0}
button{font:inherit; color:inherit}
a{color:var(--olive); text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--olive); outline-offset:2px; border-radius:4px}
.logo-chip{background:#fff; border:1px solid var(--border); border-radius:10px; padding:9px 12px; display:inline-flex}
.logo-chip img{display:block; height:30px; width:auto}
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow)}
.field{margin-bottom:15px}
.field label{display:block; font-size:12.5px; font-weight:600; margin-bottom:6px}
.field .hint{font-size:11.5px; color:var(--muted); margin-top:5px; line-height:1.45}
input[type=text],input[type=password],select,textarea{
  width:100%; padding:10px 11px; background:var(--surface-2); color:var(--text);
  border:1px solid var(--border-strong); border-radius:var(--r-sm); font:inherit; font-size:14px;
}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--olive); background:var(--surface)}
input::placeholder{color:var(--muted); opacity:.75}
.btn{
  padding:10px 18px; border-radius:var(--r-sm); border:1px solid var(--border-strong);
  background:var(--surface-2); font-size:14px; font-weight:600; cursor:pointer;
  display:inline-flex; align-items:center; gap:8px; justify-content:center; white-space:nowrap;
}
.btn:hover:not(:disabled){background:var(--surface-3)}
.btn:disabled{opacity:.5; cursor:not-allowed}
.btn.primary{background:var(--olive); border-color:var(--olive); color:#fff}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn.primary{color:#14160E}}
.btn.primary:hover:not(:disabled){background:var(--olive-deep); border-color:var(--olive-deep)}
.btn.danger{color:var(--danger); border-color:color-mix(in srgb,var(--danger) 35%,transparent); background:var(--danger-bg)}
.btn.sm{padding:6px 11px; font-size:12.5px}
.btn.wide{width:100%}
.note{display:flex; gap:10px; padding:11px 14px; border-radius:var(--r); font-size:13px;
      line-height:1.5; border:1px solid; margin-bottom:16px}
.note.err{background:var(--danger-bg); border-color:color-mix(in srgb,var(--danger) 32%,transparent); color:var(--danger)}
.note.ok{background:var(--ok-bg); border-color:color-mix(in srgb,var(--ok) 32%,transparent); color:var(--ok)}
.note.warn{background:var(--warn-bg); border-color:color-mix(in srgb,var(--warn) 32%,transparent); color:var(--warn)}
.note.info{background:var(--olive-soft); border-color:var(--olive-line); color:var(--olive-deep)}
.note[hidden]{display:none}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
