@font-face{font-family:Roboto;src:url(../fonts/roboto-v49-latin-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(../fonts/roboto-v49-latin-700.woff2)format("woff2");font-weight:700 800;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(../fonts/roboto-v49-latin-900.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1f160f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f6f0e8;font-family:Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#fff6e8 0,#f6f0e8 34rem,#efe4d7 100%);min-width:320px;min-height:100vh;margin:0}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f7efe6;background:#130d09}[data-theme=dark] body{background:radial-gradient(circle at 0 0,#2c1a10 0,#17100b 34rem,#0d0906 100%)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:progress;opacity:.65}.app-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:32px 0 56px}.hero{background:linear-gradient(135deg,#ffffffdb,#fff7ecb8);border:1px solid #553a201f;border-radius:32px;justify-content:space-between;align-items:end;gap:24px;padding:32px;display:flex;box-shadow:0 24px 80px #422a131f}.hero-actions{grid-template-columns:1fr 54px;align-items:end;gap:12px;min-width:260px;display:grid}.user-switch{color:#725f4d;gap:8px;font-weight:850;display:grid}.user-switch select{border-radius:999px;min-height:44px;font-weight:850}.user-locked strong{color:#2b160a;background:#ffffffdb;border:1px solid #2b160a1a;border-radius:999px;place-items:center;min-height:44px;display:grid}.profile-button{color:#2b160a;background:#ffffffdb;border:0;border-radius:50%;place-items:center;width:54px;min-height:54px;padding:0;font-weight:900;display:grid;box-shadow:0 14px 30px #2b160a29}.profile-button span{color:#fff7ed;background:#2b160a;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.eyebrow{color:#9b5a1c;text-transform:uppercase;letter-spacing:.16em;margin:0 0 8px;font-size:.75rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:12px;font-size:clamp(2.4rem,6vw,5.2rem);line-height:.9}h2{letter-spacing:-.04em;margin-bottom:0;font-size:clamp(1.5rem,3vw,2.2rem)}h3{letter-spacing:-.03em;margin-bottom:4px;font-size:1.25rem}.intro{color:#6d5b4a;max-width:660px;margin-bottom:0;font-size:1.08rem;line-height:1.55}.primary,.secondary,.ghost,.danger,.file-button,.icon{border:0;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 18px;font-weight:800;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.primary{color:#fff7ed;white-space:nowrap;background:#2b160a;box-shadow:0 14px 30px #2b160a38}.primary:hover{transform:translateY(-1px);box-shadow:0 18px 38px #2b160a47}.secondary,.ghost{color:#2b160a;background:#ffffffc7;border:1px solid #2b160a1a}.danger{color:#9c2f17;background:#fff0ec}.icon{color:#3a2314;background:#f6eee5;width:44px;padding:0;font-size:1.8rem}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0;display:grid}.stats article{background:#ffffffa3;border:1px solid #52321a1a;border-radius:24px;padding:20px}.stats span{letter-spacing:-.06em;font-size:2rem;font-weight:900;display:block}.stats small{color:#7b6958;font-weight:700}.alert{border-radius:18px;padding:14px 18px;font-weight:700}.alert.error{color:#8d220d;background:#ffe9e2}.alert.success{color:#276331;background:#e7f7e9}.panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffb8;border:1px solid #52321a1f;border-radius:28px;box-shadow:0 14px 44px #422a1314}.filters{grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(170px,1fr));align-items:end;gap:16px;padding:18px;display:grid}.mobile-filter-bar,.filter-sheet-head,.filter-backdrop,.apply-filter{display:none}.field,.range-field{color:#725f4d;gap:8px;font-weight:750;display:grid}.search-field{grid-column:span 1}input,select,textarea{color:#24150c;background:#ffffffe6;border:1px solid #2b160a21;border-radius:16px;outline:none;width:100%;padding:13px 14px}select{appearance:auto}textarea{resize:vertical;min-height:118px;line-height:1.45}input:focus,select:focus,textarea:focus{border-color:#aa6726;box-shadow:0 0 0 4px #aa672621}.range-field span{justify-content:space-between;gap:8px;display:flex}input[type=range]{accent-color:#7b3f18;background:0 0;border:0;min-height:34px;padding:0}.list-head{justify-content:space-between;align-items:center;margin:26px 0 14px;display:flex}.empty{color:#806c5a;text-align:center;background:#ffffff7a;border:1px dashed #52321a2e;border-radius:28px;place-items:center;gap:8px;min-height:220px;padding:28px;display:grid}.empty strong{color:#2b160a}.bean-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;display:grid}.bean-card{background:#ffffffd1;border:1px solid #52321a1c;border-radius:30px;grid-template-rows:210px 1fr;display:grid;overflow:hidden;box-shadow:0 16px 48px #422a131a}.photo-wrap{background:linear-gradient(135deg,#56321c,#b5763c);position:relative;overflow:hidden}.photo-wrap img{object-fit:cover;width:100%;height:100%;display:block}.photo-placeholder{filter:drop-shadow(0 12px 20px #00000040);place-items:center;width:100%;height:100%;font-size:4.8rem;display:grid}.buy-again{color:#24572d;background:#ffffffe0;border-radius:999px;padding:8px 12px;font-size:.78rem;font-weight:900;position:absolute;top:14px;left:14px}.bean-content{gap:14px;padding:18px;display:grid}.bean-title-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.bean-title-row p{color:#806c5a;margin-bottom:0}.score{color:#fff7ed;background:#2b160a;border-radius:50%;place-items:center;min-width:58px;min-height:58px;font-weight:900;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips span{color:#6b421e;background:#f6eadc;border-radius:999px;padding:7px 10px;font-size:.84rem;font-weight:800}.meter-list{gap:8px;display:grid}.meter-list label{color:#665545;grid-template-columns:72px 1fr 64px;align-items:center;gap:10px;font-size:.92rem;display:grid}meter{width:100%;height:10px}.description{color:#4d4036;white-space:pre-line;line-height:1.55}.card-actions{gap:10px;margin-top:auto;display:flex}.card-actions button{flex:1}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#1c10096b;position:fixed;inset:0}.modal{z-index:30;background:#fffaf3;border-radius:32px;width:min(860px,100% - 32px);max-height:calc(100vh - 48px);margin:0 auto;position:fixed;inset:24px 24px auto;overflow:auto;box-shadow:0 30px 100px #1b0e0759}.user-chooser{z-index:31;background:#fffaf3;border-radius:30px;width:min(420px,100% - 28px);padding:26px;position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 30px 100px #1b0e0759}.profile-panel{z-index:31;background:#fffaf3;border-radius:30px;width:min(390px,100% - 28px);padding:24px;position:fixed;top:24px;right:24px;box-shadow:0 30px 100px #1b0e0759}.profile-row{color:#725f4d;gap:8px;margin-top:16px;font-weight:850;display:grid}.locked-profile strong{color:#2b160a;font-size:1.3rem}.locked-profile small{color:#806c5a;font-weight:650}.theme-toggle{background:#f1e4d6;border-radius:999px;grid-template-columns:repeat(2,1fr);gap:8px;padding:4px;display:grid}.theme-toggle button{color:#6b5847;background:0 0;border:0;border-radius:999px;min-height:40px;font-weight:900}.theme-toggle button.active{color:#fff7ed;background:#2b160a}.user-chooser p:not(.eyebrow){color:#6d5b4a;line-height:1.5}.user-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.modal form{padding:24px}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.wide{grid-column:1/-1}.check{color:#3d2718;align-items:center;gap:12px;font-weight:800;display:flex}.check input{accent-color:#7b3f18;width:20px;height:20px}.dropzone{background:#f6ede1cc;border:2px dashed #7b3f1847;border-radius:24px;grid-template-columns:112px 1fr;align-items:center;gap:16px;min-height:150px;padding:16px;transition:border .18s,transform .18s,background .18s;display:grid}.dropzone.active{background:#fff3e3;border-color:#7b3f18;transform:scale(1.01)}.dropzone img,.upload-icon{object-fit:cover;background:linear-gradient(135deg,#5d351d,#c68745);border-radius:22px;place-items:center;width:112px;height:112px;font-size:3rem;display:grid}.dropzone span{color:#806c5a;margin:6px 0 12px;display:block}.dropzone input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-button{color:#fff7ed;background:#2b160a;width:fit-content}.modal-actions{background:linear-gradient(#0000,#fffaf3 28%);justify-content:flex-end;gap:12px;margin-top:22px;padding:16px 0 0;display:flex;position:sticky;bottom:-24px}[data-theme=dark] .hero,[data-theme=dark] .panel,[data-theme=dark] .stats article,[data-theme=dark] .bean-card{background:#231811db;border-color:#ffffff1a;box-shadow:0 18px 60px #00000052}[data-theme=dark] .modal,[data-theme=dark] .user-chooser,[data-theme=dark] .profile-panel{color:#f7efe6;background:#1c130d}[data-theme=dark] .modal-actions{background:#1c130d}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea,[data-theme=dark] .secondary,[data-theme=dark] .ghost,[data-theme=dark] .profile-button{color:#f7efe6;background:#ffffff14;border-color:#ffffff1f}[data-theme=dark] .primary,[data-theme=dark] .profile-button span,[data-theme=dark] .score,[data-theme=dark] .theme-toggle button.active{color:#1b100a;background:#f4dfc7}[data-theme=dark] .intro,[data-theme=dark] .field,[data-theme=dark] .range-field,[data-theme=dark] .bean-title-row p,[data-theme=dark] .description,[data-theme=dark] .profile-row,[data-theme=dark] .stats small{color:#cdbdac}[data-theme=dark] .chips span{color:#f4dfc7;background:#f4dfc71f}[data-theme=dark] .theme-toggle{background:#ffffff14}@media (width<=820px){.app-shell{width:min(100% - 20px,680px);padding-top:10px}.hero{border-radius:26px;flex-direction:column;align-items:stretch;padding:24px}.hero-actions{grid-template-columns:1fr 48px;align-items:end;gap:10px;min-width:0;display:grid}.hero-actions .primary{order:1;width:100%;padding-inline:10px}.hero-actions .profile-button{order:2;width:48px;min-height:48px}.hero-actions .profile-button span{width:34px;height:34px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 14px}.stats article{text-align:center;border-radius:16px;padding:10px 6px}.stats span{letter-spacing:-.04em;font-size:clamp(.95rem,4vw,1.25rem)}.stats small{margin-top:2px;font-size:.64rem;line-height:1.05;display:block}.mobile-filter-bar{justify-content:space-between;align-items:center;gap:10px;margin:12px 0 4px;display:flex}.mobile-filter-bar span{color:#725f4d;white-space:nowrap;flex:none;font-weight:850}.filter-toggle{flex:0 auto;width:auto;min-height:40px;padding:0 14px}.filter-backdrop{z-index:18;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#1c100961;display:block;position:fixed;inset:0}.filter-sheet-head{color:#2b160a;grid-column:1/-1;justify-content:space-between;align-items:center;font-size:1.05rem;display:flex}.filter-sheet-head .icon{width:38px;min-height:38px;font-size:1.55rem}.filters{inset:env(safe-area-inset-top) 0 0 0;z-index:19;height:100dvh;max-height:none;padding:max(12px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));opacity:0;pointer-events:none;border-radius:0;grid-template-columns:1fr;align-content:start;gap:10px;transition:transform .22s,opacity .22s;display:grid;position:fixed;overflow:auto;transform:translateY(100%)}.filters.open{opacity:1;pointer-events:auto;transform:translateY(0)}.apply-filter{display:inline-flex}.filters .field,.filters .range-field{gap:5px;font-size:.9rem}.filters input,.filters select{border-radius:14px;min-height:42px;padding:10px 12px}.filters input[type=range]{min-height:26px;padding:0}.filters .ghost,.filters .primary{min-height:42px}.list-head{margin-top:16px}.list-head h2{display:none}.bean-grid{grid-template-columns:1fr}.modal{inset:env(safe-area-inset-top) 0 0 0;border-radius:0;width:100%;height:100dvh;max-height:none;overflow:hidden}.profile-panel{inset:env(safe-area-inset-top) 0 0 0;width:100%;height:100dvh;padding:max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));border-radius:0}.modal form{width:98%;max-width:98%;height:100%;padding:max(12px, env(safe-area-inset-top)) 0 max(12px, env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex;overflow-x:hidden}.modal-head{flex:none;margin-bottom:10px}.modal-head .icon{width:38px;min-height:38px;font-size:1.55rem}.form-grid{flex:auto;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;min-height:0;padding-bottom:12px;overflow:hidden auto}.form-grid .field,.form-grid .range-field{gap:5px;font-size:.9rem}.form-grid input,.form-grid select,.form-grid textarea{border-radius:14px;padding:10px 12px}.form-grid input,.form-grid select{min-height:42px}.form-grid input[type=range]{min-height:26px;padding:0}.dropzone{grid-template-columns:1fr}.dropzone img,.upload-icon{width:100%;height:180px}.modal-actions{background:#fffaf3;flex:none;grid-template-columns:3fr 7fr;gap:10px;margin-top:10px;padding:10px 0 0;display:grid;position:static}.modal-actions .secondary{grid-column:1}.modal-actions .primary{grid-column:2}}@media (width<=480px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.bean-card{border-radius:24px;grid-template-rows:180px 1fr}.bean-title-row{align-items:stretch}.score{min-width:52px;min-height:52px}.meter-list label{grid-template-columns:64px 1fr 48px}.card-actions{flex-direction:column}.primary,.secondary,.danger,.ghost{width:100%}}
