:root{--navy:#0b1f3a;--blue:#1687e8;--bg:#f4f7fb;--card:#fff;--muted:#6d7a8b;--line:#dce4ee;--green:#28a96b;--red:#e45353;--amber:#d9961b}
*{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(--navy)}
.topbar{position:sticky;top:0;z-index:10;height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px}.brand{display:flex;gap:10px;align-items:center}.brand .mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,var(--navy),var(--blue));color:#fff;display:grid;place-items:center;font-weight:900}.brand strong{display:block;letter-spacing:.06em}.brand span{display:block;font-size:11px;color:var(--muted)}.user{width:38px;height:38px;border-radius:50%;background:#e8f2fd;color:#1467a7;display:grid;place-items:center;font-weight:700}
main{max-width:1180px;margin:auto;padding:24px 18px 100px}.view{display:none}.view.active{display:block}.hero{background:linear-gradient(135deg,#0b1f3a,#123d6c);color:#fff;border-radius:22px;padding:28px;display:flex;justify-content:space-between;align-items:end;gap:20px}.hero h1{margin:4px 0 8px;font-size:34px}.hero p{margin:0;color:#d7e6f5}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;color:#3c88c7}.hero .eyebrow{color:#6bbdff}.primary{border:0;border-radius:12px;padding:12px 16px;background:var(--blue);color:#fff;font-weight:800;cursor:pointer}.link{border:0;background:none;color:#1673bd;font-weight:700;cursor:pointer}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 20px rgba(11,31,58,.04)}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:30px;margin-top:6px}.grid2{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head h1,.section-head h2{margin:0}.list{display:grid;gap:10px}.row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}.row:last-child{border-bottom:0}.row small{color:var(--muted)}.badge{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.green{background:#e5f6ee;color:#15764a}.red{background:#fdeaea;color:#b23838}.amber{background:#fff3dc;color:#9a6510}.blue{background:#e8f3fd;color:#1467a7}.search{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:16px;font-size:15px}.cards{display:grid;gap:14px}.boat-card,.work-card,.time-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.boat-top,.work-top,.time-top{display:flex;justify-content:space-between;gap:16px}.meta{color:var(--muted);font-size:13px;margin-top:4px}.checkgrid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-top:14px}.check{display:flex;gap:7px;align-items:center;background:#f7f9fc;border-radius:12px;padding:10px}.check input{transform:scale(1.15)}.bottomnav{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);display:flex;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 35px rgba(11,31,58,.16);padding:6px;z-index:20}.bottomnav button{width:92px;border:0;background:transparent;color:#708197;border-radius:13px;padding:8px 6px;font-size:18px;cursor:pointer}.bottomnav button span{display:block;font-size:11px;font-weight:700}.bottomnav button.active{background:#eaf4fd;color:#116bb0}
dialog{border:0;border-radius:20px;padding:0;width:min(520px,92vw);box-shadow:0 30px 80px rgba(0,0,0,.28)}dialog::backdrop{background:rgba(7,18,33,.55)}dialog form{padding:22px}dialog h3{margin-top:0}label{display:block;font-size:13px;font-weight:700;margin:12px 0}input,textarea,select{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit}textarea{min-height:90px}menu{display:flex;justify-content:flex-end;gap:10px;padding:0;margin:18px 0 0}menu button{border:0;border-radius:10px;padding:10px 14px;cursor:pointer}
@media(max-width:800px){.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:28px}.checkgrid{grid-template-columns:repeat(2,1fr)}main{padding:16px 12px 100px}.bottomnav{width:calc(100% - 20px)}.bottomnav button{flex:1;width:auto}}
.top-actions{display:flex;gap:10px;align-items:center}.top-actions select{width:auto;margin:0;padding:8px 10px}.clickable{cursor:pointer}.back{border:0;background:none;font-weight:800;color:#126bc5;margin-bottom:14px}.detail-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.detail-hero h1{margin:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.engine-card,.current-work{padding:12px 0;border-top:1px solid #e7edf3}.service-board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-item{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;text-align:left;padding:12px;border:1px solid #dfe6ee;border-radius:12px;background:white}.service-item span{font-size:20px}.service-item small{font-weight:800}.service-item.done{background:#edf8f0;border-color:#b8dfc1}.service-item.done span,.service-item.done small{color:#16803b}.service-item.na{background:#f3f5f7;color:#7c8794}.service-item.todo small{color:#a35b00}.history{padding:12px 0;border-top:1px solid #e7edf3}.hint{font-size:12px;color:#6d7a88}.mini-progress{margin-top:12px;color:#516171}@media(max-width:760px){.detail-grid,.service-board{grid-template-columns:1fr}.detail-hero{flex-direction:column}.service-item{grid-template-columns:28px 1fr auto}}
.request-card{margin-bottom:16px;border-left:4px solid var(--blue)}.request-text{font-size:16px;line-height:1.6;white-space:pre-wrap}.storage-status{display:flex;gap:8px;flex-wrap:wrap}.storage-chip{padding:9px 12px;border-radius:999px;background:#eef3f8;font-weight:700;font-size:13px}.storage-chip.ok{background:#e5f6ee;color:#15764a}.attendance-card{margin-top:16px}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:18px;margin:12px 0 16px}.calendar-toolbar button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 13px;cursor:pointer}.attendance-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.cal-head{text-align:center;font-size:11px;font-weight:800;color:var(--muted);padding:4px}.cal-day{min-height:82px;border:1px solid var(--line);border-radius:11px;padding:8px;background:#fff;display:flex;flex-direction:column;gap:5px}.cal-day b{font-size:13px}.cal-day span{font-size:11px;color:var(--muted)}.cal-day strong{font-size:12px;color:#176fae}.cal-day.problem{background:#fff3dc;border-color:#efc978}.cal-day.empty{border:0;background:transparent}.muted{opacity:.45}.calendar-summary{display:flex;gap:12px;margin-top:14px}.calendar-summary>div{background:#f6f9fc;border-radius:12px;padding:12px 16px;min-width:140px}.calendar-summary span{display:block;font-size:12px;color:var(--muted)}.calendar-summary strong{font-size:22px}.inline-check{display:flex;align-items:center;gap:10px}.inline-check input{width:auto;margin:0}@media(max-width:700px){.attendance-calendar{gap:3px}.cal-day{min-height:68px;padding:5px}.cal-day span{font-size:9px}.cal-day strong{font-size:10px}.calendar-summary{flex-direction:column}.calendar-summary>div{min-width:0}}

.staff-link{border:0;background:none;padding:0;color:var(--navy);font:inherit;font-weight:800;cursor:pointer;text-align:left}.staff-link:hover{color:var(--blue)}
.form-section{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}.form-section h4{margin:0 0 6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compact{margin:0}.hidden{display:none!important}.match-list{display:grid;gap:6px;margin-top:-4px}.match-item,.existing-boat-btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;text-align:left;cursor:pointer}.match-item:hover,.existing-boat-btn:hover{background:#eef6ff}.existing-boats{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.storage-edit{display:grid;gap:10px}.storage-edit .inline-check{padding:8px 0}.ready-banner{display:inline-flex;align-items:center;gap:7px}.ready-banner.green{background:#e5f6ee}.ready-banner.red{background:#fdeaea}@media(max-width:700px){.form-grid{grid-template-columns:1fr}}

.timer-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #e6ebf1}.timer-row strong{margin-right:auto}.danger{background:#b42318;color:#fff;border:0;border-radius:10px;padding:10px 14px;font-weight:700}

/* v7 planning & dialog improvements */
.work-dialog{width:min(900px,96vw);max-height:92vh;overflow:auto}
.work-dialog form{padding:26px}.work-dialog textarea{min-height:110px}.work-dialog .checkgrid{grid-template-columns:repeat(3,minmax(150px,1fr))}
.stat small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.stat.clickable:hover{border-color:#9fc8e7}
.waiting-check{display:flex;align-items:center;gap:10px;margin-top:30px}.waiting-check input{width:auto;margin:0;transform:scale(1.15)}
.work-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.compact-btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer;font-weight:700}.compact-btn.amber-btn{background:#fff3dc;color:#8b5a08;border-color:#efd7a9}
.capacity-control{display:flex;align-items:center;gap:10px;margin:0}.capacity-control input{width:76px;margin:0}.launch-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.launch-day{min-height:116px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;cursor:pointer}.launch-day:hover{border-color:#78b5df}.launch-day.empty{background:transparent;border:0;cursor:default}.launch-day .day-num{font-weight:800}.launch-day .load{display:block;margin-top:10px;font-size:12px;font-weight:800}.launch-day .boats-mini{display:grid;gap:3px;margin-top:7px;font-size:11px;color:var(--muted)}.launch-day.available{box-shadow:inset 0 0 0 1px #d8efe4}.launch-day.busy{box-shadow:inset 0 0 0 1px #f0d39d}.launch-day.full{box-shadow:inset 0 0 0 1px #efb7b7}.launch-day-panel{margin-top:14px}.launch-date-badge{margin-left:8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:800px){.work-dialog{width:96vw}.work-dialog .checkgrid{grid-template-columns:repeat(2,1fr)}.launch-calendar{gap:4px}.launch-day{min-height:92px;padding:7px}.launch-day .boats-mini{display:none}.bottomnav button{font-size:16px}.form-grid{grid-template-columns:1fr}.waiting-check{margin-top:8px}}
.requested-work{margin:12px 0}.work-task{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;margin-top:7px;border:1px solid #dbe4ea;border-radius:10px;background:#fff;cursor:pointer}.work-task input{width:18px;height:18px}.work-task.task-done span:nth-child(2){text-decoration:line-through;opacity:.65}

.delete-btn{border-color:#dc3545!important;color:#b42318!important;background:#fff!important}.delete-btn:hover{background:#fff1f1!important}

.search-info{font-size:12px;color:var(--muted);text-align:right;margin:-10px 4px 12px}.empty-search{text-align:center;color:var(--muted)}
/* v8 boat photos + parts inventory */
.parts-tools{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.scan-btn{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px 16px;font-weight:800;cursor:pointer}.parts-stats{grid-template-columns:repeat(3,1fr)}.part-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.part-head{display:flex;justify-content:space-between;gap:12px}.part-code{font-family:monospace;background:#f3f6f9;padding:4px 7px;border-radius:7px}.part-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.qty-big{font-size:26px;font-weight:900}.low-stock{border-color:#e7b36a;background:#fffaf1}.input-action{display:grid;grid-template-columns:1fr 44px;gap:6px}.input-action button{margin-top:6px;border:1px solid var(--line);border-radius:10px;background:#fff}.scanner-wrap{padding:22px}.scanner-wrap h3{margin-top:0}#scannerVideo{width:100%;max-height:55vh;background:#0b1f3a;border-radius:14px;object-fit:cover}.boat-thumb{width:92px;height:72px;object-fit:cover;border-radius:12px;background:#eef2f5;flex:none}.boat-card-main{display:flex;gap:14px;align-items:flex-start}.boat-hero-photo{width:100%;max-height:360px;object-fit:cover;border-radius:18px;margin:0 0 16px}.photo-actions{display:flex;gap:8px;margin:8px 0 16px}.photo-placeholder{width:92px;height:72px;border-radius:12px;background:#eef3f8;display:grid;place-items:center;font-size:28px;flex:none}.stock-history{font-size:12px;color:var(--muted);margin-top:10px}.bottomnav{max-width:calc(100vw - 20px)}
@media(max-width:800px){.parts-tools{grid-template-columns:1fr}.parts-stats{grid-template-columns:repeat(3,1fr)}.parts-stats .stat{padding:12px}.parts-stats .stat strong{font-size:22px}.boat-thumb,.photo-placeholder{width:72px;height:58px}.bottomnav button{padding-left:3px;padding-right:3px}}
.engine-editor{display:grid;gap:10px}.engine-row{display:grid;grid-template-columns:1.2fr 1.2fr .7fr 1fr 1fr auto;gap:8px;align-items:end;padding:10px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc}.engine-row label{margin:0}.engine-row button{height:42px}.price-input{width:100px;min-width:82px;padding:7px 9px;border:1px solid #cfd8e5;border-radius:8px}.invoice-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.invoice-table{width:100%;border-collapse:collapse;margin-top:12px}.invoice-table th,.invoice-table td{padding:10px;border-bottom:1px solid #e6ebf2;text-align:left}.invoice-table th:last-child,.invoice-table td:last-child{text-align:right}.invoice-summary{margin-left:auto;max-width:340px;margin-top:16px}.invoice-summary div{display:flex;justify-content:space-between;padding:6px 0}.invoice-summary .total{font-size:1.15rem;border-top:2px solid #0b1f3a;margin-top:6px;padding-top:10px}.payroll-settings{margin-bottom:16px}.payroll-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.salary-summary{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:10px;margin-top:14px}.salary-summary div{background:#f8fafc;border-radius:10px;padding:10px}.salary-summary span{display:block;color:#667085;font-size:.82rem}.salary-summary strong{display:block;margin-top:3px}.engine-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.engine-tag{background:#eef4ff;border-radius:999px;padding:4px 8px;font-size:.8rem}.work-price-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.work-price-row label{display:flex;align-items:center;gap:6px;font-size:.82rem;color:#667085}.part-prices{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:.85rem;color:#475467}
@media(max-width:800px){.engine-row{grid-template-columns:1fr 1fr}.engine-row button{grid-column:1/-1}.salary-summary{grid-template-columns:1fr 1fr}.invoice-table{font-size:.9rem}.invoice-table th,.invoice-table td{padding:8px 5px}}
@media print{body *{visibility:hidden}#invoiceDialog,#invoiceDialog *{visibility:visible}#invoiceDialog{position:absolute;inset:0;width:100%;max-width:none;border:0;box-shadow:none}#invoiceDialog menu,#invoiceDialog button{display:none!important}}

.invoice-edit-list{display:grid;gap:8px;margin:14px 0}.invoice-edit-row{display:grid;grid-template-columns:34px minmax(180px,2fr) 90px 110px 110px 40px;gap:8px;align-items:center}.invoice-edit-row input{width:100%}.invoice-admin-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.choice-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.qty-with-unit{display:flex;gap:8px;align-items:center}.qty-with-unit input{flex:1}@media(max-width:700px){.invoice-edit-row{grid-template-columns:28px 1fr 70px 85px}.invoice-edit-row strong{grid-column:2/4}.invoice-admin-fields{grid-template-columns:1fr}}
.linked-part-price{margin:7px 0 0 28px;padding:8px 10px;border-radius:10px;background:rgba(16,185,129,.08);font-size:12px;line-height:1.45;color:#1f2937}.linked-part-price strong{color:#0f766e}

/* v10.4 — safe dialog margins and fully visible text on every screen */
:root{--dialog-safe:10mm}
dialog{
  max-width:calc(100vw - (2 * var(--dialog-safe)));
  max-height:calc(100dvh - (2 * var(--dialog-safe)));
  margin:auto;
  overflow:auto;
  overscroll-behavior:contain;
}
dialog>form,
dialog>.scanner-wrap,
dialog>div:not(.scanner-wrap){
  padding:clamp(18px,3vw,28px);
}
dialog form{padding:clamp(18px,3vw,28px)}
dialog h3,dialog h4,dialog p,dialog label,dialog button,dialog input,dialog select,dialog textarea{
  overflow-wrap:anywhere;
  word-break:normal;
}
dialog menu{
  flex-wrap:wrap;
  row-gap:10px;
  padding-bottom:2px;
}
dialog menu button{white-space:normal;min-height:42px}
.choice-buttons button{white-space:normal;line-height:1.25;min-height:42px}
.work-dialog{
  width:min(900px,calc(100vw - (2 * var(--dialog-safe))));
  max-height:calc(100dvh - (2 * var(--dialog-safe)));
}
#consumableDialog{width:min(700px,calc(100vw - (2 * var(--dialog-safe))))}
#invoiceDialog{width:min(980px,calc(100vw - (2 * var(--dialog-safe))))}
#scannerDialog{width:min(620px,calc(100vw - (2 * var(--dialog-safe))))}

@media(max-width:700px){
  :root{--dialog-safe:10mm}
  dialog,.work-dialog,#consumableDialog,#invoiceDialog,#scannerDialog{
    width:calc(100vw - (2 * var(--dialog-safe)));
    max-width:calc(100vw - (2 * var(--dialog-safe)));
    max-height:calc(100dvh - (2 * var(--dialog-safe)));
  }
  dialog>form,dialog>.scanner-wrap,dialog>div:not(.scanner-wrap),dialog form{padding:18px}
  .choice-buttons{display:grid;grid-template-columns:1fr}
  .choice-buttons button{width:100%}
  .qty-with-unit{align-items:stretch}
  .qty-with-unit strong{display:flex;align-items:center;padding:0 4px}
}
/* v10.5 — secure boat QR labels */
.qr-wrap{padding:clamp(18px,3vw,28px);text-align:center}.qr-code-box{display:grid;place-items:center;margin:12px auto;max-width:280px}.qr-code-box svg{width:min(240px,100%);height:auto}.qr-boat-label{display:grid;gap:4px;margin:8px 0 14px}.qr-boat-label strong{font-size:20px;color:#0b1f3a}.qr-boat-label span{font-size:18px;font-weight:800}.qr-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.qr-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}
.invoice-history-card{display:grid;gap:14px}.invoice-history-total{display:flex;align-items:baseline;gap:10px}.invoice-history-total strong{font-size:1.45rem}.invoice-history-total span{color:var(--muted,#667085)}

/* VESSIGO Cloud authentication */
.cloud-auth-gate{display:none;position:fixed;inset:0;z-index:9999;background:#07182c;align-items:center;justify-content:center;padding:20px}.cloud-auth-gate.show{display:flex}.cloud-auth-card{width:min(420px,100%);background:white;border-radius:20px;padding:26px;box-shadow:0 24px 70px #0006}.cloud-auth-card label{display:block;margin:14px 0}.cloud-auth-card label span{display:block;margin-bottom:6px;font-weight:600}.cloud-auth-card input{width:100%;box-sizing:border-box}.cloud-auth-card .primary{width:100%;margin-top:8px}.cloud-brand{color:#0b1f3a;margin-bottom:22px}.cloud-brand span{display:block;font-size:12px;font-weight:400}.top-actions #cloudUserBadge{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* VESSIGO v10.8 employee profiles */
.employee-profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.profile-action-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.danger-btn{border:1px solid #e2a3a3;background:#fff3f3;color:#a62c2c;border-radius:10px;padding:10px 14px;font-weight:700}
.employee-inactive{opacity:.72;background:#f7f8fa}
.check-row{display:flex!important;align-items:center;gap:10px;margin-top:14px}.check-row input{width:auto!important}
#editEmployeeDialog{max-width:720px;width:min(92vw,720px)}
#editEmployeeDialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){#editEmployeeDialog .form-grid{grid-template-columns:1fr}.profile-action-row>*{flex:1 1 100%}}
/* v3 mobile fit */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}body{overflow-x:hidden;max-width:100vw}.app-shell,.view{max-width:100%;min-width:0}.card,.hero,.row,.section-head{min-width:0}input,select,textarea,button{font-size:16px}.cards,.grid2,.stats{min-width:0}
@media(max-width:700px){body{width:100%;margin:0}.topbar{padding:8px 10px;gap:8px;flex-wrap:wrap}.brand small{display:none}.top-actions{margin-left:auto;gap:6px}.top-actions select,.top-actions button{max-width:92px;padding:7px 8px}.view{padding:12px 10px 92px}.hero{padding:18px 14px;border-radius:16px;display:block}.hero h1{font-size:28px;line-height:1.08}.hero .primary{width:100%;margin-top:12px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:12px}.stat strong{font-size:25px}.grid2{grid-template-columns:1fr;gap:10px}.section-head{align-items:flex-start;gap:8px;flex-wrap:wrap}.section-head .primary{width:auto}.row{gap:8px;align-items:flex-start}.row>div{min-width:0;overflow-wrap:anywhere}.badge{white-space:normal;text-align:center;flex:0 0 auto}.form-grid{grid-template-columns:1fr}.parts-tools{display:grid;grid-template-columns:1fr;gap:8px}.parts-tools .scan-btn{width:100%}.bottomnav{left:0;right:0;bottom:0;transform:none;width:100%;max-width:none;border-radius:0;padding:5px 4px calc(5px + env(safe-area-inset-bottom));overflow-x:auto;justify-content:flex-start}.bottomnav button{min-width:66px;flex:1 0 66px;padding:7px 3px;font-size:11px}.bottomnav button span{font-size:10px}dialog{width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 24px);margin:auto;padding:14px}dialog form,dialog>div{max-width:100%;overflow-x:hidden}.cards{grid-template-columns:1fr}.search{width:100%;box-sizing:border-box}}
