:root{
  --bg: #FFFFFF;
  --surface: #F5F6F8;
  --border: #E2E5EA;
  --ink: #14181F;
  --ink-soft: #667085;
  --brand: #E14434;       /* toner-red — the one accent color, used sparingly */
  --brand-dark: #C4321F;
  --amber: #B8790A;
  --ok: #16794F;
  --shadow: 0 1px 2px rgba(20,24,31,0.04), 0 8px 24px -14px rgba(20,24,31,0.18);
}
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background: var(--bg);
  color: var(--ink);
  font-family:'Inter', sans-serif;
  min-height:100vh;
  padding: 24px 14px 0;
  position:relative;
}
body::before{
  content:""; position:fixed; top:0; left:0; right:0; height:4px;
  background: linear-gradient(90deg, var(--brand), var(--brand-dark));
  z-index:10;
}
.wrap{ max-width:480px; margin:0 auto; }
@media (min-width: 760px){
  .wrap{ max-width:640px; }
}

/* Dashboard gets a fluid, full-page layout instead of the mobile-width
   column the customer page uses — the table and stats benefit from the
   extra room on a shop counter monitor or laptop. */
body.dashboard-page{ padding-left:0; padding-right:0; }
body.dashboard-page .wrap{ max-width:1400px; padding:0 20px; }
@media (min-width: 760px){
  body.dashboard-page .wrap{ max-width:1400px; }
}
@media (max-width: 480px){
  body.dashboard-page .wrap{ padding:0 14px; }
}

/* header */
header{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding-bottom:16px; margin-bottom:22px; border-bottom:1px solid var(--border);
}
.brand{ display:flex; align-items:center; gap:11px; min-width:0; }
.brand-mark{
  width:42px; height:42px; border-radius:11px; flex-shrink:0;
  background: var(--ink); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:15px; letter-spacing:-0.5px;
}
.brand-mark img{ width:100%; height:100%; border-radius:11px; object-fit:cover; }
.brand h1{ font-family:'Space Grotesk', sans-serif; font-size:20px; font-weight:700; margin:0; letter-spacing:-0.3px; }
.brand p{ margin:1px 0 0; font-size:11.5px; color:var(--ink-soft); }

.app-footer{
  margin:44px 0 28px; padding-top:18px; border-top:1px solid var(--border);
  text-align:center; font-size:11px; color:var(--ink-soft); letter-spacing:0.2px;
}

.new-order-btn{
  flex-shrink:0; border:1px solid var(--border); background:#fff; color:var(--ink);
  padding:9px 14px; border-radius:9px; font-size:12.5px; font-weight:600; cursor:pointer;
  display:flex; align-items:center; gap:5px;
}
.new-order-btn:hover{ border-color:var(--ink-soft); }

