:root{font-family:'Pretendard Variable',Pretendard,Inter,-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR',sans-serif;font-synthesis:none;color:#202a33;background:#f8f9fb;font-size:14px;font-weight:400;line-height:1.5;--ink:#202a33;--muted:#75808c;--subtle:#9aa3ad;--line:#e6e9ee;--soft:#f4f6f8;--mint:#0f987a;--mint-soft:#eaf7f1;--navy:#192630;--shadow:0 15px 45px rgba(25,38,48,.055)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;-webkit-font-smoothing:antialiased}body{min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}a{color:inherit;text-decoration:none}a:hover{color:var(--mint)}input,textarea,select{outline:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8ae3bd;outline-offset:2px}
.logo{font-size:23px;letter-spacing:-1.5px;line-height:1;font-weight:820;color:var(--navy)}.logo .dot{color:#2ab993}.logo small{font-size:12px;letter-spacing:0;font-weight:500;color:#7e8791;margin-left:9px}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex:none;stroke:currentColor;fill:none;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.muted{color:var(--muted)}.tiny{font-size:12px}.xs{font-size:13px}.strong{font-weight:700}.no-margin{margin:0}.mt4{margin-top:4px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb8{margin-bottom:8px}.mb16{margin-bottom:16px}.mb24{margin-bottom:24px}.mb32{margin-bottom:32px}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}.center{text-align:center}.align-start{align-items:flex-start}.grow{flex:1;min-width:0}.hidden{display:none!important}.divider{height:1px;background:var(--line);margin:22px 0}.w100{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn{display:inline-flex;gap:9px;justify-content:center;align-items:center;border-radius:11px;font-weight:690;border:1px solid transparent;padding:11px 16px;min-height:43px;white-space:nowrap;transition:background .16s,transform .16s,box-shadow .16s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn.primary{background:var(--navy);color:white}.btn.primary:hover{background:#334657}.btn.mint{background:var(--mint);color:white}.btn.mint:hover{background:#0b8067}.btn.secondary{background:white;border-color:var(--line);color:var(--ink)}.btn.secondary:hover{background:#f4f6f8}.btn.ghost{background:transparent;color:var(--muted)}.btn.danger{background:#fff3f2;color:#c34d4b;border-color:#fbdad8}.btn.sm{padding:7px 10px;font-size:12px;min-height:34px;border-radius:8px}.btn.icon-btn{width:37px;height:37px;padding:7px}.btn.link{border:none;padding:0;min-height:0;color:var(--mint);background:none}.btn.full{width:100%}.tag{display:inline-flex;padding:5px 9px;align-items:center;gap:6px;border-radius:7px;background:#f0f3f6;color:#697784;font-size:12px;font-weight:600}.tag.green{color:#14785f;background:#e8f7ef}.tag.amber{color:#aa7416;background:#fff5dc}.tag.red{color:#b55151;background:#fff0ef}.tag.blue{color:#3b6798;background:#edf5ff}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label,.label{font-size:13px;font-weight:670;color:#485361}.field .helper{font-size:11px;color:#9da5ae}.control{border:1px solid #dfe4e9;border-radius:10px;min-height:43px;width:100%;background:#fff;padding:10px 12px;color:var(--ink);transition:border-color .15s,box-shadow .15s}.control:focus{border-color:#73cbaa;box-shadow:0 0 0 3px #71d4a02a}.control::placeholder{color:#acb3bb}textarea.control{min-height:100px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .wide{grid-column:1/-1}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0}.check{display:flex;align-items:center;gap:8px;color:#3e4b59}.check input{accent-color:var(--mint);width:16px;height:16px}
.loader{height:100vh;display:flex;gap:10px;justify-content:center;align-items:center;color:var(--muted)}.spinner{height:18px;width:18px;border:2px solid #d8e7e0;border-top-color:#139a78;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;right:25px;bottom:25px;z-index:110;color:#fff;background:#20323e;border-radius:12px;box-shadow:0 16px 55px #0003;padding:13px 19px;max-width:min(400px,calc(100vw - 30px));display:none}#toast.show{display:block;animation:pop .15s ease-out}@keyframes pop{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
/* Public scheduling */
.public-shell{min-height:100vh;background:radial-gradient(ellipse at top right,#eef8f2 0,transparent 42%),#f8f9fb}.public-nav{max-width:1120px;margin:auto;padding:32px 28px;display:flex;align-items:center;justify-content:space-between}.public-nav .nav-right{display:flex;gap:15px;align-items:center;color:#66717d;font-size:13px}.public-body{max-width:1060px;margin:36px auto 80px;padding:0 26px}.public-intro{padding:16px 0 30px}.eyebrow{color:#188c71;text-transform:uppercase;font-weight:750;font-size:11px;letter-spacing:1.5px}.public-intro h1{font-size:clamp(32px,4vw,49px);line-height:1.18;letter-spacing:-2.1px;margin:12px 0 12px;font-weight:760}.public-intro p{font-size:16px;color:var(--muted)}.public-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:15px}.event-card{border:1px solid var(--line);background:#fff;text-align:left;border-radius:15px;padding:26px;display:flex;flex-direction:column;min-height:223px;box-shadow:var(--shadow);transition:transform .18s,border-color .18s,box-shadow .18s}.event-card:hover{transform:translateY(-3px);border-color:#a7d4c1;box-shadow:0 20px 40px #1d423214}.event-card .card-icon{height:41px;width:41px;display:grid;place-items:center;border-radius:12px;background:var(--mint-soft);color:var(--mint);margin-bottom:25px}.event-card h3{font-size:18px;letter-spacing:-.5px;margin:0 0 5px}.event-card p{color:var(--muted);font-size:13px;margin:0;flex:1}.event-card .card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-size:12px;font-weight:620;color:#75818c}.event-card .arrow{color:#16a082;font-size:24px}.booking-card{display:grid;grid-template-columns:minmax(250px,.78fr) minmax(360px,1.5fr);background:white;border:1px solid #e3e8eb;border-radius:18px;box-shadow:0 18px 60px #1b30250b;min-height:560px;overflow:hidden}.booking-info{padding:36px 34px;border-right:1px solid var(--line)}.avatar{width:48px;height:48px;border-radius:14px;background:#e4f4ec;color:#168262;display:grid;place-items:center;font-weight:800;font-size:18px;margin-bottom:23px}.booking-info h1{font-size:28px;line-height:1.3;letter-spacing:-1px;margin:8px 0 12px}.booking-info p{color:var(--muted);font-size:13px}.detail-row{display:flex;align-items:center;gap:10px;color:#667482;font-size:13px;margin:14px 0}.detail-row svg{height:17px;width:17px}.booking-picker{padding:35px 36px}.booking-picker h2,.booking-guest h2{font-size:18px;letter-spacing:-.4px;margin:0 0 23px}.booking-calendar{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:26px;min-width:0}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.calendar-header h3{margin:0;font-size:15px}.calendar-header .arrows{display:flex;gap:5px}.calendar-dow,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.calendar-dow div{font-size:11px;color:#a1abb4;padding-bottom:9px}.day{border:0;background:transparent;border-radius:10px;font-size:13px;height:38px;min-width:0;color:#aeb6be;font-weight:500}.day.bookable{color:#106f5b;background:#f0faf4;font-weight:750}.day.bookable:hover{background:#ddf5e8}.day.selected{background:#1a856b;color:#fff}.day.today{outline:1px solid #cde9db}.time-panel{display:flex;flex-direction:column;gap:8px;max-height:346px;overflow:auto;padding-right:2px}.time-btn{display:block;width:100%;background:#fff;color:#197e69;border:1px solid #c4e7d8;border-radius:9px;padding:10px 2px;font-weight:740}.time-btn:hover,.time-btn.selected{background:#eaf7f1}.time-btn.selected{background:#1a876f;color:#fff}.time-slot-row{display:grid;grid-template-columns:1fr 1fr;gap:4px}.time-slot-row .btn{min-height:40px}.time-hint{font-size:12px;color:#9aa4ad;text-align:center;padding:14px 0}.timezone-select{margin-top:22px;padding:12px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.timezone-select select{border:0;background:transparent;color:#506170;font-weight:650;max-width:200px;min-width:100px}.booking-guest{padding:35px 36px}.booking-summary{background:#f6f8f9;border:1px solid #eef0f2;border-radius:12px;padding:15px;margin-bottom:24px;font-size:13px}.booking-summary b{display:block;margin-bottom:5px;font-size:15px}.booking-guest form{display:flex;flex-direction:column;gap:16px}.success-mark{height:62px;width:62px;display:grid;place-items:center;background:#e7f6ee;color:var(--mint);border-radius:50%;margin:12px auto 20px}.success-title{font-size:27px;letter-spacing:-1px;margin:0 0 7px}.success-card{max-width:560px;margin:52px auto;padding:48px 45px;background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.error-card{max-width:520px;margin:70px auto;text-align:center}.footer-note{text-align:center;color:#9ca5b0;padding:20px;font-size:12px}
/* Dashboard */
.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid #e8eaf0;display:flex;flex-direction:column;padding:27px 14px}.sidebar .logo{padding:0 16px;margin-bottom:44px}.menu-label{padding:0 16px;color:#a6aeb7;letter-spacing:1px;font-size:10px;font-weight:800;margin:19px 0 10px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 15px;color:#667280;border:0;border-radius:10px;background:transparent;text-align:left;font-weight:620;margin:2px 0}.nav-item svg{width:18px;height:18px}.nav-item:hover{background:#f4f7f8;color:#1e3532}.nav-item.active{color:#157a61;background:#eaf7f0}.sidebar-bottom{margin-top:auto;padding:18px 10px 6px}.profile-chip{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:18px 6px 4px}.profile-icon{border-radius:10px;width:37px;height:37px;background:#f0ede6;color:#8a6842;font-weight:750;display:grid;place-items:center}.dashboard-main{padding:37px clamp(22px,4vw,65px) 80px;max-width:1480px;width:100%;margin:auto}.dashboard-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.dashboard-top .breadcrumb{color:#8a949f;font-size:13px}.dashboard-top .right-tools{display:flex;align-items:center;gap:18px;color:#8b95a0}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:30px}.page-heading .eyebrow{font-size:11px}.page-heading h1{font-size:clamp(27px,3vw,34px);letter-spacing:-1.2px;line-height:1.2;margin:5px 0 8px}.page-heading p{color:#8994a0;margin:0}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:30px}.panel{border:1px solid var(--line);background:white;border-radius:15px;box-shadow:0 8px 32px #1b2c3306}.stat{padding:25px}.stat-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;background:#f0f7f5;color:#148366}.stat h3{font-size:31px;letter-spacing:-1.4px;margin:20px 0 2px}.stat p{margin:0;color:#83909a;font-size:13px}.section-title{font-size:17px;font-weight:730;letter-spacing:-.4px;margin:0}.panel-head{padding:23px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-body{padding:24px 25px}.type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.type-item{padding:22px;min-height:178px;display:flex;flex-direction:column;gap:8px}.type-item h3{font-size:16px;letter-spacing:-.3px;margin:0}.type-item p{margin:0;color:var(--muted);font-size:13px}.type-item .type-icon{border-radius:10px;display:grid;place-items:center;color:#1a9778;background:#e9f8f0;width:36px;height:36px}.type-item .bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:17px}.upcoming-list{display:flex;flex-direction:column}.booking-item{display:flex;align-items:center;gap:15px;padding:17px 24px;border-bottom:1px solid #f0f1f3}.booking-item:last-child{border-bottom:none}.date-tile{width:51px;height:53px;border-radius:10px;background:#f3f7f6;text-align:center;display:flex;flex-direction:column;justify-content:center;color:#41806b;flex:none}.date-tile b{font-size:19px;line-height:1.1}.date-tile small{font-size:11px;font-weight:650}.booking-item strong{font-size:14px}.booking-item p{margin:3px 0 0;color:#8c98a1;font-size:12px}.booking-item .tag{margin-left:auto}.empty{padding:47px 24px;text-align:center;color:#8d98a4}.empty .icon{width:34px;height:34px;color:#c0cbd2;margin-bottom:12px}.empty b{display:block;color:#43515e;font-size:14px;margin-bottom:6px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;text-align:left}.table th{color:#9aa5af;background:#fafbfc;text-transform:uppercase;font-size:11px;letter-spacing:.5px;font-weight:750;padding:13px 20px}.table td{border-top:1px solid #f0f1f3;padding:17px 20px;font-size:13px}.table td:first-child{font-weight:650}.table tr:hover td{background:#fbfcfc}.status-dot{height:7px;width:7px;display:inline-block;border-radius:50%;background:#35ba93;margin-right:5px}.status-dot.off{background:#e1a253}.calendar-connection{padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line)}.calendar-connection:last-child{border-bottom:0}.provider-icon{height:41px;width:41px;display:grid;place-items:center;background:#f3f5f7;border-radius:10px;color:#2b6c9d}.soft-box{background:#f4f8f6;border:1px solid #e1ede6;border-radius:12px;padding:19px 20px;color:#507060}.soft-box h3{margin:0 0 4px;font-size:14px;color:#28725b}.soft-box p{margin:0;font-size:13px}.settings-panel{max-width:840px}.settings-panel .panel-body{padding:26px 29px}.calendar-setup{display:flex;gap:14px;align-items:flex-start;background:#f3f7fb;border:1px solid #e7edf2;border-radius:12px;padding:18px;margin-bottom:20px}.calendar-setup b{font-size:14px}.calendar-setup p{font-size:12px;color:#7f8d98;margin:5px 0 0}
/* Modal */
.modal-overlay{position:fixed;inset:0;background:#18242d86;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:14px;z-index:70}.modal{background:white;border-radius:18px;box-shadow:0 25px 110px #0003;width:min(620px,100%);max-height:calc(100vh - 35px);overflow:auto}.modal-head{padding:26px 28px 17px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:21px;letter-spacing:-.7px}.modal-body{padding:25px 28px}.modal-footer{border-top:1px solid var(--line);padding:18px 28px;display:flex;gap:9px;justify-content:flex-end;position:sticky;bottom:0;background:white;border-radius:0 0 18px 18px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.week-grid label{font-size:11px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;color:#667683}.week-grid input{accent-color:#1f9e7e}.list-check{display:flex;gap:16px;flex-wrap:wrap}.list-check label{font-size:13px;color:#5d6b76;display:flex;align-items:center;gap:6px}.list-check input{accent-color:var(--mint)}
/* Login */
.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-hero{padding:50px clamp(35px,6vw,100px);background:#182934;display:flex;flex-direction:column;color:white;position:relative;overflow:hidden}.login-hero:after{content:'';position:absolute;border:1px solid #4d8b762c;border-radius:50%;width:700px;height:700px;right:-300px;bottom:-270px;box-shadow:0 0 0 75px #2aa17a0b,0 0 0 155px #2aa17a0b;pointer-events:none}.login-hero .logo{color:white}.login-hero .logo small{color:#8ba6a4}.login-copy{margin:auto 0;position:relative;z-index:1}.login-copy .eyebrow{color:#6ce3b9}.login-copy h1{font-size:clamp(40px,5vw,66px);line-height:1.09;letter-spacing:-3.5px;margin:22px 0}.login-copy h1 span{color:#71e3b7}.login-copy p{font-size:16px;color:#b1c1c9;max-width:470px;line-height:1.8}.login-hero footer{color:#607884;font-size:12px}.login-right{display:flex;align-items:center;justify-content:center;padding:45px 26px}.login-box{max-width:370px;width:100%}.login-box h2{font-size:31px;letter-spacing:-1.2px;margin:0 0 9px}.login-box>p{margin:0 0 32px;color:var(--muted);font-size:14px}.login-box .btn{margin-bottom:11px;background:#fff}.login-box .btn:hover{border-color:#b8d8cc}.login-box .auth-note{font-size:12px;color:#9da6af;margin-top:30px;line-height:1.8}.login-mini-icon{width:18px;height:18px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.manage-actions{display:flex;gap:10px;flex-wrap:wrap}.manage-body{max-width:720px;margin:auto;padding:0 20px 70px}.manage-body .success-card{max-width:none;margin:40px auto;padding:37px}
@media(max-width:1100px){.booking-card{grid-template-columns:260px minmax(0,1fr)}.booking-calendar{grid-template-columns:1fr}.time-panel{display:grid;grid-template-columns:repeat(3,1fr);max-height:250px}.dashboard-main{padding:30px 26px}.app-shell{grid-template-columns:215px minmax(0,1fr)}.sidebar .logo{font-size:19px}}
@media(max-width:760px){.public-nav{padding:22px 20px}.public-nav .logo{font-size:20px}.public-body{padding:0 15px;margin:12px auto 50px}.public-intro{padding-top:12px}.public-intro h1{letter-spacing:-1.6px}.booking-card{grid-template-columns:1fr}.booking-info{padding:24px 24px;border-right:0;border-bottom:1px solid var(--line)}.booking-info .avatar{margin-bottom:12px;width:39px;height:39px}.booking-info h1{font-size:24px}.booking-info .detail-row{display:inline-flex;margin:3px 14px 3px 0}.booking-picker,.booking-guest{padding:27px 22px}.booking-calendar{grid-template-columns:1fr}.time-panel{grid-template-columns:repeat(3,1fr)}.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:30;padding:12px 15px;display:flex;flex-direction:row;gap:5px;align-items:center;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar .logo{margin:0 20px 0 0;padding:0;font-size:19px}.menu-label,.sidebar-bottom{display:none}.sidebar .nav-item{width:auto;padding:9px 11px;white-space:nowrap;margin:0;font-size:12px}.sidebar .nav-item .icon{width:16px;height:16px}.dashboard-main{padding:28px 17px 50px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.stat{padding:15px}.stat h3{font-size:24px}.stat p{font-size:11px}.stat-icon{width:32px;height:32px}.type-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}.page-heading .btn{font-size:12px;padding:9px}.login-shell{grid-template-columns:1fr}.login-hero{padding:24px 28px;min-height:250px}.login-copy h1{font-size:35px;letter-spacing:-1.5px}.login-copy p{font-size:14px}.login-hero footer{display:none}.login-right{min-height:420px;padding:35px 26px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.calendar-connection{padding:16px;flex-wrap:wrap}.calendar-connection>.row:last-child{width:100%;justify-content:flex-end}}
@media(max-width:430px){.public-nav .nav-right a{display:none}.time-panel{grid-template-columns:repeat(2,1fr)}.day{height:35px;font-size:12px}.calendar-days,.calendar-dow{gap:1px}.dashboard-top{display:none}.stat-grid{grid-template-columns:1fr 1fr}.stat-grid>.stat:last-child{grid-column:1/-1}.booking-item{padding:15px;gap:9px}.booking-item .tag{display:none}.week-grid{gap:0}.modal-body{padding:18px}.modal-head{padding:18px}}

/* Maintain contrast on the local demo CTA in the login panel. */
.login-box .btn.mint{background:var(--mint);color:#fff;border-color:var(--mint)}
.login-box .btn.mint:hover{background:#16896f;border-color:#16896f}
