:root{--bg:#f7fff9;--surface:#fff;--surface-mint:#edfbf5;--surface-yellow:#fff7e5;--surface-violet:#f5efff;--line:#d9eadf;--line-strong:#9cd7b6;--text:#202423;--muted:#66736e;--green:#079554;--green-dark:#057542;--yellow:#f0b323;--purple:#6d46b7;--blue:#1d7bd8;--danger:#d95050;--shadow:0 20px 50px #215b431f}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{color:var(--text);margin:0;font-family:Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}.app-shell{background:radial-gradient(circle at 10% 34%,#50b8651f 0 72px,#0000 74px),radial-gradient(circle at 91% 23%,#82be571f 0 88px,#0000 90px),linear-gradient(#fbfffc 0%,#f2fff8 62%,#fff 100%);min-height:100vh;padding:62px 22px 36px;position:relative;overflow:hidden}.hero,.mode-grid,.workspace,.lookup-layout,.site-footer{z-index:1;width:min(1180px,100%);margin-inline:auto;position:relative}.hero{text-align:center;justify-items:center;gap:10px;margin-bottom:28px;display:grid}.mascot{background:#ff8ed4;border:8px solid #bbe8ff;border-radius:50%;place-items:center;width:82px;height:82px;display:grid;overflow:hidden;box-shadow:0 16px 28px #2f7e6526}.mascot img{object-fit:contain;width:78px;height:78px;display:block}.eyebrow{color:var(--green-dark);letter-spacing:0;margin:0;font-size:16px;font-weight:900}.hero h1{letter-spacing:0;margin:0;font-size:clamp(30px,4.4vw,60px);line-height:1.04}.hero h1 span{color:var(--green)}.hero-copy{color:#303735;border-bottom:8px solid #ffd957;margin:0;padding:0 0 8px;font-size:20px;font-weight:800;display:inline-block}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:760px;margin-bottom:22px;display:grid}.mode-card{min-height:110px;color:var(--text);text-align:left;box-shadow:var(--shadow);border:2px solid #0000;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:22px;display:grid}.mode-card span,.mode-card small{grid-column:2}.mode-card span{font-size:23px;font-weight:900}.mode-card small{color:var(--muted);font-size:14px;font-weight:800}.mode-card.mint{color:var(--green-dark);background:#f0fff8}.mode-card.violet{background:var(--surface-violet);color:var(--purple)}.mode-card.active{border-color:currentColor;transform:translateY(-2px)}.notice{z-index:1;width:min(760px,100% - 44px);color:var(--green-dark);background:#fff;border:1px solid #b9e2cc;border-radius:8px;margin:0 auto 18px;padding:14px 16px;font-weight:800;position:relative;box-shadow:0 12px 28px #215b4314}.workspace{grid-template-columns:1.1fr .9fr;align-items:start;gap:20px;display:grid}.calendar-zone,.time-zone,.form-zone,.lookup-panel,.result-list,.admin-main,.admin-side,.login-box{border:1px solid var(--line);box-shadow:var(--shadow);background:#ffffffeb;border-radius:8px}.calendar-zone{grid-row:span 2;padding:22px}.time-zone,.form-zone{padding:22px}.section-title,.admin-section-title{align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-section-title{flex-wrap:wrap}.admin-section-title>div{flex:auto}.admin-action-button,.admin-download-button{background:#079554;border:1px solid #079554;border-radius:8px;margin-left:auto;color:#fff!important}.admin-action-button svg,.admin-download-button svg{color:#fff!important}.title-icon,.login-icon{width:42px;height:42px;color:var(--green);background:#e4faef;border-radius:8px;flex:none;place-items:center;display:grid}.section-title h2,.admin-section-title h2,.admin-tool h2,.admin-tool h2{letter-spacing:0;margin:0;font-size:22px}.section-title p,.admin-section-title p{color:var(--muted);margin:3px 0 0;font-size:14px;font-weight:700}.calendar-toolbar{grid-template-columns:38px 1fr 38px;align-items:center;gap:12px;margin-bottom:12px;display:grid}.icon-button{width:38px;height:38px;color:var(--green-dark);background:#fff;border:1px solid #c8dfd1;border-radius:50%;place-items:center;display:grid}.select-pair{justify-content:center;gap:8px;display:flex}select,input,textarea{width:100%;min-height:42px;color:var(--text);background:#fff;border:1px solid #cadbd2;border-radius:8px}input,textarea,select{padding:10px 12px}textarea{resize:vertical}.calendar-grid{border-top:2px solid var(--green);border-left:1px solid #dce5df;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday,.date-cell{border-bottom:1px solid #dce5df;border-right:1px solid #dce5df;min-height:42px}.weekday{background:#f7f5f7;place-items:center;font-size:13px;font-weight:900;display:grid}.date-cell{color:#24302b;text-align:left;background:#fff;border-top:0;border-left:0;flex-direction:column;gap:6px;min-height:84px;padding:9px;display:flex;position:relative}.date-cell span{font-size:13px;font-weight:900}.date-cell small{color:#9da9a3;font-size:12px;font-weight:900}.calendar-events{gap:3px;width:100%;margin-top:auto;display:grid}.date-cell .calendar-event{min-width:0;max-width:100%;color:var(--green-dark);text-overflow:ellipsis;white-space:nowrap;background:#e6f7ef;border-radius:5px;padding:3px 5px;font-size:11px;font-weight:900;line-height:1.2;display:block;overflow:hidden}.date-cell .calendar-event.more{color:#6c7a74;background:#f1f5f3}.date-cell.outside{color:#c7d2cc;background:#fafcfb}.date-cell.open{background:#f2fbf6;box-shadow:inset 0 0 0 1px #0780492e}.date-cell.open span:first-child{color:#12392a}.date-cell .open-label{color:#0b6f43;background:#e0f4e9;border-radius:999px;width:fit-content;padding:2px 6px}.date-cell.closed{color:#9ba6a0;background:#f4f5f4}.date-cell.closed small{color:#aeb8b2}.date-cell.selected{background:#e4f8ee;outline:3px solid #07955438}.time-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.time-chip{min-height:42px;color:var(--green-dark);background:#fff;border:1px solid #cbe4d6;border-radius:8px;place-items:center;gap:2px;font-weight:900;display:grid}.time-chip small{font-size:11px;font-weight:900;line-height:1}.time-chip.selected{border-color:var(--green);background:var(--green);color:#fff}.time-chip:disabled{color:#b8c3bd;background:#f3f5f4;border-color:#e4e8e5}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field{color:#304038;gap:7px;font-size:14px;font-weight:900;display:grid}.field span{align-items:center;gap:6px;display:flex}.field.full{grid-column:1/-1}.check-row{color:#3f4c48;align-items:flex-start;gap:10px;margin:16px 0;font-size:14px;font-weight:800;display:flex}.check-row input{width:18px;min-height:18px;accent-color:var(--green);flex:0 0 18px;margin-top:2px}.primary-button,.secondary-button,.icon-text-button{background:var(--green);color:#fff;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:46px;font-weight:900;display:inline-flex}.primary-button{width:100%;padding:0 18px;box-shadow:0 12px 26px #07955438}.primary-button.purple,.secondary-button.purple{background:var(--purple)}.secondary-button{width:100%;padding:0 14px}.lookup-layout{grid-template-columns:.85fr 1.15fr;align-items:start;gap:20px;display:grid}.lookup-panel,.result-list{padding:22px}.lookup-panel .primary-button{margin-top:16px}.result-list{gap:12px;min-height:256px;display:grid}.empty-state{min-height:210px;color:var(--muted);align-content:center;place-items:center;gap:10px;font-weight:900;display:grid}.reservation-card{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.reservation-card-actions{justify-items:end;gap:10px;min-width:118px;display:grid}.reservation-button-row{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.mini-action-button{min-height:32px;color:var(--green-dark);background:#fff;border:1px solid #cbe4d6;border-radius:8px;padding:0 10px;font-size:12px;font-weight:900}.mini-action-button.danger{color:#b43838;border-color:#f0c7c7}.mini-action-button:disabled{opacity:.55}.reservation-card strong{font-size:18px}.reservation-card p{color:var(--muted);margin:4px 0 0;font-size:14px;font-weight:800}.date-note-corner{cursor:pointer;border-top:14px solid #6f48c9;border-left:14px solid #0000;width:0;height:0;position:absolute;top:0;right:0}.status-badge,.setup-pill{min-height:30px;color:var(--green-dark);white-space:nowrap;background:#e7f9ef;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.status-badge.confirmed{color:var(--blue);background:#e8f2ff}.status-badge.rejected,.status-badge.cancelled{color:var(--danger);background:#fff0f0}.status-badge.completed{color:var(--purple);background:#f2edff}.site-footer{color:#818c87;justify-content:center;gap:16px;margin-top:34px;font-size:14px;font-weight:900;display:flex}.site-footer a{color:var(--green-dark)}.decorations{pointer-events:none;position:absolute;inset:0}.bubble{border-radius:50%;display:block;position:absolute}.bubble-a{background:#77d48e2e;width:132px;height:132px;top:22%;left:6%}.bubble-b{background:#accd9229;width:176px;height:176px;top:16%;right:8%}.confetti{border-radius:5px;width:18px;height:18px;display:block;position:absolute}.confetti-a{background:#ffd957;top:16%;left:17%;transform:rotate(38deg)}.confetti-b{background:0 0;border:5px solid #ffd957;top:18%;right:17%;transform:rotate(24deg)}.confetti-c{background:0 0;border:5px solid #c8b2f4;top:18%;left:8%;transform:rotate(15deg)}.admin-shell{background:radial-gradient(circle at 92% 10%,#6d46b71a 0 90px,#0000 92px),linear-gradient(#fbfffc 0%,#f3fff8 100%);min-height:100vh;padding:34px 22px 46px}.admin-header,.metric-grid,.admin-layout,.admin-tabs,.availability-layout{width:min(1220px,100%);margin-inline:auto}.admin-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.admin-title-block{align-items:center;gap:14px;min-width:0;display:flex}.admin-title-mark{width:52px;height:52px;color:var(--green);background:linear-gradient(145deg,#fff 0%,#e9fbf1 100%);border:1px solid #bfe6cf;border-radius:8px;flex:0 0 52px;place-items:center;display:grid;box-shadow:0 14px 34px #07955421}.admin-title-mark svg{stroke-width:2.3px}.admin-header h1{letter-spacing:0;margin:0;font-size:34px}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.back-link,.icon-text-button{min-height:40px;color:var(--green-dark);align-items:center;gap:8px;font-weight:900;display:inline-flex}.icon-text-button{padding:0 14px}.admin-return-button{color:#0b6f43;background:#fff;border:1px solid #bfe0cc;border-radius:8px;min-height:42px;padding-inline:16px;box-shadow:0 10px 24px #22553c14}.admin-return-button:hover{background:#f4fbf7;border-color:#93cfac}.login-screen .back-link{background:#ffffffdb;border:1px solid #bfe0cc;border-radius:8px;min-height:42px;padding:0 15px;position:absolute;top:28px;left:28px;box-shadow:0 10px 24px #22553c14}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.metric{color:#27312d;min-height:92px;box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;align-items:center;padding:18px;display:flex}.metric.mint{background:var(--surface-mint)}.metric.yellow{background:var(--surface-yellow)}.metric.violet{background:var(--surface-violet)}.metric.green{background:#e3f4e9}.metric span{font-weight:900}.metric strong{font-size:34px}.admin-layout{grid-template-columns:1fr 360px;align-items:start;gap:18px;display:grid}.admin-layout.single{grid-template-columns:1fr}.admin-main,.admin-side{padding:20px}.admin-side{gap:16px;display:grid}.reservation-table{gap:12px;display:grid}.admin-reservation-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:1fr auto;gap:18px;padding:16px;display:grid}.admin-reservation-row.completed{background:#eef3ef;border-color:#a9b8af;box-shadow:inset 4px 0 #64756b}.admin-reservation-row.completed strong,.admin-reservation-row.completed p{color:#4c5a52}.admin-reservation-row strong{margin-bottom:6px;font-size:18px;display:block}.admin-reservation-row p{color:var(--muted);margin:3px 0;font-size:14px;font-weight:800}.admin-reservation-row.editing{background:#fbfffd;align-items:start}.reservation-edit-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.reservation-edit-form textarea{min-height:78px}.row-actions{justify-items:end;gap:12px;display:grid}.button-strip{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.button-strip button{min-height:32px;color:var(--green-dark);background:#fff;border:1px solid #c9ddd2;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.button-strip button.danger{color:#b43838;border-color:#f0c7c7}.time-toggle-field{gap:8px;display:grid}.time-toggle-field>span{color:#304038;font-size:13px;font-weight:900}.time-toggle-grid{flex-wrap:wrap;gap:6px;display:flex}.time-toggle-summary{color:var(--green-dark);margin:0;font-size:12px;font-weight:900}.time-toggle{color:#5f6964;cursor:pointer;background:#f1f3f2;border:1px solid #d9dedb;border-radius:8px;min-height:30px;padding:0 9px;font-size:12px;font-weight:900}.time-toggle.selected{color:#007a43;background:#dffbea;border-color:#80dca9;box-shadow:0 8px 18px #07955438,inset 0 0 0 1px #ffffffb3}.time-toggle:focus-visible{outline-offset:2px;outline:3px solid #6f48c947}.admin-tool{gap:10px;display:grid}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.chip-list{gap:8px;display:grid}.manage-chip{border:1px solid var(--line);color:#304038;background:#fbfffd;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:38px;padding:8px 10px;font-size:13px;font-weight:900;display:flex}.manage-chip button{width:28px;height:28px;color:var(--green-dark);background:#f1f8f4;border:0;border-radius:8px;place-items:center;display:grid}.soft-text{color:var(--muted);margin:0;font-size:13px;font-weight:800}.login-screen{align-content:center;justify-items:center;gap:18px;display:grid}.login-box{gap:14px;width:min(420px,100%);padding:28px;display:grid}.login-box h1{margin:0;font-size:30px}.admin-header .admin-action-button,.admin-section-title .admin-download-button{background:#079554;border-color:#079554;color:#fff!important}.admin-header .admin-action-button{border-radius:8px;min-height:42px;box-shadow:0 12px 26px #0795542e}.admin-header .admin-action-button *,.admin-section-title .admin-download-button *{color:#fff!important;stroke:#fff!important}.admin-notice{width:min(1220px,100% - 44px)}.admin-tabs{border-bottom:1px solid #cfe2d6;gap:8px;margin-bottom:18px;display:flex}.admin-tab-button{min-height:44px;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:0 16px;font-weight:900;display:inline-flex}.admin-tab-button.active{border-bottom-color:var(--green);color:var(--green-dark)}.availability-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#ffffffeb;border-radius:8px;padding:20px}.availability-title{margin-bottom:14px}.availability-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.availability-stats .metric{min-height:82px;box-shadow:none}.admin-open-calendar{margin-bottom:22px}.admin-open-calendar .date-cell{min-height:98px}.admin-date-cell.open{background:#f0fff8}.admin-date-cell.today{outline-offset:-2px;outline:2px solid #1d7bd83d}.date-state{background:#f0f2f1;border-radius:999px;align-items:center;width:fit-content;padding:3px 6px;display:inline-flex;color:#89938e!important;font-size:11px!important}.date-state.open{background:#dffbea;color:var(--green-dark)!important}.open-day-section{border-top:1px solid var(--line);padding-top:18px}.open-day-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.open-day-section-head h3{margin:0;font-size:20px}.open-day-section-head span{color:var(--green-dark);font-size:13px;font-weight:900}.open-day-list{gap:10px;display:grid}.open-day-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:16px;display:grid}.open-day-row strong{margin-bottom:5px;font-size:17px;display:block}.open-day-row p{color:var(--muted);margin:3px 0;font-size:14px;font-weight:800}.open-day-actions{justify-items:end;gap:10px;display:grid}.admin-empty-state{background:#fbfffd;border:1px dashed #cde1d5;border-radius:8px;min-height:160px}.modal-backdrop{z-index:20;background:#0c18126b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--line);background:#fff;border-radius:8px;width:min(680px,100%);max-height:min(860px,100vh - 40px);padding:22px;overflow:auto;box-shadow:0 28px 72px #0c181247}.modal-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.modal-header h2{margin:3px 0 0;font-size:26px}.open-day-form{gap:14px;display:grid}.time-toggle-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.time-toggle-head>span{color:#304038;font-size:13px;font-weight:900}.time-toggle-head>div{flex-wrap:wrap;gap:6px;display:flex}.time-toggle-head button{min-height:30px;color:var(--green-dark);background:#fff;border:1px solid #c9ddd2;border-radius:8px;padding:0 9px;font-size:12px;font-weight:900}.modal-time-grid{grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:6px;display:flex}.modal-actions .primary-button,.modal-actions .secondary-button{width:auto;min-width:108px;box-shadow:none;padding:0 16px}.danger-button{color:#b43838;background:#fff0f0;border:1px solid #f0c7c7}.muted-button{color:#52615a;background:#f7faf8;border:1px solid #d6e2db}@media (max-width:980px){.workspace,.lookup-layout,.admin-layout{grid-template-columns:1fr}.calendar-zone{grid-row:auto}.admin-side,.availability-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.app-shell{padding:34px 14px 28px}.hero-copy{font-size:16px}.mode-grid,.metric-grid,.availability-stats{grid-template-columns:1fr}.workspace,.lookup-layout{gap:14px}.calendar-zone,.time-zone,.form-zone,.lookup-panel,.result-list,.admin-main,.admin-side{padding:16px}.date-cell{min-height:62px;padding:7px}.time-grid,.field-grid,.reservation-edit-form,.admin-side,.two-col{grid-template-columns:1fr}.admin-header,.admin-reservation-row,.reservation-card,.open-day-row{grid-template-columns:1fr;align-items:stretch}.admin-header{display:grid}.admin-title-block{align-items:flex-start}.admin-title-mark{flex-basis:46px;width:46px;height:46px}.admin-header-actions{justify-content:stretch}.admin-header-actions .icon-text-button,.admin-return-button{flex:150px;justify-content:center}.row-actions,.open-day-actions{justify-items:start}.admin-tabs{overflow-x:auto}.admin-tab-button{flex:none}.modal-time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.modal-actions{justify-content:stretch}.modal-actions .primary-button,.modal-actions .secondary-button{flex:100%}}
