/* Queen Spa House V1.0.4 · Unified Heritage · single stylesheet */
:root{--bg-main:#FAF7F2;--bg-card:#FFFFFF;--bg-subtle:#F3ECE2;--primary:#2D241E;--primary-light:#5A4E46;--accent:#C5A880;--accent-dark:#9F8055;--accent-soft:#FBF4EC;--green:#3B7A57;--danger:#A34848;--border:#EFE7DC;--shadow-sm:0 2px 8px rgba(45,36,30,.04);--shadow-md:0 8px 24px rgba(45,36,30,.08);--shadow-lg:0 18px 54px rgba(45,36,30,.12);--r-sm:8px;--r-md:16px;--r-lg:24px;--topbar:68px;--bottom-nav:74px}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg-main)}body{margin:0;min-height:100vh;background:var(--bg-main);color:var(--primary);font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.serif,.page-head h1,.section-title,.hero h1,.login h1,.modal h2,.brand b,.action-card b{font-family:"Playfair Display",Georgia,"Times New Roman",serif}.hidden{display:none!important}button,input,select,textarea{font:inherit}.app{min-height:100vh}
.topbar{position:sticky;top:0;z-index:70;height:var(--topbar);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px clamp(14px,3vw,32px);background:rgba(250,247,242,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:10px;min-width:0;max-width:min(520px,68vw)}.brand img{width:42px;height:42px;flex:0 0 42px;object-fit:contain;border:0;border-radius:0;background:transparent}.brand>div{min-width:0}.brand b{display:block;font-size:18px;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand small{display:block;margin-top:-1px;color:var(--accent-dark);font-size:9px;letter-spacing:.16em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.btn,.icon-btn,.tab,.nav-item,.task-dock button,.action-card,.pay-method{transition:all .2s ease}.btn,.icon-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--primary);cursor:pointer}.btn{min-height:44px;padding:0 16px;border-radius:999px;font-weight:600}.btn:hover,.icon-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--accent)}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn.soft{background:var(--accent-soft);border-color:var(--accent-soft)}.btn.gold{background:var(--accent-dark);color:#fff;border-color:var(--accent-dark)}.btn.danger{background:#fff6f6;color:var(--danger);border-color:#edcccc}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:16px}
.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - var(--topbar))}.shell.staff-shell{grid-template-columns:1fr}.side{position:sticky;top:var(--topbar);height:calc(100vh - var(--topbar));padding:18px 12px;border-right:1px solid var(--border);background:rgba(243,236,226,.55);overflow:auto}.nav-label{padding:8px 12px;color:#8b7f76;font-size:10px;font-weight:700;letter-spacing:.12em}.nav-item{display:flex;align-items:center;gap:10px;width:100%;margin:3px 0;padding:11px 12px;border:0;border-radius:12px;background:transparent;color:var(--primary-light);font-weight:600;text-align:left;cursor:pointer}.nav-item span:first-child{width:22px;text-align:center}.nav-item:hover{background:var(--bg-card)}.nav-item.active{background:var(--primary);color:#fff}.main{min-width:0;width:100%;max-width:1280px;margin:0 auto;padding:clamp(16px,2.6vw,32px)}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 20px}.page-head h1{margin:0;font-size:clamp(30px,3.2vw,44px);line-height:1.15;font-weight:500}.page-head p{max-width:760px;margin:6px 0 0;color:var(--primary-light);font-size:14px}.section-title{margin:28px 0 14px;font-size:26px;font-weight:500}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card,.panel,.login,.modal,.notify,.dhub-panel{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.card{padding:18px;border-radius:var(--r-md)}.card:hover{border-color:#e5d6c4}.kpi .l{color:#887d74;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.kpi .n{margin-top:4px;font-size:27px;font-weight:600;letter-spacing:-.02em}.money,.point{font-variant-numeric:tabular-nums}
.hero{position:relative;overflow:hidden;min-height:280px;padding:clamp(32px,5vw,58px);border:1px solid var(--border);border-radius:var(--r-lg);background:linear-gradient(135deg,#fff 0%,var(--accent-soft) 64%,#eadbc7 100%);box-shadow:var(--shadow-md)}.hero h1{max-width:820px;margin:0 0 14px;font-size:clamp(40px,6vw,68px);line-height:1.02;font-weight:500}.hero p{max-width:650px;margin:0;color:var(--primary-light);font-size:15px;line-height:1.7}.quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.pill,.status{display:inline-flex;align-items:center;border-radius:999px}.pill{padding:7px 12px;background:var(--accent-soft);border:1px solid var(--border);font-size:12px;font-weight:600}
.tabs{display:flex;gap:8px;overflow:auto;padding:2px 1px 10px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{min-height:40px;padding:0 15px;border:1px solid var(--border);border-radius:999px;background:var(--bg-card);color:var(--primary-light);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.tab:hover{border-color:var(--accent)}.tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.search{position:relative}.search:before{content:"⌕";position:absolute;left:15px;top:8px;color:#8f847e;font-size:24px;pointer-events:none}.search input{width:100%;height:48px;padding:0 15px 0 43px;border:1px solid var(--border);border-radius:14px;background:var(--bg-card);color:var(--primary);outline:none}.search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(197,168,128,.13)}
.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.item{min-height:106px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card);display:flex;flex-direction:column;justify-content:space-between;gap:8px;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease}.item:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-md)}.item .name{font-family:"Playfair Display",Georgia,serif;font-size:16px;font-weight:600;line-height:1.32}.item .meta{margin-top:4px;color:#847a72;font-size:11.5px;line-height:1.4}.item .price{margin-top:4px;font-size:17px;font-weight:600}
.pos{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(360px,1.3fr) minmax(270px,.85fr);gap:14px;align-items:start}.panel{min-width:0;padding:15px;border-radius:var(--r-md)}.sticky-panel{position:sticky;top:calc(var(--topbar) + 14px)}.payment-panel{align-self:start}.customer-hit{margin:6px 0;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);cursor:pointer}.customer-hit:hover{background:var(--accent-soft);border-color:var(--accent)}.customer-mini{margin:10px 0 12px;padding:16px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--primary),#57493f);color:#fff}.customer-mini small{color:#eee2d9}.cart-line{display:grid;grid-template-columns:minmax(0,1fr) 54px 100px 32px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.cart-line .nm{font-size:12px;font-weight:600}.qty{width:52px;height:34px;border:1px solid var(--border);border-radius:8px;text-align:center}.summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0}.summary.total{margin-top:6px;border-top:1px solid var(--border);font-size:18px}.pay-method{display:flex;align-items:center;justify-content:space-between;margin:6px 0;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);cursor:pointer}.pay-method:hover,.pay-method.active{border-color:var(--accent);background:var(--accent-soft)}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card)}.table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0}.table th{position:sticky;top:0;padding:11px 12px;background:var(--bg-subtle);border-bottom:1px solid var(--border);color:#796e66;font-size:10px;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase}.table td{padding:12px;border-bottom:1px solid #f5eee7;font-size:12px;vertical-align:middle}.table tr:hover td{background:#fffdf9}.status{padding:5px 9px;font-size:10px;font-weight:700}.status.pending{background:#fff2d8;color:#896019}.status.active{background:#e7f2ea;color:#2c7349}.status.urgent{background:#ffe9e9;color:#a43c3c}
.form{display:grid;gap:12px}.field label{display:block;margin:0 0 6px;color:#756b64;font-size:12px;font-weight:600}.field input,.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);color:var(--primary);outline:none}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(197,168,128,.12)}
.editor-preview{position:relative;min-height:250px;overflow:hidden;border-radius:var(--r-lg);background-size:cover;background-position:center}.editor-preview .overlay{position:absolute;inset:0;padding:28px;background:linear-gradient(90deg,rgba(255,253,249,.92),rgba(255,255,255,.08))}.review-ai{padding:8px;border-radius:8px;background:var(--accent-soft);color:#6e625c;font-size:11px}
.notify{position:fixed;right:18px;top:calc(var(--topbar) + 10px);z-index:180;width:min(380px,calc(100vw - 36px));max-height:70vh;overflow:auto;padding:12px;border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.notify-item{padding:12px;border-bottom:1px solid var(--border)}.notify-item b{display:block;font-size:12px}.notify-item small{color:#7c726a}
.dhub{position:fixed;right:16px;bottom:20px;z-index:170}.dhub-btn{width:50px;height:50px;border:1px solid var(--accent);border-radius:50%;background:var(--primary);color:#fff;font-size:14px;font-weight:700;box-shadow:var(--shadow-lg);cursor:pointer}.dhub-panel{position:absolute;right:0;bottom:60px;width:min(390px,calc(100vw - 32px));padding:14px;border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.dhub-msg{margin:0 0 8px;padding:10px;border-radius:12px;background:var(--bg-subtle);font-size:12px;line-height:1.5}.dhub-actions{display:flex;flex-wrap:wrap;gap:6px}.dhub-input{display:flex;gap:6px;margin-top:10px}.dhub-input input{flex:1;min-width:0;height:42px;padding:0 12px;border:1px solid var(--border);border-radius:12px;outline:none}
.bottom-nav{display:none}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:min(430px,100%);padding:26px;border-radius:var(--r-lg);box-shadow:var(--shadow-md);text-align:center}.login .brand{justify-content:flex-start;margin-bottom:10px;text-align:left}.login img{width:58px;height:58px;object-fit:contain}.login h1{margin:14px 0 12px;font-size:42px;line-height:1.05;font-weight:500}.login p{margin:0 0 18px;color:var(--primary-light);font-size:14px}.login .field{margin:13px 0;text-align:left}.login .field input{min-height:50px}.login .btn{min-height:50px}
.modal-bg{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:16px;background:rgba(36,28,23,.52)}.modal{width:min(600px,100%);max-height:90vh;overflow:auto;padding:20px;border-radius:var(--r-lg)}.toast{position:fixed;left:50%;bottom:24px;z-index:300;transform:translateX(-50%);padding:11px 16px;border-radius:999px;background:var(--primary);color:#fff;font-size:12px;box-shadow:var(--shadow-md)}.empty{padding:38px 20px;color:#81776f;text-align:center}
.task-dock{position:sticky;top:calc(var(--topbar) + 8px);z-index:55;display:flex;gap:6px;margin:-4px 0 22px;padding:7px;overflow:auto;border:1px solid var(--border);border-radius:999px;background:rgba(250,247,242,.94);backdrop-filter:blur(14px);box-shadow:var(--shadow-sm);scrollbar-width:none}.task-dock::-webkit-scrollbar{display:none}.task-dock button{flex:0 0 auto;padding:9px 14px;border:0;border-radius:999px;background:transparent;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer}.task-dock button:hover{background:var(--bg-card);box-shadow:var(--shadow-sm)}
.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.action-card{min-height:145px;padding:20px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card);color:var(--primary);display:flex;flex-direction:column;justify-content:space-between;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm)}.action-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-md)}.action-card span{color:var(--accent-dark);font-size:11px;font-weight:600;letter-spacing:.12em}.action-card b{font-size:21px;font-weight:500}.action-card small{color:#81766e}
html[data-theme="royal_noir"]{--bg-main:#FAF7F2;--bg-card:#FFFFFF;--bg-subtle:#F3ECE2;--primary:#2D241E;--primary-light:#5A4E46;--accent:#C5A880;--accent-dark:#9F8055;--accent-soft:#FBF4EC;--border:#EFE7DC}
@media(max-width:1180px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pos{grid-template-columns:minmax(250px,.9fr) minmax(0,1.2fr)}.pos .payment-panel{grid-column:1/-1;position:static}.catalog{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}
@media(min-width:768px) and (max-width:1024px){.shell{grid-template-columns:190px minmax(0,1fr)}.shell.staff-shell{grid-template-columns:1fr}.main{padding:20px 18px 28px}.side{display:block}.bottom-nav{display:none!important}.pos{grid-template-columns:minmax(245px,.9fr) minmax(0,1.2fr)}.pos .payment-panel{grid-column:1/-1;position:static}.g3,.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){:root{--topbar:64px}.topbar{height:var(--topbar);padding:8px 14px}.brand{max-width:64vw;gap:8px}.brand img{width:32px;height:32px;flex-basis:32px}.brand b{font-size:13px}.brand small{display:none}.top-actions{gap:6px}.top-actions .hide-sm{display:none}.top-actions .btn{min-height:42px;padding:0 14px;font-size:13px}.shell,.shell.staff-shell{grid-template-columns:1fr}.side{display:none}.main{padding:16px 14px calc(96px + env(safe-area-inset-bottom))}.shell.staff-shell .main{padding-bottom:28px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:14px}.page-head h1{font-size:32px}.page-head p{font-size:14px;line-height:1.45}.g4,.g3,.g2{grid-template-columns:1fr}.hero{min-height:0;padding:28px 22px}.hero h1{font-size:clamp(38px,11vw,52px);line-height:1.02}.hero p{font-size:15px;line-height:1.55}.hero .quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.hero .quick .btn{width:100%;min-width:0;padding:10px 12px;white-space:normal;line-height:1.25}.hero .quick .btn:first-child{grid-column:1/-1}.section-title{font-size:28px}.catalog{grid-template-columns:1fr;gap:8px}.item{min-height:88px;padding:13px 15px}.item .name{font-size:15px}.pos{grid-template-columns:1fr;gap:10px}.sticky-panel{position:static}.panel{border-radius:var(--r-md)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:140;display:grid;grid-template-columns:repeat(5,1fr);min-height:var(--bottom-nav);padding:8px 4px max(8px,env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid var(--border)}.bottom-nav button{min-width:0;padding:2px;border:0;background:transparent;color:#756b65;font-size:9px;font-weight:600;line-height:1.15;cursor:pointer}.bottom-nav button b{display:block;margin-bottom:2px;font-size:17px;font-weight:400}.bottom-nav button.active{color:var(--accent-dark)}.staff-shell+.bottom-nav{display:none}.dhub{right:14px;bottom:calc(84px + env(safe-area-inset-bottom))}.shell.staff-shell~.dhub{bottom:18px}.login-wrap{padding:18px}.login{padding:24px 20px}.login h1{font-size:38px}.task-dock{top:calc(var(--topbar) + 6px);margin:0 -2px 16px;border-radius:14px}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-card{min-height:118px;padding:15px}.action-card b{font-size:19px}}
@media(max-width:430px){.brand{max-width:66vw}.top-actions .btn{padding:0 12px}.hero .quick{grid-template-columns:1fr 1fr}.action-grid{grid-template-columns:1fr}.action-card{min-height:94px}.card{padding:16px}.login{width:100%}.login h1{font-size:36px}.cart-line{grid-template-columns:minmax(0,1fr) 48px 82px 30px}.table{min-width:680px}}
@media(min-width:1280px){.main{padding-left:34px;padding-right:34px}.action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
