:root{
  --bg:#fafbfd; --bg-2:#ffffff; --bg-3:#f2f4f9;
  --line:rgba(20,22,35,.08); --line-2:rgba(20,22,35,.14);
  --fg:#1a1d29; --fg-2:#565c70; --fg-3:#8990a6;
  --accent:#4f6fe0; --accent-2:#6c8cff; --violet:#9a6bf0;
  --good:#1a9e6b; --warn:#c98a1b; --bad:#d64545;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  --display:"Space Grotesk","Inter",system-ui,sans-serif;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.02em;margin:0 0 .4em}

.app-topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 28px;background:var(--bg-2);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:10;
}
.app-brand{font-family:var(--display);font-weight:700;font-size:19px;color:var(--fg)}
.app-brand span{color:var(--accent)}
.app-nav{display:flex;align-items:center;gap:20px;font-size:14px;font-weight:500}
.app-nav a{color:var(--fg-2)}
.app-nav a:hover{color:var(--fg)}
.app-workspace-name{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--fg-3);padding:4px 10px;border:1px solid var(--line-2);border-radius:999px;
}
.app-cta{
  background:var(--accent);color:#fff !important;padding:8px 16px;border-radius:8px;
  font-weight:600;
}
.app-cta:hover{background:#3f5bc4}

.app-main{max-width:1080px;margin:0 auto;padding:32px 28px 80px}
.app-main.full-bleed{max-width:none;margin:0;padding:0;height:calc(100vh - 65px)}

.card{
  background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:24px;
  box-shadow:0 1px 2px rgba(20,22,35,.04);
}

.btn{
  display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);
  background:var(--bg-2);color:var(--fg);padding:9px 16px;border-radius:9px;
  font-weight:600;font-size:14px;cursor:pointer;
}
.btn:hover{border-color:var(--accent)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{background:#3f5bc4}
.btn-danger{color:var(--bad);border-color:rgba(214,69,69,.35)}

input[type=text],input[type=email],input[type=password],input[type=number],textarea,select{
  width:100%;padding:10px 12px;border:1px solid var(--line-2);border-radius:8px;
  font-family:var(--sans);font-size:14px;background:var(--bg-2);color:var(--fg);
}
label{font-size:13px;font-weight:600;color:var(--fg-2);display:block;margin-bottom:6px}
.field{margin-bottom:16px}

.badge{
  display:inline-flex;align-items:center;font-family:var(--mono);font-size:11px;
  letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px;
  background:var(--bg-3);color:var(--fg-2);
}
.badge-new{color:var(--fg-2)}
.badge-estimated{color:var(--warn);background:rgba(201,138,27,.1)}
.badge-in_progress{color:var(--accent);background:rgba(79,111,224,.1)}
.badge-done{color:var(--good);background:rgba(26,158,107,.1)}
.badge-staging_review{color:var(--warn);background:rgba(201,138,27,.12)}
.badge-confirmed{color:var(--good);background:rgba(26,158,107,.14)}

.auth-shell{max-width:380px;margin:60px auto;padding:32px}
.auth-shell h1{font-size:24px;margin-bottom:6px}
.auth-shell p.hint{color:var(--fg-3);font-size:13px;margin-bottom:24px}
.error-msg{color:var(--bad);font-size:13px;margin-bottom:16px}
