.punch083{max-width:780px}.punch083 label{display:block;margin:14px 0}.punch083 input{display:block;max-width:100%;box-sizing:border-box}.punch083 button{margin:6px;min-height:48px}.punch-primary{background:#1a625a!important;color:#fff!important;font-size:1.4rem}.punch-success{font-size:2rem;font-weight:700;color:#165b47}.punch-warning{color:#b35b00}.punch-error{color:#bd2929;font-weight:700;min-height:1.5em}.kiosk083{margin:0;background:#f2f6f4;color:#183a36;font-family:system-ui,sans-serif;text-align:center}.kiosk083 main{max-width:960px;margin:auto;padding:24px;box-sizing:border-box}.kiosk083 button{font:inherit;font-size:1.4rem;border:1px solid #a5bdb5;border-radius:14px;padding:18px;margin:8px;background:white;min-width:100px;min-height:64px}.kiosk083 button:disabled{color:#75807c;background:#e0e5e2}.punch-clock{font-size:clamp(2.5rem,7vw,5rem);font-variant-numeric:tabular-nums}.punch-qr{width:320px;height:320px;max-width:100%;margin:24px auto;display:grid;place-items:center;background:white}.punch-qr img,.punch-qr canvas{max-width:100%}.punch-qr table{margin:auto}.punch-keypad{display:grid;grid-template-columns:repeat(3,1fr);max-width:420px;margin:16px auto}.punch-keypad button{min-width:0;margin:5px}.punch-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}@media(max-width:420px){.kiosk083 main{padding:14px}.kiosk083 button{font-size:1.15rem}.punch-qr{width:310px}}
.punch083 .punch-admin-primary,.punch083 .punch-admin-secondary{border:1px solid #57634D;border-radius:9px;padding:12px 18px;font:inherit;font-weight:600;cursor:pointer;min-height:48px}
.punch083 .punch-admin-primary{background:#57634D;color:#fff}
.punch083 .punch-admin-secondary{background:#fff;color:#57634D}
.punch083 .punch-admin-primary:hover{background:#46503e}
.punch083 .punch-admin-secondary:hover{background:#f1f3ee}
.punch083 .punch-admin-primary:focus-visible,.punch083 .punch-admin-secondary:focus-visible{outline:3px solid #b99976;outline-offset:3px}
.punch-pin-success{color:#57634D;font-weight:600}
.punch083 button:disabled{cursor:wait;opacity:.65}
.kiosk083 main{max-width:1440px}
.kiosk-layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(320px,1fr);gap:28px;align-items:start}
.kiosk-main,.kiosk-today{min-width:0}
.kiosk-date{font-size:clamp(1.3rem,2.5vw,2rem);font-weight:600;margin-top:14px}
.kiosk-today{background:#fff;border:1px solid #d9e1d9;border-radius:18px;padding:20px;text-align:left;box-sizing:border-box}
.kiosk-today h2{font-size:1.7rem;margin:0 0 18px}
.kiosk-today-list{max-height:75vh;overflow:auto}
.kiosk-today-row{padding:16px 0;border-bottom:1px solid #e3e7e1}
.kiosk-today-row>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.kiosk-today-row strong{flex:1;min-width:5em;overflow-wrap:anywhere}
.kiosk-status{padding:4px 8px;border-radius:6px;font-size:.9rem}
.kiosk-status.is-valid{color:#466047;background:#ecf2e8}
.kiosk-status.is-pending{color:#9b652b;background:#faf0df}
.kiosk-status.is-invalid{color:#777;background:#eee}
.kiosk-today-row.is-invalid{color:#888;text-decoration:line-through}
.kiosk-minutes{color:#a56868;font-weight:600;margin:10px 0 0}
.kiosk-settings{padding:12px 0;border-bottom:1px solid #dedfd6;margin-bottom:18px}
.punch083 .kiosk-settings input{display:inline-block;accent-color:#57634D;width:20px;height:20px;vertical-align:middle;margin-left:8px}
.kiosk-settings small{color:#73786b}
@media(max-width:760px){.kiosk-layout{grid-template-columns:minmax(0,1fr);gap:20px}.kiosk-today-list{max-height:60vh}.kiosk-today{padding:16px}}
.kiosk-devices{border-bottom:1px solid #dedfd6;padding-bottom:20px;margin-bottom:24px}
.kiosk-device-row{border:1px solid #dedfd6;border-radius:12px;padding:16px;margin:14px 0;overflow-wrap:anywhere}
.kiosk-device-row>div:first-child{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.kiosk-device-row p{margin:10px 0;font-size:.94rem}
.kiosk-device-state{padding:4px 10px;border-radius:6px;font-size:.85rem}
.kiosk-device-state.is-active{background:#ecf2e8;color:#466047}
.kiosk-device-state.is-revoked{background:#eee;color:#777}
.kiosk-device-offline{color:#a46c30;margin-left:8px;font-weight:600}
.punch083 .kiosk-device-filter input{display:inline-block;width:20px;height:20px;margin-left:8px;vertical-align:middle;accent-color:#57634D}
.kiosk083{background:#f4f2ed;color:#373d34;font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;line-height:1.6}
.kiosk083 *{box-sizing:border-box}
.kiosk083 main{max-width:1360px;padding:24px 36px 12px}
.kiosk-masthead{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 22px;border-bottom:1px solid #dedbd1;margin-bottom:26px;text-align:left}
.kiosk-brand{display:flex;align-items:center;gap:12px}
.kiosk-brandmark{display:grid;place-items:center;width:44px;height:48px;background:#e9e5da;border:1px solid #d9d4c7;border-radius:12px;color:#57634d;font:32px Georgia,serif}
.kiosk-brandwords{display:flex;flex-direction:column;gap:2px}
.kiosk-brandwords strong{font-size:20px;letter-spacing:.04em;font-weight:600}
.kiosk-brandwords>span{font-size:9px;letter-spacing:.19em;color:#858476}
.kiosk083 .kiosk-location{font-size:17px;font-weight:600;min-height:44px;min-width:0;padding:8px 14px;margin:0;background:#e9e5da;border-color:#ded9cd;border-radius:10px;color:#57634d;max-width:50%;overflow-wrap:anywhere;text-align:left}
.kiosk-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:26px;align-items:stretch}
.kiosk-main{background:#fdfcf9;border:1px solid #e2dfd6;border-radius:20px;padding:24px 28px;box-shadow:0 5px 20px #373d3404}
.kiosk-time-panel{border-bottom:1px solid #e9e5da;padding-bottom:14px}
.kiosk-date{font-size:16px;letter-spacing:.06em;font-weight:500;color:#787c70;margin:0 0 2px}
.punch-clock{font-family:ui-sans-serif,system-ui,sans-serif;font-size:clamp(46px,6vw,76px);font-weight:400;line-height:1.16;letter-spacing:-.045em;color:#57634d;font-variant-numeric:tabular-nums}
.kiosk-intro{font-size:13px;color:#8a8b7c;letter-spacing:.05em;margin:14px 0 0}
.kiosk-main .punch-error:empty{display:none}
.kiosk-interaction h1{font-size:21px;letter-spacing:.035em;margin:16px 0 10px;font-weight:600}
.punch-qr{width:312px;height:312px;margin:12px auto 16px;border:1px solid #e7e4db;border-radius:16px;box-shadow:0 4px 14px #373d3405}
.punch-qr canvas,.punch-qr img{width:270px;height:270px}
.kiosk083 button{font-size:15px;font-weight:500;border:1px solid #c9cebf;border-radius:10px;padding:12px 18px;margin:4px;min-height:48px;min-width:0;color:#57634d;background:#fdfcf9;cursor:pointer}
.kiosk083 button:hover{background:#eeeee6;border-color:#a5af97}
.kiosk083 button:focus-visible,.kiosk-name-dialog button:focus-visible,.kiosk-name-dialog input:focus-visible{outline:3px solid #b39776;outline-offset:3px}
.kiosk083 .punch-primary{background:#57634d!important;color:#fdfcf9!important;font-size:17px}
.kiosk-interaction>small{display:block;color:#9b7e5e;font-size:11px;margin-top:8px}
.kiosk-today{background:#fdfcf9;border-color:#e2dfd6;border-radius:20px;padding:26px;box-shadow:0 5px 20px #373d3404}
.kiosk-today h2{font-size:21px;letter-spacing:.04em;font-weight:600;padding-bottom:20px;border-bottom:1px solid #e9e5da;margin:0}
.kiosk-today>p{font-size:14px;color:#787c70}
.kiosk-today-list{max-height:510px;scrollbar-width:thin;scrollbar-color:#d3d6c8 transparent}
.kiosk-today-row{padding:20px 0;border-color:#ece9e1;font-size:14px}
.kiosk-today-row>div{gap:8px}
.kiosk-today-row strong{font-size:16px;font-weight:600;min-width:4em}
.kiosk-status{font-size:11px;padding:4px 8px;white-space:nowrap}
.kiosk-minutes{font-size:12px;font-weight:500;color:#a56868}
.kiosk-footer{text-align:center;font-size:10px;letter-spacing:.12em;color:#969586;padding:18px 0 0}
.punch-keypad{max-width:320px;margin:12px auto;gap:3px}
.kiosk083 .punch-keypad button{font-size:22px;min-height:52px}
.punch-roster{gap:8px;margin:18px 0;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.kiosk083 .punch-roster button{margin:0;min-height:64px}
.kiosk-name-dialog{width:min(460px,calc(100% - 32px));box-sizing:border-box;padding:28px;border:1px solid #e2dfd6;border-radius:18px;background:#fdfcf9;color:#373d34;font-family:"Microsoft JhengHei",system-ui,sans-serif;box-shadow:0 20px 70px #373d3426;text-align:left}
.kiosk-name-dialog::backdrop{background:#373d345c;backdrop-filter:blur(3px)}
.kiosk-name-dialog form>p:first-child{font-size:10px;letter-spacing:.16em;color:#8a8b7c;margin:0 0 10px}
.kiosk-name-dialog h2{font-size:22px;margin:0 0 10px}
.kiosk-name-dialog form>p{font-size:13px;color:#787c70;line-height:1.6}
.kiosk-name-dialog label{display:flex;flex-direction:column;gap:10px;font-size:14px;margin-top:22px}
.kiosk-name-dialog input{font:inherit;background:#f4f2ed;border:1px solid #d9d5ca;border-radius:10px;padding:13px 14px;width:100%;box-sizing:border-box;color:#373d34;min-height:48px}
.kiosk-name-dialog .punch-error{color:#a0402f;min-height:0}
.kiosk-name-dialog .name-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.kiosk-name-dialog button{font:inherit;font-size:14px;border-radius:9px;padding:11px 18px;min-height:44px;border:1px solid #57634d;cursor:pointer;margin:0}
.kiosk-name-dialog .name-save{background:#57634d;color:#fff}
.kiosk-name-dialog .name-cancel{background:transparent;color:#57634d}
.kiosk-name-dialog button:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.kiosk083 main{padding:18px 16px}.kiosk-masthead{margin-bottom:18px;padding-bottom:16px}.kiosk-brandmark{width:36px;height:40px;font-size:27px}.kiosk-brandwords strong{font-size:17px}.kiosk-brandwords>span{font-size:7px}.kiosk083 .kiosk-location{font-size:13px;padding:8px 10px}.kiosk-layout{grid-template-columns:minmax(0,1fr);gap:18px}.kiosk-main,.kiosk-today{padding:20px 16px}.punch-clock{font-size:58px}.punch-qr{width:298px;max-width:100%;height:298px}.kiosk-today-list{max-height:420px}.kiosk-date{font-size:14px}}
@media(min-width:761px) and (max-height:740px){.kiosk083 main{padding-top:16px}.kiosk-masthead{padding-bottom:14px;margin-bottom:18px}.kiosk-main{padding:18px 24px}.punch-clock{font-size:58px}.punch-qr{height:282px;width:282px}.punch-qr img,.punch-qr canvas{width:250px;height:250px}.kiosk-today-list{max-height:430px}.kiosk-interaction h1{margin-top:10px;font-size:19px}}
.kiosk083 .kiosk-location{display:inline-flex;align-items:center;font-size:17px;font-weight:600;padding:8px 14px;background:#e9e5da;border:1px solid #ded9cd;border-radius:10px;color:#57634d;max-width:50%;overflow-wrap:anywhere;text-align:left}
.kiosk-pin-panel{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr);gap:18px;align-items:center}
.kiosk-pin-controls{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.kiosk-pin-dots{font-size:27px;letter-spacing:7px;color:#57634d;margin:0 0 12px;line-height:1.4}
.kiosk-pin-message{font-size:13px;min-height:42px;line-height:1.5;margin:0 0 10px;overflow-wrap:anywhere;color:#787c70}
.kiosk-pin-message.punch-error{color:#a0402f}
.kiosk-pin-actions{display:flex;gap:6px}
.kiosk083 .kiosk-pin-actions button{flex:1;margin:0;padding:10px 6px;font-size:16px;min-height:48px}
.kiosk083 .kiosk-pin-back{margin:14px 0 0;min-height:42px;padding:8px;font-size:14px}
.is-pin .punch-keypad{width:100%;margin:0;gap:6px}
.kiosk083 .is-pin .punch-keypad button{margin:0;padding:8px;min-height:48px;font-size:20px}
.is-pin .kiosk-intro{display:none}
@media(min-width:761px){.is-pin .kiosk-main{padding:16px 22px}.is-pin .kiosk-time-panel{padding-bottom:10px}.is-pin .punch-clock{font-size:48px}.is-pin .kiosk-date{font-size:14px}.is-pin .kiosk-interaction h1{font-size:19px;margin:12px 0}.is-pin .kiosk-today-list{max-height:calc(100dvh - 240px)}}
@media(min-width:761px) and (max-height:650px){.kiosk083 main:has(.is-pin){padding-top:12px}.kiosk083 main:has(.is-pin) .kiosk-masthead{padding-bottom:10px;margin-bottom:12px}.is-pin .kiosk-main{padding:12px 18px}.is-pin .punch-clock{font-size:40px}.kiosk083 .is-pin .punch-keypad button{min-height:42px;font-size:19px}.is-pin .punch-keypad{gap:5px}.kiosk083 main:has(.is-pin) .kiosk-footer{padding-top:10px}}
@media(max-width:420px){.kiosk-pin-panel{grid-template-columns:minmax(0,1fr);gap:12px}.is-pin .punch-keypad{max-width:260px}.kiosk-pin-controls{max-width:280px;width:100%;margin:auto}.kiosk083 .kiosk-location{font-size:13px;padding:8px 10px}}
.kiosk083 .is-pin .kiosk-pin-actions button:disabled{background:#e5e7df!important;color:#90958b!important;border-color:#d5d9cd;cursor:not-allowed;opacity:1}
/* 086: a full-height tablet workspace with a large vertical PIN pad. */
.kiosk083 main{height:100dvh;display:flex;flex-direction:column;padding:16px 28px 8px;max-width:1440px}
.kiosk-masthead{padding-bottom:12px;margin-bottom:14px;flex-shrink:0}
.kiosk-layout{flex:1;min-height:0;align-items:stretch}
.kiosk-main{padding:16px 24px;overflow:hidden;min-height:0}
.kiosk-time-panel{padding-bottom:8px}
.kiosk-date{font-size:14px;margin:0}
.punch-clock{font-size:58px;line-height:1.08}
.kiosk-intro{margin:8px 0 0}
.kiosk-today{padding:0;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.kiosk-stage{position:relative;isolation:isolate;flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;background:#eeeee4;border-radius:20px}
.kiosk-stage:before,.kiosk-stage:after{content:"";position:absolute;z-index:-1;width:110%;height:110%;border-radius:45%;opacity:.8;animation:kiosk-drift 24s ease-in-out infinite alternate;pointer-events:none}
.kiosk-stage:before{background:radial-gradient(ellipse at 30% 20%,#bac4ac 0,transparent 60%),linear-gradient(135deg,#f4f2ed,#e1e3d3);top:-25%;left:-25%}
.kiosk-stage:after{background:radial-gradient(ellipse,#d8cbb7 0,transparent 60%);bottom:-45%;right:-35%;animation-delay:-12s;animation-duration:32s}
@keyframes kiosk-drift{from{transform:translate(-2%,-3%) rotate(-12deg) scale(1)}to{transform:translate(10%,8%) rotate(16deg) scale(1.15)}}
.kiosk-stage-content{padding:36px;text-align:center;width:100%;transition:opacity .45s ease;overflow-wrap:anywhere;max-height:100%;overflow:auto}
.kiosk-stage-content>span:first-child{font-size:10px;letter-spacing:.22em;color:#78816a}
.kiosk-stage-content.is-fading{opacity:0}
.kiosk-phrase{font-size:clamp(36px,3.6vw,50px);font-weight:500;line-height:1.8;letter-spacing:.045em;color:#57634d;margin:30px 0}
.kiosk-stage-notice{position:absolute;bottom:12px;left:20px;right:20px;font-size:12px;color:#a0402f;margin:0}
.kiosk-daily-count{padding:12px;margin:0!important;text-align:center;font-size:12px!important;color:#787c70;background:#fdfcf9}
.kiosk-feedback h2{font-size:44px;margin:22px 0 12px;border:0;padding:0}
.kiosk-result{font-size:26px;line-height:1.5;font-weight:600}
.kiosk-result.is-valid{color:#57634d}.kiosk-result.is-pending{color:#a47136}.kiosk-result.is-invalid{color:#808078}
.kiosk-feedback-minutes{color:#a56868;font-size:20px;margin:10px}
.kiosk-pt-hours{background:#fdfcf9b8;border:1px solid #e0dfd2;padding:18px;border-radius:14px;margin-top:24px;font-size:18px}
.kiosk-pt-hours progress{width:100%;height:14px;accent-color:#57634d}
.kiosk-cap-warning{color:#a56868;font-size:19px;font-weight:600}
.is-pin .kiosk-main,.is-roster .kiosk-main{position:relative;padding:12px 24px}
.is-pin .kiosk-time-panel,.is-roster .kiosk-time-panel{margin-left:60px;padding-bottom:6px}
.is-pin .punch-clock,.is-roster .punch-clock{font-size:40px}
.is-pin .kiosk-date,.is-roster .kiosk-date{font-size:13px}
.is-pin .kiosk-interaction h1{margin:8px 0 4px;font-size:23px;line-height:1.3}
.is-roster .kiosk-intro{display:none}
.kiosk-pin-top{position:absolute;top:12px;left:12px}
.kiosk083 .kiosk-pin-back{margin:0;padding:0;width:56px;height:56px;min-width:56px;min-height:56px;font-size:30px;line-height:1;border-radius:12px}
.kiosk-pin-panel{display:flex;flex-direction:column;gap:0;align-items:center;max-width:320px;margin:0 auto}
.kiosk-pin-dots{font-size:27px;letter-spacing:9px;margin:2px 0 10px;line-height:1.4}
.is-pin .punch-keypad{max-width:none;width:100%;gap:7px}
.kiosk083 .is-pin .punch-keypad button{min-height:53px;font-size:25px;padding:7px;margin:0}
.kiosk-pin-controls{width:100%;max-width:none;margin-top:8px}
.kiosk-pin-message,.kiosk-pin-message.punch-error{color:#a0402f;font-size:13px;min-height:38px;margin:0 0 6px;line-height:1.4;display:grid;align-items:center}
.kiosk-pin-actions{gap:8px;width:100%}
.kiosk083 .kiosk-pin-actions button,.kiosk083 .kiosk-pin-actions button.punch-primary{min-height:72px;font-size:28px;padding:8px;flex:1}
.kiosk-footer{padding:8px 0 0;font-size:9px;flex-shrink:0}
.kiosk-content-admin{margin-top:24px;border-top:1px solid #dedfd6;padding-top:16px}
.kiosk-message-editor{border:1px solid #e2dfd6;border-radius:12px;padding:16px;margin:14px 0}
.kiosk-message-editor textarea{width:100%;box-sizing:border-box;font:inherit;color:inherit;background:#fdfcf9;border:1px solid #dedfd6;border-radius:9px;padding:10px;resize:vertical}
.kiosk-message-editor input[type=checkbox]{display:inline-block;width:20px;height:20px;accent-color:#57634d;vertical-align:middle}
@media(min-width:761px) and (max-height:720px){.kiosk083 main{padding:10px 20px 6px}.kiosk-masthead{padding-bottom:8px;margin-bottom:10px}.kiosk-brandmark{height:36px;width:36px}.is-pin .punch-clock{font-size:32px}.is-pin .kiosk-date{font-size:12px}.is-pin .kiosk-interaction h1{font-size:21px;margin:5px 0 2px}.kiosk-pin-dots{font-size:23px;line-height:1.2;margin:0 0 6px}.kiosk083 .is-pin .punch-keypad button{min-height:43px;font-size:23px;padding:4px}.is-pin .punch-keypad{gap:5px}.kiosk-pin-controls{margin-top:4px}.kiosk-pin-message{min-height:32px;font-size:12px}.kiosk-stage-content{padding:24px}.kiosk-feedback h2{font-size:34px}.kiosk-result{font-size:23px}}
@media(max-width:760px){.kiosk083 main{height:auto;min-height:100dvh;padding:14px}.kiosk-main{overflow:visible}.kiosk-today{min-height:480px}.kiosk-pin-panel{max-width:300px}.kiosk083 .is-pin .punch-keypad button{min-height:52px}.kiosk-pin-controls{max-width:none}.kiosk-stage-content{padding:24px}.kiosk-phrase{font-size:36px}}
@media(prefers-reduced-motion:reduce){.kiosk-stage:before,.kiosk-stage:after{animation:none}.kiosk-stage-content{transition:none}}
/* Balanced landscape PIN: time in the left header area, controls centered below. */
@media(min-width:761px) and (min-height:740px){
 .is-pin .kiosk-main,.is-roster .kiosk-main{display:flex;flex-direction:column;padding:20px 24px}
 .is-pin .kiosk-time-panel,.is-roster .kiosk-time-panel{position:absolute;top:-76px;left:50%;transform:translateX(-50%);width:max-content;max-width:55%;padding:0;margin:0;border:0}
 .is-pin .kiosk-date,.is-roster .kiosk-date{font-size:13px;line-height:1.3;margin:0 0 3px}
 .is-pin .punch-clock,.is-roster .punch-clock{font-size:34px;line-height:1.1}
 .is-pin .kiosk-interaction{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;min-height:0;gap:24px;padding:6px 0}
 .is-pin .kiosk-interaction h1{font-size:32px;line-height:1.2;margin:0;max-width:calc(100% - 100px);align-self:center;overflow-wrap:anywhere}
 .is-pin .kiosk-pin-panel{width:344px;max-width:100%;margin:0 auto;gap:16px}
 .is-pin .kiosk-pin-dots{display:flex;justify-content:center;gap:16px;margin:0;height:36px;letter-spacing:0}
 .kiosk083 .is-pin .punch-keypad button{height:72px;min-height:72px;font-size:32px;padding:6px}
 .is-pin .punch-keypad{gap:7px}
 .is-pin .kiosk-pin-controls{margin:0}
 .kiosk083 .is-pin .kiosk-pin-actions button{height:80px;min-height:80px;font-size:32px}
 .is-pin .kiosk-pin-message{min-height:30px;margin-bottom:8px}
 .is-roster .kiosk-interaction{display:flex;flex-direction:column;justify-content:center;flex:1;min-height:0;gap:24px;padding:50px 0 24px}
 .is-roster .kiosk-interaction h1{font-size:28px;margin:0}
 .is-roster .punch-roster{margin:0;max-height:calc(100dvh - 290px);overflow:auto;padding:4px}
 .kiosk083 .is-roster .punch-roster button{font-size:20px;min-height:76px}
}
.kiosk-pin-dot{width:34px;height:34px;flex:0 0 34px;border:1.5px solid #7d876e;border-radius:50%;box-sizing:border-box;background:transparent}
.kiosk-pin-dot.is-filled{background:#57634d;border-color:#57634d}
.kiosk-pin-dots{display:flex;align-items:center;justify-content:center;gap:16px;letter-spacing:0}
@media(min-width:761px) and (max-height:739px){.kiosk-pin-dot{width:28px;height:28px;flex-basis:28px}}
@media(min-width:761px) and (min-height:740px){.is-pin .kiosk-main,.is-roster .kiosk-main{overflow:visible}}
/* Multi-line poetry: plain paper, fine corner strokes, locally hosted handwriting. */
.kiosk-stage{background:#f4f2ed}
.kiosk-stage:before,.kiosk-stage:after{width:42px;height:42px;background:none;border-radius:0;animation:none;opacity:.35;transform:none;z-index:2;pointer-events:none}
.kiosk-stage:before{top:20px;left:20px;border-top:1px solid #57634d;border-left:1px solid #57634d}
.kiosk-stage:after{bottom:20px;right:20px;border-bottom:1px solid #57634d;border-right:1px solid #57634d}
.kiosk-poetry{position:absolute;inset:28px 24px;overflow:hidden;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 86%,transparent)}
.kiosk-poetry-track{width:100%;will-change:transform}
.kiosk-poetry-group{display:flex;flex-direction:column;gap:38px;padding:24px 8px 38px;box-sizing:border-box}
.poetry-line{font-family:'LXGW WenKai TC','Microsoft JhengHei',system-ui,sans-serif;font-weight:400;line-height:1.9;letter-spacing:.07em;color:#57634d;margin:0;max-width:92%;overflow-wrap:anywhere}
.poetry-align-0{align-self:flex-start;text-align:left}.poetry-align-1{align-self:center;text-align:center}.poetry-align-2{align-self:flex-end;text-align:right}
.poetry-size-0{font-size:30px}.poetry-size-1{font-size:24px}.poetry-size-2{font-size:36px}.poetry-size-3{font-size:27px}
.poetry-art{height:80px;width:80px;opacity:.6;margin:8px 28px}
.poetry-art svg{display:block;width:80px;height:80px}
.kiosk-poetry.is-reduced .kiosk-poetry-group{min-height:100%;justify-content:space-evenly;gap:22px;padding:24px 8px}
.kiosk-feedback h2,.kiosk-feedback .kiosk-result{font-family:'LXGW WenKai TC','Microsoft JhengHei',system-ui,sans-serif;font-weight:400}
.kiosk-stage-content[hidden],.kiosk-poetry[hidden]{display:none}
@media(max-width:420px){.kiosk-poetry{inset:24px 16px}.poetry-size-0{font-size:26px}.poetry-size-1{font-size:22px}.poetry-size-2{font-size:32px}.poetry-size-3{font-size:24px}}
/* Selected style: light handwriting, single-line phrases, paper collage accents. */
.kiosk-stage{background:#f6f3ed}
.kiosk-stage:before,.kiosk-stage:after{display:none}
.kiosk-poetry-paper{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.kiosk-poetry{inset:28px 28px;z-index:1}
.kiosk-stage-content{position:relative;z-index:1}
.kiosk-stage-notice{z-index:3}
.kiosk-poetry-group{gap:46px;padding-top:34px;padding-bottom:46px;min-width:0;width:100%}
.poetry-line{font-family:'DFKai-SB','LXGW WenKai TC','BiauKai',serif;font-weight:400;letter-spacing:0;line-height:1.6;white-space:nowrap;overflow-wrap:normal;word-break:keep-all;max-width:none;width:max-content;color:#626d58}
.poetry-size-0{font-size:26px}.poetry-size-1{font-size:22px}.poetry-size-2{font-size:28px}.poetry-size-3{font-size:24px}
.poetry-art{height:64px;width:64px;opacity:.45;margin:4px 30px}
.poetry-art svg{width:64px;height:64px}
.kiosk-poetry.is-reduced .kiosk-poetry-group{gap:30px}
.kiosk-feedback h2,.kiosk-feedback .kiosk-result{font-family:'DFKai-SB','LXGW WenKai TC','BiauKai',serif;letter-spacing:0}
@media(max-width:420px){.kiosk-poetry{inset:24px 16px}.poetry-size-0{font-size:23px}.poetry-size-1{font-size:22px}.poetry-size-2{font-size:26px}.poetry-size-3{font-size:24px}}
.punch-phone .phone-device{color:#787c70;font-size:15px;margin:8px 0 18px;overflow-wrap:anywhere}
.punch-phone .phone-message{margin:12px 0 20px;line-height:1.7;overflow-wrap:anywhere}
.punch-phone .phone-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%}
.punch-phone .phone-action-column{display:flex;flex-direction:column;gap:8px;min-width:0}
.punch-phone .phone-action-hint{font-size:12px;color:#787c70;text-align:center;line-height:20px;min-height:20px}
.punch083.punch-phone .phone-action{width:100%;min-height:80px;box-sizing:border-box;margin:0;padding:14px 8px;border:2px solid #57634d;border-radius:12px;background:#fdfcf9;color:#57634d;font:inherit;font-size:22px;font-weight:600;line-height:1.4;cursor:pointer}
.punch083.punch-phone .phone-action.is-suggested{background:#57634d;color:#fff}
.punch083.punch-phone .phone-action:disabled{opacity:.65;cursor:wait}
.punch-phone .phone-action:focus-visible{outline:3px solid #b39776;outline-offset:3px}
.punch-phone .punch-success{font-size:28px;color:#57634d;font-weight:600}
@media(max-width:420px){.punch-phone .phone-actions{gap:12px}.punch083.punch-phone .phone-action{font-size:20px;min-height:80px}}
