@font-face{font-family:Open Sans;src:url('/assets/OpenSans-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Open Sans;src:url('/assets/OpenSans-Semibold.ttf') format('truetype');font-weight:600 800;font-display:swap}
:root{--green:#008242;--dark:#044b28;--lime:#dee02e;--bg:#f5f2ee;--text:#0a3d22;--muted:#586a5f;--sidebar:#044b28;--line:#e6e2da;--soft:#f1ffe0;--danger:#a53033;--shadow:0 8px 30px #17372b08;font-family:Open Sans,system-ui,sans-serif;color:var(--text);background:var(--bg);font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.22;letter-spacing:-.8px}h2{font-size:21px;line-height:1.4;letter-spacing:-.3px}h3{font-size:16px;line-height:1.5}p{line-height:1.65}img{max-width:100%}svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #809b20;outline-offset:3px}input,select{min-height:44px;background:#fff;border:1px solid #cfd9cd;border-radius:9px;padding:10px 12px;color:var(--text);min-width:0}input::placeholder{color:#859187}input:disabled{background:#eef1ec}input[type=checkbox],input[type=radio]{accent-color:var(--green);min-height:20px;width:20px;height:20px;flex-shrink:0}label{line-height:1.5}label.field{display:flex;flex-direction:column;gap:7px;font-weight:600}.field input{font-weight:400}.icon{width:20px;height:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 17px;border:1px solid transparent;border-radius:9px;background:var(--green);color:#fff;font-weight:600;line-height:1.5;text-align:center}.button:hover:not(:disabled){background:#0b4b30}.button.secondary{background:var(--soft);color:var(--green)}.button.secondary:hover:not(:disabled){background:#dde8d4}.button.ghost{background:transparent;color:var(--green);border-color:var(--line)}.button.ghost:hover:not(:disabled){background:#f0f4ed}.button.quiet{background:transparent;color:var(--green);padding:8px 10px}.button.quiet:hover:not(:disabled){background:var(--soft)}.button.danger{background:#fff2f1;color:var(--danger)}.button.square{padding:10px;min-width:44px}.button.lime{background:var(--lime);color:var(--dark)}.button.full{width:100%}.caption{font-size:12px;line-height:1.6;color:var(--muted)}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase}.badge{display:inline-flex;align-items:center;gap:5px;max-width:100%;font-size:11px;line-height:1.5;border-radius:5px;padding:4px 8px;background:var(--soft);color:var(--green);font-weight:600}.badge.warn{background:#fff2dc;color:#83551d}.badge.dark{background:#1d3a2f;color:#d7eabf}.badge.neutral{background:#edf0ec;color:var(--muted)}.notice{display:flex;gap:10px;padding:14px 16px;border-radius:10px;background:#edf3e7;font-size:13px;line-height:1.6;align-items:flex-start}.notice .icon{margin-top:2px}.notice.error{background:#fff0ed;color:var(--danger)}.notice.warn{background:#fff4df;color:#805621}.notice.success{background:#e5f0da;color:var(--green)}.notice + .notice{margin-top:10px}.stack{display:flex;flex-direction:column;gap:20px}.stack.small{gap:10px}.row{display:flex;align-items:center;gap:12px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.push{margin-left:auto}.grow{flex:1;min-width:0}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow)}.divider{height:1px;background:var(--line);margin:3px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:12px;transform:translateY(-160%);z-index:1000;background:var(--lime);padding:12px}.skip-link:focus{transform:translateY(0)}.boot{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;color:var(--muted)}.loading{padding:35px;text-align:center;color:var(--muted)}
/* The application shell */
.shell{min-height:100dvh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{background:var(--sidebar);color:#c6d1c8;position:fixed;inset:0 auto 0 0;width:236px;display:flex;flex-direction:column;z-index:30;padding:31px 17px 18px}.brand{display:flex;flex-direction:column;gap:9px;padding:0 16px 31px}.brand img{width:142px;max-height:53px;object-fit:contain;object-position:left}.brand .eyebrow{color:#aabdac;font-size:9px;letter-spacing:2px}.nav-label{font-size:9px;letter-spacing:1.6px;padding:16px;color:#879d90;font-weight:600}.nav{display:flex;flex-direction:column;gap:6px}.nav a{display:flex;align-items:center;gap:12px;padding:12px 15px;min-height:46px;border-radius:8px;font-size:13px;font-weight:600;color:#cad6cd;text-decoration:none}.nav a:hover{background:#ffffff0a}.nav a.active{background:#204932;color:#e2efb6;box-shadow:inset 3px 0 var(--lime)}.nav a.active .icon{color:var(--lime)}.nav .nav-count{margin-left:auto;background:#ffffff15;border-radius:5px;padding:1px 6px;font-size:10px}.sidebar-bottom{margin-top:auto;padding-top:28px}.sidebar-help{padding:17px;border:1px solid #2e4238;border-radius:10px;font-size:11px;color:#aebdb0;line-height:1.7}.sidebar-account{width:100%;display:flex;gap:10px;align-items:center;background:none;border:0;border-top:1px solid #2d4036;color:#dfe7df;padding:20px 7px 4px;margin-top:20px;text-align:left}.avatar{width:33px;height:33px;border-radius:50%;background:#dae8cc;color:#235139;display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}.account-lines{min-width:0;flex:1}.account-lines strong,.account-lines span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-lines strong{font-size:12px}.account-lines span{font-size:10px;color:#9fb3a2;margin-top:2px}.workspace{grid-column:2;min-width:0}.topbar{position:sticky;top:0;z-index:20;height:75px;padding:0 34px;display:flex;align-items:center;gap:18px;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.topbar-title{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.topbar-title strong{color:var(--text)}.topbar-title .icon{width:13px;height:13px}.company-switch{display:flex;align-items:center;gap:11px;max-width:450px;border:0;background:#f1f5ee;border-radius:8px;padding:8px 12px;text-align:left;color:var(--text)}.company-switch .company-lines{min-width:0}.company-switch .company-lines small{display:block;font-size:9px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.company-switch .company-lines strong{display:block;max-width:330px;font-size:12px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.company-switch .icon{color:var(--green)}.mobile-menu{display:none}.main{max-width:1540px;margin:0 auto;padding:32px 34px 48px}.page-heading{display:flex;align-items:flex-start;gap:20px;justify-content:space-between;margin-bottom:23px}.page-heading h1{margin-bottom:8px}.page-heading p{font-size:13px;color:var(--muted)}.section-heading{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:5px 0 16px}.section-heading p{color:var(--muted);font-size:12px}.footer{margin-top:35px;padding-top:20px;border-top:1px solid var(--line);font-size:10px;color:#839085;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.empty-state{padding:45px 25px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px}.empty-state p{max-width:560px;color:var(--muted);font-size:13px}.empty-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--green);margin-bottom:4px}.empty-icon .icon{width:26px;height:26px}
/* Login */
.auth{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.auth-story{background:var(--dark);color:white;position:relative;overflow:hidden;padding:58px 70px;display:flex;flex-direction:column;min-height:730px}.auth-story:after{content:'';position:absolute;width:500px;height:500px;background:#1d6946;border-radius:50%;bottom:-100px;right:-180px;pointer-events:none}.auth-story .brand{padding:0;z-index:1}.auth-story .brand img{width:170px}.auth-copy{margin-top:auto;padding-top:90px;z-index:1;max-width:510px}.auth-copy h1{font-size:44px;line-height:1.18;letter-spacing:-1.5px;margin:20px 0}.auth-copy h1 span{color:var(--lime)}.auth-copy p{color:#c5d5c4;max-width:410px}.auth-hero{width:100%;height:280px;object-fit:contain;object-position:center;position:relative;z-index:1;margin:20px 0}.auth-story .caption{color:#abc5ad;z-index:1}.auth-panel{padding:50px;display:flex;align-items:center;justify-content:center}.auth-form{width:100%;max-width:390px;display:flex;flex-direction:column;gap:24px}.auth-form .intro{margin-bottom:4px}.auth-form h2{font-size:29px;letter-spacing:-.7px;margin:8px 0 10px}.auth-form .intro p{font-size:13px;color:var(--muted)}.auth-form form{display:flex;flex-direction:column;gap:20px}.auth-form .code-input{font-size:27px;letter-spacing:10px;text-align:center;font-weight:600}.auth-footnote{padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.7}.auth-logo-mobile{display:none}
/* Catalog and ordinary quantity-only basket */
.catalog-hero{display:flex;background:#eaf0e2;border:1px solid #dce6d1;border-radius:16px;overflow:hidden;min-height:196px;margin-bottom:26px;position:relative}.catalog-hero-copy{padding:27px 31px;flex:1;z-index:1;max-width:66%}.catalog-hero h2{font-size:27px;line-height:1.25;margin:9px 0 10px}.catalog-hero p{max-width:490px;color:#586c53;font-size:12px}.catalog-hero img{width:34%;object-fit:contain;max-height:225px;align-self:center;mix-blend-mode:multiply;padding:10px 20px 0 0}.catalog-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px}.categories{padding:19px 13px;height:max-content}.categories h3{padding:0 8px 12px}.category-list{display:flex;flex-direction:column;gap:3px;max-height:720px;overflow:auto}.category-list button{display:flex;align-items:center;text-align:left;min-height:38px;width:100%;font-size:12px;padding:8px;border:0;border-radius:6px;background:none;color:var(--muted);line-height:1.5}.category-list button:hover{background:var(--bg)}.category-list button.active{background:var(--soft);color:var(--green);font-weight:600}.category-list .child{padding-left:21px;font-size:11px}.search-box{display:flex;align-items:center;position:relative;flex:1;min-width:180px}.search-box .icon{position:absolute;left:13px;color:#82907f;width:18px;height:18px}.search-box input{width:100%;padding-left:41px;background:white}.catalog-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px}.catalog-toolbar .button{font-size:12px}.result-count{font-size:11px;color:var(--muted);margin-bottom:14px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.product-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow);min-width:0}.product-visual{height:165px;flex-shrink:0;min-height:0;overflow:hidden;background:#fff;display:grid;grid-template: minmax(0,1fr) / minmax(0,1fr);place-items:center;position:relative;width:100%;border:0;padding:18px;color:#9aa98d}.product-visual img{display:block;min-width:0;min-height:0;max-height:100%;height:100%;width:100%;object-fit:contain}.product-visual .icon{width:53px;height:53px;stroke-width:1}.product-card-body{padding:15px 17px 17px;display:flex;flex-direction:column;gap:8px;flex:1;border-top:1px solid #f0f3ed}.product-code{font-size:9px;color:#8d988a;letter-spacing:.5px}.product-name{border:0;background:none;text-align:left;font-size:14px;color:var(--text);font-weight:600;padding:0;line-height:1.5}.product-name:hover{color:var(--green)}.product-desc{font-size:11px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.product-card-bottom{margin-top:auto;padding-top:11px;display:flex;gap:8px;justify-content:space-between;align-items:center;flex-wrap:wrap}.product-card-bottom .button{min-height:36px;padding:6px 10px;font-size:11px}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:26px;font-size:12px;color:var(--muted)}.product-detail{display:grid;grid-template-columns:220px 1fr;gap:26px}.product-detail-visual{min-height:230px;display:grid;place-items:center;background:var(--bg);border-radius:12px;padding:25px}.product-detail-visual img{max-height:270px;object-fit:contain}.product-detail-visual .icon{width:70px;height:70px;color:#b2c2a8}.long-copy{white-space:pre-line;overflow-wrap:anywhere;line-height:1.75;font-size:13px;color:var(--muted)}
/* Business modules */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.stat{padding:23px;background:white;border:1px solid var(--line);border-radius:12px;min-width:0}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:32px;letter-spacing:-.8px;font-weight:600;line-height:1.5;margin:6px 0;overflow-wrap:anywhere}.stat .caption{font-size:11px}.stat.primary{background:var(--dark);border-color:var(--dark);color:white}.stat.primary .stat-value{color:var(--lime)}.stat.primary .caption,.stat.primary .stat-label{color:#d2dfce}.account-owner{padding:24px;display:flex;gap:18px;align-items:center}.account-owner .empty-icon{margin:0}.account-rules{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.rule-number{font-size:30px;font-weight:600;color:var(--green);letter-spacing:-1px;line-height:1.3}.rule-example{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.rule-example:last-child{border:0}.order-layout{display:grid;grid-template-columns:minmax(0,1fr) 298px;gap:23px;align-items:start}.order-side{position:sticky;top:98px;display:flex;flex-direction:column;gap:16px}.order-side .card{padding:21px}.order-side .card.green{background:var(--soft)}.order-side h3{margin-bottom:15px}.total-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;line-height:1.7;margin:9px 0;font-size:12px}.total-line strong{font-size:16px;text-align:right}.total-line.main{padding-top:10px;margin-top:12px;border-top:1px solid #cfdbc7}.total-line.main strong{font-size:21px;color:var(--green)}.order-side .button.full{margin-top:14px}.offer-list{display:flex;flex-direction:column;gap:12px}.offer-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.offer-card h3{margin-bottom:6px}.offer-meta{font-size:11px;color:var(--muted);line-height:1.7}.offer-cost{font-size:19px;font-weight:600;color:var(--green);margin:8px 0}.offer-controls{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.qty{display:flex;gap:5px;align-items:center}.qty input{width:70px;text-align:center;padding:7px 5px;min-height:39px}.qty .button{min-width:36px;min-height:39px;padding:7px}.qty .icon{width:15px;height:15px}.qty-unit{margin-left:6px;font-size:11px;color:var(--muted)}.input-error{font-size:11px;color:var(--danger);max-width:230px;line-height:1.6}.offer-card.unavailable{background:#fafbf8}.offer-card.unavailable .offer-cost{color:#7c8b78}.periods{display:flex;gap:10px;flex-wrap:wrap}.period-choice{border:1px solid var(--line);padding:13px 17px;text-align:left;background:white;border-radius:9px;color:var(--muted);min-width:160px;flex:1}.period-choice strong{display:block;color:var(--text);font-size:13px;margin-bottom:4px}.period-choice span{font-size:10px;line-height:1.6}.period-choice.active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#eef4e9}.period-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:12px}.period-facts strong{display:block;font-size:13px;margin-top:4px}.period-facts span{color:var(--muted);font-size:10px}.history-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.history-table th{font-weight:400;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line);padding:13px 12px}.history-table td{padding:16px 12px;border-bottom:1px solid #edf1ea;vertical-align:top}.history-table tr:last-child td{border:0}.history-table td strong{display:block;line-height:1.6}.history-id{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.table-wrap{overflow-x:auto}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs .button{min-height:36px;padding:7px 12px;font-size:11px}.pending-card{border:1px solid #e4cb95;background:#fff8e9;padding:20px;border-radius:12px;font-size:12px;line-height:1.6}.pending-card h3{margin-bottom:9px}.pending-card .button{margin-top:12px}.pending-card .caption{overflow-wrap:anywhere}.receipt{background:#eaf2e2;border:1px solid #d8e7cb;border-radius:12px;padding:20px;display:flex;gap:14px}.receipt>.icon{background:var(--green);color:white;border-radius:50%;width:32px;height:32px;padding:6px}.receipt h3{margin-bottom:5px}.receipt p{font-size:12px}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.definition-list{display:grid;grid-template-columns:115px 1fr;gap:13px;font-size:12px;margin:20px 0 0}.definition-list dt{color:var(--muted)}.definition-list dd{margin:0;overflow-wrap:anywhere}
/* Dialogs and selectable company directory */
dialog{padding:0;border:1px solid var(--line);border-radius:16px;width:min(980px,calc(100% - 32px));max-height:calc(100dvh - 44px);color:var(--text);background:var(--bg);box-shadow:0 25px 100px #001e2a30}dialog::backdrop{background:#09251e8f;backdrop-filter:blur(3px)}.dialog-frame{display:flex;flex-direction:column;max-height:calc(100dvh - 48px)}.dialog-head{padding:23px 26px 18px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:20px;justify-content:space-between;flex-shrink:0}.dialog-head h2{font-size:23px}.dialog-head p{font-size:12px;color:var(--muted);margin-top:5px}.dialog-head .button{flex-shrink:0}.dialog-body{padding:22px 26px;overflow-y:auto;overscroll-behavior:contain;min-height:0}.dialog-foot{padding:17px 26px;background:white;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;flex-shrink:0}.dialog-foot p{font-size:11px;line-height:1.6;color:var(--muted);max-width:480px}.dialog-foot .row{flex-shrink:0}.company-tools{display:flex;gap:13px;align-items:center;margin-bottom:14px}.company-tools select{font-size:12px;max-width:190px}.company-table{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:12px}.company-table thead th{padding:3px 13px 7px;font-weight:400;font-size:10px;color:var(--muted);text-align:left}.company-table td{background:white;padding:13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle}.company-table td:first-child{border-left:1px solid var(--line);border-radius:9px 0 0 9px;width:38px;padding-right:0}.company-table td:last-child{border-right:1px solid var(--line);border-radius:0 9px 9px 0}.company-table tr.chosen td{background:#eaf2e2;border-color:#a6c18b}.company-table tr:hover td{background:#f0f5ea}.company-table label{display:block;font-weight:600;cursor:pointer;line-height:1.6}.company-secondary{font-size:10px;color:var(--muted);line-height:1.7;margin-top:3px}.company-label-mobile{display:none}.company-count{font-size:11px;color:var(--muted);margin:0 0 10px}.company-pending{font-size:12px;max-width:480px}.review-dialog{max-width:760px}.review-facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px;background:white;border:1px solid var(--line);border-radius:10px}.review-lines{display:flex;flex-direction:column;margin:20px 0}.review-line{display:flex;gap:12px;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.65}.review-line:last-child{border-bottom:0}.review-line strong{display:block}.review-ack{display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:1.8;padding:18px;background:#fff;border:1px solid var(--line);border-radius:10px}.review-ack input{margin:2px 0 0}.review-total{background:var(--soft);padding:18px;border-radius:10px}.dialog-foot.review-footer{justify-content:flex-end}.no-scroll{overflow:hidden}
@media(min-width:1600px){.product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1180px){.shell{grid-template-columns:208px minmax(0,1fr)}.sidebar{width:208px;padding-inline:12px}.main{padding:27px 24px 40px}.topbar{padding-inline:24px}.catalog-layout{grid-template-columns:166px minmax(0,1fr);gap:17px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-layout{grid-template-columns:minmax(0,1fr) 267px;gap:17px}.offer-card{grid-template-columns:1fr}.offer-controls{align-items:flex-start}.auth-story{padding:45px}.auth-copy h1{font-size:37px}.stat-value{font-size:27px}.period-facts{gap:12px;padding:17px}}
@media(max-width:900px){.shell{display:block}.workspace{width:100%}.sidebar{transform:translateX(-100%);width:248px;transition:transform .18s ease}.shell.drawer-open .sidebar{transform:translateX(0)}.drawer-shade{position:fixed;inset:0;border:0;background:#09251e85;z-index:29}.mobile-menu{display:inline-flex}.topbar{height:68px;padding:0 20px;gap:12px}.topbar-title{display:none}.company-switch{max-width:75%}.company-switch .company-lines strong{max-width:100%}.company-switch .company-lines{flex:1}.company-switch>.icon:first-child{display:none}.main{padding:27px 24px 36px}.auth-story{padding:35px;min-height:650px}.auth-copy h1{font-size:33px}.auth-panel{padding:35px}.catalog-layout{grid-template-columns:170px minmax(0,1fr)}.account-rules{grid-template-columns:1fr 1fr}.sidebar-help{font-size:11px}.order-layout{grid-template-columns:minmax(0,1fr) 275px}.offer-card{padding:17px}}
@media(max-width:650px){h1{font-size:26px}h2{font-size:20px}.main{padding:24px 16px 30px}.topbar{padding:0 15px}.company-switch{max-width:calc(100% - 65px);padding:8px 10px}.company-switch .company-lines strong{font-size:11px;max-width:240px}.company-switch .company-lines small{font-size:8px}.page-heading{gap:12px;flex-wrap:wrap}.page-heading p{font-size:12px}.page-heading>.button{min-height:38px;font-size:11px;padding:8px 11px}.card{padding:19px}.auth{display:block;background:var(--bg);min-height:100dvh}.auth-story{display:none}.auth-panel{padding:35px 22px;min-height:100dvh}.auth-logo-mobile{display:block;width:155px;margin-bottom:22px}.auth-form h2{font-size:28px}.catalog-hero{min-height:190px;margin-bottom:22px}.catalog-hero-copy{padding:22px;max-width:100%;padding-right:80px}.catalog-hero h2{font-size:23px;max-width:240px}.catalog-hero p{font-size:11px;max-width:260px}.catalog-hero img{position:absolute;right:-42px;bottom:-21px;max-height:140px;width:160px;opacity:.6;padding:0}.catalog-layout{display:block}.categories{margin-bottom:18px;padding:14px}.categories h3{font-size:13px;padding-bottom:9px}.category-list{max-height:135px;display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;overflow:auto}.category-list button{min-height:31px;padding:6px 9px;width:auto;font-size:10px;max-width:100%}.category-list .child{display:none}.catalog-toolbar{flex-wrap:wrap}.catalog-toolbar .search-box{width:100%;flex-basis:100%}.catalog-toolbar .button{font-size:11px}.product-grid{gap:12px}.product-visual{height:145px;padding:15px}.product-card-body{padding:13px}.product-name{font-size:12px}.product-desc{font-size:10px}.product-card-bottom .button{width:100%}.product-card-bottom{gap:7px}.product-detail{grid-template-columns:1fr;gap:20px}.product-detail-visual{min-height:160px}.product-detail-visual img{max-height:190px}.stats{grid-template-columns:1fr;gap:12px}.stat{padding:20px}.stat-value{font-size:32px}.account-rules,.account-grid{grid-template-columns:1fr}.account-owner{align-items:flex-start}.account-owner h2{font-size:17px}.order-layout{display:flex;flex-direction:column;gap:20px}.order-layout>.stack{width:100%}.order-side{position:static;width:100%}.offer-card{grid-template-columns:1fr;gap:12px}.offer-controls{align-items:flex-start}.offer-cost{font-size:18px}.period-facts{grid-template-columns:1fr;gap:13px}.period-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:15px}.period-facts strong{text-align:right;font-size:12px;margin-top:0;max-width:65%}.periods{gap:8px}.period-choice{padding:12px;min-width:135px}.period-choice strong{font-size:12px}.history-table thead{display:none}.history-table,.history-table tbody,.history-table tr,.history-table td{display:block}.history-table tr{padding:14px 0;border-bottom:1px solid var(--line)}.history-table td{border:0;padding:3px 0}.history-table tr:last-child{border:0}.table-wrap{overflow:visible}.definition-list{grid-template-columns:90px 1fr;gap:13px}.footer{font-size:9px;margin-top:26px}.notice{font-size:12px}.empty-state{padding:32px 22px}.empty-state h2{font-size:19px}.empty-state p{font-size:12px}dialog{width:calc(100% - 20px);max-height:calc(100dvh - 22px);border-radius:13px}.dialog-frame{max-height:calc(100dvh - 26px)}.dialog-head{padding:19px 17px 15px;gap:10px}.dialog-head h2{font-size:21px}.dialog-head p{font-size:11px}.dialog-head .button{min-width:35px;min-height:35px;padding:7px}.dialog-body{padding:17px}.dialog-foot{padding:15px 17px;flex-direction:column;align-items:stretch;gap:12px}.dialog-foot .row{justify-content:stretch}.dialog-foot .row .button{flex:1}.dialog-foot.review-footer .button{width:100%}.company-tools{flex-wrap:wrap;gap:10px}.company-tools .search-box{flex-basis:100%}.company-tools select{max-width:100%;flex:1}.company-table thead{display:none}.company-table,.company-table tbody{display:block}.company-table tr{display:grid;grid-template-columns:28px 1fr;background:white;border:1px solid var(--line);border-radius:9px;padding:13px;margin-bottom:9px}.company-table tr.chosen{background:#eaf2e2;border-color:#a6c18b}.company-table td,.company-table td:first-child,.company-table td:last-child{display:block;padding:0;border:0;background:transparent!important;width:auto;border-radius:0}.company-table td:first-child{grid-column:1;grid-row:1/5}.company-table td:not(:first-child){grid-column:2}.company-table td:nth-child(n+3){margin-top:7px}.company-label-mobile{display:inline;color:var(--muted);font-size:10px}.company-table label{font-size:12px}.company-secondary{font-size:10px}.review-facts{grid-template-columns:1fr;gap:12px}.review-line{font-size:11px}.review-line>strong{white-space:nowrap;font-size:12px}.review-ack{padding:14px;font-size:11px}.order-side .card{padding:20px}.pending-card{padding:17px}}
.wordmark{display:flex;align-items:center;gap:12px;color:#fff;line-height:1}.wordmark-copy{display:flex;flex-direction:column;gap:5px}.wordmark strong{font-size:22px;letter-spacing:-.7px;font-weight:800}.wordmark small{font-size:12px;font-weight:600;letter-spacing:3px}.brand .wordmark img,.auth-story .brand .wordmark img,.wordmark img{width:45px;height:45px;object-fit:contain;flex-shrink:0}.wordmark-dark{color:var(--text)}.wordmark-dark small{color:var(--green)}.auth-logo-mobile{width:auto}.auth-story .wordmark strong{font-size:31px}.auth-story .wordmark small{font-size:15px}.auth-story .brand .wordmark img{width:61px;height:61px;max-height:none}.boot .wordmark img{width:68px;height:68px}.boot .wordmark strong{font-size:32px}.boot .wordmark small{font-size:17px}
.category-tree{max-height:720px;overflow:auto}.category-roots,.category-children{list-style:none;padding:0;margin:0}.category-row{display:flex;align-items:flex-start;gap:2px;margin:3px 0}.category-filter{flex:1;min-width:0;display:block;text-align:left;border:0;border-radius:6px;background:none;color:var(--muted);padding:9px 8px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.category-filter:hover{background:var(--bg)}.category-filter.active{background:var(--soft);color:var(--green);font-weight:600}.all-categories{width:100%;margin-bottom:8px}.category-toggle{display:grid;place-items:center;flex-shrink:0;width:29px;min-height:36px;border:0;border-radius:6px;background:none;color:var(--muted);padding:7px}.category-toggle:hover{background:var(--soft);color:var(--green)}.category-toggle .icon{width:14px;height:14px}.category-toggle.expanded .icon{transform:rotate(90deg)}.category-children{margin-left:9px;padding-left:9px;border-left:1px solid var(--line)}.category-children .category-filter{font-size:11px}.category-node{min-width:0}
@media(max-width:650px){.category-tree{max-height:220px}.category-filter{font-size:11px;padding:7px 8px}.category-toggle{min-height:31px}.category-children .category-filter{font-size:11px}.category-row{margin:2px 0}}
@media(max-width:900px){.sidebar{visibility:hidden}.shell.drawer-open .sidebar{visibility:visible}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Keep company search/sort outside the list's scroll container. */
.company-filters{padding:18px 26px 12px;flex-shrink:0;background:var(--bg);border-bottom:1px solid var(--line)}
.company-filters .company-count{margin-bottom:0}
.company-view-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:0 0 16px;min-width:0}.company-view-mode{display:flex;align-items:center;gap:11px;padding:13px 14px;background:white;border:1px solid var(--line);border-radius:10px;cursor:pointer;min-width:0}.company-view-mode.active{border-color:var(--green);background:#edf4e9}.company-view-mode:focus-within{outline:2px solid var(--green);outline-offset:2px}.company-view-mode input{margin:0;flex-shrink:0;accent-color:var(--green)}.company-view-mode>.icon{color:var(--green);flex-shrink:0}.company-view-mode strong{display:block;font-size:12px}.company-view-mode small{display:block;font-size:10px;color:var(--muted);margin-top:3px;line-height:1.5}@media(max-width:650px){.company-view-modes{grid-template-columns:1fr;gap:7px;margin-bottom:12px}.company-view-mode{padding:10px 12px}.company-view-mode small{font-size:10px}}
.company-table tbody tr{cursor:pointer}
.company-table tr:focus-within td{border-color:#6e9748}
.product-price{display:flex;flex-direction:column;gap:3px;margin:10px 0 14px}
.product-price strong{font-size:21px;line-height:1.3;color:var(--green)}
.product-price span{font-size:10px;color:var(--muted)}
@media(max-width:650px){.company-filters{padding:14px 17px 12px}.product-price strong{font-size:18px}}

.hello-login{margin-top:16px}.passkey-list{list-style:none;padding:0;margin:0}.passkey-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.passkey-list small{display:block;color:var(--muted);margin-top:4px}
.ai-page{max-width:980px;margin:0 auto;min-width:0}.ai-chat{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.ai-intro{padding:26px}.ai-hero{background:var(--dark);border-radius:12px;color:#fff;padding:30px 34px}.ai-hero .eyebrow{color:var(--lime)}.ai-hero h2{font-size:29px;letter-spacing:-.7px;margin:13px 0}.ai-hero p{font-size:14px;line-height:1.7;margin:0;max-width:620px;color:#e3eee6}.ai-guidance{font-size:13px;color:var(--muted);line-height:1.7;margin:22px 0}.ai-suggestions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ai-suggestion{display:flex;flex-direction:column;gap:10px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);padding:16px;line-height:1.6}.ai-suggestion:hover{border-color:var(--green);background:var(--soft)}.ai-suggestion small{color:var(--muted);font-size:10px}.ai-suggestion strong{font-size:12px;font-weight:600;flex:1}.ai-suggestion .icon{color:var(--green);align-self:flex-end}.ai-transcript{padding:26px;display:flex;flex-direction:column;gap:22px;max-height:clamp(300px,calc(100dvh - 400px),720px);overflow-y:auto;overscroll-behavior:contain}.ai-message{max-width:95%;padding:19px 22px;border-radius:13px;overflow-wrap:anywhere}.ai-user{align-self:flex-end;background:var(--soft);min-width:150px}.ai-assistant{align-self:flex-start;background:var(--bg);border:1px solid var(--line);width:100%}.ai-message-label{font-size:10px;font-weight:700;color:var(--green);margin-bottom:10px}.ai-message-copy{font-size:14px;line-height:1.8;white-space:pre-wrap}.ai-message-copy p{margin:0 0 14px}.ai-message-copy p:last-child{margin-bottom:0}.ai-message-copy ul{padding-left:22px;margin:8px 0}.ai-sources{margin-top:20px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.ai-sources ul{list-style:none;padding:0;margin:9px 0;display:flex;flex-wrap:wrap;gap:8px}.ai-sources li{display:flex;align-items:flex-start;gap:6px;padding:5px 8px;background:#fff;border:1px solid var(--line);border-radius:6px;min-width:0;max-width:100%}.ai-sources .icon{width:14px;height:14px;flex-shrink:0;margin-top:2px}.ai-report{display:inline-block;margin-top:14px;font-size:10px;color:var(--muted);text-decoration:underline}.ai-activity{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--green)}.ai-failed{border:1px solid #dcbbaa}.ai-failed>.caption{display:block;margin-top:8px}.ai-composer{border-top:1px solid var(--line);padding:22px 26px;background:#fff}.ai-composer textarea{width:100%;resize:vertical;min-height:95px;max-height:240px;line-height:1.6}.ai-composer .field{font-size:12px}.ai-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.ai-footnote{font-size:10px;color:var(--muted);line-height:1.7;margin:18px 0 0}.ai-composer>.button{margin-bottom:15px}
.ai-composer textarea{border:1px solid var(--line);border-radius:10px;padding:12px 15px;color:var(--text);background:#fff;font:inherit;font-size:14px;line-height:1.6}.ai-composer textarea:focus{outline:2px solid var(--green);outline-offset:2px}.ai-composer textarea:disabled{background:var(--bg)}
@media(max-width:650px){.ai-page .page-heading{gap:10px}.ai-page .page-heading h1{font-size:26px}.ai-page .page-heading>.button{padding:8px 11px;min-width:92px}.ai-intro{padding:16px}.ai-hero{padding:22px}.ai-hero h2{font-size:24px}.ai-hero p{font-size:12px}.ai-suggestions{grid-template-columns:1fr;gap:8px}.ai-suggestion{display:grid;grid-template-columns:1fr 20px;gap:4px 12px;padding:12px 14px}.ai-suggestion small,.ai-suggestion strong{grid-column:1}.ai-suggestion .icon{grid-column:2;grid-row:1/3;align-self:center}.ai-guidance{font-size:12px;margin:16px 0}.ai-transcript{padding:16px;gap:16px;max-height:clamp(260px,calc(100dvh - 370px),580px)}.ai-message{padding:14px;max-width:100%}.ai-message-copy{font-size:13px}.ai-composer{padding:16px}.ai-composer textarea{min-height:85px}.ai-footnote{font-size:9px}.ai-sources li{font-size:10px}}
/* Private offers are visually separate from the public recommended catalog price. */
.customer-offer { display: grid; gap: 10px; margin-block: 12px; }
.customer-offer .product-price { margin: 0; }
.catalog-price strong { font-size: 16px; color: var(--text); font-weight: 600; }
.customer-price strong { color: #12613f; }
.product-stock { display: grid; gap: 3px; padding: 10px 12px; border-radius: 10px; background: #f5f7f3; color: #64746b; font-size: 13px; }
.product-stock small { font-size: 11px; font-weight: 400; }
.stock-zone-0 { background: #fcedec; color: #af3737; }
.stock-zone-1, .stock-zone-2 { background: #fff0dd; color: #82501c; }
.stock-zone-3, .stock-zone-4 { background: #e8f0e4; color: #12613f; }
.purchase-actions { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }
.purchase-actions .button { flex: 1 1 auto; white-space: normal; }
.product-card-bottom .purchase-actions { width: 100%; }
.cart-line { grid-template-columns: minmax(0,1fr); align-items: start; }
.cart-line-info, .cart-controls { min-width: 0; }
.cart-controls { align-items: flex-start; border-top: 1px solid var(--line); padding-top: 16px; }
.cart-line-total { max-width: 360px; }
.cart-line-total .total-line strong { font-size: 16px; }
.carton-controls .button { font-size: 12px; padding: 8px 12px; }
.carton-breakdown { min-height: 18px; }
.cart-summary .total-line { flex-wrap: wrap; }
.cart-summary .total-line.main { padding: 10px 0 0; margin: 12px 0 9px; max-width: none; }
.cart-summary .total-line strong { margin-left: auto; overflow-wrap: anywhere; }
.cart-summary .notice { font-size: 12px; }
@media(min-width:1400px) { .cart-line { grid-template-columns: minmax(0,1fr) 225px; } .cart-controls { border-top: 0; padding-top: 0; } }
@media(max-width:1100px) { .cart-layout { display: grid; grid-template-columns: minmax(0,1fr); } .cart-summary { position: static; } }
@media(max-width:650px) { .cart-line { padding: 16px; } .dialog-foot .purchase-actions { width: 100%; } }
/* Product actions keep the cart state next to the buttons, including after scrolling. */
.purchase-block { display: grid; gap: 9px; min-width: 0; width: 100%; }
.product-cart-count { display: grid; grid-template-columns: 17px minmax(0,1fr); align-items: center; gap: 4px 7px; min-height: 32px; padding: 7px 10px; border-radius: 9px; color: var(--muted); background: #f5f7f3; font-size: 12px; }
.product-cart-count .icon { width: 17px; height: 17px; }
.product-cart-count small { grid-column: 2; font-weight: 400; font-size: 10px; }
.product-cart-count.has-items { color: #12613f; background: #e8f0e4; font-weight: 650; }
.product-ai { align-self: flex-start; justify-content: flex-start; padding: 4px 0; min-height: 38px; color: var(--green); }
.product-ai .icon { width: 17px; height: 17px; }
.dialog-foot .purchase-block { width: min(100%, 330px); }
/* Cart draft notes and the last-verified price line; empty slots take no space in stacked layouts. */
[data-cart-notice]:empty, [data-offers-status]:empty { display: none; }
.offers-status { margin: -6px 0 14px; color: #805621; }
/* The retry flows with the sentence; the negative margin keeps a 36px hit area without a taller line. */
.offers-status .offers-retry { display: inline-flex; min-height: 0; margin: -9px 0; padding: 9px 4px; font-size: 12px; line-height: 1.5; vertical-align: baseline; text-decoration: underline; text-underline-offset: 3px; }
.cart-summary .offers-status, .product-dialog .offers-status { margin: 0; }
.company-pending-wrap { display: grid; gap: 4px; min-width: 0; }
.dialog-foot .company-draft-note { color: #805621; }

/* The public home uses the same brand and catalog cards as the partner workspace. */
.public-shell { min-height:100dvh; }
.public-topbar { display:flex; align-items:center; justify-content:space-between; gap:24px; background:#fff; border-bottom:1px solid var(--line); padding:20px max(24px,calc((100vw - 1420px)/2)); }
.public-brand:hover { text-decoration:none; }
.public-nav { display:flex; align-items:center; gap:24px; }
.public-nav>a:not(.button) { font-weight:600; padding:12px 0; border-bottom:2px solid transparent; }
.public-nav>a.active { border-bottom-color:var(--green); }
.public-main { max-width:1488px; }
.auth-home-link { font-size:12px; }
.landing-page { gap:28px; }
.landing-page>.page-heading { margin-bottom:0; }
.landing-static-banners { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.landing-banner { position:relative; display:flex; flex-direction:column; overflow:hidden; width:100%; min-width:0; border:1px solid var(--line); border-radius:16px; padding:0; background:var(--soft); color:var(--text); text-align:left; }
a.landing-banner:hover { text-decoration:none; }
.landing-banner>img { display:block; width:100%; height:auto; object-fit:contain; }
.landing-carousel { min-width:0; }
.landing-carousel-stage { border-radius:16px; }
.landing-slide[hidden],.landing-pause[hidden] { display:none; }
.landing-carousel-controls,.landing-product-controls { display:flex; align-items:center; gap:12px; margin-top:14px; }
.landing-carousel-controls input[type=range],.landing-product-controls input[type=range] { flex:1; min-width:40px; min-height:44px; padding:0; accent-color:var(--green); border:0; background:transparent; }
.landing-position { flex-shrink:0; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; min-width:42px; text-align:center; }
.landing-pause { min-width:123px; }
.landing-products { min-width:0; }
.landing-product-rail { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 44px)/3); gap:22px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; padding:4px 3px 14px; margin:-4px -3px 0; }
.landing-product-rail>.product-card { scroll-snap-align:start; min-width:0; }
.landing-product-controls { max-width:560px; margin-left:auto; }
.landing-popup-dialog { max-width:780px; }
.landing-popup-dialog .dialog-head { flex-shrink:0; }
@media(min-width:1700px) { .landing-product-rail { grid-auto-columns:calc((100% - 66px)/4); } }
@media(max-width:1000px) { .landing-static-banners { gap:16px; } .landing-product-rail { grid-auto-columns:calc((100% - 22px)/2); } }
@media(max-width:650px) {
  .public-topbar { padding:16px; gap:12px; flex-wrap:wrap; }
  .public-topbar .wordmark img { width:35px; height:35px; }
  .public-topbar .wordmark strong { font-size:20px; }
  .public-topbar .wordmark small { font-size:10px; }
  .public-nav { flex:1; justify-content:flex-end; gap:14px; font-size:12px; }
  .public-nav>.button { padding:8px 10px; font-size:12px; }
  .public-nav>.button .icon { display:none; }
  .public-main { padding:24px 16px 36px; }
  .landing-page { gap:22px; }
  .landing-page>.page-heading { flex-direction:column; gap:16px; }
  .landing-static-banners { grid-template-columns:1fr; }
  .landing-carousel-controls { gap:8px; flex-wrap:wrap; }
  .landing-pause { margin-left:auto; }
  .landing-product-rail { grid-auto-columns:86%; gap:16px; }
  .landing-product-controls { gap:8px; }
}
@media(max-width:380px) { .public-nav { flex-basis:100%; justify-content:space-between; } }

/* Keep catalog navigation and search below the signed-in web header. */
.shell { --shell-header-height: 75px; }
.shell .categories {
  --category-available-height: max(0px, calc(100dvh - var(--shell-header-height) - 32px));
  position: sticky;
  top: calc(var(--shell-header-height) + 16px);
  align-self: start;
  display: flex;
  flex-direction: column;
  height: clamp(280px, var(--category-available-height), 720px);
  min-height: 0;
  max-height: var(--category-available-height);
}
.shell .categories h3 { flex: none; }
.shell .category-tree { flex: 1 1 auto; min-height: 0; max-height: none; }
.category-tree, .sidebar .nav {
  --scroll-thumb: #758970;
  --scroll-thumb-hover: #496d50;
  --scroll-track: #edf2e8;
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: var(--scroll-thumb) var(--scroll-track);
  scroll-padding-block: 6px;
}
.sidebar .nav {
  --scroll-thumb: #648f75;
  --scroll-thumb-hover: #a0bda9;
  --scroll-track: #142d24;
}
.category-tree:hover, .category-tree:focus-within,
.sidebar .nav:hover, .sidebar .nav:focus-within {
  scrollbar-color: var(--scroll-thumb-hover) var(--scroll-track);
}
.category-tree::-webkit-scrollbar, .sidebar .nav::-webkit-scrollbar { width: 8px; height: 8px; }
.category-tree::-webkit-scrollbar-track, .sidebar .nav::-webkit-scrollbar-track {
  background: var(--scroll-track);
  border-radius: 10px;
}
.category-tree::-webkit-scrollbar-thumb, .sidebar .nav::-webkit-scrollbar-thumb {
  background: var(--scroll-thumb);
  border: 2px solid var(--scroll-track);
  border-radius: 10px;
}
.category-tree::-webkit-scrollbar-thumb:hover, .sidebar .nav::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-thumb-hover);
}
.category-tree::-webkit-scrollbar-button, .sidebar .nav::-webkit-scrollbar-button { display: none; }
.category-tree button:focus-visible, .sidebar .nav a:focus-visible { outline-offset: -3px; }
.shell .catalog-toolbar {
  position: sticky;
  top: var(--shell-header-height);
  z-index: 10;
  background: var(--bg);
  padding-block: 10px;
  margin-top: -10px;
  margin-bottom: 6px;
}
@media (max-width: 900px) {
  .shell { --shell-header-height: 68px; }
}
@media (max-width: 650px) {
  /* The single-column phone layout keeps the filter compact above the products. */
  .shell .categories { position: static; height: auto; max-height: none; }
  .shell .category-tree { flex: auto; max-height: min(220px, 40dvh); }
}
@media (max-height: 640px) {
  .sidebar { padding-block: 18px 12px; }
  .sidebar .brand { padding-bottom: 14px; }
  .sidebar .nav-label { padding-block: 10px; }
  .sidebar-bottom { padding-top: 12px; }
  .sidebar-help { display: none; }
  .sidebar-account { margin-top: 0; padding-top: 12px; }
}
@media (forced-colors: active) {
  .category-tree, .sidebar .nav { scrollbar-color: auto; scrollbar-width: auto; }
  .category-tree::-webkit-scrollbar, .sidebar .nav::-webkit-scrollbar { width: revert; height: revert; }
  .category-tree::-webkit-scrollbar-track, .sidebar .nav::-webkit-scrollbar-track { background: Canvas; }
  .category-tree::-webkit-scrollbar-thumb, .sidebar .nav::-webkit-scrollbar-thumb { background: ButtonText; border-color: Canvas; }
  .category-tree::-webkit-scrollbar-button, .sidebar .nav::-webkit-scrollbar-button { display: revert; }
}

/* Customer documents and the selected person's point balance share the existing card layout. */
.document-card { display: grid; gap: 20px; min-width: 0; }
.document-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.document-card-top > div { min-width: 0; }
.document-title { border: 0; padding: 0; background: transparent; color: var(--green); font: inherit; text-align: left; overflow-wrap: anywhere; }
.document-title:hover { text-decoration: underline; }
.document-amount { display: grid; gap: 4px; text-align: right; overflow-wrap: anywhere; }
.document-amount strong { font-size: 22px; font-variant-numeric: tabular-nums; }
.document-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 24px; margin: 0; }
.document-facts > div { min-width: 0; }
.document-facts dt { color: var(--muted); font-size: 11px; margin-bottom: 4px; }
.document-facts dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.document-line { display: grid; gap: 14px; padding: 18px; border: 1px solid var(--line); background: var(--bg); border-radius: 10px; }
.document-line h3 { overflow-wrap: anywhere; }
.document-line .document-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.customer-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.customer-metrics .stat { min-width: 0; }
.customer-metrics .stat-value { overflow-wrap: anywhere; }
.price-list { min-width: 0; }
.price-list-actions { flex-shrink: 0; }
.price-list-owner { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-left: 4px solid var(--green); }
.price-list-owner h2 { margin: 8px 0; overflow-wrap: anywhere; }
.price-list-owner .caption { margin: 0; }
.price-list-dates { display: grid; gap: 5px; color: var(--muted); font-size: 12px; text-align: right; }
.price-list-legend { display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--muted); font-size: 12px; }
.price-list-legend strong { color: var(--text); }
.price-list-tools .search-box { flex: 1; max-width: 520px; }
.price-list-category { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.price-list-category > h2 { padding: 18px 22px; margin: 0; background: #edf4ed; color: var(--green); font-size: 17px; overflow-wrap: anywhere; }
.price-list-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.price-list-table th, .price-list-table td { padding: 16px 22px; border-bottom: 1px solid var(--line); text-align: right; vertical-align: middle; overflow-wrap: anywhere; }
.price-list-table thead th { font-size: 11px; font-weight: 600; color: var(--muted); background: #f8faf7; }
.price-list-table th:first-child { width: 54%; text-align: left; }
.price-list-table tbody tr:last-child > * { border-bottom: 0; }
.price-list-product { font-weight: 400; }
.price-list-product strong { font-size: 14px; }
.price-list-product .caption { display: block; margin-top: 5px; }
.price-list-product .price-list-price-note { color: #82551a; }
.price-list-table td { font-variant-numeric: tabular-nums; font-size: 14px; }
.price-list-customer-price { color: var(--green); font-weight: 650; }
.price-list-table tbody tr:hover { background: #fbfcf9; }
.sidebar .nav { overflow-y: auto; min-height: 0; padding-bottom: 10px; }
@media (max-width: 1100px) { .customer-metrics { grid-template-columns: 1fr; } }
@media (max-width: 650px) {
  .price-list > .page-heading, .price-list-owner { flex-direction: column; align-items: flex-start; }
  .price-list-actions { width: 100%; gap: 8px; }
  .price-list-actions .button { flex: 1; }
  .price-list-dates { text-align: left; }
  .price-list-legend { display: grid; gap: 8px; }
  .price-list-tools .search-box { flex-basis: 100%; max-width: none; }
  .price-list-category > h2 { padding: 16px; }
  .price-list-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .price-list-table, .price-list-table tbody { display: block; }
  .price-list-table tbody tr { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); padding: 16px; gap: 14px; border-bottom: 1px solid var(--line); }
  .price-list-table tbody tr:last-child { border-bottom: 0; }
  .price-list-table th, .price-list-table td { padding: 0; border: 0; text-align: left; }
  .price-list-table th:first-child { grid-column: 1 / -1; width: auto; }
  .price-list-table td::before { content: attr(data-label); display: block; color: var(--muted); font-size: 11px; font-weight: 400; margin-bottom: 5px; }
  .document-card-top { flex-direction: column; gap: 14px; }
  .document-amount { text-align: left; }
  .document-amount strong { font-size: 20px; }
  .document-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .document-card { padding: 18px; }
}

/* Shared price typography and pilot label. */
.money-value.money-value { display: inline; font-size: inherit; color: inherit; white-space: nowrap; font-variant-numeric: tabular-nums; }
.money-value > .money-fraction { display: inline; font-size: .68em; color: inherit; font-weight: inherit; line-height: inherit; vertical-align: baseline; }
.environment-label { display: flex; justify-content: flex-end; margin: -12px 0 14px; }

.product-facts { display: flex; flex-direction: column; gap: 8px; font-size: 12px; margin: 0 0 12px; }
.product-expiration { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; padding-bottom: 7px; border-bottom: 1px solid var(--line); }
.product-expiration > span { color: var(--muted); }
.product-expiration strong { color: var(--text); font-variant-numeric: tabular-nums; }
.product-season { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; }
.product-season .icon { flex: 0 0 15px; width: 15px; height: 15px; }
.product-season.in-season { color: var(--green); font-weight: 600; }
.product-season.season-soon { color: #82501c; font-weight: 600; }

/* Product cards: keep the catalog, detail dialog and gift layouts independent. */
.product-grid:has(> .catalog-product-card) {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 20px;
  align-items: stretch;
}
.catalog-product-card {
  --pc-wash: #eef2e3;
  --pc-ink: #183e31;
  --pc-muted: #61705e;
  --pc-inset: 20px;
  position: relative;
  container-type: inline-size;
  border: 1px solid #dce5d8;
  border-radius: 19px;
  box-shadow: 0 3px 3px #17352002, 0 15px 26px -21px #17352036;
  color: var(--pc-ink);
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.catalog-product-card:nth-child(3n + 2) { --pc-wash: #f6f0e7; }
.catalog-product-card:nth-child(3n) { --pc-wash: #edf3e9; }
.catalog-product-card .pc-visual {
  position: relative;
  isolation: isolate;
  height: 215px;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--pc-wash);
}
.catalog-product-card .pc-visual-header {
  position: absolute;
  z-index: 3;
  inset: 16px var(--pc-inset) auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  pointer-events: none;
}
.catalog-product-card .pc-visual-header .product-code {
  color: #5d7059;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .6px;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  padding-top: 5px;
}
.catalog-product-card .pc-size,
.product-dialog .pc-size {
  max-width: 65%;
  padding: 4px 8px;
  border: 1px solid #ffffffcc;
  border-radius: 6px;
  background: #ffffffdb;
  color: #48614c;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.45;
  text-align: right;
  overflow-wrap: anywhere;
}
.catalog-product-card .product-visual.pc-photo {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 36px 28px 16px;
  overflow: visible;
  background: transparent;
}
.catalog-product-card .pc-photo::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 35px;
  left: 50%;
  width: 167px;
  height: 167px;
  border-radius: 50%;
  background: #ffffff9c;
  transform: translateX(-50%);
  pointer-events: none;
}
.catalog-product-card .pc-photo::after {
  content: '';
  position: absolute;
  z-index: -1;
  bottom: 16px;
  left: 24%;
  right: 24%;
  height: 14px;
  border-radius: 50%;
  background: #3151310b;
  filter: blur(6px);
  pointer-events: none;
}
.catalog-product-card .pc-photo img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 13px 9px #24442a20);
  transition: transform .28s;
}
.catalog-product-card .pc-photo > .icon { width: 70px; height: 70px; color: #799275; }
.catalog-product-card .pc-photo:focus-visible { outline-offset: -6px; }
.product-dialog .product-detail {
  grid-template-columns: minmax(260px, 380px) minmax(0, 1fr);
  align-items: start;
}
.product-dialog .product-detail > .stack { min-width: 0; }
.product-dialog .product-detail-visual {
  position: relative;
  width: 100%;
  height: 400px;
  min-width: 0;
  min-height: 0;
  padding: 54px 24px 24px;
  overflow: hidden;
  border: 1px solid #dce6d1;
  background: #eef3e6;
}
.product-dialog .product-detail-visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  max-height: none;
  object-fit: contain;
}
.product-dialog .product-detail-pack {
  position: absolute;
  top: 16px;
  right: 16px;
  font-size: 14px;
  padding: 6px 11px;
}
@media (max-width: 760px) {
  .product-dialog .product-detail { grid-template-columns: minmax(0, 1fr); }
  .product-dialog .product-detail-visual { height: 340px; }
}
@media (max-width: 380px) {
  .product-dialog .product-detail-visual { height: 300px; padding-inline: 16px; }
}
.catalog-product-card .pc-botanical {
  position: absolute;
  z-index: 0;
  right: -22px;
  bottom: -20px;
  width: 180px;
  height: 180px;
  pointer-events: none;
  transform: rotate(15deg);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cpath fill='none' stroke='%23768b7233' stroke-width='.8' d='M25 180Q45 85 148 17M64 116C26 115 13 96 17 62c26 10 44 24 47 54ZM89 84c-15-39-4-64 22-82 9 32 4 60-22 82Zm-12 20c42 14 69 0 83-32-30-5-58 5-83 32ZM42 151c36 15 67 12 99-22-38-7-74 3-99 22Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.catalog-product-card .pc-in-cart {
  position: absolute;
  z-index: 3;
  right: 15px;
  bottom: 13px;
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: calc(100% - 30px);
  margin: 0;
  padding: 7px 9px;
  border: 0;
  border-radius: 6px;
  background: #164c34;
  color: #fff;
  font-size: 10px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.catalog-product-card .pc-in-cart[hidden] { display: none; }
.catalog-product-card .pc-in-cart .icon { width: 13px; height: 13px; }
.catalog-product-card .product-card-body.pc-body {
  padding: 21px var(--pc-inset) 0;
  gap: 0;
  border-top: 0;
}
.catalog-product-card .pc-family {
  min-height: 15px;
  margin-bottom: 7px;
  color: var(--pc-muted);
  font-size: 10px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 1px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.catalog-product-card .product-name {
  display: block;
  width: 100%;
  min-height: 52px;
  color: #163d2a;
  font-size: 20px;
  line-height: 1.3;
  letter-spacing: -.55px;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.catalog-product-card .product-name:hover { color: #38813d; }
.catalog-product-card .product-desc.pc-subtitle {
  min-height: 33px;
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.5;
  color: var(--pc-muted);
}
.catalog-product-card .product-facts.pc-facts { gap: 0; margin: 18px 0 0; }
.catalog-product-card .product-season.pc-season {
  display: block;
  padding-top: 16px;
  border-top: 1px solid #e9ede5;
  font-weight: 400;
}
.catalog-product-card .pc-season-head {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 20px;
  font-size: 11px;
  font-weight: 600;
}
.catalog-product-card .pc-season-head .icon { width: 15px; height: 15px; color: #4b8953; }
.catalog-product-card .pc-season-label { color: #226841; }
.catalog-product-card .season-soon .pc-season-label,
.catalog-product-card .season-soon .pc-season-head .icon { color: #966019; }
.catalog-product-card .off-season .pc-season-label,
.catalog-product-card .off-season .pc-season-head .icon,
.catalog-product-card .season-unknown .pc-season-label,
.catalog-product-card .season-unknown .pc-season-head .icon { color: #647461; }
.catalog-product-card .pc-season-now {
  margin-left: auto;
  color: #637963;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .7px;
  text-transform: uppercase;
}
.catalog-product-card .pc-season-range {
  min-height: 32px;
  margin-top: 3px;
  color: var(--pc-muted);
  font-size: 11px;
  line-height: 1.45;
}
.catalog-product-card .pc-months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3px; margin-top: 8px; }
.catalog-product-card .pc-month {
  position: relative;
  padding: 6px 0 4px;
  border-radius: 5px;
  color: var(--pc-muted);
  font-size: 10px;
  line-height: 1.3;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.catalog-product-card .pc-month::before { content: ''; display: block; height: 5px; margin-bottom: 6px; border-radius: 2px; background: #e9eee4; }
.catalog-product-card .pc-month.active::before { background: #79a65b; }
.catalog-product-card .pc-month.current { outline: 1px solid #2d7146; background: #f2f7eb; color: #1d5b36; font-weight: 600; }
.catalog-product-card .pc-month.current::after { content: ''; position: absolute; top: -4px; left: calc(50% - 2.5px); width: 5px; height: 5px; border-radius: 50%; background: #245e3c; box-shadow: 0 0 0 2px #fff; }
.catalog-product-card .pc-month.current.active::before { background: #236941; }
.catalog-product-card .season-soon .pc-month.current { outline-color: #ae8d48; background: #fff9ed; color: #8d6825; }
.catalog-product-card .season-soon .pc-month.current::after { background: #ae8d48; }
.catalog-product-card .product-expiration.pc-expiry {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 9px;
  padding: 15px 0 16px;
  margin-top: 13px;
  border-color: #e9ede5;
}
.catalog-product-card .pc-expiry .icon { width: 16px; height: 16px; color: #748873; }
.catalog-product-card .pc-expiry > span { margin-right: auto; color: var(--pc-muted); font-size: 11px; line-height: 1.5; }
.catalog-product-card .pc-expiry strong { max-width: 54%; color: var(--pc-ink); font-size: 12px; font-weight: 600; line-height: 1.5; text-align: right; overflow-wrap: anywhere; }
.catalog-product-card .customer-offer.pc-offer { gap: 0; margin: 0; }
.catalog-product-card .pc-price-area { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px 8px; padding: 18px 0 16px; }
.catalog-product-card .pc-price-area .product-price { gap: 0; margin: 0; min-width: 0; }
.catalog-product-card .pc-price-caption { margin-bottom: 5px; color: var(--pc-muted); font-size: 11px; line-height: 1.5; }
.catalog-product-card .pc-customer-price > .pc-main-price { color: #145839; font-size: 30px; font-weight: 600; line-height: 1.15; letter-spacing: -.9px; overflow-wrap: anywhere; }
.catalog-product-card .pc-customer-price > .pc-main-price.pc-price-unavailable { max-width: 200px; color: var(--pc-muted); font-size: 17px; line-height: 1.4; letter-spacing: -.2px; }
.catalog-product-card .pc-customer-price > .pc-price-gross { margin-top: 6px; color: var(--pc-muted); font-size: 11px; line-height: 1.5; }
.catalog-product-card .pc-retail { margin-left: auto; text-align: right; }
.catalog-product-card .pc-retail > span,
.catalog-product-card .pc-retail > small { margin-bottom: 5px; color: var(--pc-muted); font-size: 10px; line-height: 1.5; }
.catalog-product-card .pc-retail > strong { color: #4f624d; font-size: 13px; font-weight: 400; line-height: 1.5; }
.catalog-product-card .pc-main-price .money-fraction { font-size: .61em; letter-spacing: -.2px; vertical-align: baseline; }
.catalog-product-card .pc-retail .money-fraction { font-size: .78em; vertical-align: baseline; }
.catalog-product-card .pc-main-price .pc-money-currency { font-size: .52em; color: inherit; font-weight: inherit; letter-spacing: -.2px; vertical-align: baseline; }
.catalog-product-card .pc-retail .pc-money-currency { font-size: .85em; color: inherit; font-weight: inherit; vertical-align: baseline; }
.catalog-product-card .pc-price-gross .pc-money-currency { font-size: 1em; color: inherit; vertical-align: baseline; }
.catalog-product-card .product-stock.pc-stock {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  min-height: 38px;
  padding: 9px 10px;
  border-radius: 7px;
  background: #f2f4ef;
  color: #63705e;
  font-size: 11px;
  line-height: 1.45;
}
.catalog-product-card .pc-stock > i { width: 6px; height: 6px; flex-shrink: 0; border-radius: 50%; background: currentColor; }
.catalog-product-card .pc-stock strong { min-width: 0; flex: 1 1 auto; font-weight: 600; }
.catalog-product-card .pc-stock > span:not(.stock-note) { margin-left: auto; font-size: 10px; }
.catalog-product-card .pc-stock .stock-note,
.catalog-product-card .pc-stock small { width: 100%; padding-left: 14px; font-size: 10px; }
.catalog-product-card .pc-stock.stock-zone-0 { background: #f9ece8; color: #a15141; }
.catalog-product-card .pc-stock.stock-zone-1,
.catalog-product-card .pc-stock.stock-zone-2 { background: #fff4df; color: #976222; }
.catalog-product-card .pc-stock.stock-zone-3,
.catalog-product-card .pc-stock.stock-zone-4 { background: #edf5e8; color: #34643c; }
.catalog-product-card .pc-actions { margin-top: auto; padding: 17px var(--pc-inset) 0; }
.catalog-product-card .pc-purchase-block { display: block; min-width: 0; margin: 0; }
.catalog-product-card .pc-purchase { display: flex; gap: 8px; min-height: 44px; }
.catalog-product-card .pc-stepper { display: flex; align-items: center; flex: 0 0 124px; min-width: 0; min-height: 44px; overflow: hidden; border: 1px solid #dce5d8; border-radius: 8px; background: #fff; }
.catalog-product-card .pc-stepper button { display: grid; place-items: center; align-self: stretch; flex: 0 0 31px; width: 31px; min-width: 0; min-height: 42px; padding: 0; border: 0; border-radius: 0; background: #fff; color: #648161; font-size: 18px; }
.catalog-product-card .pc-stepper button:hover:not(:disabled) { background: #f0f5eb; }
.catalog-product-card .pc-stepper button .icon { width: 15px; height: 15px; }
.catalog-product-card .pc-stepper input { flex: 1 1 32px; width: 32px; min-width: 0; min-height: 42px; padding: 0; border: 0; border-radius: 0; background: #fff; color: var(--pc-ink); font-size: 13px; font-weight: 600; text-align: center; font-variant-numeric: tabular-nums; appearance: textfield; }
.catalog-product-card .pc-stepper input::-webkit-inner-spin-button,
.catalog-product-card .pc-stepper input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.catalog-product-card .pc-stepper > span { max-width: 26px; margin-right: 4px; font-size: 9px; line-height: 1.2; color: #6c7e64; overflow-wrap: anywhere; }
.catalog-product-card .pc-stepper :focus-visible { outline-offset: -3px; }
.catalog-product-card .pc-add { display: flex; align-items: center; justify-content: center; flex: 1; gap: 7px; min-width: 0; min-height: 44px; padding: 9px 10px; border: 1px solid #195d3a; border-radius: 8px; background: #195d3a; color: #fff; font-size: 12px; font-weight: 600; line-height: 1.4; transition: background .18s, box-shadow .18s; }
.catalog-product-card .pc-add .icon { width: 17px; height: 17px; }
.catalog-product-card .pc-add:hover:not(:disabled) { background: #10472b; box-shadow: 0 4px 10px #174c3526; }
.catalog-product-card .pc-bulk-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0 6px; min-height: 46px; margin-top: 4px; color: var(--pc-muted); font-size: 10px; line-height: 1.5; }
.catalog-product-card .pc-bulk { min-height: 40px; padding: 6px 0 6px 6px; border: 0; background: transparent; color: #3b6940; font-size: 10px; font-weight: 600; }
.catalog-product-card .pc-bulk:hover:not(:disabled) { background: transparent; text-decoration: underline; }
.catalog-product-card .pc-purchase-block > .caption { margin: 10px 0 16px; font-size: 11px; }
.catalog-product-card .pc-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0 10px; min-height: 42px; margin-top: 0; padding: 0 var(--pc-inset); border-top: 1px solid #edf0e9; background: #fcfdfa; }
.catalog-product-card .pc-footer button { display: inline-flex; align-items: center; justify-content: flex-start; gap: 6px; min-height: 42px; padding: 9px 0; border: 0; border-radius: 0; background: transparent; color: #607458; font-size: 10px; font-weight: 400; line-height: 1.5; }
.catalog-product-card .pc-footer button:hover { background: transparent; color: #246139; }
.catalog-product-card .pc-footer .icon { width: 14px; height: 14px; }
.catalog-product-card .pc-footer .pc-detail { margin-left: auto; color: #456e45; font-weight: 600; }
.landing-product-rail:has(> .catalog-product-card) { grid-auto-columns: minmax(280px, calc((100% - 44px) / 3)); }

/* Public catalog (signed out or without a company): DMOC and stock level in the offer slot, one call to action in the purchase slot. */
.catalog-product-card .pc-cta { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%; min-width: 0; min-height: 44px; padding: 9px 10px; border: 1px solid #195d3a; border-radius: 8px; background: #195d3a; color: #fff; font-size: 12px; font-weight: 600; line-height: 1.4; text-align: center; transition: background .18s, box-shadow .18s; }
.catalog-product-card .pc-cta .icon { width: 17px; height: 17px; flex-shrink: 0; }
.catalog-product-card .pc-cta:hover:not(:disabled) { background: #10472b; box-shadow: 0 4px 10px #174c3526; }
.catalog-product-card .pc-public-offer .pc-retail { margin-left: 0; text-align: left; }
.catalog-product-card .pc-public-offer .pc-retail > small { font-size: 11px; }
.catalog-product-card .pc-public-offer .pc-retail > strong { color: #145839; font-size: 24px; font-weight: 600; line-height: 1.2; letter-spacing: -.6px; white-space: nowrap; }
.catalog-product-card .pc-public-offer .pc-retail .money-fraction { font-size: .66em; letter-spacing: -.2px; }
.catalog-product-card .pc-public-offer .pc-retail .pc-money-currency { font-size: .58em; letter-spacing: -.2px; }
.catalog-rows .catalog-product-card .pc-public-offer .pc-retail > strong { font-size: 20px; }
.catalog-product-card .pc-public-offer .pc-retail > strong:not(:has(.money-value)) { color: var(--pc-muted); font-size: 17px; letter-spacing: -.2px; }
/* The narrow rows layout pairs the customer price with DMOC on the right; alone, DMOC stays on the left. */
.catalog-rows .catalog-product-card .pc-public-offer .pc-retail { margin-left: 0; text-align: left; }
.catalog-product-card .pc-purchase-block > .pc-public-pack { margin: 0 0 10px; color: var(--pc-muted); font-size: 11px; }
.catalog-rows .catalog-product-card .pc-purchase-block > .pc-public-pack { margin: 0 0 8px; }
.auth-browse-catalog { margin-top: 12px; }
.landing-company-prompt { border-left: 4px solid var(--green); }
.landing-company-prompt .row { gap: 10px; }
.public-offer { gap: 8px; }
.public-offer .catalog-price strong { font-size: 21px; color: var(--green); }
/* The hero copy's z-index needs a positioned box, otherwise the phone-sized decorative image covers the text. */
.catalog-hero-copy { position: relative; }
/* On phones the image sits in the hero's right 118 px; the 80 px copy padding plus 48 px keeps the paragraph off the photo. */
@media (max-width: 650px) { .catalog-hero p { max-width: min(260px, calc(100% - 48px)); } }
@media (prefers-reduced-motion: reduce) { .catalog-product-card .pc-cta { transition: none; } }

/* Catalog layout switch: tiles stay the default; rows reuse the same card markup. */
.catalog-layout-switch { display: inline-flex; flex-shrink: 0; gap: 2px; min-height: 44px; padding: 3px; border: 1px solid #cfd9cd; border-radius: 9px; background: #fff; }
.catalog-layout-switch .catalog-layout-option { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 6px 12px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 600; line-height: 1.3; }
.catalog-layout-switch .catalog-layout-option .icon { width: 16px; height: 16px; }
.catalog-layout-switch .catalog-layout-option:hover:not(.active) { background: #f0f5eb; color: #246139; }
.catalog-layout-switch .catalog-layout-option.active { background: #195d3a; color: #fff; }
.catalog-layout-switch .catalog-layout-option:focus-visible { outline-offset: 1px; }
@media (forced-colors: active) {
  .catalog-layout-switch .catalog-layout-option.active { forced-color-adjust: none; background: Highlight; color: HighlightText; }
}
@media (max-width: 650px) {
  /* Phones keep search and switch on one sticky line; the options become icons with their text kept for screen readers. */
  .catalog-toolbar:has(> .catalog-layout-switch) { flex-wrap: nowrap; }
  .catalog-toolbar:has(> .catalog-layout-switch) .search-box { flex: 1 1 0; width: auto; min-width: 0; }
  .catalog-layout-switch .catalog-layout-option { min-width: 44px; padding-inline: 10px; }
  .catalog-layout-switch .catalog-layout-option > span { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}
.product-grid.catalog-rows { container: catalog-rows / inline-size; }
.product-grid.catalog-rows:has(> .catalog-product-card) { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.catalog-rows .catalog-product-card {
  display: grid;
  grid-template-columns: 136px minmax(0, 1fr) minmax(180px, 220px) minmax(250px, 280px);
  /* The "match" row (search found the product by a disease, crop or ingredient) collapses when the card has no such line. */
  grid-template-rows: auto auto auto auto 1fr auto;
  grid-template-areas:
    "visual family offer actions"
    "visual name offer actions"
    "visual desc offer actions"
    "visual match offer actions"
    "visual facts offer actions"
    "visual footer footer footer";
  column-gap: 22px;
  border-radius: 14px;
}
.catalog-rows .catalog-product-card .product-card-body.pc-body { display: contents; }
.catalog-rows .catalog-product-card .pc-visual { grid-area: visual; height: auto; min-height: 136px; }
.catalog-rows .catalog-product-card .pc-visual-header { inset: 9px 9px auto; gap: 6px; }
.catalog-rows .catalog-product-card .pc-visual-header .product-code { padding-top: 2px; font-size: 9px; letter-spacing: .3px; }
.catalog-rows .catalog-product-card .pc-size { padding: 2px 5px; font-size: 10px; }
.catalog-rows .catalog-product-card .product-visual.pc-photo { padding: 32px 14px 12px; }
/* The photo box spans the whole row height; keep the halo on the image's centre (top padding is 20px larger). */
.catalog-rows .catalog-product-card .pc-photo::before { top: calc(50% + 10px); width: 84px; height: 84px; transform: translate(-50%, -50%); }
.catalog-rows .catalog-product-card .pc-photo::after { display: none; }
.catalog-rows .catalog-product-card .pc-photo > .icon { width: 44px; height: 44px; }
.catalog-rows .catalog-product-card .pc-botanical { display: none; }
.catalog-rows .catalog-product-card .pc-in-cart { right: 8px; bottom: 8px; max-width: calc(100% - 16px); padding: 4px 7px; font-size: 9px; }
.catalog-rows .catalog-product-card .pc-family { grid-area: family; min-height: 0; margin: 0; padding-top: 16px; }
.catalog-rows .catalog-product-card .product-name { grid-area: name; min-height: 0; margin-top: 4px; font-size: 19px; text-align: left; }
.catalog-rows .catalog-product-card .product-desc.pc-subtitle { grid-area: desc; min-height: 0; margin-top: 3px; }
.catalog-rows .catalog-product-card .pc-search-match { grid-area: match; margin: 8px 0 0; }
.catalog-rows .catalog-product-card .product-facts.pc-facts { grid-area: facts; display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 6px 22px; margin: 0; padding: 10px 0 14px; }
/* Rows drop the 12-month bar but keep the season months as short text. */
.catalog-rows .catalog-product-card .product-season.pc-season { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; padding: 0; border: 0; }
.catalog-rows .catalog-product-card .pc-season-head { min-height: 0; }
.catalog-rows .catalog-product-card .pc-season-now,
.catalog-rows .catalog-product-card .pc-months,
.catalog-rows .catalog-product-card .year-round .pc-season-range { display: none; }
.catalog-rows .catalog-product-card .pc-season-range { min-height: 0; margin: 0; }
.catalog-rows .catalog-product-card .product-expiration.pc-expiry { gap: 6px; margin: 0; padding: 0; border: 0; }
.catalog-rows .catalog-product-card .pc-expiry > span { margin-right: 0; }
.catalog-rows .catalog-product-card .pc-expiry strong { max-width: none; text-align: left; }
.catalog-rows .catalog-product-card .customer-offer.pc-offer { grid-area: offer; align-self: center; padding: 14px 0; }
.catalog-rows .catalog-product-card .pc-price-area { flex-direction: column; align-items: flex-start; gap: 6px; padding: 0 0 10px; }
.catalog-rows .catalog-product-card .pc-retail { margin-left: 0; text-align: left; }
.catalog-rows .catalog-product-card .pc-customer-price > .pc-main-price { font-size: 26px; }
.catalog-rows .catalog-product-card .pc-customer-price > .pc-main-price.pc-price-unavailable { font-size: 15px; }
.catalog-rows .catalog-product-card .pc-retail > strong { font-size: 13px; }
.catalog-rows .catalog-product-card .pc-actions { grid-area: actions; align-self: center; margin: 0; padding: 14px var(--pc-inset) 6px 0; }
.catalog-rows .catalog-product-card .pc-stepper { flex-basis: 124px; }
.catalog-rows .catalog-product-card .pc-stepper button { flex-basis: 31px; width: 31px; }
.catalog-rows .catalog-product-card .pc-bulk-row { min-height: 0; }
.catalog-rows .catalog-product-card .pc-purchase-block > .caption { margin: 8px 0 0; }
.catalog-rows .catalog-product-card .pc-footer { grid-area: footer; padding: 0 var(--pc-inset) 0 0; background: transparent; }
@media (hover: hover) and (pointer: fine) {
  .catalog-rows .catalog-product-card:hover { transform: none; }
  .catalog-rows .catalog-product-card:hover .pc-photo img { transform: none; }
}
/* Breakpoints follow the catalog width, not the window, because the sidebar and category panel vary. */
@container catalog-rows (max-width: 879px) {
  /* Narrow catalog: name and facts on top, price and purchase share the second row. */
  .catalog-rows .catalog-product-card {
    grid-template-columns: 120px minmax(0, 1fr) minmax(240px, 280px);
    grid-template-rows: auto auto auto auto auto auto auto;
    grid-template-areas:
      "visual family family"
      "visual name name"
      "visual desc desc"
      "visual match match"
      "visual facts facts"
      "visual offer actions"
      "visual footer footer";
    column-gap: 18px;
  }
  /* Both cells start at the top of the shared row so their dividers line up. */
  .catalog-rows .catalog-product-card .customer-offer.pc-offer { align-self: stretch; padding: 0 0 12px; border-top: 1px solid #edf0e9; }
  .catalog-rows .catalog-product-card .pc-actions { display: flex; flex-direction: column; justify-content: center; align-self: stretch; padding-top: 12px; border-top: 1px solid #edf0e9; }
  .catalog-rows .catalog-product-card .pc-price-area { flex-direction: row; align-items: flex-start; padding-top: 12px; }
  .catalog-rows .catalog-product-card .pc-retail { margin-left: auto; text-align: right; }
}
@container catalog-rows (max-width: 619px) {
  .catalog-rows .catalog-product-card {
    grid-template-columns: 96px minmax(0, 1fr);
    /* Spare photo height goes below the name, so the label and the name stay together. */
    grid-template-rows: auto minmax(0, 1fr) auto auto auto auto auto auto;
    grid-template-areas:
      "visual family"
      "visual name"
      "desc desc"
      "match match"
      "facts facts"
      "offer offer"
      "actions actions"
      "footer footer";
    column-gap: 14px;
  }
  .catalog-rows .catalog-product-card .pc-visual { min-height: 112px; border-bottom-right-radius: 14px; }
  .catalog-rows .catalog-product-card .pc-visual-header .product-code { display: none; }
  .catalog-rows .catalog-product-card .product-visual.pc-photo { padding: 28px 10px 8px; }
  .catalog-rows .catalog-product-card .pc-photo::before { width: 68px; height: 68px; }
  /* A narrow strip along the photo's bottom edge instead of a badge covering the product. */
  .catalog-rows .catalog-product-card .pc-in-cart { left: 0; right: 0; bottom: 0; max-width: none; justify-content: center; padding: 3px 4px; border-radius: 0; line-height: 1.3; text-align: center; white-space: nowrap; }
  .catalog-rows .catalog-product-card .pc-in-cart .icon { display: none; }
  .catalog-rows .catalog-product-card .pc-family { padding: 14px var(--pc-inset) 0 0; }
  .catalog-rows .catalog-product-card .product-name { align-self: start; padding-right: var(--pc-inset); font-size: 18px; }
  .catalog-rows .catalog-product-card .product-desc.pc-subtitle,
  .catalog-rows .catalog-product-card .product-facts.pc-facts,
  .catalog-rows .catalog-product-card .customer-offer.pc-offer { padding-inline: var(--pc-inset); }
  .catalog-rows .catalog-product-card .product-desc.pc-subtitle { margin-top: 10px; }
  .catalog-rows .catalog-product-card .pc-search-match { margin-inline: var(--pc-inset); }
  .catalog-rows .catalog-product-card .customer-offer.pc-offer { padding-bottom: 4px; }
  .catalog-rows .catalog-product-card .pc-price-area { align-items: center; }
  .catalog-rows .catalog-product-card .pc-actions { padding: 12px var(--pc-inset) 4px; border-top: 0; }
  .catalog-rows .catalog-product-card .pc-stepper { flex-basis: 142px; }
  .catalog-rows .catalog-product-card .pc-stepper button { flex-basis: 40px; width: 40px; }
  .catalog-rows .catalog-product-card .pc-footer { padding: 0 var(--pc-inset); background: #fcfdfa; }
  .catalog-rows .catalog-product-card .pc-footer button { min-height: 44px; }
}
@media (hover: hover) and (pointer: fine) {
  .catalog-product-card:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -18px #17352040; border-color: #b9cdb5; }
  .catalog-product-card:hover .pc-photo img { transform: translateY(-3px) rotate(-1.5deg); }
}
@container (min-width: 350px) {
  .catalog-product-card .pc-visual { height: 230px; }
  .catalog-product-card .pc-photo { padding-top: 38px; }
  .catalog-product-card .pc-photo::before { width: 184px; height: 184px; }
  .catalog-product-card .pc-body { padding-top: 23px; }
  .catalog-product-card .product-name { font-size: 23px; min-height: 60px; }
  .catalog-product-card .pc-season-head { font-size: 12px; }
  .catalog-product-card .pc-month { font-size: 11px; }
  .catalog-product-card .pc-expiry strong { font-size: 13px; }
  .catalog-product-card .pc-customer-price > .pc-main-price { font-size: 34px; }
  .catalog-product-card .pc-retail > strong { font-size: 14px; }
  .catalog-product-card .pc-stepper { flex-basis: 142px; }
  .catalog-product-card .pc-stepper button { flex-basis: 40px; width: 40px; }
  .catalog-product-card .pc-add { font-size: 13px; }
  .catalog-product-card .pc-bulk-row, .catalog-product-card .pc-bulk, .catalog-product-card .pc-footer button { font-size: 11px; }
}
@media (max-width: 1000px) {
  .landing-product-rail:has(> .catalog-product-card) { grid-auto-columns: minmax(280px, calc((100% - 22px) / 2)); }
}
@media (max-width: 650px) {
  .product-grid:has(> .catalog-product-card) { grid-template-columns: 1fr; gap: 22px; }
  .catalog-product-card { --pc-inset: 22px; }
  .catalog-product-card .pc-visual { height: 194px; }
  .catalog-product-card .product-visual.pc-photo { padding-top: 28px; }
  .catalog-product-card .pc-photo::before { top: 26px; width: 150px; height: 150px; }
  .catalog-product-card .product-name { min-height: 0; font-size: 24px; }
  .catalog-product-card .product-desc.pc-subtitle { min-height: 0; }
  .catalog-product-card .pc-season-range { min-height: 16px; }
  .catalog-product-card .pc-season-head { font-size: 12px; }
  .catalog-product-card .pc-months { gap: 4px; }
  .catalog-product-card .pc-month { font-size: 11px; }
  .catalog-product-card .pc-customer-price > .pc-main-price { font-size: 34px; }
  .catalog-product-card .pc-retail > strong { font-size: 14px; }
  .catalog-product-card .pc-stock { min-height: 40px; font-size: 12px; }
  .catalog-product-card .pc-stock > span:not(.stock-note) { font-size: 11px; }
  .catalog-product-card .pc-purchase { min-height: 47px; gap: 10px; }
  .catalog-product-card .pc-stepper { flex-basis: 142px; min-height: 47px; }
  .catalog-product-card .pc-stepper button { flex-basis: 40px; width: 40px; min-height: 45px; font-size: 20px; }
  .catalog-product-card .pc-stepper input { min-height: 45px; font-size: 16px; }
  .catalog-product-card .pc-add { min-height: 47px; font-size: 13px; }
  .catalog-product-card .pc-bulk-row, .catalog-product-card .pc-bulk, .catalog-product-card .pc-footer button { font-size: 11px; }
  .catalog-product-card .pc-bulk, .catalog-product-card .pc-footer button { min-height: 44px; }
  .landing-product-rail:has(> .catalog-product-card) { grid-auto-columns: max(280px, 86%); }
}
@media (max-width: 370px) {
  .catalog-product-card { --pc-inset: 17px; }
  .catalog-product-card .pc-stepper { flex-basis: 126px; }
  .catalog-product-card .pc-stepper button { flex-basis: 33px; width: 33px; }
  /* Rows set their own stepper size above; keep the tiny-phone shrink for them too. */
  .catalog-rows .catalog-product-card .pc-stepper { flex-basis: 126px; }
  .catalog-rows .catalog-product-card .pc-stepper button { flex-basis: 33px; width: 33px; }
  .catalog-product-card .pc-add { gap: 5px; padding-inline: 7px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-product-card, .catalog-product-card .pc-photo img, .catalog-product-card .pc-add { transition: none; }
  .catalog-product-card:hover, .catalog-product-card:hover .pc-photo img { transform: none; }
}

/* Per-order payment, transport and delivery address (SPEC §7.2–§7.3). */
.cart-summary:has(.order-terms) { position: static; }
.order-terms { gap: 12px; }
.order-terms h3 { margin-bottom: 4px; }
.order-terms .terms-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; font-size: 12px; line-height: 1.6; }
.order-terms .terms-row strong { margin-left: auto; font-size: 14px; text-align: right; overflow-wrap: anywhere; }
.order-terms .terms-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.order-terms .terms-field > label, .order-terms legend { font-size: 12px; font-weight: 600; }
.order-terms select { width: 100%; text-overflow: ellipsis; }
.order-terms select:disabled { background: #eef1ec; color: var(--text); opacity: 1; cursor: default; }
.order-terms .terms-address-detail { overflow-wrap: anywhere; }
.order-terms .terms-choice { border: 0; margin: 0; padding: 0; min-width: 0; }
.order-terms .terms-choice legend { padding: 0; margin-bottom: 6px; }
.order-terms .terms-radios { display: flex; flex-wrap: wrap; gap: 8px; }
.order-terms .terms-radio { flex: 1 1 110px; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 11px; border: 1px solid #cfd9cd; border-radius: 9px; background: #fff; font-size: 13px; cursor: pointer; }
.order-terms .terms-radio:has(input:checked) { border-color: var(--green); background: var(--soft); color: var(--green); font-weight: 600; }
.order-terms .terms-radio:has(input:disabled) { cursor: not-allowed; opacity: .7; }
.order-terms .terms-radio:has(input:focus-visible) { outline: 3px solid #809b20; outline-offset: 2px; }
.order-terms textarea { width: 100%; min-height: 88px; resize: vertical; border: 1px solid #cfd9cd; border-radius: 9px; padding: 10px 12px; background: #fff; color: var(--text); line-height: 1.5; }
.order-terms textarea::placeholder { color: #859187; }
.order-terms textarea:focus-visible { outline: 3px solid #809b20; outline-offset: 3px; }
.order-terms textarea:disabled { background: #eef1ec; }
.order-terms textarea[aria-invalid="true"] { border-color: var(--danger); }
.order-terms .terms-note-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.order-terms .terms-note-meta .caption { margin-left: auto; white-space: nowrap; }
.field-error { color: var(--danger); font-size: 12px; line-height: 1.5; }
.field-error:empty { display: none; }
.cart-line .line-blocked, .cart-summary .pilot-caption { color: #805621; }
.void-notice { margin-top: 12px; padding-top: 12px; border-top: 1px dashed #e4cb95; }
.void-notice p { font-size: 13px; font-weight: 600; color: #805621; }
.receipt .receipt-number { font-size: 13px; }
.receipt-number strong { font-size: 16px; color: var(--green); letter-spacing: .3px; overflow-wrap: anywhere; }
.receipt-terms { overflow-wrap: anywhere; }
.dialog-terms { padding-top: 10px; border-top: 1px solid var(--line); }
.dialog-terms .total-line { margin: 0; }
.dialog-terms .total-line > span { flex-shrink: 0; }
.dialog-terms .total-line strong { font-size: 14px; overflow-wrap: anywhere; }
.dialog-terms .terms-address strong small { display: block; font-size: 11px; font-weight: 400; color: var(--muted); }
.dialog-terms .dialog-note strong { white-space: pre-wrap; font-weight: 400; }
/* Pre-order (Předzásobení): level cards, bar and summary after the customer's agrobio.cz/predzasobeni design.
   Palette tokens (:root) follow the same design: zelená #008242, tmavá #044b28, limetková #dee02e, krémová #f5f2ee. */
.preorder-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.preorder-level{display:flex;flex-direction:column;gap:14px;min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}
.preorder-level.selected{border:2px solid var(--green);padding:19px;box-shadow:0 0 0 4px #00824214}
.preorder-level.closed{opacity:.6}
.preorder-level-head{display:flex;gap:12px;align-items:center}
.preorder-due{display:inline-flex;flex-direction:column;align-items:center;min-width:46px;border:2px solid var(--dark);border-radius:8px;overflow:hidden;line-height:1.15}
.preorder-level-head>div small{font-size:12px;color:var(--muted)}
.preorder-due small{width:100%;background:var(--dark);color:#fff;font-size:11px;font-weight:800;letter-spacing:.5px;text-align:center;padding:2px 0}
.preorder-due strong{font-size:18px;color:var(--dark);padding:3px 0}
.preorder-level-head h3{font-size:24px;line-height:1.15;font-weight:800;color:var(--dark)}
.preorder-discount{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.preorder-discount small{font-size:12px;font-weight:700}
.preorder-discount strong{font-size:36px;line-height:1.05;font-weight:800;letter-spacing:-1px;color:var(--dark)}
.preorder-level.kind-rebate .preorder-discount strong{color:#c24a00}
.preorder-level.kind-none .preorder-discount strong{font-size:22px;letter-spacing:-.3px}
.preorder-kind{font-size:11px;font-weight:700;border-radius:6px;padding:4px 8px;background:#e3f4dc;color:#0a6b34}
.kind-rebate .preorder-kind{background:#fcefd0;color:#9a3b00}
.kind-none .preorder-kind{background:#edeae4;color:#4b5a51}
.preorder-facts{margin:0;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.preorder-facts dt{font-size:12px;color:var(--muted)}
.preorder-facts dd{margin:0;font-weight:800;color:var(--dark)}
.preorder-note{background:#f1ffe0;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:600;line-height:1.5;color:var(--dark)}
.preorder-level .button{margin-top:auto}
.preorder-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px;border-radius:12px}
.preorder-bar{background:var(--dark);color:#fff}
.preorder-bar p{flex:1;min-width:220px;font-size:13px}
.preorder-bar .button.ghost{color:#fff;border-color:#ffffff59}
.preorder-bar .button.ghost:hover:not(:disabled){background:#ffffff1a}
.preorder-bar .button.quiet{color:var(--lime)}
.preorder-bar .button.quiet:hover:not(:disabled){background:#ffffff1a}
.preorder-bonus{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.preorder-bonus>div{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.preorder-bonus strong{font-size:20px;font-weight:800;color:var(--dark)}
.preorder-bonus span{font-size:12px;color:var(--muted)}
.pc-preorder-note{font-weight:600;color:var(--green)}
.preorder-summary h3{color:var(--dark)}
@media(max-width:650px){.preorder-levels{grid-template-columns:1fr}.preorder-discount strong{font-size:30px}}
@media(forced-colors:active){.preorder-level.selected{outline:3px solid Highlight}.preorder-due small{forced-color-adjust:none;background:CanvasText;color:Canvas}}
/* Signed-in sidebar brand: coloured logo on the hero texture (the look chosen in the September logo comparison,
   formerly demo-logo.js variant 07; the comparison panel is removed). */
.sidebar .brand{position:relative;isolation:isolate}
.sidebar .brand::before{content:'';position:absolute;inset:-20px -10px 8px;z-index:-1;border-radius:8px;pointer-events:none;
  background-image:linear-gradient(90deg,rgba(12,33,28,.85),rgba(12,33,28,.45) 57%,rgba(12,33,28,.1)),url('/assets/sidebar-hero.webp');background-size:cover;background-position:center 45%}
.sidebar .brand .wordmark small{color:#c4f0d1}
/* Campaign panel: first on Úvod, Sortiment and Košík; the level chips switch the prices in place. */
.preorder-panel{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px 28px;padding:28px 32px;border-radius:20px;background:var(--dark);color:#fff}
.preorder-panel::after{content:'';position:absolute;z-index:-1;right:-70px;top:-90px;width:300px;height:300px;border-radius:50%;background:#ffffff0f;pointer-events:none}
.preorder-panel-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--lime)}
.preorder-panel h2{margin:10px 0 8px;font-size:32px;line-height:1.12;font-weight:800;letter-spacing:-.8px;color:#fff}
.preorder-panel p{max-width:760px;font-size:15px;line-height:1.55;color:#dbeee2}
.preorder-panel-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.preorder-panel .button.ghost{color:#fff;border-color:#ffffff66}
.preorder-panel .button.ghost:hover:not(:disabled),.preorder-panel .button.quiet:hover:not(:disabled){background:#ffffff1f}
.preorder-panel .button.quiet{color:var(--lime)}
.preorder-panel :focus-visible{outline-color:var(--lime)}
.preorder-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px}
.preorder-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:118px;min-height:58px;padding:9px 16px;border:1px solid #ffffff4d;border-radius:12px;background:#ffffff14;color:#fff;text-align:left}
.preorder-chip strong{font-size:19px;line-height:1.2;font-weight:800}
.preorder-chip span{font-size:12px;font-weight:700;color:var(--lime)}
.preorder-chip:not(.selected):hover:not(:disabled){background:#ffffff29}
.preorder-chip.selected{background:var(--lime);border-color:var(--lime);color:var(--dark)}
.preorder-chip.selected span{color:var(--dark)}
.preorder-chip:disabled{opacity:.45}
.preorder-panel.compact{padding:20px 24px;gap:14px 24px}
.preorder-panel.compact h2{font-size:22px;letter-spacing:-.4px}
.preorder-panel.compact p{font-size:13px}
@media(max-width:900px){.preorder-panel{grid-template-columns:1fr}.preorder-panel-actions{justify-content:flex-start}}
@media(max-width:650px){.preorder-panel{padding:22px 18px;border-radius:16px}.preorder-panel h2{font-size:25px}.preorder-chip{flex:1 1 calc(50% - 5px);min-width:0}}
@media(forced-colors:active){.preorder-chip.selected{outline:3px solid Highlight}}
/* Product search by disease, crop or ingredient: the matched knowledge terms on the card. */
.pc-search-match{display:flex;align-items:flex-start;gap:6px;margin:4px 0 2px;padding:7px 10px;border-radius:8px;background:#f1ffe0;color:var(--dark);font-size:12px;line-height:1.45}
.pc-search-match .icon{width:15px;height:15px;margin-top:1px;color:var(--green)}
.pc-search-match>span{min-width:0;overflow-wrap:anywhere}
.pc-search-match strong{font-weight:700}
/* Pre-order state in the sticky top bar (every page): strong when a level is active, a quiet entry otherwise. */
.topbar-preorder{display:flex;align-items:center;gap:10px;min-width:0;margin-left:auto;padding:8px 14px;border-radius:10px;border:1px solid #d6efbd;background:#f1ffe0;color:var(--dark);text-decoration:none;line-height:1.25}
.topbar-preorder:hover{text-decoration:none;background:#e6f8cf}
.topbar-preorder .icon{flex-shrink:0;color:var(--green)}
.topbar-preorder-lines{display:flex;flex-direction:column;min-width:0}
.topbar-preorder-lines strong{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-preorder-lines small{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}
.topbar-preorder.active{background:var(--dark);border-color:var(--dark);color:#fff;box-shadow:0 0 0 3px #dee02e66}
.topbar-preorder.active:hover{background:#06592f}
.topbar-preorder.active .icon,.topbar-preorder.active small{color:var(--lime)}
.topbar-preorder.active strong{font-size:14px}
.topbar-preorder:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.topbar.has-preorder .company-switch{margin-left:0}
@media(max-width:1180px){.topbar-preorder-lines strong{max-width:300px}}
@media(max-width:900px){.topbar.has-preorder{height:auto;min-height:68px;flex-wrap:wrap;row-gap:8px;padding-block:10px}
  .topbar.has-preorder .topbar-preorder{order:3;flex:1 0 100%;margin-left:0}
  .topbar-preorder-lines strong{max-width:none;white-space:normal}}
@media(forced-colors:active){.topbar-preorder.active{outline:2px solid Highlight}}
/* Level cards react like product cards; an open card is clickable as a whole (same as its „Vybrat“ button). */
.preorder-level{transition:transform .2s,box-shadow .2s,border-color .2s}
.preorder-level.selectable{cursor:pointer}
@media(hover:hover) and (pointer:fine){
  .preorder-level.selectable:hover{transform:translateY(-3px);box-shadow:0 16px 30px -18px #17352040;border-color:#b9cdb5}
  .preorder-level.selectable:hover .button.secondary{background:#e3f6cc}
  .preorder-level.selected:hover{box-shadow:0 0 0 4px #00824214,0 16px 30px -18px #17352040}
}
@media(prefers-reduced-motion:reduce){.preorder-level.selectable:hover{transform:none}}
/* Pan Kapsa – AI poradce (advisor.js) */
/* After agrobio.cz/predzasobeni (poradce.css); sizes in em of a 16px root like the original (the portal's rem is 14px).
   He peeks out from behind the sidebar: z-index 25 is above the top bar (20) and below the drawer shade (29) and sidebar (30). */
.advisor{--advisor-left:236px;position:fixed;left:var(--advisor-left);bottom:0;z-index:25;font-size:16px;line-height:1.5;color:var(--text);pointer-events:none}
.advisor[hidden]{display:none}
.advisor-peek{position:relative;display:block;width:142px;height:244px;padding:0;border:0;background:none;overflow:hidden;pointer-events:none;transition:transform .35s cubic-bezier(.22,.9,.3,1),opacity .35s,visibility 0s}
/* His figure slides out from behind the sidebar whenever he appears; his left shoulder stays hidden there and the end of his bust below the page.
   Only the figure takes the pointer (a polygon around the opaque pixels of all frames): the transparent rest of his box never covers the page
   next to him. The polygon moves with the picture, its left side stays at the box's edge so a hover never pulls it away from the pointer; the button keeps its focus outline. */
.advisor-figure{position:absolute;left:-50px;bottom:-24px;width:172px;height:230px;transform-origin:20% 90%;transition:left .35s cubic-bezier(.22,.9,.3,1),transform .35s cubic-bezier(.22,.9,.3,1);animation:advisor-enter .7s cubic-bezier(.22,.9,.3,1) .2s backwards}
.advisor-sprite{position:absolute;inset:0;background:url('/assets/pan-kapsa-klid.webp') 0 0/100% 100% no-repeat;user-select:none;pointer-events:auto;clip-path:polygon(0 1%,49.1% 1%,62.1% 6%,75% 11%,79.9% 16%,81.7% 21%,87.9% 26%,92.9% 31%,97.8% 36%,98.2% 41%,98.7% 46%,97.8% 51%,90.6% 56%,84.4% 61%,84.4% 66%,82.6% 71%,77.7% 76%,76.3% 81%,72.8% 86%,69.6% 91%,62.9% 96%,59.4% 100%,0 100%)}
/* The nod: 32 frames at 8 per second in an 8 x 4 grid (pan-kapsa-kyva.webp): the columns step through one row each second, the rows once a second.
   advisor.js adds .play once at a time (.late after his slide) and takes it off at the end, when the still first frame shows again. */
.advisor-sprite.play{background-image:url('/assets/pan-kapsa-kyva.webp');background-size:800% 400%;animation:advisor-nod-columns 1s steps(8,jump-none) 4 both,advisor-nod-rows 4s steps(4,jump-none) both}
.advisor-sprite.play.late{animation-delay:.6s}
@keyframes advisor-enter{from{translate:-100% 0}}
@keyframes advisor-nod-columns{from{background-position-x:0}to{background-position-x:100%}}
@keyframes advisor-nod-rows{from{background-position-y:0}to{background-position-y:100%}}
.advisor-peek:focus-visible .advisor-figure{left:-32px;transform:rotate(-2deg)}
.advisor.open .advisor-peek{transform:translateX(-100%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .35s cubic-bezier(.22,.9,.3,1),opacity .35s,visibility 0s linear .35s}
.advisor.open .advisor-sprite{pointer-events:none}
/* Like on agrobio.cz, he steps aside while the catalog categories pass his spot (advisor.js sets .aside), so they take the clicks.
   He stays in the tab order: keyboard focus brings him back with the bubble. */
.advisor.aside .advisor-peek{transform:translateX(-100%);opacity:0}
.advisor.aside .advisor-sprite{pointer-events:none}
.advisor.aside .advisor-peek:focus-visible{transform:none;opacity:1}
.advisor.aside .advisor-peek:focus-visible .advisor-sprite{pointer-events:auto}
/* The bubble is for the mouse only (keyboard users have the button); it hides 60 ms after the pointer leaves. */
.advisor-bubble{position:absolute;left:85px;bottom:44px;padding:11px 18px;border-radius:0 20px 20px 20px;background:var(--lime);color:var(--dark);font-size:.95em;font-weight:700;line-height:1.35;white-space:nowrap;cursor:pointer;pointer-events:auto;opacity:0;visibility:hidden;transition:opacity .25s .06s,visibility 0s linear .31s}
.advisor:not(.open) .advisor-peek:focus-visible~.advisor-bubble{opacity:1;visibility:visible;transition:opacity .25s,visibility 0s}
@media(hover:hover){.advisor-peek:hover .advisor-figure{left:-32px;transform:rotate(-2deg)}.advisor:not(.open) .advisor-peek:hover~.advisor-bubble,.advisor:not(.open) .advisor-bubble:hover{opacity:1;visibility:visible;transition:opacity .25s,visibility 0s}}
@media(hover:hover){.advisor:has(.advisor-bubble:hover) .advisor-figure{left:-32px;transform:rotate(-2deg)}}
.advisor-window{position:fixed;left:calc(var(--advisor-left) + 24px);bottom:24px;width:min(392px,100vw - var(--advisor-left) - 48px);height:min(600px,100vh - 48px);height:min(600px,100dvh - 48px);display:flex;flex-direction:column;overflow:hidden;border-radius:28px;background:var(--bg);box-shadow:0 24px 60px -18px #0a3d2266,0 2px 12px #0a3d221f;pointer-events:auto;transform:translateX(calc(-100% - 40px));visibility:hidden;transition:transform .42s cubic-bezier(.22,.9,.3,1),visibility 0s linear .42s}
.advisor.open .advisor-window{transform:none;visibility:visible;transition:transform .42s cubic-bezier(.22,.9,.3,1) .08s,visibility 0s}
.advisor-window:focus{outline:none}
.advisor-head{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:14px 16px;background:var(--lime);color:var(--dark)}
.advisor-head :focus-visible{outline-color:var(--dark)}
.advisor-avatar{width:46px;height:46px;flex-shrink:0;border-radius:50%;background:#fff url('/assets/pan-kapsa-klid.webp') 42% 28%/160% auto no-repeat}
.advisor-titles{flex:1;min-width:0}
.advisor-titles h2{font-size:1.05em;line-height:1.3;letter-spacing:0;font-weight:700;color:var(--dark)}
.advisor-titles p{font-size:.76em;line-height:1.4;color:#044b28d9}
.advisor-icon{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#044b281a;color:var(--dark);transition:background .2s,color .2s}
.advisor-icon[hidden]{display:none}
.advisor-icon:hover{background:var(--dark);color:var(--lime)}
.advisor-icon .icon{width:18px;height:18px}
.advisor-log{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;padding:16px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--green) #fff}
.advisor-log:focus-visible{outline:3px solid #809b20;outline-offset:-3px}
.advisor-msg{position:relative;max-width:86%;padding:10px 14px;font-size:.92em;line-height:1.5;overflow-wrap:anywhere;animation:advisor-pop .25s ease-out}
.advisor-bot{align-self:flex-start;display:flex;flex-direction:column;gap:8px;border-radius:18px 18px 18px 6px;background:#fff;color:var(--text)}
.advisor-user{align-self:flex-end;border-radius:18px 18px 6px 18px;background:var(--dark);color:#fff;white-space:pre-wrap}
.advisor-msg p{line-height:inherit}
.advisor-msg ul{margin:0;padding-left:1.2em}
.advisor-msg strong{font-weight:700}
.advisor-msg a{color:var(--green);font-weight:600;text-decoration:none}
.advisor-msg a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.advisor-error{background:#fcefd0}
.advisor-error a{color:var(--dark)}
.advisor-retry{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 14px;border:1px solid #e8d49f;border-radius:999px;background:#fff;color:var(--dark);font-size:.9em;font-weight:600}
.advisor-retry:hover{border-color:var(--dark)}
.advisor-retry .icon{width:16px;height:16px}
.advisor-chips{display:flex;flex-wrap:wrap;gap:8px;animation:advisor-pop .25s ease-out}
.advisor-chip{padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--dark);font-size:.84em;font-weight:600;line-height:1.35;text-align:left;transition:border-color .2s,background .2s}
.advisor-chip:hover{border-color:var(--dark);background:var(--soft)}
.advisor-typing{position:relative;align-self:flex-start;display:flex;align-items:center;gap:5px;padding:14px 16px;border-radius:18px 18px 18px 6px;background:#fff;animation:advisor-pop .25s ease-out}
.advisor-dot{width:7px;height:7px;border-radius:50%;background:var(--green);opacity:.35;animation:advisor-dot 1.1s ease-in-out infinite}
.advisor-dot+.advisor-dot{animation-delay:.15s}
.advisor-dot+.advisor-dot+.advisor-dot{animation-delay:.3s}
.advisor-foot{flex-shrink:0;padding:10px 14px 12px;border-top:1px solid #044b2814}
.advisor-form{display:flex;align-items:flex-end;gap:8px;min-height:52px;padding:6px 6px 6px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.advisor-form:focus-within{outline:3px solid #809b20;outline-offset:2px}
.advisor-form textarea{flex:1;min-width:0;max-height:108px;margin:0;padding:7px 0;border:0;border-radius:0;background:none;color:var(--text);font-size:1em;line-height:1.5;resize:none;overflow-y:hidden;outline:none}
.advisor-form textarea::placeholder{color:#859187}
.advisor-send{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:var(--lime);color:var(--dark);transition:background .2s,opacity .2s}
.advisor-send:hover:not(:disabled){background:#e9eb52}
.advisor-send:disabled{opacity:.4}
.advisor-send .icon{width:18px;height:18px;stroke-width:2.2;transform:rotate(-90deg)}
.advisor-note{margin-top:7px;font-size:.7em;line-height:1.4;color:var(--muted);text-align:center}
@keyframes advisor-pop{from{opacity:0;transform:translateY(6px)}}
@keyframes advisor-dot{30%{opacity:1;transform:translateY(-3px)}60%{opacity:.35;transform:none}}
@media(max-width:1180px){.advisor{--advisor-left:208px}}
/* Head and shoulders only on narrower screens; on phones the chat is a bottom sheet over the full width. */
@media(max-width:1100px){.advisor-peek{width:72px;height:92px}.advisor-figure{left:-40px;bottom:-36px;width:91px;height:121px}.advisor-peek:focus-visible .advisor-figure{left:-30px}.advisor-bubble{left:60px;bottom:28px}}
@media(max-width:1100px) and (hover:hover){.advisor-peek:hover .advisor-figure{left:-30px}}
@media(max-width:1100px) and (hover:hover){.advisor:has(.advisor-bubble:hover) .advisor-figure{left:-30px}}
@media(max-width:900px){.advisor{--advisor-left:0px}}
@media(max-width:640px){.advisor-window{left:0;right:0;bottom:0;width:auto;height:min(88vh,640px);height:min(88dvh,640px);border-radius:24px 24px 0 0;transform:translateY(105%)}.advisor-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}
/* Short screens (a landscape phone, 400 % zoom): the window takes the whole height and a compact head and foot leave most of it to the conversation. */
@media(max-height:480px){.advisor-window{top:0;bottom:0;height:auto;border-radius:0}.advisor-head{gap:10px;padding:6px 12px}.advisor-avatar{width:32px;height:32px}.advisor-titles p,.advisor-note{display:none}.advisor-log{padding:12px}.advisor-foot{padding:6px 10px calc(6px + env(safe-area-inset-bottom))}.advisor-form textarea{max-height:60px}}
/* The end of every page (footer, pagination) stays reachable above Pan Kapsa. */
@media screen{.advisor-shown .main{padding-bottom:260px}}
@media screen and (max-width:1100px){.advisor-shown .main{padding-bottom:116px}}
/* The sticky catalog categories end above Pan Kapsa (his 244 or 92 px and a gap), so he never covers a category or catches its click. */
@media screen{.advisor-shown .shell .categories{--category-available-height:max(0px,calc(100dvh - var(--shell-header-height) - 32px - 252px))}}
@media screen and (max-width:1100px){.advisor-shown .shell .categories{--category-available-height:max(0px,calc(100dvh - var(--shell-header-height) - 32px - 100px))}}
@media(prefers-reduced-motion:reduce){.advisor-msg,.advisor-chips,.advisor-typing,.advisor-dot,.advisor-figure,.advisor-sprite.play{animation:none}.advisor-dot{opacity:.6}}
@media(forced-colors:active){.advisor-bubble,.advisor-window,.advisor-msg,.advisor-typing,.advisor-chip,.advisor-icon,.advisor-retry,.advisor-send,.advisor-form{border:1px solid CanvasText}.advisor-dot{forced-color-adjust:none;background:CanvasText}}
@media print{.advisor{display:none}}

/* Immediate response: a press shows before any work starts, and a running action is visibly busy (ui.js button() with
   aria-busy, api.js html.is-working, the catalogue search). Classes only: the CSP allows no inline styles. */
button,.button,[role=button]{touch-action:manipulation}
button:not(:disabled):active,.button:not(:disabled):active,.preorder-level.selectable:active{translate:0 1px;filter:brightness(.93)}
.is-busy,.is-busy:hover{cursor:progress}
.button.is-busy>.icon{display:none}
.button.is-busy::before{content:"";flex:none;width:16px;height:16px;box-sizing:border-box;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:busy-spin .75s linear infinite}
button.is-busy:not(.button){animation:busy-pulse .8s ease-in-out infinite alternate}
.search-box.is-searching>.icon{display:none}
.search-box.is-searching::before{content:"";position:absolute;left:14px;width:16px;height:16px;box-sizing:border-box;border:2px solid var(--green);border-right-color:transparent;border-radius:50%;animation:busy-spin .75s linear infinite}
.sending-card{border:1px solid #b9cdb5;background:var(--soft);padding:17px;border-radius:12px;font-size:12px;line-height:1.6}
.sending-card h3{margin-bottom:9px}
.sending-card h3::before,.sending-status::before{content:"";display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;box-sizing:border-box;border:2px solid var(--green);border-right-color:transparent;border-radius:50%;animation:busy-spin .75s linear infinite}
.sending-status{color:var(--dark);font-weight:600}
/* A quick additive action confirms itself on the pressed button ('Přidáno ✓'); hover must not hide it. */
button.is-done{background:var(--dark)!important;color:#fff!important;border-color:var(--dark)!important}
/* The message never takes a press meant for the buttons under it. */
.toast{position:fixed;left:50%;bottom:24px;z-index:2147483001;translate:-50% 0;display:flex;align-items:center;gap:8px;max-width:min(560px,calc(100vw - 32px));padding:12px 16px;border-radius:10px;background:var(--dark);color:#fff;box-shadow:0 12px 30px -12px #0006;font-size:13px;line-height:1.45;pointer-events:none}
.toast.error{background:#8a1c1c}
.toast .icon{flex:none;width:18px;height:18px}
.toast[hidden]{display:none}
.ai-elapsed{margin-left:auto;padding-left:10px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
/* A list that is being replaced (new search, page, category) dims after a moment, so the old results do not look current. */
:is(.product-grid,.document-list,.stack)[aria-busy="true"]{opacity:.55;transition:opacity .15s .15s}
html.is-working{cursor:progress}
html.is-working body::before{content:"";position:fixed;inset:0 0 auto;z-index:2147483000;height:3px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--lime) 35%,var(--green) 65%,transparent) no-repeat;background-size:40% 100%;animation:work-slide 1.1s ease-in-out infinite}
@keyframes busy-spin{to{transform:rotate(360deg)}}
@keyframes busy-pulse{to{opacity:.45}}
@keyframes work-slide{from{background-position:-60% 0}to{background-position:160% 0}}
@media(prefers-reduced-motion:reduce){.button.is-busy::before,.search-box.is-searching::before,.sending-card h3::before,.sending-status::before{animation-duration:2.4s}button.is-busy:not(.button){animation:none;opacity:.6}html.is-working body::before{animation:none;background:var(--green)}}
@media(forced-colors:active){.button.is-busy::before,.search-box.is-searching::before,.sending-card h3::before,.sending-status::before{forced-color-adjust:none;border-color:CanvasText;border-right-color:transparent}.toast{border:1px solid CanvasText}.toast.error{border-width:3px}html.is-working body::before{background:Highlight}}
