/* Frosted blue glass laid over the existing white-paper collage. */
#projectDialog.coffee-booking-dialog{width:min(1080px,calc(100vw - 40px));background:linear-gradient(125deg,#f7fbffcf,#edf3fabd 55%,#fcfcf3d9);backdrop-filter:blur(38px) saturate(125%);-webkit-backdrop-filter:blur(38px) saturate(125%);border:1px solid #fff;border-radius:28px;box-shadow:inset 0 1px 1px #fff,0 30px 100px #26436836}
.coffee-booking-dialog .dialogbar{background:#f4f8fb85;border-bottom:1px solid #ffffff9c;color:#6b7f97}.coffee-booking-dialog .detail{padding:26px 40px 40px;max-width:none}.coffee-booking{--coffee-ink:#31465e;--coffee-muted:#71839a;--coffee-blue:#557ca8;color:var(--coffee-ink)}
.coffee-booking button,.coffee-booking input,.coffee-booking textarea,.coffee-booking select{font-family:inherit}.coffee-booking button:focus-visible,.coffee-booking select:focus-visible,.coffee-booking input:focus-visible,.coffee-booking textarea:focus-visible{outline:3px solid #7b9bb9;outline-offset:3px}.coffee-booking button:disabled{cursor:default;opacity:.4}.coffee-booking button{cursor:pointer}.coffee-booking [hidden]{display:none!important}
.coffee-booking-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.coffee-booking-header>img{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 7px 8px #8b705523);transform:rotate(8deg)}.coffee-kicker{font-family:Georgia,serif;font-style:italic;font-size:13px;color:#7a8ba0}.detail .coffee-booking-header h2{font-family:'Songti SC','Noto Serif CJK SC',serif;font-size:32px;font-weight:500;letter-spacing:0;line-height:1.4;margin:7px 0 0}
.coffee-progress{height:4px;border-radius:3px;background:#b6c7da3b;overflow:hidden}.coffee-progress>span{height:100%;display:block;border-radius:3px;background:linear-gradient(90deg,#8da6bf,#537ba6);transition:width .25s ease}.coffee-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:19px 0 25px}.coffee-steps button{display:flex;align-items:center;gap:9px;background:none;border:0;padding:0;font-size:11px;color:#7c8a9b;justify-content:center;opacity:1!important}.coffee-steps b{display:grid;place-items:center;width:24px;height:24px;border:1px solid #e6edf5;background:#ffffff78;border-radius:50%;font-size:10px;font-weight:500;box-shadow:inset 0 1px 0 white}.coffee-steps [aria-current=step]{color:#355f8b;font-weight:650}.coffee-steps [aria-current=step] b{background:#5c7fa6;color:#fff;border-color:#5c7fa6;box-shadow:0 2px 6px #54759a33}.coffee-steps .complete{color:#547a9d}.coffee-steps .complete b{background:#dce9f2;border-color:#c8dbe9}
.coffee-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:26px;align-items:start}.coffee-aside{position:sticky;top:110px;padding:31px 10px 20px 3px}.coffee-handwritten{font-family:'Kaiti SC','STKaiti',serif;font-size:21px;line-height:1.7;color:#6c7e91;display:inline-block;transform:rotate(-3deg)}.detail .coffee-aside p{font-size:12px;line-height:2;color:#8090a3;margin-top:25px}.coffee-aside-line{height:1px;width:50px;background:#b7c7d6;margin:28px 0 18px;transform:rotate(-4deg)}.coffee-aside small{font-size:11px;color:#8b9aae;line-height:2}
.coffee-panel{min-width:0;min-height:465px;border:1px solid #ffffffd9;border-radius:23px;padding:30px 32px;background:linear-gradient(130deg,#ffffffb0,#f9fcff70);box-shadow:inset 0 1px 1px #fff,inset 0 -1px 1px #e0eaf499,0 9px 24px #4b66850c;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.coffee-panel-heading{margin-bottom:23px}.coffee-step-note{font-size:10px;color:#8c9aab}.detail .coffee-panel h3{font-family:inherit;font-size:22px;font-weight:550;margin:6px 0;line-height:1.5;letter-spacing:0}.coffee-panel h3:focus{outline:none}.detail .coffee-panel-heading p{font-size:12px;line-height:1.8;color:var(--coffee-muted);margin:7px 0 0}
.coffee-fields label{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;color:#435d78;margin:19px 0 8px}.coffee-fields label span{font-size:10px;color:#91a0b2;font-weight:400}.coffee-fields input,.coffee-fields textarea,.coffee-fields select{width:100%;box-sizing:border-box;padding:12px 14px;background:#f6faff8f;border:1px solid #d6e1ee;border-radius:12px;box-shadow:inset 0 2px 4px #6781a008,0 1px 0 #fff;color:var(--coffee-ink);font-size:13px;line-height:1.5}.coffee-fields input::placeholder,.coffee-fields textarea::placeholder{color:#96a4b5;font-size:12px}.coffee-fields textarea{resize:vertical;min-height:92px}.coffee-contact-heading{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.coffee-contact-heading label{margin:0}.coffee-contact-heading select{width:88px;font-size:11px;padding:6px 9px;border-radius:9px}.coffee-fields #coffeeContactField label{margin-top:10px}
.detail .coffee-privacy{font-size:10px;line-height:1.8;color:#8b98a9;margin:11px 0 18px}.coffee-primary{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid #6a88aa;border-radius:14px;background:linear-gradient(120deg,#6e8fae,#52769e);box-shadow:inset 0 1px 1px #ffffff55,0 5px 12px #52789b20;color:white;padding:12px 18px;font-size:12px;font-weight:500;line-height:1.4;min-height:44px}.coffee-primary:hover:not(:disabled){background:#52769e}.coffee-fields>.coffee-primary{width:100%;margin-top:4px}.coffee-primary>span{font-size:15px}.coffee-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:28px}.coffee-back,.coffee-text-button{padding:9px 0;background:transparent;border:0;color:#6d849e;font-size:12px}.coffee-text-button{text-decoration:underline;text-underline-offset:5px}.detail .coffee-error{font-size:12px;color:#a34848;line-height:1.8;margin:9px 0}.coffee-error:empty{display:none}
.coffee-modes{display:grid;gap:12px}.coffee-mode{display:flex;gap:15px;align-items:center;width:100%;text-align:left;padding:18px 17px;background:linear-gradient(115deg,#ffffffaa,#edf4fa7a);border:1px solid #dce6ef;border-radius:16px;color:var(--coffee-ink);box-shadow:inset 0 1px 0 white;transition:background .15s,border-color .15s}.coffee-mode:hover{border-color:#8faaca}.coffee-mode.chosen{border-color:#83a4c5;background:#e7f0f8c9;box-shadow:inset 0 1px 1px #fff,0 3px 8px #587ba30b}.coffee-mode-icon{width:39px;height:39px;display:grid;place-items:center;background:#f6faffb5;border:1px solid #fff;border-radius:12px;color:#728eaf;flex-shrink:0}.coffee-mode-icon svg{width:24px;height:24px}.coffee-mode strong{font-size:13px;font-weight:550;display:block}.coffee-mode small{display:block;font-size:10px;color:#8697ac;margin-top:6px}.coffee-radio{margin-left:auto;display:grid;place-items:center;width:18px;height:18px;border:1px solid #bdcede;border-radius:50%;font-size:11px;color:white;flex-shrink:0}.chosen .coffee-radio{background:#688dae;border-color:#688dae}
.coffee-week{display:flex;justify-content:space-between;align-items:center;margin:2px 0 20px}.coffee-week strong{font-size:13px;font-weight:500;letter-spacing:1px}.coffee-week button{background:#ffffff70;border:1px solid #e0e8f1;border-radius:50%;width:31px;height:31px;color:#6c829e}.coffee-weekdays,.coffee-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;text-align:center}.coffee-weekdays{font-size:10px;color:#93a0b2;margin-bottom:10px}.coffee-days button{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:9px 0;border-radius:13px;font-size:13px;border:1px solid #dbe6f0;background:#f8fcff8a;color:#526e8b;min-height:48px}.coffee-days button:disabled{background:transparent;border-color:transparent;color:#b2bbc7;opacity:.7}.coffee-days i{display:block;width:3px;height:3px;border-radius:50%;background:#7a97b7}.coffee-days button:disabled i{visibility:hidden}.coffee-days .chosen{background:#6586ab;color:#fff;border-color:#6586ab;box-shadow:0 3px 8px #5d7fa32b}.coffee-days .chosen i{background:white}.coffee-time-heading{font-size:11px;color:#73859c;margin:24px 0 12px}.coffee-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:56px}.coffee-times button{background:#ffffff8c;border:1px solid #d8e4ef;padding:12px 8px;border-radius:12px;color:#506a88;font-size:13px}.coffee-times small{font-size:10px;margin-left:6px;color:#8a9cb1}.coffee-times .chosen{border-color:#7095bb;background:#e6eff8}.coffee-empty{padding:15px 4px 14px;text-align:center;min-height:238px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.coffee-empty strong{font-size:15px;font-weight:500}.detail .coffee-empty p{font-size:12px;line-height:1.8;color:#8293a7;max-width:290px}.coffee-calendar-doodle{width:49px;height:49px;color:#9db3c9;display:block;margin-bottom:13px;transform:rotate(-7deg)}.coffee-calendar-doodle svg{width:100%;height:100%}.coffee-empty-week{font-size:12px;color:#8293a7}
.coffee-ticket{background:linear-gradient(125deg,#ffffffba,#f5f9fbbf);border:1px solid #fff;border-radius:16px;box-shadow:0 7px 20px #5c739013;overflow:hidden}.coffee-ticket-top{display:flex;align-items:center;gap:13px;padding:19px 22px;border-bottom:1px dashed #cbd8e6;color:#647e99;font-size:11px}.coffee-ticket-top img{width:44px;height:44px;object-fit:contain}.coffee-ticket-top small{display:block;font-family:Georgia,serif;font-size:16px;color:#3e5874;margin-top:4px;overflow-wrap:anywhere}.coffee-ticket dl{margin:0;padding:10px 22px 16px}.coffee-ticket dl>div{display:grid;grid-template-columns:72px 1fr;gap:10px;margin-top:15px;font-size:12px}.coffee-ticket dt{color:#91a0b2}.coffee-ticket dd{margin:0;overflow-wrap:anywhere;line-height:1.8;white-space:pre-line}.coffee-ticket dd small{display:block;color:#95a2b1;font-size:10px;margin-top:4px}.coffee-ticket-foot{display:block;border-top:1px dashed #cbd8e6;font-size:10px;color:#8397ac;padding:13px 22px}.coffee-preview-notice{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 18px;padding:9px 14px;background:#f3eddbad;border:1px solid #fff7;border-radius:10px;font-size:10px;color:#8d805c}.coffee-preview-notice button{border:0;background:none;padding:4px 0;color:inherit;font-size:10px;text-decoration:underline;text-underline-offset:3px}.coffee-complete{text-align:center;display:flex;align-items:center;flex-direction:column;padding:12px 0}.coffee-complete>img{width:100px;height:100px;object-fit:contain;margin-bottom:20px}.coffee-complete .coffee-handwritten{font-size:17px}.detail .coffee-complete h3{margin:20px 0 12px;font-size:24px}.detail .coffee-complete p{font-size:12px;line-height:2;color:#8293a7}.detail .coffee-complete .coffee-preview-reminder{font-size:10px;color:#9a8c68}.coffee-complete .coffee-primary{margin-top:21px}
@media(max-width:850px){.coffee-layout{grid-template-columns:170px minmax(0,1fr);gap:20px}.coffee-panel{padding:24px}.coffee-handwritten{font-size:18px}.coffee-booking-dialog .detail{padding:22px 27px 28px}}
@media(max-width:650px){#projectDialog.coffee-booking-dialog{width:calc(100vw - 18px);border-radius:23px;max-height:calc(100dvh - 18px)}.coffee-booking-dialog .detail{padding:20px 17px 23px}.coffee-booking-dialog .dialogbar{padding:12px 17px}.coffee-booking-header{margin-bottom:21px}.detail .coffee-booking-header h2{font-size:25px}.coffee-kicker{font-size:11px}.coffee-booking-header>img{width:58px;height:58px}.coffee-steps{gap:3px;padding:15px 0 21px}.coffee-steps button{flex-direction:column;gap:6px;font-size:10px}.coffee-steps b{width:22px;height:22px;font-size:9px}.coffee-layout{display:block}.coffee-aside{display:none}.coffee-panel{padding:22px 18px;border-radius:20px;min-height:0}.detail .coffee-panel h3{font-size:21px}.coffee-panel-heading{margin-bottom:20px}.coffee-fields input,.coffee-fields textarea{font-size:16px;padding:11px 12px}.coffee-fields input::placeholder,.coffee-fields textarea::placeholder{font-size:12px}.coffee-contact-heading select{font-size:14px}.coffee-mode{padding:15px 12px;gap:12px}.coffee-mode small{font-size:10px;line-height:1.6}.coffee-mode-icon{width:34px;height:34px}.coffee-actions{gap:8px}.coffee-primary{font-size:12px;gap:12px;padding:12px 14px}.coffee-back{font-size:11px}.coffee-weekdays,.coffee-days{gap:3px}.coffee-days button{font-size:12px;padding:8px 0;border-radius:10px}.coffee-week strong{font-size:12px}.coffee-times{gap:8px}.coffee-times button{font-size:12px}.coffee-ticket dl{padding:8px 16px 15px}.coffee-ticket dl>div{grid-template-columns:60px 1fr;font-size:11px;gap:8px}.coffee-ticket-top{padding:17px 16px}.coffee-ticket-foot{padding:12px 16px}.coffee-preview-notice{font-size:9px;padding:8px 11px}.coffee-complete .coffee-primary{width:100%}}
@media(prefers-reduced-motion:reduce){.coffee-progress>span,.coffee-mode{transition:none}}
.coffee-pending-notice{padding:0 0 17px;color:#7f8fa3;font-size:10px;line-height:1.8}
/* Host notebook: the same frosted sheet, with a denser weekly working area. */
.coffee-admin-entry{display:block;margin:20px auto;border:1px solid #fff;background:rgba(255,255,255,.65);color:#566a78;border-radius:24px;padding:10px 20px;font:inherit;cursor:pointer;backdrop-filter:blur(20px)}
.coffee-admin{padding:8px 4px 20px;color:#284454}.ca-status{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border:1px solid white;border-radius:22px;background:rgba(255,255,255,.55);box-shadow:inset 0 1px 0 white,0 10px 32px #8aa7bc12}.ca-status strong{font-size:18px}.ca-status p,.ca-week>p,.ca-add>p,.ca-bookings>p{font-size:13px;color:#6d808b;line-height:1.8;margin:6px 0}.ca-sms{display:flex;gap:12px;padding:16px 6px;color:#787052;font-size:12px;line-height:1.7}.ca-sms strong{white-space:nowrap}.ca-tabs{display:flex;gap:8px;margin:10px 0 4px;border-bottom:1px solid #c4d4dd70;padding-bottom:14px}.ca-tabs button{padding:10px 17px;border:0;border-radius:24px;background:transparent;color:#6c8191;cursor:pointer}.ca-tabs button[aria-pressed=true]{background:#fff;color:#284f69;box-shadow:0 4px 18px #4469870e}.ca-tabs button:last-child{margin-left:auto}.ca-tabs span{margin-left:7px;color:#8699a6}.ca-content{display:block}.ca-week{padding:5px 0 24px}.ca-week .coffee-week{margin-bottom:14px}.ca-slot-list{margin-top:18px}.ca-slot{display:flex;align-items:center;gap:12px;padding:16px 10px;border-bottom:1px solid #c4d4dd60}.ca-slot>div{flex:1}.ca-slot strong{font-size:14px;display:block}.ca-slot strong span{font-weight:400;margin-left:10px}.ca-slot small{display:block;margin-top:7px;color:#7c8d96;font-size:12px}.ca-slot>button{border:0;background:transparent;color:#376382;cursor:pointer;font-size:12px;min-height:40px;padding:5px}.ca-tag{font-size:11px;padding:5px 10px;border-radius:20px;background:#eaf0f4;color:#667c8a;white-space:nowrap}.ca-tag.published{background:#e1f0e7;color:#4d7c65}.ca-tag.reserved{background:#e2eaff;color:#4b66a0}.ca-add{border:1px solid white;background:rgba(255,255,255,.55);border-radius:24px;padding:24px;box-shadow:inset 0 1px white,0 10px 30px #789cb00a}.ca-add h3,.ca-bookings h3{font-family:'Songti SC','Noto Serif SC',serif;font-size:24px;margin:6px 0 20px}.ca-form-row{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:14px}.ca-form-row label{font-size:12px;color:#728997}.ca-form-row input,.ca-form-row select{box-sizing:border-box;width:100%;min-width:0;margin-top:8px;border:1px solid #d5e0e6;border-radius:12px;background:#ffffffa1;padding:12px;color:#34536a;font:inherit;font-size:15px}.ca-add fieldset{border:0;margin:18px 0 8px;padding:0;display:flex;gap:18px;flex-wrap:wrap}.ca-add legend{font-size:12px;color:#728997;margin-bottom:10px}.ca-add fieldset label{display:flex;align-items:center;font-size:14px;gap:6px}.ca-add input[type=checkbox]{accent-color:#5686a4;width:17px;height:17px}.ca-add>.coffee-primary{margin-top:18px}.ca-empty{text-align:center;padding:40px 12px;color:#758d9c;font-family:'Songti SC',serif;font-size:19px;line-height:1.8}.ca-empty small{font-family:inherit;font-size:13px;color:#8b9ca6}.ca-message{font-size:13px;color:#4b8065;min-height:0;margin:0 0 12px}.ca-loading{padding:60px;text-align:center}.ca-booking{background:#ffffff8c;border:1px solid white;border-radius:22px;padding:22px;margin:16px 0;box-shadow:0 8px 25px #6e96b00a}.ca-booking header,.ca-booking footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.ca-booking header strong{font-size:19px}.ca-booking p{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.ca-booking-date{color:#6b889d}.ca-contact{display:flex;align-items:center;gap:14px;border-top:1px dashed #c5d5df;padding:14px 0;overflow-wrap:anywhere}.ca-contact span,.ca-booking footer small{font-size:12px;color:#7b929f}.ca-contact strong{font-size:14px;font-weight:500;overflow-wrap:anywhere;min-width:0}.ca-booking footer .coffee-text-button{font-size:12px}.ca-booking.cancelled{opacity:.6}.coffee-primary:disabled{cursor:wait;opacity:.55}
@media(max-width:650px){.coffee-admin{padding:0}.ca-status{align-items:flex-start;flex-wrap:wrap;padding:18px;gap:12px}.ca-status .coffee-primary{white-space:normal}.ca-sms{display:block}.ca-sms strong{display:block}.ca-tabs{gap:0}.ca-tabs button{padding:10px 13px}.ca-slot{gap:7px;padding:12px 0;flex-wrap:wrap}.ca-slot>div{min-width:180px;flex-basis:60%}.ca-slot strong{font-size:13px}.ca-slot strong span{display:block;margin:5px 0 0}.ca-slot>button{padding:4px 9px}.ca-add{padding:18px}.ca-form-row{grid-template-columns:1fr 1fr;gap:12px}.ca-form-row label:first-child{grid-column:span 2}.ca-form-row input,.ca-form-row select{font-size:16px}.ca-add fieldset{gap:14px}.ca-booking{padding:18px}.ca-booking footer{flex-wrap:wrap}.ca-booking-date{font-size:12px!important}}
