:root{--cream: #fff6f2;--pink: #ffb6d5;--pink-soft: #ffd5e7;--magenta: #be126b;--magenta-deep: #a80e60;--ok: #197346;--lavender: #d8c4ff;--peach: #ffc9a8;--ink: #3a2230;--ink-soft: #6b4a5c;--warn: #e08a1e;--bad: #d6177e;--notice: #eef2f6;--notice-ink: #33414e;--card-radius: 24px;--pill: 999px;--shadow-soft: 0 8px 24px rgba(255, 62, 154, .12);--shadow-card: 0 6px 20px rgba(214, 23, 126, .1);--font-body: "Be Vietnam Pro", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.45}a{color:var(--magenta-deep)}button{font-family:inherit;cursor:pointer}.app-shell{max-width:1200px;margin:0 auto;padding:24px clamp(16px,4vw,40px) 64px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.brand{display:flex;align-items:baseline;gap:10px}.brand h1{font-size:30px;margin:0;color:var(--magenta-deep);letter-spacing:-.5px}.brand .sub{color:var(--ink-soft);font-size:14px}.nav{display:flex;gap:8px;flex-wrap:wrap}.nav button{border:none;background:#fff;color:var(--ink);padding:10px 18px;border-radius:var(--pill);font-size:15px;box-shadow:var(--shadow-card);transition:transform .12s ease,background .12s ease}.nav button:hover{transform:translateY(-1px)}.nav button.active{background:var(--magenta);color:#fff}.refresh-row{display:flex;align-items:center;gap:12px;color:var(--ink-soft);font-size:14px}.btn{border:none;border-radius:var(--pill);padding:12px 22px;font-size:15px;font-weight:600;background:var(--magenta);color:#fff;box-shadow:var(--shadow-soft);transition:transform .12s ease,filter .12s ease}.btn:hover:not(:disabled){transform:translateY(-1px) scale(1.01)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#fff;color:var(--magenta-deep)}.btn.ghost{background:transparent;color:var(--magenta-deep);box-shadow:none}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:28px}.kpi{background:#fff;border-radius:var(--card-radius);padding:18px 20px;box-shadow:var(--shadow-card)}.kpi .label{color:var(--ink-soft);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.kpi .value{font-size:28px;font-weight:700;margin-top:4px}.kpi.alert .value{color:var(--magenta-deep)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.device-card{background:#fff;border-radius:var(--card-radius);padding:20px;box-shadow:var(--shadow-card);border:2px solid transparent;transition:transform .12s ease,border-color .12s ease;cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}.device-card:hover{transform:translateY(-2px);border-color:var(--pink)}.device-card.offline{background:#fff0f5}.device-card.disabled{opacity:.7}.device-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.device-title{font-weight:700;font-size:18px}.device-id{color:var(--ink-soft);font-size:13px;font-family:ui-monospace,monospace}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.on{background:var(--ok);box-shadow:0 0 0 4px #2faf6b2e}.dot.off{background:#b9a3ad;box-shadow:0 0 0 4px #b9a3ad2e}.status-line{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:14px;margin:6px 0 14px}.metrics{display:flex;gap:18px;margin-bottom:14px}.metric .m-label{color:var(--ink-soft);font-size:12px}.metric .m-value{font-size:18px;font-weight:700}.level{margin:8px 0}.level .l-top{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;font-size:12px;color:var(--ink-soft);margin-bottom:4px}.level .track{height:10px;background:var(--pink-soft);border-radius:var(--pill);overflow:hidden}.level .fill{height:100%;border-radius:var(--pill);background:var(--magenta);transition:width .2s ease}.level .fill.low{background:var(--warn)}.level .fill.critical{background:var(--bad)}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--pill);background:var(--lavender);color:var(--ink)}.badge.Offline{background:#e7dcff}.badge.LowPaper{background:var(--peach)}.badge.LowRibbon{background:#ffe0b0}.badge.Error{background:var(--pink);color:var(--magenta-deep)}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;-webkit-user-select:none;user-select:none}.switch{position:relative;width:46px;height:26px;border-radius:var(--pill);background:#d9c2cd;border:none;transition:background .15s ease;flex-shrink:0}.switch.on{background:var(--ok)}.switch .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s ease}.panel{background:#fff;border-radius:var(--card-radius);padding:24px;box-shadow:var(--shadow-card);margin-bottom:20px}.panel h2{margin-top:0;color:var(--magenta-deep)}.field{margin-bottom:16px}.field label{display:block;font-weight:600;margin-bottom:6px}textarea,input[type=text],input[type=number],input[type=password]{width:100%;font-family:ui-monospace,monospace;font-size:14px;padding:12px 14px;border:2px solid var(--pink-soft);border-radius:16px;background:var(--cream);color:var(--ink);resize:vertical}textarea:focus,input:focus{outline:none;border-color:var(--magenta)}textarea.invalid{border-color:var(--bad)}.flag-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--pink-soft)}.flag-row:last-child{border-bottom:none}.row-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;font-size:15px}.kv dt{color:var(--ink-soft)}.kv dd{margin:0;font-weight:600}.alert-list{display:flex;flex-direction:column;gap:10px}.alert-item{display:flex;align-items:center;gap:14px;background:#fff;border-radius:18px;padding:14px 18px;box-shadow:var(--shadow-card)}.alert-item .a-msg{flex:1}.alert-item .a-msg p{margin:6px 0}.alert-item .a-msg strong,.alert-item .a-dev{display:block}.alert-item details{margin-top:8px}.alert-group{border:1px solid var(--pink-soft);border-radius:18px;padding:14px;margin-bottom:18px}.alert-group-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}.alert-group-head h3{margin:0 0 6px;overflow-wrap:anywhere}.alert-group-head .a-dev{font-size:13px;overflow-wrap:anywhere}.alert-group .alert-item{margin-top:10px}.device-detail{min-width:0}.device-context{position:sticky;top:0;z-index:5;margin:0 0 20px;padding:14px 16px;border:1px solid var(--pink-soft);border-radius:20px;background:#fff9f5f5;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.device-context-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}.device-context-title h2{flex:1 1 280px;margin:0}.status-chip{display:inline-flex;align-items:center;gap:8px;border-radius:var(--pill);padding:8px 12px;font-weight:700}.status-chip.ok{background:#e7f7ee;color:#155a36}.status-chip.bad{background:#fff0f5;color:#851044}.device-sections{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.device-sections .active{color:#fff;background:var(--magenta-deep);box-shadow:none}.confirmation-dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow-y:auto;padding:24px;border:2px solid var(--pink-soft);border-radius:24px;background:var(--cream);color:var(--ink);box-shadow:var(--shadow-card)}.confirmation-dialog::backdrop{background:#3a223073}.confirmation-dialog h2{margin-top:0}.dialog-targets{max-height:30dvh;overflow-y:auto;padding-left:22px;overflow-wrap:anywhere}.alert-item summary{cursor:pointer;padding:8px 0}.alert-item .a-dev{font-family:ui-monospace,monospace;font-size:13px;color:var(--ink-soft)}.alert-item .a-since{color:var(--ink-soft);font-size:13px;white-space:nowrap}.muted{color:var(--ink-soft)}.error-banner{background:var(--pink);color:var(--magenta-deep);border-radius:16px;padding:12px 18px;margin-bottom:16px;font-weight:600}.notice{background:var(--notice);color:var(--notice-ink);border-radius:16px;padding:12px 18px;margin-bottom:16px;font-weight:600}.empty{text-align:center;color:var(--ink-soft);padding:48px 0}.checkbox{width:20px;height:20px;accent-color:var(--magenta)}.select-bar{position:sticky;top:8px;z-index:8;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--lavender);border-radius:18px;padding:14px 18px;margin-bottom:16px}.toast{background:#eafaf0;color:var(--ok);border-radius:14px;padding:10px 16px;font-weight:600;margin:10px 0}.toast.bad{background:#ffe3ef;color:var(--magenta-deep)}.back-link{background:none;border:none;color:var(--magenta-deep);font-size:15px;padding:4px 0;margin-bottom:8px}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(900px 500px at 20% 0%,rgba(255,182,213,.5),transparent 60%),radial-gradient(900px 500px at 90% 100%,rgba(216,196,255,.45),transparent 60%),var(--cream)}.login-card{width:100%;max-width:380px;background:#fff;border-radius:var(--card-radius);padding:32px 28px;box-shadow:var(--shadow-soft)}.login-brand{text-align:center;margin-bottom:24px}.login-brand h1{margin:0;color:var(--magenta-deep);font-size:32px;letter-spacing:-.5px}.login-brand .sub{color:var(--ink-soft);font-size:14px}.login-card input[type=text],.login-card input[type=password]{font-family:var(--font-body)}button,input,select,textarea{font:inherit}button,select,input[type=search],.back-link{min-height:44px}:focus-visible{outline:3px solid var(--ink);outline-offset:4px}input:focus-visible,textarea:focus-visible{outline:3px solid var(--magenta-deep);outline-offset:2px}.skip-link{position:absolute;left:16px;top:-100px;z-index:10;padding:12px;background:#fff}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.brand,.refresh-row,.metrics,.device-head,.alert-item{flex-wrap:wrap}.refresh-row{row-gap:10px}.grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}.device-card{cursor:default}.device-open{color:var(--ink);background:transparent;border:0;padding:0;text-align:left;text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:5px}.device-open:hover{text-decoration-color:var(--magenta)}.device-head>div{flex:1;min-width:0}.device-title,.device-id,.kv dd,.a-msg,.batch-targets{overflow-wrap:anywhere}.device-detail>section{scroll-margin-top:160px}.device-card.disabled{opacity:1;border-color:var(--pink-soft)}.checkbox{width:26px;height:26px;margin:9px;flex-shrink:0}label{cursor:pointer}.switch{width:56px;height:44px}.switch .knob{width:24px;height:24px;top:10px;left:6px}.switch.on .knob{transform:translate(20px)}.switch:disabled{cursor:not-allowed;opacity:.5}.toast{color:#155a36}.toast.bad,.error-banner,.badge.Error{color:#851044}.error-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.fleet-tools{display:flex;flex-wrap:wrap;align-items:end;gap:16px;margin:0 0 24px}.fleet-tools>div:first-child{flex:1 1 250px}.fleet-tools label{display:block;margin-bottom:8px;font-weight:600}input[type=search],select{padding:10px 14px;color:var(--ink);border:2px solid var(--pink-soft);border-radius:14px;background:#fff;max-width:100%}input[type=search]{width:100%}.language-select{min-width:112px}.login-card>.language-select{margin-bottom:20px;width:100%}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled,textarea:disabled{opacity:.65}.owned-store-form,.owned-store-form fieldset{display:grid;gap:16px;max-width:560px}.owned-store-form label{display:grid;gap:8px;min-width:0}.owned-store-form input[type=text]{width:100%;min-width:0;min-height:44px;box-sizing:border-box}.owned-store-form .owned-store-enabled{display:flex;align-items:center;min-height:44px;cursor:pointer}.owned-store-enabled input{width:22px;height:22px;flex-shrink:0}.field-error{color:var(--bad)}.change-review{padding:20px;border-radius:18px;background:var(--cream);border:2px solid var(--pink-soft)}.change-review pre{white-space:pre-wrap;overflow-wrap:anywhere}.batch-targets{display:flex;flex-wrap:wrap;gap:8px 28px;padding-left:20px}.kv{grid-template-columns:minmax(0,max-content) minmax(0,1fr)}.alert-item .a-msg{min-width:130px}@media(max-width:600px){.app-shell{padding:20px 16px 40px}.brand{display:block}.brand h1{font-size:28px}.refresh-row{width:100%;gap:8px}.refresh-row>span{flex:1 0 100%}.panel{padding:20px 16px}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:16px 12px}.kpi .value{font-size:22px;overflow-wrap:anywhere}.kv{grid-template-columns:1fr;gap:4px}.kv dd{margin-bottom:12px}.login-shell{padding:16px}.login-card{padding:24px 20px}.device-context{margin-inline:-4px;padding:10px}.device-context-title h2{flex-basis:100%;font-size:20px}.device-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.device-sections .btn{padding-inline:10px}}.batch-target-details{margin:8px 0 16px}.batch-target-details summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}.review-actions{position:sticky;bottom:8px;z-index:7;margin:18px -8px -8px;padding:12px 8px;background:#fff6f2f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--pink-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.pricing-editor{min-width:0;padding:12px;margin:12px 0;border:1px solid var(--border, #d5d5dd);border-radius:12px}.pricing-row{display:grid;gap:6px;margin-bottom:18px}.config-diff{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:18px 0}.config-diff h4{grid-column:1 / -1}.config-diff>div{min-width:0}.panel pre,.config-diff pre{overflow-wrap:anywhere;white-space:pre-wrap}.config-diff h5{font-size:16px;margin:6px 0}.config-diff p{margin:4px 0}.review-table-scroll{overflow-x:auto}.review-table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.review-table th,.review-table td{padding:10px 6px;text-align:left;vertical-align:top;border-bottom:1px solid var(--pink-soft);overflow-wrap:anywhere}.review-table th:first-child{width:34%}.review-table th span,.review-table small{display:block}.review-table small{font-weight:400;font-size:11px;margin-top:6px}.config-form details>summary{cursor:pointer;padding:12px 0}.panel>details>summary{min-height:44px;padding-block:12px;box-sizing:border-box;cursor:pointer}@media(max-width:600px){.price-review-table,.price-review-table tbody{display:block}.price-review-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.price-review-table tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.price-review-table th:first-child{grid-column:1 / -1;width:auto}.price-review-table td:before{content:attr(data-label);display:block;font-size:12px;font-weight:700;margin-bottom:6px}}.payment-evidence .change-review{margin:20px 0}.payment-events{padding-left:20px}.payment-events li{margin:14px 0;overflow-wrap:anywhere}.payment-search{border-block:1px solid var(--pink-soft);padding-block:16px;margin-block:20px}.payment-search-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}.payment-search-fields input,.payment-search-fields select{width:100%;min-width:0;box-sizing:border-box}.payment-search-fields input{min-height:48px;padding:10px 14px;font:inherit;color:var(--ink);border:2px solid var(--pink-soft);border-radius:14px;background:#fff}.payment-search label.row-actions{min-height:44px;cursor:pointer}.payment-evidence details>summary{min-height:44px;padding-block:12px;box-sizing:border-box;cursor:pointer}.payment-search-results{list-style:none;padding:0}.payment-search-results li{overflow-wrap:anywhere}.payment-search button{margin:8px 8px 8px 0}.org-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px;border:0;padding:0;min-width:0}.org-layout>div,.org-layout>section{min-width:0;padding:20px;border:1px solid var(--border, #eadce2);border-radius:16px;background:var(--card, white)}.org-layout fieldset{min-width:0;border:0;padding:0}.org-layout label{display:block;margin:12px 0}.staff-account-form{display:grid;gap:16px;max-width:36rem}.staff-account-form form{display:grid;gap:16px}.staff-account-form label{display:grid;gap:8px}.staff-account-form .staff-account-enabled{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}.staff-account-enabled input{width:22px;height:22px;flex-shrink:0}.staff-account-form .btn{white-space:normal;justify-self:start}.coupon-form input[type=datetime-local]{width:100%;min-width:0;min-height:44px;box-sizing:border-box;padding:10px;color:var(--ink);border:2px solid var(--pink-soft);border-radius:14px;background:#fff}.coupon-package-scope{display:grid;gap:12px}.coupon-form .coupon-package-choice{display:flex;align-items:center;gap:12px;min-height:44px;overflow-wrap:anywhere}.coupon-package-choice input{width:24px;height:24px;flex-shrink:0}.org-layout input,.org-layout select{display:block;width:100%;min-height:44px;margin-top:6px;box-sizing:border-box}.org-layout input[type=color]{width:64px}.org-layout .btn{margin:4px 4px 4px 0;white-space:normal}.org-directory ul{list-style:none;padding:0}.org-directory li{overflow-wrap:anywhere}.org-confirm{margin:20px 0;padding:12px;background:#fff2f7;border-radius:12px}.org-backdrop{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:12px}.catalog-directories{border:0;padding:0;min-width:0}.catalog-overlay{display:block;max-width:180px;max-height:270px;object-fit:contain;margin:12px 0}.catalog-form{margin-top:24px;max-width:640px}.catalog-form fieldset{border:1px solid #eadce2;border-radius:16px;padding:20px;min-width:0}.catalog-form legend{font-weight:700}.catalog-form label{display:block;margin:16px 0}.catalog-form input{display:block;width:100%;box-sizing:border-box;min-height:44px;margin-top:6px}.catalog-form .catalog-filter-choice{display:flex;align-items:center;gap:12px;min-height:44px;margin:4px 0;cursor:pointer}.catalog-form .catalog-filter-choice input{width:24px;height:24px;min-height:24px;margin:0;flex-shrink:0}.sales-desk{max-width:760px;margin-top:24px}.sales-desk fieldset,.sales-result{min-width:0;padding:20px;border:1px solid #eadce2;border-radius:16px;margin:16px 0}.sales-desk label{display:block;margin:12px 0}.sales-desk select,.sales-desk input[type=number]{display:block;width:100%;box-sizing:border-box;min-height:44px;margin-top:6px}.sales-desk input[type=checkbox]{margin-right:8px}.room-schedule input[type=datetime-local]{display:block;width:100%;min-width:0;min-height:44px;margin-top:6px;padding:10px;color:var(--ink);border:2px solid var(--pink-soft);border-radius:14px;background:#fff}.room-schedule-row{overflow-wrap:anywhere}.operations-report table{width:100%;border-collapse:collapse;margin:20px 0}.operations-report th{text-align:left}.operations-report th,.operations-report td{padding:12px 8px;border-bottom:1px solid var(--pink-soft);vertical-align:top}.operations-report th[scope=row]{font-weight:400;overflow-wrap:anywhere}.operations-report td,.operations-report thead th:last-child{width:80px;padding-left:16px;text-align:right;font-variant-numeric:tabular-nums}.sales-result code{overflow-wrap:anywhere}.order-history{min-width:0;padding:16px;border:1px solid #eadce2;border-radius:16px;margin:16px 0}.order-history-row{min-width:0;border-top:1px solid #eadce2;padding:12px 0;overflow-wrap:anywhere}.order-history .btn{max-width:100%;overflow-wrap:anywhere}.sales-desk .btn{margin:4px 4px 4px 0;white-space:normal}.storefront-shell nav{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.storefront-shell .panel{margin-block:1.25rem}.storefront-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem}.storefront-grid .sales-result{overflow-wrap:anywhere}.storefront-shell select{display:block;width:min(100%,420px);min-height:44px;margin-block:.5rem}.storefront-backdrops{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1rem}.storefront-backdrops li{display:flex;align-items:center;gap:.5rem}.storefront-swatch{display:inline-block;width:28px;height:28px;border:1px solid #777;border-radius:50%}.public-frame-overlay{margin-block:.75rem}.public-frame-overlay .btn{white-space:normal;max-width:100%}.public-frame-overlay figure{margin:.75rem 0}.public-frame-overlay img{display:block;max-width:100%;max-height:360px;object-fit:contain;background:#eee}.public-frame-overlay figcaption{margin-top:.5rem}
