.uls-public{max-width:1180px;margin:28px auto;padding:0 18px;box-sizing:border-box;font-family:inherit;color:#172033}.uls-public *{box-sizing:border-box}

/* Catalogus 3.0 */
.uls-catalog-page{display:grid;gap:22px}.uls-catalog-hero{border-radius:20px;padding:30px 32px;background:linear-gradient(135deg,#f4f7ff 0%,#eef4ff 54%,#f9fbff 100%);border:1px solid #dce5f6}.uls-catalog-hero h1{font-size:clamp(30px,4vw,46px);line-height:1.05;margin:5px 0 10px;color:#121a31}.uls-catalog-hero p{max-width:720px;margin:0;color:#526078;font-size:17px}.uls-eyebrow{display:inline-block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#315fc8}
.uls-filter-modern{display:grid;grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(145px,.8fr)) auto;gap:12px;align-items:end;padding:18px;border:1px solid #dfe5ee;background:#fff;border-radius:16px;box-shadow:0 4px 16px rgba(20,34,60,.05)}.uls-filter-modern label{display:grid;gap:6px}.uls-filter-modern label>span{font-size:12px;font-weight:750;color:#59677d}.uls-filter-modern input,.uls-filter-modern select{width:100%;min-height:44px;padding:9px 12px;border:1px solid #cfd7e3;border-radius:10px;background:#fff;color:#172033;font:inherit}.uls-filter-modern input:focus,.uls-filter-modern select:focus{outline:2px solid #b9ccff;outline-offset:1px;border-color:#5f80dd}.uls-filter-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.uls-filter-actions>a{font-size:13px;color:#526078;text-decoration:none}.uls-filter-actions>a:hover{text-decoration:underline}
.uls-catalog-list{display:grid;gap:16px}.uls-catalog-card{display:grid;grid-template-columns:230px minmax(0,1fr) 150px;gap:0;overflow:hidden;border:1px solid #dfe5ee;background:#fff;border-radius:18px;box-shadow:0 6px 22px rgba(24,38,67,.055);transition:transform .15s ease,box-shadow .15s ease}.uls-catalog-card:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(24,38,67,.09)}
.uls-catalog-media{min-height:205px;background:#f2f5f9;overflow:hidden}.uls-catalog-image{width:100%;height:100%;min-height:205px;object-fit:cover;display:block}.uls-catalog-placeholder{height:100%;min-height:205px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:22px;text-align:center;color:#65748b;background:linear-gradient(145deg,#f5f7fa,#e9eef5)}.uls-catalog-placeholder svg{width:66px;height:66px;color:#93a1b5}.uls-catalog-placeholder span{font-size:13px;font-weight:700}
.uls-catalog-content{padding:24px 26px;min-width:0}.uls-catalog-topline{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.uls-category-label{font-size:12px;font-weight:800;letter-spacing:.035em;text-transform:uppercase;color:#4866a7}.uls-availability{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:750;border-radius:999px;padding:6px 10px}.uls-availability::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.uls-availability-available{background:#edf8f0;color:#287446}.uls-availability-partial{background:#fff6dd;color:#8b6500}.uls-availability-none{background:#fceced;color:#a23b46}.uls-catalog-content h2{font-size:24px;line-height:1.2;margin:11px 0 8px;color:#151d30}.uls-catalog-description{margin:0 0 18px;line-height:1.6;color:#566277;max-width:720px}.uls-item-meta{display:flex;gap:8px;flex-wrap:wrap}.uls-item-meta span{display:flex;gap:6px;align-items:center;padding:7px 10px;border-radius:9px;background:#f5f7fa;color:#5a6678;font-size:12px}.uls-item-meta strong{color:#2d384a}.uls-catalog-action{border-left:1px solid #e5eaf1;padding:22px 20px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:16px;background:#fbfcfe}.uls-stock-number{text-align:center}.uls-stock-number strong{display:block;font-size:34px;line-height:1;font-weight:800;color:#172033}.uls-stock-number span{display:block;margin-top:5px;font-size:12px;color:#657187}.uls-btn,.uls-filter button{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:10px;background:#315fc8;color:#fff!important;text-decoration:none;padding:11px 17px;min-height:44px;font-weight:750;cursor:pointer;transition:background .15s ease,transform .15s ease}.uls-btn:hover,.uls-filter button:hover{background:#244cae;color:#fff!important}.uls-btn-disabled{background:#aab4c5;pointer-events:none}.uls-empty{display:grid;gap:5px;text-align:center;padding:40px 20px;border:1px dashed #cdd5e1;border-radius:16px;background:#fafbfd;color:#677389}.uls-empty strong{font-size:18px;color:#243044}

/* Reserveren */
.uls-reserve-form{max-width:700px;display:grid;gap:14px;padding:22px;border:1px solid #dfe5ee;border-radius:16px;background:#fff}.uls-reserve-form label{display:grid;gap:5px}.uls-reserve-form label span{font-weight:650}.uls-reserve-form input,.uls-reserve-form select{padding:11px;border:1px solid #c9d2df;border-radius:9px;font:inherit}.uls-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.uls-success,.uls-error{padding:14px;border-radius:9px;margin:12px 0}.uls-success{background:#e8f7ec}.uls-error{background:#fde8e8}

/* Planning */
.uls-plan-wrap{overflow-x:auto}.uls-plan{min-width:950px;border:1px solid #ddd;border-radius:10px;overflow:hidden}.uls-plan-row{display:grid;grid-template-columns:220px repeat(14,minmax(45px,1fr));border-bottom:1px solid #eee}.uls-plan-row:last-child{border-bottom:0}.uls-plan-name{padding:8px 10px;display:flex;flex-direction:column;background:#fafafa;position:sticky;left:0;z-index:2}.uls-plan-name span{font-size:12px;color:#666}.uls-day{padding:6px 2px;text-align:center;background:#fafafa;border-left:1px solid #eee;font-size:11px}.uls-day span{display:block}.uls-slot{position:relative;min-height:34px;border-left:1px solid #eee}.uls-slot-available{background:#edf8ef}.uls-slot-reserved{background:#fff4d6}.uls-slot-loaned{background:#fde4e4}.uls-slot-count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.uls-legend{display:flex;gap:18px;margin-top:10px}.uls-legend span{display:flex;align-items:center;gap:6px}.uls-legend i{width:14px;height:14px;border-radius:3px;display:inline-block}.uls-legend .available{background:#edf8ef}.uls-legend .reserved{background:#fff4d6}.uls-legend .loaned{background:#fde4e4}.uls-code-public{font-family:monospace;font-weight:700}

@media(max-width:980px){.uls-filter-modern{grid-template-columns:1fr 1fr}.uls-search-field{grid-column:1/-1}.uls-filter-actions{grid-column:1/-1}.uls-catalog-card{grid-template-columns:190px minmax(0,1fr)}.uls-catalog-action{grid-column:1/-1;border-left:0;border-top:1px solid #e5eaf1;flex-direction:row;align-items:center;justify-content:flex-end}.uls-stock-number{text-align:left;margin-right:auto}.uls-stock-number strong{display:inline;font-size:24px;margin-right:6px}}
@media(max-width:680px){.uls-public{padding:0 12px;margin:16px auto}.uls-catalog-hero{padding:24px 20px;border-radius:16px}.uls-filter-modern{grid-template-columns:1fr}.uls-search-field,.uls-filter-actions{grid-column:auto}.uls-filter-actions{align-items:stretch;flex-direction:column}.uls-catalog-card{grid-template-columns:1fr}.uls-catalog-media{min-height:210px;max-height:280px}.uls-catalog-image{min-height:210px;max-height:280px}.uls-catalog-content{padding:20px}.uls-catalog-content h2{font-size:21px}.uls-catalog-action{grid-column:auto;flex-direction:row}.uls-two{grid-template-columns:1fr}}

/* v0.3.1: label AI-generated representative catalog imagery */
.uls-catalog-media{position:relative}
.uls-ai-badge{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);color:#222;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.12)}

/* v0.3.3: restored availability calendar while keeping horizontal catalog cards */
.uls-catalog-calendar{grid-column:1/-1;border-top:1px solid #e5eaf1;padding:14px 18px 16px;background:#fff}.uls-calendar-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.uls-calendar-head strong{font-size:14px;color:#243044}.uls-calendar-head span{font-size:12px;color:#6a7689}.uls-mini-calendar{display:grid;grid-template-columns:repeat(14,minmax(42px,1fr));gap:5px;overflow-x:auto}.uls-mini-day{position:relative;min-width:42px;min-height:62px;border-radius:9px;padding:6px 4px;text-align:center;border:1px solid transparent}.uls-mini-day span{display:block;font-size:9px;text-transform:uppercase;line-height:1.1}.uls-mini-day strong{display:block;font-size:16px;line-height:1.15;margin-top:2px}.uls-mini-day em{display:inline-flex;align-items:center;justify-content:center;margin-top:4px;width:20px;height:20px;border-radius:999px;background:rgba(255,255,255,.72);font-size:10px;font-style:normal;font-weight:800}.uls-mini-day-available{background:#edf8ef;color:#287446;border-color:#d2ead8}.uls-mini-day-partial{background:#fff4d6;color:#8b6500;border-color:#efdfae}.uls-mini-day-none{background:#fde4e4;color:#a23b46;border-color:#efc8cc}.uls-reserve-page{max-width:900px}.uls-selected-item{padding:18px 22px;border:1px solid #dfe5ee;border-radius:16px;background:#fbfcff;margin-bottom:14px}.uls-selected-item h3{margin:4px 0 4px;font-size:24px}.uls-selected-item p{margin:0;color:#667287}.uls-reserve-calendar{padding:18px;border:1px solid #dfe5ee;border-radius:16px;background:#fff;margin-bottom:16px}.uls-mini-calendar-large{grid-template-columns:repeat(14,minmax(48px,1fr))}.uls-calendar-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;color:#657187}.uls-calendar-legend span{display:inline-flex;align-items:center;gap:6px}.uls-calendar-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}.uls-calendar-legend .available{background:#edf8ef;border:1px solid #d2ead8}.uls-calendar-legend .partial{background:#fff4d6;border:1px solid #efdfae}.uls-calendar-legend .none{background:#fde4e4;border:1px solid #efc8cc}.uls-reserve-form small{font-size:11px;color:#697589}.uls-item-rules{display:grid;gap:10px}.uls-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;margin-top:8px}.uls-rule-grid label{display:grid;gap:5px}.uls-rule-grid span{font-weight:600}.uls-rule-grid input{width:100%;max-width:280px}
@media(max-width:980px){.uls-mini-calendar{grid-template-columns:repeat(14,minmax(45px,1fr))}.uls-catalog-calendar{overflow:hidden}}
@media(max-width:680px){.uls-calendar-head{align-items:flex-start;flex-direction:column}.uls-mini-calendar{grid-template-columns:repeat(14,48px);padding-bottom:4px}.uls-catalog-calendar{padding:12px}.uls-rule-grid{grid-template-columns:1fr}}

/* v0.3.6 — ServicePunt-achtige kleurlaag (blijft bovenop alle functionaliteit) */
.uls-public{
  --uls-sp-blue:#4056e8;
  --uls-sp-blue-dark:#26357c;
  --uls-sp-blue-soft:#eef1ff;
  --uls-sp-red:#c72632;
  --uls-sp-red-dark:#a91f29;
  --uls-sp-ink:#202638;
  --uls-sp-muted:#667085;
  --uls-sp-line:#e1e5ee;
  --uls-sp-surface:#ffffff;
  --uls-sp-bg:#f5f6f8;
  color:var(--uls-sp-ink);
}
.uls-catalog-page{gap:20px}
.uls-catalog-hero{
  position:relative;overflow:hidden;border:0;border-radius:18px;
  background:linear-gradient(120deg,var(--uls-sp-blue-dark) 0%,var(--uls-sp-blue) 72%,#6174f5 100%);
  box-shadow:0 10px 30px rgba(38,53,124,.18);
  color:#fff;
}
.uls-catalog-hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--uls-sp-red)}
.uls-catalog-hero:after{content:"";position:absolute;right:-80px;top:-110px;width:270px;height:270px;border-radius:50%;background:rgba(255,255,255,.08)}
.uls-catalog-hero h1{color:#fff;position:relative;z-index:1}.uls-catalog-hero p{color:rgba(255,255,255,.9);position:relative;z-index:1}
.uls-catalog-hero .uls-eyebrow{position:relative;z-index:1;color:#fff;background:rgba(255,255,255,.14);border-radius:999px;padding:5px 10px;letter-spacing:.08em}
.uls-filter-modern{border:1px solid var(--uls-sp-line);border-top:4px solid var(--uls-sp-blue);box-shadow:0 5px 18px rgba(30,42,80,.06)}
.uls-filter-modern input:focus,.uls-filter-modern select:focus{outline:2px solid rgba(64,86,232,.25);border-color:var(--uls-sp-blue)}
.uls-catalog-card{border:1px solid var(--uls-sp-line);border-left:5px solid var(--uls-sp-blue);box-shadow:0 5px 18px rgba(30,42,80,.06)}
.uls-catalog-card:hover{border-left-color:var(--uls-sp-red);box-shadow:0 10px 28px rgba(30,42,80,.11)}
.uls-catalog-media{background:linear-gradient(145deg,#f4f5f8,#e9edf5)}
.uls-category-label{color:var(--uls-sp-blue);background:var(--uls-sp-blue-soft);border-radius:999px;padding:5px 9px}
.uls-catalog-content h2,.uls-stock-number strong,.uls-calendar-head strong,.uls-selected-item h3{color:var(--uls-sp-ink)}
.uls-item-meta span{background:#f2f4f8;border:1px solid #e8ebf1}
.uls-catalog-action{background:#fafbff;border-left-color:var(--uls-sp-line)}
.uls-btn,.uls-filter button{background:var(--uls-sp-red);box-shadow:0 3px 8px rgba(199,38,50,.18)}
.uls-btn:hover,.uls-filter button:hover{background:var(--uls-sp-red-dark);transform:translateY(-1px)}
.uls-btn-disabled{background:#aeb4c0;box-shadow:none}
.uls-catalog-calendar{background:#fbfcff;border-top:1px solid var(--uls-sp-line)}
.uls-calendar-head{padding-left:10px;border-left:4px solid var(--uls-sp-blue)}
.uls-selected-item{border:1px solid #dce1f4;border-left:6px solid var(--uls-sp-red);background:linear-gradient(90deg,#f6f7ff,#fff)}
.uls-reserve-calendar{border-top:4px solid var(--uls-sp-blue);box-shadow:0 5px 18px rgba(30,42,80,.05)}
.uls-reserve-form{border:1px solid var(--uls-sp-line);border-top:5px solid var(--uls-sp-blue);box-shadow:0 6px 20px rgba(30,42,80,.06)}
.uls-reserve-form input:focus,.uls-reserve-form select:focus{outline:2px solid rgba(64,86,232,.22);border-color:var(--uls-sp-blue)}
.uls-success{border-left:5px solid #2d8b57}.uls-error{border-left:5px solid var(--uls-sp-red)}
.uls-plan{border-color:var(--uls-sp-line);box-shadow:0 4px 14px rgba(30,42,80,.05)}
.uls-plan-name{background:var(--uls-sp-blue-dark);color:#fff}.uls-plan-name span{color:rgba(255,255,255,.78)}
.uls-day{background:var(--uls-sp-blue-soft);color:var(--uls-sp-blue-dark);font-weight:700}

/* v0.3.7 — sluitingsperioden zichtbaar in reserveringsflow */
.uls-closure-panel{margin:0 0 16px;padding:14px 18px;border:1px solid #f0d4a6;border-left:5px solid #d99a22;border-radius:12px;background:#fff8e9;color:#5a471f}.uls-closure-panel>strong{display:block;margin-bottom:6px;color:#3e3219}.uls-closure-panel ul{margin:0;padding-left:20px}.uls-closure-panel li{margin:4px 0}.uls-mini-day-closed{background:#eef0f4!important;color:#737b89!important;border-color:#d9dde5!important;opacity:.82}.uls-mini-day-closed em{background:#fff;color:#7a818c}.uls-mini-day-pickup-closed{box-shadow:inset 0 -4px 0 #d99a22}.uls-mini-day-pickup-closed:after{content:"";position:absolute;right:4px;top:4px;width:6px;height:6px;border-radius:50%;background:#d99a22}

/* v0.3.8 multi-item reservations / sub-reservations */
.uls-addon-section{margin:24px 0;padding:22px;border:1px solid #d9e2f2;border-left:5px solid #3f5bf6;border-radius:18px;background:#f8faff}
.uls-addon-heading h3{margin:4px 0 6px}.uls-addon-heading p{margin:0;color:#667085}
.uls-addon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:16px}
.uls-addon-card{display:grid;grid-template-columns:64px 1fr 88px;gap:12px;align-items:center;background:#fff;border:1px solid #e4e7ec;border-radius:14px;padding:12px}
.uls-addon-image{width:64px;height:64px;object-fit:cover;border-radius:10px}.uls-addon-info{display:flex;flex-direction:column;gap:4px}.uls-addon-info span{font-size:.9rem;color:#667085}.uls-addon-card label{margin:0}.uls-addon-card label span{font-size:.8rem;color:#667085}.uls-addon-card input[type=number]{width:100%;padding:8px}
@media(max-width:700px){.uls-addon-card{grid-template-columns:56px 1fr}.uls-addon-card label{grid-column:1/-1}.uls-addon-image{width:56px;height:56px}}

/* v0.3.9: sluitingsperioden duidelijk zichtbaar in de kalender */
.uls-mini-day-vacation{background:#fde7eb!important;color:#a7283b!important;border-color:#efb8c2!important;box-shadow:inset 0 0 0 1px rgba(167,40,59,.04)}
.uls-mini-day-vacation em{width:auto;min-width:30px;padding:0 5px;background:#fff;color:#a7283b;font-size:8px;letter-spacing:.04em}
.uls-mini-day-pickup-closed{background:#fff3d6!important;color:#815e00!important;border-color:#efd99f!important;box-shadow:inset 0 -4px 0 #d99a22!important}
.uls-mini-day-pickup-closed em{width:auto;min-width:30px;padding:0 5px;background:#fff;color:#815e00;font-size:8px;letter-spacing:.03em}
.uls-calendar-legend .closed{background:#eef0f4;border:1px solid #d9dde5}.uls-calendar-legend .vacation{background:#fde7eb;border:1px solid #efb8c2}.uls-calendar-legend .pickup{background:#fff3d6;border:1px solid #efd99f}


/* v0.4.0 extra items in one reservation */
.uls-extra-lines{display:grid;gap:10px}.uls-extra-line{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:10px}.uls-extra-line select,.uls-extra-line input{width:100%}.uls-extra-section{margin-top:22px}.uls-reserve-form .uls-extra-line select,.uls-reserve-form .uls-extra-line input{min-height:48px}
@media(max-width:640px){.uls-extra-line{grid-template-columns:1fr}}
