:root{--ink:#173238;--muted:#788782;--forest:#315a4b;--line:#dfe6df;--soft:#f4f6f2;--cream:#fff;--gold:#bd996a;--pink:#fff0e9}*{box-sizing:border-box}html{font-family:'DM Sans','Noto Sans KR',sans-serif}body{margin:0;background:#f7f8f5;color:var(--ink);line-height:1.6}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}.console{min-height:100vh}.admin-head{min-height:93px;background:#173238;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:22px clamp(20px,5vw,85px);gap:15px}.wordmark{font-weight:700;letter-spacing:1.4px;font-size:17px}.wordmark span{font-weight:400;color:#e2e8dd}.wordmark small{display:block;font-size:9px;letter-spacing:3.2px;color:#bdcdbf;margin-top:4px}.head-side{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.head-side>span{font-size:10px;letter-spacing:1px;color:#bad0b9}.ghost{padding:9px 15px;background:transparent;border:1px solid #78918d;color:#f6f7f3;font-size:12px;border-radius:3px}.ghost:hover{background:#ffffff19}.login-view{min-height:calc(100vh - 160px);display:grid;place-items:center;padding:46px 18px}.login-card{background:white;border:1px solid var(--line);padding:clamp(26px,5vw,58px);width:min(530px,100%);box-shadow:0 18px 70px #162e2110}.kicker{font-size:11px;color:#719389;letter-spacing:2.6px;font-weight:700}.login-card h1,.welcome h1{font-weight:500;font-size:clamp(38px,4vw,59px);letter-spacing:-2.5px;margin:5px 0 9px}.login-card h1 i{font-family:serif;font-weight:400;color:var(--forest)}.support-text,.welcome p:not(.kicker){font-size:14px;color:var(--muted);max-width:510px}.login-card form{margin-top:28px}.login-card label{font-size:11px;letter-spacing:1px;font-weight:700;display:block}.login-card input{width:100%;display:block;padding:14px 15px;margin-top:8px;border:1px solid var(--line);background:#fcfdfc;font-size:15px;letter-spacing:normal}.primary{background:var(--forest);color:#fff;border:0;border-radius:3px;padding:13px 20px;font-weight:600}.primary:hover{background:#1e4536}.login-card form .primary{width:100%;margin-top:17px}.warn{color:#b94637;font-size:13px;min-height:18px}.smallprint{font-size:11px;color:var(--muted);margin-top:18px}.dashboard{max-width:1460px;margin:auto;padding:47px clamp(18px,4vw,65px) 85px}.welcome h1{margin:0}.welcome h1 span{color:#96b5a3}.welcome .kicker{margin-bottom:7px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:27px}.stat{background:white;border:1px solid var(--line);padding:22px 24px;display:flex;flex-direction:column;gap:4px}.stat small{font-size:10px;letter-spacing:1.6px;color:#699282;font-weight:700}.stat strong{font-size:36px;font-weight:500;line-height:1.3}.stat span{font-size:12px;color:var(--muted)}.tabbar{margin-top:36px;display:flex;border-bottom:1px solid var(--line);gap:14px}.tab{background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:14px 19px;color:#8b9b96;font-size:12px;letter-spacing:1.2px;font-weight:700}.tab span{font-size:12px;letter-spacing:0;margin-left:7px;font-weight:400}.tab.active{border-color:#335d4b;color:var(--ink)}.panel{padding-top:28px}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-top h2{font-weight:500;font-size:27px;margin:4px 0}.outline{border:1px solid #ccdcd0;background:#fff;border-radius:3px;padding:10px 14px;color:#365a4b;font-size:12px}.outline:hover{background:#edf4ee}.filters{display:flex;gap:12px;margin:20px 0 10px;flex-wrap:wrap}.filters label{display:flex;gap:8px;align-items:center;color:#687c74;font-size:12px}.filters select,.filters input{border:1px solid #dce5dd;background:#fff;color:#243f34;padding:10px 12px;min-width:170px}.filters input{min-width:min(340px,65vw)}.muted{font-size:12px;color:#809088}.reservation-list{display:grid;gap:14px;margin-top:17px}.reservation-card{background:white;border:1px solid var(--line);padding:21px 23px}.booking-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.reference{font-size:11px;letter-spacing:1px;color:#79968b;font-weight:700}.booking-top h3{font-size:18px;margin:5px 0;font-weight:600}.status-chip{display:inline-flex;border-radius:100px;background:#edf5ee;color:#4e6a5c;font-size:11px;padding:5px 11px}.status-chip.pending_review{background:#fff1e8;color:#9e683d}.status-chip.confirmed{background:#e9f6ee;color:#246c4d}.status-chip.cancelled{background:#f6eded;color:#955e5e}.booking-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-top:1px solid #f0f2ef;border-bottom:1px solid #f0f2ef;margin:13px 0;padding:12px 0}.booking-fields small{display:block;color:#829188;font-size:10px;letter-spacing:.6px}.booking-fields strong{font-size:13px;overflow-wrap:anywhere}.guest-message{font-size:12px;color:#5e7369;margin:8px 0 15px;white-space:pre-wrap}.booking-tools{display:grid;grid-template-columns:minmax(160px,220px) minmax(200px,1fr) auto;align-items:end;gap:10px}.booking-tools label{color:#829188;font-size:11px}.booking-tools select,.booking-tools textarea{width:100%;display:block;background:#fcfdfb;border:1px solid #dfe6df;padding:9px 10px;color:#3a5144}.booking-tools textarea{height:44px;resize:vertical}.empty{padding:30px;text-align:center;color:#87968c;font-size:13px;border:1px dashed #d6e1d8;background:#fff}.chat-layout{display:grid;grid-template-columns:minmax(230px,33%) 1fr;min-height:550px;margin-top:20px;border:1px solid var(--line);background:#fff}.conversation-list{border-right:1px solid var(--line);max-height:660px;overflow-y:auto}.conversation-list .empty{border:0}.convo-row{width:100%;background:#fff;border:0;border-bottom:1px solid #edf0e9;text-align:left;padding:17px 19px;display:block}.convo-row.selected{background:#ecf3ee;border-left:3px solid #3e6f54;padding-left:16px}.convo-row b{font-size:13px}.convo-row em{float:right;font-style:normal;font-size:10px;color:#789185}.convo-row p{margin:6px 0 0;font-size:12px;color:#80918a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-detail{display:flex;flex-direction:column;min-width:0}.conversation-head{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}.conversation-head strong{display:block;font-size:15px}.conversation-head small{font-size:11px;color:#7a8b7d}.chat-thread{padding:20px;flex:1;max-height:440px;overflow:auto;display:flex;flex-direction:column;gap:12px}.message{max-width:min(85%,550px);padding:11px 13px;background:#f3f5ef;border-radius:10px 10px 10px 2px;align-self:flex-start;white-space:pre-wrap;font-size:13px;overflow-wrap:anywhere}.message.admin{background:#365d4a;color:white;align-self:flex-end;border-radius:10px 10px 2px 10px}.message small{display:block;font-size:9px;margin-top:5px;opacity:.6}.reply-form{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--line);align-items:end}.reply-form textarea{border:1px solid var(--line);min-height:68px;resize:vertical;padding:11px;flex:1;min-width:0}.reply-form .primary{white-space:nowrap}.console>footer{text-align:center;padding:25px;color:#899990;font-size:10px;letter-spacing:1px}@media(max-width:860px){.stats{grid-template-columns:repeat(2,1fr)}.booking-fields{grid-template-columns:repeat(2,1fr)}.booking-tools{grid-template-columns:1fr 1fr}.booking-tools button{grid-column:1/-1}.chat-layout{grid-template-columns:1fr}.conversation-list{max-height:180px;border-bottom:1px solid var(--line);border-right:0}.chat-thread{height:340px;flex:auto}.head-side>span{display:none}}@media(max-width:530px){.admin-head{padding:15px}.wordmark{font-size:13px}.ghost{padding:7px;font-size:10px}.dashboard{padding:24px 15px}.stat{padding:15px}.stat strong{font-size:28px}.tab{padding:12px 7px;font-size:10px}.tab span{display:block}.panel-top h2{font-size:22px}.booking-fields{grid-template-columns:1fr 1fr}.booking-tools{grid-template-columns:1fr}.booking-tools button{grid-column:1}.reply-form{flex-direction:column;align-items:stretch}}

/* Availability management */
.small-subtitle{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted)}
.availability-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.9fr);gap:20px;margin-top:21px}
.availability-form-card,.availability-list-card{background:#fff;border:1px solid var(--line);padding:clamp(17px,3vw,26px);min-width:0}
.av-top label,.block-form label{font-size:11px;font-weight:700;color:#6e8177;letter-spacing:.4px;display:block}
.av-top select,.block-form input{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #d9e3db;background:#fff;color:var(--ink);font-size:14px;min-width:0}
.av-calendar-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 15px}
.av-calendar-heading strong{letter-spacing:1px;font-weight:600;font-size:18px}
.av-calendar-heading .outline{font-size:16px;padding:4px 14px}
.av-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.av-weekday{text-align:center;font-size:10px;letter-spacing:.6px;color:#92a096;padding:4px 0 7px}
.av-day{display:grid;place-items:center;min-height:44px;position:relative;border:1px solid #edf0eb;background:white;color:#244237;font-size:13px;border-radius:2px}
.av-day:hover:not(:disabled){background:#ebf5ed;border-color:#a9c7b5}
.av-day.manual{background:#f8e5e1;color:#9a4d43;border-color:#eed2cb}
.av-day.confirmed{background:#dee9f2;color:#315d7c;border-color:#bed1e2}
.av-day.range{outline:2px solid #3e7655;outline-offset:-2px;background:#e3f2e9}
.av-day:disabled{opacity:.34}
.av-day .av-mark{width:5px;height:5px;background:currentColor;position:absolute;bottom:5px;border-radius:50%}
.av-legend{display:flex;gap:16px;flex-wrap:wrap;margin:17px 0;font-size:11px;color:#788b7c}.av-legend span{display:flex;gap:6px;align-items:center}
.av-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.av-manual{background:#bc7666}.av-confirmed{background:#8baecc}.av-selected{background:#3e7655}
.block-form{border-top:1px solid #e5ece6;padding-top:19px;display:grid;gap:14px}
.block-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.block-form button{width:100%}.av-feedback{font-size:12px;color:#3e7053;margin:0;min-height:18px}.av-feedback.error{color:#b94637}
.availability-list-card h3{font-size:22px;margin:0 0 4px;font-weight:500}.availability-list-card h3 span{font-size:12px;color:var(--muted)}
.blocks-list{display:grid;gap:10px;margin-top:17px;max-height:670px;overflow:auto}.block-row{border:1px solid #e4ebe5;padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.block-row strong{font-size:13px;display:block}.block-row small{font-size:11px;color:#798e81;display:block;margin-top:3px}.block-row .outline{white-space:nowrap}
.confirmed-note{margin-top:25px;background:#f5f8fa;padding:13px;color:#6e8496;font-size:11px;line-height:1.6}
@media(max-width:960px){.availability-layout{grid-template-columns:1fr}}@media(max-width:490px){.block-date-fields{grid-template-columns:1fr}.av-day{min-height:39px}.av-legend{gap:9px}.tab{padding:13px 8px;font-size:10px}}
