@font-face{font-family:Tangerine;src:url(https://cdn.shopify.com/s/files/1/0995/4666/1194/files/TangerineRegular.woff2?v=1766065001) format("woff2");font-weight:400;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Lato,sans-serif;background:#f7f4f3;color:#564e4b;min-height:100vh}.land{min-height:100vh;overflow-x:hidden;background:#f7f4f3;color:#564e4b}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.particle-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%}.land-hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f7f4f3;overflow:hidden}.land-hero-content{position:relative;z-index:2;text-align:center;padding:2rem}.land-logo{height:70px;margin-bottom:1.5rem}.land-title{font-family:Tangerine,serif;font-size:5.5rem;color:#564e4b;margin-bottom:1rem;line-height:1}.land-tagline{font-size:1.1rem;color:#777;line-height:1.7;max-width:420px;margin:0 auto 2rem}.land-note-cycle{margin-bottom:2.5rem;min-height:60px}.land-note-label{font-size:.72rem;color:#adadad;display:block;margin-bottom:.3rem}.land-note-value{display:inline-block;font-family:Tangerine,serif;font-size:2.8rem;color:#564e4b;animation:fadeUp 2.8s ease infinite;min-width:200px}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}12%{opacity:1;transform:translateY(0)}82%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.land-cta{padding:1rem 2.5rem;background:#564e4b;color:#f7f4f3;border:none;border-radius:3px;font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer;letter-spacing:.04em;transition:all .3s}.land-cta:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 25px #564e4b33}.land-statement{padding:6rem 2rem;text-align:center;background:#564e4b;color:#f7f4f3}.land-statement-text{font-size:1.8rem;font-weight:300;line-height:1.5;max-width:550px;margin:0 auto 1.5rem}.land-statement-text strong{font-weight:800}.land-statement-sub{font-size:.85rem;color:#ffffff80;max-width:500px;margin:0 auto;line-height:1.6}.land-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;text-align:center;margin-bottom:2.5rem;color:#adadad}.land-steps{padding:5rem 2rem;max-width:900px;margin:0 auto}.land-steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem}@media (max-width: 700px){.land-steps-grid{grid-template-columns:1fr}}.land-step{text-align:left;padding:1.5rem;border-left:2px solid #e0dedb;transition:border-color .3s}.land-step:hover{border-color:#564e4b}.land-step-num{font-size:.6rem;font-weight:800;color:#adadad;letter-spacing:.1em;margin-bottom:.8rem}.land-step h3{font-size:1.1rem;font-weight:700;color:#564e4b;margin-bottom:.6rem}.land-step p{font-size:.8rem;color:#777;line-height:1.6}.land-demo-section{padding:4rem 2rem;max-width:820px;margin:0 auto}.land-demo-window{background:#fff;border-radius:10px;overflow:hidden;border:1px solid #e0dedb;box-shadow:0 20px 50px #564e4b14}.land-demo-bar{display:flex;align-items:center;gap:.8rem;padding:.7rem 1rem;background:#fdfcfb;border-bottom:1px solid #e0dedb}.land-demo-bar span{font-size:.62rem;color:#adadad}.land-demo-dots{display:flex;gap:.35rem}.land-demo-dots span{width:9px;height:9px;border-radius:50%}.land-demo-dots span:first-child{background:#ff5f56}.land-demo-dots span:nth-child(2){background:#ffbd2e}.land-demo-dots span:nth-child(3){background:#27c93f}.land-demo-content{display:grid;grid-template-columns:1fr 200px;gap:1.5rem;padding:1.5rem}@media (max-width: 600px){.land-demo-content{grid-template-columns:1fr}}.land-demo-formula-title{font-size:.75rem;font-weight:700;color:#564e4b;margin-bottom:1rem}.land-demo-rows{display:flex;flex-direction:column;gap:.35rem}.land-demo-row{display:grid;grid-template-columns:35px 1fr 50%;align-items:center;gap:.5rem}.land-demo-qty{font-size:.68rem;font-weight:700;color:#564e4b;text-align:right;font-variant-numeric:tabular-nums}.land-demo-name{font-size:.65rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.land-demo-bar{height:4px;border-radius:2px;background:linear-gradient(90deg,#564e4b,#e0dedb);opacity:.4}.land-demo-sliders-title{font-size:.62rem;font-weight:700;color:#adadad;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.8rem}.land-demo-slider-row{display:grid;grid-template-columns:55px 1fr 22px;align-items:center;gap:.4rem;margin-bottom:.5rem}.land-demo-slider-label{font-size:.65rem;color:#564e4b}.land-demo-slider-track{height:4px;background:#e0dedb;border-radius:2px;overflow:hidden}.land-demo-slider-fill{height:100%;border-radius:2px}.land-demo-slider-val{font-size:.6rem;color:#adadad;text-align:right}.land-demo-ifra{margin-top:1rem;padding:.5rem .6rem;background:#e8f5e9;border-radius:4px;display:flex;align-items:center;gap:.4rem}.land-demo-ifra-badge{font-size:.55rem;font-weight:800;background:#2e7d32;color:#fff;padding:.1rem .4rem;border-radius:2px}.land-demo-ifra span:last-child{font-size:.6rem;color:#2e7d32}.land-features{padding:5rem 2rem;max-width:900px;margin:0 auto}.land-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e0dedb;border-radius:8px;overflow:hidden}@media (max-width: 700px){.land-features-grid{grid-template-columns:1fr}}.land-feature{padding:1.8rem;background:#fff;transition:background .2s}.land-feature:hover{background:#fdfcfb}.land-feature h3{font-size:.82rem;font-weight:700;color:#564e4b;margin-bottom:.5rem}.land-feature p{font-size:.72rem;color:#777;line-height:1.6}.land-final{padding:6rem 2rem;text-align:center;background:#564e4b;color:#f7f4f3}.land-final-quote{font-style:italic;font-size:.85rem;color:#fff6;margin-bottom:2rem;max-width:450px;margin-left:auto;margin-right:auto}.land-final-title{font-family:Tangerine,serif;font-size:3rem;margin-bottom:2rem}.land-final .land-cta{background:#f7f4f3;color:#564e4b}.land-final .land-cta:hover{background:#fff}.land-footer{text-align:center;padding:2.5rem 2rem;background:#f7f4f3;border-top:1px solid #e0dedb}.land-footer-logo{height:35px;margin-bottom:.6rem;opacity:.5}.land-footer p{font-size:.68rem;color:#adadad;letter-spacing:.05em}.auth-back{position:absolute;top:1rem;left:1rem;background:none;border:none;font-family:inherit;font-size:.78rem;color:#564e4b;cursor:pointer;font-weight:600}.auth-back:hover{color:#b5161b}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.auth-card{background:#fff;border:1px solid #e0dedb;border-radius:8px;padding:2.5rem;width:100%;max-width:360px;text-align:center;position:relative}.auth-logo{height:50px;margin-bottom:.5rem}.auth-title{font-family:Tangerine,serif;font-size:3rem;font-weight:400;color:#564e4b}.auth-subtitle{font-size:.72rem;color:#adadad;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem}.auth-form{display:flex;flex-direction:column;gap:.7rem}.auth-input{padding:.7rem 1rem;border:1px solid #e0dedb;border-radius:4px;font-size:.82rem;font-family:inherit;color:#564e4b}.auth-input:focus{outline:none;border-color:#564e4b}.auth-btn{padding:.75rem;background:#564e4b;color:#f7f4f3;border:none;border-radius:4px;font-weight:700;font-size:.8rem;cursor:pointer;text-transform:uppercase;letter-spacing:.05em}.auth-btn:disabled{opacity:.4}.auth-error{color:#d92105;font-size:.75rem;margin-top:.8rem}.auth-toggle{font-size:.75rem;color:#adadad;margin-top:1rem}.auth-toggle button{background:none;border:none;color:#564e4b;font-weight:700;cursor:pointer;text-decoration:underline}.app-layout{display:flex;height:100vh}.sidebar{width:240px;background:#fff;border-right:1px solid #e0dedb;display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #e0dedb}.sidebar-logo{height:42px}.sidebar-new-btn{background:#564e4b;color:#f7f4f3;border:none;border-radius:4px;padding:.35rem .7rem;font-size:.7rem;font-weight:700;cursor:pointer}.sidebar-projects{flex:1;overflow-y:auto;padding:.5rem}.sidebar-project{display:flex;align-items:center;width:100%;border-radius:4px;transition:background .1s}.sidebar-project:hover{background:#f7f4f3}.sidebar-project.active{background:#564e4b;color:#f7f4f3}.sidebar-project-main{flex:1;min-width:0;display:flex;justify-content:space-between;align-items:center;padding:.6rem .4rem .6rem .8rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;font-size:.75rem;color:inherit}.sidebar-project-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}.sidebar-project-meta{font-size:.62rem;color:#adadad}.sidebar-project.active .sidebar-project-meta{color:#ccc}.sidebar-project.pending{opacity:.7}.bottle-btn{background:none;border:none;cursor:pointer;padding:.3rem .6rem .3rem .2rem;display:flex;align-items:center;color:#c8c2bd;flex-shrink:0}.bottle-btn:hover{color:#b5161b}.bottle-icon{transition:transform .12s}.bottle-btn:hover .bottle-icon{transform:scale(1.15)}.sidebar-project.active .bottle-btn{color:#d8b6b6}.sidebar-project.active .bottle-icon.filled{fill:#ff6b6b;stroke:#ff6b6b}.sidebar-group-title{display:flex;align-items:center;gap:.35rem;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#b5161b;margin:.8rem .8rem .3rem;padding-top:.6rem;border-top:1px solid #e0dedb}.accord-tag{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;background:#8e24aa;color:#fff;font-size:.5rem;font-weight:700;margin-right:.3rem;flex-shrink:0}.technique-note{font-size:.7rem;color:#adadad;font-style:italic;display:block;margin-top:.3rem}.pending-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#e6a817;margin-right:.4rem;animation:pulse 1.2s infinite;vertical-align:middle}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.sidebar-empty{font-size:.72rem;color:#adadad;padding:1rem;text-align:center}.sidebar-footer{border-top:1px solid #e0dedb;padding:.7rem;position:relative}.sidebar-profile-btn{background:none;border:none;font-family:inherit;font-size:.72rem;color:#564e4b;cursor:pointer;font-weight:600}.sidebar-profile-menu{position:absolute;bottom:100%;left:.5rem;right:.5rem;background:#fff;border:1px solid #e0dedb;border-radius:4px;padding:.3rem;box-shadow:0 -2px 8px #0000000d}.sidebar-menu-item{display:block;width:100%;padding:.5rem .7rem;background:none;border:none;font-family:inherit;font-size:.72rem;color:#564e4b;cursor:pointer;text-align:left;border-radius:3px}.sidebar-menu-item:hover{background:#f7f4f3}.main-column{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.navbar{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background:#fff;border-bottom:1px solid #e0dedb;flex-shrink:0}.navbar-toggle{background:none;border:none;cursor:pointer;font-size:.85rem;color:#adadad;padding:.3rem .5rem;border-radius:4px;flex-shrink:0}.navbar-toggle:hover{color:#564e4b;background:#f7f4f3}.navbar-tabs{display:flex;gap:.2rem;flex-wrap:wrap}.navbar-tab{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .8rem;background:none;border:none;border-radius:6px;font-family:inherit;font-size:.76rem;font-weight:600;color:#8a817c;cursor:pointer;transition:background .12s,color .12s}.navbar-tab:hover{background:#f7f4f3;color:#564e4b}.navbar-tab.active{background:#564e4b;color:#f7f4f3}.navbar-tab-icon{font-size:.9rem;line-height:1}@media (max-width: 720px){.navbar-tab-label{display:none}.navbar-tab{padding:.4rem .6rem}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;gap:1rem;padding:.7rem 1.2rem;border-bottom:1px solid #e0dedb;background:#fff;min-height:52px}.topbar-toggle{background:none;border:none;cursor:pointer;font-size:.9rem;color:#adadad}.topbar-title{flex:1}.topbar-title-row{display:flex;align-items:center;gap:.5rem}.topbar-bottle{background:none;border:none;cursor:pointer;padding:.1rem;display:flex;align-items:center;flex-shrink:0}.topbar-bottle svg{transition:transform .12s}.topbar-bottle:hover svg{transform:scale(1.12)}.topbar-title h1{font-family:Tangerine,serif;font-size:2rem;font-weight:400;cursor:pointer;line-height:1.1}.topbar-title h1:hover{color:#b5161b}.topbar-desc{font-size:.7rem;color:#adadad}.topbar-name-input{font-family:Tangerine,serif;font-size:2rem;border:none;border-bottom:2px solid #564e4b;outline:none;background:transparent;width:300px}.topbar-actions{display:flex;gap:.4rem}.topbar-btn{padding:.35rem .7rem;border:1px solid #e0dedb;background:#fff;border-radius:4px;font-size:.68rem;font-family:inherit;cursor:pointer;font-weight:600;color:#564e4b}.topbar-btn.active{background:#564e4b;color:#f7f4f3;border-color:#564e4b}.topbar-btn.neutralize{border-color:#b5161b;color:#b5161b}.topbar-btn.merge{border-color:#1565c0;color:#1565c0}.topbar-btn.save{background:#564e4b;color:#f7f4f3;border-color:#564e4b}.topbar-btn.delete{border-color:#d92105;color:#d92105}.topbar-btn.delete:hover{background:#fef2f0}.workspace{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:1.2rem;padding:1rem;overflow-y:auto;align-items:start}.formula-section{min-width:0}@media (max-width: 900px){.workspace{grid-template-columns:1fr}}.new-formula-prompt{grid-column:1 / -1;max-width:560px;margin:3rem auto;text-align:center}.new-formula-prompt h2{font-family:Tangerine,serif;font-size:2.5rem;margin-bottom:.3rem}.new-formula-prompt p{font-size:.82rem;color:#adadad;margin-bottom:1.2rem}.new-formula-prompt textarea{width:100%;padding:1rem;border:1px solid #e0dedb;border-radius:6px;font-family:inherit;font-size:.85rem;resize:vertical;color:#564e4b;min-height:100px}.new-formula-prompt textarea:focus{outline:none;border-color:#564e4b}.create-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.8rem;gap:1rem}.source-selector{display:flex;background:#fff;border:1px solid #e0dedb;border-radius:4px;overflow:hidden}.source-option{padding:.5rem 1rem;background:none;border:none;font-family:inherit;font-size:.72rem;color:#adadad;cursor:pointer;transition:all .15s;font-weight:600}.source-option:first-child{border-right:1px solid #e0dedb}.source-option.active{background:#564e4b;color:#f7f4f3}.source-option:disabled{opacity:.35;cursor:not-allowed}.create-btn{padding:.6rem 2rem;background:#564e4b;color:#f7f4f3;border:none;border-radius:4px;font-weight:700;font-size:.78rem;cursor:pointer;text-transform:uppercase;letter-spacing:.04em}.create-btn:disabled{opacity:.4;cursor:not-allowed}.source-hint{font-size:.68rem;color:#adadad;margin-top:.6rem;font-style:italic}.prompt-tabs{display:flex;justify-content:center;gap:0;margin-bottom:1.2rem;border-bottom:1px solid #e0dedb}.prompt-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.5rem 1.5rem;font-family:inherit;font-size:.78rem;font-weight:600;color:#adadad;cursor:pointer;transition:all .15s}.prompt-tab.active{color:#564e4b;border-bottom-color:#564e4b}.prompt-tab:hover{color:#564e4b}.import-form{text-align:left}.import-name-input{width:100%;padding:.7rem 1rem;border:1px solid #e0dedb;border-radius:6px;font-family:inherit;font-size:.85rem;color:#564e4b;margin-bottom:1rem}.import-name-input:focus{outline:none;border-color:#564e4b}.import-file-section{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.import-file-label{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem;border:1.5px dashed #e0dedb;border-radius:6px;cursor:pointer;font-size:.78rem;color:#adadad;transition:border-color .15s}.import-file-label:hover{border-color:#564e4b;color:#564e4b}.import-file-clear{background:none;border:none;font-size:1.2rem;color:#adadad;cursor:pointer;padding:.2rem .5rem}.import-or{font-size:.72rem;color:#adadad;text-align:center;margin-bottom:.8rem}.import-table{margin-bottom:1rem}.import-table-header{display:grid;grid-template-columns:1fr 100px 70px 28px;gap:.4rem;padding:.3rem 0;font-size:.65rem;font-weight:700;color:#adadad;text-transform:uppercase;letter-spacing:.05em}.import-table-row{display:grid;grid-template-columns:1fr 100px 70px 28px;gap:.4rem;margin-bottom:.3rem}.import-table-row input{padding:.45rem .6rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.78rem;color:#564e4b;min-width:0}.import-table-row input:focus{outline:none;border-color:#564e4b}.import-remove-btn{background:none;border:none;color:#adadad;font-size:1rem;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.import-remove-btn:hover{color:#b5161b}.import-add-row{background:none;border:1px dashed #e0dedb;border-radius:4px;padding:.4rem;width:100%;font-family:inherit;font-size:.72rem;color:#adadad;cursor:pointer}.import-add-row:hover{border-color:#564e4b;color:#564e4b}.import-form .create-btn{width:100%;margin-top:.5rem}.import-accord-check{display:flex;align-items:center;gap:.5rem;margin:.8rem 0 .5rem;font-size:.75rem;color:#564e4b;cursor:pointer}.import-accord-check input{accent-color:#8E24AA}.import-example{background:#fff;border:1px solid #e0dedb;border-radius:6px;padding:.8rem 1rem;margin-bottom:1rem}.import-example-title{font-size:.68rem;font-weight:700;color:#adadad;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}.import-example-table{width:100%;border-collapse:collapse;font-size:.72rem;margin-bottom:.5rem}.import-example-table th{text-align:left;padding:.25rem .5rem;border-bottom:1px solid #e0dedb;color:#564e4b;font-weight:700}.import-example-table td{padding:.25rem .5rem;color:#777}.import-example-note{font-size:.65rem;color:#adadad;line-height:1.4}.creating-banner{grid-column:1 / -1;display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#fff;border:1px solid #e0dedb;border-radius:4px;margin-bottom:1rem;font-size:.75rem;color:#564e4b}.creating-banner-dot{width:8px;height:8px;border-radius:50%;background:#e6a817;animation:pulse 1.2s infinite;flex-shrink:0}.creating-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem}.creating-state h2{font-family:Tangerine,serif;font-size:2.2rem;color:#564e4b;margin-bottom:.5rem}.creating-brief{font-size:.88rem;color:#564e4b;font-style:italic;margin-bottom:.8rem}.creating-hint{font-size:.78rem;color:#adadad;margin-bottom:1.5rem;max-width:400px;margin-left:auto;margin-right:auto}.creating-new-btn{padding:.5rem 1.5rem;background:#fff;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.75rem;font-weight:600;color:#564e4b;cursor:pointer}.creating-new-btn:hover{border-color:#564e4b}.creating-spinner{width:32px;height:32px;border:3px solid #e0dedb;border-top-color:#564e4b;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.formula-card{background:#fff;border:1px solid #e0dedb;border-radius:6px;overflow:hidden}.formula-header{padding:.8rem 1.2rem;border-bottom:1px solid #e0dedb;background:#fdfcfb}.notes-line{display:flex;gap:1.2rem;font-size:.72rem;color:#adadad;flex-wrap:wrap}.notes-line strong{color:#564e4b}.version-tabs{display:flex;gap:.25rem;margin-bottom:.6rem;flex-wrap:wrap}.version-tab-wrap{display:flex;align-items:center;background:#fff;border:1px solid #e0dedb;border-radius:4px;overflow:hidden}.version-tab-wrap:hover{border-color:#564e4b}.version-tab-wrap.active{background:#564e4b;border-color:#564e4b}.version-tab-btn{padding:.35rem .6rem;background:none;border:none;color:#adadad;font-size:.68rem;font-family:inherit;cursor:pointer}.version-tab-wrap.active .version-tab-btn{color:#f7f4f3;font-weight:700}.version-delete{background:none;border:none;border-left:1px solid rgba(255,255,255,.2);color:#fff9;font-size:.8rem;cursor:pointer;padding:.2rem .4rem;line-height:1}.version-delete:hover{color:#fff}.formula-table-wrapper{overflow-x:auto}.formula-table{width:100%;border-collapse:collapse;font-size:.78rem}.formula-table thead{background:#fdfcfb}.formula-table th{padding:.5rem .8rem;text-align:left;font-weight:700;color:#adadad;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e0dedb}.formula-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.formula-table th.sortable:hover{color:#564e4b}.formula-table th.qty-col{width:70px;text-align:right}.formula-table th.cas-col{width:95px;text-align:right}.material-row{cursor:pointer;transition:background .1s}.material-row:hover{background:#faf8f7}.material-row td{padding:.45rem .8rem;border-bottom:1px solid #f0edeb;vertical-align:middle}.material-row .qty{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.qty-prev{display:block;text-decoration:line-through;color:#ccc;font-size:.65rem;font-weight:400}.qty-changed{color:#b5161b}.qty-edit{width:50px;padding:.2rem;border:1px solid #564e4b;border-radius:3px;font-size:.75rem;text-align:right;font-family:inherit}.material-new{background:#f4faf6!important}.new-badge{display:inline-block;font-size:.55rem;padding:.08rem .3rem;border-radius:3px;margin-left:.3rem;background:#e5ffe5;color:#090;text-transform:uppercase;font-weight:700;vertical-align:middle}.remove-ing-btn{background:none;border:none;color:#ccc;font-size:1rem;cursor:pointer;padding:0 .3rem;line-height:1;vertical-align:middle;margin-right:.3rem;border-radius:2px}.remove-ing-btn:hover{color:#d92105;background:#fef2f0}.material-row .mat{color:#564e4b;vertical-align:middle}.mat-inner{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem}.mat-name{margin-right:.3rem}.material-row .cas{text-align:right;color:#b5161b;font-size:.7rem;font-variant-numeric:tabular-nums}.role-badge{display:inline-block;font-size:.55rem;padding:.08rem .3rem;border-radius:3px;margin-left:.25rem;text-transform:uppercase;font-weight:700;vertical-align:middle}.role-top{background:#fff8e1;color:#e6a817}.role-heart{background:#f3e5f5;color:#8e24aa}.role-base{background:#e8f5e9;color:#2e7d32}.note-badge{display:inline-block;font-size:.55rem;padding:.08rem .3rem;border-radius:3px;margin-left:.25rem;background:#e3f2fd;color:#1565c0;vertical-align:middle;font-weight:600}.contrib-badges{margin-left:.2rem}.contrib-badge{display:inline-block;font-size:.5rem;padding:.04rem .25rem;border-radius:2px;margin-left:.12rem;background:#f0edeb;color:#adadad;vertical-align:middle}.total-row td{padding:.6rem .8rem;border-top:2px solid #564e4b}.total-row .qty{text-align:right;font-weight:700}.total-diff{font-size:.68rem;margin-left:.8rem;font-weight:700}.total-diff.over{color:#b5161b}.total-diff.under{color:#1565c0}.row-marks{display:inline-flex;gap:.15rem;margin-left:.5rem;vertical-align:middle}.row-mark{background:none;border:1px solid #e0dedb;color:#b8b2ae;width:20px;height:20px;border-radius:4px;font-size:.72rem;line-height:1;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:all .12s}.row-mark:hover{border-color:#564e4b;color:#564e4b}.row-mark.active{color:#fff;font-weight:700}.row-mark-up.active{background:#2e7d32;border-color:#2e7d32}.row-mark-down.active{background:#1565c0;border-color:#1565c0}.row-mark-remove.active{background:#b5161b;border-color:#b5161b}.material-row.marked-remove .mat-name{text-decoration:line-through;opacity:.6}.material-row.marked-up{background:#f4faf6}.material-row.marked-down{background:#f3f7fc}.material-row.marked-remove{background:#fdf4f3}.ing-comment{flex:1 1 120px;min-width:120px;margin-left:.5rem;padding:.2rem .45rem;border:1px solid #f0edeb;border-radius:4px;font-family:inherit;font-size:.68rem;color:#564e4b;background:#fdfcfb;vertical-align:middle}.ing-comment:focus{outline:none;border-color:#6a4c93;background:#fff}.ing-comment::placeholder{color:#cfc9c5}.mat-name-link{cursor:pointer;border-bottom:1px dotted #b5a9d1;transition:color .12s}.mat-name-link:hover{color:#6a4c93;border-bottom-color:#6a4c93}.enc-sub{color:#8a817c;font-size:.78rem;margin:-.4rem 0 1rem}.enc-search{width:100%;box-sizing:border-box;padding:.7rem 1rem;border:1px solid #e0dedb;border-radius:8px;font-family:inherit;font-size:.9rem;margin-bottom:1.2rem}.enc-search:focus{outline:none;border-color:#6a4c93}.enc-loading{color:#8a817c;font-size:.85rem;padding:1rem 0}.enc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}.enc-card{text-align:left;background:#fff;border:1px solid #e0dedb;border-radius:10px;padding:.8rem .9rem;cursor:pointer;transition:all .13s;display:flex;flex-direction:column;gap:.35rem;font-family:inherit}.enc-card:hover{border-color:#6a4c93;box-shadow:0 4px 14px #6a4c931f;transform:translateY(-1px)}.enc-card-top{display:flex;align-items:center;gap:.55rem}.enc-card-img{width:40px;height:40px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#f4f2f0}.enc-card-img-ph{display:flex;align-items:center;justify-content:center;font-size:1.1rem}.enc-card-img-ph.ph-nat{background:#e8f5e9}.enc-card-img-ph.ph-syn{background:#ede7f6}.enc-card-name{font-weight:700;color:#564e4b;font-size:.86rem;line-height:1.2;flex:1}.enc-chip{font-size:.55rem;text-transform:uppercase;font-weight:700;padding:.12rem .4rem;border-radius:3px;white-space:nowrap;flex-shrink:0}.enc-chip-nat{background:#e8f5e9;color:#2e7d32}.enc-chip-syn{background:#ede7f6;color:#6a4c93}.enc-card-family{font-size:.7rem;color:#6a4c93;font-weight:600;text-transform:capitalize}.enc-card-desc{font-size:.72rem;color:#8a817c;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.enc-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.3rem}.enc-card-cas{font-size:.62rem;color:#b5161b;font-variant-numeric:tabular-nums}.enc-card-nodata{font-size:.6rem;color:#c8c2bd;font-style:italic}.mi-card{max-width:640px}.mi-loading{text-align:center;padding:2rem;color:#8a817c}.mi-header{margin-bottom:.8rem;display:flex;gap:1rem;align-items:center}.mi-image{width:96px;height:96px;border-radius:12px;object-fit:cover;flex-shrink:0;background:#f4f2f0}.mi-header-text{min-width:0}.mi-name{font-family:Tangerine,serif;font-size:2.4rem;color:#564e4b;line-height:1;margin:0 0 .4rem}.mi-tags{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.mi-cas{font-size:.72rem;color:#b5161b;font-variant-numeric:tabular-nums;font-weight:600}.mi-badge{font-size:.58rem;text-transform:uppercase;font-weight:700;padding:.15rem .45rem;border-radius:4px}.mi-natural{background:#e8f5e9;color:#2e7d32}.mi-synth{background:#ede7f6;color:#6a4c93}.mi-family{background:#fff3e0;color:#e6a817;text-transform:capitalize}.mi-odor{background:#faf8f7;border-left:3px solid #6a4c93;border-radius:0 6px 6px 0;padding:.7rem .9rem;margin-bottom:1rem}.mi-odor p{font-size:.84rem;color:#564e4b;line-height:1.5;margin:0}.mi-pyramid{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}.mi-pyr-row{display:flex;gap:.6rem;align-items:baseline;font-size:.8rem}.mi-pyr-label{font-size:.6rem;text-transform:uppercase;font-weight:700;color:#8a817c;width:48px;flex-shrink:0}.mi-section{margin-bottom:1.1rem}.mi-section-title{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:#b5161b;font-weight:700;margin:0 0 .5rem;border-bottom:1px solid #f0edeb;padding-bottom:.3rem}.mi-row{display:flex;justify-content:space-between;gap:1rem;padding:.28rem 0;border-bottom:1px solid #f7f4f3;font-size:.8rem}.mi-row-label{color:#8a817c;flex-shrink:0}.mi-row-value{color:#564e4b;text-align:right;font-weight:500}.mi-src{font-size:.55rem;text-transform:uppercase;color:#b8b2ae;margin-left:.4rem;padding:.05rem .3rem;background:#f4f2f0;border-radius:3px;font-weight:700;letter-spacing:.03em}.mi-src-link{text-decoration:none}.mi-src-link:hover{color:#6a4c93;background:#ede7f6}.mi-usage{display:flex;gap:.8rem}.mi-usage-item{flex:1;text-align:center;background:#faf8f7;border-radius:8px;padding:.6rem}.mi-usage-num{display:block;font-size:1.3rem;font-weight:700;color:#6a4c93}.mi-usage-lbl{font-size:.6rem;text-transform:uppercase;color:#8a817c;font-weight:700}.mi-synonyms{font-size:.72rem;color:#8a817c;line-height:1.4;margin-top:.6rem}.mi-empty{color:#8a817c;font-size:.82rem;font-style:italic;padding:.5rem 0}.mi-notfound{text-align:center;padding:1rem 0}.sidebar-enc-btn{margin-top:.4rem}.offers{display:flex;flex-direction:column;gap:.6rem}.offer{border:1px solid #e0dedb;border-radius:8px;padding:.6rem .8rem}.offer-owned{border-color:#6a4c93;background:#faf8fc}.offer-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.offer-supplier{font-weight:700;color:#564e4b;font-size:.85rem}.offer-owned-tag{font-size:.55rem;text-transform:uppercase;font-weight:700;background:#6a4c93;color:#fff;padding:.12rem .4rem;border-radius:3px}.offer-mfr{font-size:.6rem;color:#8a817c;background:#f4f2f0;padding:.1rem .35rem;border-radius:3px}.offer-stock{font-size:.6rem;margin-left:auto;font-weight:600}.offer-stock.in{color:#2e7d32}.offer-stock.out{color:#b5161b}.offer-shipping{font-size:.66rem;color:#8a817c;margin:.25rem 0}.offer-sizes{display:flex;flex-wrap:wrap;gap:.4rem;margin:.35rem 0}.offer-size{display:inline-flex;flex-direction:column;background:#f7f4f3;border-radius:5px;padding:.25rem .5rem;min-width:54px}.offer-size-label{font-size:.6rem;color:#8a817c}.offer-size-price{font-size:.76rem;font-weight:700;color:#564e4b}.offer-size-eur{font-size:.62rem;color:#8a817c;font-weight:400}.offer-size-out{opacity:.5}.offer-size-out .offer-size-price{text-decoration:line-through}.offer-buy{display:inline-block;margin-top:.3rem;font-size:.72rem;color:#6a4c93;text-decoration:none;font-weight:600}.offer-buy:hover{text-decoration:underline}.cat-controls{display:flex;gap:.8rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.cat-controls .enc-search{margin-bottom:0;flex:1;min-width:200px}.cat-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:#564e4b}.cat-toggle-box{width:18px;height:18px;border:1px solid #c8c2bd;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff}.cat-toggle.on .cat-toggle-box{background:#6a4c93;border-color:#6a4c93}.cat-supplier{padding:.5rem .7rem;border:1px solid #e0dedb;border-radius:6px;font-family:inherit;font-size:.8rem}.cat-list{display:flex;flex-direction:column;gap:.5rem}.cat-row{border:1px solid #e0dedb;border-radius:8px;overflow:hidden}.cat-row-head{width:100%;display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;background:#fff;border:none;cursor:pointer;font-family:inherit;text-align:left}.cat-row-head:hover{background:#faf8f7}.cat-row-img{width:38px;height:38px;border-radius:6px;object-fit:cover;flex-shrink:0;background:#f4f2f0}.cat-row-ph{display:flex;align-items:center;justify-content:center}.cat-row-ph.ph-nat{background:#e8f5e9}.cat-row-ph.ph-syn{background:#ede7f6}.cat-row-name{flex:1;font-weight:600;color:#564e4b;font-size:.86rem}.cat-owned-chip{font-size:.52rem;text-transform:uppercase;font-weight:700;background:#6a4c93;color:#fff;padding:.1rem .35rem;border-radius:3px;margin-left:.5rem;vertical-align:middle}.cat-row-price{font-size:.78rem;color:#6a4c93;font-weight:700;white-space:nowrap}.cat-row-count{font-size:.62rem;color:#8a817c;background:#f4f2f0;border-radius:10px;padding:.1rem .5rem;min-width:20px;text-align:center}.cat-row-body{padding:.6rem .8rem;border-top:1px solid #f0edeb;background:#fdfcfb}.cat-row-mine{border-color:#6a4c93}.cat-row-mine .cat-row-head{background:#faf8fc}.cat-plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.7rem}.cat-prod{border:1px solid #e0dedb;border-radius:9px;padding:.7rem .85rem;display:flex;flex-direction:column;gap:.35rem}.cat-prod-owned{border-color:#6a4c93;background:#faf8fc}.cat-prod-out{opacity:.62}.cat-prod-top{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap}.cat-prod-name{font-weight:700;color:#564e4b;font-size:.84rem;flex:1}.cat-prod-supplier{font-size:.6rem;text-transform:uppercase;font-weight:700;color:#8a817c}.cat-out-chip{font-size:.52rem;text-transform:uppercase;font-weight:700;background:#fdecea;color:#b5161b;padding:.1rem .35rem;border-radius:3px}.cat-prod-maps{font-size:.66rem;color:#6a4c93;margin:0}.cat-prod-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.3rem}.cat-ppg{font-size:.66rem;color:#8a817c;font-variant-numeric:tabular-nums}.cost-box{background:#faf8fc;border:1px solid #e0dedb;border-radius:8px;padding:.7rem .9rem;margin:.6rem 0}.cost-total{font-size:1.1rem;font-weight:700;color:#6a4c93}.cost-sub{font-size:.68rem;color:#8a817c}.cost-unknown{font-size:.66rem;color:#b5161b;margin-top:.3rem}.cost-batch{display:flex;align-items:center;gap:.5rem;font-size:.8rem;margin:.5rem 0}.cost-batch input{width:80px;padding:.35rem .5rem;border:1px solid #e0dedb;border-radius:5px;font-family:inherit}.fcost{margin-top:.6rem;border:1px solid #e0dedb;border-radius:8px;background:#faf8fc;overflow:hidden}.fcost-head{display:flex;align-items:center;gap:.7rem;padding:.6rem .85rem;cursor:pointer}.fcost-head:hover{background:#f4eef9}.fcost-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:#6a4c93}.fcost-total{font-size:1.15rem;font-weight:700;color:#564e4b}.fcost-per{font-size:.72rem;color:#8a817c}.fcost-batch-wrap{margin-left:auto;font-size:.72rem;color:#8a817c;display:flex;align-items:center;gap:.25rem}.fcost-batch{width:62px;padding:.25rem .4rem;border:1px solid #e0dedb;border-radius:5px;font-family:inherit;font-size:.75rem;text-align:right}.fcost-toggle{color:#b8b2ae;font-size:.7rem}.fcost-sub{font-size:.64rem;color:#8a817c;padding:0 .85rem .5rem;margin-top:-.2rem}.fcost-lines{border-top:1px solid #efe9f4;padding:.4rem .85rem .6rem}.fcost-line{display:flex;align-items:baseline;gap:.6rem;padding:.18rem 0;font-size:.74rem;border-bottom:1px solid #f4eef9}.fcost-line-mat{flex:1;color:#564e4b}.fcost-line-g{color:#8a817c;font-variant-numeric:tabular-nums}.fcost-line-cost{font-weight:700;color:#6a4c93;font-variant-numeric:tabular-nums;min-width:56px;text-align:right}.fcost-line-sup{font-size:.6rem;color:#adadad;text-transform:uppercase;min-width:66px;text-align:right}.fcost-missing{font-size:.66rem;color:#b5161b;margin-top:.4rem}.version-comment{width:100%;box-sizing:border-box;margin:0 0 .6rem;padding:.45rem .6rem;border:1px solid #e0dedb;border-radius:5px;font-family:inherit;font-size:.75rem;color:#564e4b;background:#fdfcfb;resize:vertical}.version-comment:focus{outline:none;border-color:#6a4c93;background:#fff}.version-comment::placeholder{color:#cfc9c5}.detail-row td{padding:0;border-bottom:1px solid #f0edeb}.detail-bubble{background:#fdfcfb;border-left:3px solid #564e4b;margin:0 .8rem .4rem;padding:.6rem .9rem;border-radius:0 4px 4px 0;font-size:.72rem}.detail-bubble .reason{color:#564e4b;margin-bottom:.3rem;line-height:1.5}.detail-bubble .alt-title{color:#adadad;font-size:.62rem;text-transform:uppercase;margin-bottom:.2rem}.detail-bubble ul{list-style:none;padding:0}.detail-bubble li{padding:.12rem 0;color:#564e4b}.detail-bubble .alt-cas{color:#b5161b;font-size:.68rem;margin-left:.3rem}.references{padding:.6rem 1.2rem;border-top:1px solid #f0edeb;background:#fdfcfb}.ref-title{color:#adadad;text-transform:uppercase;font-size:.6rem;margin-bottom:.15rem}.ref-list{color:#564e4b;font-size:.7rem}.changes-log{margin-top:.6rem;padding:.6rem .8rem;background:#fff;border:1px solid #e0dedb;border-radius:4px;font-size:.72rem}.changes-title{color:#b5161b;font-size:.62rem;text-transform:uppercase;font-weight:700;margin-bottom:.2rem}.changes-log ul{list-style:none;padding:0}.changes-log li{padding:.12rem 0;color:#564e4b}.add-row{cursor:pointer}.add-row:hover{background:#f4faf6}.add-row td{padding:.5rem .8rem;border-bottom:1px solid #f0edeb;color:#2e7d32;font-size:.75rem}.add-row .qty{text-align:right;font-weight:700;font-size:1rem}.add-label{font-style:italic}.add-row-picker td{padding:0}.add-picker{padding:.7rem;background:#fdfcfb;border-top:1px solid #e0dedb}.add-search{width:100%;padding:.5rem .7rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.75rem;margin-bottom:.4rem}.add-search:focus{outline:none;border-color:#564e4b}.add-results{max-height:150px;overflow-y:auto}.add-result{display:block;width:100%;padding:.4rem .6rem;background:none;border:none;text-align:left;font-family:inherit;font-size:.73rem;cursor:pointer;border-radius:3px;color:#564e4b}.add-result:hover,.add-result.highlighted{background:#e8f5e9}.add-result.add-custom{color:#6a4c93;border-top:1px dashed #e0dedb;margin-top:.2rem}.add-result.add-custom.highlighted,.add-result.add-custom:hover{background:#f6f1fb}.add-empty{font-size:.72rem;color:#adadad;padding:.5rem;text-align:center}.add-cancel{margin-top:.4rem;padding:.3rem .6rem;background:none;border:1px solid #e0dedb;border-radius:3px;font-size:.65rem;cursor:pointer;color:#adadad}.add-row-empty td{padding:.5rem .8rem;border-bottom:1px solid #f0edeb;color:#adadad;font-size:.72rem;font-style:italic}.add-row-empty .qty{text-align:right;font-weight:700;font-size:1rem;color:#adadad;font-style:normal}.add-label-empty{color:#adadad}.right-panels{display:flex;flex-direction:column;gap:.6rem}.panel{background:#fff;border:1px solid #e0dedb;border-radius:6px;padding:.8rem}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.panel-header .panel-title{margin-bottom:0}.panel-title{font-family:Tangerine,serif;font-size:1.3rem;color:#564e4b;margin-bottom:.6rem}.sync-btn{padding:.25rem .7rem;background:none;border:1px solid #e0dedb;border-radius:3px;font-family:inherit;font-size:.65rem;font-weight:600;color:#564e4b;cursor:pointer;transition:all .15s}.sync-btn:hover{border-color:#564e4b;background:#f7f4f3}.sync-btn:disabled{opacity:.5;cursor:not-allowed}.sync-btn.save{background:#6a4c93;border-color:#6a4c93;color:#fff}.sync-btn.save:hover{background:#5a3f7e}.panel-header-actions{display:flex;gap:.35rem}.slider-row.slider-disabled{opacity:.55}.slider-row.slider-disabled .slider-input{cursor:default}.slider-row{display:grid;grid-template-columns:80px 1fr 26px;align-items:center;gap:.4rem;margin-bottom:.35rem}.slider-label{font-size:.68rem;color:#564e4b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slider-input{width:100%;height:3px;border-radius:2px;background:#e0dedb;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;border-radius:50%;background:currentColor;cursor:pointer}.slider-value{font-size:.62rem;color:#adadad;text-align:right;font-variant-numeric:tabular-nums}.inventory-toggle-bar,.new-formula-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem}.new-formula-toggle{justify-content:center;margin-bottom:1.2rem}.toggle-label{font-size:.7rem;color:#adadad;transition:color .2s}.toggle-label.active{color:#564e4b;font-weight:700}.toggle-switch{width:36px;height:20px;border-radius:10px;background:#e0dedb;border:none;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}.toggle-switch.on{background:#564e4b}.toggle-switch:disabled{opacity:.4;cursor:not-allowed}.toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #00000026}.toggle-switch.on .toggle-knob{transform:translate(16px)}.toggle-hint{font-size:.62rem;color:#adadad;font-style:italic}.inventory-alts{border-left:2px solid #2E7D32;padding-left:.5rem;margin-bottom:.4rem}.inventory-alts .alt-title{color:#2e7d32}.original-mat{font-size:.7rem;color:#adadad;margin-bottom:.3rem;font-style:italic}.confidence-badge{display:inline-block;font-size:.55rem;padding:.05rem .3rem;border-radius:2px;margin-left:.3rem;background:#e8f5e9;color:#2e7d32;font-weight:600;text-transform:uppercase}.not-in-inventory-warning{font-size:.68rem;color:#b5161b;margin-bottom:.3rem;font-weight:600}.reformulate-btn{width:100%;padding:.65rem;background:#564e4b;border:none;border-radius:4px;color:#f7f4f3;font-weight:700;font-size:.75rem;cursor:pointer;text-transform:uppercase;letter-spacing:.05em}.reformulate-btn:hover{background:#3a3432}.reformulate-btn:disabled{opacity:.4;cursor:not-allowed}.chat-panel{background:#fff;border:1px solid #e0dedb;border-radius:6px;display:flex;flex-direction:column;max-height:350px}.chat-messages{flex:1;overflow-y:auto;padding:.7rem;min-height:100px}.chat-empty{font-size:.72rem;color:#adadad;text-align:center;padding:1rem}.chat-msg{padding:.5rem .7rem;margin-bottom:.4rem;border-radius:6px;font-size:.75rem;line-height:1.5}.chat-user{background:#f7f4f3;align-self:flex-end}.chat-model{background:#fdfcfb;border:1px solid #f0edeb}.chat-model p{margin-bottom:.3rem}.chat-apply-btn{margin-top:.4rem;padding:.3rem .6rem;background:#564e4b;color:#f7f4f3;border:none;border-radius:3px;font-size:.65rem;cursor:pointer;font-weight:700}.chat-loading{font-size:.72rem;color:#adadad;padding:.5rem .7rem}.chat-input-area{border-top:1px solid #e0dedb;padding:.5rem;display:flex;gap:.4rem}.chat-input{flex:1;padding:.5rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.75rem;resize:none;color:#564e4b}.chat-input:focus{outline:none;border-color:#564e4b}.chat-buttons{display:flex;flex-direction:column;gap:.25rem}.chat-btn{padding:.35rem .6rem;border:none;border-radius:4px;font-size:.62rem;font-weight:700;cursor:pointer;text-transform:uppercase}.chat-btn.think{background:#e0dedb;color:#564e4b}.chat-btn.act{background:#564e4b;color:#f7f4f3}.chat-btn:disabled{opacity:.4}.loading{grid-column:1 / -1;display:flex;align-items:center;gap:.5rem;padding:1.5rem;color:#adadad;font-size:.8rem}.loading-dots span{animation:blink 1.4s infinite both}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.error-msg{grid-column:1 / -1;color:#d92105;font-size:.78rem;padding:.7rem;background:#fff;border:1px solid #d92105;border-radius:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#564e4b66;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:#fff;border-radius:8px;padding:1.8rem 2rem;max-width:380px;width:90%;box-shadow:0 8px 30px #0000001f}.modal h3{font-family:Tangerine,serif;font-size:1.8rem;color:#564e4b;margin-bottom:.5rem}.modal p{font-size:.82rem;color:#777;line-height:1.5;margin-bottom:1.5rem}.modal p strong{color:#564e4b}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end}.modal-btn{padding:.55rem 1.2rem;border-radius:4px;font-family:inherit;font-size:.78rem;font-weight:700;cursor:pointer;border:none}.modal-btn.cancel{background:#f7f4f3;color:#564e4b;border:1px solid #e0dedb}.modal-btn.cancel:hover{border-color:#564e4b}.modal-btn.confirm{background:#d92105;color:#fff}.modal-btn.confirm:hover{background:#b51c04}.materials-page{flex:1;padding:0 2rem 1.5rem;overflow-y:auto}.materials-header{display:flex;align-items:center;gap:1rem;padding:1.2rem 0 .8rem;margin-bottom:0;flex-wrap:wrap;position:sticky;top:0;z-index:20;background:#f7f4f3}.materials-header h1{font-family:Tangerine,serif;font-size:2.2rem;font-weight:400;flex:1}.materials-count{font-size:.72rem;color:#adadad}.materials-actions{display:flex;gap:.4rem}.materials-action-btn{padding:.35rem .7rem;background:#fff;border:1px solid #e0dedb;border-radius:4px;font-size:.68rem;font-family:inherit;cursor:pointer;color:#564e4b;font-weight:600}.materials-action-btn:hover{border-color:#564e4b}.materials-action-btn.enrich{border-color:#2e7d32;color:#2e7d32}.materials-action-btn.enrich:disabled{opacity:.4}.back-btn{background:none;border:none;font-family:inherit;font-size:.78rem;color:#564e4b;cursor:pointer;font-weight:600}.back-btn:hover{color:#b5161b}.materials-search{padding-bottom:1rem;position:sticky;top:61px;z-index:19;background:#f7f4f3}.materials-search input{width:100%;max-width:400px;padding:.6rem 1rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.8rem;color:#564e4b}.materials-search input:focus{outline:none;border-color:#564e4b}.materials-add-form{display:flex;gap:.5rem;margin-bottom:1rem;align-items:center}.materials-add-form input{padding:.5rem .7rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.78rem}.materials-add-form button{padding:.45rem .8rem;background:#564e4b;color:#f7f4f3;border:none;border-radius:4px;font-size:.72rem;font-weight:700;cursor:pointer}.materials-add-form button.cancel{background:#fff;color:#adadad;border:1px solid #e0dedb}.materials-list{background:#fff;border:1px solid #e0dedb;border-radius:6px}.materials-list table{width:100%;border-collapse:collapse;font-size:.78rem}.materials-list thead th{position:sticky;top:118px;z-index:18;background:#fdfcfb;box-shadow:inset 0 -1px #e0dedb}.materials-list th{padding:.55rem .9rem;text-align:left;font-weight:700;color:#adadad;font-size:.65rem;text-transform:uppercase}.materials-list td{padding:.5rem .9rem;border-bottom:1px solid #f0edeb}.mat-name-cell{font-weight:600;color:#564e4b}.cas-cell{color:#b5161b;font-variant-numeric:tabular-nums;font-size:.73rem}.desc-cell{color:#777;font-size:.73rem;max-width:250px}.cat-badge{display:inline-block;font-size:.6rem;padding:.1rem .4rem;border-radius:3px;background:#f0edeb;color:#564e4b;text-transform:capitalize;font-weight:600}.action-col{width:35px;text-align:center}.ifra-col{text-align:center;width:50px}.ifra-cert-group{display:inline-flex;align-items:center;gap:.2rem}.ifra-cert-badge{display:inline-block;padding:.1rem .35rem;border-radius:3px;background:#1565c0;color:#fff;font-size:.55rem;font-weight:700;border:none;cursor:pointer;font-family:inherit}.ifra-cert-badge:hover{background:#0d47a1}.ifra-cert-delete{background:none;border:none;color:#adadad;font-size:.8rem;cursor:pointer;padding:0;line-height:1}.ifra-cert-delete:hover{color:#c62828}.ifra-limit-badge{display:inline-block;padding:.1rem .35rem;border-radius:3px;background:#fff3e0;color:#e65100;font-size:.55rem;font-weight:700}.ifra-banned-badge{display:inline-block;padding:.1rem .35rem;border-radius:3px;background:#c62828;color:#fff;font-size:.55rem;font-weight:700}.ifra-unknown-actions{display:flex;gap:.2rem;align-items:center}.ifra-cert-upload{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;border:1px dashed #e0dedb;font-size:.7rem;color:#adadad;cursor:pointer}.ifra-cert-upload:hover{border-color:#1565c0;color:#1565c0}.ifra-mark-free{display:inline-flex;align-items:center;justify-content:center;padding:.1rem .3rem;border-radius:3px;border:1px solid #e0dedb;background:none;font-size:.5rem;font-weight:700;color:#adadad;cursor:pointer;font-family:inherit}.ifra-mark-free:hover{border-color:#564e4b;color:#564e4b}.ifra-free-badge{display:inline-block;padding:.1rem .35rem;border-radius:3px;background:#564e4b;color:#fff;font-size:.55rem;font-weight:700;border:none;cursor:pointer;font-family:inherit}.ifra-free-badge:hover{background:#333}.delete-mat-btn{background:none;border:none;color:#ccc;font-size:1.1rem;cursor:pointer;line-height:1;padding:.2rem .4rem;border-radius:3px}.delete-mat-btn:hover{color:#d92105;background:#fef2f0}.no-results{text-align:center;padding:1.5rem;color:#adadad;font-size:.78rem}.loading-text{text-align:center;padding:3rem;color:#adadad}.materials-empty{text-align:center;max-width:500px;margin:3rem auto}.materials-empty-icon{font-size:3rem;margin-bottom:1rem}.materials-empty h2{font-family:Tangerine,serif;font-size:2rem;margin-bottom:.5rem}.materials-empty>p{font-size:.82rem;color:#adadad;margin-bottom:1.5rem}.upload-instructions{background:#fff;border:1px solid #e0dedb;border-radius:6px;padding:1.2rem;text-align:left;margin-bottom:1.5rem}.upload-instructions h3{font-size:.75rem;text-transform:uppercase;color:#564e4b;margin-bottom:.5rem}.format-table{width:100%;border-collapse:collapse;font-size:.78rem;margin-bottom:.5rem}.format-table th{text-align:left;padding:.3rem .5rem;color:#adadad;font-size:.65rem;text-transform:uppercase;border-bottom:1px solid #e0dedb}.format-table td{padding:.35rem .5rem;border-bottom:1px solid #f0edeb}.format-note{font-size:.72rem;color:#adadad;margin-top:.3rem}.upload-btn{display:inline-block;padding:.75rem 2rem;background:#564e4b;color:#f7f4f3;border-radius:4px;font-weight:700;font-size:.8rem;cursor:pointer;text-transform:uppercase}.sidebar-footer{border-top:1px solid #e0dedb;padding:.7rem;display:flex;flex-direction:column;gap:.5rem}.sidebar-materials-btn{width:100%;padding:.5rem;background:#fdfcfb;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.72rem;color:#564e4b;cursor:pointer;font-weight:600;text-align:left}.sidebar-materials-btn:hover{border-color:#564e4b}.sidebar-user-row{display:flex;justify-content:space-between;align-items:center}.sidebar-username{font-size:.68rem;color:#564e4b;font-weight:600}.sidebar-logout{background:none;border:none;font-size:.65rem;color:#adadad;cursor:pointer}.sidebar-logout:hover{color:#b5161b}.language-selector{width:100%;padding:.35rem .5rem;background:#f7f4f3;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.68rem;color:#564e4b;cursor:pointer;margin-bottom:.5rem}.ifra-section{margin-top:.8rem}.ifra-check-btn{width:100%;display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;background:#fff;border:1.5px solid #e0dedb;border-radius:6px;cursor:pointer;text-align:left;font-family:inherit;transition:border-color .15s}.ifra-check-btn:hover{border-color:#564e4b}.ifra-check-btn:disabled{opacity:.6;cursor:not-allowed}.ifra-check-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;background:#1565c0;color:#fff;font-size:.6rem;font-weight:800;letter-spacing:-.02em;flex-shrink:0}.ifra-check-text{display:flex;flex-direction:column}.ifra-check-text strong{font-size:.75rem;color:#564e4b}.ifra-check-text small{font-size:.62rem;color:#adadad;margin-top:.15rem}.ifra-result{margin-top:.6rem;border:1px solid #e0dedb;border-radius:6px;overflow:hidden}.ifra-result.ifra-pass{border-color:#2e7d32}.ifra-result.ifra-fail{border-color:#c62828}.ifra-result.ifra-warning{border-color:#e6a817}.ifra-result-header{padding:.6rem .8rem;background:#f7f4f3;display:flex;align-items:center;gap:.6rem}.ifra-status-badge{padding:.2rem .5rem;border-radius:3px;font-size:.6rem;font-weight:800;text-transform:uppercase}.ifra-pass .ifra-status-badge{background:#2e7d32;color:#fff}.ifra-fail .ifra-status-badge{background:#c62828;color:#fff}.ifra-warning .ifra-status-badge{background:#e6a817;color:#fff}.ifra-summary{font-size:.68rem;color:#564e4b}.ifra-table{width:100%;border-collapse:collapse;font-size:.65rem}.ifra-table th{text-align:left;padding:.4rem .5rem;border-bottom:1px solid #e0dedb;font-size:.58rem;font-weight:700;color:#adadad;text-transform:uppercase;letter-spacing:.03em}.ifra-table td{padding:.35rem .5rem;border-bottom:1px solid #f7f4f3;vertical-align:middle}.ifra-row-fail{background:#fff3f3}.ifra-row-warn{background:#fffbf0}.ifra-row-sub td{padding-top:.15rem;padding-bottom:.15rem;border-bottom:none}.ifra-cell-sub{padding-left:1.2rem!important;font-size:.58rem;color:#adadad;font-weight:400}.ifra-cell-sub-num{font-size:.58rem;color:#adadad}.ifra-cell-name{font-weight:600;color:#564e4b;max-width:140px}.ifra-source{font-weight:400;color:#adadad;font-size:.55rem;display:block}.ifra-cell-num{font-family:monospace;font-size:.62rem;color:#564e4b;text-align:right;white-space:nowrap}.ifra-cell-status{text-align:center}.ifra-cell-info{width:20px;text-align:center}.ifra-badge-ok{display:inline-block;padding:.1rem .4rem;border-radius:3px;background:#e8f5e9;color:#2e7d32;font-weight:700;font-size:.58rem}.ifra-badge-fail{display:inline-block;padding:.1rem .4rem;border-radius:3px;background:#ffebee;color:#c62828;font-weight:700;font-size:.58rem}.ifra-badge-prohibited{display:inline-block;padding:.1rem .4rem;border-radius:3px;background:#c62828;color:#fff;font-weight:800;font-size:.55rem;text-transform:uppercase}.ifra-badge-warn{display:inline-block;padding:.1rem .4rem;border-radius:3px;background:#fff8e1;color:#e6a817;font-weight:700;font-size:.58rem}.ifra-manual-input{width:45px;padding:.15rem .3rem;border:1px solid #E6A817;border-radius:3px;font-size:.6rem;font-family:inherit;color:#564e4b;text-align:right}.ifra-manual-input:focus{outline:none;border-color:#564e4b}.ifra-info-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#f7f4f3;border:1px solid #e0dedb;font-size:.5rem;font-weight:700;font-style:italic;color:#adadad;cursor:help}.ifra-info-icon:hover{background:#564e4b;color:#fff;border-color:#564e4b}.formula-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.mix-btn{padding:.35rem .9rem;background:#564e4b;color:#f7f4f3;border:none;border-radius:4px;font-family:inherit;font-size:.7rem;font-weight:700;cursor:pointer}.mix-btn:hover{background:#333}.mix-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem}.mix-panel{background:#fff;border-radius:10px;max-width:700px;width:100%;max-height:85vh;overflow-y:auto;padding:1.5rem;position:relative;box-shadow:0 20px 60px #0003}.mix-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;color:#adadad;cursor:pointer}.mix-close:hover{color:#564e4b}.mix-title{font-family:Tangerine,serif;font-size:2rem;color:#564e4b;margin-bottom:1rem}.mix-controls{display:flex;gap:1rem;margin-bottom:1.2rem;flex-wrap:wrap}.mix-control{flex:1;min-width:150px}.mix-control label{display:block;font-size:.65rem;font-weight:700;color:#adadad;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem}.mix-input-row{display:flex;gap:.4rem}.mix-input{width:70px;padding:.4rem .6rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.8rem;color:#564e4b}.mix-input:focus{outline:none;border-color:#564e4b}.mix-select{padding:.4rem .5rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.75rem;color:#564e4b;background:#fff}.mix-dilution-wrap{display:flex;align-items:center;gap:.5rem}.mix-slider{flex:1;accent-color:#564e4b}.mix-dilution-val{font-size:.8rem;font-weight:700;color:#564e4b;min-width:35px}.mix-dilution-type{font-size:.62rem;color:#1565c0;font-weight:600}.mix-max-warn{color:#e6a817;font-size:.6rem;margin-top:.2rem;display:block}.mix-table{width:100%;border-collapse:collapse;font-size:.72rem}.mix-table th{text-align:left;padding:.4rem .5rem;border-bottom:1px solid #e0dedb;font-size:.6rem;font-weight:700;color:#adadad;text-transform:uppercase}.mix-table td{padding:.35rem .5rem;border-bottom:1px solid #f7f4f3}.mix-mat{font-weight:600;color:#564e4b;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mix-num{text-align:right;font-family:monospace;font-size:.72rem}.mix-pour{font-weight:700;color:#564e4b}.mix-dil select{padding:.2rem .3rem;border:1px solid #e0dedb;border-radius:3px;font-size:.68rem;font-family:inherit;color:#564e4b}.mix-dil-header{display:flex;align-items:center;gap:.3rem}.mix-all-dil{padding:.15rem .25rem;border:1px solid #e0dedb;border-radius:3px;font-size:.58rem;font-family:inherit;color:#564e4b;background:#fff;cursor:pointer}.mix-diluent-row{background:#f7f4f3}.mix-total-row{border-top:2px solid #564e4b}.mix-total-row td{padding-top:.5rem}.ifra-warnings-section{padding:.5rem .8rem;border-top:1px solid #e0dedb}.ifra-warning-item{font-size:.65rem;padding:.4rem .6rem;border-radius:4px;margin-bottom:.3rem}.ifra-warning-fail{background:#fff3f3;color:#c62828}.ifra-warning-oxidation{background:#fff8e1;color:#e65100}.ifra-progress-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:#e0dedb;border-radius:0 0 6px 6px;overflow:hidden}.ifra-progress-bar span{display:block;height:100%;background:#1565c0;transition:width .3s ease}.ifra-check-btn{position:relative;overflow:hidden}.ifra-dilution{margin-top:.6rem;padding:.6rem .8rem;background:#fff;border:1px solid #e0dedb;border-radius:6px}.ifra-dilution-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.ifra-dilution-header label{font-size:.68rem;color:#564e4b}.ifra-dilution-type{font-size:.62rem;font-weight:600;color:#1565c0}.ifra-dilution-track{position:relative;height:6px;border-radius:3px;background:#f7f4f3;margin-bottom:.2rem;overflow:hidden}.ifra-region{position:absolute;top:0;height:100%;opacity:.4}.ifra-region{background:#b2dfdb}.ifra-region.edc{background:#80cbc4}.ifra-region.edt{background:#4db6ac}.ifra-region.edp{background:#26a69a}.ifra-region.extrait{background:#00897b}.ifra-region.absolu{background:#00695c}.ifra-dilution-slider{width:100%;margin:0;accent-color:#1565C0}.ifra-dilution-labels{display:flex;justify-content:space-between;font-size:.55rem;color:#adadad;margin-top:.1rem}.notes-editor{grid-column:1 / -1;max-width:600px;margin:1rem auto;padding:1.5rem;background:#fff;border:1px solid #e0dedb;border-radius:8px}.notes-editor-title{font-family:Tangerine,serif;font-size:2rem;margin-bottom:1rem;color:#564e4b}.notes-editor-field{margin-bottom:1.2rem}.notes-editor-field label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#adadad;margin-bottom:.4rem}.notes-editor-field textarea{width:100%;padding:.6rem .8rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.82rem;color:#564e4b;resize:vertical}.notes-editor-field textarea:focus{outline:none;border-color:#564e4b}.notes-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem;min-height:24px}.note-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;background:#f7f4f3;border:1px solid #e0dedb;border-radius:12px;font-size:.72rem;color:#564e4b}.note-tag-remove{background:none;border:none;font-size:.9rem;color:#adadad;cursor:pointer;padding:0;line-height:1}.note-tag-remove:hover{color:#b5161b}.note-search{position:relative}.note-search-input{width:100%;padding:.5rem .8rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.78rem;color:#564e4b}.note-search-input:focus{outline:none;border-color:#564e4b}.note-search-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e0dedb;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px #00000014}.note-search-option{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem .8rem;background:none;border:none;border-bottom:1px solid #f7f4f3;font-family:inherit;font-size:.75rem;color:#564e4b;cursor:pointer;text-align:left}.note-search-option:hover{background:#f7f4f3}.note-search-name{font-weight:600}.note-search-cat{font-size:.65rem;color:#adadad;text-transform:capitalize}.notes-editor-actions{display:flex;gap:.8rem;margin-top:1.5rem}.notes-editor-save{padding:.6rem 2rem;background:#564e4b;color:#f7f4f3;border:none;border-radius:4px;font-weight:700;font-size:.78rem;cursor:pointer}.notes-editor-cancel{padding:.6rem 1.5rem;background:none;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.78rem;color:#564e4b;cursor:pointer}.notes-editor-cancel:hover{border-color:#564e4b}.ns-section{margin-top:1rem;text-align:left}.ns-section-label{font-size:.72rem;font-weight:600;color:#564e4b;margin-bottom:.5rem}.ns-section-label span{font-weight:400;color:#adadad}.ns-position-tabs{display:flex;gap:0;margin-bottom:.5rem;border:1px solid #e0dedb;border-radius:4px;overflow:hidden;width:fit-content}.ns-pos-tab{padding:.35rem 1rem;background:none;border:none;font-family:inherit;font-size:.7rem;font-weight:600;color:#adadad;cursor:pointer;text-transform:capitalize;transition:all .15s}.ns-pos-tab:not(:last-child){border-right:1px solid #e0dedb}.ns-pos-tab.active{background:#564e4b;color:#f7f4f3}.ns-search{position:relative;margin-bottom:.5rem}.ns-search-input{width:100%;padding:.5rem .8rem;border:1px solid #e0dedb;border-radius:4px;font-family:inherit;font-size:.78rem;color:#564e4b}.ns-search-input:focus{outline:none;border-color:#564e4b}.ns-search-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e0dedb;border-top:none;border-radius:0 0 4px 4px;max-height:220px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px #00000014}.ns-search-option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .8rem;background:none;border:none;border-bottom:1px solid #f7f4f3;font-family:inherit;font-size:.75rem;color:#564e4b;cursor:pointer;text-align:left}.ns-search-option:hover{background:#f7f4f3}.ns-search-thumb{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.ns-search-name{flex:1;font-weight:600}.ns-search-cat{font-size:.62rem;color:#adadad;text-transform:capitalize}.ns-notes-list{display:flex;flex-direction:column;gap:.4rem}.ns-chip{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#fff;border:1px solid #e0dedb;border-radius:6px}.ns-chip-img-wrap{width:32px;height:32px;border-radius:50%;overflow:hidden;border:2px solid #e0dedb;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#f7f4f3}.ns-chip-img{width:100%;height:100%;object-fit:cover}.ns-chip-placeholder{font-size:.8rem;font-weight:700;color:#adadad}.ns-chip-info{display:flex;flex-direction:column;min-width:70px}.ns-chip-name{font-size:.7rem;font-weight:600;color:#564e4b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px}.ns-chip-pos{font-size:.6rem;text-transform:capitalize;font-weight:600}.ns-chip-slider{flex:1;min-width:60px;height:4px}.ns-chip-val{font-size:.65rem;font-weight:700;color:#564e4b;min-width:28px;text-align:right}.ns-chip-remove{background:none;border:none;font-size:1rem;color:#adadad;cursor:pointer;padding:0 .2rem}.ns-chip-remove:hover{color:#b5161b}.ns-total{text-align:right;font-size:.65rem;color:#adadad;margin-top:.2rem}.sidebar-library-btn{width:100%;margin-top:.4rem;padding:.45rem;background:none;border:1px solid #d8d4d0;border-radius:6px;font-family:inherit;font-size:.8rem;color:#564e4b;cursor:pointer;font-weight:600}.sidebar-library-btn:hover{border-color:#b5161b;color:#b5161b}.sidebar-library-btn.full{margin:.7rem .8rem .2rem;width:calc(100% - 1.6rem);background:#6a4c93;color:#fff;border-color:#6a4c93;padding:.55rem}.sidebar-library-btn.full:hover{background:#5a3f80;border-color:#5a3f80;color:#fff}.sidebar-search{position:relative;margin:.2rem .8rem .4rem}.sidebar-search input{width:100%;padding:.4rem 1.6rem .4rem .6rem;border:1px solid #e0dedb;border-radius:6px;font-family:inherit;font-size:.74rem}.sidebar-search-clear{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#adadad;cursor:pointer;font-size:.9rem}.sidebar-search-clear:hover{color:#b5161b}.folder-star{background:none;border:none;cursor:pointer;color:#c8c2bd;padding:0 .2rem;display:flex;align-items:center}.folder-star:hover{color:#e8a000}.library-group{margin-bottom:1.8rem}.library-group-title{font-size:.9rem;font-weight:800;color:#564e4b;margin-bottom:.7rem;display:flex;align-items:center;gap:.5rem}.library-group-title span{font-size:.62rem;background:#f0ecea;color:#8a817c;padding:.1rem .45rem;border-radius:8px;font-weight:700}.library-page{flex:1;padding:1.5rem 2rem;overflow-y:auto}.library-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.library-header h1{font-family:Tangerine,cursive;font-size:2.6rem;color:#564e4b;margin:0;line-height:1}.library-count{margin-left:auto;font-size:.78rem;color:#8a817c;font-variant-numeric:tabular-nums}.library-intro{font-size:.85rem;color:#8a817c;max-width:760px;margin-bottom:1.2rem;line-height:1.5}.library-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}.library-search{flex:1;min-width:240px;padding:.55rem .8rem;border:1px solid #e0dedb;border-radius:8px;font-family:inherit;font-size:.85rem}.library-filters select{padding:.55rem .7rem;border:1px solid #e0dedb;border-radius:8px;font-family:inherit;font-size:.8rem;color:#564e4b;background:#fff;cursor:pointer}.library-clear{padding:.55rem .9rem;border:none;background:#f0ecea;border-radius:8px;font-family:inherit;font-size:.8rem;color:#564e4b;cursor:pointer;font-weight:600}.library-clear:hover{color:#b5161b}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.library-card{text-align:left;background:#fff;border:1px solid #e0dedb;border-radius:12px;padding:1rem 1.1rem;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:.5rem;transition:border-color .15s,box-shadow .15s,transform .1s}.library-card:hover:not(:disabled){border-color:#b5161b;box-shadow:0 4px 18px #00000012;transform:translateY(-2px)}.library-card:disabled{opacity:.55;cursor:default}.library-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.library-card-brand{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:#8a817c;font-weight:700}.library-card-family{font-size:.6rem;padding:.12rem .45rem;border-radius:4px;background:#f0ecea;color:#564e4b;font-weight:600}.library-card-name{font-family:Tangerine,cursive;font-size:1.9rem;line-height:1;color:#564e4b;margin:0}.library-card-desc{font-size:.76rem;color:#6b625e;line-height:1.45;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.library-card-notes{display:flex;flex-wrap:wrap;gap:.3rem}.library-note-chip{font-size:.62rem;padding:.12rem .45rem;border-radius:10px;background:#e3f2fd;color:#1565c0;font-weight:600}.library-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.4rem}.library-card-count{font-size:.68rem;color:#8a817c}.library-card-cta{font-size:.72rem;color:#b5161b;font-weight:700}.swap-ing-btn{background:none;border:1px solid #d8d4d0;border-radius:4px;color:#8a817c;cursor:pointer;font-size:.7rem;line-height:1;padding:.05rem .3rem;margin-left:.3rem;vertical-align:middle}.swap-ing-btn:hover{border-color:#b5161b;color:#b5161b}.swap-row td{background:#faf8f7;padding:.5rem .6rem}.swap-picker{display:flex;flex-direction:column;gap:.4rem;max-width:460px}.swap-dup{font-size:.6rem;color:#b5161b;margin-left:.4rem}.picker-tabs{display:flex;gap:.3rem;margin-bottom:.2rem}.picker-tab{flex:1;padding:.3rem .5rem;border:1px solid #e0dedb;background:#fff;border-radius:6px;font-family:inherit;font-size:.72rem;color:#8a817c;cursor:pointer;font-weight:600}.picker-tab.active{background:#564e4b;color:#f7f4f3;border-color:#564e4b}.picker-hint{font-size:.66rem;color:#8a817c;margin:.1rem 0;line-height:1.4}.accord-pick-tag{display:inline-block;background:#6a4c93;color:#fff;font-size:.58rem;font-weight:700;border-radius:3px;padding:.05rem .28rem;margin-right:.3rem}.accord-badge{display:inline-block;font-size:.58rem;padding:.08rem .34rem;border-radius:3px;margin-left:.25rem;background:#efe7f7;color:#6a4c93;vertical-align:middle;font-weight:700}.accord-amount-label{font-size:.74rem;color:#564e4b;margin:0 0 .4rem;line-height:1.45}.accord-amount-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.accord-amount-input{width:80px}.accord-amount-unit{font-size:.72rem;color:#8a817c}.accord-amount-add{padding:.35rem .7rem;border:none;background:#6a4c93;color:#fff;border-radius:6px;font-family:inherit;font-size:.74rem;font-weight:600;cursor:pointer}.accord-amount-add:disabled{opacity:.5;cursor:default}.accord-controls{background:#f6f1fb;border:1px solid #e3d7f0;border-radius:10px;padding:.6rem .8rem;margin-bottom:.8rem}.accord-controls-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#6a4c93;font-weight:700;margin:0 0 .45rem}.accord-controls-list{display:flex;flex-direction:column;gap:.35rem}.accord-control-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.accord-control-name{font-size:.8rem;color:#564e4b;font-weight:600}.accord-control-actions{display:flex;align-items:center;gap:.35rem}.accord-step{border:1px solid #c9b3e0;background:#fff;color:#6a4c93;border-radius:5px;font-family:inherit;font-size:.7rem;font-weight:700;padding:.12rem .4rem;cursor:pointer}.accord-step:hover{background:#6a4c93;color:#fff}.accord-control-input{width:70px}.accord-control-unit{font-size:.7rem;color:#8a817c}.ifra-comp-col{white-space:nowrap}.ifra-comp-cell{display:flex;align-items:center;gap:.4rem}.ifra-compute-btn{padding:.25rem .6rem;border:1px solid #6a4c93;background:#fff;color:#6a4c93;border-radius:6px;font-family:inherit;font-size:.7rem;font-weight:600;cursor:pointer;white-space:nowrap}.ifra-compute-btn:hover:not(:disabled){background:#6a4c93;color:#fff}.ifra-compute-btn:disabled{opacity:.6;cursor:default}.ifra-comp-badge{font-size:.66rem;padding:.12rem .45rem;border-radius:10px;font-weight:700;background:#efe7f7;color:#6a4c93;cursor:help}.ifra-comp-badge.clean{background:#e7f5ec;color:#1f7a44}.ifra-recompute-btn{border:none;background:none;color:#8a817c;cursor:pointer;font-size:.85rem;line-height:1;padding:.1rem .2rem}.ifra-recompute-btn:hover:not(:disabled){color:#6a4c93}.ifra-recompute-btn:disabled{opacity:.5;cursor:default}.ifra-sds-actions{display:inline-flex;align-items:center;gap:.35rem}.ifra-sds-badge{font-size:.6rem;font-weight:700;background:#fdecea;color:#b5161b;border:1px solid #f3b5b0;border-radius:4px;padding:.1rem .4rem;cursor:help;white-space:nowrap}.sidebar-folder{margin-bottom:.15rem}.sidebar-folder-head{display:flex;align-items:center}.sidebar-folder-toggle{flex:1;display:flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;font-family:inherit;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8a817c;padding:.5rem .4rem .3rem .6rem}.sidebar-folder-toggle:hover{color:#564e4b}.folder-caret{font-size:.6rem;transition:transform .15s}.folder-caret.collapsed{transform:rotate(-90deg)}.folder-label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-count{font-size:.58rem;color:#c8c2bd;font-weight:700}.folder-delete{background:none;border:none;color:#c8c2bd;cursor:pointer;font-size:.9rem;padding:0 .5rem}.folder-delete:hover{color:#b5161b}.sidebar-folder-items{padding-left:.3rem}.folder-empty{font-size:.62rem;color:#c8c2bd;padding:.1rem .8rem .3rem}.folder-new-btn{width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:inherit;font-size:.68rem;color:#6a4c93;font-weight:600;padding:.6rem .8rem;margin-top:.3rem}.folder-new-btn:hover{color:#b5161b}.folder-create-form{padding:.4rem .6rem}.folder-create-form input{width:100%;padding:.4rem .5rem;border:1px solid #6a4c93;border-radius:5px;font-family:inherit;font-size:.72rem}.folder-picker{position:relative;display:inline-block}.folder-picker-btn{white-space:nowrap}.folder-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.folder-picker-menu{position:absolute;top:100%;right:0;margin-top:.3rem;z-index:41;background:#fff;border:1px solid #e0dedb;border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:.6rem;min-width:220px}.folder-picker-title{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:#8a817c;font-weight:700;margin-bottom:.4rem}.folder-picker-empty{font-size:.72rem;color:#adadad;margin-bottom:.4rem}.folder-picker-item{display:flex;align-items:center;gap:.5rem;padding:.3rem .2rem;font-size:.78rem;color:#564e4b;cursor:pointer}.folder-picker-item:hover{background:#faf8f7;border-radius:4px}.folder-picker-new{display:flex;gap:.3rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e0dedb}.folder-picker-new input{flex:1;min-width:0;padding:.35rem .5rem;border:1px solid #e0dedb;border-radius:5px;font-family:inherit;font-size:.72rem}.folder-picker-new button{border:none;background:#6a4c93;color:#fff;border-radius:5px;width:28px;cursor:pointer;font-weight:700}.folder-picker-new button:disabled{opacity:.4;cursor:default}.family-picker-btn{white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.family-menu{min-width:300px;max-width:340px}.family-options{display:flex;flex-wrap:wrap;gap:.3rem}.family-chip{font-size:.68rem;padding:.25rem .55rem;border:1px solid #e0dedb;background:#fff;border-radius:14px;cursor:pointer;font-family:inherit;color:#564e4b}.family-chip:hover{border-color:#b5161b}.family-chip.active{background:#b5161b;color:#fff;border-color:#b5161b}.family-chip.sub.active{background:#6a4c93;border-color:#6a4c93}.family-clear{margin-top:.6rem;background:none;border:none;color:#8a817c;font-family:inherit;font-size:.7rem;cursor:pointer;padding:0}.family-clear:hover{color:#b5161b}.library-tabs{display:flex;gap:.5rem;margin:.5rem 0 1.2rem}.library-tab{padding:.5rem 1.1rem;border:1px solid #e0dedb;background:#fff;border-radius:8px;font-family:inherit;font-size:.82rem;font-weight:700;color:#8a817c;cursor:pointer;display:flex;align-items:center;gap:.4rem}.library-tab .library-tab-count{font-size:.62rem;background:#f0ecea;color:#8a817c;padding:.05rem .4rem;border-radius:8px}.library-tab.mine.active{background:#b5161b;color:#fff;border-color:#b5161b}.library-tab.reference.active{background:#6a4c93;color:#fff;border-color:#6a4c93}.library-tab.active .library-tab-count{background:#ffffff40;color:#fff}.library-card-sub{font-size:.68rem;color:#6a4c93;font-weight:600;margin:-.2rem 0 .2rem}.mine-card:hover:not(:disabled){border-color:#b5161b}.ref-card:hover:not(:disabled){border-color:#6a4c93}.library-card-family.ref{background:#efe7f7;color:#6a4c93}.blank-canvas{text-align:center;padding:1.5rem 1rem}.blank-canvas-icon{font-size:2.5rem;margin-bottom:.6rem}.blank-canvas-desc{font-size:.85rem;color:#777;line-height:1.6;max-width:380px;margin:0 auto 1.2rem}.blank-canvas .import-accord-check{justify-content:center;margin-bottom:1.2rem}.note-mosaic-wrap{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin-bottom:1rem}.note-mosaic{display:grid;gap:3px;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 2px 12px #00000012;width:100%;max-width:400px;aspect-ratio:1;height:auto!important}.family-circle-block{display:flex;align-items:center;gap:.8rem;width:100%;max-width:400px;padding:.6rem .8rem;border:1px solid #e0dedb;border-radius:10px;background:#fff}.family-circle{border-radius:50%;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000000d}.family-circle-inner{width:42%;height:42%;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0000001a}.family-circle-labels{display:flex;flex-direction:column;gap:.15rem}.family-circle-fam{font-size:.85rem;font-weight:700;color:#564e4b;text-transform:uppercase;letter-spacing:.03em}.family-circle-sub{font-size:.72rem;color:#8a817c}.note-mosaic-cell{overflow:hidden;background:#f3efed}.note-mosaic-cell img{width:100%;height:100%;object-fit:cover;display:block}.note-strip{display:flex;gap:4px;margin:.5rem 0 .2rem;flex-wrap:nowrap;overflow:hidden}.note-strip-img{width:46px;height:46px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid #efe9e6}.ref-card-visual{display:flex;gap:.7rem;align-items:center;margin-bottom:.7rem;min-height:115px}.ref-card-notes{flex:1;min-width:0}.ref-card-notes .note-strip{flex-wrap:wrap}.ref-card-notes .note-strip-img{width:52px;height:52px}.ref-card-bottle{width:88px;height:115px;object-fit:contain;flex-shrink:0}.note-bubbles{position:relative;margin:0 auto;max-width:100%;aspect-ratio:1}.note-bubble{position:absolute;border-radius:50%;background-size:cover;background-position:center;box-shadow:0 2px 10px #00000024;overflow:hidden;cursor:default}.note-bubble-hover{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .22s ease;background:#78737073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.note-bubble:hover{z-index:5}.note-bubble:hover .note-bubble-hover{opacity:1}.note-bubble-label{font-family:Montserrat,sans-serif;font-size:.72rem;font-weight:600;color:#fff;text-align:center;padding:0 .4rem;line-height:1.2;text-shadow:0 1px 3px rgba(0,0,0,.4)}.ref-card-actions{display:flex;align-items:center;gap:.7rem}.ref-info-link{font-size:.72rem;color:#6a4c93;font-weight:700}.ref-info-link:hover{text-decoration:underline}.ref-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2823218c;display:flex;align-items:center;justify-content:center;z-index:200;padding:1.5rem}.ref-overlay-card{background:#fff;border-radius:14px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem 1.8rem;position:relative}.ref-overlay-close{position:absolute;top:.8rem;right:1rem;background:none;border:none;font-size:1.6rem;color:#8a817c;cursor:pointer;line-height:1}.ref-overlay-close:hover{color:#b5161b}.ref-overlay-head{display:flex;gap:1.2rem;align-items:center;justify-content:center;margin-bottom:1rem}.ref-overlay-mosaic{flex-shrink:0}.ref-overlay-bottle{width:240px;height:240px;object-fit:contain;flex-shrink:0}.ref-overlay-brand{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#8a817c;font-weight:700}.ref-overlay-name{font-family:Tangerine,serif;font-size:2.6rem;color:#564e4b;line-height:1;margin:.1rem 0 .4rem}.ref-overlay-family{font-size:.8rem;color:#6a4c93;font-weight:600;margin-bottom:.6rem}.ref-overlay-desc{font-size:.82rem;color:#6b625e;line-height:1.5;margin-bottom:1rem}.ref-overlay-section{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:#8a817c;font-weight:700;margin:.8rem 0 .4rem}.ref-overlay-formula{display:flex;flex-direction:column;gap:.1rem;max-height:240px;overflow-y:auto;border:1px solid #f0ecea;border-radius:8px;padding:.5rem}.ref-overlay-ing{display:flex;align-items:baseline;gap:.6rem;font-size:.76rem;padding:.15rem 0}.ref-overlay-qty{width:48px;text-align:right;font-variant-numeric:tabular-nums;color:#b5161b;font-weight:600;flex-shrink:0}.ref-overlay-mat{color:#564e4b;flex:1}.ref-overlay-note{font-size:.62rem;color:#8a817c}.ref-overlay-use{margin-top:1rem;width:100%}.note-pos-col{white-space:nowrap}.note-pos-select{font-family:inherit;font-size:.72rem;padding:.2rem .3rem;border:1px solid #e0dedb;border-radius:5px;color:#564e4b;background:#fff;cursor:pointer}.pyr2{display:flex;flex-direction:column;align-items:center;gap:3px;padding:.5rem 0 .2rem;width:100%}.pyr2-band{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 .9rem;box-sizing:border-box;border-radius:4px;color:#fff;overflow:hidden;transition:height .4s ease,width .4s ease;box-shadow:0 1px 4px #0000001f}.pyr2-band:first-child{border-radius:8px 8px 4px 4px}.pyr2-band:last-child{border-radius:4px 4px 8px 8px}.pyr2-label{font-family:Montserrat,sans-serif;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-shadow:0 1px 2px rgba(0,0,0,.35)}.pyr2-pct{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:800;text-shadow:0 1px 3px rgba(0,0,0,.4)}.lon-panel .lon-life{font-size:.72rem;color:#8a817c}.lon-panel .lon-life strong{color:#6a4c93}.lon-svg{width:100%;height:168px;display:block;margin:.3rem 0}.lon-tick{font-size:7px;fill:#b8b2ae;font-family:Lato,sans-serif}.lon-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.lon-layers{display:flex;flex-direction:column;gap:.2rem;margin-top:.3rem}.lon-layer-row{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:#564e4b}.lon-layer-lbl{flex:1}.lon-layer-dur{font-weight:700;color:#564e4b;font-variant-numeric:tabular-nums}.lon-metrics{display:flex;gap:.5rem;margin-top:.6rem}.lon-metric{flex:1;text-align:center;background:#faf8f7;border:1px solid #eee7e4;border-radius:7px;padding:.4rem .3rem}.lon-metric-v{display:block;font-family:Montserrat,sans-serif;font-weight:800;font-size:.95rem;color:#6a4c93}.lon-metric-l{display:block;font-size:.56rem;color:#8a817c;text-transform:uppercase;letter-spacing:.03em;margin-top:.1rem}.lon-note{font-size:.6rem;color:#adadad;text-align:center;margin-top:.5rem;font-style:italic}.pyr-badge{display:inline-block;font-size:.55rem;padding:.08rem .34rem;border-radius:3px;margin-left:.25rem;text-transform:uppercase;font-weight:700;vertical-align:middle}.pyr-top{background:#fcf0c9;color:#9a7b13}.pyr-top-heart{background:#fae0d8;color:#b5611f}.pyr-heart{background:#fbe0ec;color:#c0367a}.pyr-heart-base{background:#efd6e0;color:#8e2c52}.pyr-base{background:#e7dde3;color:#6e2742}.accord-label-tag{font-family:Tangerine,serif;font-size:1.3rem;color:#564e4b;opacity:.4;align-self:flex-end;line-height:1.6}
