@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap";:root{--paper:#f7f5ef;--ink:#253e34;--muted:#7b8076;--line:#dedfd5;--terra:#b96545;--white:#fffefb}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,Arial,sans-serif;font-size:14px}button,input,textarea{font:inherit}button{cursor:pointer;transition:background .15s,box-shadow .15s}button:disabled{opacity:.4;cursor:not-allowed}:is(button:focus-visible,input:focus-visible,textarea:focus-visible,g:focus-visible){outline-offset:3px;outline:3px solid #b96545}button,a{touch-action:manipulation}header{border-bottom:1px solid var(--line);background:var(--white);align-items:center;gap:14px;height:90px;padding:0 38px;display:flex}.brand{color:var(--ink);letter-spacing:-5px;padding-right:10px;font-family:Libre Caslon Display,Georgia,serif;font-size:38px;text-decoration:none}.brand span{color:var(--terra);padding:0 4px;font-size:24px}.brand-caption{border-left:1px solid var(--line);letter-spacing:2px;padding-left:20px;font-size:9px;line-height:2}.brand-caption b{letter-spacing:.2px;font-size:12px;font-weight:500}.header-spacer{flex:1}button{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:6px;padding:11px 16px;font-size:12px;font-weight:600}.quiet{background:0 0}.dark,.green{background:var(--ink);border-color:var(--ink);color:#fff}.intro{justify-content:space-between;align-items:center;gap:25px;padding:36px 38px 28px;display:flex}.eyebrow{letter-spacing:2px;color:#8b6b50;font-size:10px;font-weight:600}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;margin:8px 0 12px;font-family:Libre Caslon Display,Georgia,serif;font-size:57px;font-weight:400;line-height:1.15}h1 i{color:var(--terra);font-weight:400}.intro p{color:var(--muted);font-size:13px}.summary{gap:34px;display:flex}.summary>div{flex-direction:column;gap:6px;display:flex}.summary strong{font-family:Libre Caslon Display,Georgia,serif;font-size:40px;font-weight:400}.summary small{color:var(--muted);margin-left:3px;font:14px DM Sans,Arial}.summary span{color:var(--muted);font-size:11px}.savebar{border:1px solid var(--line);background:#eeefe7;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin:0 38px 28px;padding:9px 14px;font-size:12px;display:flex}.savebar>div{align-items:center;gap:8px;display:flex}.savebar small{color:var(--muted)}.dot{background:#547e60;border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.dot.amber{background:var(--terra)}.link{color:#536959;text-underline-offset:4px;background:0 0;border:0;padding:8px;font-size:11px;text-decoration:underline}.warning{color:#a74c2a!important}.notice{color:#754d30;background:#f6e8d8;border:1px solid #dfc8ad;border-radius:6px;margin:12px 38px;padding:14px;font-size:12px;line-height:1.5}.notice a{color:inherit}.notice.small{margin:8px 0}main{grid-template-columns:minmax(0,1.65fr) minmax(330px,1fr);align-items:start;gap:28px;padding:0 38px 35px;display:grid}.overview,.detail{background:var(--white);border:1px solid var(--line);border-radius:10px;min-width:0;padding:23px}.section-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}h2{margin-top:6px;font-family:Libre Caslon Display,Georgia,serif;font-size:34px;font-weight:400}.pill{white-space:nowrap;color:#657462;background:#efefe7;border-radius:20px;padding:7px 10px;font-size:10px}.hint{color:var(--muted);margin:9px 0 18px;font-size:12px}.floor{border-radius:5px;line-height:0;position:relative;overflow:hidden}.floor img{width:100%;height:auto;display:block}.table-hit{background:#fffdf5ee;border:1px solid #eff0d9;border-radius:50%;width:28px;height:28px;padding:0;font-size:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0003}.table-hit.active{background:var(--terra);color:#fff;border:2px solid #fff;box-shadow:0 0 0 3px #b9654555}.table-hit.checked{background:var(--ink);color:#fff}.legend{color:var(--muted);flex-wrap:wrap;gap:15px;margin:14px 0 28px;font-size:9px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend span:last-child{margin-left:auto}.legend-dot{border:1px solid var(--ink);border-radius:50%;width:7px;height:7px}.legend-dot.filled{background:var(--ink)}.table-list-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}h3{font-size:13px}.table-list-head input{border:1px solid var(--line);background:var(--paper);border-radius:5px;width:220px;padding:9px 12px;font-size:11px}.table-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.table-card{text-align:left;background:var(--white);border-radius:5px;padding:11px 10px;font-weight:400}.table-card span{color:var(--muted);font-size:10px;display:block}.table-card strong{margin:6px 0;font-size:20px;font-weight:500;display:block}.table-card small{color:var(--muted);font-size:10px;font-weight:400}.table-card.selected{border-color:var(--terra);background:#fbf2eb}.progress{background:#e5e6dc;border-radius:5px;height:3px;overflow:hidden}.progress i{background:#57705e;height:100%;display:block}.note{background:#f3f3eb;border-radius:6px;margin-top:22px;padding:16px;font-size:11px;line-height:1.6}.note p{color:var(--muted);margin-top:6px}.footer-tools{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:15px;font-size:9px;display:flex}.table-map{background:#aaa;width:100%;height:auto;max-height:320px;display:block}.seat-pin{cursor:pointer}.detail-image{border-radius:6px;overflow:hidden}.detail-image.adjusting{outline:3px solid var(--terra);cursor:crosshair}.map-tools{color:var(--muted);justify-content:space-between;align-items:center;margin-top:3px;font-size:10px;display:flex}.list-toolbar{justify-content:space-between;align-items:center;margin:16px 0 10px;font-size:12px;display:flex}.seat-list{border-top:1px solid var(--line)}.seat-row{border-bottom:1px solid #edeee6;align-items:flex-start;gap:12px;padding:11px 8px;display:flex}.seat-row.selected{border-left:2px solid var(--terra);background:#f6f3ea;padding-left:6px}.seat-number{background:#edeee5;border-radius:50%;flex-shrink:0;width:28px;height:28px;margin-top:4px;padding:0;font-size:10px}.seat-row>div{flex:1;min-width:0}.seat-row input{width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #0000;padding:3px 2px;font-size:12px;display:block}.seat-row input:focus{border-color:var(--terra);outline:none}.seat-row input::placeholder{color:#92978c}.seat-row input.gift-input{color:#7f8175;margin-top:3px;font-size:10px}.seat-row small{font-size:9px}.review{align-items:flex-start;gap:10px;margin:20px 0;font-size:12px;line-height:1.4;display:flex}.review input{accent-color:var(--ink)}.review small{color:var(--muted);margin-top:4px;font-size:10px;display:block}.print-table{background:#f0f1e9;width:100%}.paste{background:#eeefe7;padding:12px;font-size:11px;line-height:1.5}.paste textarea{border:1px solid var(--line);border-radius:4px;width:100%;margin:8px 0;padding:9px}.paste button{font-size:10px}footer{border-top:1px solid var(--line);gap:15px;margin:0 38px;padding:22px 0;font-family:Georgia,serif;font-size:18px;display:flex}footer span{color:var(--muted);align-self:center;font:10px DM Sans,Arial}footer span:last-child{margin-left:auto}.print-only{display:none}@media (min-width:1600px){.app-shell{max-width:1600px;margin:auto}.table-map{max-height:370px}}@media (max-width:1000px){.summary{gap:18px}.intro{padding:26px 22px}header{padding:0 22px}main{grid-template-columns:minmax(0,1.2fr) minmax(310px,1fr);gap:16px;padding:0 22px 28px}.overview,.detail{padding:17px}.savebar{margin:0 22px 20px}.table-grid{grid-template-columns:repeat(4,1fr)}h1{font-size:45px}.summary strong{font-size:30px}.summary span{font-size:9px}.table-hit{width:22px;height:22px;font-size:10px}}@media (max-width:760px){header{gap:7px;height:74px;padding:0 15px}.brand-caption{display:none}header button{padding:9px;font-size:10px}.intro{padding:25px 17px;display:block}h1{font-size:46px}.summary{gap:35px;margin-top:22px}.summary strong{font-size:34px}.savebar{flex-wrap:wrap;margin:0 14px 16px}.savebar>div:last-child{margin-left:auto}main{grid-template-columns:1fr;padding:0 14px 25px}.table-grid{grid-template-columns:repeat(5,1fr)}.table-card{padding:8px}.table-map{max-height:380px}.detail{scroll-margin-top:10px}.notice{margin:10px 14px}footer{flex-wrap:wrap;margin:0 14px}footer span:last-child{margin:0}.legend{gap:8px}.table-list-head input{width:190px}.brand{font-size:34px}.table-hit{width:24px;height:24px}}@media print{@page{size:A4 portrait;margin:12mm}.no-print{display:none!important}body{color:#111;background:#fff;font-family:Arial,sans-serif}.print-only{display:block}.print-overview{break-after:page}.print-overview img{width:100%;margin:20px 0;display:block}.print-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.print-title h1{letter-spacing:0;margin:0 0 8px;font:28px Georgia,serif}.print-title b{font-size:10px}.print-only p{margin:5px 0 12px;font-size:10px;line-height:1.5}.print-table-page{break-before:page}.print-table-page:first-child{break-before:auto}.print-map{width:80%;max-width:400px;margin:10px auto}.print-map .table-map{max-height:220px}.print-map svg{-webkit-print-color-adjust:exact;print-color-adjust:exact}.orientation{text-align:center;font-weight:700}.print-only table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:10px}.print-only th,.print-only td{text-align:left;overflow-wrap:anywhere;vertical-align:top;border:1px solid #999;padding:6px}.print-only th:first-child{width:12%}.print-only th:nth-child(2){width:40%}.print-only tr{break-inside:avoid}.print-only thead{display:table-header-group}.print-footer{border-top:1px solid #999;margin-top:12px;padding-top:8px;font-size:9px}}[hidden]{display:none!important}.print-controls{border-bottom:1px solid var(--line);background:var(--white);flex-wrap:wrap;align-items:center;gap:15px;padding:20px 25px;display:flex}.print-controls span{flex:1;font-size:12px}.print-controls small{width:100%;color:var(--muted);font-size:11px}.preview-visible{color:#222;background:#fff;max-width:800px;margin:25px auto;padding:30px;display:block}.preview-visible .print-title{justify-content:space-between;align-items:center;gap:15px;display:flex}.preview-visible h1{font-size:30px}.preview-visible p{margin:10px 0;font-size:11px;line-height:1.5}.preview-visible img{width:100%}.preview-visible .print-map{max-width:340px;margin:20px auto}.preview-visible .print-table-page{border-top:1px solid #aaa;margin-top:25px;padding-top:25px}.preview-visible table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:11px}.preview-visible td,.preview-visible th{text-align:left;overflow-wrap:anywhere;border:1px solid #aaa;padding:8px}.preview-visible th:first-child{width:12%}.preview-visible .print-footer{margin-top:12px;font-size:10px}.preview-visible .print-title b{font-size:10px}@media print{.preview-visible{max-width:none;margin:0;padding:0}.preview-visible .print-table-page{border:0;margin:0;padding:0}.preview-visible td,.preview-visible th{padding:6px}.preview-visible .print-map{max-width:400px;margin:10px auto}.preview-visible h1{font-size:28px}}.banquet-summary{color:#52654f;flex-wrap:wrap;align-items:center;gap:24px;margin:-8px 38px 25px;font-size:12px;display:flex}.banquet-summary b{color:var(--ink)}.banquet-badge{border:1px solid #d7dfd5;border-radius:4px;margin-top:8px;padding:6px 8px;font-size:9px;font-weight:700;line-height:1.4;display:inline-block}.banquet-badge.no-gift{color:#8d3b24;background:#fff1e6;border:2px solid #bd6748}.banquet-badge.with-gift{color:#496247;background:#edf1e8}.guest-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.guest-actions label{color:var(--muted);align-items:center;gap:5px;font-size:10px;display:flex}.seat-row .guest-actions input{width:auto;accent-color:var(--terra);margin:0;display:inline-block}.move-panel{background:#eef1e7;border:1px solid #cad3c4;border-radius:6px;margin:12px 0;padding:15px;font-size:12px;line-height:1.5}.move-panel b,.move-panel label{margin-bottom:9px;display:block}.move-panel select{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:4px;padding:10px;display:block}.move-panel p{color:var(--muted);margin:10px 0;font-size:11px}.print-no-gift{border:2px solid #111;padding:5px;font-size:10px;display:block}.print-gift-summary{border:1px solid #aaa;padding:10px}.preview-visible .print-no-gift{color:#8d3b24;background:#fff1e6;border-color:#8d3b24}.print-only td strong,.preview-visible .print-no-gift{font-size:9px}@media (max-width:760px){.banquet-summary{gap:12px;margin:0 17px 20px}}@media print{.print-no-gift,.preview-visible .print-no-gift{color:#000;background:#fff;border:2px solid #000;padding:3px}.print-only td strong{font-size:9px}.print-gift-summary{padding:6px}}.monogram{aspect-ratio:666/526;mix-blend-mode:multiply;flex-shrink:0;width:64px;height:auto;display:block}.brand{letter-spacing:0;align-items:center;padding-right:5px;line-height:1;display:flex}.footer-monogram{align-self:center;width:31px}.print-title .print-monogram{width:52px;margin-right:4px}.print-title h1{flex:1}.preview-visible .print-title{gap:15px}@media (max-width:760px){.brand .monogram{width:47px}}@media print{.print-title .print-monogram{-webkit-print-color-adjust:exact;print-color-adjust:exact;width:45px;height:36px;margin-bottom:7px}}.login-page{background:radial-gradient(ellipse at 5% 10%,#e6e9de88,transparent 50%),radial-gradient(ellipse at 95% 95%,#eadacb66,transparent 50%),var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;padding:40px 20px;display:flex}.login-card{border:1px solid var(--line);background:var(--white);text-align:center;border-radius:14px;width:100%;max-width:450px;padding:35px 44px;box-shadow:0 18px 60px #253e3408}.login-monogram{width:76px;margin:0 auto 22px}.login-card h1{margin:18px 0;font-size:50px;line-height:1.08}.login-intro{color:var(--muted);font-size:13px;line-height:1.6}.lock-label{color:#627158;justify-content:center;align-items:center;gap:6px;margin:24px 0 20px;font-size:11px;display:flex}.login-card form{text-align:left}.login-card form label{margin:15px 0 7px;font-size:12px;font-weight:600;display:block}.login-card input{width:100%;color:var(--ink);background:#fcfcf8;border:1px solid #d3d8cb;border-radius:6px;padding:12px;font-size:16px;display:block}.password-field{position:relative}.password-field input{padding-right:64px}.password-field button{position:absolute;top:5px;right:5px}.login-submit{width:100%;margin-top:22px;padding:14px;font-size:13px;display:block}.login-error{color:#943d29;background:#fff1e6;border-radius:4px;margin-top:14px;padding:12px;font-size:12px;line-height:1.5}.login-help{color:var(--muted);margin-top:23px;font-size:10px;line-height:1.5}.login-footer{color:#8d8b7f;font-family:Georgia,serif;font-size:14px;font-style:italic}@media (max-width:480px){.login-card{padding:28px 26px}.login-page{padding:20px 14px}.login-card h1{font-size:46px}header{flex-wrap:wrap;height:auto;min-height:74px;padding-top:10px;padding-bottom:10px}}
