:root{--paper:#f3f1e8;--surface:#fffef8;--ink:#193d30;--muted:#68756b;--line:#d7ddd2;--accent:#235a42;--warn:#8d431d}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif;line-height:1.6}button,input,select,textarea{font:inherit}button,.home a{background:var(--accent);color:#fff;border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:12px 20px;font-weight:650;text-decoration:none}button:hover:not(:disabled){background:#174531}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{color:var(--ink);border-color:var(--line);background:0 0}button.secondary:hover:not(:disabled){background:#e6ebdf}:focus-visible{outline-offset:3px;outline:3px solid #b77727}.lab-shell{max-width:1100px;margin:0 auto;padding:0 32px}.masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:92px;display:flex}.masthead a{color:var(--ink);letter-spacing:-.06em;font-size:27px;font-weight:750;text-decoration:none}.masthead a span{color:var(--muted);letter-spacing:0;font-size:17px;font-weight:400}.pill{border:1px solid var(--line);letter-spacing:.05em;white-space:nowrap;border-radius:99px;padding:5px 10px;font-size:11px;font-weight:650}.intro{padding:54px 0 36px}.eyebrow{letter-spacing:.17em;color:var(--muted);font-size:11px;font-weight:700}h1{letter-spacing:-.05em;margin:14px 0 20px;font-size:clamp(30px,4vw,48px);font-weight:650;line-height:1.25}.intro>p:not(.eyebrow){color:var(--muted);font-size:17px}.notice{max-width:800px;color:var(--muted);border-left:3px solid #91a78e;margin-top:28px;padding:8px 16px;font-size:13px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:20px;padding:28px}.section-heading{align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.number{color:var(--muted);border-top:1px solid var(--ink);padding-top:5px;font-size:12px}h2{letter-spacing:-.03em;margin:0;font-size:20px}h3{margin:0 0 12px;font-size:15px}.section-heading p,.help,small,.records>p{color:var(--muted);margin:5px 0 0;font-size:12px}label{flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:600;display:flex}input:not([type=checkbox]),select,textarea{width:100%;min-width:0;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:4px;padding:10px 12px;font-size:14px}input[type=file]{padding:8px;font-size:12px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.check{flex-direction:row;align-items:center;margin-top:18px}.fixture-bar{align-items:flex-end;gap:14px;margin-bottom:20px;display:flex}.fixture-bar label{flex:1}.photo-pair,.corner-pair,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.photo{border:1px solid var(--line);border-radius:5px;min-width:0;padding:16px}.photo img{width:100%;height:auto;margin-top:16px;display:block}.photo small{overflow-wrap:anywhere;display:block}.empty-photo{letter-spacing:.12em;color:#98a394;flex-direction:column;justify-content:center;align-items:center;min-height:200px;font-size:27px;display:flex}.empty-photo span{letter-spacing:0;margin-top:12px;font-size:11px}details{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}summary{cursor:pointer;margin-bottom:12px;font-size:13px}fieldset{border:1px solid var(--line);min-width:0;padding:12px}legend{font-size:13px}.corner-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.corner-row>span{white-space:nowrap;font-size:12px}.corner-row label{flex:1}.run-panel{justify-content:space-between;align-items:center;gap:24px;padding:24px 0;display:flex}.run-panel>div:first-child{flex:1}.run-panel p{margin:0;font-size:14px}.actions{flex-direction:column;flex-shrink:0;gap:10px;display:flex}.progress-label{color:var(--muted);padding-top:10px}progress{width:100%;height:8px;accent-color:var(--accent)}[role=alert],.warning{color:var(--warn);padding-top:10px;font-size:13px}.candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px;display:grid}.candidates strong{color:var(--muted);font-size:12px}.candidates p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0;font-size:14px}pre{background:var(--paper);max-height:320px;padding:15px;font-size:11px;overflow:auto}.records h2 span{color:var(--muted);font-weight:400}.record-table{margin:20px 0;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}th,td{border-bottom:1px solid var(--line);white-space:nowrap;padding:10px}.recovery{margin-top:20px}.recovery button{margin-top:12px}footer{color:var(--muted);padding:30px 0;font-size:11px}.home{max-width:900px;margin:12vh auto;padding:32px}.home>p{color:var(--muted)}.home a{margin-top:24px;display:inline-block}@media (max-width:640px){.lab-shell{padding:0 18px}.masthead{min-height:74px}.intro{padding-top:32px}.panel{padding:20px 16px}.photo-pair,.corner-pair,.form-grid,.candidates{grid-template-columns:1fr}.fixture-bar,.run-panel{flex-direction:column;align-items:stretch}.fixture-bar button{align-self:stretch}.empty-photo{min-height:160px}.actions{width:100%}.run-panel{padding:16px 0 28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
