:root{font-family:Avenir Next,Avenir,Segoe UI,sans-serif;color:#0a2540;background:#fff;font-synthesis:none;--navy: #0a2540;--accent: #635bff;--muted: #5c7085;--border: #e5eaf0;--soft: #f6f9fc}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h1{font-size:clamp(48px,5.5vw,72px);line-height:1.08;letter-spacing:-.055em}h2{font-size:25px;line-height:1.3;letter-spacing:-.035em}h3{font-size:21px;line-height:1.4;letter-spacing:-.025em}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed}a{color:var(--accent);text-decoration:none}a:hover{color:#443bd9}button:focus-visible,a:focus-visible{outline:3px solid #aaa5ff;outline-offset:4px}input:focus-visible{outline:3px solid #e5e2ff;border-color:var(--accent)}button:disabled{opacity:.55;transform:none!important;box-shadow:none!important}.container{width:min(1200px,calc(100% - 64px));margin-inline:auto}.page-shell{min-height:100vh;overflow-x:clip}.site-header{position:relative;z-index:2;background:#fff}.header-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--navy);font-size:25px;font-weight:500;letter-spacing:-1.2px;flex-shrink:0}.brand:hover{color:var(--navy)}.brand img{object-fit:contain}.brand-accent{font-weight:400}.brand-dot{color:var(--accent)}.header-caption{color:var(--muted);font-size:14px}.account-nav{display:flex;align-items:center;gap:24px;min-width:0}.account-email{font-size:13px;color:var(--muted);max-width:250px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.header-error{color:#a62945;padding-bottom:16px;font-size:14px}.button{min-height:48px;border:1px solid transparent;border-radius:999px;padding:11px 23px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:15px;font-weight:500;line-height:1.5;transition:transform .16s ease,box-shadow .16s ease,background .16s ease;box-shadow:0 3px 8px #635bff1a}.button:hover:not(:disabled){background:#554ce9;transform:translateY(-2px);box-shadow:0 7px 16px #635bff30}.button-secondary{background:#fff;color:var(--navy);border-color:var(--border);box-shadow:0 2px 5px #0a254005}.button-secondary:hover:not(:disabled){background:#f8f9ff;box-shadow:0 7px 15px #0a254010}.button-small{min-height:44px;padding:8px 17px;font-size:13px}.button svg{flex-shrink:0}.card{border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 8px 24px #0a254006,0 2px 5px #0a254004}.eyebrow{color:var(--accent);display:flex;align-items:center;gap:10px;font-size:11px;font-weight:500;letter-spacing:1.7px;margin-bottom:25px}.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px #635bff0a;flex-shrink:0}.hero-description{font-size:18px;color:var(--muted);line-height:1.75;max-width:430px;margin-top:26px}.section-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#f1efff;color:var(--accent);margin-bottom:22px}.card-description{color:var(--muted);font-size:14px;margin-top:11px}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:13px;font-weight:500}.field input{width:100%;min-height:49px;border:1px solid #dbe2eb;border-radius:12px;padding:11px 14px;color:var(--navy);background:#fff;font-size:15px;line-height:1.6;transition:border-color .12s,box-shadow .12s}.field input::placeholder{color:#728396;opacity:1}.field input:disabled{background:#f8fafc;opacity:.7}.field-hint{font-size:12px;color:var(--muted);line-height:1.7}.optional{color:var(--muted);font-weight:400}.error-message{padding:12px 14px;border:1px solid #f2d9df;border-radius:10px;color:#a62945;background:#fff7f8;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.notice{padding:12px 14px;background:#f5f4ff;border:1px solid #e7e4ff;border-radius:10px;font-size:13px;margin-top:24px}.spinner{display:inline-block;width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-page{display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;right:-210px;top:80px;width:620px;height:650px;background:radial-gradient(ellipse at center,#ede8ff80,#fceaf040 42%,transparent 68%);pointer-events:none}.auth-grid{flex:1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(340px,.9fr);gap:100px;align-items:center;padding-block:72px 86px;position:relative}.auth-story{min-width:0}.auth-story h1{max-width:650px}.auth-card{padding:38px;position:relative}.auth-card h2{font-size:29px}.auth-form{display:flex;flex-direction:column;gap:22px;margin-top:32px}.password-input{position:relative}.password-input input{padding-right:65px}.password-toggle{position:absolute;right:5px;top:5px;bottom:5px;padding:0 10px;background:none;border:0;color:var(--muted);font-size:12px;border-radius:6px}.password-toggle:hover{color:var(--accent)}.auth-submit{width:100%;margin-top:4px}.auth-submit svg{margin-left:auto}.auth-submit>.spinner{margin-left:0}.auth-switch{margin-top:28px;padding-top:23px;border-top:1px solid var(--border);font-size:13px;text-align:center;color:var(--muted)}.auth-switch a{font-weight:500;margin-left:4px}.auth-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:26px;border-top:1px solid var(--border);color:var(--muted);font-size:12px;position:relative}.auth-footer span:last-child{display:flex;align-items:center;gap:8px}.auth-footer svg{width:13px;height:13px}.list-illustration{position:relative;max-width:500px;height:292px;margin-top:47px}.illustration-gradient{position:absolute;top:30px;right:5px;bottom:0;left:-60px;background:linear-gradient(120deg,#dbefff,#e7ddff 52%,#ffe3ec);transform:rotate(-9deg);border-radius:48px;filter:blur(14px);opacity:.75}.preview-card{position:relative;width:420px;max-width:92%;margin-left:6px;padding:22px;border:1px solid #e2e8f2;background:#ffffffed;border-radius:16px;box-shadow:0 16px 35px #0a254012;transform:rotate(-3deg)}.preview-heading{display:flex;align-items:center;justify-content:space-between;font-weight:500;font-size:14px;padding-bottom:15px}.preview-heading svg{color:var(--accent)}.preview-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #edf0f5;font-size:13px;line-height:1.5}.preview-row small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.preview-check{width:20px;height:20px;border-radius:6px;display:flex;justify-content:center;align-items:center;color:#fff;background:var(--accent);flex-shrink:0}.preview-check svg{width:13px;height:13px}.preview-check.unchecked{background:#fff;border:1.5px solid #d4dce8}.preview-tag{margin-left:auto;color:#5a52d6;background:#f1efff;font-size:9px;border-radius:999px;padding:3px 8px;white-space:nowrap}.illustration-note{position:absolute;bottom:5px;right:0;display:flex;align-items:center;gap:10px;font-size:12px;border:1px solid #e4e7f0;background:#fff;box-shadow:0 8px 25px #0a25400a;border-radius:12px;padding:12px 17px;transform:rotate(2deg)}.note-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:var(--accent);background:#f1efff}.note-icon svg{width:13px;height:13px}.list-hero{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:center;gap:100px;padding-block:70px 88px}.list-hero h1{font-size:clamp(48px,5vw,64px)}.list-hero .hero-description{max-width:440px;font-size:17px}.summary-wrap{position:relative;padding:20px 8px}.summary-gradient{position:absolute;top:-18px;right:-48px;bottom:-22px;left:-20px;border-radius:40px;background:linear-gradient(120deg,#e2f1ff,#e8dfff 55%,#fce1ee);filter:blur(15px);transform:rotate(-9deg);opacity:.8}.summary-card{position:relative;padding:24px 27px 0;background:#fffffff2;box-shadow:0 14px 32px #0a25400a}.summary-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);background:#f1efff;width:34px;height:34px;border-radius:10px;vertical-align:middle;margin-right:10px}.summary-title{font-size:13px;font-weight:500}.summary-count{font-size:46px;letter-spacing:-2px;line-height:1.2;margin-top:22px;display:flex;align-items:baseline;gap:13px}.summary-count>span{font-size:13px;letter-spacing:0;color:var(--muted)}.summary-footer{border-top:1px solid var(--border);font-size:11px;color:var(--muted);margin-top:23px;padding-block:17px;display:flex;align-items:center;gap:7px}.summary-dot{background:var(--accent);border-radius:50%;width:5px;height:5px}.shopping-section{background:var(--soft);padding-block:64px 100px;border-top:1px solid #edf1f6;min-height:460px}.shopping-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:38px;align-items:start}.add-sidebar{position:sticky;top:25px}.add-card{padding:28px}.add-card .section-icon{margin-bottom:20px}.add-card h2{font-size:23px}.add-card .card-description{font-size:13px}.add-form{display:flex;flex-direction:column;gap:21px;margin-top:26px}.add-submit{width:100%;margin-top:3px}.private-note{margin:22px 12px 0;display:flex;align-items:flex-start;gap:11px;color:var(--muted);font-size:12px;line-height:1.8}.private-note svg{width:15px;height:15px;margin-top:3px;flex-shrink:0}.shopping-card{overflow:hidden}.shopping-card-header{padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border)}.shopping-card-header h2{font-size:23px}.count-badge{flex-shrink:0;border-radius:999px;font-size:11px;font-weight:500;color:#544ac8;background:#f2f0ff;padding:5px 12px}.list-group{padding:25px 30px 10px}.list-group-heading{display:flex;align-items:center;justify-content:space-between;color:var(--muted);margin-bottom:12px}.list-group-heading h3{font-size:10px;letter-spacing:1.4px;line-height:1.6}.list-group-heading>span{font-size:11px}.grocery-rows{list-style:none;padding:0;margin:0}.grocery-row{display:flex;align-items:center;gap:15px;min-height:80px;border-bottom:1px solid #edf1f5;padding:15px 0;transition:background .13s}.grocery-row:last-child{border-bottom:0}.grocery-row:hover{background:#fbfcff}.grocery-row[aria-busy=true]{opacity:.65}.item-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:23px;height:23px;border:1.5px solid #bec9d8;border-radius:6px;background:#fff;margin:0;flex-shrink:0;cursor:pointer;transition:border-color .12s,background .12s}.item-checkbox:hover:not(:disabled){border-color:var(--accent)}.item-checkbox:checked{border-color:var(--accent);background-color:var(--accent);background-position:center;background-repeat:no-repeat;background-size:17px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E")}.item-label{display:flex;flex:1;min-width:0;flex-direction:column;cursor:pointer}.item-name{font-size:16px;font-weight:500;line-height:1.55;overflow-wrap:anywhere}.item-quantity{font-size:12px;color:var(--muted);line-height:1.5;margin-top:4px;overflow-wrap:anywhere}.is-purchased .item-name{color:#63758a;text-decoration:line-through;text-decoration-color:#b5bfcd}.is-purchased .item-checkbox:checked{background-color:#817adf;border-color:#817adf}.delete-button{width:44px;height:44px;border:0;background:transparent;color:#728399;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s,background .15s}.delete-button svg{width:17px;height:17px}.delete-button:hover:not(:disabled){background:#fff2f4;color:#a62945;transform:translateY(-2px);box-shadow:0 4px 8px #0a25400a}.purchased-group{border-top:1px solid var(--border);background:#fcfdff}.list-tip{font-size:11px;color:var(--muted);padding:19px 30px;border-top:1px solid var(--border);background:#fcfdff}.list-error{margin:20px 30px 0}.list-state{min-height:338px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 30px;gap:17px;color:var(--muted)}.list-state>p{font-size:14px;max-width:295px}.list-state h3{color:var(--navy)}.empty-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border:1px solid #e4e2fb;border-radius:20px;background:linear-gradient(145deg,#f0f6ff,#f1edff,#fff0f7);color:var(--accent);margin-bottom:7px}.empty-icon svg{width:29px;height:29px;stroke-width:1.4}.empty-hint{font-size:11px;margin-top:3px;color:var(--muted)}.all-done{font-size:13px;padding:23px 0 30px;color:var(--muted);display:flex;align-items:center;gap:10px}.all-done svg{color:var(--accent);width:17px}.list-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:30px;font-size:12px;color:var(--muted)}.list-footer>span:last-child{color:var(--navy);font-size:15px;letter-spacing:-.5px}.session-state{min-height:65vh;display:flex;align-items:center;justify-content:center;text-align:center}.loading-message{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:15px}.session-card{max-width:480px;padding:40px}.session-card .eyebrow{justify-content:center}.session-card p:not(.eyebrow){margin-block:24px;color:var(--muted)}@media(min-width:1450px){.auth-grid{padding-block:96px 110px}}@media(max-width:1050px){.auth-grid{gap:50px;grid-template-columns:minmax(0,1fr) minmax(330px,.9fr)}.auth-story h1{font-size:56px}.auth-card{padding:30px}.preview-card{padding:18px}.preview-tag{display:none}.list-hero{gap:60px;grid-template-columns:minmax(0,1fr) 280px}.shopping-grid{grid-template-columns:300px minmax(0,1fr);gap:26px}.add-card{padding:24px}.shopping-card-header,.list-group{padding-inline:24px}.summary-gradient{right:-12px}}@media(max-width:760px){.container{width:calc(100% - 40px)}.header-inner{min-height:84px}.brand{font-size:23px}.brand img{width:32px;height:32px}.header-caption{font-size:11px}.auth-grid{grid-template-columns:minmax(0,1fr);gap:38px;padding-block:44px 65px;max-width:520px}.auth-story h1{font-size:52px}.hero-description{font-size:16px;margin-top:22px;max-width:400px}.list-illustration{display:none}.auth-card{padding:30px}.auth-footer{font-size:11px;padding-block:24px}.auth-page:before{top:270px;right:-200px;width:550px;height:650px}.account-email{display:none}.account-nav{gap:0}.list-hero{grid-template-columns:minmax(0,1fr);padding-block:40px 62px;gap:34px}.list-hero h1{font-size:56px}.list-hero .hero-description{max-width:410px}.summary-wrap{display:none}.summary-card{padding:19px 23px 0}.summary-count{margin-top:14px;font-size:37px}.summary-footer{margin-top:16px;padding-block:13px}.summary-gradient{top:-15px;right:-8px;bottom:-15px;left:-8px;filter:blur(12px)}.shopping-section{padding-block:36px 65px}.shopping-grid{grid-template-columns:minmax(0,1fr);gap:30px}.add-sidebar{position:static}.add-card .section-icon{display:none}.add-card .card-description{margin-top:7px}.add-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;margin-top:22px}.add-submit,.add-form .error-message{grid-column:1 / -1}.private-note{display:none}.shopping-card-header{padding-block:24px}.list-footer{align-items:flex-start;font-size:11px}.list-footer>span:first-child{max-width:220px}}@media(max-width:420px){.container{width:calc(100% - 32px)}.header-caption{display:none}.eyebrow{font-size:9px;letter-spacing:1.35px}.auth-story h1,.list-hero h1{font-size:48px}.auth-card{padding:26px 23px}.auth-card h2{font-size:27px}.auth-footer{align-items:flex-start;gap:20px}.auth-footer span{max-width:150px}.add-card{padding:23px 20px}.shopping-card-header{padding-inline:20px;gap:10px}.shopping-card-header h2{font-size:21px}.list-group,.list-tip{padding-inline:20px}.list-error{margin-inline:20px}.grocery-row{gap:12px}.list-state{padding-inline:22px}.auth-switch{font-size:12px}.session-card{padding:30px 22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
