:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--white:#ffffff;--gray-100:#f5f5f5;--gray-200:#e5e5e5;--gray-400:#a3a3a3;--gray-500:#737373;--gray-700:#404040;--gray-800:#262626;--gray-900:#171717;--black:#0a0a0a;--accent:#ffffff;--radius:10px;--ease:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--black);color:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 0);background-size:24px 24px;pointer-events:none;z-index:0}main{position:relative;z-index:1;width:min(480px,100% - 2.5rem);margin:0 auto;padding:2.5rem 0}button,input,select,textarea{font:inherit}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:0}.brand{text-align:center;margin-bottom:3rem}.brand h1{margin:0;font-size:clamp(1.8rem,5vw,2.8rem);font-weight:300;letter-spacing:-.035em;line-height:1.1;color:var(--white)}.brand h1 .dot{color:var(--gray-400);font-weight:200}.brand-line{display:block;width:32px;height:1px;background:linear-gradient(90deg,transparent,var(--gray-500),transparent);margin:1rem auto 0}.card{background:var(--gray-900);border:1px solid var(--gray-800);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:400px;transition:border-color .3s var(--ease)}.card:hover{border-color:var(--gray-700)}.stack{display:grid;grid-gap:.75rem;gap:.75rem}.field{display:grid;grid-gap:.35rem;gap:.35rem;font-weight:500;font-size:.85rem;color:var(--gray-400);text-transform:lowercase;letter-spacing:.04em}.input,.select,.textarea{width:100%;border:1px solid var(--gray-800);background:var(--black);color:var(--white);border-radius:var(--radius);padding:.7rem .85rem;outline:none;font-size:.95rem;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}.input::placeholder{color:var(--gray-700)}.input:focus,.select:focus,.textarea:focus{border-color:var(--gray-500);box-shadow:0 0 0 3px rgba(255,255,255,.04)}.textarea{min-height:88px;resize:vertical}.btn{border:0;border-radius:var(--radius);padding:.7rem 1.2rem;font-weight:600;font-size:.9rem;cursor:pointer;letter-spacing:.01em;transition:all .2s var(--ease)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-primary{background:var(--white);color:var(--black);position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15));pointer-events:none}.btn-primary:hover{background:var(--gray-200);box-shadow:0 4px 20px rgba(255,255,255,.08)}.btn-ghost{background:transparent;border:1px solid var(--gray-800);color:var(--gray-400)}.btn-ghost:hover{border-color:var(--gray-500);color:var(--white)}.status-badge{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;gap:.35rem;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid var(--gray-800);color:var(--gray-400);padding:.25rem .65rem;font-weight:500;font-size:.75rem;letter-spacing:.04em;text-transform:lowercase}.app-link{color:var(--white);text-decoration:none;font-weight:500;border-bottom:1px solid var(--gray-700);padding-bottom:1px;transition:border-color .2s var(--ease)}.app-link:hover{border-color:var(--white)}.app-cards-grid{display:grid;grid-gap:1rem;gap:1rem}.app-card{display:flex;align-items:center;justify-content:center;min-height:120px;background:var(--gray-900);border:1px solid var(--gray-800);border-radius:var(--radius);padding:2.5rem 1.5rem;text-decoration:none;color:var(--white);width:100%;max-width:400px;transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .2s var(--ease);cursor:pointer}.app-card:hover{border-color:var(--gray-500);box-shadow:0 4px 20px rgba(255,255,255,.04);transform:translateY(-2px)}.app-card:active{transform:translateY(0)}.app-card-title{font-size:1.1rem;font-weight:400;letter-spacing:-.01em}.day-grid{display:grid;grid-gap:.8rem;gap:.8rem}.error{color:#ef4444}.error,.muted{font-size:.85rem;margin:0}.muted{color:var(--gray-500)}.divider{width:100%;height:1px;background:var(--gray-800);border:none;margin:.25rem 0}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeUp .6s var(--ease) both}.fade-in-delay{animation:fadeUp .6s var(--ease) .15s both}@keyframes slideFromRight{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes slideFromLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.slide-from-right{animation:slideFromRight .35s var(--ease) both}.slide-from-left{animation:slideFromLeft .35s var(--ease) both}.planner-main{position:relative;z-index:1;width:min(1080px,100% - 2rem);margin:0 auto;padding:2rem 0 4rem}.planner-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2rem}.planner-title{margin:.5rem 0 0;font-size:clamp(1.4rem,3.5vw,2rem);font-weight:300;letter-spacing:-.03em}.week-nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.week-label{font-size:.9rem;color:var(--gray-400);min-width:180px;text-align:center}.btn-sm{padding:.4rem .75rem;font-size:.8rem}.day-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1rem;gap:1rem}.day-card{background:var(--gray-900);border:1px solid var(--gray-800);border-radius:var(--radius);padding:1.75rem;display:flex;flex-direction:column;gap:1rem;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.day-card:hover{border-color:var(--gray-700)}.day-card.ghost{opacity:.3;cursor:pointer;filter:blur(.4px);transition:opacity .3s var(--ease),filter .3s var(--ease),border-color .3s var(--ease)}.day-card.ghost:hover{opacity:.5;filter:blur(0);border-color:var(--gray-600)}.day-card.ghost .day-note-input,.day-card.ghost .dinner-btn,.day-card.ghost .person-toggle-btn{pointer-events:none}.day-card.ghost .dinner-btn:disabled{opacity:1;cursor:default}.day-card.today{border-color:var(--gray-500);box-shadow:0 0 20px rgba(255,255,255,.03)}.day-card-top{display:flex;flex-direction:column;gap:.15rem;position:relative}.day-name{font-size:1.4rem;font-weight:300;letter-spacing:-.02em;margin:0;text-transform:lowercase}.day-sub-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.day-date{font-size:.85rem;color:var(--gray-400);margin:0}.day-meta{display:flex;gap:.75rem;font-size:.75rem;color:var(--gray-500);flex-shrink:0}.meta-item{display:flex;align-items:center;gap:.2rem}.holiday-tag{position:absolute;top:0;right:0;display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;gap:.3rem;background:rgba(255,200,50,.06);border:1px solid rgba(255,200,50,.12);color:#ffc832;border-radius:999px;padding:.2rem .65rem;font-size:.72rem;font-weight:500;letter-spacing:.02em}.day-note-input{width:100%;border:1px solid var(--gray-800);background:var(--black);color:var(--white);border-radius:var(--radius);padding:.5rem .7rem;outline:none;font-size:.82rem;font-family:inherit;resize:none;min-height:36px;max-height:80px;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}.day-note-input::placeholder{color:var(--gray-700)}.day-note-input:focus{border-color:var(--gray-500);box-shadow:0 0 0 3px rgba(255,255,255,.04)}.dinner-section{display:grid;grid-gap:.75rem;gap:.75rem}.dinner-label{font-size:.72rem;color:var(--gray-500);text-transform:lowercase;letter-spacing:.05em;font-weight:500}.dinner-buttons{display:flex;gap:.5rem}.dinner-btn{flex:1 1;border:1px solid var(--gray-800);background:transparent;color:var(--gray-400);border-radius:var(--radius);padding:.55rem 1rem;font-weight:500;font-size:.85rem;cursor:pointer;transition:all .2s var(--ease)}.dinner-btn:hover{border-color:var(--gray-500);color:var(--white)}.dinner-btn:active{transform:scale(.97)}.dinner-btn.active{background:var(--white);color:var(--black);border-color:var(--white)}.dinner-btn.active:hover{background:var(--gray-200);border-color:var(--gray-200)}.dinner-btn:disabled{cursor:not-allowed;opacity:.4}.person-columns{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column-gap:1.2rem;column-gap:1.2rem;width:100%}.person-columns:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-.5px);background:var(--gray-800);pointer-events:none}.person-column{display:grid;grid-gap:.45rem;gap:.45rem;min-width:0;padding:0}.person-column-title{font-size:.78rem;color:var(--gray-200);font-weight:600;letter-spacing:.02em;text-align:center}.person-column-row{display:grid;grid-gap:.3rem;gap:.3rem}.person-toggle-btn{border:1px solid var(--gray-800);background:transparent;color:var(--gray-400);border-radius:var(--radius);width:100%;padding:.45rem .5rem;font-size:.74rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:all .2s var(--ease)}.person-toggle-btn:hover{border-color:var(--gray-500);color:var(--white)}.person-toggle-btn.active{background:var(--gray-200);border-color:var(--gray-200);color:var(--black)}.person-toggle-btn:disabled{cursor:not-allowed;opacity:.4}.person-status-section{display:grid;grid-gap:.45rem;gap:.45rem}.person-status-row{display:grid;grid-gap:.35rem;gap:.35rem}.person-status-name{font-size:.72rem;color:var(--gray-500);font-weight:500;letter-spacing:.05em;text-transform:lowercase}.person-status-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.35rem;gap:.35rem}.person-status-btn{border:1px solid var(--gray-800);background:transparent;color:var(--gray-400);border-radius:var(--radius);padding:.45rem .4rem;font-size:.72rem;font-weight:500;cursor:pointer;transition:all .2s var(--ease)}.person-status-btn:hover{border-color:var(--gray-500);color:var(--white)}.person-status-btn.active{background:var(--gray-200);border-color:var(--gray-200);color:var(--black)}.person-status-btn:disabled{cursor:not-allowed;opacity:.4}