:root {
  --bg: #f4f1f3; --surface: rgba(255,255,255,.78); --surface-strong: #fff;
  --ink: #251f22; --muted: #786d72; --line: rgba(116,82,94,.16);
  --brand: #a04458; --brand-2: #c66779; --brand-soft: #f7e7eb;
  --good: #2b8a67; --warn: #bf6a22; --bad: #b33c46; --blue: #3977c4;
  --shadow: 0 14px 38px rgba(65,38,48,.11); --radius: 18px;
  --left-w: 350px; --right-w: 330px; --zoom: .85; --floor-scale: 50px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-width: 320px; height: 100%; color: var(--ink); background: radial-gradient(circle at 12% 4%, #fff 0, #f7eef1 28%, transparent 52%), linear-gradient(135deg,#f4f1f3,#edf1f8); }
body { overflow: hidden; }
button, input, select, textarea, .button { font: inherit; }
button, .button { border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.82); color: var(--ink); padding: 9px 13px; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease; }
button:hover, .button:hover { border-color: rgba(160,68,88,.32); box-shadow: 0 7px 18px rgba(67,37,47,.09); transform: translateY(-1px); }
button:active, .button:active { transform: translateY(0) scale(.98); }
button:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }
button.primary, .primary { color: #fff; border-color: transparent; background: linear-gradient(135deg,var(--brand),var(--brand-2)); box-shadow: 0 8px 18px rgba(160,68,88,.25); }
button.danger-ghost { color: var(--bad); border-color: rgba(179,60,70,.25); background: rgba(255,245,246,.84); }
button.danger-fill { color: #fff; background: var(--bad); border-color: var(--bad); }
.danger-text { color: var(--bad)!important; }
.compact { padding: 8px 11px; white-space: nowrap; }
.icon-btn { display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0; border-radius: 50%; }
.hidden { display: none!important; }
.glass { background: var(--surface); border: 1px solid rgba(255,255,255,.82); box-shadow: var(--shadow); backdrop-filter: blur(22px) saturate(1.25); -webkit-backdrop-filter: blur(22px) saturate(1.25); }
.eyebrow { display: block; color: var(--brand); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.app-shell { height: 100%; display: flex; flex-direction: column; opacity: .35; pointer-events: none; filter: blur(2px); }
body[data-license="active"] .app-shell { opacity: 1; pointer-events: auto; filter: none; }
.license-gate { position: fixed; inset: 0; z-index: 9000; display: grid; place-items: center; padding: 24px; background: rgba(37,31,34,.28); backdrop-filter: blur(18px); }
body[data-license="active"] .license-gate { display: none; }
.license-card { width: min(680px,100%); overflow: hidden; border-radius: 28px; }
.license-hero { padding: 28px 32px 24px; color: #fff; background: radial-gradient(circle at 90% 0,rgba(255,255,255,.26),transparent 44%),linear-gradient(135deg,#7e3045,#c5687c); }
.license-hero h1 { margin: 6px 0 5px; font-size: 31px; }.license-hero p { margin: 0; opacity: .86; }
.license-hero .eyebrow { color: rgba(255,255,255,.76); }
.license-body { padding: 25px 30px 30px; background: rgba(255,255,255,.94); }
.license-body>label:first-child { font-weight: 750; display: block; margin-bottom: 8px; }
.license-body textarea { width: 100%; resize: vertical; }
.license-controls { display: flex; align-items: center; gap: 7px; margin-left: auto; }
.license-badge { padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.8); color: var(--muted); white-space: nowrap; font-size: 13px; }
body[data-license="active"] .license-badge { color: var(--good); }.license-badge::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: currentColor; margin-right: 7px; }
.topbar { z-index: 100; display: flex; align-items: center; gap: 15px; min-height: 67px; padding: 9px 16px; border-radius: 0; box-shadow: 0 7px 24px rgba(45,35,39,.08); }
.brand { display: flex; align-items: center; gap: 10px; min-width: 282px; }.brand-mark { width: 39px; height: 39px; display: grid; place-items: center; color: #fff; font-size: 20px; font-weight: 900; border-radius: 13px; background: linear-gradient(145deg,var(--brand),#d17b8a); box-shadow: 0 8px 18px rgba(160,68,88,.24); }
.brand strong { display: block; font-size: 19px; }.brand div>span { display: block; margin-top: 2px; font-size: 11px; color: var(--muted); }
.toolbar { display: flex; align-items: center; gap: 6px; min-width: 0; }
.menu { position: relative; }.menu-pop { position: absolute; z-index: 500; top: calc(100% + 8px); left: 0; display: none; min-width: 190px; padding: 7px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: 0 16px 35px rgba(46,30,37,.16); backdrop-filter: blur(18px); }
.menu.open .menu-pop { display: grid; }.menu-pop.align-right { right: 0; left: auto; }.menu-pop button,.menu-file { display: block; width: 100%; padding: 10px 11px; text-align: left; border: 0; box-shadow: none; background: transparent; border-radius: 9px; }.menu-pop button:hover,.menu-file:hover { background: var(--brand-soft); transform: none; }.menu-file { cursor: pointer; }
.workspace { min-height: 0; flex: 1; display: grid; grid-template-columns: var(--left-w) 8px minmax(430px,1fr) 8px var(--right-w); padding: 10px; gap: 0; overflow: hidden; }
.workspace.left-collapsed { grid-template-columns: 0 0 minmax(430px,1fr) 8px var(--right-w); }.workspace.right-collapsed { grid-template-columns: var(--left-w) 8px minmax(430px,1fr) 0 0; }.workspace.left-collapsed.right-collapsed { grid-template-columns: 0 0 minmax(430px,1fr) 0 0; }
.side-panel { min-width: 0; height: 100%; overflow: hidden; border-radius: var(--radius); display: flex; flex-direction: column; transition: opacity .2s ease; }.workspace.left-collapsed .left-panel,.workspace.right-collapsed .right-panel { opacity: 0; pointer-events: none; }
.panel-head { display: flex; align-items: center; justify-content: space-between; padding: 13px 14px 10px; border-bottom: 1px solid var(--line); }.panel-head b { font-size: 16px; }.panel-head small { display: block; margin-top: 2px; color: var(--muted); }
.panel-scroll { min-height: 0; flex: 1; overflow-y: auto; overflow-x: hidden; padding: 12px; scrollbar-gutter: stable; }
.splitter { display: grid; place-items: center; color: var(--muted); cursor: col-resize; user-select: none; touch-action: none; }.splitter span { display: grid; place-items: center; width: 5px; height: 44px; color: transparent; border-radius: 99px; background: rgba(80,58,66,.18); transition: .18s ease; }.splitter:hover span,.splitter.dragging span { height: 72px; background: var(--brand); box-shadow: 0 0 0 4px rgba(160,68,88,.10); }.workspace.left-collapsed #leftSplitter,.workspace.right-collapsed #rightSplitter { pointer-events: none; }
.center-panel { min-width: 0; min-height: 0; display: flex; flex-direction: column; padding: 0 10px; }
.canvas-toolbar { min-height: 50px; display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 15px; box-shadow: 0 8px 22px rgba(52,39,44,.07); }.canvas-toolbar label { display: flex; align-items: center; gap: 9px; }.canvas-toolbar input[type="range"] { width: clamp(90px,16vw,260px); accent-color: var(--brand); }.canvas-toolbar output { min-width: 46px; font-weight: 800; }.scale-note { margin-left: auto; color: var(--muted); font-size: 12px; }
.floor-viewport { min-height: 0; flex: 1; margin-top: 9px; overflow: auto; overscroll-behavior: contain; border: 1px solid rgba(130,96,108,.12); border-radius: 18px; background: rgba(255,255,255,.47); box-shadow: inset 0 0 0 1px rgba(255,255,255,.7); }
.floor-shell { position: relative; transform-origin: top left; width: calc(var(--floor-w) * var(--zoom)); height: calc(var(--floor-h) * var(--zoom)); }.floor { position: relative; width: var(--floor-w); height: var(--floor-h); transform: scale(var(--zoom)); transform-origin: top left; overflow: visible; border-radius: 20px; background-color: #fffafa; background-image: linear-gradient(rgba(160,68,88,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(160,68,88,.055) 1px,transparent 1px),radial-gradient(circle at 50% 0,#fff0f4,transparent 42%); background-size: var(--floor-scale) var(--floor-scale),var(--floor-scale) var(--floor-scale),auto; }
.reference-disclaimer { padding: 6px 6px 0; color: var(--muted); font-size: 11px; text-align: center; }
.venue-zone { position: absolute; display: grid; place-items: center; color: #9d4560; border: 1px dashed rgba(160,68,88,.32); border-radius: 14px; background: rgba(255,234,241,.58); font-size: 13px; font-weight: 800; pointer-events: none; }.venue-zone.runway { background: rgba(255,239,243,.43); }.venue-zone.aisle { border-color: rgba(57,119,196,.25); color: var(--blue); background: rgba(232,242,255,.38); }.venue-zone small { display: block; font-weight: 500; }
.obstacle-node { position: absolute; z-index: 7; display: grid; place-items: center; padding: 5px; text-align: center; color: #6d4d25; border: 2px solid rgba(171,111,41,.5); border-radius: 10px; background: repeating-linear-gradient(135deg,rgba(253,230,184,.76) 0 8px,rgba(255,245,219,.72) 8px 16px); font-size: 12px; font-weight: 800; cursor: move; touch-action: none; }.obstacle-node.fireDoor { border-color: rgba(179,60,70,.55); color: var(--bad); background: repeating-linear-gradient(135deg,#ffe9eb 0 8px,#fff7f8 8px 16px); }.obstacle-node .drag-grip { position: absolute; top: 4px; right: 5px; font-size: 14px; opacity: .7; }
.table-anchor { --card-w: 168px; --card-h: 196px; position: absolute; z-index: 15; width: 0; height: 0; overflow: visible; }.physical-footprint { position: absolute; transform: translate(-50%,-50%); border-radius: 50%; border: 1px dashed rgba(70,112,148,.24); background: rgba(103,161,207,.055); pointer-events: none; }
.table-card { position: absolute; left: calc(var(--card-w) / -2); top: calc(var(--card-h) / -2); width: var(--card-w); height: var(--card-h); padding: 10px; border: 1px solid rgba(126,91,102,.18); border-radius: 20px; background: rgba(255,255,255,.91); box-shadow: 0 9px 24px rgba(69,46,55,.09); transition: transform 220ms cubic-bezier(.2,.8,.2,1),box-shadow 220ms cubic-bezier(.2,.8,.2,1),border-color 220ms ease; transform-origin: center; }.table-anchor.is-main .table-card { border-color: rgba(190,91,112,.5); background: rgba(255,248,250,.95); }.table-anchor.highlighted .table-card,.table-anchor.hovered .table-card { z-index: 80; transform: scale(1.16); border-color: var(--brand); box-shadow: 0 18px 38px rgba(112,51,66,.23),0 0 0 4px rgba(160,68,88,.10); }.table-anchor.dragging .table-card { transform: scale(1.03); opacity: .88; box-shadow: 0 22px 44px rgba(49,32,39,.28); transition: none; }.table-anchor.invalid .physical-footprint { border-color: var(--bad); background: rgba(179,60,70,.15); }.table-anchor.position-locked .drag-handle { color: var(--muted); cursor: not-allowed; }
.table-head { display: flex; align-items: center; gap: 5px; font-weight: 850; }.table-head .occupancy { margin-left: auto; padding: 3px 6px; border-radius: 99px; background: #f4eff1; font-size: 11px; }.drag-handle { width: 27px; height: 26px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 8px; color: var(--brand); background: var(--brand-soft); cursor: grab; font-size: 17px; letter-spacing: -3px; touch-action: none; }.drag-handle::before { content: "☰"; letter-spacing: 0; }.drag-handle:active { cursor: grabbing; }
.round-table { position: relative; width: 114px; height: 114px; margin: 4px auto; }.tabletop { position: absolute; inset: 25px; display: grid; place-items: center; border-radius: 50%; border: 2px solid rgba(190,91,112,.44); background: linear-gradient(145deg,#fff,#fff5f7); color: var(--brand); font-weight: 900; font-size: 12px; text-align: center; line-height: 1.2; }.seat-dot { position: absolute; width: 23px; height: 14px; margin: -7px -11px; border: 1px solid rgba(130,103,112,.2); border-radius: 99px; background: #fff; color: #57464c; font-size: 9px; display: grid; place-items: center; box-shadow: 0 2px 5px rgba(60,42,49,.05); }
.table-foot { display: flex; gap: 5px; justify-content: center; }.table-foot button { padding: 5px 7px; font-size: 11px; border-radius: 8px; }.table-foot .locked { color: var(--brand); background: var(--brand-soft); }
.quick-form { padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.62); }.quick-form h2 { margin: 0 0 11px; font-size: 15px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.form-grid.three { grid-template-columns: repeat(3,1fr); }.form-grid .span-2 { grid-column: 1 / -1; }.form-grid label,.modal-body>label,.import-layout label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
input, select, textarea { width: 100%; min-width: 0; padding: 10px 11px; color: var(--ink); border: 1px solid rgba(117,88,99,.21); border-radius: 10px; outline: none; background: rgba(255,255,255,.83); transition: border-color .18s,box-shadow .18s; }textarea { resize: vertical; line-height: 1.55; }input:focus,select:focus,textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(160,68,88,.11); }
.quick-form>button { width: 100%; margin-top: 10px; }.guest-browser { margin-top: 12px; }.segmented { display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; padding: 3px; border-radius: 12px; background: rgba(125,101,110,.09); }.segmented button { padding: 7px; border: 0; box-shadow: none; background: transparent; }.segmented button.active { color: var(--brand); background: #fff; box-shadow: 0 4px 12px rgba(50,36,42,.09); }.search-field { position: relative; display: block; margin: 9px 0; }.search-field span { position: absolute; z-index: 1; left: 10px; top: 8px; color: var(--muted); font-size: 20px; }.search-field input { padding-left: 34px; }.filter-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 5px; }.filter-row select { padding: 8px 5px; font-size: 11px; }
.guest-list { display: grid; gap: 8px; margin-top: 10px; }.guest-row { position: relative; padding: 10px 10px 9px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.72); cursor: pointer; transition: .17s ease; }.guest-row:hover,.guest-row.search-hit { border-color: rgba(160,68,88,.38); box-shadow: 0 7px 16px rgba(63,42,50,.08); }.guest-row.search-hit { animation: pulse-ring 1.5s ease 2; }.guest-row-head { display: flex; align-items: flex-start; gap: 7px; }.guest-row-head b { word-break: break-word; }.guest-row-head .guest-size { margin-left: auto; font-weight: 850; white-space: nowrap; }.guest-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }.chip { display: inline-flex; padding: 3px 6px; border-radius: 99px; background: #f0ecee; color: var(--muted); font-size: 10px; }.chip.brand { color: var(--brand); background: var(--brand-soft); }.guest-row-actions { display: flex; gap: 5px; margin-top: 8px; }.guest-row-actions button { padding: 5px 7px; font-size: 11px; }.pagination { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 10px 0; color: var(--muted); font-size: 11px; }.pagination button { padding: 5px 8px; }
.save-card,.setting-card { padding: 12px; margin-bottom: 10px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.62); }.save-line { display: flex; align-items: center; gap: 8px; }.status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--good); box-shadow: 0 0 0 4px rgba(43,138,103,.11); }.status-dot.pending { background: var(--warn); box-shadow: 0 0 0 4px rgba(191,106,34,.11); }.save-card dl { display: grid; grid-template-columns: auto 1fr; gap: 5px 10px; margin: 10px 0; font-size: 11px; }.save-card dt { color: var(--muted); }.save-card dd { margin: 0; text-align: right; }.soft-warning { width: 100%; color: var(--warn); background: #fff7eb; }.soft-warning.clean { color: var(--good); background: #eefaf5; }
.section-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }.section-title button { padding: 5px 7px; font-size: 11px; }.summary-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }.summary-item { padding: 8px; border-radius: 10px; background: rgba(245,240,242,.82); }.summary-item b { display: block; font-size: 14px; }.summary-item small { color: var(--muted); }.row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }.setting-card>.row-actions { margin-top: 9px; }.warning-list { display: grid; gap: 6px; }.warning-item { display: flex; gap: 7px; padding: 7px; border-radius: 10px; color: var(--warn); background: #fff7eb; font-size: 11px; }.warning-item.good { color: var(--good); background: #eefaf5; }.warning-item.error { color: var(--bad); background: #fff0f1; }
.compact-list,.table-list { display: grid; gap: 7px; }.obstacle-list-row,.table-list-row { padding: 9px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.72); }.obstacle-list-row:hover,.table-list-row:hover,.table-list-row.highlighted { border-color: var(--brand); background: #fff7f9; }.table-list-row .row-top { display: flex; gap: 6px; align-items: center; }.table-list-row .row-top b { flex: 1; }.table-list-row small { display: block; margin: 5px 0; color: var(--muted); }.table-list-row .row-actions button,.obstacle-list-row button { padding: 5px 7px; font-size: 10px; }
dialog { padding: 0; border: 0; background: transparent; max-width: calc(100vw - 28px); max-height: calc(100vh - 28px); }.modal::backdrop { background: rgba(35,29,32,.34); backdrop-filter: blur(8px); }.modal.small { width: min(440px,calc(100vw - 28px)); }.modal.medium { width: min(620px,calc(100vw - 28px)); }.modal.large { width: min(850px,calc(100vw - 28px)); }.modal.xlarge { width: min(1120px,calc(100vw - 28px)); }.modal-card { display: flex; flex-direction: column; max-height: calc(100vh - 28px); overflow: hidden; border: 1px solid rgba(255,255,255,.9); border-radius: 22px; background: rgba(255,255,255,.96); box-shadow: 0 25px 70px rgba(42,27,33,.28); }.modal-card>header { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px 13px; border-bottom: 1px solid var(--line); }.modal-card h2 { margin: 2px 0 0; font-size: 21px; }.modal-body { min-height: 0; overflow: auto; padding: 18px 20px; }.modal-card>footer { display: flex; align-items: center; gap: 8px; padding: 12px 20px 16px; border-top: 1px solid var(--line); }.footer-spacer { flex: 1; }.detail-grid { display: grid; grid-template-columns: 130px 1fr; gap: 9px 14px; margin: 0; }.detail-grid dt { color: var(--muted); }.detail-grid dd { margin: 0; font-weight: 750; word-break: break-word; }.sensitive-warning,.offline-trust-note,.recovery-note,.helper,.export-summary { margin-top: 13px; padding: 11px 13px; border-radius: 12px; color: var(--warn); background: #fff7e9; line-height: 1.55; font-size: 12px; }.offline-trust-note,.recovery-note,.helper { color: var(--muted); background: #f3f1f5; }.check-row { display: flex!important; grid-template-columns: none!important; align-items: flex-start; gap: 8px!important; line-height: 1.5; }.check-row input { flex: 0 0 auto; width: auto; margin-top: 3px; accent-color: var(--brand); }.form-message { min-height: 20px; color: var(--muted); }.form-message.error { color: var(--bad); }.form-message.success { color: var(--good); }.diagnostics pre { max-height: 130px; overflow: auto; white-space: pre-wrap; word-break: break-word; padding: 10px; border-radius: 10px; background: #f3f1f5; font-size: 11px; }
.choice-cards { display: grid; gap: 9px; padding: 0; border: 0; }.choice-cards.two { grid-template-columns: 1fr 1fr; }.choice-cards.three { grid-template-columns: repeat(3,1fr); }.choice-cards legend { margin-bottom: 8px; font-weight: 800; }.choice-cards label { display: flex; align-items: flex-start; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; cursor: pointer; background: #fff; }.choice-cards label:has(input:checked) { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(160,68,88,.09); background: #fff8fa; }.choice-cards input { flex: 0 0 auto; width: auto; margin-top: 3px; accent-color: var(--brand); }.choice-cards b,.choice-cards small { display: block; }.choice-cards small { margin-top: 4px; color: var(--muted); line-height: 1.45; }
.estimate-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; margin: 15px 0; }.estimate-item { padding: 13px; border-radius: 13px; background: #f5f1f3; }.estimate-item b { display: block; font-size: 20px; }.estimate-item small { color: var(--muted); }.conflict-list { display: grid; gap: 6px; color: var(--bad); }.impact-box { margin-top: 14px; padding: 13px; border: 1px solid #f0c890; border-radius: 13px; background: #fff8ed; }.impact-box ul { margin: 8px 0 0; padding-left: 20px; }
.import-layout { display: grid; grid-template-columns: minmax(280px,.9fr) minmax(340px,1.1fr); gap: 17px; }.import-preview { min-height: 330px; overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: #faf8f9; }.empty-state { display: grid; place-items: center; color: var(--muted); }.preview-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; padding: 11px; }.preview-table { width: 100%; border-collapse: collapse; font-size: 11px; }.preview-table th,.preview-table td { padding: 7px 8px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }.preview-table th { position: sticky; top: 0; z-index: 1; background: #f3eff1; }.preview-table tr.error { color: var(--bad); background: #fff0f1; }.preview-table select { padding: 5px; font-size: 10px; }
.table-preview-portal { position: fixed; z-index: 700; display: none; width: min(340px,calc(100vw - 24px)); max-height: min(520px,calc(100vh - 24px)); overflow: hidden; border: 1px solid rgba(255,255,255,.9); border-radius: 19px; background: rgba(255,255,255,.96); box-shadow: 0 24px 60px rgba(39,27,32,.27); backdrop-filter: blur(18px); transform: scale(.97) translateY(5px); opacity: 0; transition: opacity .17s ease,transform .2s cubic-bezier(.2,.8,.2,1); }.table-preview-portal.visible { display: flex; flex-direction: column; opacity: 1; transform: scale(1) translateY(0); }.preview-header { display: flex; align-items: center; padding: 13px 14px 10px; border-bottom: 1px solid var(--line); }.preview-header b { font-size: 18px; }.preview-header span { margin-left: 7px; color: var(--muted); }.preview-header button { margin-left: auto; width: 28px; height: 28px; }.preview-pinned { padding: 5px 14px; color: var(--brand); background: var(--brand-soft); font-size: 10px; }.preview-guests { min-height: 0; overflow-y: auto; padding: 8px; }.preview-guest { padding: 9px; border-radius: 12px; }.preview-guest:hover { background: #f7f2f4; }.preview-guest strong { display: block; line-height: 1.4; word-break: break-word; }.preview-guest small { display: block; margin-top: 3px; color: var(--muted); line-height: 1.45; white-space: normal; }.preview-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }.preview-actions button { padding: 5px 7px; font-size: 10px; }.preview-footer { padding: 9px 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.toast-region { position: fixed; z-index: 10000; right: 18px; bottom: 18px; display: grid; gap: 8px; width: min(390px,calc(100vw - 36px)); pointer-events: none; }.toast { pointer-events: auto; padding: 11px 14px; border: 1px solid rgba(255,255,255,.8); border-radius: 13px; background: rgba(45,38,41,.92); color: #fff; box-shadow: 0 16px 32px rgba(34,27,30,.22); animation: toast-in .2s ease; }.toast.success { background: rgba(32,112,82,.94); }.toast.error { background: rgba(160,48,58,.95); }.toast.warning { background: rgba(169,87,25,.95); }.toast button { margin-left: 9px; padding: 4px 7px; color: #fff; border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.12); }
.rule-editor { padding: 9px; border: 1px solid var(--line); border-radius: 11px; }.rule-editor summary { cursor: pointer; color: var(--ink); }.rule-editor label { margin-top: 8px; }.print-area { display: none; }
.preference-checks { display:flex; flex-wrap:wrap; gap:8px 16px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; }.preference-checks legend { color:var(--ink); font-size:12px; font-weight:800; }.preference-checks label { display:flex; grid-template-columns:none; align-items:center; gap:6px; color:var(--ink); }.preference-checks input { width:auto; accent-color:var(--brand); }
.rule-picker { margin-top:10px; }.rule-columns { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:9px; }.rule-columns section { min-width:0; padding:9px; border:1px solid var(--line); border-radius:12px; background:#faf8f9; }.rule-options { max-height:190px; overflow:auto; display:grid; gap:5px; margin-top:7px; }.rule-option { display:flex!important; grid-template-columns:none!important; align-items:flex-start; gap:7px!important; margin:0!important; padding:6px; border-radius:8px; color:var(--ink)!important; font-weight:500!important; }.rule-option:hover { background:var(--brand-soft); }.rule-option input { width:auto; flex:0 0 auto; margin-top:3px; }.rule-option small { display:block; color:var(--muted); font-weight:400; }
.plan-details { margin-top:13px; padding:10px; border:1px solid var(--line); border-radius:13px; }.plan-details summary { cursor:pointer; font-weight:800; }.plan-table { width:100%; margin-top:8px; border-collapse:collapse; font-size:11px; }.plan-table th,.plan-table td { padding:7px; border-top:1px solid var(--line); text-align:left; vertical-align:top; }.plan-table td:last-child { white-space:normal; word-break:break-word; }
.wizard-step { min-height:220px; }.wizard-step .choice-cards button,.wizard-step .choice-cards label { text-align:left; }.wizard-step .choice-cards button b,.wizard-step .choice-cards button small { display:block; }.wizard-step .choice-cards button small { margin-top:4px; color:var(--muted); }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }.at-keyframes-fix { display:none; }
@keyframes pulse-ring { 50% { box-shadow: 0 0 0 5px rgba(160,68,88,.13); } }

@media (max-width: 1500px) { .brand { min-width: 238px; }.brand strong { font-size: 17px; }.toolbar { gap: 4px; }.toolbar button { font-size: 12px; padding-left: 8px; padding-right: 8px; }.license-badge { max-width: 150px; overflow: hidden; text-overflow: ellipsis; } }
@media (max-width: 1180px) { .topbar { flex-wrap: wrap; }.brand { min-width: 220px; }.toolbar { order: 3; width: 100%; overflow-x: auto; padding-bottom: 2px; }.license-controls { order: 2; }.workspace { --left-w: 300px; --right-w: 275px; }.form-grid.three { grid-template-columns: 1fr 1fr; } }
@media (max-width: 900px) { body { overflow: auto; }.app-shell { min-height: 100%; height: auto; }.topbar { position: sticky; top: 0; }.workspace,.workspace.left-collapsed,.workspace.right-collapsed,.workspace.left-collapsed.right-collapsed { height: auto; min-height: calc(100vh - 110px); grid-template-columns: 1fr; overflow: visible; padding: 7px; }.side-panel { height: auto; max-height: 62vh; }.left-panel { order: 3; }.center-panel { order: 1; min-height: 64vh; padding: 0; }.right-panel { order: 4; }.splitter { display: none; }.workspace.left-collapsed .left-panel,.workspace.right-collapsed .right-panel { display: none; }.canvas-toolbar { position: sticky; top: 105px; z-index: 80; }.floor-viewport { min-height: 58vh; }.choice-cards.two,.choice-cards.three,.estimate-grid { grid-template-columns: 1fr; }.import-layout { grid-template-columns: 1fr; }.form-grid.three { grid-template-columns: 1fr 1fr; }.license-card { border-radius: 20px; }.license-body,.license-hero { padding-left: 20px; padding-right: 20px; } }
@media (max-width: 520px) { .brand strong { font-size: 15px; }.brand-mark { width: 35px; height: 35px; }.license-controls { width: 100%; justify-content: flex-end; }.form-grid,.form-grid.three { grid-template-columns: 1fr; }.form-grid .span-2 { grid-column: auto; }.modal-card>footer { flex-wrap: wrap; }.detail-grid { grid-template-columns: 1fr; gap: 3px; }.detail-grid dd { margin-bottom: 8px; }.filter-row { grid-template-columns: 1fr; }.canvas-toolbar { overflow-x: auto; }.canvas-toolbar .scale-note { display: none; } }

/* ==================== v2.3.1 PWA 与手机现场工作台 ==================== */
.device-data-note { padding: 4px 16px; color: #765e67; background: rgba(255,248,250,.9); border-bottom: 1px solid var(--line); text-align: center; font-size: 11px; }
.mobile-app,.mobile-drawer { display: none; }
.pwa-update-banner { position: fixed; z-index: 12000; top: 12px; left: 50%; display: flex; align-items: center; gap: 8px; width: min(620px,calc(100vw - 24px)); padding: 10px 12px; border: 1px solid rgba(160,68,88,.25); border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 18px 42px rgba(55,35,42,.2); transform: translateX(-50%); }
.pwa-update-banner span { flex: 1; font-size: 13px; }.pwa-update-banner button { min-height: 38px; }.pwa-update-banner #applyPwaUpdate { color: #fff; background: var(--brand); }

@media (max-width: 900px) {
  html,body { width: 100%; height: 100%; min-width: 0; overflow: hidden; overscroll-behavior: none; }
  body { background: linear-gradient(180deg,#fff7fa 0,#f5f2f5 42%,#edf1f7 100%); }
  .app-shell { display: none!important; }
  .device-data-note { display: none; }
  .mobile-app { position: fixed; inset: 0; z-index: 50; display: flex; flex-direction: column; width: 100%; height: 100dvh; overflow: hidden; opacity: .35; filter: blur(2px); pointer-events: none; }
  body[data-license="active"] .mobile-app { opacity: 1; filter: none; pointer-events: auto; }
  .mobile-app button,.mobile-app input,.mobile-app select,.mobile-app textarea,.mobile-drawer button,.mobile-drawer input,.mobile-drawer select,.mobile-drawer textarea { min-height: 44px; }
  .mobile-app input:not([type="checkbox"]):not([type="radio"]),.mobile-app select,.mobile-app textarea,.mobile-drawer input:not([type="checkbox"]):not([type="radio"]),.mobile-drawer select,.mobile-drawer textarea,dialog input:not([type="checkbox"]):not([type="radio"]),dialog select,dialog textarea { font-size: 16px; }
  .mobile-header { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 64px; padding: max(8px,env(safe-area-inset-top)) 14px 8px; background: rgba(255,255,255,.88); border-bottom: 1px solid var(--line); backdrop-filter: blur(22px) saturate(1.25); }
  .mobile-brand { display: flex; align-items: center; gap: 9px; }.mobile-brand .brand-mark { width: 38px; height: 38px; }.mobile-brand b { display: block; font-size: 17px; }.mobile-brand small { display: block; color: var(--muted); font-size: 10px; }
  .mobile-save-badge { min-height: 36px!important; padding: 7px 10px; color: var(--good); border-radius: 999px; font-size: 11px; }
  .mobile-device-note { flex: 0 0 auto; padding: 6px 14px; color: #7b5e68; background: #fff7e9; border-bottom: 1px solid #f3d7ae; text-align: center; font-size: 10px; }
  .mobile-pages { position: relative; min-height: 0; flex: 1; overflow: hidden; }
  .mobile-page { position: absolute; inset: 0; display: none; overflow-x: hidden; overflow-y: auto; padding: 16px 14px calc(92px + env(safe-area-inset-bottom)); scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
  .mobile-page.active { display: block; }
  .mobile-page-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }.mobile-page-head h1 { margin: 2px 0 0; font-size: 25px; }.mobile-page-head>button { flex: 0 0 auto; }
  .mobile-bottom-nav { position: absolute; z-index: 120; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(4,1fr); padding: 6px 5px calc(6px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(112,79,91,.15); background: rgba(255,255,255,.94); box-shadow: 0 -10px 32px rgba(55,35,42,.09); backdrop-filter: blur(22px) saturate(1.25); }
  .mobile-bottom-nav button { min-width: 0; min-height: 52px; padding: 4px 2px; border: 0; border-radius: 12px; box-shadow: none; background: transparent; }.mobile-bottom-nav button span,.mobile-bottom-nav button b { display: block; }.mobile-bottom-nav button span { height: 23px; color: var(--muted); font-size: 18px; line-height: 23px; }.mobile-bottom-nav button b { color: var(--muted); font-size: 10px; }.mobile-bottom-nav button.active { background: var(--brand-soft); transform: none; }.mobile-bottom-nav button.active span,.mobile-bottom-nav button.active b { color: var(--brand); }
  .mobile-search-box { position: sticky; z-index: 5; top: -2px; display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 6px 12px; border: 1px solid rgba(160,68,88,.22); border-radius: 17px; background: rgba(255,255,255,.95); box-shadow: 0 10px 28px rgba(78,47,59,.09); backdrop-filter: blur(18px); }.mobile-search-box>span { color: var(--brand); font-size: 25px; }.mobile-search-box input { min-height: 48px; padding: 6px 0; border: 0; box-shadow: none; background: transparent; font-size: 17px; }.mobile-search-box input:focus { box-shadow: none; }
  .mobile-section-note { margin: 6px 2px 11px; color: var(--muted); font-size: 12px; }.mobile-result-list,.mobile-table-list,.mobile-adjustment-list { display: grid; gap: 10px; }
  .mobile-guest-card,.mobile-table-card,.mobile-history-card { width: 100%; padding: 13px; border: 1px solid rgba(122,87,100,.15); border-radius: 16px; background: rgba(255,255,255,.88); box-shadow: 0 8px 22px rgba(60,39,47,.06); text-align: left; }
  .mobile-guest-card:active,.mobile-table-card:active { border-color: var(--brand); background: #fff7f9; }.mobile-card-top { display: flex; align-items: flex-start; gap: 8px; }.mobile-card-top strong { min-width: 0; flex: 1; font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }.mobile-seat-badge,.mobile-count-pill { flex: 0 0 auto; padding: 5px 8px; border-radius: 99px; color: var(--brand); background: var(--brand-soft); font-size: 11px; font-weight: 800; }.mobile-seat-badge.unassigned { color: var(--warn); background: #fff2df; }
  .mobile-card-sub { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }.mobile-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }.mobile-chip { padding: 4px 7px; border-radius: 99px; color: #67545b; background: #f1ecee; font-size: 10px; }.mobile-chip.brand { color: var(--brand); background: var(--brand-soft); }.mobile-chip.warn { color: var(--warn); background: #fff2df; }.mobile-chip.bad { color: var(--bad); background: #ffebed; }.mobile-chip.good { color: var(--good); background: #eaf8f2; }
  .mobile-empty { padding: 40px 20px; color: var(--muted); text-align: center; line-height: 1.7; }.mobile-filter-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(132px,.55fr); gap: 8px; margin-bottom: 12px; }.mobile-filter-row input,.mobile-filter-row select { background: rgba(255,255,255,.9); }
  .mobile-table-card { display: block; }.mobile-table-card .mobile-full-names { display: grid; gap: 5px; margin: 10px 0 0; color: #4f4247; font-size: 13px; line-height: 1.55; }.mobile-full-names span { overflow-wrap: anywhere; }.mobile-warning-line { margin-top: 8px; padding: 8px 10px; color: var(--warn); border-radius: 10px; background: #fff7e9; font-size: 11px; }
  .mobile-floor-page { padding: 12px 10px calc(82px + env(safe-area-inset-bottom)); overflow: hidden; }.mobile-floor-page.active { display: flex; flex-direction: column; }.floor-head { flex: 0 0 auto; margin-bottom: 8px; }.floor-head h1 { font-size: 21px; }.mobile-floor-actions { display: flex; gap: 5px; }.mobile-floor-actions button { min-height: 40px; padding: 7px 9px; font-size: 11px; }
  .mobile-floor-viewport { position: relative; min-height: 0; flex: 1; overflow: hidden; touch-action: none; border: 1px solid rgba(123,87,101,.16); border-radius: 18px; background: rgba(255,255,255,.73); box-shadow: inset 0 0 0 1px rgba(255,255,255,.8); }
  .mobile-floor-stage { position: absolute; top: 0; left: 0; transform-origin: 0 0; border-radius: 18px; background-color: #fff9fb; background-image: linear-gradient(rgba(160,68,88,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(160,68,88,.05) 1px,transparent 1px),radial-gradient(circle at 50% 0,#ffeef3,transparent 42%); background-size: 50px 50px,50px 50px,auto; }
  .mobile-floor-zone { position: absolute; display: grid; place-items: center; color: var(--brand); border: 1px dashed rgba(160,68,88,.3); border-radius: 12px; background: rgba(255,235,241,.58); font-size: 11px; font-weight: 800; pointer-events: none; }.mobile-floor-zone.aisle { color: var(--blue); border-color: rgba(57,119,196,.28); background: rgba(232,242,255,.45); }
  .mobile-obstacle { position: absolute; display: grid; place-items: center; padding: 3px; color: #715128; border: 2px solid rgba(171,111,41,.45); border-radius: 8px; background: rgba(253,232,191,.83); font-size: 9px; font-weight: 800; text-align: center; pointer-events: none; }
  .mobile-floor-table { position: absolute; display: grid; place-items: center; width: 72px; height: 72px; padding: 4px; color: var(--brand); border: 2px solid rgba(160,68,88,.38); border-radius: 50%; background: rgba(255,255,255,.96); box-shadow: 0 7px 20px rgba(74,45,56,.16); transform: translate(-50%,-50%) scale(var(--mobile-table-comp,1)); touch-action: none; user-select: none; -webkit-user-select: none; text-align: center; }.mobile-floor-table b,.mobile-floor-table small { display: block; max-width: 62px; overflow: hidden; line-height: 1.25; }.mobile-floor-table b { font-size: 11px; }.mobile-floor-table small { color: var(--muted); font-size: 9px; }.mobile-floor-table.is-main { background: #fff0f4; border-color: var(--brand); }.mobile-floor-table.locked::after { position: absolute; top: -4px; right: -4px; content: "🔒"; font-size: 11px; }.mobile-floor-table.located { animation: mobile-locate 1s ease 3; }.mobile-floor-table.moving { z-index: 20; border-color: var(--blue); box-shadow: 0 0 0 8px rgba(57,119,196,.15),0 12px 28px rgba(35,76,124,.23); }
  .mobile-move-bar { position: absolute; z-index: 160; right: 10px; bottom: calc(76px + env(safe-area-inset-bottom)); left: 10px; display: flex; align-items: center; gap: 8px; padding: 10px; border: 1px solid rgba(57,119,196,.25); border-radius: 16px; background: rgba(255,255,255,.96); box-shadow: 0 18px 45px rgba(47,40,70,.22); }.mobile-move-bar>div { min-width: 0; flex: 1; }.mobile-move-bar b,.mobile-move-bar small { display: block; }.mobile-move-bar b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.mobile-move-bar small { color: var(--muted); font-size: 10px; }
  .mobile-history-actions { display: flex; gap: 5px; }.mobile-history-card time { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }.mobile-history-card b { display: block; margin-bottom: 4px; overflow-wrap: anywhere; }.mobile-history-card p { margin: 0; color: var(--muted); font-size: 12px; }
  .mobile-status-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; margin-bottom: 12px; }.mobile-status-item { padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.84); }.mobile-status-item b,.mobile-status-item small { display: block; }.mobile-status-item b { overflow-wrap: anywhere; }.mobile-status-item small { margin-top: 4px; color: var(--muted); font-size: 10px; }
  .mobile-sync-notice { margin-bottom: 12px; padding: 13px; color: #7a4d16; border: 1px solid #f0cc95; border-radius: 15px; background: #fff7e9; }.mobile-sync-notice p { margin: 5px 0 0; font-size: 12px; line-height: 1.55; }
  .mobile-menu-card { display: grid; gap: 7px; margin-bottom: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.84); }.mobile-menu-card h2 { margin: 0 0 4px; font-size: 15px; }.mobile-menu-card button { width: 100%; text-align: left; }
  .mobile-drawer { position: fixed; inset: 0; max-width: 100vw; overflow: hidden; z-index: 8500; }.mobile-drawer.open { display: block; }.mobile-drawer-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: rgba(37,31,34,.34); backdrop-filter: blur(7px); }.mobile-drawer-panel { position: absolute; right: 0; bottom: var(--mobile-drawer-bottom,0px); left: 0; display: flex; flex-direction: column; width: 100%; max-width: 100vw; max-height: min(var(--mobile-drawer-height,88dvh),780px); padding-bottom: env(safe-area-inset-bottom); border: 1px solid rgba(255,255,255,.9); border-radius: 24px 24px 0 0; background: rgba(255,255,255,.98); box-shadow: 0 -22px 60px rgba(42,27,33,.24); animation: mobile-sheet-in .22s cubic-bezier(.2,.8,.2,1); }.mobile-drawer-panel>header { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 17px 17px 12px; border-bottom: 1px solid var(--line); }.mobile-drawer-panel h2 { margin: 2px 0 0; font-size: 21px; }.mobile-drawer-body { min-width: 0; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 15px 16px; -webkit-overflow-scrolling: touch; }.mobile-drawer-footer { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 16px 14px; border-top: 1px solid var(--line); }.mobile-drawer-footer button { flex: 1 1 110px; }
  .mobile-detail-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px 12px; margin: 0; font-size: 13px; }.mobile-detail-grid dt { color: var(--muted); }.mobile-detail-grid dd { margin: 0; overflow-wrap: anywhere; }.mobile-detail-section { margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line); }.mobile-detail-section h3 { margin: 0 0 8px; font-size: 14px; }.mobile-name-list { display: grid; gap: 7px; }.mobile-name-item { padding: 9px 10px; border-radius: 11px; background: #f7f2f4; line-height: 1.5; overflow-wrap: anywhere; }
  .mobile-move-targets { display: grid; gap: 8px; margin-top: 12px; }.mobile-target-card { display: block; width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-align: left; }.mobile-target-card.selected { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(160,68,88,.1); background: #fff8fa; }.mobile-target-card.blocked { opacity: .64; }.mobile-target-card .target-top { display: flex; align-items: center; gap: 8px; }.mobile-target-card .target-top b { min-width: 0; flex: 1; overflow-wrap: anywhere; }.mobile-target-card p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }.mobile-move-preview { margin-top: 12px; padding: 12px; border-radius: 13px; background: #f5f1f3; font-size: 12px; line-height: 1.65; }
  .toast-region { right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); width: calc(100vw - 24px); }
  dialog.modal { width: 100%; max-width: 100%; max-height: 100dvh; margin: auto 0 0; }.modal-card { max-height: 96dvh; border-radius: 24px 24px 0 0; }.modal-card>header { padding-top: 16px; }.modal-body { padding: 15px 16px; }.modal-card>footer { padding: 10px 16px calc(12px + env(safe-area-inset-bottom)); }.modal-card>footer button { min-height: 44px; }
  .license-gate { align-items: end; padding: 0; }.license-card { width: 100%; max-height: 100dvh; overflow-y: auto; border-radius: 24px 24px 0 0; }.license-hero { padding-top: max(24px,env(safe-area-inset-top)); }
  .pwa-update-banner { top: max(8px,env(safe-area-inset-top)); flex-wrap: wrap; }.pwa-update-banner span { flex-basis: 100%; }
}

@media (max-width: 370px) {
  .mobile-page { padding-right: 10px; padding-left: 10px; }.mobile-header { padding-right: 10px; padding-left: 10px; }.mobile-page-head h1 { font-size: 23px; }.mobile-bottom-nav button b { font-size: 9px; }.mobile-filter-row { grid-template-columns: 1fr; }.mobile-status-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) and (orientation: landscape) {
  .mobile-header { min-height: 52px; padding-top: 5px; padding-bottom: 5px; }.mobile-device-note { display: none; }.mobile-floor-page { padding-top: 7px; }.mobile-floor-page .floor-head { margin-bottom: 5px; }.mobile-floor-page .eyebrow { display: none; }.mobile-bottom-nav { grid-template-columns: repeat(4,74px); left: auto; justify-content: end; border-left: 1px solid var(--line); }.mobile-floor-page { padding-bottom: 12px; padding-right: 12px; }.mobile-floor-page .mobile-floor-viewport { margin-right: 0; }
}

@media (max-width: 900px) {
  .mobile-result-list,.mobile-table-list,.mobile-adjustment-list { display: grid; gap: 10px; }
  .mobile-result-card,.mobile-table-card-open { display: block; width: 100%; padding: 13px; color: inherit; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.91); box-shadow: 0 8px 24px rgba(73,49,58,.06); text-align: left; }
  .mobile-result-card.unassigned { border-color: #ecc987; background: #fffaf1; }.mobile-result-main,.mobile-table-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }.mobile-result-main>div { min-width: 0; }.mobile-result-main b,.mobile-result-main small { display: block; overflow-wrap: anywhere; }.mobile-result-main b { font-size: 17px; }.mobile-result-main small { margin-top: 3px; color: var(--muted); font-size: 11px; }.mobile-result-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 10px; margin-top: 9px; color: var(--muted); font-size: 11px; line-height: 1.5; }.mobile-chip-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
  .mobile-table-card { border-radius: 16px; }.mobile-table-card.has-warning .mobile-table-card-open { border-color: #e7bd73; }.mobile-table-card-open { box-shadow: none; }.mobile-table-title>div { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: 6px; }.mobile-table-title b { font-size: 17px; overflow-wrap: anywhere; }.mobile-table-title strong { flex: 0 0 auto; color: var(--brand); font-size: 16px; }.mobile-table-guests { display: grid; gap: 5px; margin-top: 11px; color: #493d42; font-size: 13px; line-height: 1.55; }.mobile-table-guests span { overflow-wrap: anywhere; }.muted { color: var(--muted); }
  .mobile-status-grid>div { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.84); }.mobile-status-grid>div b,.mobile-status-grid>div span { display: block; overflow-wrap: anywhere; }.mobile-status-grid>div b { font-size: 12px; }.mobile-status-grid>div span { margin-top: 4px; color: var(--muted); font-size: 10px; }
  .mobile-history-card { padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.9); }.mobile-history-card>div { display: flex; justify-content: space-between; gap: 8px; }.mobile-history-card time { flex: 0 0 auto; }
  .mobile-detail-hero { display: grid; gap: 5px; margin-bottom: 13px; padding: 15px; border-radius: 17px; background: linear-gradient(135deg,#fff1f5,#f6f2ff); }.mobile-detail-hero b { font-size: 19px; overflow-wrap: anywhere; }.mobile-detail-hero strong { color: var(--brand); font-size: 15px; }.mobile-detail-hero span { color: var(--muted); font-size: 12px; }
  .mobile-detail-row { display: grid; grid-template-columns: 82px minmax(0,1fr); gap: 9px; padding: 11px 2px; border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.55; }.mobile-detail-row b { color: var(--muted); }.mobile-detail-row span { overflow-wrap: anywhere; }
  .mobile-full-guest-list { display: grid; gap: 7px; }.mobile-full-guest-list>button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px; padding: 11px; color: inherit; border: 1px solid var(--line); border-radius: 13px; background: #fff; text-align: left; }.mobile-full-guest-list>button span { min-width: 0; }.mobile-full-guest-list b,.mobile-full-guest-list small { display: block; overflow-wrap: anywhere; }.mobile-full-guest-list small { margin-top: 4px; color: var(--muted); line-height: 1.5; }.mobile-full-guest-list i { color: var(--brand); font-style: normal; font-size: 22px; }
  .mobile-alert { margin: 11px 0; padding: 12px; color: #5f5056; border: 1px solid var(--line); border-radius: 14px; background: #f8f4f6; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }.mobile-alert p { margin: 5px 0; }.mobile-alert.warning { color: #7a4d16; border-color: #efca8c; background: #fff7e9; }.mobile-alert.danger { color: #982e3d; border-color: #efb6be; background: #fff0f2; }.mobile-alert.success { color: #19664d; border-color: #a9dbc9; background: #eefaf6; }
  .mobile-scope-picker { display: grid; gap: 8px; margin-bottom: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.mobile-scope-picker>label { display: flex; align-items: center; gap: 8px; min-height: 44px; }.mobile-scope-picker input { min-height: auto; }.mobile-scope-picker p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }.mobile-move-current { display: grid; gap: 4px; margin: 10px 0; padding: 12px; border-radius: 13px; background: var(--brand-soft); }.mobile-move-current span,.mobile-move-current small { color: var(--muted); font-size: 11px; }.mobile-move-current b { color: var(--brand); }
  .mobile-target-list { display: grid; gap: 8px; }.mobile-target-card>div { display: flex; justify-content: space-between; gap: 8px; }.mobile-target-card>div b { overflow-wrap: anywhere; }.mobile-target-card>div strong { flex: 0 0 auto; color: var(--brand); }.mobile-target-card>span,.mobile-target-card>small { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }.mobile-target-card .warn-text { color: var(--warn); }.mobile-impact-list { display: grid; gap: 8px; }.mobile-impact-list>div { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 8px; padding: 10px; border-radius: 12px; background: #f7f3f5; font-size: 12px; line-height: 1.55; }.mobile-impact-list span { overflow-wrap: anywhere; }.good-text { color: var(--good); }.warn-text { color: var(--warn); }
  .mobile-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; width: 100%; max-width: 100%; }.mobile-form-grid>* { min-width: 0; }.mobile-form-grid label { display: grid; min-width: 0; gap: 5px; font-size: 12px; }.mobile-form-grid .span-2 { grid-column: 1/-1; }.mobile-form-grid input,.mobile-form-grid select,.mobile-form-grid textarea { width: 100%; max-width: 100%; box-sizing: border-box; }.mobile-form-grid textarea { resize: vertical; }.mobile-table-choice-hint { margin-top: 7px; padding: 10px; border-radius: 11px; background: #f7f3f5; color: var(--muted); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }.mobile-table-choice-hint.warning { color: #7a4d16; background: #fff7e9; }.mobile-table-choice-hint.success { color: #19664d; background: #eefaf6; }
}

@keyframes mobile-sheet-in { from { opacity: .6; transform: translateY(28px); } }
@keyframes mobile-locate { 50% { border-color: var(--blue); box-shadow: 0 0 0 12px rgba(57,119,196,.16),0 10px 25px rgba(40,87,142,.22); transform: translate(-50%,-50%) scale(calc(var(--mobile-table-comp,1) * 1.12)); } }

@media print {
  @page { size: A4 landscape; margin: 12mm; }
  body { height: auto; overflow: visible; background: #fff; color: #111; }
  .app-shell,.license-gate,.table-preview-portal,.toast-region,dialog { display: none!important; }
  .print-area { display: block; font-family: "Microsoft YaHei",sans-serif; }
  .print-title { text-align: center; margin-bottom: 10px; }.print-title h1 { margin: 0 0 5px; font-size: 22px; }.print-title p { margin: 0; color: #555; font-size: 11px; }
  .print-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }.print-table { break-inside: avoid; border: 1px solid #999; padding: 8px; }.print-table h2 { margin: 0 0 6px; font-size: 14px; }.print-table ul { margin: 0; padding-left: 18px; font-size: 10px; }.print-table li { margin: 2px 0; }
  .print-footer { position: fixed; bottom: 0; left: 0; right: 0; padding-top: 5px; border-top: 1px solid #ccc; color: #666; text-align: center; font-size: 8px; }
}
