:root{color:#17313a;background:#eef6f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #eef6f7;--surface: #ffffff;--surface-soft: #f7fbfb;--text: #17313a;--muted: #657b83;--border: #d7e6e8;--accent: #0f7f84;--accent-dark: #0a666c;--accent-soft: #e8f7f6;--green: #14906f;--danger: #b33245;--warning: #b77012;--shadow: 0 18px 42px rgba(20, 67, 78, .09)}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#ffffff9e,#eef6f700 240px),var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,h3,p,dl,dd{margin:0}.siteShell{width:min(1120px,calc(100vw - 32px));margin:0 auto;padding:28px 0 48px}.adminShell{width:min(1280px,calc(100vw - 32px))}.brandHeader,.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.brandHeader{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px}.brandLockup{display:flex;align-items:center;gap:10px;min-width:0}.brandLogo{flex:0 0 auto;width:clamp(110px,9vw,128px);height:auto;aspect-ratio:1365 / 1482;object-fit:contain;object-position:center}.brandHeader h1{font-size:clamp(22px,3vw,34px);line-height:1.16;font-weight:900;letter-spacing:0}.brandHeader p,.sectionHeader p,.emptyText,.privacyText,.reviewBlock dt,.reviewBlock dd,.fileList,.reservationTop span,.statusLine span,.fileBox span{color:var(--muted);font-size:14px;line-height:1.55}.headerNote{display:flex;align-items:flex-start;gap:9px;max-width:360px;padding:12px;color:#31565e;background:var(--accent-soft);border:1px solid #bee1e1;border-radius:8px;font-size:13px;line-height:1.45}.headerNote svg{flex:0 0 auto;color:var(--accent)}.progressBar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.progressBar span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;color:#718890;background:#ffffffad;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:850}.progressBar i{display:grid;place-items:center;width:22px;height:22px;font-style:normal;color:inherit;background:#edf4f4;border-radius:999px}.progressBar .active{color:var(--accent-dark);background:#fff;border-color:#abd8d9}.progressBar .active i{color:#fff;background:var(--accent)}.bookingGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);gap:16px;align-items:start}.panel{padding:18px}.sectionHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.sectionHeader h2{color:var(--text);font-size:19px;line-height:1.3;font-weight:900}.sectionHeader>span{display:grid;flex:0 0 auto;place-items:center;width:38px;height:38px;color:var(--accent);background:var(--accent-soft);border:1px solid #bee1e1;border-radius:8px}.calendarBox{display:grid;gap:12px}.calendarNav,.calendarWeek,.calendarDays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendarNav{grid-template-columns:36px 1fr 36px;align-items:center}.calendarNav strong{text-align:center;font-size:16px}.iconButton{display:grid;place-items:center;width:36px;height:36px;color:var(--accent-dark);background:#fff;border:1px solid var(--border);border-radius:8px}.calendarWeek span{color:#617881;text-align:center;font-size:12px;font-weight:900}.calendarDays button,.calendarBlank{position:relative;display:grid;place-items:center;min-height:54px;color:#294851;background:#f9fcfc;border:1px solid #e1ecee;border-radius:8px;font-weight:850}.calendarDays button:disabled{color:#b5c2c7;background:#f5f8f8}.calendarDays button.hasSlots{background:#fff}.calendarDays button.selected{color:#fff;background:var(--accent);border-color:var(--accent)}.calendarDays i{position:absolute;bottom:8px;width:6px;height:6px;border-radius:50%}.openDot{background:#21a37b}.closedDot{background:#aebcc1}.timeCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.timeCard{display:grid;gap:5px;min-height:76px;padding:13px;color:var(--accent-dark);text-align:left;background:#f3fbfb;border:1px solid #b9dcde;border-radius:8px}.timeCard strong{font-size:21px;line-height:1}.timeCard span{color:#547076;font-size:12px;font-weight:900}.timeCard.selected{color:#fff;background:var(--accent);border-color:var(--accent-dark)}.timeCard.selected span{color:#d7f7f5}.timeCard.closed{color:#87979c;background:#eff3f4;border-color:#d8e1e4}.operationNotice{margin-bottom:12px;padding:11px 12px;color:#7b4b0b;background:#fff8e7;border:1px solid #eecb82;border-radius:8px;font-size:13px;font-weight:800}.summaryBox{display:grid;gap:6px;margin-top:14px;padding:14px;background:radial-gradient(circle at 84% 34%,rgba(15,127,132,.08),transparent 34%),#f8fbfb;border:1px solid var(--border);border-radius:8px}.scheduleGuide{grid-template-columns:minmax(0,1fr) minmax(150px,210px);align-items:center;gap:14px;overflow:hidden}.scheduleGuide>div{min-width:0}.scheduleCharacter{justify-self:center;width:clamp(150px,15vw,210px);max-width:100%;aspect-ratio:1;object-fit:contain;object-position:center}.summaryBox span{color:var(--muted);font-size:12px;font-weight:900}.summaryBox strong{display:block;margin-top:4px;font-size:17px;line-height:1.35;overflow-wrap:anywhere}.summaryBox p{color:var(--muted);font-size:13px;line-height:1.5}.primaryButton,.secondaryButton,.dangerButton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 15px;border-radius:8px;border:1px solid transparent;font-size:14px;font-weight:900}.primaryButton{color:#fff;background:var(--accent)}.primaryButton:hover{background:var(--accent-dark)}.primaryButton:disabled{color:#e4ecee;background:#9eb5ba}.secondaryButton{color:var(--accent-dark);background:var(--accent-soft);border-color:#b9dcde}.dangerButton{color:var(--danger);background:#fff2f4;border-color:#f2c5cc}.wideButton{width:100%;margin-top:14px}.formStack{display:grid;gap:14px}.privacyText{display:grid;gap:12px}.privacyText dl{display:grid;gap:8px}.privacyText dl>div{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:10px;background:#f8fbfb;border:1px solid var(--border);border-radius:8px}.privacyText dt{color:#31565e;font-weight:900}.checkRow{display:flex;align-items:center;gap:9px;color:#31565e;font-size:14px;font-weight:850}.checkRow input{width:18px;min-height:18px;accent-color:var(--accent)}.fieldGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}label{display:grid;gap:7px;color:#385b64;font-size:13px;font-weight:900}label.wide{grid-column:1 / -1}label em{width:max-content;color:var(--accent);font-size:11px;font-style:normal}input,select,textarea,label>span{width:100%;color:var(--text);background:#fff;border:1px solid #ccdfe3;border-radius:8px;outline:none}input,select{min-height:44px;padding:0 12px}textarea{min-height:120px;padding:12px;resize:vertical;line-height:1.55}label>span{display:flex;align-items:center;gap:8px;padding:0 12px}label>span input{min-height:42px;padding:0;border:0}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f7f8421}.segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.segmented button{min-height:44px;color:#42636b;background:#f8fbfb;border:1px solid #d6e6e9;border-radius:8px;font-weight:900}.segmented button.selected{color:#fff;background:var(--accent);border-color:var(--accent)}.fileList{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.fileList span{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;color:#31565e;background:#f8fbfb;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:850}.fileList small{color:var(--muted);font-size:12px}.actionRow{display:flex;justify-content:flex-end;gap:10px}.reviewGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reviewBlock{padding:14px;background:#f8fbfb;border:1px solid var(--border);border-radius:8px}.reviewBlock.wide{grid-column:1 / -1}.reviewBlock h3{margin-bottom:10px;font-size:15px}.reviewBlock dl{display:grid;gap:8px}.reviewBlock dl>div{display:grid;grid-template-columns:120px 1fr;gap:10px}.reviewBlock dt{color:#41626b;font-weight:900}.reviewBlock dd{color:var(--text);word-break:break-word}.completePanel{display:grid;justify-items:center;gap:10px;padding:34px;text-align:center}.completeVisual{position:relative;display:grid;place-items:center;width:150px;height:120px}.completeIcon{position:absolute;left:0;bottom:12px;z-index:1;display:grid;place-items:center;width:64px;height:64px;color:#fff;background:var(--green);border-radius:999px;box-shadow:0 12px 24px #14906f2e}.completeCharacter{position:absolute;right:0;width:104px;height:104px;object-fit:contain}.adminBrandSymbol{flex:0 0 auto;width:clamp(132px,12vw,168px);height:auto;object-fit:contain}.completePanel h2{font-size:26px}.completePanel p{color:var(--muted);line-height:1.55}.completionSummary{width:min(620px,100%);margin-top:12px;text-align:left}.adminLoginPanel{width:min(560px,100%);margin:26px auto 0}.adminLoginForm{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.adminStack{display:grid;gap:16px;margin-top:16px}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{display:grid;gap:6px;padding:16px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.metric span{color:var(--muted);font-size:13px;font-weight:900}.metric strong{font-size:30px;line-height:1}.metric.good strong{color:var(--green)}.metric.danger strong{color:var(--danger)}.adminGrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:16px;align-items:start}.managerForms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.managerForms form,.settingsForm{display:grid;gap:9px;padding:12px;background:#f8fbfb;border:1px solid var(--border);border-radius:8px}.settingsNumberGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.operationTools{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.operationTools p{color:var(--muted);font-size:12px;line-height:1.5}.operationTools>div{display:flex;flex-wrap:wrap;gap:8px}.managerForms h3{font-size:14px}.wideForm{grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.wideForm h3,.weekdayChecks{grid-column:1 / -1}.weekdayChecks{display:flex;flex-wrap:wrap;gap:8px}.weekdayChecks label{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;background:#fff;border:1px solid var(--border);border-radius:999px}.weekdayChecks input{width:14px;min-height:14px}.slotGroups{display:grid;gap:10px;margin-top:14px}.slotGroup{display:grid;gap:8px;padding:11px;background:#fbfdfd;border:1px solid var(--border);border-radius:8px}.slotGroup>div{display:flex;flex-wrap:wrap;gap:7px}.adminSlot{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 8px;color:var(--accent-dark);background:var(--accent-soft);border:1px solid #b9dcde;border-radius:999px;font-size:12px;font-weight:900}.adminSlot.booked,.adminSlot.closed{color:#74858a;background:#edf2f3;border-color:#d5e0e3}.adminSlot button{display:grid;place-items:center;width:20px;height:20px;color:var(--danger);background:#fff;border:1px solid #f2c5cc;border-radius:50%}.reservationPanel{overflow:hidden}.reservationList{display:grid;gap:12px}.reservationItem{display:grid;gap:12px;padding:14px;background:#f8fbfb;border:1px solid var(--border);border-radius:8px}.reservationTop{display:flex;align-items:center;justify-content:space-between;gap:12px}.reservationTop>div{display:grid;gap:3px}.reservationTop strong{font-size:17px}.reservationTop select{width:136px}.reservationDetails{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,.8fr);gap:10px}.statusBox,.fileBox{display:grid;align-content:start;gap:8px;padding:14px;background:#fff;border:1px solid var(--border);border-radius:8px}.statusLine{display:flex;align-items:flex-start;gap:8px;color:var(--green)}.statusLine.failed{color:var(--danger)}.statusLine div{display:grid;gap:2px}.compact{min-height:36px;font-size:13px}.fileBox strong{font-size:15px}.fileDownload{display:flex;align-items:center;gap:7px;min-height:36px;padding:0 10px;color:#31565e;text-align:left;background:#f8fbfb;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:850}.fileDownload span{margin-left:auto;font-size:12px}.emptyText{padding:16px;text-align:center;background:#f8fbfb;border:1px dashed #cfe1e4;border-radius:8px}.toast{position:fixed;right:20px;bottom:20px;z-index:20;max-width:min(420px,calc(100vw - 32px));padding:14px 16px;color:#213b42;background:#fff8e7;border:1px solid #eecb82;border-radius:8px;box-shadow:0 18px 48px #14434e2e;font-size:14px;font-weight:900}@media(max-width:980px){.brandHeader,.reservationTop{align-items:flex-start;flex-direction:column}.bookingGrid,.adminGrid,.reservationDetails{grid-template-columns:1fr}.headerNote{max-width:none}}@media(max-width:720px){.siteShell{width:min(100vw - 20px,680px);padding-top:10px}.brandHeader,.panel{padding:14px}.brandLockup{align-items:flex-start}.brandLogo{width:clamp(84px,23vw,98px)}.adminBrandSymbol{width:clamp(108px,32vw,132px)}.progressBar{grid-template-columns:repeat(2,minmax(0,1fr))}.timeCards,.fieldGrid,.reviewGrid,.metricGrid,.settingsNumberGrid,.managerForms,.wideForm,.adminLoginForm{grid-template-columns:1fr}.scheduleGuide{grid-template-columns:1fr;justify-items:start}.scheduleCharacter{justify-self:center;width:clamp(90px,30vw,120px)}.completeVisual{width:126px;height:104px}.completeIcon{width:54px;height:54px}.completeCharacter{width:92px;height:92px}label.wide,.reviewBlock.wide,.wideForm h3,.weekdayChecks{grid-column:auto}.calendarDays button,.calendarBlank{min-height:44px}.reviewBlock dl>div,.privacyText dl>div{grid-template-columns:1fr;gap:3px}.actionRow{flex-direction:column-reverse}.actionRow button,.reservationTop select{width:100%}.toast{right:10px;bottom:10px}}
