:root{--bg:#f7f8fc;--white:#fff;--ink:#172036;--sub:#778198;--line:#e7eaf2;--purple:#7054d6;--purple-dark:#5c40c1;--sidebar:#141b2d;--green:#208a6a;--amber:#ba7a22;--red:#c95a5c;--shadow:0 8px 36px rgba(35,48,88,.04)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);font-size:14px}body{margin:0;background:var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button,input,textarea,select{outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-weight:720;letter-spacing:-.045em}h2{font-size:17px;letter-spacing:-.025em}h3{font-size:15px}p{line-height:1.55}.subtle{color:var(--sub);margin:0}.eyebrow{font-size:10px;letter-spacing:.145em;font-weight:800;color:var(--purple);margin-bottom:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:11px 17px;font-size:13px;line-height:1.2;font-weight:650;white-space:nowrap;transition:background .15s,transform .15s}.button:not(:disabled):active{transform:translateY(1px)}.button.primary{color:white;background:var(--purple)}.button.primary:hover{background:var(--purple-dark)}.button.outline{color:#4b5470;background:#fff;border-color:#e1e4ef}.button.outline:hover{background:#f8f7ff}.button.green{background:#168767;color:white}.button.block{width:100%}.icon-button{display:inline-grid;place-items:center;border:1px solid #e5e8f0;background:#fff;color:#657087;border-radius:10px;width:36px;height:36px;font-size:19px;font-weight:500}.icon-button:hover{background:#f8f7ff}.notice{padding:13px 15px;border-radius:10px;font-size:13px;margin:0 0 17px;line-height:1.4}.notice.danger{background:#fff1f0;color:#a43f45;border:1px solid #f8d7d4}.notice.success{background:#e8f8ef;color:#18734a;border:1px solid #c6ebd7}
/* Login */
.login-page{display:grid;grid-template-columns:minmax(360px,51%) 1fr;min-height:100vh;background:#fff}.login-box{width:min(440px,calc(100% - 56px));margin:auto;padding:60px 0}.brand-mark{width:54px;height:54px;background:#7054d6;color:white;border-radius:15px;display:grid;place-items:center;font-size:21px;letter-spacing:-.09em;font-weight:850;box-shadow:0 8px 25px #7054d634}.brand-mark span{color:#d0bbff}.brand-mark.small{width:40px;height:40px;border-radius:11px;font-size:16px;box-shadow:none}.login-kicker{margin-top:36px;font-size:10px;letter-spacing:.12em;color:#8d94a7;font-weight:750}.login-box h1{font-size:40px;line-height:1.16;margin:14px 0 12px}.login-box .subtle{font-size:14px;margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:11px}.login-form label{font-weight:670;font-size:12px}.login-form input{width:100%;padding:14px 15px;border:1px solid #dfe3ee;background:#fff;border-radius:11px;color:var(--ink);margin-bottom:8px}.login-form input:focus,.field input:focus,.field textarea:focus,.field select:focus,.filterbar input:focus,.filterbar select:focus{border-color:#a390f4;outline:3px solid #7054d620}.login-form button{margin-top:11px;padding:15px}.login-form button span{margin-left:auto;font-size:20px;line-height:14px}.login-note{color:#9aa1b1;font-size:11px;line-height:1.5;margin:24px 0 0}.login-feature{position:relative;min-height:100vh;background:radial-gradient(circle at 83% 25%,#8f7ddf45 0,transparent 33%),linear-gradient(135deg,#242940,#111a2d);color:#fff;padding:52px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.login-feature:after{content:"";position:absolute;left:35%;top:2%;width:560px;height:560px;border:1px solid #ffffff14;border-radius:50%;box-shadow:0 0 0 70px #ffffff06,0 0 0 150px #ffffff05;pointer-events:none}.login-feature .eyebrow{color:#b8abd9}.feature-content{position:relative;z-index:1}.feature-symbol{font-size:170px;line-height:1;font-weight:900;letter-spacing:-.12em;color:#ffffff0e;position:absolute;top:-140px;right:15px}.feature-content h2{font-size:clamp(40px,5vw,73px);line-height:1.03;letter-spacing:-.07em;margin:0 0 25px}.feature-content p{max-width:310px;color:#aeb6cc;font-size:15px}.feature-foot{font-size:10px;letter-spacing:.14em;color:#96a0bb}
/* Workspace */
.app-layout{min-height:100vh;display:grid;grid-template-columns:247px minmax(0,1fr)}.sidebar{background:var(--sidebar);color:#d6dded;min-height:100vh;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:28px 16px}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px 37px}.sidebar-brand strong{font-size:14px;display:block;letter-spacing:-.025em;color:#fff}.sidebar-brand small{font-size:9px;letter-spacing:.15em;font-weight:750;color:#8a94b0;display:block;margin-top:4px}.sidebar-label{font-size:10px;font-weight:700;letter-spacing:.15em;color:#64708d;margin:0 0 13px;padding:0 13px}.nav{display:flex;flex-direction:column;gap:5px}.nav-link{border:0;display:flex;align-items:center;gap:12px;text-align:left;padding:14px 13px;width:100%;border-radius:10px;color:#adb7ce;background:transparent;font-size:13px;font-weight:570}.nav-link:hover{background:#222c43;color:#fff}.nav-link.active{background:#423a67;color:#fff;font-weight:750}.nav-ico{font-size:20px;min-width:22px;text-align:center;font-weight:400;color:#948ec3}.nav-link.active .nav-ico{color:#bcaaff}.nav-count{background:#8b6bdc;color:#fff;border-radius:15px;margin-left:auto;padding:2px 7px;font-size:10px}.sidebar-footer{font-size:11px;color:#a6b1c9;margin-top:auto;padding:16px 12px 6px;border-top:1px solid #2e3850}.sidebar-footer small{color:#6e7b9a;display:block;margin:7px 0 0 17px}.live-dot{display:inline-block;width:8px;height:8px;background:#47b69b;border-radius:50%;margin-right:6px}.main-column{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;gap:12px}.top-left,.top-actions{display:flex;align-items:center;gap:16px}.breadcrumb{font-size:11px;color:#9ca4b6;font-weight:760;letter-spacing:.095em}.breadcrumb span{margin:0 8px;color:#c5cada}.breadcrumb strong{color:#5b6378}.restaurant-select{border:1px solid #e4e7ef;background:#fff;border-radius:9px;padding:10px 35px 10px 13px;max-width:215px;font-weight:680;font-size:12px;color:#454d65}.account-name{font-size:12px;color:#707a8f;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-form{margin:0}.mobile-menu{display:none}.content{max-width:1500px;margin:0 auto;padding:40px 44px 80px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:32px}.page-header h1{font-size:31px;line-height:1.15;margin:0 0 10px}.page-header .subtle{font-size:13px}.header-actions{display:flex;gap:9px;flex-wrap:wrap}.alerts:not(:empty){margin-bottom:14px}.loading{padding:55px;text-align:center;color:var(--sub);display:flex;align-items:center;justify-content:center;gap:10px}.loader{border-radius:50%;width:16px;height:16px;border:2px solid #ddd7f3;border-top-color:var(--purple);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* Dashboard */
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:26px}.metric-card{background:#fff;border:1px solid var(--line);text-align:left;border-radius:15px;min-height:151px;padding:24px 23px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.metric-card:hover{border-color:#c9bcee}.metric-label{font-size:12px;color:#6f7b92;font-weight:650}.metric-num{font-size:40px;letter-spacing:-.075em;line-height:1.1;font-weight:820;margin:12px 0 8px}.metric-num.amber{color:#be8525}.metric-num.green{color:#209474}.metric-num.purple{color:#7254d5}.metric-num.blue{color:#497cce}.metric-sub{color:#9ca4b5;font-size:11px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:23px 24px;box-shadow:var(--shadow);min-width:0}.panel-list{padding:8px 24px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:18px}.section-head h2{margin:0 0 6px}.section-head p{font-size:12px}.text-link{border:0;background:none;color:var(--purple);font-size:12px;font-weight:700;white-space:nowrap;padding:5px}.text-link:hover{text-decoration:underline}.booking-list{display:flex;flex-direction:column}.booking-item{display:flex;align-items:center;gap:17px;text-align:left;background:#fff;border:0;border-top:1px solid #edf0f5;width:100%;padding:17px 0;min-width:0}.booking-item:first-child{border-top:0}.booking-item:hover .booking-person strong{color:var(--purple)}.booking-time{display:flex;flex-direction:column;gap:4px;flex:0 0 90px}.booking-time strong{font-size:14px;white-space:nowrap}.booking-time small{color:#959bad;font-size:11px;white-space:nowrap}.booking-person{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}.booking-person strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .1s}.booking-person small{color:#939aac;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{display:inline-block;padding:6px 9px;border-radius:6px;font-size:10px;font-weight:780;white-space:nowrap}.status-pending{background:#fff2db;color:#9f6f1d}.status-confirmed{background:#e3f7f0;color:#1a8061}.status-cancelled{background:#fcebed;color:#c24c59}.status-completed{background:#e8edff;color:#4b66b6}.status-no_show{background:#e9ebef;color:#657183}.booking-arrow{font-size:24px;color:#bec4d2;margin-left:auto}.empty{text-align:center;padding:55px 14px;color:#8b93a6}.empty.compact{padding:36px 14px}.empty-symbol{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 16px;border-radius:15px;background:#f1eefb;color:var(--purple);font-size:19px;font-weight:700}.empty h3{color:#364059;margin-bottom:8px}.empty p{font-size:12px;max-width:440px;margin:0 auto 17px}.pager{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:20px;color:#8892a6;font-size:12px}.filterbar{display:flex;align-items:end;flex-wrap:wrap;gap:18px;background:#fff;border:1px solid var(--line);padding:20px 23px;border-radius:14px;margin-bottom:24px}.filterbar label{display:flex;flex-direction:column;gap:7px;font-weight:690;font-size:11px;color:#647086}.filterbar input,.filterbar select,.analytics-toolbar input{background:#fff;border:1px solid #e0e4ed;border-radius:9px;padding:10px;font-size:12px;color:#333b52}.filterbar .check-label{flex-direction:row;align-items:center;gap:8px;padding:10px 0;font-size:12px}.filterbar .check-label input{padding:0;accent-color:var(--purple);width:16px;height:16px}
/* Calendar */
.calendar-panel{padding:27px}.calendar-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.calendar-top h2{font-size:20px;margin:0}.calendar-controls{display:flex;gap:9px;align-items:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-weekday{text-align:center;text-transform:uppercase;color:#a1a9b8;font-size:10px;letter-spacing:.085em;padding-bottom:10px}.calendar-day{min-width:0;aspect-ratio:1.16;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;background:#fbfcfe;border:1px solid #edf0f6;border-radius:9px;padding:12px;text-align:left;color:#39445c}.calendar-day:not(.muted):hover{background:#f3efff;border-color:#c7baf3}.calendar-day.muted{border:0;background:transparent}.calendar-day.current{outline:2px solid #b8a4ee;outline-offset:-2px}.calendar-day span{font-weight:730}.calendar-day strong{font-size:10px;background:#ece5ff;color:#7352bc;padding:4px 6px;border-radius:5px;white-space:nowrap}.calendar-day small{color:#c2c6d1}
/* Analytics */
.analytics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.analytics-toolbar h2{font-size:20px;margin:0 0 7px}.analytics-toolbar label{font-size:11px;font-weight:700;display:flex;align-items:center;gap:10px}.analytics-toolbar input{width:94px}.stats-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:23px}.stats-table{width:100%;border-collapse:collapse}.stats-table th,.stats-table td{padding:15px 21px;border-bottom:1px solid #edf0f5;text-align:left}.stats-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8691a6;background:#fafbfe}.stats-table td{font-size:13px}.stats-table th:not(:first-child),.stats-table td:not(:first-child){text-align:right}.stats-table tr:last-child td{border:0}.chart-panel{padding:25px}.chart-legend{display:flex;gap:9px;align-items:center;color:#7d8596;font-size:11px;margin-bottom:20px}.key{width:9px;height:9px;display:inline-block;border-radius:2px;margin-left:12px}.purple-key{background:#866fe0}.gray-key{background:#cfd5e2}.chart-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:8px;overflow:auto;min-height:190px}.chart-month{min-width:28px;display:flex;flex-direction:column;align-items:center;gap:8px;color:#8c96a8}.bar-stack{display:flex;align-items:end;justify-content:center;gap:3px;height:152px;width:100%;border-bottom:1px solid #e8ebf2}.bar{max-width:18px;width:35%;border-radius:4px 4px 0 0;min-height:1px}.bar.now{background:#866fe0}.bar.before{background:#cfd5e2}
/* Drawer */
.drawer-scrim{position:fixed;z-index:20;inset:0;background:#10172599}.detail-drawer{position:fixed;z-index:21;right:0;top:0;height:100vh;height:100dvh;width:min(520px,100vw);background:#fff;box-shadow:-20px 0 55px #111a3040;display:flex;flex-direction:column}.detail-drawer[hidden],.drawer-scrim[hidden],[hidden]{display:none!important}.drawer-head{padding:24px 26px 20px;display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line)}.drawer-head h2{font-size:23px;margin:0;line-height:1.15}.drawer-body{padding:24px 26px 34px;overflow:auto;flex:1}.drawer-open{overflow:hidden}.detail-badge{display:flex;align-items:center;gap:11px;margin-bottom:20px;font-size:12px;color:#9098aa}.quick-attributes{background:#f9fafe;border:1px solid #edf0f6;border-radius:12px;padding:9px 16px;margin-bottom:20px}.detail-field{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-top:1px solid #edf0f6;font-size:12px}.detail-field:first-child{border:0}.detail-field span{color:#8993a6;white-space:nowrap}.detail-field strong{text-align:right;font-weight:670;overflow-wrap:anywhere}.quick-actions{display:flex;gap:9px;margin:10px 0 25px}.quick-actions .button{flex:1}.drawer-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:20px}.drawer-tab{border:0;border-bottom:2px solid transparent;color:#9199aa;background:transparent;padding:13px 1px;font-size:12px;font-weight:700}.drawer-tab.active{color:var(--purple);border-color:var(--purple)}.booking-form{display:flex;flex-direction:column;gap:14px}.form-section{font-size:10px;letter-spacing:.14em;font-weight:750;color:#a2a9b7;padding-top:7px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>span{font-weight:700;font-size:11px;color:#5e6880}.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid #e0e4ed;border-radius:9px;padding:11px;color:#303b52;background:#fff;resize:vertical;font-size:12px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-form>.button{margin-top:6px;padding:14px}.note{padding:12px 0;border-bottom:1px solid var(--line)}.note strong{font-size:12px}.note small{font-size:11px;color:#8a94a5;margin-left:8px}.note p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font-size:12px}.activity-row{display:flex;gap:13px;padding:11px 0}.activity-dot{width:8px;height:8px;flex:0 0 8px;background:#947ee1;border-radius:50%;margin-top:6px}.activity-row strong{font-size:12px;text-transform:capitalize;display:block}.activity-row small{display:block;margin-top:5px;color:#929aab;font-size:10px}
@media(max-width:1250px){.content{padding:34px 28px 70px}.topbar{padding:0 28px}.metric-grid{gap:11px}.metric-card{padding:20px 16px}.dashboard-grid{gap:14px}.panel{padding:20px}.booking-time{flex-basis:83px}.booking-item{gap:9px}}
@media(max-width:1020px){.app-layout{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding:20px 10px}.sidebar-brand{padding:0 4px 28px;justify-content:center}.sidebar-brand>div:nth-child(2){display:none}.sidebar-label,.sidebar-footer{display:none}.nav-link{justify-content:center;font-size:0;padding:13px 8px}.nav-ico{font-size:22px}.nav-count{position:absolute;margin-left:35px;margin-top:-20px;font-size:9px}.dashboard-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-num{font-size:35px}}
@media(max-width:720px){.app-layout{display:block}.sidebar{z-index:15;position:fixed;left:0;top:0;bottom:0;width:245px;transform:translateX(-110%);transition:transform .2s;box-shadow:10px 0 30px #1e23304d}.nav-open .sidebar{transform:translateX(0)}.sidebar-brand{justify-content:flex-start}.sidebar-brand>div:nth-child(2){display:block}.sidebar-label,.sidebar-footer{display:block}.nav-link{justify-content:flex-start;font-size:13px}.nav-ico{font-size:19px}.nav-count{position:static;margin:0 0 0 auto}.mobile-menu{display:inline-grid;border:0}.topbar{height:68px;padding:0 17px}.breadcrumb{font-size:10px}.account-name{display:none}.restaurant-select{max-width:160px;padding:9px 14px 9px 9px}.top-actions{gap:8px}.content{padding:25px 17px 70px}.page-header{flex-direction:column;align-items:stretch;margin-bottom:21px;gap:15px}.page-header h1{font-size:28px}.header-actions{justify-content:stretch}.header-actions .button{flex:1}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.metric-card{min-height:125px;padding:18px}.metric-num{font-size:34px;margin:8px 0}.dashboard-grid{grid-template-columns:1fr}.panel{padding:18px}.panel-list{padding:5px 16px}.booking-item{gap:9px;padding:15px 0}.booking-time{flex-basis:76px}.booking-time strong{font-size:13px}.booking-time small{font-size:10px}.booking-person strong{font-size:12px}.booking-person small{font-size:10px}.booking-arrow{display:none}.booking-status .status{font-size:9px;padding:5px 6px}.filterbar{gap:11px;padding:16px}.calendar-panel{padding:15px}.calendar-day{padding:6px;aspect-ratio:.85}.calendar-day strong{font-size:8px;white-space:normal}.calendar-grid{gap:3px}.calendar-top h2{font-size:17px}.calendar-controls{gap:4px}.calendar-controls .icon-button{width:28px;height:28px}.calendar-controls .button{padding:8px}.login-page{display:block}.login-box{min-height:100vh;width:min(440px,calc(100% - 45px));padding:55px 0}.login-feature{display:none}.drawer-head,.drawer-body{padding-left:19px;padding-right:19px}}
@media(max-width:400px){.breadcrumb{display:none}.restaurant-select{max-width:190px}.metric-label{font-size:11px}.metric-card{padding:15px}.metric-num{font-size:30px}.booking-time{flex-basis:67px}.booking-status{max-width:82px}.status{overflow:hidden;text-overflow:ellipsis}.quick-actions{flex-direction:column}}
