:root{--bg:#fbf7f0;--paper:#fffdf8;--ink:#342b26;--muted:#756960;--rose:#b86173;--rose-dark:#85485b;--sage:#667a5a;--gold:#b48b45;--line:rgba(52,43,38,0.14);--shadow:0 22px 70px rgba(62,45,37,0.14);--font-serif:"Iowan Old Style","Palatino Linotype",Georgia,serif;--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--font-sans),system-ui,sans-serif;background:radial-gradient(circle at 8% 12%,rgba(184,97,115,.16),transparent 30%),radial-gradient(circle at 88% 8%,rgba(102,122,90,.16),transparent 28%),linear-gradient(135deg,#fffaf2,#f8efe6 48%,#f5f0e8)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell,.login-shell{min-height:100vh}.login-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px)}.login-hero{position:relative;display:flex;align-items:flex-end;min-height:100vh;padding:56px;overflow:hidden;background:linear-gradient(rgba(46,35,31,.16),rgba(46,35,31,.56)),url(/paula-floral.svg) 50% /cover no-repeat,#8d5a62;color:white}.hero h1,.login-hero h1,.page-title h1{margin:0;font-family:var(--font-serif),Georgia,serif;font-size:clamp(3.4rem,8vw,7.2rem);line-height:.9;letter-spacing:0}.login-panel{display:grid;align-content:center;padding:48px;background:rgba(255,253,248,.94);border-left:1px solid rgba(255,255,255,.62)}.auth-box,.item-card,.message-card,.panel,.table-form{background:rgba(255,253,248,.86);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.auth-box{padding:32px}.eyebrow{color:var(--rose-dark);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.muted{color:var(--muted)}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:18px;justify-content:space-between;padding:14px clamp(18px,4vw,42px);background:rgba(255,253,248,.9);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand,.nav{display:flex;align-items:center}.brand{gap:10px;font-family:var(--font-serif),Georgia,serif;font-size:1.35rem;font-weight:700}.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ghost-button,.nav a,.nav-menu summary{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 11px;border:1px solid transparent;border-radius:8px;color:var(--muted);background:transparent;cursor:pointer}.ghost-button:hover,.nav a:hover,.nav-menu summary:hover{border-color:var(--line);color:var(--ink);background:rgba(255,255,255,.62)}.nav-menu{position:relative}.nav-menu summary{list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:30;display:grid;min-width:230px;max-height:min(70vh,560px);overflow:auto;padding:8px;border:1px solid var(--line);border-radius:8px;background:rgba(255,253,248,.98);box-shadow:var(--shadow)}.nav-menu-list a{justify-content:flex-start;width:100%}.user-badge{display:inline-flex;align-items:center;min-height:38px;padding:8px 12px;border:1px solid rgba(180,139,69,.34);border-radius:8px;background:rgba(180,139,69,.12);color:var(--ink);font-weight:700;white-space:nowrap}.main{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:30px 0 70px}.hero{position:relative;min-height:520px;display:flex;align-items:flex-end;padding:clamp(30px,6vw,64px);overflow:hidden;border-radius:0 0 8px 8px;background:linear-gradient(90deg,rgba(48,37,32,.72),rgba(48,37,32,.26)),url(/paula-floral.svg) 50% /cover no-repeat;color:white}.hero p{max-width:620px;font-size:1.18rem}.page-title{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:flex-end;margin:10px 0 24px}.page-title h1{font-size:clamp(2.4rem,7vw,5.2rem);color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:18px;gap:18px}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,430px);grid-gap:22px;gap:22px}.item-card,.message-card,.panel,.table-form{padding:22px}.stat{display:grid;grid-gap:8px;gap:8px;padding:20px;border-left:4px solid var(--gold);background:rgba(255,255,255,.54)}.stat strong{font-size:1.35rem;font-family:var(--font-serif),Georgia,serif}.form{display:grid;grid-gap:14px;gap:14px}.field{display:grid;grid-gap:6px;gap:6px}.field span,.label{font-weight:700;color:var(--ink)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:white;color:var(--ink)}textarea{min-height:120px;resize:vertical}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:0;border-radius:8px;padding:10px 15px;background:var(--rose-dark);color:white;font-weight:700;cursor:pointer}.button.secondary{background:var(--sage)}.button.danger{background:#8a3c37}.button.small{min-height:34px;padding:7px 11px;font-size:.86rem}.button:disabled{opacity:.56;cursor:wait}.error,.success,.warning{padding:12px 14px;border-radius:8px;border:1px solid}.success{color:#315a35;background:#edf7eb;border-color:#b9d9b8}.warning{color:#7a4a00;background:#fff4d8;border-color:#e5c274}.error{color:#862f38;background:#fdecee;border-color:#dfa6ae}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:18px;gap:18px}.photo{overflow:hidden;border-radius:8px;background:white;border:1px solid var(--line)}.photo-button{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in}.photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.photo figcaption{padding:12px 14px;font-weight:700}.lightbox{position:fixed;inset:0;z-index:60;display:grid;place-items:center;grid-gap:14px;gap:14px;padding:28px;background:rgba(31,25,22,.88);color:white;overflow:auto}.lightbox-content{width:min(1100px,94vw);display:grid;grid-gap:14px;gap:14px;justify-items:center}.lightbox img{max-width:100%;max-height:62vh;object-fit:contain;border-radius:8px;box-shadow:0 24px 90px rgba(0,0,0,.4)}.lightbox-comments{width:min(760px,100%);display:grid;grid-gap:12px;gap:12px;padding:18px;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:rgba(255,253,248,.96);color:var(--ink)}.lightbox-comment-list{display:grid;grid-gap:10px;gap:10px;max-height:220px;overflow:auto}.lightbox-comment{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:white}.lightbox-close{position:fixed;top:18px;right:18px;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.42);border-radius:999px;color:white;background:rgba(0,0,0,.2);cursor:pointer}.admin-list{display:grid;grid-gap:12px;gap:12px}.inline-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.compact-actions{margin-top:12px}.compact-person-row{gap:12px}.seating-layout{display:grid;grid-gap:22px;gap:22px}.conflict-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:10px;gap:10px}.conflict-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:8px;background:white}.conflict-toggle,.room{border:1px solid var(--line)}.room{position:relative;min-height:820px;height:78vh;overflow:auto;border-radius:8px;background:linear-gradient(90deg,rgba(52,43,38,.06) 1px,transparent 0),linear-gradient(rgba(52,43,38,.06) 1px,transparent 0),rgba(255,255,255,.64);background-size:42px 42px}.room:before{content:"";display:block;width:1560px;height:1220px}.table-node{position:absolute;width:330px;height:260px;transform-origin:center;z-index:2}.table-node.dragging{z-index:5}.table-core{position:absolute;inset:74px 66px;display:grid;place-items:center;text-align:center;border:2px solid rgba(102,122,90,.44);background:rgba(255,253,248,.92);box-shadow:0 16px 34px rgba(52,43,38,.12)}.table-core.round{border-radius:999px}.table-core.oval{border-radius:50%}.table-controls,.table-core.rectangle{border-radius:8px}.table-controls{position:absolute;left:50%;top:-48px;transform:translateX(-50%);z-index:4;display:flex;gap:5px;align-items:center;padding:5px;border:1px solid var(--line);background:rgba(255,253,248,.94);box-shadow:0 8px 22px rgba(52,43,38,.14)}.table-controls button{min-height:30px;border:1px solid var(--line);border-radius:7px;padding:5px 8px;background:white;color:var(--ink);font-size:.75rem;cursor:pointer;white-space:nowrap}.table-controls .table-move{background:var(--sage);color:white;cursor:-webkit-grab;cursor:grab}.table-node.dragging .table-move{cursor:-webkit-grabbing;cursor:grabbing}.seat{width:76px;min-height:52px;transform:translate(-50%,-50%);place-items:center;padding:6px;border:1px solid rgba(133,72,91,.34);border-radius:8px;background:white;color:var(--ink);font-size:.78rem;text-align:center;cursor:pointer}.seat,.seat-grip{position:absolute;display:grid}.seat-grip{left:50%;top:-18px;transform:translateX(-50%);min-width:38px;min-height:18px;place-items:center;border:1px solid rgba(102,122,90,.38);border-radius:999px;background:rgba(255,253,248,.96);color:var(--sage);font-size:.62rem;font-weight:800;cursor:-webkit-grab;cursor:grab}.seat-grip:active{cursor:-webkit-grabbing;cursor:grabbing}.seat.empty{color:var(--muted);border-style:dashed}.seat.drop-target,.seat:hover{border-color:var(--rose-dark);box-shadow:0 0 0 3px rgba(184,97,115,.18)}.person-pool{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;align-content:start}.person-pool .error,.person-pool .eyebrow,.person-pool .muted,.person-pool .planner-status,.person-pool .success,.person-pool .warning,.person-pool h2{grid-column:1/-1}.planner-status{min-height:34px;display:flex;align-items:center;padding:0 2px;font-weight:700}.planner-status-success{color:#315a35}.planner-status-error{color:#862f38}.room-panel{padding:18px}.person-chip{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:white;cursor:-webkit-grab;cursor:grab}.seat-label{display:block;transform-origin:center}.person-chip.seated{opacity:.52}@media (max-width:840px){.login-shell,.two-col{grid-template-columns:1fr}.login-hero{min-height:420px}.nav{align-items:flex-start;flex-direction:column}.nav-links,.nav-menu,.nav-menu-list{width:100%}.nav-menu-list{position:static;margin-top:8px}.hero{min-height:440px}.room{min-height:560px}.person-pool{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:540px){.person-pool{grid-template-columns:1fr}}