*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{min-height:100vh;margin:0;font-family:var(--font,'Inter',Arial,sans-serif);color:var(--text,#1a1a2e)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* Functional cards and forms */
.tracker-card,.request-form,.reservation-card,.portal-accordion,.loc-card,.portal-login-card,.profile-panel,.case-result{
  border:1px solid var(--border,#e8e0e6);
  background:var(--white,#fff);
  border-radius:var(--radius,14px);
  box-shadow:var(--shadow,0 2px 20px rgba(200,0,106,.08));
}
.tracker-title{font-size:18px;font-weight:850;margin:0 0 6px;color:var(--text,#1a1a2e)}
.tracker-sub{font-size:13px;color:var(--text2,#555577);margin:0 0 16px}
.search-row{display:grid;grid-template-columns:minmax(0,1fr) 260px auto;gap:10px;align-items:stretch}
.search-input,.form-input,.form-select,textarea.form-input,select.form-input{
  width:100%;min-width:0;height:46px;border:1px solid var(--border,#e8e0e6);border-radius:10px;
  background:#fbfcff;color:var(--text,#1a1a2e);padding:0 14px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
textarea.form-input{height:auto;min-height:96px;padding:13px 14px;resize:vertical}
.search-input:focus,.form-input:focus,.form-select:focus{border-color:var(--primary,#c8006a);background:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary,#c8006a) 13%,transparent)}
.search-btn,.submit-btn{
  min-height:46px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--primary,#c8006a),var(--secondary,#8b0035));
  color:#fff;font-weight:900;padding:0 24px;box-shadow:0 10px 22px color-mix(in srgb,var(--primary,#c8006a) 22%,transparent);
}
.submit-btn{width:100%;margin-top:4px}
.pin-input{max-width:none}
.pin-help{margin-top:10px;font-size:12px;line-height:1.4;color:var(--text3,#999ab0)}
.request-form{display:none;margin-top:14px;padding:24px}
.request-form.visible{display:block;animation:slideUp .25s ease}
#request-section .request-form:not(.visible){display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;padding-top:0!important;padding-bottom:0!important;margin-top:0!important;border:0!important;box-shadow:none!important;overflow:hidden!important}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-group{min-width:0;margin-bottom:14px}
.form-label{display:block;margin-bottom:6px;font-size:11px;font-weight:900;color:var(--text2,#555577);text-transform:uppercase;letter-spacing:.05em}
.file-input{display:block;width:100%;padding:12px;border:1.5px dashed var(--border,#e8e0e6);border-radius:10px;background:#fbfcff;color:var(--text2,#555577)}
.form-alert{display:none;margin:0 0 14px;padding:12px 14px;border-radius:10px;border:1px solid rgba(204,0,64,.22);background:var(--danger-bg,#fff0f4);color:var(--danger,#cc0040);font-size:13px;line-height:1.45}
.form-alert.visible{display:flex;gap:8px;align-items:flex-start;animation:slideUp .18s ease}
.form-input.is-invalid{border-color:var(--danger,#cc0040)!important;background:#fff7fa!important;box-shadow:0 0 0 3px rgba(204,0,64,.12)!important}
.field-error{margin-top:5px;font-size:12px;color:var(--danger,#cc0040);font-weight:700;line-height:1.35}
.field-ok{border-color:var(--success,#00a060)!important;box-shadow:0 0 0 3px rgba(0,160,96,.08)!important}
.shake{animation:shake .26s ease}

/* Service and request helpers */
.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.svc-card{
  min-height:118px;border:1px solid var(--border,#e8e0e6);border-radius:14px;background:#fff;padding:18px 14px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.svc-card:hover,.svc-card.active{transform:translateY(-1px);border-color:var(--primary,#c8006a);background:color-mix(in srgb,var(--primary,#c8006a) 6%,#fff);box-shadow:0 12px 28px color-mix(in srgb,var(--primary,#c8006a) 12%,transparent)}
.svc-icon{font-size:28px;margin-bottom:8px;line-height:1}
.svc-title{font-size:14px;font-weight:900;color:var(--text,#1a1a2e);margin-bottom:4px}
.svc-desc{font-size:12px;color:var(--text3,#999ab0);line-height:1.3}
.prob-tags{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px}
.prob-tag{padding:7px 12px;border-radius:999px;font-size:12px;font-weight:800;background:#fff;border:1px solid var(--border,#e8e0e6);color:var(--text,#1a1a2e);transition:.18s ease}
.prob-tag:hover,.prob-tag.active{background:color-mix(in srgb,var(--primary,#c8006a) 9%,#fff);border-color:var(--primary,#c8006a);color:var(--primary,#c8006a)}
.estimate-box{background:#e8f4ff;border:1px solid rgba(0,112,192,.24);border-radius:12px;color:#075985;padding:12px 14px;margin:10px 0 14px;line-height:1.45;font-size:13px}
.estimate-box strong,.estimate-box .estimate-price{color:var(--primary,#c8006a);font-weight:900}
.request-doc-box{display:none;border:1px solid rgba(245,166,35,.30);background:#fff8e8;border-radius:12px;padding:14px;margin:12px 0}
.request-doc-box.visible{display:block}
.portal-info-row{display:flex;justify-content:flex-end;margin:8px 0}
.portal-info-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(0,112,192,.22);background:#fff;color:var(--info,#0070c0);border-radius:999px;padding:7px 11px;font-weight:850;font-size:12px}
.portal-info-pop{display:none;background:var(--info-bg,#e8f4ff);border:1px solid rgba(0,112,192,.18);border-radius:10px;padding:12px 14px;font-size:13px;color:var(--info,#0070c0);line-height:1.45;margin:8px 0 12px}
.portal-info-pop.on{display:block}
.legal-stack{display:grid;gap:10px;margin:18px 0 14px;padding:14px 16px;border:1px solid var(--border,#e8e0e6);border-radius:12px;background:#fff}
.checkbox-row{display:flex;align-items:flex-start;gap:9px;margin:0;line-height:1.35;font-size:13px;color:var(--text2,#555577)}
.checkbox-row input{margin-top:2px;flex:0 0 auto;accent-color:var(--primary,#c8006a)}
.checkbox-row.is-invalid{border:1px solid rgba(204,0,64,.28);background:var(--danger-bg,#fff0f4);border-radius:10px;padding:9px 10px;color:var(--danger,#cc0040)}
a.legal-link{color:var(--primary,#c8006a);font-weight:850;text-decoration:none}
a.legal-link:hover{text-decoration:underline}

/* Recycling / remote support */
.remote-downloads{background:var(--warning-bg,#fff8e8);border:1px solid rgba(212,128,0,.25);border-radius:10px;padding:12px;font-size:13px;color:var(--warning,#d48000);margin:10px 0}
.recycle-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 16px}
.recycle-mode{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border,#e8e0e6);border-radius:14px;background:#fff;padding:14px;transition:.18s ease}
.recycle-mode:hover,.recycle-mode.active{border-color:var(--primary,#c8006a);background:color-mix(in srgb,var(--primary,#c8006a) 6%,#fff)}
.recycle-mode input{margin-top:3px;accent-color:var(--primary,#c8006a)}
.recycle-mode-title{display:block;font-weight:900;color:var(--text,#1a1a2e);font-size:14px;margin-bottom:3px}
.recycle-mode-desc{display:block;font-size:12px;color:var(--text2,#555577);line-height:1.35}
.recycle-subpanel{display:none;border:1px solid var(--border,#e8e0e6);border-radius:14px;background:rgba(255,255,255,.82);padding:14px;margin:10px 0}
.recycle-subpanel.visible{display:block;animation:slideUp .2s ease}
.recycle-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 14px}
.rc-step{background:#fbfcff;border:1px solid var(--border,#e8e0e6);border-radius:10px;padding:10px;text-align:center;font-size:11px;color:var(--text2,#555577)}
.rc-step-num{display:inline-flex;width:22px;height:22px;border-radius:50%;align-items:center;justify-content:center;background:var(--primary,#c8006a);color:#fff;font-weight:900;margin-bottom:5px}
.rc-step strong{display:block;color:var(--text,#1a1a2e);font-size:12px;margin-bottom:2px}
.recycle-warning{background:var(--danger-bg,#fff0f4);color:var(--danger,#cc0040);border:1px solid rgba(204,0,64,.20);border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.45;margin:10px 0}

/* Case tracking */
.case-result{display:none;overflow:hidden;margin-top:14px}
.case-result.visible{display:block;animation:slideUp .35s ease}
.cr-header{--case-accent:var(--primary,#c8006a);background:linear-gradient(135deg,color-mix(in srgb,var(--case-accent) 80%,#000 20%),var(--case-accent));color:#fff;padding:20px 24px;display:flex;align-items:flex-start;gap:16px}
.cr-header.is-error{--case-accent:#666}
.cr-header.case-status-intake-pending,.cr-note.case-status-intake-pending{--case-accent:#f5a623;--case-note-color:#f5a623}
.cr-header.case-status-new,.cr-note.case-status-new{--case-accent:#0070c0;--case-note-color:#0070c0}
.cr-header.case-status-diagnostic,.cr-note.case-status-diagnostic{--case-accent:#7c3aed;--case-note-color:#7c3aed}
.cr-header.case-status-progress,.cr-note.case-status-progress{--case-accent:#d48000;--case-note-color:#d48000}
.cr-header.case-status-waiting-parts,.cr-note.case-status-waiting-parts{--case-accent:#c05621;--case-note-color:#c05621}
.cr-header.case-status-waiting-client,.cr-note.case-status-waiting-client{--case-accent:#b7791f;--case-note-color:#b7791f}
.cr-header.case-status-ready,.cr-note.case-status-ready{--case-accent:#00a060;--case-note-color:#00a060}
.cr-header.case-status-delivered,.cr-note.case-status-delivered{--case-accent:#555577;--case-note-color:#555577}
.cr-header.case-status-cancelled,.cr-note.case-status-cancelled{--case-accent:#cc0040;--case-note-color:#cc0040}
.cr-icon{font-size:32px;flex-shrink:0}
.cr-info{flex:1;min-width:0}
.cr-code{font-size:12px;opacity:.78;font-weight:750;margin-bottom:4px;letter-spacing:.04em}
.cr-device{font-size:19px;font-weight:900;margin-bottom:4px;overflow-wrap:anywhere}
.cr-client{font-size:13px;opacity:.9}
.cr-status-badge{padding:7px 14px;border-radius:999px;font-size:12px;font-weight:900;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.30);white-space:nowrap}
.cr-body{padding:24px}
.timeline{position:relative;margin-bottom:24px}
.tl-track{display:flex;align-items:flex-start;position:relative}
.tl-track::before{content:"";position:absolute;top:20px;left:20px;right:20px;height:3px;background:var(--border,#e8e0e6);border-radius:3px}
.tl-line-fill{position:absolute;top:20px;left:20px;width:0;height:3px;background:var(--primary,#c8006a);border-radius:3px;transition:width .5s ease;z-index:0}
.tl-line-fill.step-1{width:25%}
.tl-line-fill.step-2{width:50%}
.tl-line-fill.step-3{width:75%}
.tl-line-fill.step-4{width:100%}
.tl-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;z-index:1}
.tl-dot{width:40px;height:40px;border-radius:50%;background:#edf2f7;display:flex;align-items:center;justify-content:center;font-size:16px;border:3px solid #fff;transition:.18s ease}
.tl-step.done .tl-dot{background:var(--primary,#c8006a);color:#fff}
.tl-step.current .tl-dot{background:var(--warning,#d48000);color:#fff;box-shadow:0 0 0 4px var(--warning-bg,#fff8e8)}
.tl-label{font-size:11px;font-weight:800;color:var(--text3,#999ab0);text-align:center}
.tl-step.done .tl-label{color:var(--primary,#c8006a)}
.tl-step.current .tl-label{color:var(--warning,#d48000)}
.cr-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.cr-meta-item{background:#fbfcff;border:1px solid var(--border,#e8e0e6);border-radius:12px;padding:12px 14px}
.cr-meta-label{font-size:11px;color:var(--text3,#999ab0);font-weight:850;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}
.cr-meta-value{font-size:13px;font-weight:900;color:var(--text,#1a1a2e)}
.history-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border,#e8e0e6)}
.history-item:last-child{border-bottom:0}
.history-dot{width:8px;height:8px;border-radius:50%;background:var(--primary,#c8006a);flex-shrink:0;margin-top:5px}
.history-dot.success{background:var(--success,#00a060)}
.history-dot.warning{background:var(--warning,#d48000)}
.history-dot.primary{background:var(--primary,#c8006a)}
.history-content{flex:1;min-width:0}
.history-action{font-size:13px;font-weight:850;color:var(--text,#1a1a2e);margin-bottom:2px}
.history-note{font-size:12px;color:var(--text2,#555577);overflow-wrap:anywhere}
.history-time{font-size:11px;color:var(--text3,#999ab0);white-space:nowrap}
.history-section-title{font-size:11px;font-weight:900;color:var(--primary,#c8006a);text-transform:uppercase;letter-spacing:.1em;margin:18px 0 12px}
.history-section-title.compact{margin-top:0}
.history-doc-link{color:var(--primary,#c8006a);text-decoration:none}
.history-label-icon{font-size:18px;line-height:1}
.cr-note{display:none;align-items:flex-start;gap:10px;border-radius:10px;padding:14px 16px;font-size:13px;line-height:1.45;margin-bottom:20px}
.cr-note.is-error{display:flex;background:#fff0f4;color:#cc0040;border:1px solid rgba(204,0,64,.20)}
.cr-note.is-status{display:flex;background:#e8f4ff;color:var(--case-note-color,var(--info,#0070c0));border:1px solid color-mix(in srgb,var(--case-note-color,var(--info,#0070c0)) 22%,transparent)}
.cr-tech-meta .cr-meta-value{font-size:14px;line-height:1.35}
.tech-inline-btn{border:0;background:transparent;color:var(--primary,#c8006a);font-weight:900;padding:0;text-align:left;text-decoration:underline;text-underline-offset:3px}
.request-doc-trigger{display:block;background:#fff;border-style:dashed}
.checkbox-row-spaced{margin-top:8px}
.form-help-muted{color:var(--text3,#999ab0);font-weight:400;text-transform:none}
.is-hidden{display:none!important}

/* Accordion, price list, success and modals */
.portal-accordion{overflow:hidden}
.portal-accordion-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}
.portal-accordion-body{display:none}
.portal-accordion.open .portal-accordion-body{display:block}
.portal-accordion-icon{transition:transform .18s ease}
.portal-accordion.open .portal-accordion-icon{transform:rotate(180deg)}
.public-price-cat{border:1px solid var(--border,#e8e0e6);border-radius:10px;margin:10px 0;overflow:hidden;background:#fff}
.public-price-cat summary{cursor:pointer;padding:12px 14px;font-weight:900;color:var(--primary,#c8006a);background:#fbfcff}
.public-price-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:10px;padding:10px 14px;border-top:1px solid var(--border,#e8e0e6);font-size:13px;align-items:center}
.public-price-row strong{font-size:13px;overflow-wrap:anywhere}
.public-price-value{text-align:right;font-weight:900;color:var(--text,#1a1a2e)}
.public-price-group{margin:14px 0 18px}
.public-price-group-title{font-size:13px;font-weight:900;color:var(--text,#1a1a2e);margin:10px 0 8px;text-transform:uppercase;letter-spacing:.04em}
.public-price-note{font-size:12px;color:var(--text2,#555577);background:var(--info-bg,#e8f4ff);border:1px solid rgba(0,112,192,.16);border-radius:10px;padding:10px 12px;margin-bottom:12px}
.success-msg{display:none;background:var(--success-bg,#e8fff2);border:1px solid rgba(0,160,96,.22);border-radius:14px;padding:24px;text-align:center}
.success-msg.visible{display:block;animation:slideUp .3s ease}
.success-msg-spaced{margin-top:16px}
.success-icon{font-size:40px;margin-bottom:12px}
.success-code{font-size:24px;font-weight:900;color:var(--primary,#c8006a);font-family:monospace;background:#fff;padding:8px 20px;border-radius:10px;display:inline-block;margin:12px 0;letter-spacing:.05em}
.success-title{font-size:18px;font-weight:900;margin:0 0 8px;color:var(--success,#00a060)}
.success-title-sm{font-size:16px}
.success-text{font-size:13px;color:var(--text2,#555577);margin:0 0 12px}
.success-text-spaced{margin:12px 0 8px}
.success-text-top{margin-top:8px}
.success-note{font-size:12px;color:var(--text3,#777);margin:12px 0 16px}
.success-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.success-action-btn{width:auto;padding:10px 20px}
.submit-btn-secondary{background:var(--bg,#fff)!important;color:var(--text,#1a1a2e)!important;border:2px solid var(--border,#e8e0e6)!important}
.legal-overlay{position:fixed;inset:0;background:rgba(17,24,39,.46);backdrop-filter:blur(7px);z-index:500;display:none;align-items:center;justify-content:center;padding:20px}
.legal-overlay.open{display:flex}
.legal-box{background:#fff;border:1px solid var(--border,#e8e0e6);border-radius:18px;box-shadow:0 22px 80px rgba(17,24,39,.25);max-width:760px;width:100%;max-height:82vh;overflow:hidden;animation:slideUp .22s ease}
.legal-head{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--border,#e8e0e6);background:linear-gradient(135deg,color-mix(in srgb,var(--primary,#c8006a) 9%,#fff),#fff)}
.legal-title{font-size:16px;font-weight:900;color:var(--text,#1a1a2e);flex:1}
.legal-close{width:34px;height:34px;border:0;border-radius:10px;background:#f4f6fb;color:var(--text2,#555577);font-size:20px}
.legal-body,.tech-modal-body{padding:22px;font-size:14px;line-height:1.65;color:var(--text2,#555577);overflow:auto;max-height:62vh}
.tech-card{display:grid;grid-template-columns:86px 1fr;gap:18px;align-items:center}
.tech-card img{width:86px;height:86px;border-radius:18px;object-fit:cover;background:#f3f6fb}
.tech-avatar-fallback{width:86px;height:86px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary,#c8006a),var(--secondary,#8b0035));color:#fff;font-weight:950;font-size:28px;letter-spacing:.03em}
.tech-card-info h3{margin:0 0 10px;color:var(--text,#1a1a2e);font-size:20px}
.tech-card-info dl{display:grid;gap:8px;margin:0}
.tech-card-info dl>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:start}
.tech-card-info dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text3,#999ab0);font-weight:900}
.tech-card-info dd{margin:0;color:var(--text,#1a1a2e);font-weight:800;overflow-wrap:anywhere}
.tech-card-info a{color:var(--primary,#c8006a);text-decoration:none;font-weight:900}

@media(max-width:980px){
  .search-row{grid-template-columns:1fr}
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cr-meta{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .form-row,.services-grid,.recycle-modes,.cr-meta{grid-template-columns:1fr}
  .recycle-steps{grid-template-columns:1fr 1fr}
  .cr-header{flex-wrap:wrap}
  .cr-status-badge{width:100%;text-align:center}
  .public-price-row{grid-template-columns:1fr}
  .public-price-value{text-align:left}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
