:root{font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#24443d;background:#f2f6f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}img{max-width:100%;height:auto}section,.photo-card,.topbar>*,.actions>*,.order-card{min-width:0}h2,h3,a,.notice,.error,.badge{overflow-wrap:anywhere}main{max-width:920px;margin:auto;padding:24px 18px 90px}h1{font-size:30px;margin:12px 0;overflow-wrap:anywhere}h2{font-size:23px}p{line-height:1.7;overflow-wrap:anywhere}button,input,textarea,select{font:inherit}button{border:1px solid #c7d9ce;border-radius:10px;padding:11px 15px;background:#fff;color:#275b49;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #85b7a0;outline-offset:2px}button[aria-current=page],button[aria-pressed=true],.primary{color:#fff;background:#22624b;border-color:#22624b}input,textarea,select{border:1px solid #c7d9ce;border-radius:10px;padding:12px;background:#fcfefd;min-width:0;max-width:100%}label{display:block;margin:18px 0;font-size:14px;font-weight:600}label>input:not([type=checkbox]),textarea{width:100%;display:block;margin-top:8px}textarea{min-height:90px;resize:vertical}section{background:#fff;padding:22px;border-radius:16px}.topbar,.actions,nav,.pagination{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.topbar{justify-content:space-between}nav{margin:20px 0}.actions{margin:15px 0}.pagination{justify-content:center;margin-top:24px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:#678c78}.muted,.hint{color:#71887c}.hint{font-size:12px}.error{color:#ad342e}.notice{padding:12px 16px;border-radius:10px;background:#fff5dd;color:#795a21;font-size:14px}.badge{padding:6px 10px;background:#e9f2ec;border-radius:20px;font-size:12px}.empty{padding:50px 10px;color:#71887c;text-align:center}.login-shell{min-height:100dvh;display:grid;place-items:center;padding-bottom:24px}.login-card{max-width:460px;width:100%;padding:32px;border:1px solid #dfebe2;box-shadow:0 18px 50px #24443d0a}.login-card .primary,.scan{width:100%;margin-top:18px}details{margin:18px 0}summary{cursor:pointer;font-size:14px}.identity{margin-top:28px;padding:15px;font-size:13px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.photo-card{border:2px solid #e7eee9;border-radius:12px;overflow:hidden}.photo-card.selected{border-color:#367852;background:#f2f8f2}.photo-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.photo-info{padding:10px;overflow-wrap:anywhere}.photo-info p{font-size:13px}.check{display:flex;align-items:center;gap:8px;margin:4px 0 14px}.check input{flex:0 0 18px;height:18px}.image-placeholder{display:grid;place-items:center;min-height:160px;background:#eef3ef;font-size:13px}.preview,.checkout{margin-top:24px;border:2px solid #b5cfbe;padding:18px;border-radius:12px}.preview img{width:100%;max-height:700px;object-fit:contain}.selection-bar{position:sticky;bottom:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px;border:1px solid #cadfcf;background:#fffffff5;box-shadow:0 4px 22px #234b3818;border-radius:12px;margin-top:22px}.selection-bar span{margin-right:auto}.order-card{border:1px solid #e0e9e2;padding:18px;margin-top:16px;border-radius:12px}.qr{display:block;width:260px;max-width:100%}@media(max-width:640px){main{padding:18px 12px 60px;padding-bottom:calc(60px + env(safe-area-inset-bottom))}section{padding:16px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.login-card{padding:25px}.selection-bar button{padding:10px;font-size:13px}h1{font-size:25px}}@media(max-width:600px){button,summary{min-height:44px}input,select,textarea{font-size:16px}.actions>button{flex:1 1 auto}.actions>select{flex:1 1 100%;width:100%}.topbar{gap:8px}nav>button{flex:1}.preview,.checkout,.order-card{padding:12px}.selection-bar{bottom:max(10px,env(safe-area-inset-bottom));padding:10px}.selection-bar span{flex-basis:100%}.selection-bar button{flex:1 1 auto;font-size:14px}.login-card{padding:24px 18px}}@media(max-width:400px){.photo-grid{grid-template-columns:minmax(0,1fr)}}
