*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:#302528;background:#f6eee6}.app-shell{height:100vh;height:100dvh;max-width:720px;margin:auto;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;background:#f6eee6}.brand{background:linear-gradient(140deg,#760819,#b20d2a);text-align:center;color:#fff;padding:clamp(4px,1.1vh,10px) 10px}.brand img{display:block;margin:auto;width:auto;max-width:min(41vw,176px);height:clamp(50px,12vh,92px);object-fit:contain}.brand-sub{font-size:clamp(9px,1.5vh,12px);letter-spacing:.08em;font-weight:800}.brand-sub span{font-weight:500;letter-spacing:0}.notice{background:#fff4ca;color:#72560b;text-align:center;font-size:clamp(9px,1.3vh,11px);font-weight:700;padding:4px 7px}main{padding:clamp(5px,1.15vh,12px);overflow:hidden;min-height:0}.screen{height:100%;min-height:0}.hide{display:none!important}.panel{height:100%;min-height:0;overflow:hidden;background:#fff;border:1px solid #eed9ce;border-radius:18px;padding:clamp(10px,2.2vh,20px);box-shadow:0 4px 16px #8d4b3612;display:flex;flex-direction:column;gap:clamp(5px,1.15vh,12px)}.center{text-align:center;align-items:center}.spread{justify-content:space-around}.welcome-art{font-size:clamp(29px,7vh,64px);line-height:1.1}.welcome-art span{color:#9a1225}h1,h2,h3,p{margin:0}h1{font-size:clamp(21px,3.8vh,30px);line-height:1.12;color:#911229}h2{font-size:clamp(18px,3vh,23px);line-height:1.2;color:#911229}h3{font-size:clamp(15px,2.5vh,19px);line-height:1.2;color:#911229}p{font-size:clamp(12px,1.8vh,15px);line-height:1.3}.promo{background:#fff0e7;color:#8d0c23;border-radius:13px;padding:clamp(9px,2vh,15px);width:100%}.promo b{display:block;font-size:clamp(12px,1.7vh,15px);margin-bottom:5px}.promo h2{font-size:clamp(17px,2.8vh,21px)}.promo.compact{padding:clamp(7px,1.3vh,11px)}button{cursor:pointer;font:inherit}.actions{display:grid;gap:clamp(5px,1vh,10px);width:100%;margin-top:auto}.actions button{background:#a70e29;color:white;border:0;border-radius:11px;font-weight:750;font-size:clamp(12px,1.8vh,15px);padding:clamp(9px,1.8vh,14px) 9px}.actions button.alt{background:#fae8e2;color:#931128;border:1px solid #dfb2a9}label:not(.checkbox-row){font-weight:700;font-size:clamp(12px,1.8vh,15px)}input:not([type=checkbox]){min-width:0;width:100%;border:1px solid #d9c4bd;border-radius:9px;padding:clamp(8px,1.5vh,12px);font:inherit;font-size:14px}.checkbox-row{display:flex;align-items:start;gap:9px;font-size:clamp(11px,1.7vh,14px)}.checkbox-row input{margin:3px 0;flex-shrink:0}.lead,.tiny{color:#776767}.tiny{font-size:clamp(10px,1.4vh,12px)}.name-row{display:flex;justify-content:space-between;gap:5px;align-items:center}.name-row small{color:#79676a}.name-row h2{margin-top:2px}.pill{border-radius:99px;background:#fff1bf;color:#793f0a;padding:5px 7px;font-size:10px;font-weight:800;white-space:nowrap}.counter-row{display:flex;align-items:baseline;justify-content:space-between;gap:7px}.counter-row strong{font-size:clamp(19px,3.2vh,27px);color:#911229}.counter-row small{color:#766}.progress{height:clamp(8px,1.5vh,12px);background:#eadad7;border-radius:30px;overflow:hidden}.progress>div{background:#a70e29;height:100%;transition:width .25s}.stamps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(5px,1vh,12px);flex:1;min-height:0;max-height:clamp(105px,24vh,200px)}.stamp{border-radius:50%;aspect-ratio:1;max-width:100%;max-height:100%;justify-self:center;align-self:center;width:min(100%,clamp(42px,9vh,72px));display:flex;align-items:center;justify-content:center;border:2px dashed #e6b5a8;background:#fff3ee;color:#9f7b77;font-weight:800;font-size:clamp(13px,2.3vh,21px)}.stamp.on{border:0;color:#fff;background:#a70e29}.state{font-size:clamp(12px,1.9vh,15px);font-weight:750;color:#961427;text-align:center}.qr-panel{justify-content:space-around}.qr{width:min(55vw, min(36vh,240px));height:min(55vw, min(36vh,240px));min-width:100px;min-height:100px;background:#fff;border:5px solid #fff;display:flex;align-items:center;justify-content:center}.qr img,.qr canvas{width:100%!important;height:100%!important;object-fit:contain}.history-items{min-height:0;flex:1;overflow:hidden;display:flex;flex-direction:column;justify-content:start}.entry{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #eee3e0;font-size:13px}.entry small{color:#786a6a}.history-items .entry:nth-child(n+7){display:none}.history-items p{color:#786a6a}.bottom{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #eee0d9;padding-bottom:env(safe-area-inset-bottom);min-height:clamp(45px,7vh,59px)}.bottom button{border:0;background:none;color:#8c1429;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:clamp(17px,2.6vh,23px);line-height:1}.bottom span{font-size:clamp(10px,1.5vh,12px);margin-top:4px}@media(max-height:620px){.brand img{height:45px}.panel{gap:5px}.welcome-art{font-size:28px}.promo{padding:7px}.stamps{max-height:105px}.stamp{width:min(100%,38px)}.actions button{padding:7px 8px}.bottom{min-height:43px}}@media(max-height:460px){.brand img{height:31px}.brand-sub{font-size:9px}.panel{padding:7px}.welcome-art{display:none}.stamps{max-height:75px}.stamp{width:min(100%,29px)}.promo{padding:5px}.promo h2{font-size:14px}}