.eyebrow{
  font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--ink-soft); display:flex; align-items:center; gap:8px; margin-bottom:8px;
}
.eyebrow .pip{ width:6px; height:6px; border-radius:50%; background:var(--brand); }
.eyebrow .count{ background:var(--ink); color:#fff; border-radius:999px; padding:1px 9px; font-size:10px; font-family:'Inter',sans-serif; font-weight:600; }

h2.section-title{ font-family:'Space Grotesk', sans-serif; font-size:22px; font-weight:700; margin:0 0 16px; letter-spacing:-0.3px; }
.upload-subtitle{ font-size:13px; color:var(--ink-soft); margin:-10px 0 18px; line-height:1.5; }

/* card */
.card{
  background:#fff; border-radius:16px; padding:22px 20px; box-shadow:var(--shadow);
  border:1px solid var(--border);
}

/* file upload row — solid, explicit button, no dashed placeholder */
.file-row{
  display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--border);
  border-radius:12px; padding:14px; margin-bottom:18px;
}
.file-row .file-icon{
  width:38px; height:38px; border-radius:9px; background:#fff; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0;
}
.file-row .file-info{ flex:1; min-width:0; }
.file-row .file-name{ font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.file-row .file-sub{ font-size:11px; color:var(--ink-soft); margin-top:1px; }
.choose-btn{
  flex-shrink:0; background:var(--ink); color:#fff; border:none; padding:10px 16px; border-radius:9px;
  font-size:12.5px; font-weight:600; cursor:pointer;
}
.choose-btn:hover{ background:#000; }
input[type=file]{ display:none; }

.empty-file-hint{ font-size:12.5px; color:var(--ink-soft); text-align:center; padding:16px 10px; }

#file-list{ margin-top:14px; }

.file-item-card{
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:12px 14px; margin-bottom:10px;
}
.file-item-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; gap:10px; }
.file-item-name{ font-size:12.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.file-item-remove{
  flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#fff; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:14px; color:var(--ink-soft);
}
.file-item-remove:hover{ background:var(--brand); color:#fff; border-color:var(--brand); }
.file-item-row{ display:flex; gap:8px; align-items:flex-end; }
.file-item-field{ flex:1; min-width:0; }
.file-item-label{ display:block; font-size:10px; text-transform:uppercase; letter-spacing:0.4px; color:var(--ink-soft); margin-bottom:4px; }
.file-item-field input[type=number], .file-item-field select{
  padding:8px 9px; font-size:12px; border-radius:8px;
}
.file-item-field select{ padding-right:26px; background-size:13px; background-position:right 8px center; }

.field{ margin-bottom:18px; }
.field-label{
  display:block; font-size:11.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.6px; color:var(--ink-soft); margin-bottom:8px;
}
.stepper{ display:flex; align-items:center; border:1px solid var(--border); border-radius:10px; width:fit-content; background:var(--surface); }
.stepper button{ width:40px; height:40px; border:none; background:transparent; font-size:18px; cursor:pointer; color:var(--ink); }
.stepper button:active{ background:var(--border); }
.stepper .val{ width:44px; text-align:center; font-weight:700; font-size:15px; }

.pill-group{ display:flex; gap:8px; }
.pill-group button{
  flex:1; padding:11px; border-radius:10px; border:1px solid var(--border); background:#fff;
  font-size:12.5px; font-weight:600; cursor:pointer; color:var(--ink-soft);
}
.pill-group button.active{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* Real, visibly-checkable radio buttons — a plain list, not button tiles.
   One radio group per file (each file can have its own print type). */
.print-radio-list{ display:flex; flex-direction:column; gap:6px; }
.print-radio-row{
  display:flex; align-items:center; gap:10px; padding:10px 12px;
  border:1.5px solid var(--border); border-radius:10px; background:#fff; cursor:pointer;
}
.print-radio-row input[type=radio]{
  appearance:none; -webkit-appearance:none; width:18px; height:18px; flex-shrink:0;
  border:2px solid var(--border); border-radius:50%; margin:0; position:relative; cursor:pointer;
}
.print-radio-row input[type=radio]:checked{ border-color:var(--ink); }
.print-radio-row input[type=radio]:checked::after{
  content:""; position:absolute; inset:3px; border-radius:50%; background:var(--ink);
}
.print-radio-row input[type=radio]:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
.print-radio-row .pr-name{ font-size:13px; font-weight:600; color:var(--ink); flex:1; }
.print-radio-row .pr-price{ font-size:12px; color:var(--ink-soft); font-family:'JetBrains Mono',monospace; }
.print-radio-row.active{ border-color:var(--ink); background:var(--surface); }

select, input[type=text], input[type=number]{
  width:100%; padding:11px 12px; border:1px solid var(--border); border-radius:10px;
  font-family:'Inter',sans-serif; font-size:13.5px; background:#fff; color:var(--ink);
  appearance:none; -webkit-appearance:none;
}
select{
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position: right 12px center; background-size:16px; padding-right:34px;
}
.field-hint{ font-size:11px; color:var(--ink-soft); margin-top:6px; }


.submit-btn{
  width:100%; padding:15px; border:none; border-radius:12px; background:var(--brand); color:#fff;
  font-weight:700; font-size:14px; cursor:pointer; margin-top:4px;
}
.submit-btn:hover{ background:var(--brand-dark); }
.submit-btn:disabled{ opacity:0.4; cursor:not-allowed; }

.price-line{
  display:flex; justify-content:space-between; align-items:baseline; font-size:13px;
  margin: 4px 0 16px; color: var(--ink-soft); padding-top:14px; border-top:1px dashed var(--border);
}
.price-line strong{ color: var(--ink); font-size:19px; font-family:'Space Grotesk',sans-serif; }

/* ticket — the one signature element, kept deliberately theatrical against the quiet white UI */
.ticket{
  background:#fff; border-radius:6px; position:relative; box-shadow:var(--shadow);
  padding:30px 22px 24px; text-align:center; border:1px solid var(--border);
}
.ticket::before, .ticket::after{
  content:""; position:absolute; left:0; right:0; height:11px;
  background-image: radial-gradient(circle, #fff 5px, transparent 5.2px);
  background-size: 20px 20px; background-position: -5px center;
}
.ticket::before{ top:-6px; box-shadow: 0 -1px 0 var(--border); }
.ticket::after{ bottom:-6px; box-shadow: 0 1px 0 var(--border); }
.ticket .tnum-label{ font-size:11px; letter-spacing:2px; color:var(--ink-soft); text-transform:uppercase; font-weight:600; }
.ticket .tnum{ font-family:'Special Elite',monospace; font-size:54px; margin:6px 0 12px; color:var(--ink); }
.ticket .meta{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink-soft); line-height:1.8; }
.ticket hr{ border:none; border-top:1px dashed var(--border); margin:20px 0; }

.stamp-zone{ min-height:90px; display:flex; align-items:center; justify-content:center; }

.receipt{ width:100%; text-align:left; }
.receipt-row{
  display:flex; justify-content:space-between; font-size:13px; padding:6px 0;
  border-bottom:1px dashed var(--border); color:var(--ink);
}
.receipt-total{ font-weight:700; font-size:15px; border-bottom:none; padding-top:10px; }
.receipt-thanks{
  margin:16px 0 0; font-size:12.5px; color:var(--ink-soft); text-align:center; line-height:1.6; font-style:italic;
}
.stamp{
  font-family:'Space Grotesk',monospace; font-weight:700; font-size:16px; letter-spacing:1px; text-transform:uppercase;
  border:3px solid currentColor; border-radius:10px; padding:10px 16px; display:inline-block;
  transform:rotate(-5deg); animation: thump .35s ease-out;
}
@keyframes thump{ 0%{ transform:rotate(-5deg) scale(1.5); opacity:0; } 60%{ transform:rotate(-5deg) scale(0.95); opacity:1;} 100%{ transform:rotate(-5deg) scale(1);} }
.stamp.pending, .stamp.awaiting_payment{ color:var(--amber); border-style:dashed; animation:none; }
.stamp.pending .dot, .stamp.awaiting_payment .dot{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--amber); margin-right:6px; animation:blink 1.2s infinite; }
@keyframes blink{ 0%,100%{opacity:1;} 50%{opacity:.25;} }
.stamp.approved, .stamp.printing{ color:var(--ok); }
.stamp.rejected, .stamp.payment_failed, .stamp.error{ color:var(--brand); }
.stamp.done{ color:var(--ink); }

.upi-pay-link{
  display:block; text-decoration:none; text-align:center; background:var(--ink); color:#fff;
  padding:14px; border-radius:12px; font-weight:700; font-size:14px; margin-bottom:14px;
}
.upi-pay-link:hover{ background:#000; }


.order-status-line{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.3px; }
.order-status-line.pending{ color:var(--amber); }
.order-status-line.approved, .order-status-line.printing{ color:var(--ok); }
.order-status-line.rejected, .order-status-line.error{ color:var(--brand); }
.order-status-line.done{ color:var(--ink-soft); }

/* Orders table (dashboard) */
.orders-table-wrap{ overflow-x:auto; background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); }
table.orders-table{ width:100%; border-collapse:collapse; font-size:12.5px; min-width:640px; }
table.orders-table th{
  text-align:left; padding:11px 12px; font-size:10.5px; text-transform:uppercase; letter-spacing:0.4px;
  color:var(--ink-soft); font-weight:700; border-bottom:1px solid var(--border); white-space:nowrap; background:var(--surface);
}
table.orders-table td{ padding:12px; border-bottom:1px solid var(--border); vertical-align:top; }
table.orders-table tbody tr:last-child td{ border-bottom:none; }
table.orders-table tbody tr:hover{ background:var(--surface); }
table.orders-table tr.order-row-tr.pending td:first-child{ border-left:3px solid var(--amber); }
table.orders-table tr.order-row-tr.approved td:first-child{ border-left:3px solid var(--ok); }
table.orders-table tr.order-row-tr.rejected td:first-child, table.orders-table tr.order-row-tr.error td:first-child{ border-left:3px solid var(--brand); }
table.orders-table tr.order-row-tr.done td:first-child{ border-left:3px solid var(--ink-soft); }
table.orders-table .num{ font-family:'Special Elite',monospace; font-size:15px; }
table.orders-table .time{ font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--ink-soft); }
table.orders-table details{ cursor:pointer; }
table.orders-table summary{ font-weight:700; list-style:none; }
table.orders-table summary::-webkit-details-marker{ display:none; }

.table-actions{ display:flex; flex-direction:column; gap:6px; min-width:130px; }
.table-actions button{
  padding:8px 10px; border-radius:8px; border:1px solid var(--border); background:#fff;
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.3px; cursor:pointer;
}
.btn-view{ color:var(--ink-soft); border-color:var(--border); }
.btn-open-files{ color:var(--blue); border-color:var(--blue-soft); background:var(--blue-soft-bg); }
.btn-open-files:hover{ background:var(--surface); }
.btn-view:hover{ background:var(--surface); }
.btn-approve{ color:var(--ok); border-color:var(--ok); }
.btn-approve:hover{ background:var(--ok); color:#fff; }
.btn-reject{ color:var(--brand); border-color:var(--brand); }
.btn-reject:hover{ background:var(--brand); color:#fff; }

.file-breakdown{
  margin-top:10px; padding-top:10px; border-top:1px solid var(--border); font-size:11.5px; min-width:220px;
}
.file-breakdown-row{ display:flex; justify-content:space-between; gap:10px; padding:3px 0; color:var(--ink); }
.adjust-form{ margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); }
.adjust-open-btn{
  padding:8px 14px; border-radius:8px; border:1px solid var(--ink); background:#fff; color:var(--ink);
  font-size:11px; font-weight:700; cursor:pointer;
}
.adjust-open-btn:hover{ background:var(--ink); color:#fff; }

/* Modal dialog for editing pages/price */
.modal-overlay{
  position:fixed; inset:0; background:rgba(20,24,31,0.5); z-index:100;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.modal-box{
  background:#fff; border-radius:16px; padding:24px 22px; width:100%; max-width:360px;
  box-shadow: 0 20px 60px -12px rgba(0,0,0,0.35);
}
.modal-title{ font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:700; margin:0 0 4px; }
.modal-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:8px; }
.modal-cancel-btn{
  padding:11px 16px; border-radius:9px; border:1px solid var(--border); background:#fff; color:var(--ink-soft);
  font-size:13px; font-weight:600; cursor:pointer;
}
.modal-cancel-btn:hover{ background:var(--surface); }

.empty-state{ text-align:center; padding:56px 20px; color:var(--ink-soft); font-size:13.5px; }
.empty-state .icon{ font-size:28px; display:block; margin-bottom:10px; }

.qr-box{ text-align:center; margin-bottom:22px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:20px; box-shadow:var(--shadow); }
.qr-box img{ width:170px; height:170px; border-radius:8px; }
.qr-box p{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--ink-soft); margin:10px 0 0; word-break:break-all; }

.stats-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin-bottom:24px; max-width:900px; }
.stat-card{
  background:#fff; border:1px solid var(--border); border-radius:14px; padding:16px 10px; text-align:center;
  box-shadow:var(--shadow);
}
.stat-value{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:20px; color:var(--ink); }
.stat-label{ font-size:10px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.4px; margin-top:4px; }

.file-breakdown{
  background:var(--surface); border-radius:9px; padding:10px 12px; margin:10px 0 12px;
  font-family:'JetBrains Mono',monospace; font-size:11px;
}
.file-breakdown-row{ display:flex; justify-content:space-between; gap:10px; padding:3px 0; color:var(--ink); }

.report-tabs{ display:flex; gap:8px; margin-bottom:14px; }
.report-tabs button{
  flex:1; padding:10px; border-radius:9px; border:1px solid var(--border); background:#fff;
  font-size:12.5px; font-weight:600; cursor:pointer; color:var(--ink-soft);
}
.report-tabs button.active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.report-row{
  display:grid; grid-template-columns: 1.4fr 0.7fr 0.8fr 0.9fr; gap:6px; padding:10px 12px;
  font-family:'JetBrains Mono',monospace; font-size:12px; border-bottom:1px solid var(--border);
}
.report-row-head{ font-weight:700; color:var(--ink-soft); font-size:10.5px; text-transform:uppercase; letter-spacing:0.4px; border-bottom:2px solid var(--border); }
.report-row:last-child{ border-bottom:none; }

.new-order-toast{
  position:fixed; top:16px; left:50%; transform:translateX(-50%) translateY(-120%);
  background:var(--ink); color:#fff; padding:14px 20px; border-radius:12px; font-weight:600; font-size:13px;
  box-shadow:0 12px 30px -10px rgba(0,0,0,0.4); z-index:999; transition: transform .3s ease; max-width:90vw; text-align:center;
}
.new-order-toast.show{ transform:translateX(-50%) translateY(0); }

.hidden{ display:none !important; }

/* ===== Professional Light UI Reconstruction ===== */
:root{--blue:#2563eb;--blue-dark:#1d4ed8;--blue-soft:#eff6ff;--slate:#0f172a;--muted:#64748b;--line:#e5e7eb;--panel:#fff;--canvas:#f7f9fc;--green:#15803d;--amber:#b45309;--red:#dc2626;}
body{font-family:Inter,Arial,sans-serif;background:var(--canvas);color:var(--slate);padding:0}.customer-page::before,.dashboard-page::before{background:var(--blue)}
.customer-shell{max-width:1120px;margin:auto;padding:26px 22px 0}.app-header{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 18px;margin:0 0 28px;box-shadow:0 8px 30px rgba(15,23,42,.04)}.brand-mark{background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 8px 18px rgba(37,99,235,.2)}.brand h1{font-family:Inter,sans-serif;font-size:18px}.brand p{font-size:12px}.new-order-btn{border-radius:10px;border-color:#dbe2ea;padding:10px 14px}.new-order-btn:hover{border-color:var(--blue);color:var(--blue)}
.customer-hero{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:0 0 22px}.eyebrow.blue{color:var(--blue);font-size:11px;letter-spacing:.09em}.eyebrow .pip{background:var(--blue)}.customer-hero h2{font-size:36px;line-height:1.12;letter-spacing:-1.2px;margin:8px 0}.customer-hero p{color:var(--muted);max-width:570px;margin:0;line-height:1.6}.hero-badge{width:116px;height:116px;border-radius:24px;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:var(--blue);display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:40px;font-weight:800}.hero-badge span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-top:4px}.steps{display:flex;background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px;margin-bottom:18px}.step{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;color:#94a3b8;font-size:13px;font-weight:600}.step b{width:24px;height:24px;border-radius:50%;background:#f1f5f9;display:grid;place-items:center}.step.active{color:var(--blue);background:var(--blue-soft);border-radius:10px}.step.active b{background:var(--blue);color:#fff}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 10px 32px rgba(15,23,42,.035);margin-bottom:18px}.panel-heading{display:flex;justify-content:space-between;margin-bottom:20px}.section-kicker{display:block;color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.12em;margin-bottom:5px}.panel h3{font-size:19px;margin:0 0 5px;letter-spacing:-.3px}.panel-heading p,.panel>p{font-size:13px;color:var(--muted);margin:0}.upload-card{border:1.5px dashed #bfdbfe;background:#fafcff;border-radius:14px;padding:16px}.choose-btn{background:var(--blue)!important;border-radius:10px!important}.customer-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.order-summary{position:sticky;top:18px;height:max-content}.pill-group button{border-radius:9px}.pill-group button.active{background:var(--blue);border-color:var(--blue)}.stacked{display:grid;grid-template-columns:1fr 1fr}.price-line{padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 20px}.price-line strong{color:var(--blue);font-size:28px}.price-line small{font-size:11px;color:var(--muted)}.submit-btn{background:var(--blue);border-radius:11px;box-shadow:0 8px 18px rgba(37,99,235,.2)}.submit-btn:hover{background:var(--blue-dark)}.secure-note{font-size:11px!important;text-align:center;margin:12px 0 0!important;color:var(--muted)!important}.payment-card,.ticket-wrap{max-width:500px;margin:30px auto;text-align:center}.payment-card h2,.ticket-wrap h2{font-size:28px;margin:5px 0}.payment-amount{font-size:42px;font-weight:800;color:var(--blue);margin:20px}.upi-pay-link{background:var(--blue);border-radius:11px}.payment-card #upi-qr-img{width:180px;height:180px;border:10px solid #fff;box-shadow:0 8px 28px rgba(15,23,42,.1);margin-bottom:18px}.or-text{font-size:10px!important;letter-spacing:.12em;margin:18px!important}.dark{background:#0f172a}.wide{width:100%;justify-content:center;margin-top:18px}.app-footer{color:#94a3b8}
/* Owner */
.dashboard-page{background:#f7f9fc}.dashboard-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#fff;border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar nav{margin-top:42px;display:grid;gap:7px}.sidebar nav a{display:flex;gap:12px;align-items:center;padding:12px 13px;border-radius:10px;color:#64748b;font-size:13px;font-weight:700}.sidebar nav a.active{background:var(--blue-soft);color:var(--blue)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:18px;color:#94a3b8}.system-status{font-size:12px;font-weight:700;color:var(--green);margin-bottom:8px}.system-status span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;margin-right:6px}.dashboard-main{padding:34px 38px;max-width:1600px;width:100%;margin:auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;border:none;padding:0 0 28px;margin:0}.dashboard-header h2{font-size:30px;margin:6px 0;letter-spacing:-.8px}.dashboard-header p{margin:0;color:var(--muted);font-size:13px}.dashboard-top{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-bottom:18px}.intro-card{border-radius:18px;background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:25px;display:flex;justify-content:space-between;align-items:center}.intro-card .section-kicker{color:#bfdbfe}.intro-card h3{font-size:23px;margin:5px 0}.intro-card p{font-size:13px;color:#dbeafe;max-width:440px}.date-chip{width:72px;height:72px;border-radius:18px;background:rgba(255,255,255,.12);text-align:center;padding-top:15px;font-size:10px;letter-spacing:.1em}.date-chip b{color:#86efac;font-size:14px}.qr-box.compact{margin:0;padding:18px 20px;text-align:left;display:flex;align-items:center;justify-content:space-between}.qr-box.compact h3{margin:5px 0;font-size:16px}.qr-box.compact p{max-width:250px;font-family:Inter;font-size:11px;line-height:1.45}.qr-box.compact img{width:100px;height:100px}.stats-grid{grid-template-columns:repeat(3,1fr);max-width:none;gap:18px;margin-bottom:30px}.stat-card{padding:20px;display:flex;align-items:center;gap:14px;text-align:left;border-radius:16px}.stat-icon{width:42px;height:42px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:800;font-size:18px}.stat-value{font-size:24px}.stat-label{font-size:10px}.workspace-section{margin-top:30px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.section-head h2{font-size:22px;margin:6px 0 3px;letter-spacing:-.4px}.section-head p{margin:0;color:var(--muted);font-size:12px}.primary-small{border:0;border-radius:10px;background:var(--blue);color:#fff;padding:11px 14px;font-weight:700;cursor:pointer}.orders-table-wrap{border-radius:16px}.reports-section{padding-top:10px}.report-tabs button.active{background:var(--blue);border-color:var(--blue)}.new-order-toast{right:28px;top:22px;border-radius:12px}.empty-state{background:#fff;border:1px dashed #dbe2ea;border-radius:16px}.dashboard-main .app-footer{text-align:left}
@media(max-width:850px){.dashboard-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:16px;display:block}.sidebar nav{display:none}.sidebar-bottom{display:none}.dashboard-main{padding:22px 14px}.dashboard-top,.customer-grid{grid-template-columns:1fr}.customer-hero{align-items:start}.dashboard-header{align-items:flex-start}.stats-grid{grid-template-columns:1fr}.dashboard-top{margin-top:0}.order-summary{position:static}.sidebar .brand{max-width:100%}.customer-shell{padding:14px}.customer-hero h2{font-size:29px}.hero-badge{display:none}.steps{overflow:auto}.step{min-width:105px}.section-head{align-items:flex-start;gap:14px;flex-direction:column}.qr-box.compact{flex-wrap:wrap}.dashboard-header h2{font-size:25px}}

/* ===== requested owner dashboard updates ===== */
.owner-view{display:none}.owner-view.active-view{display:block}
.price-control{position:relative;display:inline-block}
.price-btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:7px 10px;font-weight:700;color:var(--ink);cursor:pointer;min-width:78px;text-align:left}
.price-btn:hover{border-color:var(--blue);color:var(--blue)}
.price-btn span{float:right;color:var(--muted)}
.price-menu{position:absolute;z-index:30;top:calc(100% + 5px);right:0;width:150px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.12);padding:5px}
.price-menu button{width:100%;border:0;background:#fff;text-align:left;padding:9px 10px;border-radius:7px;font-size:12px;cursor:pointer;color:var(--ink)}
.price-menu button:hover{background:var(--surface);color:var(--blue)}
.hidden{display:none!important}
.completion-message{margin:18px 0;padding:22px 18px;border:1px solid #bfe7ce;background:#f1fbf5;border-radius:14px;text-align:center}
.completion-message strong{display:block;color:#15803d;font-size:18px;margin-bottom:8px}
.completion-message span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#475569;margin-bottom:5px}
.completion-message small{display:block;color:#64748b;font-size:12px}
#reports-view .reports-section{margin-top:0}
#reports-view .report-row{background:#fff}
@media(max-width:900px){
 body.dashboard-page .sidebar nav{display:flex;gap:5px;overflow:auto;width:100%}
 body.dashboard-page .sidebar nav a{flex:0 0 auto}
 body.dashboard-page .dashboard-main{padding:18px 12px}
}
@media(max-width:620px){
 body.dashboard-page .sidebar{flex-wrap:wrap}
 body.dashboard-page .sidebar .brand{width:100%}
 body.dashboard-page .sidebar nav{width:100%;overflow-x:auto;padding-bottom:2px}
 .price-menu{right:auto;left:0}
 .completion-message{padding:18px 12px}
}

.report-orders-wrap{margin-top:0}
.report-orders-table td,.report-orders-table th{vertical-align:middle}
.report-orders-table td{font-size:12px}

/* ===== Responsive 5-step customer experience ===== */
.customer-page{padding:18px 12px 0;background:#f7f9fc}
.customer-shell{max-width:980px;padding:0 10px}
.customer-hero{margin-bottom:18px}
.customer-hero h2{font-size:34px}
.customer-stepper{position:sticky;top:0;z-index:20;overflow-x:auto;scrollbar-width:none;margin-bottom:18px;box-shadow:0 5px 18px rgba(15,23,42,.05)}
.customer-stepper::-webkit-scrollbar{display:none}
.customer-stepper .step{border:0;background:#fff;cursor:pointer;min-width:150px}
.customer-stepper .step.done{color:#16794f}
.customer-stepper .step.done b{background:#e6f7ee;color:#16794f}
.stage-panel{margin-bottom:18px}
.stage-actions{display:flex;gap:10px;margin-top:18px}
.stage-actions.two>*{flex:1}
.stage-actions .submit-btn{margin-top:0}
.setting-file-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:12px}
.setting-file-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.setting-file-head>div{flex:1;min-width:0}.setting-file-head b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setting-file-head small{display:block;color:var(--muted);margin-top:3px}.setting-file-total{font-weight:800;color:var(--blue);font-size:15px}
.common-settings-card{background:#fafcff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:14px}.common-settings-card h4{margin:0 0 16px;font-size:14px}
.review-list{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.review-item{display:flex;justify-content:space-between;gap:14px;padding:14px;border-bottom:1px solid var(--line)}.review-item:last-child{border-bottom:0}.review-item b{display:block;font-size:13px}.review-item small{display:block;color:var(--muted);margin-top:4px}.review-item strong{color:var(--ink)}
.review-total{display:flex;justify-content:space-between;padding:14px 2px 0;font-size:13px}.review-total small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.review-total>b:last-child{font-size:14px}
.compact-file-row{margin-bottom:8px;padding:10px 12px}.file-item-remove{border:1px solid var(--border);background:#fff}
@media(max-width:700px){
 body.customer-page{padding:10px 8px 0}.customer-shell{padding:0}.app-header{padding:11px 12px;margin-bottom:18px;border-radius:14px}.brand h1{font-size:16px}.brand p{font-size:10px}.new-order-btn{padding:8px 10px;font-size:11px}
 .customer-hero{margin-bottom:14px}.customer-hero h2{font-size:27px;line-height:1.15}.customer-hero p{font-size:12px}.customer-stepper{margin-left:-1px;margin-right:-1px;border-radius:12px;padding:5px}.customer-stepper .step{min-width:118px;padding:9px 8px;font-size:11px;gap:5px}.customer-stepper .step b{width:22px;height:22px}
 .panel{padding:16px;border-radius:14px}.panel h3{font-size:18px}.panel-heading{margin-bottom:15px}.upload-card{padding:12px}.choose-btn{width:100%;padding:12px}.file-row{padding:10px}.file-row .file-name{font-size:12px}.file-row .file-sub{font-size:10px}
 .print-radio-row{padding:9px 10px}.print-radio-row .pr-name{font-size:12px}.print-radio-row .pr-price{font-size:10px}.file-item-row{gap:8px}.file-item-field input[type=number]{padding:9px}.stepper button{width:34px;height:36px}.stepper .val{width:36px}
 .stage-actions{flex-direction:column}.stage-actions.two{flex-direction:column}.stage-actions button{width:100%}.payment-card,.ticket-wrap{margin:10px auto;max-width:none}.payment-card h2,.ticket-wrap h2{font-size:23px}.payment-card #upi-qr-img{width:min(190px,65vw);height:min(190px,65vw)}.ticket .tnum{font-size:39px;overflow-wrap:anywhere}.ticket .meta{font-size:10px;line-height:1.55}.receipt-row{font-size:11px}.receipt-thanks{font-size:11px}
}
@media(min-width:701px){.customer-stepper .step{min-width:0}.stage-panel{min-height:360px}.setting-file-card{max-width:820px}.common-settings-card{max-width:820px}}

.btn-view-folder{ color:var(--ok); border-color:var(--ok); background:rgba(16,185,129,.06); }
.btn-view-folder:hover{ background:var(--ok); color:#fff; }
.table-actions button:disabled{ opacity:.55; cursor:wait; }
