/* Poltrax brand tokens — shared across the wwtw toolbox (poltrax-tools).
   Source of truth: poltrax-next-frontend/tailwind.config.ts */
:root {
  --pt-primary: #4B5F7A;
  --pt-navy: #23354d;
  --pt-navy-70: rgba(35, 53, 77, 0.7);
  --pt-bright: #4BA9D5;
  --pt-bright-2: #92d1f9;
  --pt-orange: #F46C19;
  --pt-orange-light: #f3bd7d;
  --pt-green: #2fbc46;
  --pt-red: #f24e1e;
  --pt-red-dark: #A00F0F;
  --pt-bg: #F6F7F9;
  --pt-surface: #ffffff;
  --pt-off-white: #fcfcfd;
  --pt-ink: #050005;
  --pt-muted: #727e8d;
  --pt-inactive: #A7AEB8;
  --pt-border: #e4e8ee;
  --pt-radius: 8px;
  --pt-shadow: 0 1px 3px rgba(35, 53, 77, 0.08), 0 1px 2px rgba(35, 53, 77, 0.06);
}

* { box-sizing: border-box; }

body {
  font-family: var(--font-roboto, 'Roboto'), system-ui, sans-serif;
  color: var(--pt-ink);
  background: var(--pt-bg);
  margin: 0;
  line-height: 1.5;
}

h1, h2, h3, .pt-condensed {
  font-family: 'Roboto Condensed', var(--font-roboto, 'Roboto'), system-ui, sans-serif;
  color: var(--pt-navy);
  font-weight: 700;
}

.pt-header {
  background: linear-gradient(180deg, #294265, var(--pt-navy));
  color: #fff;
  padding: 0 1.25rem;
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  box-shadow: 0 1px 0 rgba(255,255,255,.05), 0 2px 10px rgba(35,53,77,.18);
}
.pt-header .pt-logo {
  font-family: 'Roboto Condensed', var(--font-roboto, 'Roboto'), system-ui, sans-serif;
  font-size: 1.22rem; font-weight: 700; letter-spacing: .3px;
  color: #fff; text-decoration: none; white-space: nowrap;
  padding: .35rem 1.15rem .35rem 0;
  margin-right: .2rem;
  border-right: 1px solid rgba(255,255,255,.14);
}
.pt-header .pt-logo span { color: var(--pt-bright); }
.pt-header .pt-sub { margin-left: auto; color: var(--pt-bright-2); font-size: .82rem; }

/* tool switcher */
.pt-nav { display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; }
.pt-nav a {
  color: #b6c3d6; text-decoration: none; font-size: .88rem; font-weight: 500;
  padding: .38rem .72rem; border-radius: 7px; white-space: nowrap;
  transition: color .12s, background .12s;
}
.pt-nav a:hover { color: #fff; background: rgba(255,255,255,.08); }
.pt-nav a.active { color: #fff; background: rgba(75,169,213,.20); box-shadow: inset 0 0 0 1px rgba(75,169,213,.4); }

.pt-header .pt-right { margin-left: auto; display: flex; align-items: center; gap: .55rem; }
.pt-header .pt-right .pt-user {
  display: inline-flex; align-items: center; gap: .5rem;
  color: #dbe4f0; font-size: .84rem; font-weight: 500;
  padding: .32rem .7rem; border-radius: 999px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.09);
  white-space: nowrap;
}
.pt-header .pt-right .pt-user::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--pt-green); box-shadow: 0 0 0 3px rgba(47,188,70,.22);
}
.pt-header .pt-right a {
  color: var(--pt-bright-2); text-decoration: none; font-size: .83rem; font-weight: 500;
  padding: .36rem .7rem; border-radius: 7px; transition: color .12s, background .12s;
}
.pt-header .pt-right a:hover { color: #fff; background: rgba(255,255,255,.08); }
.pt-header .pt-right a.pt-logout {
  color: #e8eef6; border: 1px solid rgba(255,255,255,.16);
}
.pt-header .pt-right a.pt-logout:hover { background: var(--pt-orange); border-color: var(--pt-orange); color: #fff; }

.pt-wrap { max-width: 660px; margin: 1.6rem auto; padding: 0 1rem; }

.pt-card {
  background: var(--pt-surface);
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius);
  box-shadow: var(--pt-shadow);
  padding: 1.4rem 1.5rem;
}

label { display: block; margin: .9rem 0 .28rem; font-weight: 600; color: var(--pt-navy); }
input {
  width: 100%; padding: .58rem .7rem; font-size: 1rem; color: var(--pt-ink);
  background: var(--pt-off-white);
  border: 1px solid var(--pt-border); border-radius: 6px; font-family: inherit;
}
input:focus { outline: none; border-color: var(--pt-bright); box-shadow: 0 0 0 3px rgba(75,169,213,.2); }

.pt-row { display: flex; gap: 1rem; }
.pt-row > div { flex: 1; }
.pt-hint { color: var(--pt-muted); font-size: .84rem; margin-top: .25rem; }
.pt-or { text-align: center; color: var(--pt-inactive); margin: .5rem 0; font-size: .85rem; }

.pt-btn {
  margin-top: 1.3rem; padding: .72rem 1.5rem; font-size: 1rem; font-weight: 600;
  color: #fff; background: var(--pt-orange); border: none; border-radius: 6px;
  cursor: pointer; font-family: inherit; transition: background .15s;
}
.pt-btn:hover { background: #d95d10; }

.pt-btn-dl {
  display: inline-block; margin: 1rem 0; padding: .72rem 1.5rem; font-weight: 600;
  color: #fff; background: var(--pt-green); border-radius: 6px; text-decoration: none;
}
.pt-btn-dl:hover { background: #27a23c; }

.pt-alert { padding: .65rem .9rem; border-radius: 6px; margin: .5rem 0; font-size: .92rem; }
.pt-alert-err { background: #fdecea; color: var(--pt-red-dark); border: 1px solid #f7c9c2; }
.pt-alert-warn { background: #fff6e6; color: #8a5a12; border: 1px solid #f3d9a8; }

table.pt-stats { border-collapse: collapse; width: 100%; margin: 1rem 0; }
table.pt-stats td { padding: .4rem .6rem; border-bottom: 1px solid var(--pt-border); }
table.pt-stats td:first-child { color: var(--pt-muted); width: 45%; }
.pt-big { font-size: 1.05rem; font-weight: 700; color: var(--pt-navy); }

.pt-foot { margin-top: 1.4rem; color: var(--pt-inactive); font-size: .8rem; text-align: center; }
a { color: var(--pt-primary); }
