:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#242320;background:#faf9f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--background: #faf9f6;--surface: #fdfcfa;--ink: #242320;--muted: #817c77;--faint: #a5a098;--border: #e4dfd8;--accent: #823746;--accent-hover: #6d2938;--accent-soft: #f4e9e9;--sage: #a4b09d;--serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b07983;outline-offset:3px}button,input,textarea,select{transition:border-color .15s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease}svg{flex-shrink:0;vertical-align:middle}button svg{width:17px;height:17px;stroke-width:1.7}h1,h2,h3,p{margin:0}button{font-size:13px}input,select,textarea{font-size:14px}button:disabled:hover{transform:none}.app-shell{width:100%;min-height:100vh}.topbar{min-height:66px;padding:12px 32px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:14px;min-width:0}.rings{color:var(--accent);width:41px;height:33px;flex-shrink:0}.rings svg{width:41px;height:33px}.brand-name{font-family:var(--serif);font-size:27px;letter-spacing:4px;font-weight:600;white-space:nowrap;line-height:1.2}.brand-subtitle{padding-left:17px;border-left:1px solid #d8d1c8;color:#5e5853;font-size:14px;letter-spacing:1px;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:10px}.button{min-height:37px;padding:8px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:6px;background:transparent;font-size:13px;font-weight:500;line-height:1.4;white-space:nowrap;text-decoration:none}.button:hover{background:#f2eee8;border-color:#d2c8bc}.button.primary{color:#fff;background:var(--accent);border-color:var(--accent)}.button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.button.secondary{color:var(--accent);border-color:#b4838d;background:transparent}.button.secondary:hover{background:var(--accent-soft);border-color:var(--accent)}.button.ghost{border-color:transparent;background:transparent;color:var(--muted)}.button.ghost:hover{color:var(--ink);background:#f0ece6}.button.danger{color:#9b3440;border-color:#e7c9ca}.button.danger:hover{background:#f8eeee}.button.small{min-height:31px;padding:5px 10px;font-size:12px;gap:5px}.icon-button{width:29px;height:29px;min-height:29px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:5px;border:1px solid var(--border);border-radius:5px;background:transparent;color:#68615a}.icon-button:hover{background:#f1ece6;color:var(--accent);border-color:#d4c7c1}.icon-button svg{width:15px;height:15px}.intro{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:25px 34px 27px;min-height:124px}.intro-copy h1{font-family:var(--serif);font-weight:500;font-size:clamp(24px,2.5vw,35px);letter-spacing:1.5px;line-height:1.6}.intro-copy p{margin-top:3px;color:#746d67;font-size:14px;letter-spacing:1.3px;line-height:1.7}.stats{display:flex;flex-shrink:0;align-items:center}.stat{display:flex;flex-direction:column;align-items:center;gap:3px;width:102px;border-left:1px solid #dcd5cd}.stat:first-child{border-left:0}.stat strong{font-family:Georgia,var(--serif);font-size:35px;font-weight:400;line-height:1.2}.stat span{color:#706b65;font-size:13px}.save-status{display:flex;align-items:center;gap:5px;color:#7c8274;font-size:11px}.save-status svg{width:12px;height:12px}.intro-right{display:flex;flex-direction:column;align-items:flex-end;gap:11px}.intro-right .save-status{margin-right:15px}.save-status.error,.save-status.conflict{color:#a5454e}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:21px;color:#95806b}.loading-screen .brand{margin-bottom:8px;color:var(--accent)}.loading-screen p{font-size:13px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.workspace{display:grid;grid-template-columns:280px minmax(380px,1fr) 280px;min-height:calc(100vh - 190px);border-top:1px solid var(--border)}.guest-panel{display:flex;flex-direction:column;padding:19px 19px 17px;min-width:0;border-right:1px solid var(--border);background:#ffffff3b}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.panel-heading h2,.canvas-toolbar h2{font-size:17px;font-weight:600;letter-spacing:.8px}.panel-heading>span{padding:2px 6px;color:var(--muted);font-size:12px}.search-box{display:flex;align-items:center;gap:8px;min-height:37px;padding:0 10px;border:1px solid #ddd7ce;border-radius:6px;background:#fcfbf8}.search-box:focus-within{border-color:#b4838d;box-shadow:0 0 0 2px #8237460b}.search-box svg{width:16px;height:16px;color:#959087;stroke-width:1.6}.search-box input{min-width:0;width:100%;padding:9px 0;border:0;outline:none;background:transparent;color:var(--ink);font-size:12px}.search-box input::placeholder{color:#999189}.filter-tabs{display:flex;align-items:center;gap:7px;margin-top:15px}.filter-tabs button{flex:1;min-width:0;border:1px solid var(--border);border-radius:6px;background:transparent;padding:7px 5px;font-size:12px;line-height:1.35;color:#655e58}.filter-tabs button:hover{border-color:#ba9aa0}.filter-tabs button.active{color:#fff;background:var(--accent);border-color:var(--accent)}.guest-list{flex:1;display:flex;flex-direction:column;min-height:310px;max-height:calc(100vh - 383px);overflow-y:auto;overflow-x:hidden;margin:17px -8px 0;padding:0 8px;scrollbar-width:thin;scrollbar-color:#d8cfc7 transparent}.guest-row{display:flex;flex-shrink:0;align-items:center;gap:9px;padding:11px 1px;min-height:66px;border-bottom:1px solid #eee9e2}.guest-row[draggable=true]{cursor:grab}.guest-row[draggable=true]:active{cursor:grabbing}.guest-row:hover{background:#f6f2ed}.guest-avatar{width:33px;height:33px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;font-size:13px;color:#89636a;background:#efe2e2}.guest-info{min-width:0;flex:1}.guest-name{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:500;line-height:1.5}button.guest-name{border:0;background:none;text-align:left;padding:0}button.guest-name:hover{color:var(--accent)}.drag-grip{color:#bdb3a8;flex-shrink:0;margin-left:-4px}.guest-location{font-size:10px;margin-top:3px;color:#728469}.guest-location.pending{color:#ab8970}.guest-note{max-width:175px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#9f9183;line-height:1.7;margin-top:3px}.group-filter{min-height:32px;margin-top:10px;padding:5px 8px;border:1px solid var(--border);border-radius:5px;font-size:12px;color:#7a6c5d;background:#fcfaf6}.guest-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guest-meta{margin-top:3px;display:flex;align-items:center;gap:4px;min-width:0;color:#8b8177;font-size:11px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guest-meta>span{overflow:hidden;text-overflow:ellipsis}.group-dot{width:6px;height:6px;border-radius:50%;background:#b59878;flex-shrink:0}.row-actions{display:flex;gap:3px;align-items:center;flex-shrink:0}.row-actions .icon-button{background:transparent;border:0;width:25px;height:26px}.row-actions .icon-button:hover{background:#eae1d9}.empty-state{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 5px;flex:1}.empty-icon{width:74px;height:74px;border-radius:50%;background:#f2eeea;color:#aaa199;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}.empty-icon svg{width:30px;height:30px;stroke-width:1.5}.empty-state h3{font-size:15px;font-weight:500;margin-bottom:8px;letter-spacing:.2px}.empty-state p{color:#91867c;font-size:12px;line-height:1.8;max-width:210px}.empty-state>.button{min-width:137px;margin-top:20px}.empty-state>.button+.button{margin-top:10px}.empty-actions{display:flex;flex-direction:column;align-items:stretch;gap:9px;margin-top:21px;min-width:140px}.panel-bottom{border-top:1px solid var(--border);padding-top:15px;margin-top:16px;display:flex;align-items:center;gap:7px}.panel-bottom .button{flex:1;padding-left:9px;padding-right:9px;font-size:12px}.canvas-panel{display:flex;flex-direction:column;min-width:0;background:#fbfaf7}.canvas-toolbar{display:flex;align-items:center;gap:18px;min-height:62px;padding:13px 20px;flex-wrap:wrap}.canvas-toolbar>.button{margin-left:auto}.canvas-heading{display:flex;align-items:center;gap:16px}.view-tabs{display:flex;padding:2px;border:1px solid var(--border);border-radius:6px;background:#f7f5f1}.view-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:4px;color:#5b534c;background:transparent;padding:6px 13px;font-size:12px;line-height:1.35;white-space:nowrap}.view-tabs button.active{color:#fff;background:var(--accent)}.view-tabs button:not(.active):hover{background:#ebe4dd}.room-viewport{flex:1;overflow:auto;min-width:0;padding:8px 0 0;scrollbar-width:thin;scrollbar-color:#d6cec5 #f7f4ef}.room-frame{position:relative;margin:0 auto}.room-canvas{position:relative;padding:0;background-image:radial-gradient(circle,#dcd6cd .8px,transparent 1px);background-size:14px 14px;background-position:center 3px;transform-origin:top left}.stage{position:absolute;transform:translate(-50%,-50%);margin:0;border:0;border-radius:50px;color:#fff;background:var(--sage);text-align:center;display:flex;align-items:center;justify-content:center;gap:14px;font-size:22px;font-weight:500;letter-spacing:2px;cursor:grab;touch-action:none}.stage svg{opacity:.55;width:18px;height:18px}.stage:hover svg{opacity:1}.stage.is-dragging{cursor:grabbing;box-shadow:0 10px 20px #53644820}.tables-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 15px;align-items:center}.table-place{position:absolute;width:240px;height:240px;transform:translate(-50%,-50%);min-width:0;border:0;background:transparent;isolation:isolate;padding:0;-webkit-user-select:none;user-select:none}.table-place:focus-visible{border-radius:50%;outline-offset:3px}.table-circle{position:absolute;left:50%;top:50%;width:174px;height:174px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px solid #cbbfae;border-radius:50%;background:#f3f0e8;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;cursor:grab;touch-action:none}.table-circle:active{cursor:grabbing}.table-place:hover .table-circle{border-color:#a98279;background:#eee8df}.table-place.selected .table-circle{border:1.5px solid var(--accent);outline:1.5px solid var(--accent);outline-offset:4px}.table-place.drag-over .table-circle{background:#e7eadf;border-color:#7a906b;outline:3px solid #9aaa90;outline-offset:5px}.table-place.drag-over{transform:translate(-50%,-50%) scale(1.03)}.table-name{display:block;font-family:var(--serif);font-size:29px;font-weight:500;text-align:center;line-height:1.6;padding:0 10px;max-width:100%;overflow-wrap:anywhere}.table-count{display:block;color:#68625b;font-size:17px;line-height:1.7;margin-top:2px}.table-drag-hint{position:absolute;bottom:23px;display:flex;align-items:center;gap:4px;opacity:0;color:#a79786;font-size:10px;transition:opacity .15s ease}.table-circle:hover .table-drag-hint,.table-circle:focus-visible .table-drag-hint{opacity:1}.table-count.overflow{color:#a73845}.chair{position:absolute;width:23px;height:23px;display:flex;align-items:center;justify-content:center;font-size:10px;color:#a59686;border:1px solid #9f9183;border-radius:50%;background:var(--surface);transform:translate(-50%,-50%);pointer-events:none}.selected .chair{border-color:var(--accent);border-width:1.4px}.chair.occupied{background:var(--sage);border-color:#92a085}.chair.occupied{color:#fff}.table-place.overflow .table-count{color:#9d3747}.no-tables{position:absolute;top:220px;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;gap:20px;color:#9d8b79;font-size:19px}.selected .chair.occupied{border-color:#79876e}.canvas-footer{padding:13px 19px 16px;min-height:62px;display:flex;align-items:center;gap:13px;color:#93877c;font-size:11px;line-height:1.6;flex-wrap:wrap}.legend{display:flex;align-items:center;gap:15px;flex-shrink:0}.legend span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.legend i{width:15px;height:15px;display:inline-block;border-radius:50%;border:1px solid #a6998b;background:#fff}.legend i.occupied{background:var(--sage);border-color:var(--sage)}.canvas-footer>p,.canvas-footer>.canvas-hint{padding-left:17px;border-left:1px solid var(--border)}.zoom-controls{display:flex;align-items:center;gap:1px;margin-left:auto}.zoom-controls .icon-button{width:25px;min-width:25px;height:26px;padding:4px;border:0}.zoom-value{min-width:36px;padding:5px 2px;border:0;background:transparent;color:#8f7b65;font-size:10px}.inspector{display:flex;flex-direction:column;min-width:0;padding:18px 18px 20px;border-left:1px solid var(--border);background:#ffffff4d}.inspector-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.inspector-header h2{color:var(--accent);font-family:var(--serif);font-size:28px;line-height:1.35;font-weight:500;overflow-wrap:anywhere}.inspector-header p{color:#8e8278;font-size:12px;margin-top:7px}.inspector-meter{margin-top:25px}.inspector-meter>div:first-child{font-family:Georgia,var(--serif);font-size:33px;line-height:1.5}.inspector-meter>div:first-child>span{font-size:31px}.inspector-meter.overflow strong{color:#a93f4a}.inspector-meter>p,.inspector-meter>.meter-number{font-family:Georgia,var(--serif);font-size:35px;color:#242320;line-height:1.4;display:flex;align-items:baseline;gap:8px}.inspector-meter strong{font-family:Georgia,var(--serif);color:var(--accent);font-size:47px;font-weight:400;line-height:1}.inspector-meter small{font:13px -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;margin-left:2px}.meter-row{display:flex;align-items:center;gap:10px;margin-top:10px}.meter-row span{font-size:11px}.meter-track{flex:1;height:8px;background:#e6e2dc;border-radius:20px;overflow:hidden}.meter-fill{display:block;height:100%;border-radius:inherit;background:var(--sage);min-width:0;transition:width .25s ease}.meter-fill.overflow{background:#ab5663}.inspector-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}.inspector-section-heading h3{font-size:13px;font-weight:600}.text-button{border:0;background:transparent;padding:0;color:var(--accent);font-size:11px}.text-button:hover{text-decoration:underline}.inspector-list{display:flex;flex-direction:column;flex:1;min-height:220px;max-height:350px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d6cec5 transparent}.inspector-guest{display:flex;flex-shrink:0;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid #ede6dd}.inspector-guest>div{min-width:0}.seat-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}.seat-tags button{color:#778267;background:#edf0e7;border:0;border-radius:3px;font-size:10px;padding:3px 5px}.seat-tags button:hover{background:#dce3ce}.seat-tags .unseated{color:#a66152;background:#f4e5dc}.seat-edit-button{width:100%;margin-top:9px;font-size:12px}.delete-table{display:flex;align-items:center;justify-content:center;gap:5px;align-self:center;border:0;background:none;color:#ab9d90;font-size:10px;padding:11px 7px 0}.delete-table:hover{color:#9b3440}.inspector-list h3{font-size:13px;font-weight:600;letter-spacing:.4px}.inspector-list .empty-state{min-height:208px;padding:22px 0 17px}.inspector-list .empty-icon{width:72px;height:72px;margin-bottom:18px}.inspector-list .empty-state p{font-size:12px;max-width:100%}.inspector-list .guest-list{margin-top:10px;min-height:0;max-height:283px}.assignment-button{width:100%;min-height:43px;margin-top:15px;border:1px dashed #b07c86;border-radius:6px;background:transparent;color:var(--accent);display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px}.assignment-button:hover{background:#f5eceb;border-color:var(--accent)}.assignment-button svg{width:18px;height:18px}.inspector-tip{display:flex;gap:12px;align-items:flex-start;padding:14px;background:#f2efe9;border-radius:6px;color:#817669;margin-top:26px;font-size:12px;line-height:1.75}.inspector-tip svg{width:19px;height:19px;color:#a08b68;margin-top:1px;stroke-width:1.6}.inspector-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:15px}.inspector-actions .button{font-size:11px}.notice{margin-top:14px;padding:10px 12px;background:#fff1e4;color:#94632c;font-size:12px;border-radius:5px;line-height:1.65}.notice svg{width:15px;height:15px;margin-right:5px}.app-shell>.notice{display:flex;align-items:center;gap:8px;margin:0;border-radius:0;padding:10px 30px}.app-shell>.notice.error{color:#9d3a44;background:#f6e6e5}.app-shell>.notice .button{margin-left:auto}.toast{position:fixed;z-index:30;bottom:26px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;max-width:min(90vw,480px);background:#40392f;color:#fffdf9;padding:12px 18px;border-radius:7px;box-shadow:0 8px 30px #21150d1f;font-size:13px;line-height:1.6;animation:toast-in .18s ease-out}.toast svg{width:17px;height:17px}@keyframes toast-in{0%{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}.modal{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;margin:auto;color:var(--ink);background:var(--surface);border:1px solid #e2d9cf;border-radius:11px;box-shadow:0 24px 90px #30271c33;overflow:hidden}.modal[open]{display:flex;flex-direction:column}.modal::backdrop{background:#3c302b55;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 19px;border-bottom:1px solid var(--border);flex-shrink:0}.modal-header h2{font-family:var(--serif);color:var(--accent);font-weight:500;font-size:23px;line-height:1.45}.modal-header p{font-size:12px;color:var(--muted);line-height:1.6;margin-top:5px}.modal-body{padding:23px 24px;overflow-y:auto}.modal-body>p{color:#7d7165;font-size:13px;line-height:1.8}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:17px 24px;border-top:1px solid var(--border);background:#f8f5ef;flex-shrink:0}.modal form{display:flex;flex-direction:column;min-height:0}.modal-footer .spacer{flex:1}.modal-footer>.muted{margin-right:auto;font-size:11px}.wide-modal{width:min(620px,calc(100% - 32px))}.form-description{margin-bottom:20px;font-size:13px;line-height:1.8;color:#827364}.form-description+.form-field{margin-bottom:17px}.import-tools{display:flex;align-items:center;gap:8px;margin-top:13px}.assignment-summary{color:#8d7863;font-size:12px;margin-bottom:14px}.full-input{min-height:39px;width:100%;padding:10px 11px;border:1px solid #dcd4c9;border-radius:5px;background:#fffdf9;color:var(--ink);font-size:13px}.full-input::placeholder{color:#ac9d8f}.checkbox-label{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:12px;color:#8d7a67}.checkbox-label input{width:15px;height:15px;margin:0;accent-color:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.form-field{display:flex;flex-direction:column;gap:7px;min-width:0}.form-field.full,.form-field.wide{grid-column:1 / -1}.form-field label,label.form-field{font-size:13px;font-weight:500;color:#64594e}.form-field input,.form-field select,.form-field textarea,.assignment-select,.batch-textarea{width:100%;min-width:0;min-height:39px;padding:10px 11px;border:1px solid #dcd4c9;border-radius:5px;background:#fffdf9;color:var(--ink);line-height:1.5;font-size:13px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.assignment-select:focus,.batch-textarea:focus{border-color:#b7838e;box-shadow:0 0 0 2px #b7838e18}.form-field input::placeholder,.form-field textarea::placeholder,.batch-textarea::placeholder{color:#aaa197}.form-field textarea{resize:vertical;min-height:85px}.field-hint{color:#978778;font-size:11px;line-height:1.7;font-weight:400}.form-error{padding:10px 12px;margin:14px 0 0;border-radius:5px;color:#a23943;background:#f8e9e9;font-size:12px;line-height:1.7}.batch-textarea{display:block;margin-top:12px;min-height:200px;resize:vertical;line-height:1.8}.assign-list{display:flex;flex-direction:column;max-height:330px;overflow-y:auto;margin-top:14px}.assign-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #ece5dc;font-size:13px;cursor:pointer}.assign-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0}.assign-row .guest-info{flex:1}.assign-row>.button{margin-left:auto}.assign-row strong{font-size:13px;font-weight:500}.assign-row>div{min-width:0}.assignment-select{margin-top:15px}.backup-options{display:flex;flex-direction:column;gap:12px}.backup-options .button{width:100%;min-height:47px;justify-content:flex-start;padding-left:15px}.backup-options p{font-size:12px;line-height:1.8;color:#86796b}.backup-options input[type=file]{display:none}.backup-options+.field-hint{margin-top:18px;font-size:11px}.seat-editor{width:min(850px,calc(100% - 32px))}.seat-editor-layout{display:grid;grid-template-columns:420px minmax(0,1fr);gap:25px;align-items:center}.seat-map{position:relative;width:420px;max-width:100%;aspect-ratio:1;margin:auto}.seat-map-center{position:absolute;left:50%;top:50%;width:52%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #d8cbbc;border-radius:50%;background:#f3efe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:25px;text-align:center}.seat-map-center>svg{color:#b39c81;width:25px;height:25px}.seat-map-center>strong{font-family:var(--serif);color:var(--accent);font-size:24px;font-weight:500;line-height:1.5;overflow-wrap:anywhere}.seat-map-center>span{color:#8b7863;font-size:12px}.seat-map-center>small{max-width:140px;margin-top:4px;color:#a18b72;font-size:10px;line-height:1.7}.seat-chip{position:absolute;transform:translate(-50%,-50%);width:75px;min-height:45px;padding:4px;border:1px solid #d4c6b6;border-radius:6px;background:#fffefa;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#a08e7b;font-size:10px;line-height:1.5}.seat-chip>b{font-family:Georgia,serif;font-size:14px;font-weight:400;line-height:1.15}.seat-chip>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-chip.occupied{background:#e9eddf;border-color:#afbc9e;color:#5f6d52;cursor:grab}.seat-chip.occupied:active{cursor:grabbing}.seat-chip:hover{border-color:var(--accent);color:var(--accent)}.seat-chip.picked{background:var(--accent);border-color:var(--accent);color:#fff;outline:3px solid #dec8c7;outline-offset:2px}.seat-map:has(.seat-chip:nth-of-type(13)) .seat-chip{width:51px;min-height:36px;font-size:9px}.seat-map:has(.seat-chip:nth-of-type(13)) .seat-chip>b{font-size:11px}.seat-map .seat-chip.dense{width:25px;min-height:25px;height:25px;border-radius:50%;padding:2px}.seat-map:has(.seat-chip:nth-of-type(36)) .seat-chip{width:19px;min-height:21px;height:21px}.seat-person-list{max-height:420px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d6cbbf transparent;padding-right:3px}.seat-person-list>p{font-size:12px;line-height:1.9}.seat-person-row{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:12px;border-bottom:1px solid #eee4d9}.seat-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#829074;background:#eef0e8;border-radius:50%;font-size:11px;flex-shrink:0}.seat-person-row>span:not(.seat-number){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-person-row select{width:91px;min-width:0;flex-shrink:0;border:1px solid #ded3c7;border-radius:4px;background:#fcfaf6;padding:6px 3px;color:#8f7961;font-size:11px}.person-name-field{flex:1;min-width:0}.person-name-control{position:relative}.person-name-control input{display:block;width:100%;min-width:0;padding:7px 25px 7px 8px;border:1px solid #ddd3c7;border-radius:5px;background:#fffefa;color:var(--ink);font:inherit}.person-name-control input:hover{border-color:#b8a397}.person-name-control input:focus{outline:2px solid #d8b7bd;outline-offset:1px;border-color:var(--accent)}.person-name-control>svg{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#a8937d;pointer-events:none}.person-name-error{display:block;color:#a73845;margin-top:4px;font-size:10px;line-height:1.5}.guest-member-names{color:#657059;font-size:11px;line-height:1.6;margin-top:4px;overflow-wrap:anywhere}.list-view{padding:15px 22px 26px;flex:1;min-height:500px;overflow:auto}.list-view-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;color:#958371;font-size:12px;margin-bottom:22px}.muted{color:var(--muted)}.seating-list{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.seating-list th{color:#8b7e70;font-weight:500;font-size:11px;padding:9px 7px;background:#f3efe8;border-bottom:1px solid var(--border)}.seating-list td{padding:11px 7px;border-bottom:1px solid #eae3da;color:#65584b}.seating-list td:first-child{color:var(--ink)}.list-table-section{margin-bottom:22px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px;gap:12px}.section-heading h3{font-family:var(--serif);font-weight:500;color:var(--accent);font-size:18px}.section-heading span{font-size:12px;color:#90806f}.list-table-section>p{padding:16px 10px;border-top:1px solid var(--border);color:#a29282;font-size:12px}.print-view,.mobile-toggle{display:none}@media(min-width:1500px){.topbar{padding-left:40px;padding-right:40px}.intro{padding:27px 42px 31px;min-height:137px}.intro-copy h1{font-size:37px}.intro-copy p{font-size:16px}.workspace{grid-template-columns:310px minmax(400px,1fr) 310px;min-height:calc(100vh - 203px)}.guest-panel,.inspector{padding:21px}.canvas-toolbar{min-height:67px;padding:15px 23px}.tables-grid{gap:20px 20px}.inspector-meter{margin-top:29px}.inspector-list .empty-state{min-height:270px}.canvas-footer{min-height:80px}}@media(max-width:1190px){.workspace{grid-template-columns:250px minmax(340px,1fr) 250px}.topbar{padding-left:23px;padding-right:23px}.intro{padding:23px}.intro-copy h1{font-size:28px;letter-spacing:.5px}.intro-copy p{font-size:13px;letter-spacing:.5px}.stat{width:81px}.guest-panel,.inspector{padding-left:16px;padding-right:16px}.canvas-toolbar{padding-left:16px;padding-right:16px;gap:10px}.canvas-toolbar h2{font-size:15px}.view-tabs button{padding-left:9px;padding-right:9px}.canvas-toolbar .button{padding-left:10px;padding-right:10px}.tables-grid{column-gap:7px;row-gap:28px}.canvas-footer{gap:12px;padding:16px;flex-wrap:wrap}.canvas-footer>p,.canvas-footer>.canvas-hint{padding-left:0;border-left:0}}@media(max-width:1020px){.workspace{grid-template-columns:240px minmax(0,1fr)}.inspector{grid-column:1 / -1;border-left:0;border-top:1px solid var(--border);display:flex;padding:22px}.inspector-header{grid-column:1}.inspector-meter{grid-column:1;margin-top:14px}.inspector-list{grid-column:2;grid-row:1 / span 3;margin-top:0;padding-top:0;border:0;min-height:160px}.inspector-list .empty-state{min-height:160px;padding:6px 0}.inspector-list .empty-icon{width:48px;height:48px;margin-bottom:10px}.inspector-list .empty-icon svg{width:25px;height:25px}.inspector-list .empty-state h3{margin-bottom:4px}.inspector-tip{grid-column:1;margin-top:18px;padding:11px;font-size:11px}.inspector-actions{grid-column:1}.inspector>.assignment-button{grid-column:2}.inspector>.notice{grid-column:2}.guest-list{max-height:475px}.stats{gap:0}.stat{width:67px}.stat strong{font-size:31px}.intro-copy h1{font-size:25px}.intro-copy p{font-size:12px}.topbar{gap:15px}.brand{gap:10px}.brand-subtitle{font-size:12px;padding-left:12px}.header-actions{gap:7px}.header-actions .button{padding-left:11px;padding-right:11px;font-size:12px}.canvas-heading{gap:11px}}@media(max-width:720px){.topbar{padding:14px 18px;flex-wrap:wrap;gap:14px}.brand-name{font-size:25px}.brand-subtitle{font-size:13px}.rings,.rings svg{width:36px;height:30px}.header-actions{justify-content:flex-end;margin-left:auto}.header-actions .button{min-height:35px;padding:7px 10px}.intro{padding:19px 19px 22px;display:block}.intro-copy h1{font-size:26px;letter-spacing:.5px}.intro-copy p{margin-top:5px;font-size:12px;letter-spacing:.3px}.stats{margin-top:19px;width:100%}.intro-right{align-items:stretch;gap:10px}.intro-right .save-status{justify-content:center;margin:0;font-size:10px}.stat{flex:1;width:auto;gap:1px}.stat strong{font-size:29px}.stat span{font-size:12px}.workspace{display:flex;flex-direction:column;min-height:0}.guest-panel{padding:17px 18px;border-right:0;border-bottom:1px solid var(--border)}.panel-heading{margin-bottom:13px}.panel-heading h2,.canvas-toolbar h2{font-size:16px}.search-box{min-height:38px}.filter-tabs{margin-top:11px}.filter-tabs button{padding:8px 6px}.guest-list{min-height:0;max-height:255px;margin-top:13px}.guest-list>.empty-state{padding:13px 5px 6px;display:grid;grid-template-columns:48px minmax(0,1fr);text-align:left;justify-items:start;column-gap:14px}.guest-list>.empty-state .empty-icon{width:48px;height:48px;margin:0;grid-row:1 / span 2}.guest-list>.empty-state .empty-icon svg{width:26px;height:26px}.guest-list>.empty-state h3{font-size:14px;margin-bottom:4px}.guest-list>.empty-state p{font-size:11px;max-width:none}.guest-list>.empty-state p br{display:none}.guest-list>.empty-state>.button{margin-top:11px;min-width:0;width:100%;grid-column:1 / -1}.guest-list>.empty-state>.button+.button{margin-top:7px}.guest-list>.empty-state .empty-actions{grid-column:1 / -1;width:100%;flex-direction:row;margin-top:15px}.guest-list>.empty-state .empty-actions .button{flex:1}.guest-row{padding:10px 0;min-height:60px}.guest-avatar{width:32px;height:32px}.row-actions .icon-button{width:31px;height:31px}.panel-bottom{margin-top:12px;padding-top:12px}.canvas-toolbar{padding:15px 18px;gap:11px;min-height:65px}.canvas-heading{gap:10px}.canvas-heading .view-tabs svg{display:none}.canvas-toolbar>.button{font-size:12px;min-height:32px;padding:6px 9px}.view-tabs button{font-size:11px;padding:6px 9px}.tables-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:19px;max-width:490px;margin:auto}.canvas-footer{padding:15px 21px 18px;gap:10px;min-height:0}.canvas-footer>p,.canvas-footer>.canvas-hint{font-size:10px}.legend{gap:13px;font-size:11px}.legend i{width:13px;height:13px}.inspector{padding:21px 19px;display:flex;gap:0}.inspector-header h2{font-size:26px}.inspector-meter{margin-top:18px}.inspector-meter>p,.inspector-meter>.meter-number{font-size:31px}.inspector-meter strong{font-size:42px}.inspector-list{min-height:200px;border:0;margin-top:0;padding-top:0}.inspector-list .empty-state{min-height:177px}.inspector-list .empty-icon{width:56px;height:56px;margin:10px auto 12px}.inspector-list .empty-state p{font-size:12px}.inspector-tip{margin-top:18px;font-size:12px;padding:13px}.inspector-actions{padding-top:12px}.assignment-button{margin-top:11px}.list-view{padding:10px 17px 22px;min-height:300px}.seating-list td{padding:9px 5px}.seating-list th{padding:8px 5px}.modal{width:calc(100% - 26px);max-height:calc(100dvh - 32px)}.modal-header{padding:18px 19px 16px}.modal-header h2{font-size:21px}.modal-body{padding:19px}.modal-footer{padding:15px 19px}.form-grid{gap:16px 12px}.form-field input,.form-field select,.form-field textarea{font-size:16px}.seat-editor-layout{grid-template-columns:minmax(0,1fr);gap:15px}.seat-person-list{max-height:250px;padding-right:0}.seat-person-row{font-size:13px;padding:11px 0}.seat-person-row select{width:140px;font-size:13px;min-height:35px}.seat-chip{width:62px;min-height:40px;font-size:9px}.seat-chip>b{font-size:12px}.seat-map-center{padding:16px;gap:6px}.seat-map-center>strong{font-size:21px}.seat-map-center>svg{width:21px;height:21px}.seat-map-center>small{font-size:9px}.seat-editor .modal-body{padding:19px 15px}.seat-map:has(.seat-chip:nth-of-type(13)) .seat-chip{width:40px;min-height:31px;font-size:8px}.seat-map .seat-chip.dense{width:21px;min-height:21px;height:21px}.seat-map:has(.seat-chip:nth-of-type(36)) .seat-chip{width:16px;min-height:18px;height:18px;font-size:8px}.toast{bottom:18px;font-size:12px;padding:11px 15px}}@media(max-width:390px){.header-actions{margin-left:0;width:100%;justify-content:space-between}.header-actions .button{flex:1;font-size:11px;padding-left:8px;padding-right:8px;gap:5px}.header-actions .button svg{width:15px;height:15px}.intro-copy h1{font-size:23px;letter-spacing:0}.intro-copy p{font-size:11px}.canvas-toolbar{gap:8px;padding-left:15px;padding-right:15px}.canvas-toolbar h2{font-size:14px}.canvas-heading{gap:8px}.view-tabs button{padding-left:7px;padding-right:7px}.canvas-toolbar>.button{font-size:11px;gap:4px;padding-left:7px;padding-right:7px}.tables-grid{column-gap:11px}.form-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{@page{size:A4;margin:16mm}body{background:#fff;color:#000;font-size:11pt}.app-shell,.modal,.toast{display:none!important}.print-view{display:block!important}.print-view h1{font-family:var(--serif);font-size:23pt;font-weight:500;margin-bottom:5mm}.print-view>p{font-size:10pt;color:#555;margin-bottom:7mm}.print-view section{break-inside:avoid;margin-bottom:7mm}.print-view h2{font-size:15pt;margin-bottom:3mm}.print-view table{width:100%;border-collapse:collapse;text-align:left}.print-view th,.print-view td{padding:2.5mm 2mm;border-bottom:1px solid #ccc;font-size:10pt}.print-view th{color:#555;font-weight:500}}.canvas-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.canvas-toolbar{flex-wrap:wrap;gap:8px}.canvas-expanded{position:fixed;top:14px;right:14px;bottom:14px;left:14px;z-index:60;border:1px solid var(--border);border-radius:12px;background:var(--bg,#faf9f6);box-shadow:0 0 0 40px #34312cc2,0 12px 60px #34312c40;overflow:hidden}.canvas-expanded .room-viewport,.canvas-expanded .list-view{min-height:0}.canvas-expanded .canvas-toolbar,.canvas-expanded .canvas-footer{flex-shrink:0}.toast{z-index:80}.canvas-expanded .canvas-toolbar{padding:16px 24px}.canvas-expanded .room-frame{margin:0 auto}.room-label{position:absolute;left:30px;top:16px;font-size:18px;color:#8a7560;white-space:pre-line;line-height:1.7;pointer-events:none}.room-item{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid #cbb9ac;background:#ede5da;color:#77514c;border-radius:3px;padding:0;text-align:center;font:inherit;z-index:1}.room-item strong{font-family:var(--serif);font-size:25px;font-weight:500}.room-item span{font-size:21px}.room-item.movable{cursor:grab;touch-action:none}.room-item.movable:active{cursor:grabbing}.room-item-runway,.room-item-handover{background:#8a424b;color:#fff1dc;border-color:#74333e}.room-item-runway{gap:26px}.room-item-fixed-stage{color:#999790;background:#eeede7;border-color:#e0dbd1}.room-item-fixed-stage strong{writing-mode:vertical-rl;font-family:var(--serif);font-size:35px;letter-spacing:15px}.room-item-entrance{background:#dcded4;color:#676f61;border:0;border-radius:1px}.room-item-entrance strong{font-size:20px}.room-item-outline{border:9px solid #b7aa9766;background:transparent;pointer-events:none;z-index:0}.room-item-wall{background:#e0ddd6;border:0;pointer-events:none;z-index:0}.reference-layout{background-color:#f5f1e9}.reference-layout .stage{z-index:2;background:#7d343d;color:#fff1dc;border-radius:3px;border:1px solid #702c36}.stage-label{display:flex;flex-direction:column;gap:8px;align-items:center}.stage-label strong{font:inherit;font-weight:500}.stage-label small{font-size:23px;font-family:var(--serif)}.reference-layout .stage-label strong{font-family:var(--serif);font-size:32px}.reference-layout .table-place{z-index:3}.reference-layout .table-circle{background:#faf7ef;border-width:3px}.reference-layout .table-name{font-size:39px;font-weight:600;line-height:1.1}.reference-layout .table-count{font-size:26px}.reference-layout .chair{border-width:2px;font-size:0}.reference-layout .table-drag-hint{display:none}.reference-layout .table-place.selected .table-circle{border-width:3px;outline-width:3px;outline-offset:6px}@media(max-width:600px){.canvas-expanded{top:4px;right:4px;bottom:4px;left:4px}.canvas-tools .button{font-size:11px;padding:7px}.canvas-heading{flex-wrap:wrap}.canvas-footer .canvas-hint{display:none}}.table-subtitle{font-size:17px;color:#7a845e;line-height:1.4}.reference-layout .table-subtitle{font-size:24px;font-weight:600}.table-assignment-note{color:#927652;font-size:11px;line-height:1.6;padding:8px 0 12px}.seat-names-toggle{display:flex;align-items:center;gap:6px;color:#786a5d;font-size:12px;white-space:nowrap;cursor:pointer}.seat-names-toggle input{accent-color:var(--accent);width:14px;height:14px}.show-seat-names .table-circle{width:100px;height:100px}.show-seat-names .table-name{font-size:28px;line-height:1.2;padding:0 4px}.show-seat-names .table-count{font-size:16px;line-height:1.5}.show-seat-names .table-subtitle{font-size:15px}.show-seat-names .table-drag-hint{display:none}.seat-name-tag{position:absolute;width:92px;min-height:32px;padding:3px 4px;border:1px solid #b4bca8;border-radius:5px;background:#e8ecdf;color:#394135;font-family:var(--sans);font-weight:500;line-height:1.15;overflow-wrap:anywhere;text-align:center;cursor:pointer}.seat-name-tag.empty{background:#fcfaf5;color:#918778;border-style:dashed}.seat-name-tag:hover,.seat-name-tag:focus-visible{background:#e6cdd0;color:#71333e;outline:2px solid var(--accent);outline-offset:2px;z-index:5}.mobile-table-controls{display:none}body:has(dialog[open]),body:has(.canvas-expanded){overflow:hidden}.modal-body{min-height:0;overscroll-behavior:contain}@media(max-width:720px){.mobile-table-controls{display:flex;align-items:center;gap:8px;padding:0 18px 12px;flex-shrink:0}.mobile-table-controls select{flex:1;min-width:0;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:16px}.mobile-table-controls .button{min-height:44px;font-size:13px;padding:8px 10px}.canvas-expanded .canvas-toolbar{padding:12px}.canvas-expanded .mobile-table-controls{padding:0 12px 10px}.canvas-expanded .canvas-footer{padding:10px 12px}.seat-names-toggle{min-height:40px}.canvas-footer .icon-button{min-width:44px;min-height:44px}.canvas-footer .zoom-value{min-height:44px}.seat-person-list{max-height:none;overflow:visible}.seat-person-row{gap:8px;padding:9px 0}.seat-person-row select{width:108px;min-height:44px;font-size:16px}.person-name-control input{min-height:44px;font-size:16px}.seat-chip{width:clamp(48px,16vw,62px);min-height:44px}.seat-chip.compact{width:clamp(32px,11vw,48px);min-height:36px;font-size:9px}.seat-chip.compact>b{font-size:11px}.search-box input,.group-filter,.full-input,.assign-row select{font-size:16px}.modal-footer .button,.modal-header .icon-button{min-height:44px}.modal-header .icon-button{min-width:44px}}
