/* Buurtwinkel layout adapters for the definitive Dorpshuys style.
   This replaces style.css and nas.css; dorpshuys.css supplies design tokens. */
.dh{--green:var(--dh-blue);--dark:var(--dh-text);--muted:var(--dh-muted);--line:var(--dh-border)}
.dh button,.dh input,.dh select,.dh textarea{font:inherit;touch-action:manipulation}
.dh button{cursor:pointer}.dh button:disabled{cursor:not-allowed;color:var(--dh-disabled-text);background:var(--dh-disabled-bg);border-color:var(--dh-border)}
.dh a{text-decoration:none}.dh a:hover{text-decoration:underline}.dh h1{margin:8px 0 12px}.dh h2{letter-spacing:-.3px}
.dh .sidebar{width:260px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--dh-border);padding:24px 20px;background:rgb(25 62 91 / 6%);display:flex;flex-direction:column;gap:20px;z-index:110;overflow-y:auto}
.dh .brand{display:flex;align-items:center;gap:14px;font-size:1.35em;font-weight:700;line-height:1.3;color:var(--dh-blue);letter-spacing:-.4px}
.dh .brand small{display:block;color:var(--dh-muted);font-size:.65em;font-weight:400;margin-top:4px;letter-spacing:0}.dh .sidebar .brand{flex-wrap:wrap}
.dh .workspace{display:flex;align-items:center;gap:12px;background:var(--dh-support-bg);border-radius:10px;padding:12px;font-size:.82em;overflow-wrap:anywhere}
.dh .workspace small{display:block;color:var(--dh-muted);margin-top:4px}.dh .workspace-logo{width:48px;height:60px;object-fit:contain;flex:none}
.dh .nav-label{font-size:.7em;letter-spacing:1px;font-weight:700;color:var(--dh-muted);margin-bottom:-12px}
.dh .dh-nav{padding:0;border:0;flex-direction:column;gap:6px;justify-content:start}
.dh .dh-nav-item{flex-direction:row;justify-content:flex-start;max-width:none;min-height:48px;padding:12px;text-align:left;font-size:.88em;gap:10px}
.dh .dh-nav-item.active{color:var(--dh-blue);background:var(--dh-blue-soft);font-weight:700}
.dh nav button i{margin-left:auto;font-size:.8em;font-style:normal}.dh #side-categories{overflow:auto;min-height:60px}
.dh #side-categories button{display:flex;width:100%;background:none;border:0;text-align:left;color:var(--dh-muted);font-size:.78em;padding:6px 10px;border-radius:6px;min-height:44px;line-height:1.4;align-items:center;gap:10px}
.dh #side-categories button:hover{background:var(--dh-support-bg);color:var(--dh-blue)}
.dh .sidebar-bottom{display:flex;align-items:center;gap:10px;margin-top:auto;border-top:1px solid var(--dh-border);padding-top:16px;font-size:.82em}
.dh .sidebar-bottom small{display:block;color:var(--dh-muted)}.dh .avatar{background:var(--dh-blue);color:white;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;flex:none}
.dh .shell{margin-left:260px;min-width:0}.dh header{min-height:92px}.dh #breadcrumb{font-size:.94em;font-weight:700}
.dh .header-right{display:flex;gap:12px;align-items:center;font-size:.82em;color:var(--dh-header-muted);flex-wrap:wrap}
.dh .header-right button{color:white;min-height:44px}.dh .logout{border:1px solid #e0e9f0;border-radius:6px;background:transparent;width:44px;display:grid;place-items:center}
.dh .divider{height:20px;border-left:1px solid #e0e9f0}.dh .private-dot{display:none}
.dh main{padding-bottom:0}.dh .heading,.dh .section-title{display:flex;align-items:center;justify-content:space-between;gap:20px}
.dh .heading p,.dh .intro{color:var(--dh-muted);margin:0}.dh .eyebrow{font-size:.75em;letter-spacing:1px;font-weight:700;color:var(--dh-support)}
.dh .button{font-size:.94em}.dh .primary{background:var(--dh-blue);color:white;border-color:var(--dh-blue)}.dh .primary:hover{background:var(--dh-blue-hover)}
.dh .secondary{background:white;color:var(--dh-blue);border:2px solid var(--dh-blue);padding:10px 15px}.dh .secondary:hover{background:var(--dh-blue-soft)}
.dh .wide{width:100%;justify-content:space-between}.dh .text-button{border:0;background:transparent;color:var(--dh-blue);font-weight:700;min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:6px 0}
.dh .text-button:hover{text-decoration:underline}.dh .button-row,.dh .order-actions,.dh .modal-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.dh .welcome{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:28px 0 32px;padding:28px;border:1px solid var(--dh-card-border);border-radius:10px;box-shadow:var(--dh-shadow);background:white}
.dh .welcome>div:first-child{min-width:0}.dh .welcome h2{margin:12px 0;font-size:1.65em}.dh .welcome p{color:var(--dh-muted);max-width:65ch;margin-bottom:12px}
.dh .pill{font-size:.75em;font-weight:700;color:var(--dh-support);letter-spacing:.5px}.dh .supplier{display:flex;flex-direction:column;align-items:center;gap:12px;flex:0 0 180px;text-align:center;font-size:.82em;color:var(--dh-muted)}
.dh .supplier img{width:170px;height:auto}.dh .content-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}
.dh .content-grid>*{min-width:0}.dh #products{min-width:0}.dh .section-title{margin-bottom:20px;align-items:start}.dh .section-title h2 span,.dh .cart-title>span{font-size:.7em;background:var(--dh-blue-soft);color:var(--dh-blue);padding:4px 8px;border-radius:4px;white-space:nowrap}
.dh .muted,.dh .source-label,.dh .muted-text{font-size:.88em;color:var(--dh-muted)}.dh .toolbar{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap}
.dh .search{display:flex;gap:10px;align-items:center;border:1px solid var(--dh-input-border);padding:0 12px;border-radius:6px;flex:1 1 230px;min-width:0;background:white}
.dh .search input{border:0;background:transparent;min-width:0;width:100%;min-height:48px;color:var(--dh-text);font-size:1em}.dh .search:focus-within{border-color:var(--dh-blue);outline:2px solid var(--dh-blue);outline-offset:-1px}
.dh .search input:focus-visible{outline:none;box-shadow:none}
.dh .toolbar select{flex:1 1 150px;max-width:220px;min-width:0;font-size:.88em}
.dh .toolbar select option{font-size:1em}.dh .square{min-width:44px;min-height:48px;display:inline-grid;place-items:center;border:1px solid var(--dh-input-border);border-radius:6px;background:white;color:var(--dh-blue);padding:10px}
.dh .square[aria-pressed=true]{background:var(--dh-blue);color:white}.dh .category-tabs{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;margin:16px 0;padding:4px 4px 12px;min-width:0;max-width:100%}
.dh .category-tabs button{border:1px solid var(--dh-border);border-radius:6px;min-height:44px;padding:8px 12px;background:white;color:var(--dh-blue);font-size:.78em;text-align:left;flex:none;white-space:nowrap}
.dh #side-categories button.active{background:var(--dh-blue-soft);color:var(--dh-blue);font-weight:700}
.dh #side-categories .dh-icon{width:18px;height:18px;flex:none}
.dh .category-tabs button.active{background:var(--dh-blue-soft);border-color:var(--dh-blue);font-weight:700}
.dh .product-view-bar{display:flex;justify-content:flex-end;margin-top:16px}.dh .view-switch{display:flex;gap:4px;padding:4px;border:1px solid var(--dh-border);border-radius:6px}
.dh .view-switch button{display:flex;align-items:center;gap:8px;min-height:44px;border:0;border-radius:4px;background:white;color:var(--dh-blue);padding:8px 12px;font-size:.88em}
.dh .view-switch button[aria-pressed=true]{background:var(--dh-blue);color:white}
.dh .product-head,.dh .product-row{display:grid;grid-template-columns:minmax(0,1fr) 85px 134px;gap:12px;align-items:center}
.dh .product-head{font-size:.65em;color:var(--dh-muted);padding:0 16px 12px;font-weight:700;letter-spacing:.3px}
.dh .product-row{padding:16px;background:white;border:1px solid var(--dh-card-border);border-radius:10px;margin-bottom:12px;box-shadow:var(--dh-shadow)}
.dh .product-row.selected{border-color:var(--dh-blue);box-shadow:inset 4px 0 var(--dh-blue),var(--dh-shadow)}
.dh .product-info{display:flex;gap:12px;align-items:center;min-width:0}.dh .product-name{font-size:1em;font-weight:700;overflow-wrap:anywhere}.dh .product-meta{font-size:.82em;color:var(--dh-muted);margin-top:4px}
.dh .product-unit{font-size:.82em;color:var(--dh-muted);overflow-wrap:anywhere}.dh .product-symbol{display:grid;place-items:center;flex:none;width:44px;height:44px;background:var(--dh-blue-soft);color:var(--dh-blue);border-radius:6px}
.dh .product-symbol svg{width:26px;height:26px}.dh .small-action{font-size:.75em;margin:4px 0 0;color:var(--dh-blue)}
.dh .quantity{display:inline-flex;align-items:center;justify-self:end;border:1px solid var(--dh-input-border);border-radius:6px;overflow:hidden;background:white;max-width:100%}
.dh .quantity button{width:44px;min-width:44px;height:46px;border:0;background:var(--dh-support-bg);color:var(--dh-blue);font-size:1.2em;padding:0;display:grid;place-items:center}
.dh .quantity input{width:44px;min-width:0;height:46px;text-align:center;border:0;padding:0;background:white;color:var(--dh-text);font-size:1em;appearance:textfield}
.dh .quantity input::-webkit-inner-spin-button{appearance:none}.dh .quantity input:focus-visible{outline-offset:-3px}.dh .quantity button:hover:not(:disabled){background:var(--dh-blue-soft)}
.dh .list-footer{display:flex;justify-content:space-between;gap:12px;color:var(--dh-muted);font-size:.75em;flex-wrap:wrap}
.dh #product-list.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:20px}
.dh #product-list.gallery .product-row{grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto auto;gap:16px;margin:0;padding:24px;min-height:290px}
.dh #product-list.gallery .product-info{flex-direction:column;align-items:flex-start}.dh #product-list.gallery .product-symbol{width:64px;height:64px;border-radius:10px}
.dh #product-list.gallery .product-symbol svg{width:34px;height:34px}.dh #product-list.gallery .quantity{justify-self:start}.dh #product-list.gallery .empty-panel{grid-column:1/-1}
.dh .cart{position:sticky;top:24px;background:rgb(25 62 91 / 4%);box-shadow:none;border-color:rgb(25 62 91 / 16%)}.dh .cart-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.dh .cart-title h2{font-size:1.12em}
.dh .draft-label,.dh .cart-edit-hint,.dh .cart-foot{font-size:.82em;color:var(--dh-muted);margin:12px 0;line-height:1.6}.dh .cart-items{border-block:1px solid var(--dh-border);padding:16px 0;margin:16px 0;max-height:420px;overflow:auto}
.dh .cart-empty{color:var(--dh-muted);text-align:center;padding:20px 0}.dh .cart-empty>span{display:block;margin-bottom:12px;color:var(--dh-blue)}
.dh .cart-item{display:flex;background:rgb(255 255 255 / 70%);border-radius:6px;padding-inline:8px;gap:12px;justify-content:space-between;align-items:flex-start;padding:12px 8px;border-bottom:1px solid var(--dh-border);font-size:.88em}.dh .cart-item:last-child{border:0}
.dh .cart-item>div:first-child{min-width:0;overflow-wrap:anywhere}.dh .cart-item small{display:block;color:var(--dh-muted);font-size:.88em}.dh .cart-item-qty{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
.dh .cart-item .quantity button{width:44px;min-width:44px}.dh .cart-item .quantity input{width:44px}.dh .cart-remove{border:0;background:transparent;color:var(--dh-error);font-size:.88em;text-decoration:underline;min-height:44px}
.dh .cart-total{display:flex;justify-content:space-between;padding:20px 0;color:var(--dh-text);font-variant-numeric:tabular-nums}
.dh .field{display:block;font-size:.94em;font-weight:700;margin:0 0 24px;color:var(--dh-text)}
.dh .field input,.dh .field textarea,.dh .field select,.dh select,.dh .import-rows input{display:block;width:100%;min-height:48px;font:inherit;font-weight:400;padding:10px 12px;border:1px solid var(--dh-input-border);border-radius:6px;background:white;color:var(--dh-text);line-height:1.5}
.dh .field input,.dh .field textarea,.dh .field select{margin-top:8px}.dh .field textarea{resize:vertical;min-height:100px}.dh input::placeholder,.dh textarea::placeholder{color:var(--dh-muted);opacity:1}
.dh .form-grid,.dh .stat-grid,.dh .source-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dh .checkbox-label{display:flex;gap:12px;align-items:flex-start;min-height:44px;margin:20px 0;font-size:.94em}
.dh input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:var(--dh-blue);margin-top:4px}
.dh .source-card,.dh .order-card,.dh .user-card,.dh .stat-card,.dh .empty-panel{padding:24px;border:1px solid var(--dh-card-border);border-radius:10px;background:white;box-shadow:var(--dh-shadow);margin:20px 0;min-width:0}
.dh .source-card p,.dh .order-card p,.dh .round-summary,.dh .notice,.dh .form-message,.dh .user-card small,.dh .stat-card small{color:var(--dh-muted);font-size:.88em;line-height:1.6;overflow-wrap:anywhere}
.dh .source-card h2,.dh .order-card h2,.dh .stat-card h2{margin-bottom:12px}.dh .user-card{display:flex;align-items:center;justify-content:space-between;gap:16px}
.dh .user-card small,.dh .stat-card small{display:block;margin-top:8px}.dh .user-card.inactive{border-style:dashed}.dh .manage-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}
.dh .manage-tabs button.active{background:var(--dh-blue);color:white}.dh .manage-product-search{margin:20px 0}.dh .rounds-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.dh .state-badge{display:inline-flex;padding:6px 10px;border-radius:4px;font-size:.82em;background:var(--dh-success-bg);color:var(--dh-success)}
.dh .state-badge.warning{background:var(--dh-support-bg);color:var(--dh-support)}.dh .state-badge.bad{background:var(--dh-error-bg);color:var(--dh-error)}
.dh .alert,.dh .import-warning,.dh .approval-warn,.dh .review-meta{background:var(--dh-support-bg);color:var(--dh-support);border-left:4px solid var(--dh-support);padding:16px;border-radius:6px;margin:0 0 20px;font-size:.88em;overflow-wrap:anywhere}
.dh .alert{display:flex;gap:16px;justify-content:space-between;align-items:center}.dh .alert.green{color:var(--dh-success);border-color:var(--dh-success);background:var(--dh-success-bg)}
.dh .error{color:var(--dh-error);font-size:.94em}.dh .error:empty{display:none}.dh .error:not(:empty){background:var(--dh-error-bg);padding:12px;border-radius:6px}
.dh .import-rows{overflow:auto;max-height:50vh}.dh .import-rows table{min-width:580px}.dh table{width:100%;border-collapse:collapse;font-size:.88em}.dh td,.dh th{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--dh-border)}
.dh th{color:var(--dh-blue);font-weight:700}.dh .delete-import{color:var(--dh-error);min-width:44px;min-height:44px;border:0;background:transparent}
.dh .import-file-label{display:block}.dh .import-file-label input{display:block;max-width:100%;margin-top:12px}.dh .settings-form{max-width:900px}.dh .settings-form textarea{font:inherit}
.dh .email-preview{padding:20px;background:var(--dh-support-bg);border-radius:6px;margin-top:20px}.dh .email-preview summary{cursor:pointer;min-height:44px;color:var(--dh-blue);font-weight:700}
.dh .email-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:.88em}.dh .email-preview strong{overflow-wrap:anywhere}.dh code{font-size:.88em;overflow-wrap:anywhere}
.dh .settings-save{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 0}.dh .settings-save span{font-size:.88em;color:var(--dh-muted)}
.dh .code{font:1.4em monospace;letter-spacing:2px;background:var(--dh-support-bg);padding:20px;text-align:center;margin:20px 0;overflow-wrap:anywhere}
.dh .modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.dh .modal-header h2{padding-top:6px}.dh dialog::backdrop{background:rgb(14 31 45 / 45%)}
.dh .login-screen{display:grid;place-items:center;min-height:100dvh;background:var(--dh-support-bg);padding:32px 20px;border-top:8px solid var(--dh-blue)}
.dh .login-card{width:min(100%,540px);padding:32px;background:white;border:1px solid var(--dh-card-border);border-radius:10px;box-shadow:var(--dh-shadow)}
.dh .login-card .brand{margin-bottom:32px}.dh .login-card>p,.dh .login-card>small{color:var(--dh-muted);font-size:.88em}.dh .login-card h1{margin-bottom:16px}.dh .login-card .field{margin-top:24px}
.dh footer{border-top:1px solid var(--dh-border);display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:40px;padding:24px 0;font-size:.75em;color:var(--dh-muted)}
.dh #toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,150%);padding:16px 24px;max-width:calc(100% - 32px);border-radius:6px;background:var(--dh-blue);color:white;z-index:250;visibility:hidden}
.dh #toast.visible{transform:translate(-50%,0);visibility:visible}.dh .loading{opacity:.65;pointer-events:none}
@media(min-width:641px) and (max-width:1250px){.dh .sidebar{width:230px;padding:20px 16px}.dh .shell{margin-left:230px}.dh .brand{flex-wrap:wrap}.dh .content-grid{grid-template-columns:1fr}.dh .cart{position:static}.dh .section-title{flex-wrap:wrap}}
@media(max-width:900px){.dh .supplier{display:none}.dh .heading{align-items:flex-start;flex-wrap:wrap}.dh .header-right{gap:8px}.dh .form-grid,.dh .stat-grid{grid-template-columns:1fr}}
@media(max-width:640px){
 .dh .sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--dh-border);padding:20px 16px;overflow:visible;display:block}
 .dh .sidebar .brand{font-size:1.2em}.dh .sidebar .workspace,.dh .sidebar .nav-label,.dh #side-categories,.dh .sidebar-bottom{display:none}
 .dh .shell{margin-left:0}.dh .dh-header{min-height:80px;gap:8px;padding:16px}.dh #breadcrumb{font-size:.82em}.dh .header-right{font-size:.75em}.dh .divider{display:none}
 .dh.dh-app .sidebar .dh-nav{position:fixed;bottom:0;left:0;right:0;flex-direction:row;gap:4px;border-top:1px solid var(--dh-border);background:white;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 14px rgb(35 75 104 / 8%);z-index:110}
 .dh .sidebar .dh-nav-item{flex-direction:column;flex:1 1 0;justify-content:center;text-align:center;font-size:.82em;padding:8px 4px;gap:4px;min-height:60px}.dh nav button i{display:none}
 .dh .welcome{padding:20px;margin-block:24px}.dh .welcome h2{font-size:1.4em}.dh .section-title{flex-wrap:wrap;gap:8px}.dh .content-grid{grid-template-columns:1fr;gap:24px}.dh .cart{position:static}
 .dh .toolbar .search{flex-basis:100%}.dh .toolbar select{max-width:none;font-size:16px}.dh .product-head{display:none}.dh .product-row{grid-template-columns:minmax(0,1fr) 134px;gap:12px;padding:16px}
 .dh .product-info{grid-column:1/-1}.dh .product-unit{grid-column:1;align-self:center}.dh .quantity{grid-column:2}.dh .product-symbol{display:grid}.dh .product-view-bar{justify-content:flex-start}
 .dh #product-list.gallery{grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:20px}.dh #product-list.gallery .product-info,.dh #product-list.gallery .quantity,.dh #product-list.gallery .product-unit{grid-column:1}
 .dh #product-list.gallery .product-row{padding:20px}.dh .form-grid,.dh .source-grid,.dh .stat-grid{grid-template-columns:1fr;gap:0}.dh .user-card,.dh .rounds-top,.dh .settings-save{flex-wrap:wrap}
 .dh .source-card,.dh .order-card,.dh .user-card,.dh .stat-card{padding:20px}.dh .alert{flex-wrap:wrap}.dh .cart-item{flex-wrap:wrap}.dh .cart-item-qty{margin-left:auto}
 .dh .login-card{padding:24px}.dh .login-screen{padding:24px 16px}.dh.dh-app:has(#app[hidden]){padding-bottom:0}.dh #toast{bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}
@media print{.dh .sidebar,.dh header,.dh footer,.dh .toolbar,.dh .manage-tabs,.dh #toast{display:none}.dh .shell{margin:0}.dh .cart{position:static}.dh .source-card,.dh .product-row,.dh .order-card{box-shadow:none}.dh .content-grid{display:block}}

.dh .cart-nav{display:none}
@media(max-width:640px){.dh .cart-nav{display:flex}.dh .category-tabs{display:none}.dh #bestellijst{scroll-margin-top:16px}}
