/* ============================================================================
   Armiger recruitment — visual system (v5)
   Olive/gold identity aligned with the product brochure.
   ========================================================================== */
:root{
  --olive:#4a5638; --olive-2:#5d6c46; --olive-d:#39422b; --olive-ink:#2c3321;
  --gold:#e3b82c; --gold-d:#c69e18;
  --bg:#f5f4ee; --card:#ffffff; --ink:#23271d; --muted:#767b6a;
  --line:#e5e3d7; --line-2:#efeee6;
  --ok:#3f7d3f; --warn:#b9791d; --danger:#b0402e;
  --ring:rgba(227,184,44,.45);
  --shadow-sm:0 1px 2px rgba(44,51,33,.06);
  --shadow-md:0 6px 18px rgba(44,51,33,.08),0 2px 6px rgba(44,51,33,.05);
  --shadow-lg:0 18px 40px rgba(44,51,33,.14);
  --r:14px; --r-sm:10px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
input,select,button,textarea{font-family:inherit;font-size:16px}
::selection{background:var(--gold);color:var(--olive-ink)}

/* top progress/loading bar (shown during network calls) */
#loadbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;
  background:linear-gradient(90deg,var(--gold),var(--olive-2));
  box-shadow:0 0 8px var(--gold);opacity:0;transition:width .3s ease,opacity .3s}
#loadbar.on{opacity:1}

/* ---- top bar ---- */
.topbar{background:linear-gradient(135deg,var(--olive),var(--olive-d));color:#fff;
  padding:calc(15px + env(safe-area-inset-top)) 18px 15px;position:sticky;top:0;z-index:5;
  box-shadow:0 4px 18px rgba(44,51,33,.18);border-bottom:2px solid var(--gold)}
