/* KodaBarn design tokens + shared admin/app shell. Palette E, Roboto, flat, no serif, no texture. */
@font-face{font-family:Roboto;font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/Roboto-Regular.ttf) format("truetype")}
@font-face{font-family:Roboto;font-weight:500 700;font-style:normal;font-display:swap;src:url(/assets/fonts/Roboto-Bold.ttf) format("truetype")}
:root{
  --kb-red:#9B3D2B; --kb-red-dark:#7F3022;
  --kb-cream:#F4ECDC; --kb-espresso:#2B211C; --kb-slate:#6F8796;
  --kb-meadow:#3F6B2E; --kb-hay:#E3D08A; --kb-sage:#A9B98F;
  --kb-ink:#2B211C; --kb-muted:#6b5e55; --kb-card:#FBF7EE;
  --kb-topbar:56px; --kb-side:224px;
  --kb-font:Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--kb-font);font-size:16px;line-height:1.5;color:var(--kb-ink);background:var(--kb-cream)}
a{color:var(--kb-red)}
h1,h2,h3{font-weight:700;line-height:1.2;margin:0 0 .5em}
h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1rem}
.muted{color:var(--kb-muted)}

/* shell */
.kb-top{position:fixed;inset:0 0 auto 0;height:var(--kb-topbar);background:var(--kb-espresso);border-bottom:3px solid #000;color:var(--kb-cream);display:flex;align-items:center;gap:14px;padding:0 16px;z-index:20}
.kb-brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.2px;color:var(--kb-cream);text-decoration:none}
.kb-brand img,.kb-brand svg{width:30px;height:30px}
.kb-brand .logo-on-dark{background:var(--kb-cream);border-radius:6px;padding:3px}
.kb-barn{color:var(--kb-sage);font-size:.95rem;border-left:1px solid #54463e;padding-left:14px}
.kb-spacer{flex:1}
.kb-icon-btn{background:none;border:0;color:var(--kb-cream);padding:8px;border-radius:6px;cursor:pointer;display:flex;position:relative}
.kb-icon-btn:hover{background:#3a2e27}
.kb-icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kb-user{display:flex;align-items:center;gap:10px;font-size:.92rem}
.kb-avatar{width:30px;height:30px;border-radius:50%;background:var(--kb-red);display:grid;place-items:center;font-weight:700;font-size:.85rem}
.kb-side{position:fixed;top:var(--kb-topbar);bottom:0;left:0;width:var(--kb-side);background:var(--kb-espresso);padding:14px 0;overflow:auto;z-index:10}
.kb-nav{list-style:none;margin:0;padding:0}
.kb-nav a{display:flex;align-items:center;gap:12px;padding:11px 20px;color:#e7dccb;text-decoration:none;font-weight:500;border-left:4px solid transparent}
.kb-nav a:hover{background:#3a2e27}
.kb-nav a.active{background:var(--kb-red);color:#fff;border-left-color:var(--kb-red)}
.kb-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.kb-main{margin:var(--kb-topbar) 0 0 var(--kb-side);padding:28px;min-height:calc(100vh - var(--kb-topbar))}
.kb-wrap{max-width:1000px}

/* components */
.kb-card{background:var(--kb-card);border:1px solid var(--kb-sage);border-radius:6px;padding:18px 20px;margin-bottom:18px}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.kb-stat{font-size:2rem;font-weight:700}
.kb-btn{display:inline-block;border:0;border-radius:6px;background:var(--kb-red);color:#fff;font:500 1rem var(--kb-font);padding:11px 20px;cursor:pointer;text-decoration:none;text-align:center}
.kb-btn:hover{background:var(--kb-red-dark)}
.kb-btn.secondary{background:var(--kb-slate)}.kb-btn.secondary:hover{background:#5c7381}
.kb-btn.block{display:block;width:100%}
.kb-btn.ghost{background:none;color:var(--kb-ink);border:1px solid var(--kb-sage)}
.kb-badge{display:inline-block;background:var(--kb-hay);color:var(--kb-espresso);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:500}
.kb-badge.ok{background:var(--kb-meadow);color:#fff}
.kb-table{width:100%;border-collapse:collapse}
.kb-table th,.kb-table td{text-align:left;padding:10px 8px;border-bottom:1px solid #d9ceb6}
.kb-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--kb-muted)}
label{display:block;font-weight:500;margin:0 0 6px}
input[type=text],input[type=email],input[type=password],input[type=search],select{width:100%;font:1rem var(--kb-font);padding:11px 12px;border:1px solid var(--kb-sage);border-radius:6px;background:#fff;color:var(--kb-ink)}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--kb-slate);outline-offset:2px}
.kb-field{margin-bottom:16px}
.kb-error{color:var(--kb-red);font-size:.9rem;margin:.4rem 0}
.kb-notice{background:#efe7cf;border:1px solid var(--kb-hay);border-radius:6px;padding:10px 12px;margin-bottom:16px;font-size:.95rem}

/* centered auth screens */
.kb-auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--kb-cream)}
.kb-auth-card{width:100%;max-width:400px;background:var(--kb-card);border:1px solid var(--kb-sage);border-radius:8px;padding:28px 26px}
.kb-auth-card .kb-brand{color:var(--kb-espresso);margin-bottom:6px}
.kb-auth-bar{height:3px;background:var(--kb-slate);margin:-28px -26px 22px;border-radius:8px 8px 0 0}
.kb-picker{list-style:none;margin:0 0 4px;padding:0}
.kb-picker button{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px;margin-bottom:10px;border:1px solid var(--kb-sage);border-radius:6px;background:#fff;font:500 1rem var(--kb-font);color:var(--kb-ink);cursor:pointer}
.kb-picker button:hover{border-color:var(--kb-red)}

/* phone: sidebar becomes a bottom tab bar */
.kb-tabs-label{display:none}
@media (max-width:800px){
  .kb-side{top:auto;bottom:0;left:0;right:0;width:auto;height:62px;padding:0;border-top:3px solid var(--kb-slate);overflow:hidden}
  .kb-nav{display:flex;height:100%}
  .kb-nav li{flex:1;min-width:0}
  .kb-nav a{flex-direction:column;justify-content:center;gap:2px;padding:6px 2px;font-size:.68rem;border-left:0;height:100%;text-align:center}
  .kb-nav a.active{border-left:0}
  .kb-main{margin-left:0;padding:18px 16px 84px}
  .kb-barn{display:none}.kb-user .kb-uname{display:none}
  h1{font-size:1.35rem}
}
