:root{--bg: #0f1117;--surface: #1a1d27;--border: #2a2f3d;--text: #e8edf3;--muted: #8b93a7;--accent: #7b2d8e;--accent-hover: #9b4dba;--accent-rgb: 123, 45, 142;--error: #f87171;--radius: 12px;--touch: 44px;--input-h: 40px;font-family:DM Sans,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.5}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#root{min-height:100dvh}.page{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 2.5rem}.measure-page{max-width:880px}.page-header{margin-bottom:1.5rem}.page-header h1{margin:0 0 .25rem;font-size:1.75rem;font-weight:700}.page-header .subtitle{margin:.25rem 0;font-size:1.0625rem}.muted{color:var(--muted);font-size:.9375rem}.error{color:var(--error);margin:.75rem 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1rem}.card h2{margin:0 0 1rem;font-size:1.125rem;font-weight:600}.optional{font-weight:400;color:var(--muted);font-size:.875rem}.form-stack{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.375rem}.field span{font-size:.875rem;font-weight:500;color:var(--muted)}.field input,.field select{min-height:var(--input-h);padding:.5rem .75rem;font-size:.9375rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--input-h);padding:.5rem 1.25rem;font-size:.9375rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;text-decoration:none;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--border);color:var(--text)}.btn-sm{min-height:34px;padding:.375rem .875rem;font-size:.8125rem}.share-box{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.share-url{display:block;word-break:break-all;padding:.75rem;background:var(--bg);border-radius:8px;margin:.5rem 0 1rem;font-size:.8125rem}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.rep-layout{display:grid;gap:1rem}@media(min-width:768px){.rep-layout{grid-template-columns:1fr 1fr;align-items:start}}.session-list{list-style:none;margin:0;padding:0}.session-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 0;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.session-item:last-child{border-bottom:none}.session-meta{font-size:.8125rem;margin-top:.125rem}.completion-progress{margin-top:.5rem}.completion-progress-compact{margin-top:.375rem}.completion-label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8125rem;color:var(--muted);margin-bottom:.25rem}.completion-done{color:#86efac;font-weight:600}.completion-track{height:6px;background:var(--border);border-radius:999px;overflow:hidden}.completion-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s ease}.team-roster-card h2{margin-top:0}.roster-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1rem 0}.roster-stat{text-align:center;padding:.75rem;background:var(--surface-2, rgba(255, 255, 255, .04));border:1px solid var(--border);border-radius:8px}.roster-stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--accent);line-height:1.2}.roster-stat-label{display:block;font-size:.75rem;color:var(--muted);margin-top:.25rem}.roster-update-form{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.roster-update-tabs{display:flex;gap:.5rem;margin:.75rem 0}.roster-tab{border:1px solid var(--border);background:transparent;color:var(--muted);padding:.375rem .75rem;border-radius:6px;cursor:pointer;font:inherit;font-size:.875rem}.roster-tab.is-active{border-color:var(--accent);color:var(--text);background:#7b2d8e1f}.roster-update-field{margin-bottom:.75rem}.inline-field-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.inline-field-row input{width:5rem}.card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.25rem .5rem;border-radius:999px;flex-shrink:0}.badge-open{background:#1e3a5f;color:#93c5fd}.badge-submitted,.badge-complete{background:#14532d;color:#86efac}.badge-expired{background:#44403c;color:#a8a29e}.back-link{display:inline-block;margin-bottom:.75rem;color:var(--muted);text-decoration:none}.back-link:hover{color:var(--text)}.measure-form{display:flex;flex-direction:column;gap:0}.measure-with-diagram{display:grid;gap:1.5rem;align-items:start}@media(min-width:768px){.measure-with-diagram{grid-template-columns:minmax(200px,260px) 1fr}}.body-diagram{margin:0;padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.body-diagram--compact .body-diagram-svg{max-height:220px}.body-diagram-svg{display:block;width:100%;max-width:260px;margin:0 auto;height:auto}.body-diagram-caption{margin-top:.75rem;font-size:.8125rem;text-align:center;line-height:1.4}.body-outline{fill:none;stroke:var(--border);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.body-band{fill:rgba(var(--accent-rgb),.12);stroke:var(--accent);stroke-width:2}.body-line{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round}.body-line--height{stroke:var(--muted);stroke-dasharray:4 3}.body-line--inseam{stroke-width:3}.body-path--torso{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4}.body-num{fill:var(--text);font-size:13px;font-weight:700;font-family:DM Sans,system-ui,sans-serif}.body-region{transition:opacity .15s ease}.body-region.is-dimmed{opacity:.2}.body-region.is-active .body-band,.body-region.is-active .body-line,.body-region.is-active .body-path--torso{stroke-width:3;filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.45))}.body-region.is-active .body-band{fill:rgba(var(--accent-rgb),.28)}.body-guide-badge{display:inline-flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;border-radius:999px;background:rgba(var(--accent-rgb),.15);color:var(--accent);font-size:.75rem;font-weight:700;flex-shrink:0}.field-label-row{display:inline-flex;align-items:center;gap:.5rem}.measure-field.is-active{background:rgba(var(--accent-rgb),.06);border-radius:8px;margin:-.375rem;padding:.375rem}.measure-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media(min-width:600px){.measure-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.measure-grid{grid-template-columns:repeat(3,1fr)}}.measure-field{display:flex;flex-direction:column;gap:.375rem}.field-guide{font-size:.8125rem;color:var(--muted)}.field-guide summary{cursor:pointer;-webkit-user-select:none;user-select:none}.field-guide summary:hover{color:var(--text)}.field-guide p{margin:.375rem 0 0;line-height:1.45}.instruction,.disclaimer-inline{margin:0 0 1rem;color:var(--muted);font-size:.9375rem}.torso-adj-row,.contact-row{display:grid;gap:1rem;grid-template-columns:1fr}@media(min-width:600px){.torso-adj-row,.contact-row{grid-template-columns:repeat(2,1fr)}}.header-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.badge-type{background:#312e81;color:#c4b5fd}.link-type-fieldset{border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;margin:0}.link-type-fieldset legend{padding:0 .25rem;font-size:.875rem;font-weight:500;color:var(--muted)}.radio-row{display:flex;gap:.75rem;align-items:flex-start;padding:.5rem 0;cursor:pointer}.radio-row input{margin-top:.25rem;width:1.125rem;height:1.125rem;flex-shrink:0}.block-hint{display:block;margin-top:.125rem;font-size:.8125rem}.submission-block{margin-bottom:1.5rem}.submission-header{margin-bottom:.75rem}.submission-header h2{margin:0;font-size:1.125rem}.roster-pick{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.roster-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.roster-btn{min-height:var(--input-h);padding:.5rem 1rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:inherit;font-size:.9375rem;cursor:pointer}.roster-btn:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:599px){.roster-btn{min-height:var(--touch)}}.form-actions{margin-top:.5rem}.form-actions--top{margin-bottom:.5rem}.results-actions{margin-top:1.25rem;display:flex;flex-direction:column;gap:.75rem}@media(min-width:600px){.results-actions{flex-direction:row;flex-wrap:wrap;gap:1rem}}.form-actions .btn-primary{width:100%}@media(min-width:600px){.form-actions .btn-primary{width:auto;min-width:220px}}.results h2{margin:0 0 1rem}.size-cards{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:600px){.size-cards{grid-template-columns:repeat(3,1fr)}}.size-card{display:flex;flex-direction:column;gap:.375rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.size-card-label{font-weight:500;font-size:.875rem;color:var(--muted)}.size-card-value{font-size:2rem;font-weight:700;color:var(--accent);line-height:1.1}.disclaimer{margin-top:1.25rem;font-size:.8125rem;color:var(--muted)}.notes-list{margin:1rem 0;padding-left:1.25rem;color:var(--muted);font-size:.875rem}.breakdown{margin-top:1.25rem}.breakdown summary{cursor:pointer;color:var(--muted);font-size:.9375rem}.breakdown-block{margin-top:.75rem}.breakdown-block h3{margin:0 0 .375rem;font-size:.9375rem}.breakdown-block ul{margin:0;padding-left:1.25rem;font-size:.875rem}@media(max-width:599px){:root{--input-h: var(--touch)}.field input,.field select{font-size:1rem}.btn{min-height:var(--touch);font-size:1rem}.form-actions .btn-primary{width:100%}.field-guide summary{min-height:var(--touch);display:flex;align-items:center}}@media print{body{background:#fff;color:#000}.btn,.back-link,.field-guide,.breakdown summary{display:none}}.order-item-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.order-item-list li{padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.order-item-sizes{font-size:.85em}.share-qr-box{display:flex;justify-content:center;padding:1rem 0}.share-qr-box img{border:1px solid var(--border);border-radius:var(--radius);background:#fff}.qr-hint{margin-top:.5rem;font-size:.85em}.warn{border-left:3px solid #b45309;padding:.6rem .75rem;background:#b4530914;border-radius:var(--radius)}.field-check .check-row{display:flex;align-items:center;gap:.5rem}
