*{box-sizing:border-box;margin:0;padding:0}:root{--cream:#faf8f4;--cream2:#f3efe8;--cream3:#e8e2d8;--ink:#1c1917;--ink2:#44403c;--ink3:#78716c;--ink4:#a8a29e;--rose:#c4717a;--rose-light:#f5e6e8;--rose-mid:#e8b4b8;--sage:#6b8c6e;--sage-light:#e8f0e9;--gold:#b8963e;--gold-light:#f5edd8;--blue:#5b7fa6;--blue-light:#e3ecf5;--border:#1c19171a;--border2:#1c19170f}html,body{background:var(--cream);height:100%;color:var(--ink);font-family:DM Sans,sans-serif;font-size:14px;line-height:1.5}.shell{height:100vh;display:flex;overflow:hidden}.nav{border-right:1px solid var(--border);background:var(--cream);flex-direction:column;width:220px;min-width:220px;padding:0;display:flex}.content{flex-direction:column;flex:1;display:flex;overflow:hidden}.nav-logo{border-bottom:1px solid var(--border2);padding:28px 24px 20px}.nav-logo h1{letter-spacing:.08em;color:var(--ink);font-family:Cormorant Garamond,serif;font-size:26px;font-weight:300}.nav-logo p{color:var(--ink4);letter-spacing:.05em;margin-top:1px;font-size:11px}.nav-links{flex:1;padding:16px 12px}.nav-link{cursor:pointer;color:var(--ink3);-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:8px 12px;font-size:13px;font-weight:400;transition:all .15s;display:flex}.nav-link:hover{background:var(--cream2);color:var(--ink)}.nav-link.active{background:var(--rose-light);color:var(--rose)}.nav-link .dot{background:var(--ink4);border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:background .15s}.nav-link.active .dot{background:var(--rose)}.nav-link:hover .dot{background:var(--ink)}.nav-section{letter-spacing:.1em;color:var(--ink4);text-transform:uppercase;padding:12px 12px 4px;font-size:10px;font-weight:500}.nav-footer{border-top:1px solid var(--border2);padding:16px 24px}.nav-footer p{color:var(--ink4);font-size:11px}.nav-footer strong{color:var(--rose);font-weight:500}.topbar{border-bottom:1px solid var(--border);background:var(--cream);justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.topbar-title{letter-spacing:.02em;font-family:Cormorant Garamond,serif;font-size:22px;font-weight:400}.topbar-sub{color:var(--ink4);margin-top:1px;font-size:12px}.topbar-actions{align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--border);background:var(--cream);color:var(--ink2);cursor:pointer;border-radius:6px;padding:7px 16px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:400;transition:all .15s}.btn:hover{background:var(--cream2);border-color:var(--border)}.btn-primary{background:var(--rose);color:#fff;border-color:var(--rose)}.btn-primary:hover{background:#b36670;border-color:#b36670}.view{flex:1;padding:28px 32px;display:none;overflow-y:auto}.view.active{display:block}.stats-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.stat-card{background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:18px 20px}.stat-card .sc-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);margin-bottom:8px;font-size:11px;font-weight:500}.stat-card .sc-val{color:var(--ink);font-family:Cormorant Garamond,serif;font-size:32px;font-weight:300;line-height:1}.stat-card .sc-sub{color:var(--ink4);margin-top:4px;font-size:11px}.stat-card.rose{background:var(--rose-light);border-color:var(--rose-mid)}.stat-card.rose .sc-val{color:var(--rose)}.stat-card.sage{background:var(--sage-light);border-color:#6b8c6e4d}.stat-card.sage .sc-val{color:var(--sage)}.stat-card.gold{background:var(--gold-light);border-color:#b8963e4d}.stat-card.gold .sc-val{color:var(--gold)}.dash-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.dash-card{background:var(--cream);border:1px solid var(--border);border-radius:10px;overflow:hidden}.dash-card-head{border-bottom:1px solid var(--border2);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.dash-card-head h3{color:var(--ink);font-size:13px;font-weight:500}.dash-card-head a{color:var(--rose);cursor:pointer;font-size:11px;text-decoration:none}.dash-card-body{padding:16px 18px}.upcoming-item{border-bottom:1px solid var(--border2);align-items:center;gap:12px;padding:8px 0;display:flex}.upcoming-item:last-child{border-bottom:none}.up-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.up-name{color:var(--ink);flex:1;font-size:13px}.up-date{color:var(--ink4);font-size:11px}.up-tag{border-radius:20px;padding:2px 8px;font-size:10px;font-weight:500}.progress-item{margin-bottom:14px}.progress-item:last-child{margin-bottom:0}.prog-row{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.prog-label{color:var(--ink2);font-size:12px}.prog-pct{color:var(--ink4);font-size:11px}.prog-bar{background:var(--cream3);border-radius:2px;height:4px;overflow:hidden}.prog-fill{border-radius:2px;height:100%;transition:width .6s}.tl-shell{border:1px solid var(--border);background:var(--cream);border-radius:10px;gap:0;height:calc(100vh - 120px);display:flex;overflow:hidden}.tl-side{border-right:1px solid var(--border);background:var(--cream);flex-direction:column;width:220px;min-width:220px;display:flex}.tl-side-head{border-bottom:1px solid var(--border2);padding:14px 16px}.tl-side-head h3{font-size:13px;font-weight:500}.tl-cats{flex:1;padding:10px 12px}.tl-cat{color:var(--ink3);border-radius:6px;align-items:center;gap:8px;margin-bottom:2px;padding:5px 8px;font-size:12px;display:flex}.tl-cat .cdot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tl-add-area{border-top:1px solid var(--border2);padding:12px 14px}.tl-add-area input,.tl-add-area select{border:1px solid var(--border);background:var(--cream2);width:100%;color:var(--ink);border-radius:6px;margin-bottom:6px;padding:6px 8px;font-family:DM Sans,sans-serif;font-size:12px}.tl-add-area input:focus,.tl-add-area select:focus{border-color:var(--rose-mid);outline:none}.tl-add-row{grid-template-columns:1fr 1fr auto;gap:4px;display:grid}.tl-add-row select{margin-bottom:0}.tl-add-row button{border:1px solid var(--border);background:var(--cream);cursor:pointer;color:var(--ink2);border-radius:6px;padding:6px 8px;font-size:13px}.tl-add-row button:hover{background:var(--cream2)}.tl-main{flex:1;padding:8px 16px 32px;overflow-y:auto}.tl-row{gap:0;min-height:34px;display:flex}.tl-time{width:54px;min-width:54px;color:var(--ink4);text-align:right;padding-top:9px;padding-right:10px;font-size:10px;font-weight:400}.tl-lane{border-left:1.5px solid var(--border);flex:1;min-height:34px;padding:3px 0 3px 10px}.tl-row.hour .tl-lane{border-left:1.5px solid var(--border)}.tl-row.hour .tl-time{color:var(--ink3);font-size:11px}.ev-block{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:6px;align-items:center;margin-bottom:3px;padding:4px 8px;font-size:12px;font-weight:400;transition:opacity .1s;display:flex}.ev-block:active{cursor:grabbing;opacity:.6}.ev-block .ev-n{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ev-block .ev-t{opacity:.65;white-space:nowrap;margin-left:6px;font-size:10px}.ev-block .ev-x{opacity:0;cursor:pointer;border-radius:3px;margin-left:4px;padding:1px 3px;font-size:10px}.ev-block:hover .ev-x{opacity:1}.drop-z{border-radius:4px;min-height:14px}.drop-z.over{border:1.5px dashed var(--rose-mid);background:#c4717a1f}.vendor-toolbar{align-items:center;gap:10px;margin-bottom:20px;display:flex}.vendor-toolbar input{border:1px solid var(--border);background:var(--cream);color:var(--ink);border-radius:6px;flex:1;padding:8px 12px;font-family:DM Sans,sans-serif;font-size:13px}.vendor-toolbar input:focus{border-color:var(--rose-mid);outline:none}.vendor-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.vendor-card{background:var(--cream);border:1px solid var(--border);border-radius:10px;transition:border-color .15s;overflow:hidden}.vendor-card:hover{border-color:var(--rose-mid)}.vc-head{border-bottom:1px solid var(--border2);align-items:center;gap:12px;padding:14px 16px;display:flex}.vc-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-family:Cormorant Garamond,serif;font-size:16px;font-weight:400;display:flex}.vc-name{color:var(--ink);font-size:13px;font-weight:500}.vc-type{color:var(--ink4);font-size:11px}.vc-body{padding:12px 16px}.vc-row{color:var(--ink3);align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.vc-row span:first-child{color:var(--ink4);flex-shrink:0;width:60px;font-size:11px}.vc-status{border-radius:20px;margin-top:8px;padding:2px 8px;font-size:10px;font-weight:500;display:inline-block}.vc-status.confirmed{background:var(--sage-light);color:var(--sage)}.vc-status.pending{background:var(--gold-light);color:var(--gold)}.vc-status.inquiry{background:var(--blue-light);color:var(--blue)}.vc-foot{border-top:1px solid var(--border2);gap:6px;padding:8px 16px;display:flex}.vc-foot button{border:1px solid var(--border);color:var(--ink3);cursor:pointer;background:0 0;border-radius:5px;flex:1;padding:5px;font-family:DM Sans,sans-serif;font-size:11px}.vc-foot button:hover{background:var(--cream2)}.add-vendor-btn{border:1.5px dashed var(--border);cursor:pointer;color:var(--ink4);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:32px;font-size:13px;transition:all .15s;display:flex}.add-vendor-btn:hover{border-color:var(--rose-mid);color:var(--rose);background:var(--rose-light)}.budget-top{grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:24px;display:grid}.budget-overview{background:var(--cream);border:1px solid var(--border);border-radius:10px;grid-column:1/-1;align-items:center;gap:32px;padding:20px 24px;display:flex}.bo-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);margin-bottom:4px;font-size:11px;font-weight:500}.bo-val{font-family:Cormorant Garamond,serif;font-size:36px;font-weight:300;line-height:1}.bo-divider{background:var(--border);flex-shrink:0;width:1px;height:40px}.budget-bar-wrap{flex:1;margin-left:16px}.budget-bar-bg{background:var(--cream3);border-radius:4px;height:8px;margin-bottom:6px;overflow:hidden}.budget-bar-fill{background:linear-gradient(90deg,var(--sage),var(--rose));border-radius:4px;height:100%;transition:width .8s}.budget-bar-labels{color:var(--ink4);justify-content:space-between;font-size:11px;display:flex}.budget-table{background:var(--cream);border:1px solid var(--border);border-radius:10px;overflow:hidden}.bt-head{border-bottom:1px solid var(--border);background:var(--cream2);grid-template-columns:2fr 1fr 1fr 1fr 80px;gap:0;padding:10px 18px;display:grid}.bt-head span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink4);font-size:10px;font-weight:500}.bt-row{border-bottom:1px solid var(--border2);grid-template-columns:2fr 1fr 1fr 1fr 80px;align-items:center;gap:0;padding:11px 18px;transition:background .1s;display:grid}.bt-row:last-child{border-bottom:none}.bt-row:hover{background:var(--cream2)}.bt-row span{color:var(--ink2);font-size:13px}.bt-row .cat-pill{border-radius:20px;padding:2px 8px;font-size:10px}.bt-row .paid{color:var(--sage);font-size:10px;font-weight:500}.bt-row .unpaid{color:var(--gold);font-size:10px;font-weight:500}.bt-row .over{color:var(--rose);font-weight:500}.bt-add{border-top:1px solid var(--border);background:var(--cream2);gap:8px;padding:12px 18px;display:flex}.bt-add input,.bt-add select{border:1px solid var(--border);background:var(--cream);color:var(--ink);border-radius:5px;padding:6px 8px;font-family:DM Sans,sans-serif;font-size:12px}.bt-add input:focus,.bt-add select:focus{border-color:var(--rose-mid);outline:none}.bt-add input[type=text]{flex:2}.bt-add input[type=number]{flex:1}.gl-toolbar{align-items:center;gap:10px;margin-bottom:20px;display:flex}.gl-toolbar input{border:1px solid var(--border);background:var(--cream);color:var(--ink);border-radius:6px;flex:1;padding:8px 12px;font-family:DM Sans,sans-serif;font-size:13px}.gl-toolbar input:focus{border-color:var(--rose-mid);outline:none}.gl-toolbar select{border:1px solid var(--border);background:var(--cream);color:var(--ink);border-radius:6px;padding:8px 10px;font-family:DM Sans,sans-serif;font-size:12px}.gl-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.gl-stat{background:var(--cream);border:1px solid var(--border);text-align:center;border-radius:8px;padding:14px 16px}.gl-stat .gls-n{font-family:Cormorant Garamond,serif;font-size:28px;font-weight:300;line-height:1}.gl-stat .gls-l{letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);margin-top:4px;font-size:10px;font-weight:500}.gl-stat.g-yes .gls-n{color:var(--sage)}.gl-stat.g-no .gls-n{color:var(--rose)}.gl-stat.g-maybe .gls-n{color:var(--gold)}.guest-table{background:var(--cream);border:1px solid var(--border);border-radius:10px;overflow:hidden}.gt-head{border-bottom:1px solid var(--border);background:var(--cream2);grid-template-columns:2fr 1fr 1fr 1fr 1fr 60px;padding:10px 18px;display:grid}.gt-head span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink4);font-size:10px;font-weight:500}.gt-row{border-bottom:1px solid var(--border2);grid-template-columns:2fr 1fr 1fr 1fr 1fr 60px;align-items:center;padding:10px 18px;transition:background .1s;display:grid}.gt-row:last-child{border-bottom:none}.gt-row:hover{background:var(--cream2)}.gt-row span{color:var(--ink2);font-size:13px}.rsvp-badge{border-radius:20px;padding:2px 8px;font-size:10px;font-weight:500;display:inline-block}.rsvp-yes{background:var(--sage-light);color:var(--sage)}.rsvp-no{background:var(--rose-light);color:var(--rose)}.rsvp-maybe{background:var(--gold-light);color:var(--gold)}.rsvp-pending{background:var(--cream2);color:var(--ink4);border:1px solid var(--border)}.gt-add{border-top:1px solid var(--border);background:var(--cream2);gap:8px;padding:10px 18px;display:flex}.gt-add input,.gt-add select{border:1px solid var(--border);background:var(--cream);color:var(--ink);border-radius:5px;padding:6px 8px;font-family:DM Sans,sans-serif;font-size:12px}.gt-add input:focus,.gt-add select:focus{border-color:var(--rose-mid);outline:none}.gt-add input[type=text]{flex:2}.gt-add input.sm{flex:1}.mood-shell{gap:20px;height:calc(100vh - 130px);display:flex}.mood-palette{flex-direction:column;gap:12px;width:200px;min-width:200px;display:flex}.mood-pal-card{background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:14px}.mood-pal-card h4{letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);margin-bottom:10px;font-size:11px;font-weight:500}.color-swatch{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.swatch{cursor:pointer;border:1.5px solid #00000014;border-radius:50%;width:28px;height:28px;transition:transform .1s}.swatch:hover{transform:scale(1.15)}.kw-tags{flex-wrap:wrap;gap:4px;display:flex}.kw-tag{background:var(--cream2);border:1px solid var(--border);color:var(--ink3);cursor:pointer;border-radius:20px;padding:3px 8px;font-size:10px;transition:all .1s}.kw-tag:hover,.kw-tag.sel{background:var(--rose-light);border-color:var(--rose-mid);color:var(--rose)}.mood-board{background:var(--cream2);border:1px solid var(--border);border-radius:10px;flex:1;padding:16px;position:relative;overflow:auto}.mood-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mood-img{cursor:pointer;background:var(--cream3);border-radius:8px;position:relative;overflow:hidden}.mood-img img{object-fit:cover;width:100%;transition:opacity .2s;display:block}.mood-img .mi-overlay{opacity:0;background:#1c191700;justify-content:center;align-items:center;transition:background .2s;display:flex;position:absolute;inset:0}.mood-img:hover .mi-overlay{opacity:1;background:#1c191759}.mood-img .mi-del{color:#fff;cursor:pointer;font-size:18px}.mood-img.span2{grid-column:span 2}.mood-img.tall{grid-row:span 2}.mood-add-btn{border:1.5px dashed var(--border);cursor:pointer;min-height:120px;color:var(--ink4);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12px;transition:all .15s;display:flex}.mood-add-btn:hover{border-color:var(--rose-mid);color:var(--rose);background:var(--rose-light)}.mood-add-btn span{font-size:22px}.ros-shell{gap:20px;display:flex}.ros-main{flex:1}.ros-sidebar{width:220px}.ros-item{background:var(--cream);border:1px solid var(--border);cursor:grab;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:12px 14px;transition:border-color .15s;display:flex}.ros-item:hover{border-color:var(--rose-mid)}.ros-item:active{cursor:grabbing;opacity:.7}.ros-time{color:var(--ink4);min-width:52px;padding-top:1px;font-family:Cormorant Garamond,serif;font-size:15px}.ros-body{flex:1}.ros-body h4{color:var(--ink);margin-bottom:2px;font-size:13px;font-weight:500}.ros-body p{color:var(--ink4);font-size:11px}.ros-role{border-radius:20px;margin-top:5px;padding:2px 8px;font-size:10px;font-weight:500;display:inline-block}.ros-actions{gap:4px;margin-left:4px;display:flex}.ros-actions button{border:1px solid var(--border);color:var(--ink4);cursor:pointer;background:0 0;border-radius:4px;padding:3px 6px;font-size:10px}.ros-actions button:hover{background:var(--cream2)}.ros-connector{text-align:center;color:var(--ink4);align-items:center;gap:8px;margin-bottom:8px;padding:2px 0;font-size:10px;display:flex}.ros-connector:before,.ros-connector:after{content:"";background:var(--border2);flex:1;height:1px}.ros-add-card{background:var(--cream2);border:1.5px dashed var(--border);border-radius:8px;margin-bottom:0;padding:16px}.ros-add-card input,.ros-add-card select{border:1px solid var(--border);background:var(--cream);width:100%;color:var(--ink);border-radius:5px;margin-bottom:8px;padding:6px 8px;font-family:DM Sans,sans-serif;font-size:12px}.ros-add-card input:focus,.ros-add-card select:focus{border-color:var(--rose-mid);outline:none}.ros-add-card textarea{border:1px solid var(--border);background:var(--cream);width:100%;color:var(--ink);resize:vertical;border-radius:5px;min-height:52px;margin-bottom:8px;padding:6px 8px;font-family:DM Sans,sans-serif;font-size:12px}.ros-sb-card{background:var(--cream);border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:14px}.ros-sb-card h4{letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);margin-bottom:10px;font-size:11px;font-weight:500}.role-item{color:var(--ink3);align-items:center;gap:8px;margin-bottom:5px;font-size:12px;display:flex}.role-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}
