:root{--paper:#f7faf8;--surface:#fff;--ink:#18372b;--green:#176b4e;--leaf:#c6ead2;--muted:#63756a;--line:#dfe8e2;font-family:"Noto Sans CJK SC","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--green);outline-offset:3px}button:disabled{cursor:wait;opacity:.65}button{touch-action:manipulation}[hidden]{display:none!important}
.app{max-width:540px;margin:0 auto;padding:21px 20px max(22px,env(safe-area-inset-bottom));overflow-wrap:anywhere}.site-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:21px}.site-header h1{font-size:20px;font-weight:650;letter-spacing:-.5px;margin:0;line-height:1.45}.live{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);white-space:nowrap}.live:before{content:"";width:5px;height:5px;flex-shrink:0;border-radius:50%;background:#b37c19}.live.connected:before{background:#27935d}.gardens{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:25px}.garden{min-height:46px;border:1px solid var(--line);border-radius:7px;color:#516359;background:var(--surface);padding:6px 3px;font-size:13px;white-space:nowrap}.garden[aria-pressed=true]{border-color:var(--green);background:var(--green);color:white;font-weight:600}.main-layout{display:grid;gap:24px}.calendar-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}.calendar-title h2{font-size:15px;margin:0;font-weight:600}.range{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.calendar{padding:13px 10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:11px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{font-size:11px;color:#66766d;text-align:center;margin-bottom:8px}.days{row-gap:7px}.day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:57px;border:1px solid transparent;border-radius:6px;background:transparent;padding:0;color:#66766d}.day .number{font-size:17px;line-height:1.15;font-weight:550;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.day .stock{font-size:11px;line-height:1.15}.day.has-ticket{background:var(--leaf);color:#0d5939;border-color:#78bc91}.day.has-ticket .number,.day.has-ticket .stock{font-weight:650}.day[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.day.has-ticket[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.day.today:not([aria-pressed=true]) .number{color:var(--ink)}.day.today .number{font-size:14px;letter-spacing:0}.result-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.result-head h2{font-size:20px;letter-spacing:-.5px;margin:0;font-weight:650}.weekday{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:7px}.only{display:flex;align-items:center;gap:6px;min-height:44px;font-size:12px;color:#5e7467;cursor:pointer;white-space:nowrap}.only input{accent-color:var(--green);width:17px;height:17px;margin:0}.available-summary{font-size:12px;line-height:1.8;color:var(--green);margin:0 0 12px;min-height:20px}.available-summary.empty{color:#66766d}.slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.slot{min-height:54px;padding:9px 10px;border:1px solid #dfe8e2;border-radius:7px;background:#fbfcfb;display:flex;align-items:center;justify-content:space-between;gap:5px;color:#66766d}.slot .time{font-variant-numeric:tabular-nums;font-size:13px;letter-spacing:-.35px;font-weight:500;white-space:nowrap}.slot .state{font-size:11px;white-space:nowrap}.slot.available{border-color:#78bc91;background:var(--leaf);color:#0d5939}.slot.available .time,.slot.available .state{font-weight:650}.slot[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:1px}.empty-box{margin:0 0 13px;border-left:3px solid #cadbd0;padding:6px 0 6px 12px;font-size:12px;color:var(--muted);line-height:1.8}.next-date{display:block;min-height:44px;border:0;background:none;color:var(--green);padding:4px 0;font-size:12px;text-align:left;text-decoration:underline;text-underline-offset:3px}.chosen-slot{margin:17px 0 0;padding-top:15px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);line-height:1.8}.chosen-slot strong{color:var(--ink);font-weight:600}.chosen-slot .yes{color:var(--green)}
.primary{width:100%;min-height:54px;padding:13px 18px;border:1px solid var(--green);border-radius:10px;background:var(--green);color:#fff;font-size:16px;font-weight:600;line-height:1.5;letter-spacing:.3px}.selection-continue{margin-top:16px}.back-button{display:inline-flex;align-items:center;justify-content:center;min-width:136px;min-height:50px;margin:0 0 20px;padding:11px 18px;border:1.5px solid var(--green);border-radius:9px;background:#e4f2e9;color:var(--green);font-size:17px;font-weight:650;line-height:1.5}.back-button:active{background:var(--leaf)}.view-title{margin:0 0 23px;font-size:26px;line-height:1.4;letter-spacing:-.8px;font-weight:650;outline:none}.reservation-summary{position:relative;margin-bottom:23px;padding:18px 20px 17px;border:1px solid #c9dfd1;border-top:4px solid var(--green);border-radius:4px 4px 15px 15px;background:#eef6f0}.reservation-top{position:absolute;top:18px;right:20px;display:flex;align-items:center;font-size:11px;color:var(--muted)}.reservation-top>span:first-child{display:none}.reservation-type{border:1px solid #bfd6c7;border-radius:4px;padding:3px 7px;color:var(--green);font-size:10px}.reservation-summary h3{margin:0 0 13px;padding-right:76px;font-size:24px;font-weight:650;line-height:1.4;letter-spacing:.3px}.reservation-date{display:flex;align-items:baseline;gap:10px}.reservation-date strong{font-size:18px;font-weight:550;letter-spacing:-.5px}.reservation-date span{font-size:13px;color:var(--muted)}.reservation-time{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:9px;padding-top:10px;border-top:1px solid #d2e3d7}.reservation-time strong{font-size:16px;font-variant-numeric:tabular-nums;font-weight:550;letter-spacing:.2px}.reservation-time span{font-size:11px;color:var(--muted)}.quiet-copy{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 24px}.form-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 5px;gap:12px}.form-heading h3{margin:0;font-size:17px;font-weight:600}#history-toggle{font-size:16px;font-weight:550}.text-button{border:0;background:none;min-height:44px;color:var(--green);font-size:13px;padding:9px 5px;line-height:1.5}.field{margin-top:19px}.field label{display:block;margin:0 0 9px;font-size:14px;font-weight:550}.field input{display:block;width:100%;min-width:0;min-height:52px;padding:13px 14px;border:1px solid #ccd9d0;border-radius:8px;background:#fff;color:var(--ink);font-size:16px;line-height:1.5;box-shadow:none;appearance:none}.field input::placeholder{color:#87948b;font-size:14px}.field input[aria-invalid=true]{border-color:#ad5436;background:#fffdfa}.field-error{color:#954525;font-size:12px;line-height:1.7;margin:7px 0 0}.field-hint{font-size:12px;line-height:1.7;color:var(--muted);margin:8px 0}.code-field{padding-top:19px;margin-top:25px;border-top:1px solid var(--line)}.remember-row{display:flex;align-items:center;gap:9px;min-height:48px;font-size:13px;color:var(--muted);margin-top:16px;cursor:pointer}.remember-row input{width:19px;height:19px;margin:0;accent-color:var(--green);flex-shrink:0}.action-bar{position:static;margin:21px 0 0;padding:0 0 max(4px,env(safe-area-inset-bottom));background:var(--paper)}.action-bar>.text-button{display:block;margin:5px auto -5px}.history-panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px 0 5px;margin:3px 0 21px}.history-row{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);padding:7px 0}.history-row:last-child{border-bottom:0}.history-pick{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:9px 2px;min-height:60px;color:var(--ink)}.history-pick strong{font-size:16px;display:block;font-weight:550}.history-masked{font-size:13px;color:var(--muted);display:block;line-height:1.8;word-break:break-all}.history-masked>span{display:block;white-space:nowrap}.history-row .text-button{min-width:44px;font-size:14px;padding-left:4px;padding-right:4px;flex-shrink:0}.danger{color:#954525}.result-view{padding-top:20px}.result-view .view-title{margin-bottom:12px}.result-copy{font-size:15px;line-height:1.9;color:var(--muted);margin:0 0 25px}.result-mark{display:flex;align-items:center;justify-content:center;background:var(--leaf);color:var(--green);border:1px solid #a7d6b5;width:45px;height:45px;border-radius:50%;font-size:24px;margin:0 0 22px}.secondary{border:1px solid var(--green);background:var(--surface);color:var(--green);border-radius:8px;font-size:14px;min-height:48px;width:100%;padding:11px 15px}.photographer-notice{font-size:14px;font-weight:600;line-height:1.7;color:#954525;margin:2px 0 16px}.site-footer{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);font-size:10px;color:#66766d;display:flex;justify-content:space-between;gap:8px;line-height:1.6}.error{font-size:12px;line-height:1.6;color:#954525}
@media(min-width:720px){.app{padding-top:35px;padding-bottom:32px}.site-header{margin-bottom:27px}.site-header h1{font-size:23px}.live{font-size:11px}.calendar{padding:18px 15px}.day{height:64px}.slot{min-height:59px}.slot .time{font-size:15px}.reservation-summary{padding:20px 23px}.reservation-top{top:20px;right:23px}.reservation-summary h3{font-size:25px}.checkout-view{padding-top:7px}}
@media(max-width:359px){.app{padding:18px 14px max(20px,env(safe-area-inset-bottom))}.site-header h1{font-size:18px}.live{font-size:9px}.site-header{gap:5px}.weekdays,.days{gap:3px}.calendar{padding:12px 7px}.day{height:55px}.day .number{font-size:15px}.slot{padding:9px 7px}.slot .time{font-size:12px}.range{font-size:10px}.reservation-summary{padding:17px 16px}.reservation-top{top:18px;right:16px}.reservation-summary h3{font-size:24px}.view-title{font-size:25px}.history-masked{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

#code-hint{margin:12px 0 0;padding:12px 14px;border:1px solid #ebcc79;border-left:4px solid #c78a13;border-radius:8px;background:#fff5d6;color:#714b00;font-size:15px;font-weight:650;line-height:1.8}
