:root{
  --bg: #e8dfc8;
  --bg-deep: #ddd0af;
  --paper: #fbf7ee;
  --ink: #3a2418;
  --ink-soft: #6f5c48;
  --line: #c9b998;
  --gold: #c99a2e;
  --gold-deep: #a67d1f;
  --raspberry: #b23a56;
  --raspberry-deep: #8f2c43;
  --pistachio: #6f8c56;
  --pistachio-deep: #566c42;
  --shadow: 0 6px 16px rgba(58,36,24,0.14);
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:
    radial-gradient(circle at 1px 1px, rgba(58,36,24,0.06) 1px, transparent 0) 0 0/22px 22px,
    var(--bg);
  color:var(--ink);
  font-family:'Public Sans', sans-serif;
  padding:32px 20px 64px;
  min-height:100vh;
}
.wrap{max-width:960px;margin:0 auto;}

header.top{
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  margin-bottom:28px; flex-wrap:wrap;
}
.brand-eyebrow{
  font-family:'JetBrains Mono', monospace; font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-soft); margin:0 0 4px;
}
h1{
  font-family:'Fraunces', serif; font-weight:600; font-size:34px; margin:0;
  color:var(--ink); line-height:1.05;
}
.top-right{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.today-pill{
  font-family:'JetBrains Mono', monospace; font-size:13px; color:var(--ink-soft);
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  padding:6px 14px;
}
.user-pill{
  font-family:'JetBrains Mono', monospace; font-size:12.5px; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  padding:6px 14px; display:flex; align-items:center; gap:10px;
}
.user-pill a{color:var(--raspberry-deep); text-decoration:none; font-weight:600;}
.user-pill a:hover{text-decoration:underline;}

/* --- stamp / receipt hero --- */
.stamp-row{display:flex; gap:20px; flex-wrap:wrap; margin-bottom:34px;}
.stamp-card{
  position:relative; flex:1 1 280px;
  background:var(--gold); color:var(--paper);
  padding:22px 24px 30px; border-radius:6px 6px 0 0;
  transform:rotate(-1.4deg);
  box-shadow:var(--shadow);
}
.stamp-card::after{
  content:""; position:absolute; left:0; right:0; bottom:-11px; height:11px;
  background:
    linear-gradient(-45deg, var(--bg) 8px, transparent 0),
    linear-gradient(45deg, var(--bg) 8px, transparent 0);
  background-size:16px 16px; background-position:left bottom; background-repeat:repeat-x;
}
.stamp-label{
  font-family:'JetBrains Mono', monospace; font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; opacity:.85; margin:0 0 6px;
}
.stamp-amount{
  font-family:'JetBrains Mono', monospace; font-weight:700; font-size:40px;
  margin:0; letter-spacing:-.01em;
}
.stamp-sub{font-size:12.5px; opacity:.85; margin-top:8px;}

.mini-cards{display:flex; gap:14px; flex:1 1 340px; flex-wrap:wrap;}
.mini{
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:14px 16px; flex:1 1 140px; box-shadow:var(--shadow);
}
.mini .lbl{font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); margin:0 0 6px;}
.mini .val{font-family:'JetBrains Mono',monospace; font-weight:700; font-size:19px; margin:0;}
.mini.pos .val{color:var(--pistachio-deep);}
.mini.neg .val{color:var(--raspberry-deep);}

/* --- form ticket --- */
section{margin-bottom:34px;}
.section-title{
  font-family:'Fraunces', serif; font-weight:600; font-size:20px; margin:0 0 14px;
  display:flex; align-items:baseline; gap:10px;
}
.section-title small{
  font-family:'JetBrains Mono',monospace; font-weight:400; font-size:11.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.08em;
}

