
  :root{
    --bg:#0F1419; --card:#1A2129; --card-alt:#232D38; --border:#2E3A47;
    --amber:#FFB020; --amber-dim:#8A5E12; --green:#34C77B; --white:#fff;
    --text:#E8EDF2; --muted:#8A97A6; --danger:#E5484D;
    --safe-top:env(safe-area-inset-top,0px);
    --safe-bottom:env(safe-area-inset-bottom,0px);
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{margin:0;padding:0;height:100%}
  body{
    background:var(--bg);color:var(--text);
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
    overscroll-behavior:none;
  }
  #app{min-height:100%;display:flex;flex-direction:column;padding-top:var(--safe-top)}
  .scroll{flex:1;overflow-y:auto;padding-bottom:calc(40px + var(--safe-bottom));-webkit-overflow-scrolling:touch}

  /* Header */
  .header{
    position:sticky;top:0;z-index:20;background:var(--bg);
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 12px;border-bottom:1px solid var(--border);
  }
  .h-back{width:64px;height:36px;display:flex;align-items:center;background:none;border:0;color:#fff;font-size:34px;line-height:1;padding:0;cursor:pointer}
  .h-title{flex:1;text-align:center;color:#fff;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .h-right{width:64px}

  /* Brand */
  .brand{padding:28px 20px 14px}
  .brand-mark{color:var(--amber);font-size:30px;font-weight:800;letter-spacing:3px}
  .brand-sub{color:var(--muted);font-size:14px;margin-top:7px;line-height:1.4}

  /* Tiles */
  .wrap{padding:16px}
  .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .tile{
    background:var(--card);border:1px solid var(--border);border-radius:16px;
    padding:18px;text-align:left;cursor:pointer;color:var(--white);
    display:flex;flex-direction:column;gap:4px;min-height:112px;
    transition:transform .08s ease;
  }
  .tile:active{transform:scale(.97)}
  .tile.accent{background:var(--amber);border-color:var(--amber)}
  .tile-icon{font-size:26px;margin-bottom:6px}
  .tile-title{font-size:17px;font-weight:700}
  .tile.accent .tile-title{color:#111}
  .tile-sub{font-size:13px;color:var(--muted)}
  .tile.accent .tile-sub{color:#3a2c05}

  /* Menu rows */
  .row{
    background:var(--card);border:1px solid var(--border);border-radius:14px;
    padding:18px;margin-bottom:10px;display:flex;align-items:center;gap:16px;
    cursor:pointer;color:var(--white);width:100%;text-align:left;
  }
  .row:active{background:var(--card-alt)}
  .row-icon{font-size:26px}
  .row-main{flex:1;min-width:0}
  .row-title{font-size:17px;font-weight:600}
  .row-desc{font-size:13px;color:var(--muted);margin-top:3px}
  .row-arrow{color:var(--amber);font-size:26px;line-height:1}

  /* Text */
  .hint{color:var(--muted);font-size:14px;margin:0 0 18px;line-height:1.5}
  .sec{color:var(--amber);font-size:13px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;margin:22px 0 12px}
  .screen-title{color:#fff;font-size:22px;font-weight:800;margin:0}
  .screen-desc{color:var(--muted);font-size:14px;margin:5px 0 18px}

  /* Fields */
  .field{margin-bottom:14px}
  .label{display:block;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:7px}
  input[type=text],input[type=number]{
    width:100%;background:var(--card);border:1px solid var(--border);border-radius:12px;
    padding:16px;color:#fff;font-size:18px;font-family:inherit;outline:none;
  }
  input:focus{border-color:var(--amber)}
  input::placeholder{color:var(--muted)}

  /* Segments */
  .seg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
  .seg button{
    background:var(--card);border:1px solid var(--border);border-radius:10px;
    padding:11px 16px;color:var(--muted);font-size:15px;font-weight:600;
    font-family:inherit;cursor:pointer;
  }
  .seg button.on{background:var(--amber);border-color:var(--amber);color:#111}

  /* Chips */
  .chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;-webkit-overflow-scrolling:touch}
  .chips::-webkit-scrollbar{display:none}
  .chip{
    background:var(--card);border:1px solid var(--border);border-radius:20px;
    padding:9px 16px;color:var(--muted);font-size:14px;font-weight:600;
    white-space:nowrap;font-family:inherit;cursor:pointer;
  }
  .chip.on{background:var(--amber);border-color:var(--amber);color:#111}

  /* Primary button */
  .btn{
    width:100%;background:var(--amber);border:0;border-radius:14px;padding:18px;
    color:#111;font-size:16px;font-weight:800;letter-spacing:1px;font-family:inherit;
    cursor:pointer;margin-top:10px;
  }
  .btn:active{opacity:.85}
  .btn-ghost{background:none;border:1px solid var(--border);color:var(--muted);font-weight:600;letter-spacing:0}
  .btn-danger{background:none;border:1px solid var(--danger);color:var(--danger);font-weight:700}

  /* Results */
  .result{
    background:var(--card);border:1px solid var(--border);border-left:4px solid var(--amber);
    border-radius:16px;padding:18px;margin-top:20px;
  }
  .r-big-label{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
  .r-big{color:#fff;font-size:38px;font-weight:800;margin-top:5px;word-break:break-word}
  .r-sub{color:var(--muted);font-size:15px;margin-top:3px}
  .r-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border);align-items:baseline}
  .r-row:last-child{border-bottom:0}
  .r-row.strong{border-bottom-color:var(--amber)}
  .r-label{color:var(--muted);font-size:14px;flex:1;min-width:0}
  .r-val{color:var(--text);font-size:15px;font-weight:600;text-align:right}
  .r-row.strong .r-label{color:#fff;font-weight:800;font-size:15px}
  .r-row.strong .r-val{color:#fff;font-weight:800;font-size:18px}
  .green{color:var(--green)!important}
  .amber{color:var(--amber)!important}
  .bad{color:var(--danger)!important}

  /* Rate rows */
  .rate{
    background:var(--card);border:1px solid var(--border);border-radius:12px;
    padding:16px;margin-bottom:8px;display:flex;align-items:center;gap:12px;
    cursor:pointer;color:#fff;width:100%;text-align:left;font-family:inherit;
  }
  .rate-main{flex:1;min-width:0}
  .rate-name{font-size:16px;font-weight:600}
  .rate-meta{font-size:12px;color:var(--muted);margin-top:3px}
  .rate-price{color:var(--amber);font-size:17px;font-weight:800;white-space:nowrap}
  .rate-unit{color:var(--muted);font-size:13px;font-weight:500}

  .pick{
    background:var(--card-alt);border:1px solid transparent;border-radius:10px;
    padding:14px;margin-bottom:6px;display:flex;justify-content:space-between;
    gap:10px;align-items:center;cursor:pointer;color:var(--text);width:100%;
    text-align:left;font-family:inherit;
  }
  .pick.on{background:var(--amber-dim);border-color:var(--amber)}
  .pick.on .pick-t,.pick.on .pick-p{color:#fff}
  .pick-t{font-size:15px;flex:1;min-width:0}
  .pick-p{font-size:14px;font-weight:700;color:var(--muted);white-space:nowrap}

  /* Toggle */
  .tog-row{
    display:flex;justify-content:space-between;align-items:center;gap:12px;
    background:var(--card);border:1px solid var(--border);border-radius:12px;
    padding:16px;margin-bottom:14px;cursor:pointer;
  }
  .tog-label{font-size:15px;font-weight:600}
  .tog{width:50px;height:30px;border-radius:15px;background:var(--border);padding:3px;position:relative;flex:none;transition:background .15s}
  .tog.on{background:var(--amber)}
  .knob{width:24px;height:24px;border-radius:12px;background:var(--muted);transition:transform .15s,background .15s}
  .tog.on .knob{background:#111;transform:translateX(20px)}

  /* Quote sheet */
  .quote{background:#F7F8FA;border-radius:16px;padding:20px;margin-top:20px;color:#111}
  .quote h3{margin:0 0 4px;font-size:20px}
  .quote .q-date{color:#555;font-size:14px;margin-bottom:16px}
  .q-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #E3E6EA;color:#333;font-size:14px}
  .q-row b{color:#111}
  .q-total{display:flex;justify-content:space-between;padding:13px 0;border-bottom:2px solid #CCC;color:#111;font-weight:800;font-size:16px}
  .q-total.grand .q-val{font-size:24px;color:#8A5E12}
  .q-note{color:#555;font-size:13px;margin-top:14px;line-height:1.5}

  /* Modal */
  .modal{position:fixed;inset:0;background:rgba(0,0,0,.65);display:none;align-items:flex-end;z-index:50}
  .modal.on{display:flex}
  .sheet{
    background:var(--bg);width:100%;max-height:92%;overflow-y:auto;
    border-radius:24px 24px 0 0;padding:20px;padding-bottom:calc(20px + var(--safe-bottom));
  }
  .sheet h3{margin:0 0 18px;color:#fff;font-size:20px;font-weight:800}

  /* FAB-ish */
  .add-btn{
    position:sticky;bottom:0;left:0;right:0;background:var(--amber);border:0;
    padding:18px;color:#111;font-size:16px;font-weight:800;letter-spacing:1px;
    font-family:inherit;cursor:pointer;width:100%;
  }
  .empty{color:var(--muted);font-size:14px;text-align:center;padding:24px 0}
  .note{color:var(--muted);font-size:12px;margin-top:14px;line-height:1.6}
  .toast{
    position:fixed;left:50%;transform:translateX(-50%);bottom:calc(28px + var(--safe-bottom));
    background:var(--card-alt);border:1px solid var(--amber);color:#fff;
    padding:13px 20px;border-radius:12px;font-size:14px;z-index:100;display:none;
  }
  .toast.on{display:block}
  textarea{font-family:inherit}
