:root{--coral:#ff6b52;--coral-dark:#e9513a;--cream:#fffaf3;--yellow:#ffc94a;--green:#69b88a;--blue:#72aee8;--ink:#26323b;--muted:#7d878d;--line:#e9e5de;--white:#fff;--shadow:0 14px 40px rgba(60,46,34,.09);font-family:"Gowun Dodum",sans-serif;color:var(--ink);background:#f8f8f6}
*{box-sizing:border-box}body{margin:0;background:#f8f8f6}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{height:78px;background:rgba(255,255,255,.94);display:flex;align-items:center;padding:0 max(4vw,28px);position:sticky;top:0;z-index:20;border-bottom:1px solid #eee9e2;backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font:900 21px Nunito,"Gowun Dodum";min-width:220px}.brand-mark{width:42px;height:42px;border-radius:14px;background:var(--coral);color:#fff;display:grid;place-items:center;font:900 22px Nunito;transform:rotate(-5deg);box-shadow:0 5px 0 #d84f39}.brand small{display:block;color:var(--coral);font:800 9px Nunito;letter-spacing:2.8px;text-transform:uppercase}.role-switcher{margin:auto;background:#f4f2ee;border-radius:12px;padding:4px;display:flex}.role-button{border:0;background:transparent;padding:9px 21px;border-radius:9px;color:#7b8184;font-weight:700}.role-button.active{background:#fff;color:var(--coral);box-shadow:0 3px 12px #dcd7d0}.header-actions{min-width:220px;display:flex;justify-content:flex-end;align-items:center;gap:14px}.icon-button,.profile-button{border:0;background:transparent}.icon-button{font-size:18px;position:relative}.dot{position:absolute;width:7px;height:7px;background:var(--coral);border:2px solid #fff;border-radius:50%;right:2px;top:0}.profile-button{display:flex;align-items:center;gap:8px;font-weight:700}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ffe1d7;color:var(--coral);font-weight:900}.role-view{display:none}.role-view.active{display:block}
.customer-hero{height:390px;background:linear-gradient(115deg,#fff3db 0%,#fff9ec 60%,#e7f4e9 100%);display:flex;overflow:hidden;position:relative;padding:52px max(9vw,48px)}.hero-copy{position:relative;z-index:2}.eyebrow,.section-kicker{font:900 11px Nunito;color:var(--coral);letter-spacing:2.2px}.hero-copy h1{font:900 clamp(38px,4vw,58px)/1.18 Nunito,"Gowun Dodum";margin:10px 0 14px;letter-spacing:-2px}.hero-copy em{color:var(--coral);font-style:normal;position:relative}.hero-copy em:after{content:"";position:absolute;height:7px;background:var(--yellow);opacity:.5;border-radius:50%;left:-2px;right:-2px;bottom:3px;z-index:-1}.hero-copy p{color:#647078;line-height:1.7;margin:0}.hero-art{position:absolute;right:8vw;top:25px;width:500px;height:360px}.sun{position:absolute;right:35px;top:15px;font-size:66px;color:#ffd45e}.cloud{position:absolute;width:110px;height:35px;border-radius:40px;background:#fff;opacity:.8}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}.cloud:before{width:50px;height:50px;left:22px;bottom:0}.cloud:after{width:35px;height:35px;left:62px;bottom:0}.cloud-one{top:70px;left:20px}.cloud-two{right:-15px;top:135px;transform:scale(.7)}.tent{position:absolute;width:235px;height:170px;background:#ff765c;clip-path:polygon(50% 0,100% 100%,0 100%);bottom:20px;left:125px;filter:drop-shadow(0 14px 0 rgba(82,107,73,.12))}.tent:after{content:"";position:absolute;width:90px;height:120px;background:#fff1cb;clip-path:polygon(50% 0,100% 100%,0 100%);bottom:0;left:72px}.tree{position:absolute;color:#57956b;font-size:105px;line-height:1}.tree-one{bottom:5px;left:10px}.tree-two{right:5px;bottom:-5px;transform:scale(.8);color:#438359}.ball{position:absolute;bottom:14px;left:85px;color:#ffc94a;font-size:30px}.search-card{position:relative;z-index:4;margin:-38px auto 0;max-width:1140px;min-height:108px;background:#fff;padding:20px 22px;border-radius:20px;box-shadow:var(--shadow);display:grid;grid-template-columns:1.2fr 1fr 1.1fr auto;gap:14px;align-items:end}.search-card label{font-size:12px;font-weight:700;color:#606a70}.input-like{height:48px;border:1px solid var(--line);border-radius:11px;margin-top:8px;padding:0 13px;display:flex;align-items:center;gap:7px;color:var(--coral)}.input-like input,.input-like select{border:0;outline:0;background:transparent;width:100%;color:var(--ink);font-size:14px}.search-button,.primary-button{height:48px;border:0;border-radius:11px;background:var(--coral);color:#fff;font-weight:800;padding:0 25px;box-shadow:0 5px 0 #d9543e}.search-button span{margin-left:15px}.content-section{max-width:1140px;margin:60px auto}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.section-heading h2{font:900 26px Nunito,"Gowun Dodum";margin:4px 0 0}.text-button,.panel-title button{border:0;background:transparent;color:var(--coral);font-weight:800}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.category-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:21px;display:grid;grid-template-columns:52px auto;grid-template-rows:auto auto;text-align:left;column-gap:14px;transition:.2s}.category-card:hover,.category-card.active{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#ffd1c8}.category-icon{grid-row:1/3;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:24px}.coral{background:#ffe1da;color:var(--coral)}.yellow{background:#fff1c6;color:#d49b11}.green{background:#def1e4;color:#4a9a69}.blue{background:#dfeefa;color:#478fc9}.category-card strong{align-self:end}.category-card small{color:var(--muted);margin-top:3px}.place-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.place-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.2s}.place-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.place-image{height:205px;position:relative;overflow:hidden;background:var(--card-bg)}.place-image:before,.place-image:after{content:"";position:absolute}.place-image:before{width:180px;height:120px;border-radius:55% 55% 0 0;background:var(--shape);left:30px;bottom:-10px;transform:rotate(-5deg)}.place-image:after{width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.35);right:-25px;top:-30px}.place-emoji{position:absolute;font-size:78px;left:50%;top:50%;transform:translate(-50%,-44%);z-index:2;filter:drop-shadow(0 8px 5px rgba(0,0,0,.15))}.favorite{position:absolute;right:13px;top:13px;width:36px;height:36px;border-radius:50%;border:0;background:#fff;color:#a8a8a8;z-index:3;font-size:20px}.favorite.active{color:var(--coral)}.place-tag{position:absolute;left:13px;top:13px;background:var(--coral);color:#fff;padding:5px 9px;border-radius:7px;font-size:10px;font-weight:800;z-index:3}.place-body{padding:17px}.place-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.rating{color:#e09e10}.place-body h3{margin:8px 0 13px}.place-footer{display:flex;justify-content:space-between;align-items:end;border-top:1px solid #f0ede8;padding-top:12px}.place-footer small{display:block;color:var(--muted)}.place-footer b{font:900 18px Nunito}.place-footer button{border:0;background:#fff0ec;color:var(--coral);padding:8px 13px;border-radius:8px;font-weight:800}.booking-banner{max-width:1140px;margin:70px auto;background:#325746;border-radius:24px;min-height:250px;color:#fff;padding:42px 55px;display:flex;justify-content:space-between;overflow:hidden}.booking-banner span{color:#ffd969;font-size:12px}.booking-banner h2{font-size:30px;margin:10px 0 20px}.booking-banner button{border:0;background:#fff;color:#325746;border-radius:9px;padding:12px 17px;font-weight:800}.banner-illustration{position:relative;width:330px}.banner-illustration>span{position:absolute;font-size:90px;right:25px;top:-40px;color:#ffd35f}.mini-tent{position:absolute;bottom:-70px;left:30px;width:220px;height:190px;background:#ff8168;clip-path:polygon(50% 0,100% 100%,0 100%)}
.dashboard-view.active{display:flex;min-height:calc(100vh - 78px)}.sidebar{width:245px;background:#fff;padding:28px 18px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.side-brand{display:flex;align-items:center;gap:12px;padding:0 9px 28px}.side-brand .brand-mark{width:35px;height:35px;font-size:18px;border-radius:11px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.side-link,.admin-link{border:0;background:transparent;color:#697378;border-radius:10px;text-align:left;padding:12px 14px;font-weight:700}.side-link.active{background:#fff0ec;color:var(--coral)}.side-link span,.admin-link span{float:right;background:var(--coral);color:#fff;border-radius:12px;padding:1px 7px;font-size:10px}.sidebar-help{margin-top:auto;background:#fff6e5;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:5px}.sidebar-help small{color:var(--muted)}.sidebar-help button{border:0;background:transparent;color:var(--coral);text-align:left;padding:7px 0 0;font-weight:800}.dashboard-main{flex:1;padding:34px;min-width:0}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.dashboard-header span{font-size:12px;color:var(--muted)}.dashboard-header h1{font-size:25px;margin:7px 0 0}.dashboard-panel{display:none}.dashboard-panel.active{display:block}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.metric-grid article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;display:flex;gap:14px}.metric-icon{min-width:44px;height:44px;border-radius:12px;display:grid;place-items:center}.metric-grid small,.metric-grid span{font-size:11px;color:var(--muted)}.metric-grid strong{display:block;font:900 25px Nunito;margin:3px 0}.metric-grid em{font:700 12px "Gowun Dodum";font-style:normal;margin-left:3px}.metric-grid .up{color:#4e9d70}.metric-grid .warn{color:#e5962f}.dashboard-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-title h2{font-size:17px;margin:0 0 4px}.panel-title span{font-size:11px;color:var(--muted)}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:10px;color:var(--muted);font-weight:500;padding:8px;border-bottom:1px solid var(--line)}td{font-size:12px;padding:12px 8px;border-bottom:1px solid #f2efeb}.status{padding:4px 7px;border-radius:12px;font-size:10px}.status.confirmed{background:#e4f3e9;color:#43875d}.status.waiting{background:#fff0d5;color:#c2801e}.occupancy .panel-title b{font:900 28px Nunito;color:var(--coral)}.bar-chart{height:160px;display:flex;align-items:end;gap:10px;padding-top:15px;border-bottom:1px solid var(--line)}.bar-item{flex:1;text-align:center;font-size:9px;color:var(--muted)}.bar{height:var(--height);background:#ffe0d9;border-radius:6px 6px 0 0;position:relative;margin-bottom:6px}.bar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:var(--fill);background:var(--coral);border-radius:6px 6px 0 0}.chart-legend{text-align:center;padding-top:13px;font-size:10px;color:var(--muted)}.chart-legend span{margin:0 7px}.chart-legend i{display:inline-block;width:7px;height:7px;background:var(--coral);border-radius:2px;margin-right:4px}.chart-legend span+span i{background:#ffe0d9}.notice-panel{margin-top:20px;display:flex;align-items:center;justify-content:space-between}.notice-panel>div{display:flex;gap:12px;align-items:center}.notice-panel small{display:block;color:var(--muted);margin-top:4px}.notice-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff0d5;color:#d98a19;font-weight:900}.notice-panel button{border:0;background:transparent;color:var(--coral);font-weight:800}.empty-panel{background:#fff;border:1px solid var(--line);border-radius:18px;min-height:440px;text-align:center;padding:100px 20px}.empty-panel>span{width:76px;height:76px;border-radius:24px;background:#fff0ec;color:var(--coral);display:grid;place-items:center;font-size:35px;margin:auto}.empty-panel h2{margin:20px 0 8px}.empty-panel p{color:var(--muted)}.empty-panel button{margin-top:15px}
.admin{background:#f4f5f7}.admin-sidebar{background:#26323b;color:#fff;border:0}.admin-sidebar .side-brand .brand-mark.dark{background:#ff785f;box-shadow:none}.admin-sidebar .admin-link{color:#aeb7bc}.admin-sidebar .admin-link.active{background:#3a474f;color:#fff}.admin-user{margin-top:auto;border-top:1px solid #445058;padding:18px 5px 0;display:flex;gap:10px;align-items:center}.admin-user small{display:block;color:#9ba6ab;font-size:9px}.live-badge{background:#e7f4eb;color:#4d9768;padding:9px 13px;border-radius:20px;font-size:11px}.live-badge i,.status-row i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55b37a;margin-right:5px}.admin-metrics article{border-top:3px solid var(--coral)}.admin-metrics article:nth-child(2){border-top-color:#ffc44b}.admin-metrics article:nth-child(3){border-top-color:#60b584}.admin-metrics article:nth-child(4){border-top-color:#6ba8df}.admin-grid{grid-template-columns:1.7fr 1fr}.approval-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #eee}.approval-item:last-child{border:0}.company-icon{width:38px;height:38px;border-radius:10px;background:#eef1f2;display:grid;place-items:center}.company-info{flex:1}.company-info b,.company-info small{display:block}.company-info small{color:var(--muted);font-size:10px}.approval-item button{border:0;border-radius:7px;padding:6px 10px;font-size:10px;font-weight:700}.reject{background:#eee;color:#667}.approve{background:var(--coral);color:#fff}.status-row{padding:13px 0;border-bottom:1px solid #eee;display:flex;justify-content:space-between;font-size:12px}.status-row b{color:#4c9d6c}.status-row .caution{background:#e7a13c}.status-row .caution-text{color:#d68d22}.admin-chart{margin-top:20px}.chart-total{text-align:right}.chart-total small{display:block}.line-chart{height:205px}.line-chart svg{width:100%;height:165px;overflow:visible}.line-chart .area{fill:url(#area)}.line-chart .line{fill:none;stroke:var(--coral);stroke-width:3}.line-chart circle{fill:#fff;stroke:var(--coral);stroke-width:3}.x-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}
.modal-backdrop{position:fixed;inset:0;background:rgba(22,29,32,.55);z-index:50;display:none;place-items:center;padding:20px}.modal-backdrop.open{display:grid}.modal{background:#fff;width:min(420px,100%);border-radius:22px;padding:34px;text-align:center;position:relative;box-shadow:0 24px 80px rgba(0,0,0,.2)}.modal-close{position:absolute;right:15px;top:10px;border:0;background:transparent;font-size:27px;color:#999}.modal-icon{width:58px;height:58px;border-radius:18px;background:#e3f3e9;color:#4b9b69;display:grid;place-items:center;margin:auto;font-size:25px}.modal h2{margin:17px 0 7px}.modal p{color:var(--muted);margin:0 0 22px}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);background:#26323b;color:#fff;padding:12px 20px;border-radius:10px;opacity:0;pointer-events:none;transition:.25s;z-index:80}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1000px){.hero-art{right:-70px;opacity:.8}.search-card,.content-section,.booking-banner{margin-left:24px;margin-right:24px}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.sidebar{width:205px}.profile-name{display:none}.header-actions,.brand{min-width:auto}}
@media(max-width:720px){.topbar{height:auto;min-height:68px;padding:10px 15px;flex-wrap:wrap;gap:8px}.brand{flex:1}.brand-mark{width:35px;height:35px}.role-switcher{order:3;width:100%}.role-button{flex:1;padding:7px 5px;font-size:12px}.customer-hero{height:350px;padding:35px 25px}.hero-copy h1{font-size:39px}.hero-art{opacity:.28;right:-170px}.search-card{grid-template-columns:1fr;margin-top:-25px;padding:16px}.category-grid{grid-template-columns:repeat(2,1fr)}.place-grid{grid-template-columns:1fr}.content-section{margin-top:45px}.booking-banner{padding:35px 26px}.banner-illustration{display:none}.dashboard-view.active{display:block}.sidebar{width:100%;padding:10px;overflow:auto;display:block}.side-brand,.sidebar-help,.admin-user{display:none}.sidebar nav{flex-direction:row;overflow:auto}.side-link,.admin-link{white-space:nowrap}.dashboard-main{padding:22px 14px}.dashboard-header{align-items:flex-start}.dashboard-header h1{font-size:20px}.dashboard-header .primary-button{padding:0 12px}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid article{padding:13px}.metric-grid strong{font-size:20px}.metric-icon{display:none}.panel{padding:15px}.table-wrap{overflow:auto}table{min-width:560px}.admin-grid{grid-template-columns:1fr}}
@media(max-width:430px){.metric-grid{grid-template-columns:1fr}.category-card{grid-template-columns:42px auto;padding:15px}.category-icon{width:42px;height:42px}.header-actions{display:none}}
