/* LESWAN ERP — fondasi tipografi & token warna (dipakai admin + toko) */
@font-face{font-family:"Fraunces";font-weight:400;font-display:swap;src:url(../fonts/fraunces-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-weight:600;font-display:swap;src:url(../fonts/fraunces-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-weight:700;font-display:swap;src:url(../fonts/fraunces-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-weight:400;font-display:swap;src:url(../fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-weight:500;font-display:swap;src:url(../fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-weight:600;font-display:swap;src:url(../fonts/hanken-grotesk-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-weight:700;font-display:swap;src:url(../fonts/hanken-grotesk-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Space Mono";font-weight:400;font-display:swap;src:url(../fonts/space-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Space Mono";font-weight:700;font-display:swap;src:url(../fonts/space-mono-latin-700-normal.woff2) format("woff2")}

:root{
  --cognac:#9A4E1C; --cognac-2:#B5652C; --amber:#C98A2E; --brown:#2B1C14; --brown-2:#3E2A1E;
  --cream:#F6EFE4; --cream-2:#EFE4D3; --paper:#FFFCF7; --line:#E3D5C0; --ink:#2B1C14; --ink-2:#6B5646; --ink-3:#9A8674;
  --ok:#2F7A4B; --ok-bg:#E3F1E7; --warn:#A5660F; --warn-bg:#FBEBCF; --bad:#A63A2A; --bad-bg:#F8E0DA; --info:#2E5E8C; --info-bg:#DFEAF5; --muted-bg:#EEE7DC;
  --serif:"Fraunces",Georgia,serif; --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"Space Mono",ui-monospace,Menlo,monospace;
  --r:10px; --r-lg:16px; --shadow:0 1px 2px rgba(43,28,20,.06),0 6px 20px rgba(43,28,20,.06);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--ink);background:var(--cream)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0 0 .5em;color:var(--brown)}
a{color:var(--cognac);text-decoration:none} a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.mono,code{font-family:var(--mono);font-size:.92em}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.muted{color:var(--ink-3)} .small{font-size:.86em} .right{text-align:right} .center{text-align:center}
.hidden{display:none!important}

/* tombol */
.btn{display:inline-flex;align-items:center;gap:.45em;justify-content:center;padding:.6em 1.05em;border-radius:999px;border:1px solid transparent;
  font:600 14px/1.1 var(--sans);cursor:pointer;background:var(--cognac);color:#fff;text-decoration:none;transition:.15s;white-space:nowrap}
.btn:hover{background:var(--cognac-2);text-decoration:none}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--brown)} .btn-ghost:hover{background:var(--cream-2)}
.btn-dark{background:var(--brown)} .btn-dark:hover{background:var(--brown-2)}
.btn-danger{background:var(--bad)} .btn-ok{background:var(--ok)}
.btn-sm{padding:.4em .75em;font-size:13px} .btn-block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* form */
label{display:block;font-weight:600;font-size:13px;color:var(--ink-2);margin:0 0 .3em}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],input[type=tel],input[type=url],input[type=month],select,textarea{
  width:100%;padding:.62em .8em;border:1px solid var(--line);border-radius:8px;background:#fff;font:15px var(--sans);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(201,138,46,.45);border-color:var(--amber)}
textarea{min-height:90px;resize:vertical}
.field{margin-bottom:14px}
.check{display:flex;gap:.5em;align-items:center;font-weight:500;color:var(--ink)}
.check input{width:auto}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* badge & alert */
.badge{display:inline-block;padding:.18em .6em;border-radius:999px;font:600 12px/1.5 var(--sans);white-space:nowrap}
.badge-ok{background:var(--ok-bg);color:var(--ok)} .badge-warn{background:var(--warn-bg);color:var(--warn)}
.badge-bad{background:var(--bad-bg);color:var(--bad)} .badge-info{background:var(--info-bg);color:var(--info)} .badge-muted{background:var(--muted-bg);color:var(--ink-2)}
.alert{padding:.8em 1em;border-radius:var(--r);margin-bottom:16px;border:1px solid transparent}
.alert-ok{background:var(--ok-bg);color:var(--ok);border-color:#c5e2cf} .alert-bad{background:var(--bad-bg);color:var(--bad);border-color:#efc5bb}
.alert-warn{background:var(--warn-bg);color:var(--warn);border-color:#f0d6a6} .alert-info{background:var(--info-bg);color:var(--info)}

/* tabel */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
table{width:100%;border-collapse:collapse}
th,td{padding:.65em .8em;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);background:var(--cream-2);white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#fbf6ee}
tfoot td{font-weight:700;background:var(--cream-2)}
/* utilitas (pengganti atribut style inline — dilarang oleh CSP) */
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:12px}
.span-2{grid-column:span 2}.between{justify-content:space-between}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1}
.w-sm{max-width:140px}.w-md{max-width:260px}.w-lg{max-width:640px}.nowrap{white-space:nowrap}.fw{font-weight:700}