.ticket{
  background:var(--paper); border:1px solid var(--line); border-radius:10px;
  padding:22px; box-shadow:var(--shadow);
}
.field-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(140px,1fr)); gap:14px; margin-bottom:14px;
}
label{display:block; font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-soft); margin-bottom:6px;}
input[type=date], input[type=number], input[type=text], input[type=password]{
  width:100%; border:1px solid var(--line); background:#fffdf8; border-radius:6px;
  padding:9px 10px; font-family:'Public Sans',sans-serif; font-size:14.5px; color:var(--ink);
}
input[type=number]{font-family:'JetBrains Mono',monospace;}
input:focus{outline:2px solid var(--gold); outline-offset:1px;}

.form-actions{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
button{
  font-family:'Public Sans',sans-serif; font-weight:600; font-size:14px;
  border:none; border-radius:6px; padding:10px 18px; cursor:pointer;
  transition:transform .08s ease;
}
button:active{transform:scale(.97);}
.btn-primary{background:var(--ink); color:var(--paper);}
.btn-primary:hover{background:#2a170e;}
.btn-ghost{background:transparent; color:var(--ink-soft); border:1px solid var(--line);}
.btn-ghost:hover{background:var(--paper);}
.btn-danger-text{background:none; color:var(--raspberry-deep); padding:4px 8px; font-size:12.5px; text-decoration:underline;}

.aksam-box{
  background:rgba(201,154,46,0.1); border:1px dashed var(--gold-deep); border-radius:8px;
  padding:14px 16px; margin-bottom:16px;
}
.aksam-box input{max-width:220px;}

.opening-row{
  display:flex; align-items:center; gap:10px; margin-top:16px; padding-top:14px;
  border-top:1px dashed var(--line); flex-wrap:wrap;
}
.opening-row label{margin:0;}
.opening-row input{width:150px;}

/* --- ledger table --- */
.ledger-wrap{background:var(--paper); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); overflow-x:auto;}
table{width:100%; min-width:720px; border-collapse:collapse; font-size:13.5px;}
thead th{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--ink-soft); text-align:right; padding:12px 14px; border-bottom:1px solid var(--line);
  background:var(--bg-deep);
}
thead th:first-child{text-align:left;}
tbody td{padding:10px 14px; border-bottom:1px solid var(--line); text-align:right; font-family:'JetBrains Mono',monospace;}
tbody td:first-child{text-align:left; font-family:'Public Sans',sans-serif;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:rgba(201,154,46,0.08);}
td.kasa-cell{font-weight:700; color:var(--gold-deep);}
td.gider-cell{color:var(--raspberry-deep);}
td.muted{color:var(--ink-soft);}
.row-actions{display:flex; gap:8px; justify-content:flex-end;}
.row-actions button{padding:4px 9px; font-size:12px;}
.empty-state{padding:36px 20px; text-align:center; color:var(--ink-soft); font-size:14px;}

.chart-card{background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:20px; box-shadow:var(--shadow);}
.chart-holder{position:relative; height:320px;}

.note{font-size:12.5px; color:var(--ink-soft); margin-top:10px; line-height:1.5;}
.note code{font-family:'JetBrains Mono',monospace; background:var(--bg-deep); padding:1px 5px; border-radius:3px;}

/* --- login screen --- */
.login-wrap{max-width:380px; margin:12vh auto 0;}
.login-card{
  background:var(--paper); border:1px solid var(--line); border-radius:10px;
  padding:32px 28px; box-shadow:var(--shadow);
}
.login-card h1{font-size:26px; margin-bottom:6px;}
.login-card p.sub{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink-soft); margin:0 0 22px; text-transform:uppercase; letter-spacing:.1em;}
.login-error{
  background:rgba(178,58,86,0.1); border:1px solid var(--raspberry); color:var(--raspberry-deep);
  border-radius:6px; padding:10px 12px; font-size:13px; margin-bottom:16px;
}
.login-card .form-actions{margin-top:18px;}
.login-card button{width:100%;}

@media (max-width:560px){
  h1{font-size:26px;}
  .stamp-amount{font-size:32px;}
  thead th, tbody td{padding:8px 8px; font-size:12px;}
}
