:root{
    --espresso:#241812;
    --espresso-2:#34241a;
    --gold:#c9812f;
    --gold-dark:#9c611f;
    --cream:#faf7f2;
    --paper:#ffffff;
    --line:#e4ddd2;
    --ink:#241812;
    --ink-soft:#6b5e50;
    --red:#c0392b;
    --green:#2e7d4f;
    --radius:10px;
    font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  *{box-sizing:border-box;}
  body{margin:0;background:var(--cream);color:var(--ink);}
  button{font-family:inherit;cursor:pointer;}
  input,select,textarea{font-family:inherit;}

  /* ---------- Top bar ---------- */
  header.topbar{
    background:var(--espresso);color:#f4ece0;
    display:flex;align-items:center;gap:14px;
    padding:12px 20px;position:sticky;top:0;z-index:40;
    box-shadow:0 1px 6px rgba(0,0,0,.15);
  }
  header.topbar img{width:38px;height:38px;border-radius:8px;}
  header.topbar .title{display:flex;flex-direction:column;line-height:1.2;}
  header.topbar .title b{font-size:15px;letter-spacing:.3px;}
  header.topbar .title span{font-size:11px;color:#c9b8a4;}
  header.topbar .spacer{flex:1;}
  .btn{
    border:none;border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:600;
    display:inline-flex;align-items:center;gap:6px;transition:filter .15s,transform .05s;
  }
  .btn:active{transform:translateY(1px);}
  .btn-gold{background:var(--gold);color:#2a1a05;}
  .btn-gold:hover{filter:brightness(1.08);}
  .btn-ghost{background:transparent;color:#f4ece0;border:1px solid #55463a;}
  .btn-ghost:hover{background:#3b2a1e;}
  .btn-outline{background:transparent;color:var(--espresso);border:1px solid var(--line);}
  .btn-outline:hover{background:#f1eae0;}
  .btn-danger{background:#f6e2df;color:var(--red);}
  .btn-danger:hover{background:#f0cec9;}
  .btn-sm{padding:6px 10px;font-size:12.5px;border-radius:7px;}
  .btn:disabled{opacity:.5;cursor:not-allowed;}

  main{max-width:1100px;margin:0 auto;padding:22px 18px 80px;}

  /* ---------- Login ---------- */
  .login-wrap{min-height:80vh;display:flex;align-items:center;justify-content:center;}
  .login-card{
    background:var(--paper);border-radius:16px;padding:34px 30px;width:100%;max-width:340px;
    box-shadow:0 2px 16px rgba(36,24,18,.07);text-align:center;
  }
  .login-card img{width:64px;height:64px;border-radius:14px;margin-bottom:10px;}
  .login-card h1{font-size:17px;margin:0 0 4px;}
  .login-card p{font-size:12.5px;color:var(--ink-soft);margin:0 0 20px;}
  .field{text-align:left;margin-bottom:12px;}
  .field label{font-size:12px;font-weight:600;color:var(--ink-soft);display:block;margin-bottom:4px;}
  .field input,.field select,.field textarea{
    width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;background:#fff;color:var(--ink);
  }
  .field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold);}
  .login-error{background:#f6e2df;color:var(--red);font-size:12.5px;padding:8px 10px;border-radius:7px;margin-bottom:12px;}

  /* ---------- Dashboard ---------- */
  .dash-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
  .dash-head h2{font-size:19px;margin:0;flex:1;}
  .tabs{display:flex;gap:6px;background:#efe6d8;padding:4px;border-radius:9px;}
  .tab{padding:7px 14px;border:none;background:transparent;border-radius:6px;font-size:13px;font-weight:600;color:var(--ink-soft);}
  .tab.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1);}
  .search{padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:13px;min-width:180px;background:#fff;}

  table.list{width:100%;border-collapse:collapse;background:var(--paper);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(36,24,18,.04);}
  table.list th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft);background:#f7f2ea;padding:9px 14px;border-bottom:1px solid #ede5d6;font-weight:600;}
  table.list td{padding:10px 14px;font-size:13.5px;border-bottom:1px solid #f0e9dd;color:var(--ink);}
  table.list tr:last-child td{border-bottom:none;}
  table.list tr:hover td{background:#fbf7ef;}
  .badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.2px;}
  .badge-quote{background:#eadcc4;color:#7a5312;}
  .badge-dr{background:#dde9de;color:var(--green);}
  .badge-low{background:#faeaea;color:#b5453a;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;}
  .badge-ok{background:#e3eee6;color:var(--green);padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;}
  .lowstock-banner{background:#fdf3f1;color:#a85148;border:1px solid #f4dcd8;padding:10px 14px;border-radius:9px;font-size:13px;margin-bottom:14px;}
  .seg{display:flex;gap:2px;background:#3b2a1e;padding:3px;border-radius:8px;}
  .segbtn{padding:8px 15px;border:none;background:transparent;border-radius:6px;font-size:12.5px;font-weight:600;color:#c9b8a4;}
  .segbtn.active{background:var(--gold);color:#2a1a05;}
  .empty-state{text-align:center;padding:60px 20px;color:var(--ink-soft);}
  .empty-state i{font-size:34px;display:block;margin-bottom:10px;}
  .row-actions{display:flex;gap:6px;}

  /* ---------- Modal (choice) ---------- */
  .overlay{position:fixed;inset:0;background:rgba(24,16,10,.55);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;}
  .choice-card{background:var(--paper);border-radius:16px;padding:28px;max-width:460px;width:100%;}
  .choice-card h3{margin:0 0 4px;font-size:17px;}
  .choice-card p{margin:0 0 20px;font-size:13px;color:var(--ink-soft);}
  .choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .choice-opt{
    border:1.5px solid var(--line);border-radius:12px;padding:18px 14px;text-align:left;background:#fff;
    display:flex;flex-direction:column;gap:6px;transition:border-color .15s,background .15s;
  }
  .choice-opt:hover{border-color:var(--gold);background:#fdf7ee;}
  .choice-opt b{font-size:14.5px;}
  .choice-opt span{font-size:11.5px;color:var(--ink-soft);}
  .choice-close{display:block;margin:18px auto 0;background:none;border:none;color:var(--ink-soft);font-size:12.5px;text-decoration:underline;}

  /* ---------- Editor ---------- */
  .editor-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
  .editor-head h2{font-size:19px;margin:0;flex:1;}
  .card{background:var(--paper);border-radius:14px;padding:20px;box-shadow:0 1px 3px rgba(36,24,18,.04);margin-bottom:16px;border:1px solid #f1ebe0;}
  .card h4{margin:0 0 14px;font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft);}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  @media (max-width:700px){.grid2,.grid4{grid-template-columns:1fr;}}

  table.items{width:100%;border-collapse:collapse;margin-top:4px;}
  table.items th{background:#f3ede2;font-size:11px;text-transform:uppercase;color:var(--ink-soft);padding:8px 6px;text-align:center;border:1px solid var(--line);}
  table.items td{border:1px solid var(--line);padding:4px;text-align:center;}
  table.items input,table.items select{border:none;width:100%;padding:6px 4px;text-align:center;font-size:13px;background:transparent;}
  table.items input[data-f="desc"]{text-align:left;}
  table.items input:focus,table.items select:focus{outline:1.5px solid var(--gold);border-radius:4px;}
  table.items td.rm{width:34px;}
  .add-row{margin-top:10px;}

  .totals{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin-top:14px;font-size:13.5px;}
  .totals .trow{display:flex;justify-content:space-between;width:260px;}
  .totals .trow.grand{font-weight:700;font-size:15.5px;border-top:1px solid var(--line);padding-top:8px;}
  .totals .trow input{width:120px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;text-align:right;}

  .fixed-name{background:#f3ede2;border-radius:8px;padding:9px 11px;font-size:13.5px;font-weight:600;color:var(--ink);}
  .hint{font-size:11.5px;color:var(--ink-soft);margin-top:4px;}

  .editor-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;}

  .toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--espresso);color:#fff;padding:11px 18px;border-radius:9px;font-size:13.5px;z-index:200;box-shadow:0 6px 20px rgba(0,0,0,.25);}

  #printRoot{position:fixed;left:-9999px;top:0;width:794px;background:#fff;}

/* ==========================================================================
   Mobile responsiveness
   ========================================================================== */

/* Safe-area padding for notched phones + PWA standalone mode */
body{
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}

@media (max-width:760px){
  main{padding:14px 10px 90px;}

  header.topbar{padding:10px 12px;gap:10px;flex-wrap:wrap;}
  header.topbar img{width:32px;height:32px;}
  header.topbar .title b{font-size:13.5px;}
  header.topbar .title span{font-size:10px;}
  header.topbar .seg{order:3;width:100%;margin-top:6px;}
  .seg{overflow-x:auto;}
  .segbtn{padding:8px 12px;font-size:12px;white-space:nowrap;}
  .btn{padding:9px 13px;font-size:13px;}

  .dash-head{flex-direction:column;align-items:stretch;gap:10px;}
  .dash-head h2{font-size:17px;}
  .tabs{width:100%;justify-content:stretch;}
  .tabs .tab{flex:1;text-align:center;}
  .search{width:100%;min-width:0;}

  .grid2,.grid4{grid-template-columns:1fr;}

  .choice-grid{grid-template-columns:1fr;}
  .choice-card{padding:20px;}

  .login-card{padding:26px 20px;}

  /* Collapse data tables into stacked cards on small screens */
  table.responsive-table{border:none;box-shadow:none;background:transparent;}
  table.responsive-table thead{display:none;}
  table.responsive-table tbody{display:flex;flex-direction:column;gap:10px;}
  table.responsive-table tr{
    display:flex;flex-direction:column;background:var(--paper);border-radius:14px;
    padding:14px 16px;box-shadow:0 1px 2px rgba(36,24,18,.05);border:1px solid #f1ebe0;
  }
  table.responsive-table td{
    border:none;padding:7px 0;display:flex;justify-content:space-between;align-items:center;
    font-size:14px;text-align:right;
  }
  table.responsive-table td[data-label]:not([data-label=""])::before{
    content:attr(data-label);font-weight:500;color:var(--ink-soft);font-size:11px;
    text-transform:uppercase;letter-spacing:.3px;text-align:left;margin-right:10px;
  }
  table.responsive-table td.row-actions{
    flex-wrap:wrap;justify-content:flex-start;gap:6px;padding-top:10px;
    border-top:1px solid #f1ebe0;margin-top:6px;
  }

  /* Simplified variant: fewer fields, extra breathing room, for agent/view-only screens */
  table.responsive-table.simple tr{
    padding:16px 18px;gap:2px;box-shadow:none;border:1px solid #eee6d9;
  }
  table.responsive-table.simple td{padding:6px 0;font-size:14.5px;}
  table.responsive-table.simple td[data-label="Item"]{font-weight:600;color:var(--ink);}
  table.responsive-table.simple td[data-label="Stock"]{font-weight:700;color:var(--gold-dark);font-size:16px;}

  /* Items table (quotation/delivery editor) becomes stacked, labeled cards on mobile */
  .card{padding:14px;}
  table.items{display:block;}
  table.items thead{display:none;}
  table.items tbody{display:flex;flex-direction:column;gap:12px;}
  table.items tr{
    display:flex;flex-direction:column;background:#fff;border:1px solid #f1ebe0;border-radius:12px;
    padding:12px 14px;gap:2px;
  }
  table.items td{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    border:none;padding:7px 0;width:auto!important;text-align:right;
  }
  table.items td[data-label]:not([data-label=""])::before{
    content:attr(data-label);font-size:11px;font-weight:600;color:var(--ink-soft);
    text-transform:uppercase;letter-spacing:.3px;flex:0 0 auto;
  }
  table.items td input,table.items td select{
    width:auto;flex:0 1 140px;text-align:right;min-width:0;
    border:1px solid var(--line)!important;border-radius:8px;background:#fff!important;
    padding:7px 10px;font-size:14px;
  }
  table.items td.desc-cell{flex-direction:column;align-items:stretch;gap:4px;}
  table.items td.desc-cell::before{text-align:left;}
  table.items td.desc-cell input{text-align:left;width:100%;flex:none;}
  table.items td.rm{justify-content:flex-end;border-top:1px solid #f1ebe0;margin-top:6px;padding-top:10px;}
  table.items td.rm button{width:auto;}

  .totals .trow{width:100%;}
  .editor-footer{flex-direction:column-reverse;}
  .editor-footer .btn{width:100%;justify-content:center;}

  .overlay{padding:10px;}
  .choice-card,.overlay .choice-card{max-width:100%;}
}

/* Larger touch targets everywhere on touch devices */
@media (pointer:coarse){
  .btn{min-height:38px;}
  input,select,textarea{min-height:38px;}
  table.items input,table.items select{min-height:32px;}
}
