:root{--hb-color-brand:#2e6b45;--hb-color-brand-hover:#245638;--hb-color-brand-active:#1d472e;--hb-color-text:#172019;--hb-color-text-muted:#5d675f;--hb-color-border:#e2e7e3;--hb-color-surface:#ffffff;--hb-color-surface-muted:#f6f7f5;--hb-color-surface-soft-green:#f2f7f2;--hb-color-success:#2d7a48;--hb-color-warning:#9a6515;--hb-color-error:#b04444;--hb-color-information:#356a8a;--hb-color-focus:#2563eb;--hb-font-sans:"Noto Sans Thai Looped","Noto Sans Thai","Noto Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--hb-type-display:clamp(2.5rem,7vw,5rem);--hb-type-h1:clamp(2rem,5vw,3.5rem);--hb-type-h2:clamp(1.5rem,3vw,2.25rem);--hb-type-h3:1.25rem;--hb-type-body:1rem;--hb-type-body-small:0.875rem;--hb-type-caption:0.75rem;--hb-space-0:0;--hb-space-1:0.25rem;--hb-space-2:0.5rem;--hb-space-3:0.75rem;--hb-space-4:1rem;--hb-space-5:1.25rem;--hb-space-6:1.5rem;--hb-space-8:2rem;--hb-space-10:2.5rem;--hb-space-12:3rem;--hb-space-16:4rem;--hb-radius-control:0.75rem;--hb-radius-card:1rem;--hb-radius-dialog:1.25rem;--hb-radius-pill:999px;--hb-shadow-card:0 1px 3px rgb(22 37 29/8%);--hb-shadow-elevated:0 16px 48px rgb(22 37 29/16%);--hb-container:72rem;--hb-container-wide:90rem;color-scheme:light;font-family:var(--hb-font-sans);color:var(--hb-color-text);background:var(--hb-color-surface-muted)}*,:after,:before{box-sizing:border-box}html{text-size-adjust:100%}body{margin:0;min-width:0;background:var(--hb-color-surface-muted);color:var(--hb-color-text);font-family:var(--hb-font-sans);font-size:1rem;line-height:1.6}button,input,select,textarea{font:inherit}button{color:inherit}a{color:var(--hb-color-brand-active);text-underline-offset:.18em}a:hover{text-decoration-thickness:.13em}:focus-visible{outline:3px solid var(--hb-color-focus);outline-offset:3px}::selection{background:var(--hb-color-surface-soft-green);color:var(--hb-color-text)}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.hb-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.hb-container{width:min(100% - 2rem,var(--hb-container));margin-inline:auto}.hb-container--wide{max-width:var(--hb-container-wide)}.hb-stack{display:flex;flex-direction:column;gap:var(--hb-stack-gap,var(--hb-space-4))}.hb-inline{display:flex;gap:var(--hb-inline-gap,var(--hb-space-3))}.hb-card{min-width:0;padding:var(--hb-space-5);border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-card);background:var(--hb-color-surface);box-shadow:var(--hb-shadow-card)}.hb-divider{width:100%;height:1px;margin:0;border:0;background:var(--hb-color-border)}.hb-button,.hb-icon-button,.hb-marketplace-cta{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:var(--hb-space-2);border:1px solid transparent;border-radius:var(--hb-radius-control);font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.hb-button{padding:.7rem 1rem}.hb-button--sm{min-height:40px;padding:.55rem .8rem;font-size:.875rem}.hb-button--lg{min-height:48px;padding:.85rem 1.25rem}.hb-button--primary,.hb-marketplace-cta{background:var(--hb-color-brand);color:#fff}.hb-button--primary:hover,.hb-marketplace-cta:hover{background:var(--hb-color-brand-hover)}.hb-button--primary:active,.hb-marketplace-cta:active{background:var(--hb-color-brand-active);transform:translateY(1px)}.hb-button--secondary{border-color:var(--hb-color-border);background:var(--hb-color-surface);color:var(--hb-color-text)}.hb-button--secondary:hover{border-color:var(--hb-color-brand);background:var(--hb-color-surface-soft-green)}.hb-button--ghost{background:transparent;color:var(--hb-color-brand-active)}.hb-button--ghost:hover{background:var(--hb-color-surface-soft-green)}.hb-button--danger{background:var(--hb-color-error);color:#fff}.hb-button:disabled,.hb-button[aria-disabled=true],.hb-icon-button:disabled{opacity:.55;cursor:not-allowed}.hb-icon-button{width:44px;padding:0;border-color:var(--hb-color-border);background:var(--hb-color-surface)}.hb-icon-button--sm{width:40px;min-height:40px}.hb-icon-button--lg{width:48px;min-height:48px}.hb-badge{display:inline-flex;min-height:1.75rem;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:var(--hb-radius-pill);background:#f2f4f3;color:var(--hb-color-text-muted);font-size:.78rem;font-weight:700;line-height:1.3}.hb-badge--success{background:var(--hb-color-surface-soft-green);color:var(--hb-color-success)}.hb-badge--warning{background:#fff6d8;color:var(--hb-color-warning)}.hb-badge--error{background:#fff1f1;color:var(--hb-color-error)}.hb-badge--information{background:#eef4ff;color:var(--hb-color-information)}.hb-field{display:grid;grid-gap:var(--hb-space-2);gap:var(--hb-space-2)}.hb-choice__label,.hb-field__label{font-weight:700}.hb-input{width:100%;min-height:44px;padding:.65rem .8rem;border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-control);background:var(--hb-color-surface);color:var(--hb-color-text)}.hb-input:hover{border-color:#b9c8bf}.hb-input[aria-invalid=true]{border-color:var(--hb-color-error)}.hb-field__message{color:var(--hb-color-text-muted);font-size:.82rem}.hb-field__message--error{color:var(--hb-color-error)}.hb-select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.hb-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:48px;overflow:hidden;border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-control);background:var(--hb-color-surface)}.hb-search:focus-within{outline:3px solid var(--hb-color-focus);outline-offset:3px}.hb-search__icon{padding-left:var(--hb-space-4);color:var(--hb-color-text-muted)}.hb-search__input{width:100%;min-width:0;height:100%;padding:.65rem;border:0;outline:0;background:transparent}.hb-search__button{align-self:stretch;min-width:72px;border:0;background:var(--hb-color-brand);color:#fff;font-weight:700;cursor:pointer}.hb-search__button:disabled{opacity:.55}.hb-choice{display:inline-flex;min-height:44px;align-items:flex-start;gap:var(--hb-space-3);cursor:pointer}.hb-choice__input{width:1.25rem;height:1.25rem;margin-top:.15rem;accent-color:var(--hb-color-brand)}.hb-choice__description{display:block;color:var(--hb-color-text-muted);font-size:.875rem}.hb-tabs{display:flex;gap:var(--hb-space-1);overflow-x:auto;border-bottom:1px solid var(--hb-color-border)}.hb-tabs__tab{min-height:44px;flex:0 0 auto;padding:.6rem .9rem;border:0;border-bottom:3px solid transparent;background:transparent;cursor:pointer}.hb-tabs__tab[aria-selected=true]{border-bottom-color:var(--hb-color-brand);color:var(--hb-color-brand-active);font-weight:700}.hb-disclosure{display:flex;flex-wrap:wrap;gap:var(--hb-space-2) var(--hb-space-3);padding:var(--hb-space-4);border-left:4px solid var(--hb-color-brand);border-radius:0 var(--hb-radius-control) var(--hb-radius-control) 0;background:var(--hb-color-surface-soft-green);color:var(--hb-color-text-muted);font-size:.875rem}.hb-disclosure strong{color:var(--hb-color-text)}.hb-disclosure--compact{padding-block:var(--hb-space-3)}.hb-marketplace-cta{width:100%;padding:.8rem 1rem}.hb-marketplace-cta--disabled{background:#dce5df;color:var(--hb-color-text-muted);cursor:not-allowed}.hb-notice{display:grid;grid-gap:var(--hb-space-1);gap:var(--hb-space-1);padding:var(--hb-space-4);border:1px solid;border-radius:var(--hb-radius-control);font-size:.9rem}.hb-notice--warning{border-color:#ead38a;background:#fff9e8;color:#644c00}.hb-notice--information{border-color:#bfd1fa;background:#f3f7ff;color:#1e458f}.hb-state{padding-block:var(--hb-space-8);text-align:center}.hb-state__icon{color:var(--hb-color-text-muted)}.hb-state--error .hb-state__icon{color:var(--hb-color-error)}.hb-state__title{margin:0;font-size:clamp(1.15rem,3vw,1.35rem);line-height:1.35}.hb-refreshing,.hb-state__description{color:var(--hb-color-text-muted)}.hb-refreshing{font-size:.875rem}.hb-skeleton{display:block;min-height:1rem;border-radius:.5rem;background:linear-gradient(90deg,#eef2ef 25%,#f8faf9 50%,#eef2ef 75%);background-size:200% 100%;animation:hb-shimmer 1.6s ease-in-out infinite}@keyframes hb-shimmer{to{background-position-x:-200%}}.hb-spinner-wrap{display:inline-flex}.hb-spinner{display:inline-block;width:1.25rem;height:1.25rem;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:hb-spin .7s linear infinite}.hb-spinner--inline{width:1rem;height:1rem}@keyframes hb-spin{to{transform:rotate(1turn)}}.hb-dialog{width:min(calc(100% - 2rem),34rem);max-height:min(85vh,44rem);padding:0;overflow:auto;border:0;border-radius:var(--hb-radius-dialog);background:transparent;box-shadow:var(--hb-shadow-elevated)}.hb-dialog::-webkit-backdrop{background:rgb(13 26 18/55%)}.hb-dialog::backdrop{background:rgb(13 26 18/55%)}.hb-dialog__surface{position:relative;padding:var(--hb-space-6);background:var(--hb-color-surface)}.hb-dialog__close{position:absolute;top:var(--hb-space-3);right:var(--hb-space-3);width:44px;height:44px;border:0;border-radius:50%;background:transparent;font-size:1.5rem;cursor:pointer}.hb-dialog__title{margin:0;padding-right:2.5rem;font-size:1.35rem}.hb-dialog__description{margin-top:var(--hb-space-2);color:var(--hb-color-text-muted)}.hb-dialog__footer{display:flex;justify-content:flex-end}.hb-toast{position:fixed;z-index:50;right:var(--hb-space-4);bottom:var(--hb-space-4);display:flex;width:min(calc(100% - 2rem),24rem);align-items:center;justify-content:space-between;gap:var(--hb-space-4);padding:var(--hb-space-4);border-radius:var(--hb-radius-control);background:var(--hb-color-text);color:#fff;box-shadow:var(--hb-shadow-elevated)}.hb-toast button{width:44px;height:44px;border:0;background:transparent;color:inherit;font-size:1.4rem;cursor:pointer}.hb-toast--error{background:var(--hb-color-error)}.hb-toast--success{background:var(--hb-color-success)}@media (min-width:48rem){.hb-container{width:min(100% - 3rem,var(--hb-container))}.hb-card{padding:var(--hb-space-6)}.hb-marketplace-cta{width:auto}}.hb-product-card{height:100%;padding:0;overflow:hidden}.hb-product-card__link{display:flex;height:100%;flex-direction:column;color:inherit;text-decoration:none}.hb-product-card__link:focus-visible{outline:3px solid var(--hb-color-focus);outline-offset:-3px}.hb-product-card__media{display:grid;aspect-ratio:1;place-items:center;overflow:hidden;background:var(--hb-color-surface-muted)}.hb-product-card__media img{width:100%;height:100%;object-fit:contain}.hb-product-card__fallback{display:grid;width:4rem;height:4rem;place-items:center;border-radius:var(--hb-radius-pill);background:var(--hb-color-surface-soft-green);color:var(--hb-color-brand-active);font-size:1.75rem;font-weight:800}.hb-product-card__content{display:flex;flex:1 1;flex-direction:column;gap:var(--hb-space-2);padding:var(--hb-space-4)}.hb-product-card__brand,.hb-product-card__price-note{color:var(--hb-color-text-muted);font-size:.8rem}.hb-product-card__title{display:-webkit-box;overflow:hidden;font-weight:700;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.hb-product-card__price{margin-top:auto;color:var(--hb-color-brand-active);font-weight:800}.admin-skip-link{position:fixed;z-index:10;top:-4rem;left:1rem;padding:.7rem 1rem;border-radius:var(--hb-radius-control);background:var(--hb-color-text);color:#fff}.admin-skip-link:focus{top:1rem}.admin-shell{display:grid;min-height:100vh;grid-template-columns:17rem minmax(0,1fr)}.admin-sidebar{display:flex;min-width:0;flex-direction:column;gap:var(--hb-space-8);padding:var(--hb-space-6);background:#16251d;color:#f8fbf9}.admin-brand{color:#fff;font-size:1.35rem;font-weight:800;text-decoration:none}.admin-brand span{color:#bfe5ce;font-weight:600}.admin-nav{display:grid;grid-gap:var(--hb-space-2);gap:var(--hb-space-2)}.admin-nav a{display:flex;min-height:44px;align-items:center;padding:.55rem .75rem;border-radius:var(--hb-radius-control);color:#d8e4db;font-weight:700;text-decoration:none}.admin-nav a:hover,.admin-nav a[aria-current=page]{background:rgb(255 255 255/12%);color:#fff}.admin-sidebar__note{margin-top:auto;color:#b9cabb;font-size:var(--hb-type-body-small)}.admin-main{min-width:0;padding:clamp(1.25rem,4vw,3rem);overflow-x:clip}.admin-page-heading{max-width:70rem;margin-bottom:var(--hb-space-8)}.admin-page-heading h1{margin:0;font-size:clamp(1.85rem,4vw,2.65rem);line-height:1.2}.admin-page-heading p{max-width:54rem;margin:var(--hb-space-2) 0 0;color:var(--hb-color-text-muted)}.admin-dashboard-links,.admin-detail-grid,.admin-metric-grid{display:grid;grid-gap:var(--hb-space-4);gap:var(--hb-space-4);grid-template-columns:repeat(4,minmax(0,1fr))}.admin-dashboard-links{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--hb-space-8)}.admin-dashboard-links h2,.admin-detail-card h2{margin-top:0;font-size:1.125rem}.admin-dashboard-links p{color:var(--hb-color-text-muted)}.admin-metric{display:grid;min-height:8.4rem;align-content:center;grid-gap:var(--hb-space-1);gap:var(--hb-space-1);padding:var(--hb-space-5);border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-card);background:var(--hb-color-surface);box-shadow:var(--hb-shadow-card);color:var(--hb-color-text);text-decoration:none}.admin-metric:hover{border-color:var(--hb-color-brand);background:var(--hb-color-surface-soft-green)}.admin-metric strong{font-size:2rem;line-height:1}.admin-metric span{color:var(--hb-color-text-muted);font-size:var(--hb-type-body-small);font-weight:700}.admin-filters{display:flex;flex-wrap:wrap;align-items:end;gap:var(--hb-space-3);margin-bottom:var(--hb-space-5);padding:var(--hb-space-4);border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-card);background:var(--hb-color-surface)}.admin-filters label{display:grid;min-width:12rem;grid-gap:var(--hb-space-1);gap:var(--hb-space-1);font-weight:700}.admin-filters button,.admin-filters select{min-height:42px;padding:.55rem .7rem;border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-control);background:var(--hb-color-surface);color:var(--hb-color-text)}.admin-filters button{border-color:var(--hb-color-brand);background:var(--hb-color-brand);color:#fff;font-weight:700;cursor:pointer}.admin-filters a{display:inline-flex;min-height:42px;align-items:center}.admin-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-card);background:var(--hb-color-surface);box-shadow:var(--hb-shadow-card)}.admin-table-wrap:focus-visible{outline:3px solid var(--hb-color-focus);outline-offset:3px}.admin-table{width:100%;min-width:58rem;border-collapse:collapse;font-size:.9rem}.admin-table td,.admin-table th{padding:.9rem 1rem;border-bottom:1px solid var(--hb-color-border);text-align:left;vertical-align:top}.admin-table th{color:var(--hb-color-text-muted);font-size:.75rem;letter-spacing:.03em;text-transform:uppercase}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table td small{display:block;margin-top:var(--hb-space-1);color:var(--hb-color-text-muted)}.admin-pagination{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hb-space-3);margin-top:var(--hb-space-5)}.admin-pagination a,.admin-pagination span{display:inline-flex;min-height:40px;align-items:center;padding:.45rem .75rem;border-radius:var(--hb-radius-control)}.admin-pagination a{border:1px solid var(--hb-color-border);background:var(--hb-color-surface);text-decoration:none}.admin-pagination span[aria-disabled=true]{color:var(--hb-color-text-muted)}.admin-matching-state,.admin-state-card{max-width:48rem;margin-inline:auto;padding:var(--hb-space-4);text-align:center}.admin-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-detail-card dl{display:grid;grid-template-columns:minmax(9rem,.8fr) minmax(0,1.2fr);grid-gap:var(--hb-space-3) var(--hb-space-4);gap:var(--hb-space-3) var(--hb-space-4);margin:0}.admin-detail-card dt{color:var(--hb-color-text-muted);font-weight:700}.admin-detail-card dd{min-width:0;margin:0;overflow-wrap:anywhere}.admin-persisted-notice{max-width:62rem;margin:calc(-1 * var(--hb-space-5)) 0 var(--hb-space-5);padding:var(--hb-space-3) var(--hb-space-4);border-left:4px solid var(--hb-color-information);background:#f3f7ff;color:#1e458f}.admin-manual-assignment,.admin-matching-candidates{display:grid;grid-gap:var(--hb-space-3);gap:var(--hb-space-3);margin-top:var(--hb-space-6)}.admin-candidate-card{display:grid;grid-gap:var(--hb-space-4);gap:var(--hb-space-4);grid-template-columns:minmax(0,1fr) minmax(14rem,.45fr)}.admin-candidate-card h3,.admin-manual-assignment h2,.admin-matching-candidates h2{margin:0}.admin-candidate-card p{margin:var(--hb-space-2) 0 0;overflow-wrap:anywhere}.admin-decision-actions,.admin-decision-form,.admin-manual-assignment form{display:grid;align-content:start;grid-gap:var(--hb-space-3);gap:var(--hb-space-3)}.admin-decision-form,.admin-manual-assignment form{padding:var(--hb-space-3);border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-control)}.admin-decision-form label,.admin-manual-assignment label{display:grid;grid-gap:var(--hb-space-2);gap:var(--hb-space-2)}.admin-action-error{padding:var(--hb-space-3) var(--hb-space-4);border-left:4px solid var(--hb-color-error);background:#fff5f5}.admin-promotion-section{display:grid;grid-gap:var(--hb-space-3);gap:var(--hb-space-3);margin-top:var(--hb-space-6)}.admin-promotion-section h2,.admin-promotion-section h3,.admin-promotion-section p{margin:0}.admin-promotion-list{display:grid;grid-gap:var(--hb-space-2);gap:var(--hb-space-2);margin:0;padding:var(--hb-space-4) var(--hb-space-6);border:1px solid var(--hb-color-border);border-radius:var(--hb-radius-card);background:var(--hb-color-surface);overflow-wrap:anywhere}.admin-content-preview{max-height:28rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:var(--hb-space-3);border:1px solid var(--hb-color-border);background:var(--hb-color-surface-soft-green)}.admin-form{display:grid;grid-gap:1rem;gap:1rem;max-width:64rem}.admin-form label{display:grid;grid-gap:.35rem;gap:.35rem}.admin-form input,.admin-form select,.admin-form textarea{width:100%;border:1px solid var(--border);border-radius:.5rem;padding:.65rem;font:inherit}.admin-button,.admin-form button{width:-moz-fit-content;width:fit-content;border:0;border-radius:.5rem;padding:.65rem .9rem;background:var(--brand);color:white;text-decoration:none;cursor:pointer}.admin-inline-actions{display:flex;flex-wrap:wrap;gap:.75rem}@media (max-width:75rem){.admin-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dashboard-links{grid-template-columns:1fr}}@media (max-width:64rem){.admin-shell{grid-template-columns:13rem minmax(0,1fr)}.admin-sidebar{padding:var(--hb-space-4)}}@media (max-width:48rem){.admin-shell{grid-template-columns:1fr}.admin-sidebar{gap:var(--hb-space-3)}.admin-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-sidebar__note{display:none}.admin-main{padding:var(--hb-space-5)}.admin-detail-card dl,.admin-detail-grid,.admin-metric-grid{grid-template-columns:1fr}.admin-detail-card dl{gap:var(--hb-space-1)}.admin-detail-card dd{margin-bottom:var(--hb-space-3)}.admin-candidate-card{grid-template-columns:1fr}}