/* PrintMaster Pro - style.css */
* { margin:0; padding:0; box-sizing:border-box; font-family:'Segoe UI',system-ui,sans-serif; }
:root {
  --primary:#667eea; --primary-2:#764ba2; --bg:#f4f6ff; --card:#fff; --text:#222;
  --muted:#666; --border:#e0e4ff; --danger:#ff4757; --success:#4caf50; --warn:#ff9800;
}
[data-theme="dark"] {
  --bg:#111827; --card:#1f2937; --text:#f1f5f9; --muted:#94a3b8; --border:#374151;
}
body { background:var(--bg); color:var(--text); min-height:100vh; transition:background .3s,color .3s; }
.hidden { display:none !important; }

.topbar {
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff; padding:15px 25px; display:flex; align-items:center; gap:20px;
  box-shadow:0 3px 12px rgba(0,0,0,.15); position:sticky; top:0; z-index:100; flex-wrap:wrap;
}
.brand { font-size:1.4em; font-weight:800; letter-spacing:.5px; }
.brand small { opacity:.7; font-size:.6em; font-weight:400; }
.topnav { display:flex; gap:6px; flex-wrap:wrap; flex:1; }
.tnav {
  background:rgba(255,255,255,.15); border:none; color:#fff; padding:10px 16px;
  border-radius:10px; cursor:pointer; font-weight:600; font-size:.92em; transition:all .2s; white-space:nowrap;
}
.tnav:hover { background:rgba(255,255,255,.3); }
.tnav.active { background:#fff; color:var(--primary-2); }
.top-actions button {
  background:rgba(255,255,255,.15); border:none; color:#fff; font-size:1.4em;
  width:42px; height:42px; border-radius:10px; cursor:pointer; transition:.2s;
}
.top-actions button:hover { background:rgba(255,255,255,.3); }

main { padding:20px; max-width:1400px; margin:0 auto; }
.tab { display:none; animation:fade .3s; }
.tab.active { display:block; }
@keyframes fade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
h2 { margin-bottom:18px; }
h3 { margin:18px 0 10px; }

.panel {
  background:var(--card); border-radius:16px; padding:22px;
  box-shadow:0 2px 10px rgba(0,0,0,.06); margin-bottom:16px;
}
.kasir-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:16px; }
@media (max-width:900px) { .kasir-grid { grid-template-columns:1fr; } }

