:root{
  --ink:#152238; --ink-soft:#3c4a63; --grey:#6b7280; --line:#e4e2da; --paper:#faf9f6; --white:#fff;
  --brass:#c08a3e; --brass-dark:#9c6d2b; --brass-light:#f3e6cf; --sage:#4a7a6b; --sage-light:#e4ede9;
  --red:#c0453e; --red-light:#fbeceb;
  --radius:14px;
  --font:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-display:'Space Grotesk',sans-serif;
  --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;}
body{margin:0; font-family:var(--font); color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1080px; margin:0 auto; padding:0 20px;}
button{font-family:var(--font);}
input, select{font-family:var(--font);}

.btn{display:inline-flex; align-items:center; justify-content:center; padding:12px 20px; border-radius:10px; font-weight:600; font-size:14px; cursor:pointer; border:none; transition:.15s;}
.btn-primary{background:var(--ink); color:#fff;} .btn-primary:hover{background:var(--brass-dark);}
.btn-outline{background:#fff; border:1.5px solid var(--line); color:var(--ink);} .btn-outline:hover{border-color:var(--ink);}
.btn-sm{padding:9px 15px; font-size:13px;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.55; cursor:default;}

.card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px;}

label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-soft); margin:14px 0 6px;}
label:first-child{margin-top:0;}
input[type=text], input[type=email], input[type=password], input[type=number], input[type=tel]{
  width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:9px; font-size:14px;
}
input:focus, select:focus{outline:none; border-color:var(--brass);}

.error-box{display:none; background:var(--red-light); color:var(--red); border-radius:9px; padding:11px 14px; font-size:13px; margin-top:14px;}
.ok-box{display:none; background:var(--sage-light); color:var(--sage); border-radius:9px; padding:11px 14px; font-size:13px; margin-top:14px;}

header.app{background:#fff; border-bottom:1px solid var(--line);}
header.app .wrap{display:flex; align-items:center; justify-content:space-between; height:64px;}
.logo{font-family:var(--font-display); font-weight:700; font-size:19px; display:flex; align-items:center; gap:7px;}
.logo .dot{width:7px; height:7px; border-radius:50%; background:var(--brass);}

.auth-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:30px 16px;}
.auth-card{background:#fff; border-radius:20px; max-width:400px; width:100%; padding:34px 30px; box-shadow:0 30px 80px -20px rgba(21,34,56,.2);}
.auth-card h1{font-family:var(--font-display); font-size:22px; font-weight:600; margin:0 0 6px;}
.auth-card .sub{color:var(--grey); font-size:13.5px; margin:0 0 22px;}
.auth-switch{text-align:center; margin-top:18px; font-size:13.5px; color:var(--grey);}
.auth-switch a{color:var(--brass-dark); font-weight:600;}
