*{box-sizing:border-box}html,body{margin:0;padding:0}:root{--evergreen:#1e3a34;--bg:#f7f4ee;--card:#fff;--text:#262521;--text-secondary:#7a7362;--border:#d9d2c3;--destructive:#b3563d;--confirmed:#3e7a5a;--maybe:#b58a3e;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:16px}button,input,select,textarea{font-family:inherit;font-size:16px}button{cursor:pointer}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-content{padding-bottom:calc(76px + env(safe-area-inset-bottom));flex:1;width:100%;max-width:1280px;margin:0 auto}.page{padding:20px 16px 32px;position:relative}@media (width>=720px){.page{padding:32px 40px 48px}}.page-header{align-items:center;gap:10px;margin-bottom:20px;display:flex}.page-header h1{margin:0;font-size:26px;font-weight:700}.page-header.with-back{align-items:flex-start}.eyebrow{color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;margin:0 0 2px;font-size:13px}.icon-btn{width:44px;height:44px;color:var(--evergreen);background:0 0;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-btn:active{background:#1e3a3414}.next-event-card{background:var(--evergreen);color:#fff;border-radius:20px;margin-bottom:24px;padding:24px 20px}.next-label{opacity:.75;text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:13px}.next-event-card h2{margin:0 0 4px;font-size:22px}.next-date{opacity:.85;margin:0 0 18px}.next-stats{gap:24px;margin-bottom:20px;display:flex}.next-stats div{flex-direction:column;display:flex}.next-stats strong{font-size:20px}.next-stats span{opacity:.75;font-size:12px}.next-actions{gap:10px;display:flex}.btn{border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:13px 20px;font-size:16px;font-weight:600;display:inline-flex}.btn-primary{background:var(--evergreen);color:#fff}.btn-primary:disabled{opacity:.5}.btn-ghost{color:#fff;background:#ffffff26}.btn-outline{border:1.5px solid var(--border);color:var(--text);background:0 0}.btn-outline.btn-sm,.btn.btn-sm{min-height:38px;padding:9px 14px;font-size:14px}.btn-block{width:100%}.home-section{margin-top:26px}.section-heading h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:0 0 10px;font-size:16px}.plan-card{background:var(--card);border:1px solid var(--border);border-radius:16px;justify-content:space-between;align-items:center;padding:16px;display:flex}.plan-name{margin:0;font-weight:700}.plan-detail{color:var(--text-secondary);margin:2px 0 0;font-size:14px}.mini-row{background:var(--card);border:1px solid var(--border);border-radius:14px;justify-content:space-between;margin-bottom:8px;padding:14px 16px;display:flex}.mini-row-date{color:var(--text-secondary);font-size:14px}.event-list{flex-direction:column;gap:12px;display:flex}.event-card{color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px;text-decoration:none;display:block}.event-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.event-card h3{margin:0;font-size:18px}.event-card-date{color:var(--text-secondary);margin:6px 0 0;font-size:14px}.event-card-loc{color:var(--text-secondary);margin:2px 0 0;font-size:14px}.event-card-stats{gap:22px;margin-top:14px;display:flex}.event-card-stats div{flex-direction:column;display:flex}.event-card-stats strong{font-size:16px}.event-card-stats span{color:var(--text-secondary);font-size:12px}.badge{text-transform:capitalize;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.badge-upcoming{color:var(--evergreen);background:#e4eee9}.badge-past,.badge-archived{color:var(--text-secondary);background:#efebe1}.badge-draft{color:#8a6a2e;background:#f1e7d8}.segmented{background:#eeeae0;border-radius:12px;gap:4px;margin-bottom:18px;padding:4px;display:flex}.seg{text-align:center;color:var(--text-secondary);background:0 0;border:none;border-radius:9px;flex:1;min-height:40px;padding:10px 8px;font-size:14px;font-weight:600;text-decoration:none}.seg.active{background:var(--card);color:var(--evergreen);box-shadow:0 1px 3px #00000014}.event-header-title h1{margin:0;font-size:22px}.event-header-title p{color:var(--text-secondary);margin:4px 0 0;font-size:14px}.event-header-loc{font-style:normal}.event-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex;position:relative}.more-menu{background:var(--card);border:1px solid var(--border);z-index:5;border-radius:12px;min-width:180px;position:absolute;top:46px;right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f}.more-menu button{text-align:left;background:0 0;border:none;width:100%;padding:12px 16px;font-size:14px;display:block}.more-menu button:hover{background:var(--bg)}.summary-row{background:var(--card);border:1px solid var(--border);border-radius:16px;gap:22px;margin-bottom:18px;padding:16px 18px;display:flex}.summary-row div{flex-direction:column;display:flex}.summary-row strong{font-size:18px}.summary-row span{color:var(--text-secondary);font-size:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.search-box{background:var(--card);border:1px solid var(--border);min-height:44px;color:var(--text-secondary);border-radius:12px;flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.search-box input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:10px 0}.toggle-chip{border:1px solid var(--border);background:var(--card);color:var(--text-secondary);border-radius:999px;min-height:40px;padding:9px 14px;font-size:13px}.toggle-chip.active{background:var(--evergreen);color:#fff;border-color:var(--evergreen)}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip-grid{flex-wrap:wrap;gap:8px;margin:18px 0 24px;display:flex}.chip{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:999px;min-height:40px;padding:9px 16px;font-size:14px}.chip-selected{background:var(--evergreen);color:#fff;border-color:var(--evergreen)}.category-group{margin-bottom:18px}.category-group h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:0 0 8px;font-size:14px}.list{margin-top:6px}.list-row{background:var(--card);border:1px solid var(--border);border-radius:14px;align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.list-row.checked{opacity:.6}.list-row-main{cursor:pointer;flex:1;min-width:0}.list-row-title{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:flex}.list-row.checked .list-row-title{text-decoration:line-through}.list-row-sub{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.checkbox{border:2px solid var(--border);color:#fff;background:#fff;border-radius:8px;justify-content:center;align-items:center;width:26px;min-width:26px;height:26px;display:flex}.checkbox.checked{background:var(--evergreen);border-color:var(--evergreen)}.row-delete{width:32px;height:32px;color:var(--text-secondary);background:0 0;border:none;border-radius:8px;flex-shrink:0}.row-delete:hover{color:var(--destructive)}.pri-badge{text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.pri-important{color:#8a6a2e;background:#fbefd9}.pri-urgent{color:var(--destructive);background:#f7e1da}.status-select{border:1px solid var(--border);background:var(--card);border-radius:999px;min-height:36px;padding:7px 10px;font-size:12px;font-weight:600}.status-confirmed{color:var(--confirmed)}.status-maybe{color:var(--maybe)}.status-declined{color:var(--destructive)}.status-invited,.status-noresponse{color:var(--text-secondary)}.guest-summary{background:var(--card);border:1px solid var(--border);border-radius:16px;gap:18px;margin-bottom:16px;padding:14px 16px;display:flex;overflow-x:auto}.guest-summary div{flex-direction:column;flex-shrink:0;display:flex}.guest-summary strong{font-size:18px}.guest-summary span{color:var(--text-secondary);white-space:nowrap;font-size:11px}.celebration{color:var(--evergreen);text-align:center;background:#e4eee9;border-radius:12px;margin-bottom:14px;padding:12px 16px;font-weight:600}.form{flex-direction:column;gap:16px;display:flex}.field-row{gap:12px;display:flex}.field-row .field{flex:1;min-width:0}.field{flex-direction:column;gap:6px;display:flex}.field span{color:var(--text-secondary);font-size:13px;font-weight:600}.field span em{color:var(--destructive);margin-left:4px;font-size:12px;font-style:normal;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--border);min-height:44px;color:var(--text);background:#fff;border-radius:12px;outline:none;padding:12px 14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--evergreen)}.field-error{color:var(--destructive);font-size:12px}.sheet-overlay{z-index:50;background:#14140f66;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;padding:10px 20px calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;max-height:88vh;overflow-y:auto}.sheet-grip{background:var(--border);border-radius:999px;width:40px;height:4px;margin:6px auto 10px}.sheet-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sheet-header h3{margin:0;font-size:18px}.sheet-subtitle{color:var(--text-secondary);margin:0 0 16px}.share-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.share-opt{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;font-size:22px;display:flex}.share-opt span{color:var(--text-secondary);font-size:12px}.bottom-nav{background:var(--card);border-top:1px solid var(--border);z-index:40;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--text-secondary);flex-direction:column;flex:1;align-items:center;gap:3px;min-height:44px;padding:10px 0 8px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.nav-item.active{color:var(--evergreen)}.fab{bottom:calc(90px + env(safe-area-inset-bottom));background:var(--evergreen);color:#fff;z-index:30;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:fixed;right:20px;box-shadow:0 8px 20px #1e3a3459}.empty-state{text-align:center;padding:40px 16px}.empty-title{margin:0 0 4px;font-size:16px;font-weight:700}.empty-sub{color:var(--text-secondary);margin:0 0 18px}.toast{bottom:calc(84px + env(safe-area-inset-bottom));color:#fff;z-index:60;text-align:center;background:#262521;border-radius:999px;max-width:90vw;padding:12px 20px;font-size:14px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #00000040}.profile-card{align-items:center;gap:14px;margin-bottom:8px;display:flex}.avatar{background:var(--evergreen);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;font-weight:700;display:flex}.profile-name{margin:0;font-size:17px;font-weight:700}.profile-email{color:var(--text-secondary);margin:2px 0 0;font-size:14px}.settings-list{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden}.settings-row{text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;width:100%;min-height:44px;padding:15px 16px;font-size:15px;display:block}.settings-row:last-child{border-bottom:none}.settings-row.destructive{color:var(--destructive)}.about-text{color:var(--text-secondary)}.onboarding-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.onboarding-screen{width:100%;max-width:420px}.onboarding-screen h1{margin:0 0 10px;font-size:26px}.onboarding-sub{color:var(--text-secondary);margin:0 0 24px}.onboarding-input{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;min-height:48px;margin-bottom:24px;padding:14px;font-size:16px}@media (width>=900px){.event-list{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}}