.brandwrap{display:flex;align-items:center;gap:12px;max-width:600px;margin:0 auto}
.brand-logo{height:36px;width:auto;border-radius:8px;background:#fff;padding:3px;box-shadow:var(--shadow-sm)}
.brandtext{display:flex;flex-direction:column;line-height:1.15}
.brand{font-weight:800;font-size:1.18rem;letter-spacing:-.01em}
.sub{opacity:.82;font-size:.78rem;letter-spacing:.02em}

/* ---- layout ---- */
.container{max-width:600px;margin:0 auto;padding:20px 16px 30px}
.screen{display:none;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:24px;box-shadow:var(--shadow-md)}
.screen.active{display:block;animation:rise .28s ease}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
h1{font-size:1.4rem;line-height:1.25;margin:.1rem 0 .5rem;letter-spacing:-.02em;font-weight:750}
h2,h3{letter-spacing:-.01em}
.lead{margin:.2rem 0 1rem;color:#4c5142}
.muted{color:var(--muted);font-size:.9rem}
a{color:var(--olive-2);text-decoration:none;font-weight:600}
a:hover{color:var(--olive);text-decoration:underline}

/* ---- fields ---- */
.field{display:block;margin:.85rem 0}
.field span{display:block;font-size:.82rem;color:var(--muted);margin-bottom:5px;font-weight:600}
input[type=text],input[type=tel],input[type=date],input[type=number],select,textarea{
  width:100%;padding:12px 13px;border:1.5px solid var(--line);border-radius:var(--r-sm);
  font-size:1rem;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--olive-2);box-shadow:0 0 0 3px var(--ring)}
input[readonly]{background:var(--line-2);color:var(--muted)}

/* ---- buttons ---- */
button{font-size:1rem;font-weight:650;border-radius:var(--r-sm);padding:13px 16px;border:0;
  cursor:pointer;width:100%;margin-top:12px;transition:transform .08s,box-shadow .15s,background .15s}
button.primary{background:var(--olive);color:#fff;box-shadow:0 3px 10px rgba(74,86,56,.28)}
button.primary:hover{background:var(--olive-d)}
button.primary:active{transform:translateY(1px)}
button.primary:disabled{opacity:.5;box-shadow:none;cursor:default}
button.ghost{background:#eceee4;color:var(--olive);border:1px solid var(--line)}
button.ghost:hover{background:#e3e6d8}
button.mini{width:auto;padding:9px 18px;margin:0;flex:0 0 auto}
button.link,.link{background:none;border:0;color:var(--warn);width:auto;padding:0;margin:0;
  cursor:pointer;font-size:.85rem;font-weight:600}
button.link:hover,.link:hover{text-decoration:underline}
.nav{display:flex;gap:10px}
.nav button{margin-top:20px}

/* ---- wizard progress ---- */
.stepper{max-width:600px;margin:16px auto -2px;padding:0 18px}
.wiz-track{height:6px;background:#e7e6db;border-radius:6px;overflow:hidden}
.wiz-fill{display:block;height:100%;background:linear-gradient(90deg,var(--olive-2),var(--gold));
  border-radius:6px;transition:width .35s ease}
.wiz-meta{display:flex;justify-content:space-between;margin-top:7px;font-size:.76rem;color:var(--muted)}
.wiz-label{font-weight:700;color:var(--olive)}

/* ---- icons ---- */
.ic{width:1em;height:1em;vertical-align:-.14em;display:inline-block}
.ic-ok{color:var(--ok)} .ic-warn{color:var(--warn)} .ic-bad{color:var(--danger)}

/* ---- consent ---- */
.consent{border:1px solid var(--line);border-radius:var(--r-sm);padding:13px;margin:10px 0;background:var(--line-2)}
.consent label{display:flex;gap:10px;align-items:flex-start;font-weight:650}
.consent input{margin-top:3px;accent-color:var(--olive)}
.consent p{margin:.4rem 0 0;color:var(--muted);font-size:.86rem}

/* ---- assessment ---- */
.progress{height:8px;background:#e7e6db;border-radius:6px;overflow:hidden;margin:.3rem 0}
#pb,#progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--olive-2),var(--gold));transition:width .25s}
.scenario{background:var(--line-2);border:1px solid var(--line);border-left:4px solid var(--olive-2);
  border-radius:var(--r-sm);padding:14px;margin:.5rem 0 .9rem;font-weight:550}
.option{display:flex;align-items:center;gap:11px;border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:13px;margin:9px 0;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.option:hover{border-color:var(--olive-2);box-shadow:var(--shadow-sm)}
.option.sel{border-color:var(--olive);background:#f0f2e8;box-shadow:0 0 0 2px rgba(74,86,56,.12)}
.option .k{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:#eceee4;color:var(--olive);
  font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.85rem;margin:0}
.option.sel .k{background:var(--olive);color:#fff}

.tick{width:66px;height:66px;border-radius:50%;background:var(--ok);color:#fff;
  display:flex;align-items:center;justify-content:center;margin:0 auto 10px;box-shadow:var(--shadow-md)}
.tick .ic{width:34px;height:34px}

/* ---- repeat-item cards ---- */
.card{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
  border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px;margin:9px 0;
  font-size:.92rem;background:#fff;box-shadow:var(--shadow-sm);transition:box-shadow .15s,transform .08s}
.card:hover{box-shadow:var(--shadow-md)}
.card .muted{font-size:.82rem}
details{margin-top:10px;border:1.5px dashed var(--line);border-radius:var(--r-sm);padding:9px 13px;background:var(--line-2)}
summary{cursor:pointer;font-weight:650;color:var(--olive)}
.addform{padding-top:10px}
.rs-hint{margin:.4rem 0 .2rem;font-size:.82rem}
button.rs-add{margin-top:6px}
@keyframes attn{0%{box-shadow:0 0 0 0 rgba(227,184,44,.75)}100%{box-shadow:0 0 0 12px rgba(227,184,44,0)}}
button.attn{animation:attn .9s ease-out 2}
.row{display:flex;gap:10px}
.row .field{flex:1}
@media (max-width:420px){ .row{flex-direction:column;gap:0} }

/* ---- uploads ---- */
.upload{display:flex;flex-direction:column;gap:5px;margin:11px 0;font-size:.85rem;color:var(--muted)}
.upload>span:first-child{font-weight:600}
.upload input[type=file]{font-size:.9rem;color:var(--ink)}
.upload input[type=file]::file-selector-button{margin-right:10px;border:1px solid var(--line);
  background:#eceee4;color:var(--olive);padding:8px 12px;border-radius:8px;font-weight:600;cursor:pointer}
.upload .status{color:var(--ok);font-weight:650;display:inline-flex;align-items:center;gap:5px}

.summary{list-style:none;padding:0;margin:.4rem 0}
.summary li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.prompts{padding-left:20px;margin:.5rem 0}
.prompts li{margin:7px 0}

/* ---- likert ---- */
.likert{border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;margin:11px 0;box-shadow:var(--shadow-sm)}
.likert-q{font-weight:650;margin-bottom:11px}
.likert-opts{display:flex;justify-content:space-between;gap:6px}
.likert-opt{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;
  border:1.5px solid var(--line);border-radius:var(--r-sm);padding:11px 4px;cursor:pointer;
  font-weight:650;color:var(--olive);transition:background .15s,border-color .15s}
.likert-opt:hover{border-color:var(--olive-2)}
.likert-opt input{margin:0;accent-color:var(--olive)}
.likert-opt:has(input:checked){background:#f0f2e8;border-color:var(--olive)}
.likert-ends{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-top:6px}

/* ---- spinner ---- */
.spin{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--olive);
  border-radius:50%;animation:sp .7s linear infinite;margin:20px auto}
@keyframes sp{to{transform:rotate(360deg)}}

/* ---- footer ---- */
.footer{max-width:600px;margin:10px auto 32px;padding:0 18px;text-align:center}
.footer .disclaimer{font-size:.72rem;color:#9aa08c;line-height:1.55;margin-bottom:8px}
.footer .poweredby{font-size:.72rem;color:#a7ad99;letter-spacing:.03em}
.footer .poweredby b{color:var(--olive-2)}
.footer .ver{color:#b4b9a7}
