@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap";:root{font-family:DM Sans,sans-serif;color:#30271f;background:#f4f0e8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;flex-shrink:0;background:#2f3028;color:#eee9df;padding:28px 18px 20px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:2}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 42px}.brand-mark{width:40px;height:40px;border-radius:13px;background:#d2a46c;color:#34291f;display:grid;place-items:center}.brand strong{display:block;font:600 23px Playfair Display,serif;letter-spacing:-.5px}.brand span{display:block;color:#bdb7aa;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;margin-top:2px}.nav-label,.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#9b8265}.nav-label{color:#99988d;padding:0 12px 13px}.sidebar nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#c8c5bb;border-radius:9px;padding:12px;display:flex;align-items:center;gap:12px;text-align:left;font-size:13px}.nav-item:hover,.nav-item.active{background:#44443a;color:#fff}.nav-item.active{box-shadow:inset 3px 0 #d2a46c}.nav-count{margin-left:auto;color:#a8a496;font-size:11px}.sidebar-bottom{margin-top:auto}.storage-status{display:flex;align-items:center;gap:10px;padding:13px 10px 18px;border-top:1px solid #4b4a40}.status-dot{width:8px;height:8px;border-radius:50%;background:#d3a36b}.status-dot.online{background:#7db58c}.storage-status b{display:block;font-size:11px;font-weight:600}.storage-status small{display:block;color:#aaa99e;font-size:10px;margin-top:3px}.utility-button{display:flex;align-items:center;gap:9px;background:none;border:0;color:#c8c5bb;padding:8px 10px;font-size:11px;width:100%;text-align:left}.utility-button:hover{color:#fff}.version{color:#817f75;font-size:9px;letter-spacing:1.4px;padding:15px 10px 0}.main{margin-left:248px;width:calc(100% - 248px);min-height:100vh;display:flex;flex-direction:column}.topbar{height:72px;border-bottom:1px solid #e4ded3;display:flex;align-items:center;justify-content:space-between;padding:0 5.2%;background:#f8f5ef}.breadcrumb{font-size:10px;font-weight:700;letter-spacing:1.3px;color:#867d70}.breadcrumb span{padding:0 9px;color:#c0b7a8}.top-actions{display:flex;gap:9px}.button{border:1px solid transparent;border-radius:7px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:600;transition:.15s}.button-primary{background:#4c5141;color:#fff}.button-primary:hover{background:#373d30}.button-quiet{background:transparent;color:#514a40;border-color:#ded6c9}.button-quiet:hover,.button-outline:hover{background:#eee8dd}.button-outline{background:#fffdf8;border-color:#d9d0c2;color:#554b3e}.page{width:min(1160px,90%);margin:0 auto;padding:45px 0 30px;flex:1}.welcome{background:#e8e2d6;border-radius:15px;min-height:255px;padding:37px 43px;display:flex;justify-content:space-between;overflow:hidden;position:relative}.welcome h1,.page-title-row h1{font:500 38px/1.12 Playfair Display,serif;letter-spacing:-.7px;margin:13px 0 12px}.welcome h1 em{color:#98734e}.welcome p,.page-title-row p{font-size:13px;color:#746d61;max-width:490px;line-height:1.7;margin:0}.welcome-art{width:230px;position:relative;display:flex;align-items:center;justify-content:center}.sun{position:absolute;width:150px;height:150px;border-radius:50%;background:#d3b38c;right:23px;top:0}.cup{position:relative;width:125px;height:95px;background:#f7f3e9;border-radius:8px 8px 48px 48px;box-shadow:0 13px 18px #82715a30;transform:rotate(-7deg);margin-top:38px;z-index:1}.coffee-surface{height:17px;background:#61442f;border-radius:50%;margin:0 5px}.handle{position:absolute;width:43px;height:45px;border:10px solid #f7f3e9;border-left:0;border-radius:0 28px 28px 0;right:-32px;top:18px}.welcome-art span{position:absolute;right:0;bottom:0;font-size:9px;letter-spacing:1.8px;line-height:1.7;text-align:right;color:#82745f;text-transform:uppercase}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:19px 0 42px}.stat-card{background:#fbf9f4;border:1px solid #e9e3d9;border-radius:10px;padding:17px;display:flex;gap:12px;align-items:flex-start}.stat-icon{width:33px;height:33px;display:grid;place-items:center;background:#eee7db;color:#96734f;border-radius:8px}.stat-icon svg{width:17px}.stat-label{font-size:10px;color:#82796d;margin-bottom:5px}.stat-card strong{font:600 25px Playfair Display,serif;display:block}.stat-card small{font-size:9px;color:#9a9286}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:15px}.section-heading h2{font:500 24px Playfair Display,serif;margin:6px 0 0}.text-button{border:0;background:none;color:#71634f;font-size:11px;padding:8px}.text-button span{padding-left:5px}.second{margin-top:42px}.empty-state{background:#fbf9f4;border:1px dashed #d9d0c2;border-radius:12px;padding:35px 20px;text-align:center}.empty-icon{width:43px;height:43px;margin:0 auto 12px;border-radius:50%;background:#eee7db;color:#98734e;display:grid;place-items:center}.empty-state h3{font:500 20px Playfair Display,serif;margin:0 0 7px}.empty-state p{font-size:12px;color:#847b6f;margin:0 auto 17px;max-width:400px;line-height:1.6}.page-title-row{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.page-title-row h1{font-size:40px;margin:8px 0}.searchbar{height:44px;border:1px solid #e1d9cd;background:#fbf9f4;border-radius:8px;display:flex;align-items:center;gap:10px;padding:0 13px;margin-bottom:22px;color:#938675}.searchbar input{border:0;outline:0;background:transparent;width:100%;font-size:12px;color:#3d352c}.coffee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.coffee-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.coffee-card{border:1px solid #e6dfd4;background:#fbf9f4;border-radius:10px;overflow:hidden;text-align:left;padding:0;color:inherit;transition:.16s}.coffee-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #46372212}.coffee-card-art{height:150px;background:#e9e3d8;display:grid;place-items:center;position:relative;overflow:hidden}.coffee-card:nth-child(3n+2) .coffee-card-art{background:#e5e8dd}.coffee-card:nth-child(3n) .coffee-card-art{background:#e8e0d9}.bag{height:125px;width:83px;background:#b18a61;border-radius:5px 5px 9px 9px;box-shadow:7px 8px 14px #34281d28;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f8f0e5;position:relative;transform:rotate(-3deg);padding:10px;text-align:center}.coffee-card:nth-child(3n+2) .bag{background:#69725c}.coffee-card:nth-child(3n) .bag{background:#8b6b59}.bag:before{content:"";position:absolute;top:-5px;left:0;right:0;height:10px;background:#d4c2a7;border-radius:3px}.bag-seal{width:19px;height:19px;border:1px solid #ffffff88;border-radius:50%;margin-bottom:7px}.bag span{font-size:7px;letter-spacing:1px;text-transform:uppercase}.bag b{font:500 14px Playfair Display,serif;margin:5px 0;line-height:1.1}.bag small{font-size:6px;letter-spacing:1px;text-transform:uppercase}.coffee-card-count{position:absolute;bottom:9px;right:10px;font-size:9px;color:#766c5e;background:#f7f3e9c9;padding:4px 7px;border-radius:20px}.coffee-card-info{padding:13px 13px 14px;display:flex;align-items:center;justify-content:space-between;gap:5px}.coffee-card-info h3{font:500 17px Playfair Display,serif;margin:0 0 4px}.coffee-card-info p{font-size:10px;color:#867c70;margin:0}.acq{font-size:8px;color:#81796e;background:#eee9e0;border-radius:20px;padding:5px 7px;white-space:nowrap}.acq.in-stock{color:#4e7555;background:#e3ede2}.tasting-list,.journal-table{border:1px solid #e6dfd4;border-radius:10px;overflow:hidden;background:#fbf9f4}.tasting-row{width:100%;display:grid;grid-template-columns:2fr 1.1fr .8fr 1fr 1.1fr;gap:12px;align-items:center;text-align:left;padding:13px 16px;border:0;border-bottom:1px solid #eee8df;background:transparent;color:#51483e;font-size:10px}.tasting-row:last-child{border-bottom:0}.tasting-row:hover{background:#f3eee5}.row-coffee{display:flex;align-items:center;gap:10px}.mini-bean{width:30px;height:30px;border-radius:8px;background:#eee7db;color:#96734f;display:grid;place-items:center}.row-coffee b{display:block;font-size:11px;color:#40372d}.row-coffee small{display:block;color:#928879;font-size:9px;margin-top:3px}.context-cell{color:#7b7165}.sensory-cell{font-variant-numeric:tabular-nums;color:#75644f}.verdict{color:#7e756a}.verdict.love{color:#a06c45;font-weight:700}.table-head{display:grid;grid-template-columns:2fr 1.1fr .8fr 1fr 1.1fr;gap:12px;padding:12px 16px;background:#f0ebe2;color:#8c8172;font-size:8px;letter-spacing:1.2px;font-weight:700}.recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.recipe-card{background:#fbf9f4;border:1px solid #e6dfd4;border-radius:11px;padding:20px}.recipe-top{display:flex;justify-content:space-between;align-items:center}.recipe-icon{width:36px;height:36px;border-radius:9px;background:#e9e6dc;color:#75806a;display:grid;place-items:center}.tag{background:#eee8dd;color:#77634b;padding:6px 9px;border-radius:20px;font-size:9px}.recipe-card h3{font:500 20px Playfair Display,serif;margin:15px 0}.recipe-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:13px 0;border-top:1px solid #eee8df;border-bottom:1px solid #eee8df}.recipe-stats b{display:block;font:600 15px Playfair Display,serif}.recipe-stats small{display:block;color:#968b7d;font-size:9px;margin-top:4px}.pour-summary{font-size:10px;color:#927d62;margin-top:13px}.recipe-card p{font-size:10px;color:#82796e;line-height:1.6}.footer{text-align:center;padding:22px;color:#aaa092;font-size:8px;letter-spacing:1.5px}.notice{position:fixed;z-index:10;right:25px;top:85px;background:#3e4938;color:#fff;padding:11px 14px;border-radius:8px;font-size:11px;box-shadow:0 5px 20px #0002;display:flex;gap:14px;align-items:center}.notice button{background:none;border:0;color:#fff;display:grid;place-items:center}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;background:#201b16a8;display:grid;place-items:center;padding:20px}.modal{background:#f8f5ef;width:min(680px,100%);max-height:92vh;overflow:auto;border-radius:14px;box-shadow:0 20px 70px #0004}.modal-header{display:flex;justify-content:space-between;padding:25px 28px 18px;border-bottom:1px solid #e7dfd4;position:sticky;top:0;background:#f8f5ef;z-index:1}.modal-header h2{font:500 27px Playfair Display,serif;margin:7px 0 4px}.modal-header p{font-size:11px;color:#82796e;margin:0}.icon-button{border:0;background:#eee8df;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;color:#6d6255}.icon-button svg{width:16px}.modal-body{padding:22px 28px 26px}.modal-body form{display:grid;gap:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:grid;gap:7px;min-width:0}.field>span{font-size:10px;font-weight:700;color:#70665a}.field input,.field select,.field textarea{width:100%;border:1px solid #ded6ca;border-radius:6px;background:#fffdf9;color:#40372e;padding:10px 11px;outline:0;font-size:11px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9e805e;box-shadow:0 0 0 2px #9e805e20}.field textarea{resize:vertical}.form-section-title{font-size:9px;letter-spacing:1.3px;font-weight:700;color:#987b59;border-top:1px solid #e8e0d5;padding-top:13px;margin-top:3px}.form-section-title small{font-size:9px;letter-spacing:0;font-weight:400;color:#9a9084;margin-left:7px;text-transform:none}.segmented{display:flex;background:#eee9e0;border-radius:7px;padding:4px;gap:4px}.segmented button{flex:1;border:0;background:transparent;padding:9px 5px;border-radius:5px;font-size:10px;color:#74695b}.segmented button.selected{background:#fffdf9;color:#4a4136;box-shadow:0 1px 4px #0001;font-weight:700}.inline-add{border:1px dashed #d6cbbc;border-radius:6px;background:#f2ede5;padding:10px;color:#806747;font-size:10px;display:flex;align-items:center;gap:6px;width:100%}.sensory-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.sensory-control{background:#f0ebe2;border-radius:8px;padding:12px}.sensory-control>div:first-child{display:flex;justify-content:space-between;align-items:center}.sensory-control b{font-size:11px}.sensory-control strong{font:600 16px Playfair Display,serif;color:#92714e}.sensory-control strong small{font:400 9px DM Sans,sans-serif;color:#9b9184}.sensory-control input{width:100%;accent-color:#89704f;margin:13px 0 5px}.range-labels{display:flex;justify-content:space-between;color:#928779;font-size:8px}.tag-picker{display:flex;flex-wrap:wrap;gap:6px}.tag-picker button{border:1px solid #ddd4c7;background:#fffdf9;color:#776c60;border-radius:20px;padding:6px 9px;font-size:9px}.tag-picker button.picked{background:#e5e9df;border-color:#aab49e;color:#4f654c}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid #e8e0d5}.helper-note{background:#eee9df;padding:10px;border-radius:6px;color:#807568;font-size:10px;line-height:1.6;margin:0}.loading{height:100vh;display:grid;place-content:center;justify-items:center;color:#7c6a55}.loading p{font:500 18px Playfair Display,serif}.loading .brand-mark{margin:auto}@media(max-width:1050px){.sidebar{width:210px}.main{margin-left:210px;width:calc(100% - 210px)}.coffee-grid,.coffee-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(2,1fr)}.welcome-art{width:180px}}@media(max-width:720px){.app-shell{display:block}.sidebar{position:sticky;top:0;width:100%;height:auto;padding:10px 13px;display:block}.brand{padding:0 3px 10px}.brand-mark{width:34px;height:34px}.brand strong{font-size:19px}.brand span{font-size:8px}.sidebar .nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow:auto;gap:4px}.nav-item{white-space:nowrap;padding:9px 10px;font-size:10px;gap:6px}.nav-item svg{width:15px}.nav-count{display:none}.main{margin:0;width:100%}.topbar{height:auto;min-height:58px;padding:10px 5%;gap:8px}.breadcrumb{font-size:8px}.top-actions{gap:5px}.top-actions .button{font-size:9px;padding:8px}.page{padding:27px 0}.welcome{padding:25px;min-height:215px}.welcome h1{font-size:29px}.welcome p{font-size:11px;max-width:260px}.welcome-art{width:100px;opacity:.75}.sun{width:90px;height:90px;right:0}.cup{width:75px;height:60px;margin-top:35px}.handle{width:27px;height:30px;border-width:7px;right:-22px}.welcome-art span{display:none}.stats-grid{gap:8px;margin:12px 0 30px}.stat-card{padding:11px;gap:8px}.stat-icon{width:28px;height:28px}.stat-label{font-size:8px}.stat-card strong{font-size:20px}.stat-card small{font-size:8px}.section-heading h2{font-size:21px}.coffee-grid,.coffee-grid.compact{gap:9px}.coffee-card-art{height:125px}.bag{transform:scale(.85) rotate(-3deg)}.coffee-card-info{padding:10px;display:block}.coffee-card-info h3{font-size:15px}.coffee-card-info p{font-size:9px;margin-bottom:7px}.page-title-row{align-items:start;gap:10px;flex-direction:column}.page-title-row h1{font-size:34px}.page-title-row p{font-size:11px}.page-title-row .button{align-self:flex-start}.tasting-row{grid-template-columns:1.5fr .8fr .8fr;padding:11px 9px;gap:6px;font-size:9px}.tasting-row .context-cell,.tasting-row .sensory-cell{display:none}.table-head{grid-template-columns:1.5fr .8fr .8fr;padding:10px 9px}.table-head span:nth-child(2),.table-head span:nth-child(4){display:none}.row-coffee b{font-size:10px}.row-coffee small,.verdict{font-size:8px}.recipe-grid{grid-template-columns:1fr}.recipe-card{padding:15px}.modal-backdrop{padding:0;align-items:end}.modal{border-radius:14px 14px 0 0;max-height:94vh}.modal-header{padding:20px}.modal-body{padding:18px 20px 24px}.form-grid{gap:10px}.sensory-inputs{grid-template-columns:1fr}.sensory-control{padding:10px}.notice{top:145px;right:12px;left:12px;justify-content:space-between}}@media(max-width:390px){.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%}.top-actions .button{flex:1}.coffee-grid{grid-template-columns:1fr 1fr}.coffee-card-art{height:110px}.bag{transform:scale(.75) rotate(-3deg)}.coffee-card-info h3{font-size:13px}.acq{font-size:7px}.form-grid{grid-template-columns:1fr}.welcome-art{display:none}}.brand{border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;border-radius:10px;margin:0;width:100%}.brand:focus-visible{outline:2px solid #d2a46c;outline-offset:4px}.brand-mark{background:#d9c7aa;color:#3b4034;border-radius:12px;position:relative}.brand-mark svg{transform:rotate(-28deg)}.brand-logo{display:block;width:100%;max-width:205px;height:auto;object-fit:contain;object-position:left center;border-radius:4px}.brand{padding:8px 4px 22px}.brand-mark svg{transform:none}.coffee-card-photo{width:100%;height:100%;object-fit:cover;display:block}.coffee-card-art:has(.coffee-card-photo){overflow:hidden;background:#eee8df}.url-import{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.url-import>span,.import-message{font-size:10px;color:#82796e;line-height:1.5;margin:0}.import-message{background:#eee9df;padding:9px 11px;border-radius:6px}.coffee-image-preview{max-width:180px;max-height:120px;object-fit:cover;border-radius:7px;border:1px solid #e2d9cd}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:720px){.brand{display:flex;justify-content:center;padding:0 3px 8px}.brand-logo{max-width:145px;max-height:44px;object-fit:contain;object-position:center}}.product-link{display:inline-flex;align-items:center;gap:6px;width:max-content;color:#806747;font-size:10px;text-decoration:none}.product-link:hover{text-decoration:underline}.brand{padding:4px 8px 24px;justify-content:flex-start}.brand-logo{width:100%;max-width:164px;max-height:126px;height:auto;object-fit:contain;object-position:left center;border-radius:0}.welcome-art{width:210px;display:flex;align-items:center;justify-content:center;position:relative}.welcome-logo{display:block;width:min(100%,190px);height:190px;object-fit:contain;opacity:.9}.coffee-card-art:has(.coffee-card-photo){display:flex;align-items:center;justify-content:center;padding:12px;background:#eee8df}.coffee-card-photo{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.mini-bean{background:#e9e4d9;color:#75634e}@media(max-width:720px){.brand{justify-content:center;padding:0 3px 8px}.brand-logo{width:auto;max-width:120px;max-height:42px;object-fit:contain;object-position:center}.welcome-art{width:100px}.welcome-logo{width:90px;height:90px}}
