/* Kobotapng shared foundation: tokens (light + dark), logo, buttons, chips, forms. Used by the app and the admin panel. */
:root{
  --bg:#F3EEDD; --card:#FBF8EE; --card2:#EEE8D5; --ink:#14261F; --muted:#5D6862;
  --green:#17392B; --green-2:#21503B; --gold:#D4A03A; --gold-ink:#8A6414; --clay:#A8443E; --ok:#2F6B4F;
  --line:rgba(20,38,31,.13); --shadow:0 1px 2px rgba(20,38,31,.06),0 10px 28px rgba(20,38,31,.07);
  --side:#12291F; --on-dark:#F6F1E2; --btn:#17392B; --btn-ink:#F6F1E2; --input:#FFFDF6; --logo-bg:#17392B;
  /* legacy names used by admin.css */
  --paper:var(--bg); --paper2:var(--card2); --ink-soft:var(--muted); --gold-deep:var(--gold-ink); --green-old:var(--ok);
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#0D1712; --card:#15231D; --card2:#1B2D25; --ink:#EDE8D6; --muted:#A3AFA6;
  --green:#2E7454; --green-2:#3A8C66; --gold:#E0AE45; --gold-ink:#E8BC5C; --clay:#DE8F89; --ok:#7CC49F;
  --line:rgba(237,232,214,.14); --shadow:0 1px 2px rgba(0,0,0,.35),0 10px 28px rgba(0,0,0,.28);
  --side:#09120E; --on-dark:#F6F1E2; --btn:#2E7454; --btn-ink:#FFFFFF; --input:#101C17; --logo-bg:#2E7454;
  color-scheme:dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme]){
    --bg:#0D1712; --card:#15231D; --card2:#1B2D25; --ink:#EDE8D6; --muted:#A3AFA6;
    --green:#2E7454; --green-2:#3A8C66; --gold:#E0AE45; --gold-ink:#E8BC5C; --clay:#DE8F89; --ok:#7CC49F;
    --line:rgba(237,232,214,.14); --shadow:0 1px 2px rgba(0,0,0,.35),0 10px 28px rgba(0,0,0,.28);
    --side:#09120E; --btn:#2E7454; --btn-ink:#FFFFFF; --input:#101C17; --logo-bg:#2E7454;
    color-scheme:dark;
  }
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif; font-size:15px; line-height:1.45;
  -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent;
}
[hidden]{display:none !important;}
a{color:var(--gold-ink);}
h1,h2,h3{font-family:'Source Serif 4', Georgia, serif; font-weight:600; letter-spacing:-.01em; margin:0;}
code{background:var(--card2); padding:1px 6px; border-radius:4px; font-size:.88em; word-break:break-all;}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
@media (prefers-reduced-motion:reduce){*{transition:none !important; animation:none !important;}}

/* logo */
.logo{display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
.logo svg{width:32px; height:32px; flex:none;}
.logo .logo-word{font-family:'Plus Jakarta Sans','Inter',sans-serif; font-weight:800; font-size:1.3rem; letter-spacing:-.02em; color:var(--ink);}
.logo.on-dark .logo-word{color:var(--on-dark);}
.logo small{font-family:'Inter',sans-serif; font-size:.62rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-left:2px; align-self:flex-end; padding-bottom:3px;}
.logo .lg-outer{fill:var(--logo-bg);} .logo .lg-inner{fill:#D4A03A;}
.logo.on-dark .lg-outer{fill:#F6F1E2;} .logo.on-dark .lg-inner{fill:#B8862A;}
.logo.on-dark small{color:rgba(246,241,226,.6);}

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:1px solid var(--line); background:var(--card); color:var(--ink);
  padding:10px 16px; border-radius:9px; font-family:inherit; font-size:.9rem; font-weight:600;
  cursor:pointer; white-space:nowrap; text-decoration:none; line-height:1.2; transition:background .15s, border-color .15s, transform .05s;
}
.btn:hover:not(:disabled){border-color:var(--ink);}
.btn:active:not(:disabled){transform:translateY(1px);}
.btn:disabled{cursor:not-allowed; opacity:.5;}
.btn.gold,.btn.primary{background:var(--btn); border-color:var(--btn); color:var(--btn-ink);}
.btn.gold:hover:not(:disabled),.btn.primary:hover:not(:disabled){background:var(--green-2); border-color:var(--green-2);}
.btn.block{width:100%;}
.btn.sm{padding:6px 11px; font-size:.78rem; border-radius:7px;}
.btn.danger{color:var(--clay); border-color:var(--clay); background:transparent;}
.btn.danger:hover:not(:disabled){background:var(--clay); color:#fff;}
.btn svg{width:16px; height:16px; flex:none;}
.icon-btn{
  width:38px; height:38px; display:inline-grid; place-items:center; border-radius:10px; border:1px solid var(--line);
  background:var(--card); color:var(--ink); cursor:pointer; padding:0;
}
.icon-btn:hover{border-color:var(--ink);}
.icon-btn svg{width:18px; height:18px;}
.icon-btn .i-sun{display:none;}
:root[data-theme="dark"] .icon-btn .i-sun{display:block;}
:root[data-theme="dark"] .icon-btn .i-moon{display:none;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme]) .icon-btn .i-sun{display:block;}
  :root:not([data-theme]) .icon-btn .i-moon{display:none;}
}

/* chips */
.chip{display:inline-block; padding:2px 10px; border-radius:20px; font-size:.72rem; font-weight:700; border:1px solid var(--line); white-space:nowrap; letter-spacing:.01em;}
.chip.ok{color:var(--ok); border-color:var(--ok);}
.chip.wait{color:var(--gold-ink); border-color:var(--gold-ink);}
.chip.bad{color:var(--clay); border-color:var(--clay);}

/* forms */
label.lbl{display:block; font-size:.78rem; font-weight:600; color:var(--muted); margin:0 0 5px;}
.field{position:relative; margin-bottom:12px;}
.field > svg{position:absolute; left:13px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--muted); pointer-events:none;}
.field input,.field select,.input{
  width:100%; padding:12px 13px 12px 42px; border:1px solid var(--line); border-radius:10px;
  background:var(--input); color:var(--ink); font-family:inherit; font-size:.95rem; appearance:none; -webkit-appearance:none;
}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237b857e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:36px;}
.field.plain input,.field.plain select{padding-left:13px;}
.field input::placeholder{color:var(--muted); opacity:.75;}
.field input:focus,.field select:focus{border-color:var(--green-2); outline:none; box-shadow:0 0 0 3px rgba(212,160,58,.25);}
.err{color:var(--clay); font-size:.85rem; margin:0 0 12px; min-height:1.1em;}
.section-note{color:var(--muted); font-size:.9rem; margin:0 0 16px; line-height:1.5;}
