:root{
  --bg:#f7f3f2;
  --panel:#fff;
  --text:#211b1b;
  --muted:#74686a;
  --border:#eadedf;
  --primary:#9a373d;
  --primary2:#7f2d32;
  --primary3:#b34b51;
  --soft:#f7e8e9;
  --soft2:#fbf5f5;
  --danger:#b52d34;
  --shadow:0 10px 30px rgba(80,35,38,.07);
  --radius:16px
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}
.sidebar{background:#171313;color:white;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid #2d2021}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:4px 8px 24px}
.brand-logo-wrap{width:165px;height:56px;display:flex;align-items:center;justify-content:flex-start}
.topbar-logo-wrap{width:86px;height:28px;display:none;align-items:center;justify-content:flex-start}
.brand img,.topbar-logo-wrap img{width:100%;height:100%;object-fit:contain}
.brand-text{display:flex;flex-direction:column}
.brand-mini{display:none}
.brand strong{font-size:13px}.brand span{display:block;color:#baaaac;font-size:11px;margin-top:3px}
.sidebar nav{display:grid;gap:7px}
.nav-btn{border:0;background:transparent;color:#d5c9ca;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer}.nav-btn:hover,.nav-btn.active{background:var(--primary);color:#fff}.sidebar-footer{margin-top:auto;padding:12px 8px;display:flex;align-items:center;justify-content:space-between}
.main{min-width:0}.topbar{height:82px;padding:16px 28px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:5}.topbar h2{margin:0;font-size:20px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.rate-pill{margin-left:auto;background:var(--soft);color:var(--primary2);padding:10px 14px;border-radius:999px;font-size:13px;border:1px solid #efd5d7}.mobile-menu{display:none}.view{display:none;padding:26px}.view.active{display:block}.layout-two{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:22px}.layout-two.narrow-right{grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.panel h3,.panel h4{margin:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-head .helper{margin:6px 0 0;max-width:720px}.field-grid{display:grid;gap:14px}.field-grid.two{grid-template-columns:1fr 1fr}.calc-grid .calc-read-field{grid-column:1/-1}label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:650;margin-bottom:14px}input,select,textarea{width:100%;border:1px solid var(--border);background:#fff;border-radius:10px;padding:11px 12px;color:var(--text);outline:none;min-height:46px;box-sizing:border-box}select{padding-right:34px}input:focus,select:focus,textarea:focus{border-color:#c8757a;box-shadow:0 0 0 3px #f7e8e9}.currency-input{display:grid;grid-template-columns:minmax(0,1fr) 98px;align-items:stretch;min-width:0}.currency-input input{border-radius:10px 0 0 10px;border-right:0;min-width:0}.currency-input select{border-radius:0 10px 10px 0;background:var(--soft);color:var(--primary2);font-weight:800;text-align:center;padding:11px 34px 11px 14px;cursor:pointer;min-width:98px;white-space:nowrap;text-overflow:clip;overflow:visible}.currency-input:focus-within{border-radius:10px;box-shadow:0 0 0 3px #f7e8e9}.currency-input:focus-within input,.currency-input:focus-within select{border-color:#c8757a;box-shadow:none}.read-field{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;background:var(--soft2)}.read-field span{font-size:11px;color:var(--muted)}.read-field small{font-size:11px;color:var(--muted);margin-top:3px}.read-field strong{margin-top:3px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:22px 0 10px}.btn{border:0;border-radius:10px;padding:11px 15px;font-weight:700;cursor:pointer}.btn.primary{background:var(--primary);color:white}.btn.primary:hover{background:var(--primary2)}.btn.secondary{background:var(--soft);color:var(--primary2);border:1px solid #efd5d7}.btn.ghost{background:#f5f1f1;color:#55494b}.btn.small{padding:8px 11px;font-size:12px}.btn.wide{width:100%}.top-gap{margin-top:16px}.link-btn{border:0;background:transparent;color:inherit;cursor:pointer;padding:4px;font-size:12px}.items-list{display:grid;gap:9px}.item-row{display:grid;grid-template-columns:1.05fr 1.4fr .55fr .8fr .8fr 34px;gap:8px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:12px;background:#fff}.item-total{text-align:right;font-size:13px}.icon-btn{width:32px;height:32px;border:0;border-radius:9px;background:#f6eeee;color:var(--primary2);cursor:pointer;font-size:19px}.sticky-result{position:sticky;top:104px;align-self:start}.profit-card{background:linear-gradient(145deg,#8f3036,#a94349);color:white;border-radius:14px;padding:22px;margin-bottom:14px;box-shadow:0 8px 22px rgba(154,55,61,.18)}.profit-card span{color:#f3dfe0;font-size:12px}.profit-card strong{display:block;font-size:34px;line-height:1.15;margin:5px 0}.profit-card small{display:block;color:#f8e9ea}.summary-row{display:grid;grid-template-columns:1fr auto;gap:4px;padding:11px 2px;border-bottom:1px solid var(--border);align-items:center}.summary-row small{grid-column:2;color:var(--muted);font-size:11px;text-align:right}.summary-row.total{border-bottom:0;border-top:2px solid #ead7d9;margin-top:5px;padding-top:14px}.summary-row.emphasized{font-size:15px}.formula-note{font-size:11px;color:var(--muted);background:var(--soft2);border:1px solid #f1e4e5;border-radius:10px;padding:10px;margin-top:12px;line-height:1.5}.badge{display:inline-flex;background:#eee8e8;color:#5f5354;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700}.badge.accent{background:var(--soft);color:var(--primary2)}.search{max-width:260px}.card-list{display:grid;gap:10px}.list-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:14px;background:#fff}.list-card h4{margin:0 0 5px}.list-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.saved-line{display:block}.saved-line+.saved-line{margin-top:2px}.list-card .actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.mini-btn{border:0;border-radius:8px;padding:7px 9px;cursor:pointer;background:#f4eded;color:#54484a;font-size:11px;font-weight:700}.mini-btn:hover{background:#eee1e2}.mini-btn.danger{color:var(--danger)}.mini-btn.excel-btn{background:#eee8e8;color:var(--primary2)}.settings-grid{display:grid;gap:22px}.carrier-box{border:1px solid var(--border);border-radius:14px;padding:16px;margin-top:14px;background:#fff}.carrier-head-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.carrier-tools{display:flex;gap:8px;flex-wrap:wrap;margin:-2px 0 12px}.tariff-header,.tariff-row{display:grid;grid-template-columns:1fr 1fr 34px;gap:8px}.tariff-header{color:var(--muted);font-size:11px;font-weight:700;padding:0 2px 4px}.tariff-row{margin-top:8px}.save-carrier{margin-top:12px}.button-row{display:flex;gap:9px;flex-wrap:wrap}.cloud-panel p,.helper{color:var(--muted);font-size:13px}.tariffs.collapsed .tariff-row:nth-child(n+7){display:none}.show-more-wrap{margin-top:10px}.show-more-btn{border:0;background:#f5eeee;color:var(--primary2);padding:8px 12px;border-radius:10px;cursor:pointer;font-weight:700;font-size:12px}.toast{position:fixed;right:22px;bottom:22px;background:#2a1c1d;color:#fff;border-radius:10px;padding:11px 14px;z-index:50;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;font-size:13px}.toast.show{opacity:1;transform:translateY(0)}.auth-screen{position:fixed;inset:0;background:rgba(247,243,242,.97);z-index:100;display:grid;place-items:center;padding:20px}.auth-card{width:min(390px,100%);background:white;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:28px;text-align:center}.auth-logo{width:150px;height:50px;object-fit:contain;margin-bottom:12px}.auth-card h1{font-size:22px;margin:0 0 7px}.auth-card p{color:var(--muted);font-size:13px}.auth-card input{margin-top:9px}.auth-card button{margin-top:10px}.auth-card small{display:block;color:var(--muted);margin-top:14px;line-height:1.5}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;z-index:20;width:240px;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:block;border:0;background:#f6eeee;color:var(--primary2);border-radius:8px;padding:8px 10px}.topbar-logo-wrap{display:flex}.layout-two,.layout-two.narrow-right{grid-template-columns:1fr}.sticky-result{position:static}.item-row{grid-template-columns:1fr 1fr}.item-total{text-align:left}.topbar{padding:14px 16px}.view{padding:16px}.rate-pill{font-size:11px}.field-grid.two,.carrier-head-grid{grid-template-columns:1fr}}
@media(max-width:560px){.currency-input{grid-template-columns:minmax(0,1fr) 92px}.currency-input select{min-width:92px;padding-right:30px}.item-row{grid-template-columns:1fr}.topbar p{display:none}.rate-pill{padding:8px 10px}.panel{padding:16px}.view{padding:12px}.brand-logo-wrap{width:150px;height:50px}.topbar-logo-wrap{width:72px;height:24px}.carrier-tools{display:grid;grid-template-columns:1fr 1fr}.carrier-tools .danger{grid-column:1/-1}.list-card{grid-template-columns:1fr}.list-card .actions{justify-content:flex-start}}
.sync-status-row{margin-top:14px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--soft2);display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px}.sync-status-row span{color:var(--muted)}.sync-conflict{margin-top:14px;padding:14px;border:1px solid #e6b8bb;border-radius:12px;background:#fff5f5}.sync-conflict p{margin:6px 0 12px;color:var(--muted);font-size:12px;line-height:1.45}


/* v4 account + mobile usability */
.auth-gate{position:fixed;inset:0;z-index:200;background:linear-gradient(145deg,#f7f3f2,#efe5e5);display:grid;place-items:center;padding:20px}
.auth-gate.hidden{display:none}
.auth-card{width:min(440px,100%);background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 20px 60px rgba(70,30,33,.13);padding:28px}
.auth-logo{display:block;width:150px;height:auto;margin:0 auto 22px}
.auth-card h2{margin:0 0 7px}.auth-card .helper{margin:0 0 20px}
.inline-error{margin-top:12px;border-radius:10px;padding:10px 12px;background:#fff0f0;border:1px solid #efc6c9;color:#9a2f35;font-size:12px}
.sync-badge{white-space:nowrap;margin-left:auto}.rate-pill{margin-left:0}
.profit-split{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.profit-split>div+div{border-left:1px solid rgba(255,255,255,.25);padding-left:20px}
.profit-split .cost-head{text-align:right}.profit-split .cost-head strong{font-size:26px}
.profit-split #profitMargin{display:inline;color:#f8e9ea;font-size:11px}
.calc-warnings{display:grid;gap:6px;margin:-3px 0 14px;padding:10px 12px;border:1px solid #f0d4b5;background:#fff8ef;color:#7b4b16;border-radius:10px;font-size:12px}
.products-stack{display:grid;gap:22px}
.account-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border);background:var(--soft2);padding:12px 14px;border-radius:12px;margin:14px 0}
.account-summary div{display:grid;gap:3px}.account-summary span{font-size:11px;color:var(--muted)}
.soft-rule{border:0;border-top:1px solid var(--border);margin:20px 0}
.field-grid.three{grid-template-columns:repeat(3,1fr)}.compact-gap{margin-top:12px}
.list-card.pinned{border-color:#d8b5b8;background:#fffafa}
.item-row{position:relative}.item-suggestions{position:absolute;z-index:20;left:calc(1.05fr);top:58px;min-width:260px;max-width:420px;background:white;border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 28px rgba(60,25,27,.14);overflow:hidden}
.item-suggestions button{display:flex;width:100%;border:0;border-bottom:1px solid var(--border);background:#fff;padding:10px 12px;text-align:left;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.item-suggestions button:last-child{border-bottom:0}.item-suggestions button:hover{background:var(--soft2)}.item-suggestions small{color:var(--muted)}
@media(max-width:900px){
  input,select,textarea{font-size:16px}
  .sync-badge{font-size:10px;padding:5px 7px}
  .profit-split{grid-template-columns:1fr 1fr;gap:12px}.profit-split>div+div{padding-left:12px}
  .profit-split .cost-head strong{font-size:22px}.profit-card strong{font-size:28px}
  .field-grid.three{grid-template-columns:1fr}
  .item-suggestions{left:8px;right:8px;top:106px;min-width:0;max-width:none}
}


@media(max-width:560px){
  .currency-input{
    grid-template-columns:minmax(0,1fr) 108px;
  }
  .currency-input select{
    min-width:108px;
    width:108px;
    padding:11px 30px 11px 12px;
    font-size:16px;
    text-align:left;
    overflow:hidden;
  }
}

/* compact, balanced mobile header */
@media(max-width:560px){
  .topbar{
    height:auto;
    min-height:82px;
    padding:8px 10px;
    gap:5px 7px;
    display:grid;
    grid-template-columns:42px 64px minmax(0,1fr) auto;
    grid-template-areas:
      "menu logo title title"
      ". . sync rate";
    align-items:center;
  }
  .mobile-menu{grid-area:menu;width:42px;height:38px;padding:0}
  .topbar-brand{grid-area:logo;min-width:0}
  .topbar-logo-wrap{width:64px;height:22px}
  .topbar>div:nth-of-type(2){grid-area:title;min-width:0}
  .topbar h2{font-size:17px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sync-badge{grid-area:sync;justify-self:end;margin:0;white-space:nowrap;font-size:9px;padding:5px 7px}
  .rate-pill{grid-area:rate;justify-self:end;margin:0;white-space:nowrap;max-width:none;padding:6px 9px;font-size:10px}
  .saved-metrics{font-weight:600;color:#5d5052}
}

/* saved calculation card hierarchy */
.saved-card{align-items:center}
.saved-main{min-width:0}
.saved-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin:2px 0 9px}
.saved-meta span{opacity:.55}
.saved-stats{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px}
.saved-stats>div{display:grid;gap:2px;padding:8px 10px;border-radius:9px;background:var(--soft2);border:1px solid #f1e4e5}
.saved-stats span{font-size:10px;color:var(--muted);font-weight:700}
.saved-stats strong{font-size:13px}
.saved-stats small{font-size:10px;color:var(--muted);line-height:1.25}
.saved-profit{background:#fff8f8!important;border-color:#ead2d4!important}
.mini-btn.icon-only{min-width:34px;padding-left:8px;padding-right:8px}

/* final compact mobile header */
@media(max-width:560px){
  .topbar{
    min-height:68px;
    padding:7px 10px 8px;
    gap:4px 7px;
    grid-template-columns:40px 76px minmax(0,1fr);
    grid-template-areas:
      "menu logo title"
      "sync sync rate";
    align-items:center;
  }
  .mobile-menu{width:40px;height:36px}
  .topbar-logo-wrap{width:76px;height:24px}
  .topbar h2{font-size:16px;line-height:1.1}
  .sync-badge{justify-self:start;margin-left:47px;font-size:9px;padding:4px 7px}
  .rate-pill{justify-self:end;font-size:10px;padding:5px 8px}
  .saved-card{padding:13px}
  .saved-card h4{font-size:16px;margin-bottom:3px}
  .saved-meta{font-size:10px;margin-bottom:8px;gap:5px}
  .saved-stats{grid-template-columns:1fr 1fr;gap:6px}
  .saved-stats>div{padding:7px 8px}
  .saved-profit{grid-column:1/-1}
  .saved-card .actions{margin-top:10px;gap:6px}
}

.saved-stats-compact{grid-template-columns:1fr 1fr}
@media(max-width:560px){
  .saved-stats-compact{grid-template-columns:1fr 1fr;gap:6px}
  .saved-stats-compact .saved-profit{grid-column:auto}
  .saved-stats-compact>div{min-height:72px}
  .saved-card .actions{margin-top:8px}
}

.recovery-box{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:grid;gap:10px}.recovery-box.hidden{display:none}

.edit-mode-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;border:1px solid #d8b5b8;background:#fff7f7;border-radius:10px;color:#6f2c31}
.edit-mode-banner strong{font-size:13px}
.edit-mode-banner span{font-size:11px;color:var(--muted)}
@media(max-width:560px){
  .edit-mode-banner{padding:9px 10px;gap:4px;display:grid}
  .edit-mode-banner strong{font-size:12px}
  .edit-mode-banner span{font-size:10px}
}

.suggestion-label{padding:8px 12px 6px;font-size:10px;font-weight:800;color:var(--muted);background:var(--soft2);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em}
.mobile-add-item{display:none}
@media(max-width:560px){
  .mobile-add-item{
    display:flex;
    position:fixed;
    z-index:60;
    right:16px;
    bottom:calc(16px + env(safe-area-inset-bottom));
    min-height:46px;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border-radius:999px;
    box-shadow:0 10px 28px rgba(60,25,27,.22);
    font-size:13px;
  }
  #calculatorView.active .panel:first-child{padding-bottom:82px}
}

/* Mobile product add button: stays inside the product list, directly below the newest row. */
@media(max-width:560px){
  .mobile-add-item{
    display:flex;
    position:static;
    width:100%;
    min-height:44px;
    margin:2px 0 0;
    align-items:center;
    justify-content:center;
    padding:10px 14px;
    border-radius:10px;
    box-shadow:none;
    font-size:13px;
  }
  #calculatorView.active .panel:first-child{padding-bottom:16px}
}

/* Final mobile quick-add placement: only inside the newest product card. */
.item-add-next{display:none}
@media(max-width:560px){
  .mobile-add-item{display:none!important;position:static!important;z-index:auto!important;right:auto!important;bottom:auto!important;width:auto!important}
  .item-row{position:relative;padding-bottom:12px}
  .item-row .item-add-next{display:none}
  #itemsList .item-row:first-of-type .item-add-next{
    display:flex;
    position:absolute;
    right:10px;
    bottom:10px;
    width:auto;
    min-height:40px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border-radius:10px;
    box-shadow:none;
    font-size:12px;
    z-index:1;
  }
}


/* Smaller mobile header: layout only; no app logic affected. */
@media(max-width:560px){
  .topbar{
    min-height:58px;
    padding:5px 10px 6px;
    gap:2px 7px;
  }
  .mobile-menu{height:34px}
  .topbar-logo-wrap{height:22px}
  .sync-badge{padding:3px 7px}
  .rate-pill{padding:4px 8px}
}


/* Mobile header: page title already exists in each view, keep only status + rate. */
@media(max-width:560px){
  .topbar{
    min-height:52px;
    padding:6px 10px;
    gap:7px;
    grid-template-columns:40px 76px minmax(0,1fr) auto;
    grid-template-areas:"menu logo sync rate";
    align-items:center;
  }
  .topbar>div:nth-of-type(2){display:none}
  .mobile-menu{grid-area:menu;width:40px;height:36px}
  .topbar-brand{grid-area:logo}
  .topbar-logo-wrap{width:76px;height:24px}
  .sync-badge{
    grid-area:sync;
    justify-self:end;
    margin:0;
    font-size:9px;
    padding:4px 7px;
  }
  .rate-pill{
    grid-area:rate;
    justify-self:end;
    margin:0;
    font-size:10px;
    padding:5px 8px;
  }
}
