:root{color-scheme:light;font-family:Segoe UI,ui-sans-serif,system-ui,-apple-system,Roboto,sans-serif;line-height:1.5;--rose: #e8a0b4;--rose-dark: #c97a92;--gold: #d4a853;--gold-light: #f0d68a;--blush: #fce4ec;--cream: #fdf6ee;--sage: #a8bfa0;--sage-dark: #7a9a6e;--charcoal: #2c2c2c;--white: #ffffff;--gray-light: #f5f0eb;--gray-mid: #c4b8a8;--shadow: 0 2px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 32px rgba(0,0,0,.12)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:var(--cream);color:var(--charcoal)}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,var(--rose) 0%,var(--rose-dark) 100%);padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.header h1{font-size:1.5rem;font-weight:700;color:var(--white);letter-spacing:-.01em}.header h1 span{font-weight:300;opacity:.85}.header-actions{display:flex;gap:.75rem}.btn{border:none;border-radius:8px;padding:.55rem 1.2rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.4rem}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--gold);color:var(--white)}.btn-primary:hover{background:var(--gold-light);color:var(--charcoal)}.btn-outline{background:#fff3;color:var(--white);border:1px solid rgba(255,255,255,.4)}.btn-outline:hover{background:#ffffff59}.btn-ghost{background:transparent;color:var(--charcoal);border:1px solid var(--gray-mid)}.btn-ghost:hover{background:var(--gray-light)}.btn-sm{padding:.35rem .8rem;font-size:.78rem}.main-layout{display:flex;flex:1;min-height:0}.sidebar{width:300px;background:var(--white);border-right:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;overflow-y:auto}.sidebar-section{padding:1.25rem;border-bottom:1px solid rgba(0,0,0,.06)}.sidebar-section h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gray-mid);margin-bottom:.75rem;font-weight:600}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.theme-card{border:2px solid transparent;border-radius:10px;padding:.5rem;cursor:pointer;text-align:center;transition:all .2s;background:var(--gray-light)}.theme-card:hover{border-color:var(--rose)}.theme-card.active{border-color:var(--rose);background:var(--blush)}.theme-dots{display:flex;justify-content:center;gap:4px;margin-bottom:.3rem}.theme-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.1)}.theme-card span{font-size:.7rem;color:var(--charcoal);font-weight:500}.deco-category{margin-bottom:1rem}.deco-category-title{font-size:.82rem;font-weight:600;color:var(--charcoal);margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem}.deco-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.deco-item{background:var(--gray-light);border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:.7rem;cursor:grab;text-align:center;transition:all .2s;-webkit-user-select:none;user-select:none}.deco-item:hover{background:var(--blush);border-color:var(--rose);transform:translateY(-2px);box-shadow:var(--shadow)}.deco-item:active{cursor:grabbing}.deco-emoji{font-size:1.8rem;display:block;margin-bottom:.25rem}.deco-name{font-size:.72rem;font-weight:600;color:var(--charcoal)}.deco-price{font-size:.65rem;color:var(--rose-dark);font-weight:500}.venue-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.venue-toolbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;background:var(--white);border-bottom:1px solid rgba(0,0,0,.06);flex-wrap:wrap}.venue-toolbar label{font-size:.8rem;font-weight:600;color:var(--charcoal)}.venue-toolbar select{border:1px solid var(--gray-mid);border-radius:6px;padding:.35rem .6rem;font-size:.82rem;background:var(--white);color:var(--charcoal)}.venue-toolbar .separator{width:1px;height:24px;background:var(--gray-mid)}.guest-input{width:70px;border:1px solid var(--gray-mid);border-radius:6px;padding:.35rem .6rem;font-size:.82rem;text-align:center}.canvas-wrapper{flex:1;position:relative;overflow:auto;background:radial-gradient(circle at 1px 1px,rgba(0,0,0,.03) 1px,transparent 0);background-size:24px 24px;padding:2rem;display:flex;justify-content:center;align-items:flex-start}.venue-canvas{position:relative;background:var(--white);border-radius:16px;box-shadow:var(--shadow-lg);border:2px solid rgba(0,0,0,.06);overflow:hidden;transition:width .3s,height .3s}.venue-floor{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.3}.venue-element{position:absolute;display:flex;align-items:center;justify-content:center;font-size:1.4rem;border-radius:6px;background:#0000000a;border:1px dashed rgba(0,0,0,.12);color:var(--charcoal);-webkit-user-select:none;user-select:none}.venue-element.table{background:#d4a8531a;border-color:var(--gold);border-style:solid;border-radius:50%}.venue-element.stage{background:linear-gradient(135deg,#e8a0b426,#d4a85326);border-color:var(--rose);border-style:solid;border-radius:10px}.venue-element.entrance{background:#a8bfa026;border-color:var(--sage);border-style:solid;border-radius:10px 10px 0 0}.placed-deco{position:absolute;cursor:move;-webkit-user-select:none;user-select:none;font-size:2rem;transition:transform .1s;z-index:10;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.placed-deco:hover{transform:scale(1.15);z-index:20}.placed-deco.selected{outline:2px solid var(--rose);outline-offset:4px;border-radius:4px;z-index:20}.deco-delete{position:absolute;top:-8px;right:-8px;width:18px;height:18px;background:#e74c3c;color:#fff;border:none;border-radius:50%;font-size:.6rem;cursor:pointer;display:none;align-items:center;justify-content:center;line-height:1;z-index:30}.placed-deco:hover .deco-delete,.placed-deco.selected .deco-delete{display:flex}.right-panel{width:260px;background:var(--white);border-left:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;overflow-y:auto}.panel-section{padding:1.25rem;border-bottom:1px solid rgba(0,0,0,.06)}.panel-section h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gray-mid);margin-bottom:.75rem;font-weight:600}.budget-bar{height:8px;background:var(--gray-light);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.budget-fill{height:100%;border-radius:4px;transition:width .3s}.budget-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.82rem}.budget-row .amount{font-weight:700;color:var(--charcoal)}.budget-total{font-size:1.1rem;font-weight:700;color:var(--rose-dark);text-align:center;margin:.75rem 0}.budget-input-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.budget-input-row label{font-size:.8rem;font-weight:600;white-space:nowrap}.budget-input{flex:1;border:1px solid var(--gray-mid);border-radius:6px;padding:.3rem .5rem;font-size:.82rem;text-align:right}.checklist{list-style:none}.checklist li{display:flex;align-items:flex-start;gap:.5rem;padding:.45rem 0;font-size:.82rem;border-bottom:1px solid rgba(0,0,0,.04)}.checklist input[type=checkbox]{accent-color:var(--rose);margin-top:2px;cursor:pointer}.checklist li.done label{text-decoration:line-through;color:var(--gray-mid)}.checklist label{cursor:pointer;flex:1}.notes-textarea{width:100%;min-height:100px;border:1px solid var(--gray-mid);border-radius:8px;padding:.6rem;font-size:.82rem;font-family:inherit;resize:vertical;line-height:1.6}.notes-textarea:focus{outline:none;border-color:var(--rose)}.status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .7rem;border-radius:20px;font-size:.72rem;font-weight:600}.status-badge.over-budget{background:#fdecea;color:#c0392b}.status-badge.under-budget{background:#e8f5e9;color:#27ae60}.status-badge.on-track{background:#fff3e0;color:#e67e22}.venue-label{position:absolute;bottom:12px;right:16px;font-size:.68rem;color:var(--gray-mid);font-weight:500;letter-spacing:.05em;text-transform:uppercase;pointer-events:none}.empty-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gray-mid);pointer-events:none;gap:.5rem}.empty-canvas .icon{font-size:3rem;opacity:.4}.empty-canvas p{font-size:.85rem}@media(max-width:1100px){.right-panel{width:220px}.sidebar{width:260px}}@media(max-width:900px){.main-layout{flex-direction:column}.sidebar,.right-panel{width:100%;flex-direction:row;flex-wrap:wrap}.sidebar-section,.panel-section{flex:1;min-width:200px}.canvas-wrapper{min-height:400px}}