.tabs-inner { display:flex; gap:8px; margin-bottom:14px; }
.tabs-inner.main-tabs { margin-bottom:20px; }
.tin {
  flex:1; padding:12px; border:2px solid var(--border); background:var(--card);
  color:var(--text); border-radius:10px; cursor:pointer; font-weight:600; transition:.2s;
}
.tin.active { background:var(--primary); color:#fff; border-color:var(--primary); }

/* Galeri Paket */
.galeri-paket {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px;
}
.paket-card {
  background:var(--bg); border:2px solid var(--border); border-radius:14px;
  overflow:hidden; cursor:pointer; transition:.2s; position:relative;
}
.paket-card:hover { border-color:var(--primary); transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(102,126,234,.25); }
.paket-card .img-wrap {
  width:100%; aspect-ratio:1/1; background:linear-gradient(135deg,#e0e7ff,#c7d2fe);
  display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
}
.paket-card .img-wrap img { width:100%; height:100%; object-fit:contain; padding:8px; }
.paket-card .img-wrap .placeholder { font-size:3em; opacity:.5; }
.paket-card .img-wrap .foto-badge {
  position:absolute; top:8px; left:8px; background:rgba(0,0,0,.7); color:#fff;
  padding:4px 10px; border-radius:20px; font-size:.75em; font-weight:700;
}
.paket-card .info { padding:12px; }
.paket-card .info .nama { font-weight:700; font-size:1em; margin-bottom:4px; }
.paket-card .info .meta { font-size:.82em; color:var(--muted); margin-bottom:6px; }
.paket-card .info .harga { color:var(--primary-2); font-weight:800; font-size:1.1em; }

/* Fotokopi */
.harga-info {
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px;
}
.harga-info .hi {
  background:var(--bg); border:2px solid var(--border); border-radius:10px;
  padding:10px; text-align:center;
}
.harga-info .hi .label { font-size:.8em; color:var(--muted); }
.harga-info .hi .val { font-weight:800; color:var(--primary-2); margin-top:4px; }

.form-row { display:grid; grid-template-columns:1fr 1.4fr; gap:12px; align-items:center; margin-bottom:12px; }
.form-row label { font-weight:600; color:var(--muted); font-size:.95em; }
.form-row input, .form-row select {
  padding:10px 12px; border:2px solid var(--border); border-radius:10px;
  background:var(--card); color:var(--text); font-size:1em; transition:.2s; width:100%;
}
.form-row input:focus, .form-row select:focus { outline:none; border-color:var(--primary); }

.qty { display:flex; gap:6px; align-items:center; }
.qty input { flex:1; text-align:center; }
.qbtn {
  width:42px; height:42px; border:none; background:var(--primary); color:#fff;
  border-radius:10px; font-size:1.2em; cursor:pointer; font-weight:700; transition:.2s;
}
.qbtn:hover { background:var(--primary-2); }

.btn-primary, .btn-secondary, .btn-danger {
  padding:12px 20px; border:none; border-radius:12px; font-weight:700;
  cursor:pointer; font-size:1em; transition:.2s; margin-top:8px;
}
.btn-primary { background:linear-gradient(135deg,var(--primary),var(--primary-2)); color:#fff; width:100%; }
.btn-primary:hover { transform:translateY(-1px); box-shadow:0 6px 16px rgba(102,126,234,.4); }
.btn-secondary { background:var(--border); color:var(--text); }
.btn-secondary:hover { background:var(--primary); color:#fff; }
.btn-danger { background:var(--danger); color:#fff; width:100%; }
.btn-danger:hover { background:#d63031; }

.keranjang { min-height:120px; margin-bottom:16px; }
.keranjang .empty { color:var(--muted); text-align:center; padding:30px; }
.k-item {
  display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center;
  padding:10px; background:var(--bg); border-radius:10px; margin-bottom:8px;
}
.k-item .knama { font-weight:600; font-size:.9em; }
.k-item .kdetail { font-size:.75em; color:var(--muted); margin-top:2px; }
.k-item .kqty { display:flex; gap:5px; align-items:center; }
.k-item .kqty button {
  width:28px; height:28px; border:none; background:var(--primary); color:#fff;
  border-radius:6px; cursor:pointer; font-weight:700;
}
.k-item .kqty span { min-width:26px; text-align:center; }
.k-item .khapus {
  background:var(--danger); border:none; color:#fff; width:28px; height:28px;
  border-radius:6px; cursor:pointer; font-weight:700;
}

.summary {
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff; padding:16px; border-radius:12px; margin:16px 0;
}
.summary-row { display:flex; justify-content:space-between; padding:6px 0; font-size:.95em; }
.summary-row.total {
  font-size:1.25em; font-weight:800; padding-top:10px; margin-top:6px;
  border-top:2px solid rgba(255,255,255,.35);
}

.bayar-row { margin:12px 0; }
.kembalian {
  background:var(--success); color:#fff; padding:10px 14px; border-radius:10px;
  font-weight:700; text-align:center; margin-top:6px;
}
.kembalian.minus { background:var(--danger); }

.metode { display:flex; gap:15px; margin:12px 0; flex-wrap:wrap; }
.metode label { cursor:pointer; display:flex; align-items:center; gap:6px; font-weight:600; }
.aksi-row { display:grid; grid-template-columns:1fr 2fr; gap:10px; }
.customer-form { border-top:1px dashed var(--border); padding-top:14px; margin-top:14px; }
.customer-form h3 { margin-top:0; font-size:1em; color:var(--muted); }

.info-box {
  background:rgba(102,126,234,.1); border-left:4px solid var(--primary);
  padding:14px; border-radius:10px; margin-top:16px; color:var(--text);
}
.hint { color:var(--muted); font-size:.9em; margin-bottom:12px; }

.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; margin-bottom:16px; }
.stat-card {
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff; padding:20px; border-radius:14px;
}
.stat-card h3 { color:rgba(255,255,255,.9); font-size:.9em; margin:0 0 8px; }
.stat-card .val { font-size:1.8em; font-weight:800; }

.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th, td { padding:10px; text-align:left; border-bottom:1px solid var(--border); font-size:.9em; }
th { background:var(--bg); font-weight:700; color:var(--muted); }

.modal {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:999;
  align-items:center; justify-content:center; padding:20px;
}
.modal.active { display:flex; }
.modal-box {
  background:var(--card); border-radius:16px; padding:24px; max-width:550px;
  width:100%; max-height:90vh; overflow-y:auto;
}
.modal-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }

.struk { font-family:'Courier New',monospace; }
.struk h3 { text-align:center; margin:0 0 4px; }
.struk .center { text-align:center; font-size:.85em; color:var(--muted); }
.struk hr { border:none; border-top:1px dashed var(--border); margin:10px 0; }
.struk .row { display:flex; justify-content:space-between; font-size:.9em; padding:2px 0; }
.struk .total-row { font-weight:800; font-size:1.1em; }

.toast {
  position:fixed; bottom:24px; right:24px; background:var(--success); color:#fff;
  padding:14px 22px; border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,.3);
  transform:translateY(200%); transition:transform .3s; z-index:9999; font-weight:700;
}
.toast.show { transform:translateY(0); }
.toast.error { background:var(--danger); }

#chart7 { width:100%; display:block; }

.admin-item {
  background:var(--bg); border:2px solid var(--border); border-radius:10px;
  padding:12px; margin-bottom:10px; display:flex; justify-content:space-between;
  align-items:center; gap:10px; flex-wrap:wrap;
}
.admin-item .info { flex:1; min-width:180px; }
.admin-item .info .nama { font-weight:700; }
.admin-item .info .meta { font-size:.8em; color:var(--muted); }
.admin-item .actions { display:flex; gap:6px; }
.admin-item .actions button {
  padding:6px 12px; border:none; border-radius:6px; cursor:pointer; font-weight:600; font-size:.85em;
}
.admin-item .actions .edit { background:var(--primary); color:#fff; }
.admin-item .actions .hapus { background:var(--danger); color:#fff; }
.admin-item .actions .toggle { background:var(--warn); color:#fff; }

@media print {
  .topbar, .topnav, .top-actions, .tab, .modal-actions { display:none !important; }
  body { background:#fff !important; }
  .modal.active { display:block !important; position:static !important; background:#fff !important; }
  .modal-box { box-shadow:none; max-width:100%; }
}

@media (max-width:768px) {
  .topbar { padding:10px 15px; }
  .brand { font-size:1.1em; }
  .tnav { padding:8px 12px; font-size:.85em; }
  main { padding:12px; }
  .panel { padding:16px; }
  .form-row { grid-template-columns:1fr; gap:6px; }
  .aksi-row { grid-template-columns:1fr; }
  .harga-info { grid-template-columns:1fr; }
  .toast { right:12px; bottom:12px; left:12px; text-align:center; }
}