/* Guru Darshan CRM — brand: cream #f9f1de, brown #2f241c. Body ≥20px, UI/labels ≥16px. */
@font-face{font-family:'Neue Faktum Extended Light';src:url('/fonts/NeueFaktumExtended-Light.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Neue Faktum Extended Regular';src:url('/fonts/NeueFaktumExtended-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Neue Faktum Extended SemiBold';src:url('/fonts/NeueFaktumExtended-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
:root{
  --cream:#f9f1de; --brown:#2f241c;
  --soft:rgba(47,36,28,.68); --mute:rgba(47,36,28,.50); --rule:rgba(47,36,28,.16); --wash:rgba(47,36,28,.05);
  --f-light:'Neue Faktum Extended Light',Arial,Helvetica,sans-serif;
  --f-reg:'Neue Faktum Extended Regular',Arial,Helvetica,sans-serif;
  --f-semi:'Neue Faktum Extended SemiBold',Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--brown);font-family:var(--f-reg);font-size:20px;line-height:1.55}
a{color:inherit}
h1,h2,h3{font-family:var(--f-light);font-weight:300;margin:0}
h1{font-size:48px;line-height:1.08;letter-spacing:-.005em}
h2{font-size:34px;line-height:1.15}
h3{font-size:24px;line-height:1.25}
p{margin:0}
.eyebrow{font-family:var(--f-semi);font-size:16px;letter-spacing:.45em;text-transform:uppercase;color:var(--soft)}
.soft{color:var(--soft)} .mute{color:var(--mute)}
.wrap{max-width:720px;margin:0 auto;padding:0 20px}
.wide{max-width:1180px}
.top{padding:44px 0 28px;border-bottom:1px solid var(--rule)}
.top .eyebrow{display:block;margin-bottom:12px}
.top h1{margin-top:8px}
.top .lede{margin-top:16px;color:var(--soft);max-width:60ch}
section{padding:36px 0}
.rule{height:1px;background:var(--rule);border:0;margin:0}
label{display:block;font-family:var(--f-semi);font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:22px 0 8px}
label .opt{font-family:var(--f-reg);letter-spacing:0;text-transform:none;color:var(--mute)}
input,select,textarea,button{font:inherit;color:inherit}
input[type=text],input[type=tel],input[type=email],input[type=number],input[type=password],input[type=date],input[type=datetime-local],select,textarea{
  width:100%;background:transparent;border:1px solid var(--rule);border-radius:2px;padding:14px 16px;font-size:20px;line-height:1.3;
  outline:none;-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--soft) 50%),linear-gradient(135deg,var(--soft) 50%,transparent 50%);
  background-position:calc(100% - 22px) 26px,calc(100% - 16px) 26px;background-size:6px 6px;background-repeat:no-repeat;padding-right:48px}
input:focus,select:focus,textarea:focus{border-color:var(--brown)}
input:disabled,select:disabled{color:var(--mute)}
::placeholder{color:var(--mute)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
@media(max-width:600px){.row{grid-template-columns:1fr}}
.phone{display:grid;grid-template-columns:auto 1fr;gap:12px}
.phone .cc{padding:14px 16px;border:1px solid var(--rule);border-radius:2px;color:var(--soft);white-space:nowrap}
.hint{font-size:16px;color:var(--mute);margin-top:8px;line-height:1.45}
.stepper{display:grid;grid-template-columns:56px 1fr 56px;gap:0;max-width:280px}
.stepper button{background:transparent;border:1px solid var(--rule);border-radius:2px;font-size:26px;line-height:1;cursor:pointer;color:var(--soft)}
.stepper button:hover{border-color:var(--brown);color:var(--brown)}
.stepper input{text-align:center;border-left:0;border-right:0;border-radius:0}
.btn{display:inline-block;background:var(--brown);color:var(--cream);border:1px solid var(--brown);border-radius:2px;padding:16px 28px;
  font-family:var(--f-semi);font-size:16px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;line-height:1.2}
.btn:hover{background:transparent;color:var(--brown)}
.btn.ghost{background:transparent;color:var(--brown)}
.btn.ghost:hover{background:var(--brown);color:var(--cream)}
.btn.small{padding:10px 16px;font-size:16px}
.btn:disabled{opacity:.5;cursor:default}
.actions{margin-top:36px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.err{margin-top:20px;padding:14px 16px;border:1px solid var(--brown);font-size:18px;display:none}
.err.show{display:block}
.note{padding:16px 20px;background:var(--wash);border-radius:2px;font-size:18px;color:var(--soft);line-height:1.5}
.passcard{border:1px solid var(--rule);border-radius:2px;padding:24px;background:rgba(255,255,255,.25)}
.passcard img{width:100%;max-width:420px;height:auto;display:block;margin:0 auto;border:1px solid var(--rule)}
.foot{padding:36px 0 56px;border-top:1px solid var(--rule);font-size:16px;color:var(--mute)}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
/* small tag list */
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;font-size:18px}
.kv dt{color:var(--mute);font-family:var(--f-semi);font-size:16px;letter-spacing:.06em;text-transform:uppercase;padding-top:2px}
.kv dd{margin:0}
/* ---------- admin ---------- */
.adm{font-size:18px}
.adm nav{border-bottom:1px solid var(--rule);padding:14px 0}
.adm nav .wrap{display:flex;gap:26px;flex-wrap:wrap;align-items:baseline}
.adm nav a{font-family:var(--f-semi);font-size:16px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--soft)}
.adm nav a.on,.adm nav a:hover{color:var(--brown)}
.adm nav .brand{font-family:var(--f-light);font-size:22px;letter-spacing:0;text-transform:none;margin-right:auto;color:var(--brown)}
.adm h1{font-size:36px}
.adm h2{font-size:26px;margin:32px 0 12px}
.adm label{margin:14px 0 6px}
.adm input,.adm select,.adm textarea{padding:10px 12px;font-size:18px}
.adm select{background-position:calc(100% - 20px) 20px,calc(100% - 14px) 20px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:20px}
.tile{border:1px solid var(--rule);border-radius:2px;padding:14px 16px}
.tile .n{font-family:var(--f-light);font-size:40px;line-height:1}
.tile .l{font-size:16px;color:var(--mute);margin-top:6px}
table{width:100%;border-collapse:collapse;font-size:17px;margin-top:8px}
th{text-align:left;font-family:var(--f-semi);font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);padding:8px 10px;border-bottom:1px solid var(--rule)}
td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
tr:hover td{background:var(--wash)}
td a{text-decoration:none;border-bottom:1px solid var(--rule)}
.pill{display:inline-block;font-size:14px;font-family:var(--f-semi);letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--rule);border-radius:2px;color:var(--soft)}
.pill.ok{border-color:var(--brown);color:var(--brown)}
.pill.bad{background:var(--brown);color:var(--cream);border-color:var(--brown)}
.flash{margin:16px 0;padding:12px 16px;background:var(--wash);border-left:3px solid var(--brown);font-size:17px}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 14px;align-items:end}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media(max-width:800px){.grid2{grid-template-columns:1fr}}
.thread{border:1px solid var(--rule);border-radius:2px;max-height:520px;overflow:auto;padding:8px 0}
.bubble{padding:10px 16px;font-size:17px;border-bottom:1px solid var(--rule)}
.bubble .meta{font-size:14px;color:var(--mute);margin-bottom:2px}
.bubble.in{background:var(--wash)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px}
/* scanner */
.scan{max-width:520px}
#reader{width:100%;border:1px solid var(--rule);border-radius:2px;overflow:hidden}
.result{margin-top:20px;border:1px solid var(--rule);border-radius:2px;padding:20px}
.result .big{font-family:var(--f-light);font-size:56px;line-height:1}
.result.done{background:var(--brown);color:var(--cream)}
.result.done .mute,.result.done .soft{color:rgba(249,241,222,.7)}
.result.bad{border-color:var(--brown);border-width:3px}
.numpad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.numpad button{padding:14px 0;font-size:22px;background:transparent;border:1px solid var(--rule);border-radius:2px;cursor:pointer}
.numpad button.on{background:var(--brown);color:var(--cream)}
