:root{font-family:DM Sans,system-ui,-apple-system,sans-serif;color:#18342b;background:#f7f9f6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}a{color:#176d48}button:disabled{opacity:.55;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif}input,textarea{outline:none}input:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #9bd4b0;outline-offset:2px}.loading,.empty-page{min-height:100vh;display:grid;place-content:center;text-align:center;padding:30px}.empty-page svg{margin:auto;color:#157147}.empty-page h1{font-size:28px;margin:20px 0 8px}.empty-page p{color:#66786d}.app-shell{display:flex;min-height:100vh}.sidebar{width:270px;flex:none;background:#fff;border-right:1px solid #e5ece6;display:flex;flex-direction:column;padding:27px 17px 18px;position:sticky;top:0;height:100vh;z-index:20}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif}.brand-mark{width:41px;height:41px;border-radius:12px;background:#1e7750;color:#fff;display:grid;place-items:center;box-shadow:0 8px 18px #1e775029}.brand strong{font-size:16px;font-weight:800;letter-spacing:.025em;display:block;line-height:1.1}.brand span{display:block;color:#668176;font-size:12px;font-weight:700;letter-spacing:.04em;margin-top:2px}.side-caption{font-size:10px;font-weight:800;letter-spacing:.15em;color:#90a29a;margin:36px 10px 13px}.household{display:flex;align-items:center;gap:10px;background:#f4f8f4;border:1px solid #edf1ed;padding:12px 13px;border-radius:11px;font-size:13px;font-weight:700;color:#3b5c4c}.household svg{color:#297b55}.list-heading{display:flex;justify-content:space-between;align-items:center;margin-top:30px;margin-bottom:7px}.icon-button{border:0;background:transparent;color:#779184;display:inline-grid;place-items:center;border-radius:8px;padding:6px}.icon-button:hover{background:#edf5ee;color:#1b6e49}.nav-list{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:0;border-radius:10px;background:transparent;color:#547061;padding:11px 12px;font-size:13px;font-weight:700;margin:2px 0}.nav-list:hover{background:#f4f8f4}.nav-list.active{background:#eaf6eb;color:#1b7047}.nav-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.nav-list em{font-size:11px;font-style:normal;background:#d9ebdc;color:#286e46;min-width:22px;text-align:center;border-radius:7px;padding:3px 5px}.new-list{display:flex;align-items:center;gap:8px;color:#4d9a6a;padding:4px 11px}.new-list input{border:none;width:100%;font-size:13px;background:transparent;padding:8px 0;color:#315343}.new-list input::placeholder{color:#6d9d7e}.archive-toggle{margin:22px 8px 0;padding:10px 5px;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#6d8275;text-align:left;font-size:13px}.archive-toggle svg:last-child{margin-left:auto;transition:transform .2s}.archive-toggle .rotate{transform:rotate(90deg)}.side-bottom{margin-top:auto;border-top:1px solid #ecf1ed;padding-top:15px}.side-bottom button{border:0;background:transparent;display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;color:#60786a;font-size:13px;text-align:left;border-radius:9px}.side-bottom button:hover{background:#f4f8f4}.main{flex:1;min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid #e6ede7;display:flex;align-items:center;justify-content:space-between;padding:0 5%}.topbar-context{display:flex;gap:11px;align-items:center;color:#819489;font-size:12px;font-weight:600}.topbar-context strong{color:#375444}.topbar-actions{display:flex;align-items:center;gap:22px}.sync-state{display:flex;align-items:center;gap:6px;color:#5e8e6e;font-size:12px;font-weight:600}.avatar{background:#ddecde;color:#206e46;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:14px;font-weight:800}.content{max-width:1130px;margin:0 auto;padding:49px 5% 90px}.eyebrow{color:#40865b;font-size:10px;font-weight:800;letter-spacing:.18em;display:flex;align-items:center;gap:8px}.eyebrow-dot{background:#2e9b63;width:7px;height:7px;border-radius:50%;display:inline-block}.hero-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:13px 0 32px}.hero-row h1{font-size:clamp(28px,3vw,40px);letter-spacing:-.055em;font-weight:800;margin-bottom:6px;color:#1d3e2e}.subtitle{color:#829288;font-size:14px;margin:0}.hero-actions{display:flex;gap:10px}.button{border-radius:10px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:12px;border:1px solid transparent;white-space:nowrap}.button.ghost{background:#fff;border-color:#e3eae3;color:#3f6650}.button.ghost:hover{background:#f2f8f3}.button.primary{background:#1c7750;color:#fff}.button.primary:hover{background:#12613d}.button.danger{background:#b94444;color:#fff}.summary-card{border-radius:18px;background:#e8f3e7;border:1px solid #ddecdc;display:flex;align-items:center;gap:21px;padding:25px 30px;position:relative;overflow:hidden}.summary-card:after{content:"";position:absolute;right:14%;top:-140px;width:250px;height:250px;border:38px solid #f6fbf4a0;border-radius:50%;pointer-events:none}.summary-icon{width:52px;height:52px;border-radius:15px;background:#d0e8d2;display:grid;place-items:center;color:#1f774c;flex:none}.summary-number{font-family:Manrope,sans-serif;font-size:29px;line-height:1.2;font-weight:800;color:#1c5937;letter-spacing:-.04em}.summary-number span{font-size:18px;letter-spacing:-.02em}.summary-card p{font-size:12px;margin:5px 0 0;color:#718778}.summary-total{margin-left:auto;z-index:1;font-size:21px;font-weight:800;color:#267149;text-align:center}.summary-total span{display:block;font-size:10px;font-weight:700;color:#7b9984}.quick-add{display:flex;align-items:center;gap:13px;border:1px solid #dce8dc;border-radius:13px;background:#fff;padding:8px 9px 8px 19px;margin:27px 0 31px;box-shadow:0 8px 20px #244e2310;color:#4ba66f}.quick-add input{flex:1;min-width:0;border:0;background:transparent;color:#284532;font-size:14px}.quick-add input::placeholder{color:#a0b1a6}.quick-add button{background:#227c52;color:#fff;border:none;border-radius:9px;padding:10px 19px;font-size:12px;font-weight:800}.list-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}.list-toolbar h2{font-size:19px;color:#223e2d;margin:0 0 3px;letter-spacing:-.03em}.list-toolbar p{font-size:12px;color:#91a198;margin:0}.segmented{background:#ecf2ec;border-radius:9px;display:flex;padding:3px}.segmented button{border:0;border-radius:7px;background:transparent;color:#849588;padding:7px 13px;font-size:11px;font-weight:700}.segmented button.selected{background:#fff;color:#2d6845;box-shadow:0 2px 5px #1c4b1d18}.category{margin:23px 0}.category h3{font-size:11px;letter-spacing:.08em;color:#6f8474;text-transform:uppercase;display:flex;align-items:center;gap:9px;margin:0 0 10px 4px}.category h3 span{background:#e6eee6;color:#6b816c;border-radius:6px;padding:2px 6px;font-size:10px}.item-card{background:#fff;border:1px solid #e7eee7;border-radius:13px;overflow:hidden;box-shadow:0 4px 10px #244e2308}.item-row{display:flex;align-items:center;gap:15px;min-height:65px;padding:8px 19px;border-bottom:1px solid #eff3ee}.item-row:last-child{border-bottom:0}.check-button{height:24px;width:24px;flex:none;border:2px solid #bfd0c1;background:#fff;border-radius:8px;display:grid;place-items:center;color:#fff}.check-button:hover{border-color:#26844f}.check-button.checked{background:#278657;border-color:#278657}.item-main{border:0;text-align:left;background:none;display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex:1;padding:5px 0;min-width:0}.item-main strong{font-size:13px;color:#2c4836;font-weight:700}.item-main small{font-size:11px;color:#95a399}.item-row.done .item-main strong{text-decoration:line-through;color:#9eaca1}.item-delete{opacity:.55}.item-delete:hover{opacity:1}.empty-list{background:#fff;border:1px dashed #d7e6d9;border-radius:17px;text-align:center;padding:48px 20px;color:#758b7b}.empty-icon{background:#e7f6e9;color:#3a9b60;border-radius:16px;width:56px;height:56px;display:grid;place-items:center;margin:0 auto 17px}.empty-list h3{color:#31573d;font-size:18px;margin:0 0 5px}.empty-list p{font-size:13px;margin:0}.notice,.form-message{border-radius:10px;background:#fff6e4;border:1px solid #f5e3ba;color:#845c20;padding:12px 14px;margin:0 0 16px;font-size:13px;display:flex;justify-content:space-between;align-items:center}.notice button{border:0;background:none;color:inherit}.dialog-backdrop{position:fixed;inset:0;background:#13251b7a;display:grid;place-items:center;z-index:100;padding:20px}.dialog{background:#fff;border-radius:18px;padding:24px;width:min(100%,510px);max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0b211d55}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.dialog-header h2{font-size:19px;margin:0}.dialog p{color:#718173;font-size:13px;line-height:1.5}.dialog label,.auth-form label,.admin-login label,.wide-label{display:block;color:#3d5846;font-size:12px;font-weight:700;margin-bottom:14px}.dialog input,.dialog textarea,.auth-form input,.admin-login input,.wide-label input,.wide-label textarea{display:block;margin-top:7px;width:100%;border:1px solid #dce7df;border-radius:9px;background:#fff;padding:11px 12px;color:#243c2e;font-size:13px}.dialog textarea,.wide-label textarea{resize:vertical;min-height:75px}.form-row{display:flex;gap:12px}.form-row label{flex:1;min-width:0}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.members{margin-bottom:15px}.member{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #edf2ec}.member>div:nth-child(2){flex:1}.member strong,.member small{display:block}.member strong{font-size:13px}.member small{font-size:11px;color:#8a9a8d;margin-top:3px}.invite-form{border-top:1px solid #e6eee6;padding-top:17px}.invite-form h3{font-size:14px}.invite-form p{margin-top:10px}.uat-banner{background:#b45309;color:#fff;padding:8px 20px;text-align:center;font-size:12px;font-weight:700;z-index:30;position:relative;border-bottom:3px solid #f59e0b}.uat-banner strong{background:#7c2d12;padding:3px 6px;border-radius:4px;margin-right:8px}.uat-banner a{color:#fff;text-decoration:underline}.app-shell:has(.uat-banner){padding-top:0}.sidebar:has(~.main .uat-banner){top:35px}.mobile-menu,.mobile-close{display:none}.auth-page{display:flex;min-height:100vh;background:#fff}.auth-visual{width:47%;min-height:100vh;background:radial-gradient(circle at 85% 80%,#43895b 0,#17563b 44%,#103d2d);color:#fff;display:flex;flex-direction:column;padding:37px 8%;position:relative;overflow:hidden}.auth-visual:before,.auth-visual:after{content:"";border:1px solid #ffffff1c;border-radius:50%;position:absolute;width:620px;height:620px;left:-300px;bottom:-370px}.auth-visual:after{width:450px;height:450px;left:auto;right:-220px;top:-280px}.auth-brand{display:flex;align-items:center;gap:10px;font-family:Manrope,sans-serif;font-size:21px;font-weight:800;letter-spacing:.02em}.auth-brand span{font-size:13px;font-weight:600;opacity:.75;margin-left:-5px}.auth-visual-content{margin:auto 0;max-width:480px;z-index:1}.eyebrow.light{color:#b4e1b8}.auth-visual h1{font-size:clamp(42px,5vw,69px);line-height:1.08;letter-spacing:-.065em;margin:20px 0}.auth-visual-content>p{max-width:370px;color:#c9decf;font-size:15px;line-height:1.65}.decorative-list{margin-top:44px;background:#fff;border-radius:18px;box-shadow:0 25px 60px #001c123f;padding:13px 22px;max-width:350px;transform:rotate(-3deg)}.decorative-list>div{color:#234431;padding:12px 2px;font-size:14px;font-weight:700;display:flex;align-items:center;gap:12px;border-bottom:1px solid #edf1ed}.decorative-list>div:last-child{border:0}.decorative-list svg{background:#dcefe0;color:#249053;border-radius:6px;padding:2px}.decorative-circle{width:17px;height:17px;border:2px solid #d1dfd2;border-radius:6px}.auth-bottom{font-size:11px;color:#aad1b4;z-index:1}.auth-form-panel{flex:1;display:grid;place-items:center;padding:40px}.auth-form{width:min(100%,390px)}.auth-form h2{font-size:31px;letter-spacing:-.05em;margin:15px 0 8px}.auth-description{color:#819286;font-size:13px;line-height:1.55;margin-bottom:32px}.auth-form label{font-size:12px;margin-bottom:17px}.auth-form input{padding:13px 15px}.auth-form input::placeholder{color:#b2beb3}.forgot-link{display:block;text-align:right;font-size:12px;font-weight:700;margin-top:-8px;margin-bottom:23px;text-decoration:none}.auth-submit{width:100%;padding:14px 18px;justify-content:space-between;font-size:13px}.auth-secondary{font-size:12px;color:#819086;text-align:center;margin-top:23px}.auth-secondary a{font-weight:800;text-decoration:none}.auth-footer{border-top:1px solid #eff2ec;margin-top:60px;padding-top:18px;display:flex;gap:20px;font-size:10px}.auth-footer a{color:#91a096;text-decoration:none}.auth-mobile-brand{display:none}.admin-login{max-width:440px;margin:10vh auto;padding:40px;background:#fff;border:1px solid #e3ebe4;border-radius:20px}.admin-login h1{font-size:25px;margin:20px 0 5px}.admin-login p{font-size:13px;color:#748576}.admin-login form{margin-top:30px}.admin-page{background:#f7f9f6;min-height:100vh}.admin-page header{height:75px;background:#fff;border-bottom:1px solid #e6eee6;padding:15px 5%;display:flex;align-items:center;justify-content:space-between}.admin-page header .brand span{margin-left:15px}.admin-page main{max-width:920px;margin:auto;padding:55px 25px}.admin-page main h1{margin:13px 0 5px}.admin-page main>p{font-size:13px;color:#7d8c7f}.setting-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:30px 0}.setting-card{background:#fff;border:1px solid #e1ebe2;padding:22px;border-radius:15px;display:flex;align-items:start;gap:15px;min-height:160px}.setting-card div{flex:1}.setting-card h2{font-size:15px;margin:0 0 8px}.setting-card p{font-size:11px;color:#7a8e7f;line-height:1.5}.setting-card input{accent-color:#187849;width:19px;height:19px}.wide-label{max-width:600px}.admin-note{display:flex;gap:8px;align-items:center;margin-top:24px}@media(max-width:900px){.sidebar{width:235px}.content{padding-left:4%;padding-right:4%}.auth-visual{padding-left:5%;padding-right:5%}}@media(max-width:700px){.sidebar{position:fixed;transform:translate(-100%);transition:transform .2s;width:min(85vw,310px);box-shadow:12px 0 30px #0e21131c}.sidebar.open{transform:none}.mobile-menu,.mobile-close{display:inline-grid}.mobile-close{margin-left:auto}.topbar{padding:0 18px;height:60px;gap:10px}.topbar-context{flex:1;font-size:11px;overflow:hidden;white-space:nowrap}.topbar-actions{gap:10px}.sync-state{display:none}.content{padding:28px 18px 70px}.hero-row{display:block;margin-bottom:23px}.hero-actions{margin-top:18px}.summary-card{padding:20px;gap:12px}.summary-icon{width:45px;height:45px}.summary-number{font-size:25px}.summary-number span{font-size:14px}.summary-total{display:none}.quick-add{margin:20px 0 28px}.auth-visual{display:none}.auth-form-panel{padding:24px;display:block}.auth-mobile-brand{display:flex;align-items:center;gap:7px;color:#1f7750;font-weight:800;font-family:Manrope,sans-serif;margin-bottom:65px}.auth-form{margin:auto}.auth-footer{margin-top:70px}.setting-grid{grid-template-columns:1fr}.setting-card{min-height:0}.form-row{display:block}.admin-page header{gap:10px}.admin-page header .brand span{display:none}}@media(max-width:420px){.hero-actions{flex-wrap:wrap}.button,.quick-add button{padding:10px 12px}.summary-card{padding:17px}.summary-number{font-size:22px}.category{margin-top:20px}}.uat-system-banner{position:sticky;top:0;z-index:2147483000;min-height:40px;background:#b45309;border-bottom:3px solid #f59e0b;color:#fff;padding:7px 14px;display:flex;align-items:center;justify-content:center;gap:7px;font:500 13px/1.35 system-ui,sans-serif;flex-wrap:wrap}.uat-system-banner.collapsed{min-height:28px;padding:3px 10px}.uat-system-banner .uat-pill{background:#7c2d12;border-radius:4px;padding:2px 5px;font-size:11px;letter-spacing:.06em}.uat-system-banner a{color:#fff;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.uat-system-banner button{background:transparent;border:1px solid #ffffff90;border-radius:5px;color:#fff;padding:2px 6px;font:inherit;cursor:pointer;white-space:nowrap}.uat-modal-backdrop{position:fixed;inset:0;z-index:2147483001;background:#13251b99;display:grid;place-items:center;padding:16px}.uat-modal{width:min(100%,620px);max-height:90vh;overflow:auto;background:#fff;color:#243c2e;padding:28px;border-radius:16px;box-shadow:0 20px 70px #0005}.uat-modal h2{margin-top:0}.uat-modal p{line-height:1.5}.uat-modal small{display:block;color:#627669;margin-bottom:18px}.uat-modal a{color:#145d3c}.uat-modal button{display:block;margin-left:auto}.sidebar{top:var(--ilygo-uat-banner-h,0px);height:calc(100vh - var(--ilygo-uat-banner-h,0px))}@media(max-width:639px){.uat-system-banner:not(.collapsed) .uat-long{display:none}.uat-system-banner.collapsed .uat-short{display:none}.uat-system-banner.collapsed{flex-wrap:nowrap;justify-content:space-between}.uat-system-banner{font-size:11px}.uat-system-banner .uat-pill{font-size:10px}}.new-list-trigger{display:flex;align-items:center;gap:8px;margin:4px 10px;padding:9px 7px;border:0;background:transparent;color:#24774d;font-size:13px;font-weight:700;text-align:left;border-radius:8px}.new-list-trigger:hover{background:#edf6ee}.list-type-control{display:inline-flex;align-items:center;gap:10px;margin-top:13px;color:#6d8775;font-size:11px;font-weight:700}.list-type-control select{border:1px solid #d8e8dc;border-radius:999px;background:#fff;color:#246c45;padding:6px 9px;font-size:11px;font-weight:700;max-width:250px}.dialog select{display:block;width:100%;margin-top:7px;border:1px solid #dce7df;border-radius:9px;background:#fff;padding:11px 12px;color:#243c2e;font-size:13px}.product-entry{margin:25px 0 29px}.product-entry-actions{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px}.product-entry-actions button{border:0;background:transparent;padding:4px 1px;color:#24774d;font-size:12px;font-weight:800}.product-entry-actions button:hover{text-decoration:underline}.product-entry .quick-add{margin:0}.product-suggestions{border:1px solid #dce8dc;border-radius:12px;background:#fff;margin-top:7px;box-shadow:0 10px 22px #244e2312;overflow:hidden}.product-suggestions button,.catalog-product{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:0;border-bottom:1px solid #edf1ed;background:#fff;text-align:left;color:#24774d}.product-suggestions button:last-child,.catalog-product:last-child{border-bottom:0}.product-suggestions button:hover,.catalog-product:hover{background:#f2f8f3}.product-suggestions button span,.catalog-product span{flex:1;min-width:0}.product-suggestions strong,.catalog-product strong{display:block;font-size:13px;color:#294634}.product-suggestions small,.catalog-product small{display:block;font-size:11px;color:#819386;margin-top:2px}.product-suggestions em,.catalog-product em{font-size:11px;font-style:normal;color:#357f55;background:#e5f3e7;border-radius:20px;padding:3px 6px}.catalog-browser .catalog-tabs{display:flex;gap:4px;background:#edf3ed;border-radius:10px;padding:4px;margin:4px 0 15px}.catalog-tabs button{flex:1;border:0;border-radius:8px;padding:9px;background:transparent;color:#6d8275;font-size:12px;font-weight:700}.catalog-tabs button.active{background:#fff;color:#1e7047;box-shadow:0 2px 5px #193c1c18}.catalog-scroll{max-height:52vh;overflow-y:auto;border:1px solid #e4ece4;border-radius:11px;padding:8px;background:#fcfdfb}.catalog-scroll h3{font-size:13px;color:#557460;padding:9px 10px;margin:0}.catalog-scroll>p{padding:12px}.catalog-group,.catalog-section{border-bottom:1px solid #ebf0eb}.catalog-group:last-child,.catalog-section:last-child{border-bottom:0}.catalog-group summary,.catalog-section summary{cursor:pointer;padding:11px 12px;color:#315b40;font-size:13px;font-weight:800;list-style:none;display:flex;justify-content:space-between}.catalog-section summary{padding-left:23px;color:#57705d;font-size:12px}.catalog-group summary:hover,.catalog-section summary:hover{background:#f1f7f2}.catalog-group summary span,.catalog-section summary span{font-size:11px;color:#8ca398}.catalog-section .catalog-product{padding-left:30px}.catalog-custom{width:100%;margin-top:13px;justify-content:flex-start;white-space:normal;text-align:left}@media(max-width:700px){.product-entry{margin-top:18px}.product-entry .quick-add{padding-left:12px}.product-entry .quick-add button{white-space:normal}.list-type-control{align-items:flex-start;flex-direction:column;gap:6px}.catalog-scroll{max-height:50vh}}
