@charset "UTF-8";
:root{--paper:#f5f3ee;--ink:#222522;--muted:#62675f;--accent:#ba401f;--line:#dcded5;--white:#fff;--soft:#eceee7}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.skip-link{position:absolute;left:16px;top:-100px;background:var(--ink);color:white;padding:12px;z-index:9}.skip-link:focus{top:12px}.site-header{max-width:1280px;margin:auto;padding:34px 64px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;text-decoration:none;font-weight:900;font-size:24px;letter-spacing:-1px}.brand-dot{color:var(--accent)}.brand-mark{display:flex;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);width:38px;height:38px;font-size:22px;margin-right:12px;letter-spacing:-4px;border-radius:3px}.brand-mark span{color:#ef8b62;font-size:17px;transform:translateY(-5px);margin-right:3px}.header-label{font-size:12px;color:var(--muted)}main{max-width:1280px;margin:auto;min-height:calc(100svh - 199px)}.home-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;padding:76px 64px 74px;align-items:start}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.6px;line-height:1.7}.intro .eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 24px}.small-line{width:22px;height:2px;background:var(--accent)}h1{font-size:clamp(44px,4.5vw,66px);line-height:1.07;letter-spacing:-3px;font-weight:650;margin:0 0 26px}h1 span{color:var(--accent)}.intro-copy{max-width:390px;font-size:16px;line-height:1.75;color:var(--muted);margin:0}.road-art{height:110px;position:relative;overflow:hidden;margin:26px 0 0;max-width:400px}.road-line{position:absolute;left:5px;top:25px;width:315px;height:53px;border:1px solid #bdc2b5;border-bottom:0;transform:skew(-27deg);border-radius:65px 70px 0 0}.road-line:after{content:"";position:absolute;inset:9px 12px 0;border:1px dashed #c8cbbc;border-bottom:0;border-radius:50px 60px 0 0}.road-node{position:absolute;top:73px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.road-node.start{left:7px}.road-node.end{left:309px;background:var(--ink)}.road-caption{position:absolute;left:80px;top:79px;font-size:8px;letter-spacing:3px;color:var(--muted)}.features{list-style:none;padding:0;margin:0;display:grid;gap:22px}.features li{display:flex;gap:17px;align-items:flex-start}.feature-number{font-size:10px;font-variant-numeric:tabular-nums;color:var(--accent);padding-top:5px}.features h2{font-size:13px;font-weight:650;margin:0 0 5px}.features p{font-size:12px;line-height:1.55;color:var(--muted);margin:0}.access-card{background:var(--white);border:1px solid var(--line);padding:34px;border-radius:8px;box-shadow:0 10px 28px #22252204;margin-top:21px}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:29px;color:var(--muted)}.lock{background:var(--soft);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:19px}.access-card h2{font-size:27px;line-height:1.2;letter-spacing:-.8px;margin:0 0 13px;font-weight:650}.card-description{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 27px}label{display:block;font-size:12px;font-weight:600;margin:0 0 9px}input{display:block;width:100%;border:1px solid #b6bcb0;padding:13px 14px;min-height:48px;border-radius:4px;background:#fff;color:var(--ink);font-size:14px}input:disabled{background:#f6f7f3;opacity:1;color:var(--muted)}input::placeholder{color:#6c7067;opacity:1}.button{background:var(--ink);color:white;border:1px solid var(--ink);border-radius:4px;min-height:48px;width:100%;padding:13px 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;font-size:13px;font-weight:600;cursor:pointer}.button:disabled{cursor:not-allowed;background:#dfe3d8;color:#52594d;border-color:#dfe3d8}.access-placeholder .button{margin-top:13px}.status-note{font-size:11px;color:var(--muted);line-height:1.6;display:flex;align-items:center;gap:8px;margin:15px 0 26px}.status-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;flex-shrink:0}.card-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;gap:12px;align-items:flex-start}.shield{color:var(--accent);font-size:24px;line-height:1.2}.card-bottom p{font-size:11px;color:var(--muted);line-height:1.75;margin:0}.demo-link{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:44px;font-size:11px;color:var(--accent);text-underline-offset:4px;margin-top:15px}.site-footer{max-width:1152px;margin:auto;border-top:1px solid var(--line);padding:26px 0;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--muted)}.site-footer span span{padding:0 8px;color:#afb5a5}.demo-page,.error-page{padding:64px;max-width:1020px;margin:auto}.demo-page>p,.error-page>p{line-height:1.7;color:var(--muted)}.demo-page h1,.error-page h1{font-size:42px;letter-spacing:-1.5px}.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-underline-offset:4px;margin-bottom:24px}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:32px}.field{margin:0 0 22px}.error-summary,.errorlist{color:#a22d19;font-size:13px;line-height:1.6}.errorlist{padding-left:20px}input[aria-invalid=true]{border:2px solid #a22d19}.result-card{background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:28px;align-self:start}.result-card h2{font-size:19px;margin:0 0 20px}.result-card p{font-size:14px;color:var(--muted);line-height:1.7}dt{font-size:12px;color:var(--muted)}dd{margin:5px 0 22px;font-size:24px;letter-spacing:-.5px}.error-page .button{max-width:240px;margin-top:30px}
@media(min-width:1440px){.home-grid{padding-top:100px}}
@media(max-width:1000px){.home-grid{gap:40px;padding:55px 36px}.site-header{padding:26px 36px}.access-card{padding:27px}.site-footer{margin:0 36px}h1{font-size:52px}.demo-page,.error-page{padding:44px 36px}}
@media(max-width:700px){.site-header{padding:20px 24px}.header-label{font-size:10px;max-width:110px;text-align:right;line-height:1.5}.brand{font-size:22px}.home-grid{display:flex;flex-direction:column;padding:38px 24px 40px;gap:30px}.intro{width:100%}h1{font-size:48px;letter-spacing:-2px}.intro .eyebrow{font-size:9px;margin-bottom:17px}.intro-copy{font-size:14px;line-height:1.7}.road-art{display:none}.features{display:none}.access-card{margin:0;width:100%;padding:25px}.card-top{margin-bottom:23px}.access-card h2{font-size:25px}.site-footer{margin:0 24px;padding:22px 0;font-size:9px;flex-wrap:wrap}.demo-page,.error-page{padding:32px 24px}.demo-page h1,.error-page h1{font-size:36px}.demo-grid{grid-template-columns:1fr;gap:24px}.card-bottom p{font-size:12px}.status-note{font-size:12px}.demo-link{font-size:12px}}
/* Shared Spanish authentication screens. */
.auth-panel { max-width: 620px; margin: 3rem auto; padding: 2rem; background: #fff; border: 1px solid #dedbd5; border-radius: 18px; }
.auth-panel h1 { font-size: clamp(1.9rem, 6vw, 2.7rem); line-height: 1.12; letter-spacing: -.035em; margin: 1rem 0; }
.auth-panel h2 { font-size: 1.2rem; }
.auth-panel p { line-height: 1.6; }
.auth-panel label { display: block; margin-bottom: .4rem; font-weight: 600; }
.auth-panel input { width: 100%; box-sizing: border-box; }
.auth-panel .errorlist { padding-left: 1.2rem; color: #9d2919; }
.setup-note { background: #f5f2eb; padding: 1rem; border-radius: 8px; }
.setup-key { display: block; overflow-wrap: anywhere; font-size: 1rem; letter-spacing: .05em; user-select: all; }
.recovery-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: 0; list-style: none; }
.recovery-list code { font-size: .95rem; overflow-wrap: anywhere; }
.account-actions { display: grid; gap: 1rem; margin: 2rem 0; }
.account-actions button { padding: .6rem; cursor: pointer; }
a.button { text-decoration: none; }
@media (max-width: 600px) { .auth-panel { margin: 1rem; padding: 1.2rem; } }

/* Workshop intake: compact on phones, no horizontal record tables. */
.workshop-shell{max-width:1100px;margin:auto;width:100%;min-width:0}
.workshop-nav,.action-row,.page-heading,.search-form,.pagination{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.workshop-nav{border-bottom:1px solid #cbd5e1;padding-bottom:1rem;margin-bottom:2rem}
.workshop-nav form{margin-left:auto}.workshop-nav button{width:auto;margin:0}
.page-heading{justify-content:space-between;margin-bottom:1.5rem}
.detail-grid,.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem}
.record-panel,.stat-card{border:1px solid #cbd5e1;border-radius:12px;padding:1.2rem;margin:1rem 0;background:#fff;min-width:0;overflow-wrap:anywhere}
.record-list{list-style:none;padding:0}.record-row,.history-row{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid #e2e8f0;flex-wrap:wrap}
.record-row a{font-weight:700}.record-row p{margin:.35rem 0}.badge{font-size:.85rem;background:#e2e8f0;padding:.3rem .6rem;border-radius:20px}
.inventory-form{max-width:680px}.inventory-form input:not([type=checkbox]),.inventory-form select,.inventory-form textarea{width:100%;box-sizing:border-box;padding:.75rem;border:1px solid #94a3b8;border-radius:6px;font:inherit}
.inventory-form label{display:block;font-weight:600;margin-bottom:.4rem}.inventory-form .helptext{display:block;font-size:.9rem;color:#475569;margin-top:.3rem}.inventory-form textarea{min-height:5rem;resize:vertical}.errorlist{color:#991b1b}
.secondary-button{display:inline-block;border:1px solid #94a3b8;border-radius:6px;padding:.7rem 1rem;text-decoration:none}
.search-form{margin:1.5rem 0}.search-form p{margin:0}.search-form input[type=checkbox]{width:auto}.search-form button{width:auto}
.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.audit-row{display:grid;grid-template-columns:1fr 2fr 2fr;gap:1rem;border-top:1px solid #e2e8f0;padding:1rem 0}.audit-row p{margin:.3rem 0}.pagination{margin:1.5rem 0}.muted{color:#475569}
@media(max-width:600px){.audit-row{grid-template-columns:1fr}.workshop-nav{gap:.8rem}.workshop-nav form{margin-left:0}.page-heading h1{font-size:1.7rem}.record-panel{padding:1rem}}

.workshop-shell{padding:2rem 1.5rem}.workshop-shell h1{font-size:clamp(1.8rem,4vw,2.7rem);letter-spacing:-.035em}.inventory-form input[type=checkbox],.search-form input[type=checkbox]{display:inline-block;width:1.2rem;min-height:1.2rem;vertical-align:middle}.workshop-shell button{cursor:pointer;padding:.7rem 1rem;border:1px solid var(--ink);border-radius:6px;background:var(--ink);color:white}.notice{padding:1rem;border-left:3px solid var(--accent);background:white}.workshop-shell select:focus-visible,.workshop-shell textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.publication-panel{margin:1rem 0;padding:1rem;border-left:3px solid var(--accent);background:var(--paper);overflow-wrap:anywhere}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:1rem}.metric-card{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--line);padding:1rem;border-radius:8px;text-decoration:none}.metric-card strong{font-size:1.8rem}.search-form select{font:inherit;padding:.6rem;max-width:100%;border:1px solid #94a3b8;border-radius:6px}.inventory-form input[type=checkbox]{display:inline-block}.inventory-form fieldset{border:1px solid var(--line);padding:1rem;overflow-wrap:anywhere}.inventory-form fieldset label{font-weight:400}.workshop-shell h1,.workshop-shell h2{overflow-wrap:anywhere}

/* Owner portal and once-only QR print sheet. */
.portal-shell { max-width: 960px; margin: 0 auto; padding: 24px; }
.portal-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-bottom: 24px; }
.portal-nav form { margin: 0; }
.portal-nav a, .portal-nav button { min-height: 44px; display: inline-flex; align-items: center; }
.owner-bikes { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: 16px; }
.owner-entry { border-top: 1px solid var(--line, #ddd); padding: 18px 0; overflow-wrap: anywhere; }
.portal-shell .record-panel { margin-bottom: 20px; overflow-wrap: anywhere; }
.qr-label { width: 52mm; padding: 4mm; background: white; color: black; border: 1px dashed #aaa; text-align: center; margin: 24px auto; break-inside: avoid; }
.qr-label p { font-size: 9pt; margin: 2mm 0; line-height: 1.3; }
.qr-label small { font-size: 8pt; overflow-wrap: anywhere; }
.qr-symbol svg { width: 40mm; height: 40mm; display: block; margin: 2mm auto; }
.qr-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; }
.qr-actions button { min-height: 44px; padding: 12px 18px; border: 0; border-radius: 6px; background: var(--ink); color: white; font: inherit; cursor: pointer; }
.qr-actions button:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.qr-actions span { font-size: .9rem; }
@media(max-width: 480px) { .portal-shell { padding: 16px; } .portal-shell h1 { font-size: 2rem; overflow-wrap: anywhere; } }
@media print { body { background: white; } .site-header, .site-footer, .skip-link, .no-print { display: none !important; } .portal-shell { padding: 0; } .qr-label { border: none; margin: 0; } @page { margin: 12mm; } }
