/* Lanka Leaf visual system — shared geometry, separate identities. */
:root{--bg:#f2f5f1;--surface:#fffefa;--ink:#172a20;--muted:#506155;--line:#89998e;--soft-line:#dce4dd;--accent:#287344;--on-accent:#fff;--tint:#e5f2e7;--radius:8px;--surface-shadow:0 2px 8px #173d2010;--selected-bg:var(--tint);--selected-ink:var(--accent);--control-height:48px;--option-height:64px;--cart-title-height:44px;--cart-width:320px;--font-display:'Trebuchet MS',sans-serif;--font-body:system-ui,sans-serif;--tracking:-.025em;--dock-pad:12px;color-scheme:light;font-family:var(--font-body)}
:root[data-direction=tea-house]{--bg:#f0f2f1;--surface:#fff;--ink:#17251f;--muted:#53615b;--line:#82958a;--soft-line:#d4ddd8;--accent:#153f32;--tint:#e8eeeb;--radius:4px;--surface-shadow:none;--selected-bg:#153f32;--selected-ink:#fff}
:root[data-theme=dark]{--bg:#111916;--surface:#1d2b24;--ink:#f5faf7;--muted:#c2d1c8;--line:#789486;--soft-line:#41594b;--accent:#a8e9c2;--on-accent:#102b1c;--tint:#263f32;--selected-bg:#263f32;--selected-ink:#a8e9c2;--surface-shadow:none;color-scheme:dark}
h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:var(--tracking)}
button{border-radius:var(--radius);min-height:var(--control-height);font-weight:600;transition:background var(--enter),border-color var(--enter);box-shadow:none}
button.primary{font-weight:700;letter-spacing:0}.topbar{border-bottom:1px solid var(--soft-line)}.brandmark{width:32px;height:32px;border-radius:var(--radius)}.brand h1{font-size:24px;font-weight:700;letter-spacing:-.04em}.top-actions button{background:transparent;border-color:transparent}.top-actions button:last-child{background:var(--bg);border-color:var(--soft-line)}.header-date{color:var(--muted)}.connection{font-size:16px}.connection .icon{width:16px;height:16px;color:var(--accent)}
.favorites{background:var(--surface);border-color:var(--soft-line)}.fav-label{font-weight:600;color:var(--muted)}.fav-label .icon{width:16px;height:16px}.favorite{border-color:var(--soft-line);background:var(--bg);border-radius:var(--radius);font-weight:600}.favorite .icon{color:var(--accent)}
.workspace{grid-template-columns:minmax(0,1fr) var(--cart-width)}.columns{gap:8px}.stage{border-color:var(--soft-line);border-radius:var(--radius);box-shadow:var(--surface-shadow)}.stage.active{border-color:var(--accent)}.stage-heading{min-height:48px;padding:12px;gap:8px;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0}.stage-heading h3{font-family:var(--font-body);font-weight:650;letter-spacing:0}.stage-number{display:grid;place-items:center;font-size:16px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.stage-options{gap:8px;padding:8px}.option{min-height:var(--option-height);padding:12px;border:1px solid var(--soft-line);background:var(--surface);font-weight:650}.option small{font-size:16px;font-weight:400}.option.selected{border:2px solid var(--accent);padding:11px;background:var(--selected-bg);color:var(--selected-ink)}.option.selected small{color:var(--selected-ink)}.option.selected .icon{width:16px;height:16px}.option:disabled{border-style:dashed}.stage-foot{border-radius:0 0 var(--radius) var(--radius);padding:12px}.price-preview{font-family:var(--font-body);font-size:24px;font-weight:700;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.stage-foot>.meta{font-size:16px}.contextbar{border-color:var(--soft-line);border-radius:var(--radius);background:var(--surface)}.contextbar h3{font-family:var(--font-body);font-size:16px;letter-spacing:0}.contextbar .meta{font-size:16px}.context-actions button{background:transparent;border-color:var(--soft-line)}
.cart-panel{border-radius:var(--radius);box-shadow:var(--surface-shadow);border-color:var(--soft-line)}.cart-header{padding:12px 16px;min-height:64px}.cart-header h2{font-size:20px}.count{background:var(--tint);color:var(--accent);font-size:16px;border-radius:var(--radius)}.cart-row{padding:8px 0 12px}.cart-title{min-height:var(--cart-title-height);font-size:18px;font-weight:650;line-height:1.4;letter-spacing:-.015em;border-radius:4px}.cart-meta{justify-content:space-between;gap:8px;margin:0 0 4px}.cart-meta .pill{background:transparent;padding:0;color:var(--muted)}.cart-meta .money{font-weight:600}.cart-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:20px;line-height:1.5;letter-spacing:-.025em;font-weight:700;margin-bottom:8px}.cart-price del{font-size:16px;letter-spacing:0}.negotiated{display:block;flex-basis:100%;font-size:16px;letter-spacing:0;color:var(--accent);font-weight:600}.cart-actions button{background:transparent;border-color:var(--soft-line);min-height:44px}.cart-actions button.danger{flex:0 1 auto}.cart-actions .icon{width:16px;height:16px}.cart-total{background:var(--surface);padding:16px;border-radius:0 0 var(--radius) var(--radius);border-top:1px solid var(--line)}.total-row strong{font-family:var(--font-body);font-size:24px;letter-spacing:-.035em}.cart-total .primary{min-height:48px}.statusbar{font-size:16px;background:var(--bg)}.statusbar .icon{width:16px;height:16px}.mobile-dock{display:none}
.stage-tabs button{border-color:var(--soft-line);background:var(--surface)}.stage-tabs button[aria-current=step]{border-color:var(--accent)}
dialog{border-radius:var(--radius);box-shadow:0 24px 64px #10231933}dialog .numeric-input{font-family:var(--font-body);font-weight:600}.dialog-head h2{font-size:24px}dialog[data-view=cart] .dialog-inner{height:100%;min-height:0;overflow:hidden}dialog[data-view=cart] #dialog-body{flex:1;min-height:0}dialog[data-view=cart] .cart-panel.in-drawer{height:100%;min-height:0;max-height:none;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:none}dialog[data-view=cart] .cart-items{overflow-y:auto}dialog[data-view=cart] .cart-total{position:static;margin:0}.toast{bottom:48px}
@media(hover:hover){.top-actions button:hover:not(:disabled),.cart-actions button:hover:not(:disabled),.context-actions button:hover:not(:disabled){background:var(--tint);border-color:var(--accent)}.option.selected:hover:not(:disabled){background:var(--selected-bg);color:var(--selected-ink)}.cart-title:hover{color:var(--accent)}}
@media(min-width:1440px){:root{--cart-width:360px}.columns{gap:12px}.option{min-height:72px}}
@media(max-width:1150px){.columns{display:block}.stage-tabs{gap:8px}.stage-tabs button{min-height:44px}.stage{min-height:400px}}
@media(max-width:767px){.shell{grid-template-rows:auto auto minmax(0,1fr) auto auto;height:100dvh;min-height:0}.workspace{grid-template-columns:minmax(0,1fr);padding:12px 16px}.brand h1{font-size:20px}.topbar{padding:8px 16px;gap:8px}.top-actions{gap:8px}.top-actions .mobile-cart{display:none}.top-actions button{padding:8px;min-width:44px;min-height:44px}.header-status{font-size:16px}.favorites{padding:4px 16px;gap:8px;flex-wrap:nowrap;flex-direction:row;min-height:56px}.fav-label{font-size:16px}.fav-label .icon{display:none}.favorite{min-height:44px}.stage-tabs button{padding:8px;min-height:44px}.stage-heading{padding:12px 16px}.stage-options{padding:12px;gap:8px}.option{min-height:64px;padding:12px}.option.selected{padding:11px}.stage-foot{padding:12px}.contextbar{padding:12px}.context-actions{gap:8px}.context-actions button{min-height:44px}.mobile-dock{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:var(--dock-pad) 16px calc(var(--dock-pad) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.dock-cart{display:grid;gap:0;text-align:left;justify-content:start;align-content:center;padding:0 8px;border-color:transparent;min-height:48px}.dock-cart span{display:block}.dock-cart #dock-count{font-size:16px;color:var(--muted);font-weight:500}.dock-cart #dock-total{font-size:20px;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.mobile-dock>.primary{min-height:48px;padding:12px 16px}.statusbar{border-top:0;padding:4px 16px;min-height:32px;line-height:1.5}.statusbar #queue-label{font-size:16px}.toast{bottom:112px}.stage-tabs{scrollbar-gutter:auto}.selection{padding-right:0}.cart-panel.in-drawer{border:0}.dialog-inner{padding:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Pricing and independent density preferences. Existing variant tokens remain authoritative. */
:root{--tile-pad:12px;--tile-min:64px;--line-pad:16px;--line-gap:8px;--tap:44px;--editor-gap:16px}
[hidden]{display:none!important}
:root[data-selection-density=compact]{--tile-pad:8px;--tile-min:48px}
:root[data-cart-density=compact]{--line-pad:8px;--line-gap:4px}
.selection .option{min-height:var(--tile-min);padding:var(--tile-pad)}
.selection .option.selected{padding:calc(var(--tile-pad) - 1px)}
[data-selection-density=compact] #categories .option small,[data-selection-density=compact] #grades .option small{display:none}
[data-selection-density=compact] .option .od-field{gap:0}
[data-selection-density=compact] .stage-heading{padding:8px 12px}
[data-selection-density=compact] .stage-options{gap:8px;padding:8px}
.cart-panel .cart-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:var(--line-pad) 0}
.cart-main{gap:var(--line-gap)}.cart-name{font-size:16px;line-height:1.5;overflow-wrap:anywhere;font-weight:700}
.cart-facts{gap:4px 12px;font-size:16px}.cart-category{color:var(--muted)}
.cart-prices{gap:4px 8px;align-items:baseline;font-size:16px;font-variant-numeric:tabular-nums;line-height:1.5}
.cart-prices del{color:var(--muted)}.adjustment-label{font-size:16px;color:var(--accent)}
.cart-panel .cart-actions{display:flex;flex-direction:column;gap:8px;margin:0}
.cart-panel .cart-actions button{display:flex;flex:none;min-width:var(--tap);min-height:var(--tap);width:var(--tap);padding:8px;border:1px solid var(--soft-line)}
.cart-panel .cart-actions .icon{width:20px;height:20px}
[data-cart-density=compact] .cart-rate{display:none}
.cart-rate{line-height:1.5;overflow-wrap:anywhere}
.number-editor{--od-gap:var(--editor-gap)}.number-editor .od-row{flex-wrap:wrap}.number-editor .od-fill{flex-basis:160px}
fieldset{min-width:0;border:1px solid var(--soft-line);border-radius:var(--radius);padding:12px;margin:0}legend{padding:0 8px;font-weight:650}
.segmented button{min-height:44px;flex:1 1 120px}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.quantity-policy label{display:flex;align-items:center;gap:8px;min-height:48px;padding:8px 0;cursor:pointer}.quantity-policy input{width:20px;height:20px;flex:none;accent-color:var(--accent)}
.availability-list .availability-item{align-items:stretch;padding:16px 0;gap:12px}.availability-item .od-field{gap:4px}.availability-item .od-cluster{gap:8px}.availability-item .od-cluster button{flex:1 1 160px;min-height:44px}
.availability-item .meta{overflow-wrap:anywhere}.keypad-note{line-height:1.5;min-height:48px}.keypad-blank{display:block}
.dialog-head{align-items:flex-start;gap:8px}.dialog-head h2{overflow-wrap:anywhere;min-width:0}.dialog-head .close{flex:none;min-width:44px;min-height:44px}
.numeric-input{width:100%;min-width:0}.dialog-actions{flex-wrap:wrap;gap:8px}.dialog-actions button{flex:1 1 120px}.settings-row{flex-wrap:wrap;gap:12px}.settings-row .od-field{flex:1 1 200px}
@media(max-width:767px){.number-editor{--editor-gap:12px}.keypad button{min-height:48px}.cart-panel .cart-row{grid-template-columns:minmax(0,1fr) 44px}.topbar .brand{width:auto}.top-actions{width:auto}.top-actions button{flex:none}.header-status{flex-wrap:wrap}.stage-tabs{min-height:52px}.cart-prices{font-size:16px}}
