@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');
:root{--deep:#142b35;--deep2:#1e4049;--rust:#aa6041;--rust-light:#b97556;--ink:#233944;--muted:#7e8d92;--sand:#f6f4f0;--line:#e5e5df;--white:#fff;--green:#338466;--gold:#b78755}*{box-sizing:border-box}body{font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--sand);margin:0;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{text-decoration:none;color:inherit}input:focus,textarea:focus,select:focus,button:focus-visible{outline:2px solid #b88b76;outline-offset:2px}[hidden]{display:none!important}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--rust);text-transform:uppercase}.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--deep);padding:29px 15px;color:#d8e3e4;display:flex;flex-direction:column;z-index:7}.logo{padding:4px 17px 30px;border-bottom:1px solid #33505a}.logo .eyebrow{color:#e4bd96;font-size:9px;white-space:nowrap}.brand{font-family:Manrope,sans-serif;font-size:27px;font-weight:800;color:#fff;letter-spacing:-.7px;margin:12px 0 2px}.brand span{color:#d29a73}.brand-sub{color:#88a3af;font-size:10px;letter-spacing:2px;font-weight:700}.brand-sub i{width:4px;height:4px;background:#d5a47b;display:inline-block;border-radius:50%;vertical-align:middle}.navtitle{color:#6e939c;font-size:10px;font-weight:800;letter-spacing:2px;padding:30px 17px 11px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{display:flex;align-items:center;text-align:left;width:100%;gap:12px;background:none;color:#bcd1d7;border:0;border-radius:9px;padding:13px 15px;font-size:12px;font-weight:700}.sidebar nav button:hover,.sidebar nav button.active{background:#34525d;color:#fff}.ico{font-size:19px;width:22px;text-align:center;font-weight:400}.nav-count{margin-left:auto;padding:2px 7px;background:#ae6448;color:white;border-radius:30px;font-size:10px}.sidebar-bottom{margin-top:auto;border-top:1px solid #37515a;padding:19px 15px 5px;display:grid;gap:13px}.sidebar-bottom a,.logout{font-size:11px;color:#b6c9ce;text-align:left}.logout{background:none;border:0;padding:0}.online{color:#b3d6c4;font-size:10px}.side-divider{border-top:1px solid #304751}.main{min-width:0;padding:0 36px}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}.top-caption{font-size:10px;letter-spacing:1.7px;font-weight:800;color:var(--rust)}.top-date{font-size:12px;color:#74868b;margin-top:6px}.top-actions{display:flex;gap:15px;align-items:center}.date-picker{display:flex;align-items:center;gap:12px;padding:10px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:10px;font-weight:800}.date-picker input{border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:700;width:125px}.user-chip{border-radius:100px;background:#e7d8ca;color:#935f45;height:35px;width:35px;display:grid;place-items:center;font-weight:800;font-size:11px}.mobile-toggle{display:none}.page{padding:32px 0 55px;min-height:70vh}.page-title{font-family:Manrope,sans-serif;font-size:29px;letter-spacing:-1.2px;margin:0 0 5px;font-weight:800;color:var(--deep)}.page-sub{color:#869398;font-size:12px;margin:0}.section-header{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:23px}.heading-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;padding:11px 15px;border-radius:8px;font-size:12px;font-weight:800;transition:background .16s}.btn:hover{filter:brightness(.95)}.btn-rust{background:var(--rust);color:#fff}.btn-green{background:var(--green);color:white}.btn-dark{background:#2e525e;color:white}.btn-soft{background:#f6f4f0;color:var(--ink);border-color:#e2e5e1}.btn-danger{background:#fff0eb;color:#a34d35;border-color:#f3e3df}.btn-small{padding:7px 9px;font-size:11px}.wide{width:100%}.hero{background:linear-gradient(110deg,#172f39,#254750);border-radius:15px;padding:26px 29px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:white;margin-bottom:22px;position:relative;overflow:hidden}.hero:after{content:'';position:absolute;width:240px;height:240px;right:15%;top:-140px;border:1px solid #ffffff18;border-radius:100%;box-shadow:0 0 0 40px #ffffff07,0 0 0 90px #ffffff04;pointer-events:none}.hero h2{font-family:Manrope;font-size:22px;margin:9px 0 6px;letter-spacing:-.8px}.hero p{color:#bccdd2;font-size:12px;margin:0}.hero .eyebrow{color:#dfb58c}.hero-side{text-align:right;z-index:1}.hero-side b{font-size:26px;font-family:Manrope}.hero-side small{display:block;color:#bdd0d4;font-size:11px;margin-top:5px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:21px}.metric{background:#fff;border:1px solid #eceae5;box-shadow:0 10px 30px #28342c05;border-radius:12px;padding:20px;min-height:144px}.metric label{display:block;font-size:11px;font-weight:700;color:#87959b}.metric .number{font-family:Manrope;font-size:33px;font-weight:800;letter-spacing:-1.4px;margin-top:15px;line-height:1.2}.metric .hint{margin-top:5px;color:#9ba7aa;font-size:10px;line-height:1.5}.metric.accent{background:#ede0d4;border-color:#ecd9c5}.metric.accent .number{color:#a36240}.panel-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}.panel{background:white;border:1px solid #eae8e1;border-radius:13px;min-width:0;box-shadow:0 10px 28px #27333f05;margin-bottom:18px}.panel-head{padding:22px 24px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head h3{font-size:15px;margin:0;font-weight:800}.panel-head p{font-size:11px;margin:5px 0 0;color:#98a2a6}.panel-body{padding:5px 24px 22px}.text-link{color:var(--rust);font-size:11px;font-weight:800;background:none;border:0}.booking-row{display:grid;grid-template-columns:1fr auto;gap:12px;border-bottom:1px solid #f0efeb;padding:14px 0}.booking-row:last-child{border-bottom:0}.booking-row strong{font-size:12px}.booking-row p{margin:5px 0 0;color:#829094;font-size:11px;line-height:1.7}.pill{display:inline-flex;align-items:center;font-size:10px;border-radius:20px;padding:5px 8px;font-weight:800;white-space:nowrap}.pill.pending{background:#fdf0dc;color:#a67527}.pill.confirmed{background:#e2f2e9;color:#317b57}.pill.arrived{background:#f7e5dc;color:#af5e41}.pill.completed{background:#edf1f4;color:#607780}.pill.rejected,.pill.cancelled{background:#f6ebeb;color:#9d6969}.pill.free{background:#ecf3ef;color:#3f7961}.pill.blocked{background:#f6e9e8;color:#a1594e}.panel-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.select,.field{background:#fff;border:1px solid #dedfda;border-radius:8px;padding:10px 12px;min-height:40px;color:var(--ink);max-width:100%;font-size:12px}.select{cursor:pointer}.inline-form{display:grid;gap:11px}.inline-form label,.form-grid label,.book-form label,.auth-box form label{font-size:11px;font-weight:800;color:#6c7e85;display:grid;gap:7px}.field:focus{border-color:var(--rust)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:15px}.form-grid .field,.form-grid input,.form-grid select,.form-grid textarea{width:100%}.helper{font-size:11px;line-height:1.6;color:#839196}.summary-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #eee}.summary-line:last-child{border:0}.summary-line strong{font-size:12px}.summary-line small{color:#8e9b9e;font-size:10px}.summary-line .qty{font-size:13px;font-weight:800}.filterbar{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 20px}.card-list{display:grid;gap:12px}.reservation-card{padding:20px;background:#fff;border:1px solid #e9e6e1;border-radius:12px;display:flex;justify-content:space-between;gap:18px}.reservation-card h3{font-size:15px;margin:0;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.reservation-card p{font-size:11px;color:#7d8c92;line-height:1.8;margin:9px 0}.reservation-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:380px}.reservation-actions select{max-width:195px}.reservation-meta{display:flex;flex-wrap:wrap;gap:9px;color:#829298;font-size:10px}.flex{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spaced{justify-content:space-between}.table-areas{display:grid;gap:17px}.zone-layout{border:1px solid #e7e6df;border-radius:12px;background:#fbfaf7;padding:18px}.zone-layout h4{margin:0 0 14px;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#788c90}.table-matrix{min-height:155px;position:relative;background:repeating-linear-gradient(0deg,transparent 0px,transparent 24px,#ededeb 25px),repeating-linear-gradient(90deg,transparent 0px,transparent 24px,#ededeb 25px);border-radius:8px;overflow:hidden}.table-spot{position:absolute;min-width:64px;transform:translate(-50%,-50%);background:white;border:1px solid #d7e3dd;color:#274e40;box-shadow:0 2px 6px #11111108;border-radius:9px;padding:9px 6px;text-align:center;cursor:pointer;touch-action:manipulation}.table-spot strong{font-size:12px;display:block}.table-spot small{font-size:9px;display:block;white-space:nowrap}.table-spot.confirmed{background:#e5f5ed;border-color:#8fc8a7}.table-spot.arrived{background:#f9e6db;border-color:#cb9779;color:#8d4c34}.table-spot.blocked{background:#f8e6e5;border-color:#d3a5a0;color:#8d4d4a}.table-spot.notavailable{opacity:.46}.table-spot.selected{outline:3px solid #aa6041}.legend{display:flex;gap:15px;flex-wrap:wrap;color:#849397;font-size:10px;margin-top:14px}.legend b{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;background:#c4d6d0}.legend .b-booked{background:#9dcfb6}.legend .b-occupied{background:#d99d80}.legend .b-blocked{background:#d3a5a0}.table-detail{border:1px solid #e9e7e1;border-radius:10px;padding:18px;background:#fff;margin-top:14px}.table-detail h3{margin:4px 0 10px}.table-detail p{color:#788b8f;font-size:12px}.stack{display:grid;gap:12px}.stock-list{display:grid;gap:0}.stock-line{display:flex;align-items:center;gap:12px;justify-content:space-between;border-bottom:1px solid #f0efed;padding:15px 0}.stock-line:last-child{border:0}.stock-title{flex:1;min-width:0}.stock-title strong{font-size:12px}.stock-title small{display:block;color:#97a2a6;font-size:10px;margin-top:4px}.stock-qty{display:flex;align-items:center;gap:9px}.stock-qty button{width:30px;height:30px;border-radius:8px;background:#f0f2ee;border:1px solid #e3e6e0;font-weight:800}.stock-qty b{min-width:38px;text-align:center;font-size:12px}.stock-status{font-size:10px;font-weight:800;border-radius:20px;padding:6px 8px;background:#ecf4ee;color:#388065;white-space:nowrap}.stock-status.low{background:#fff0e3;color:#a56229}.empty{padding:30px;color:#819095;font-size:12px;text-align:center;background:#faf9f6;border-radius:8px}.bar-chart{height:190px;display:flex;align-items:end;justify-content:space-around;gap:9px;border-bottom:1px solid #e5e5de;padding:14px 4px 6px}.bar{flex:1;display:flex;align-items:center;justify-content:end;flex-direction:column;gap:7px;height:100%}.bar .rect{width:100%;max-width:39px;min-height:2px;background:#b46d4f;border-radius:5px 5px 0 0}.bar:nth-child(even) .rect{background:#315968}.bar .v{font-size:10px;color:#7a8b8f}.bar .lbl{font-size:10px;color:#75868a}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;font-size:10px;color:#8a9b9f;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #e9eae5;padding:12px 10px}.data-table td{padding:13px 10px;border-bottom:1px solid #f0efea}.data-table td:last-child{text-align:right;font-weight:800}.footer{border-top:1px solid var(--line);font-size:10px;color:#97a1a3;padding:18px 0 25px;letter-spacing:1px}.footer span{color:#bb7657}.modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px}.modal-cover{position:absolute;inset:0;background:rgba(9,27,36,.62);backdrop-filter:blur(3px)}.modal-panel{background:#fff;border-radius:16px;box-shadow:0 30px 80px #0004;z-index:1;width:min(540px,100%);max-height:92vh;overflow:auto;padding:27px}.modal-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;padding-bottom:21px;border-bottom:1px solid #eee;margin-bottom:20px}.modal-heading h2{font-family:Manrope;margin:7px 0 0;font-size:22px;letter-spacing:-.5px}.close{background:#f2f0ec;border:none;border-radius:8px;font-size:25px;width:32px;height:32px}.toast{position:fixed;bottom:22px;right:22px;background:#193b43;color:#fff;font-size:12px;padding:13px 17px;box-shadow:0 12px 32px #0003;border-radius:9px;z-index:45;max-width:350px;display:none}.toast.show{display:block}.error{border-radius:8px;background:#fce9e3;color:#a14430;padding:12px;font-size:12px}.success-box{padding:15px;border-radius:9px;background:#e8f5ec;color:#24674b;font-weight:700;font-size:12px}.important{background:#fff6e5;border:1px solid #f2e4c5;padding:12px;border-radius:8px;font-size:11px;color:#936723;line-height:1.6}.muted{color:#819196}.loading{color:#819196;padding:35px;text-align:center}.action-separator{width:100%;height:1px;background:#eeefeb;margin:9px 0}.checkbox-row{display:flex;align-items:center;gap:8px}.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 75% 20%,#33525d,#142b35 58%);padding:25px}.auth-box{background:#fff;padding:37px;border-radius:16px;width:min(440px,100%);box-shadow:0 25px 90px #07151b50}.auth-box h1{font-size:37px;font-family:Manrope;letter-spacing:-1.5px;margin:11px 0 3px}.auth-box h1 em{color:var(--rust);font-style:normal}.auth-sub{color:#869398;font-size:12px;margin:0 0 28px}.auth-box form{display:grid;gap:15px}.auth-box input{width:100%;border:1px solid #dedfd9;border-radius:8px;padding:12px}.auth-box .legal{margin-top:22px;color:#9da8a9;text-align:center;font-size:11px}.booking-page{background:#f5f2ec}.public-header{background:#152d37;color:#fff;padding:24px clamp(18px,5vw,80px);display:flex;align-items:center;justify-content:space-between;gap:10px}.brand-light{font-size:14px;font-weight:800;letter-spacing:1.8px}.brand-light span{color:#c68767}.public-header a{color:#c3cdd0;font-size:11px}.book-hero{padding:78px 25px 91px;text-align:center;color:white;background:linear-gradient(110deg,#102831e8,#213e45bd),url('/static/beach.jpg') center/cover}.book-hero .eyebrow{color:#e7bc96}.book-hero h1{font:500 clamp(37px,5vw,67px)/1.1 'Playfair Display',serif;margin:18px auto 12px}.book-hero h1 em{font-weight:500;color:#ecc6a5}.book-hero p{color:#cdd6d5;margin:0 auto;max-width:570px;line-height:1.7}.book-section{max-width:1120px;margin:65px auto 90px;display:grid;grid-template-columns:.75fr 1.25fr;gap:65px;padding:0 22px}.book-intro h2{font:500 42px 'Playfair Display',serif;margin:12px 0}.book-intro p{color:#76888a;line-height:1.8}.accent-line{display:block;width:36px;height:2px;background:#aa6041;margin-bottom:24px}.book-form{background:white;border:1px solid #e9e5dd;border-radius:12px;padding:28px;box-shadow:0 12px 28px #27333f09}.choice-tabs{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:24px}.choice-tabs label{cursor:pointer}.choice-tabs input{position:absolute;opacity:0}.choice-tabs span{border:1px solid #e4e3db;border-radius:8px;padding:15px;display:block;text-align:center;color:#5e747c;font-size:14px}.choice-tabs input:checked+span{background:#1d3e47;border-color:#1d3e47;color:white}.choice-tabs span small{display:block;margin-top:4px;font-size:10px;opacity:.72}.book-form input,.book-form select,.book-form textarea{width:100%;border:1px solid #dddeda;padding:12px;border-radius:7px;background:#fff;color:var(--ink);font-weight:500}.book-form>label{margin-bottom:15px}.book-form .fine-print{font-size:11px;color:#98a3a4;line-height:1.6}.public-footer{display:flex;justify-content:space-between;gap:20px;background:#142e37;color:#ecf0ed;padding:30px clamp(22px,5vw,80px);font-size:11px;font-weight:700;letter-spacing:1px}.public-footer span{color:#98b3b8;font-weight:400;letter-spacing:0}@media(max-width:1150px){.metrics{grid-template-columns:repeat(2,1fr)}.panel-grid{grid-template-columns:1fr}.table-spot{min-width:57px}.main{padding:0 25px}}@media(max-width:820px){.app{display:block}.sidebar{height:auto;position:fixed;inset:0 auto 0 0;width:254px;transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.main{padding:0 18px}.mobile-toggle{display:block;border:0;background:transparent;font-size:22px;color:var(--deep)}.topbar{height:77px}.top-caption{font-size:9px}.top-actions{gap:7px}.user-chip{display:none}.page{padding-top:23px}.book-section{grid-template-columns:1fr;gap:18px}.book-intro h2{font-size:33px}.book-hero{padding:62px 18px}.reservation-card{display:block}.reservation-actions{justify-content:flex-start;max-width:none;margin-top:14px}}@media(max-width:540px){.metrics{grid-template-columns:repeat(2,1fr);gap:9px}.metric{padding:14px;min-height:128px}.metric .number{font-size:28px}.hero{padding:20px;align-items:flex-start}.hero-side{display:none}.page-title{font-size:25px}.section-header{align-items:flex-start;flex-direction:column}.panel-head{padding:18px 17px 12px}.panel-body{padding:5px 17px 18px}.date-picker{padding:8px 7px;font-size:0}.date-picker input{width:119px}.stock-line{flex-wrap:wrap}.stock-title{flex-basis:calc(100% - 70px)}.stock-status{order:3}.table-spot{min-width:50px;padding:7px 3px}.form-grid{grid-template-columns:1fr}.modal-panel{padding:21px}.book-form{padding:18px}.public-footer{flex-direction:column}.booking-row{grid-template-columns:1fr}.reservation-actions select{max-width:100%}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
