/* =====================================================
   WASHABLES DASHBOARD UPGRADE — Unified Stylesheet
   Extends and integrates with CWBS / washables.php styles
   ===================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
  --wdu-primary:     #6366f1;
  --wdu-primary-dk:  #4f46e5;
  --wdu-primary-lt:  rgba(99,102,241,0.1);
  --wdu-secondary:   #ec4899;
  --wdu-grad:        linear-gradient(135deg,#6366f1 0%,#8b5cf6 50%,#ec4899 100%);
  --wdu-success:     #10b981;
  --wdu-warning:     #f59e0b;
  --wdu-danger:      #ef4444;
  --wdu-info:        #3b82f6;
  --wdu-text:        #111827;
  --wdu-muted:       #6b7280;
  --wdu-border:      #e5e7eb;
  --wdu-bg:          #f9fafb;
  --wdu-white:       #ffffff;
  --wdu-r:           12px;
  --wdu-r-lg:        16px;
  --wdu-shadow:      0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);
  --wdu-shadow-lg:   0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);
  --wdu-transition:  all .2s cubic-bezier(.4,0,.2,1);
}

/* ── Page wrapper ── */
.wdu-page {
  font-family: 'Inter', sans-serif;
  color: var(--wdu-text);
  max-width: 1000px;
  margin: 0 auto;
}

/* ── Header ── */
.wdu-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.wdu-page-title {
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--wdu-text);
}
.wdu-greeting {
  font-size: 22px;
  font-weight: 700;
  color: var(--wdu-text);
  margin-bottom: 4px;
}
.wdu-subtitle { font-size: 14px; color: var(--wdu-muted); }

/* ── Cards ── */
.wdu-card {
  background: var(--wdu-white);
  border: 1px solid var(--wdu-border);
  border-radius: var(--wdu-r-lg);
  padding: 24px;
  margin-bottom: 16px;
  box-shadow: var(--wdu-shadow);
}
.wdu-card-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.wdu-card-title { font-size:15px; font-weight:600; color:var(--wdu-text); }

/* ── Metrics ── */
.wdu-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.wdu-metrics-6 { grid-template-columns: repeat(6,1fr); }
@media (max-width:900px) { .wdu-metrics-grid { grid-template-columns:repeat(2,1fr); } }
.wdu-metric {
  background: var(--wdu-white);
  border: 1px solid var(--wdu-border);
  border-radius: var(--wdu-r);
  padding: 18px 16px;
  text-align: center;
}
.wdu-metric-val { font-size:30px; font-weight:700; margin-bottom:4px; }
.wdu-metric-val span { font-size:14px; font-weight:400; color:var(--wdu-muted); }
.wdu-metric-lbl { font-size:12px; color:var(--wdu-muted); text-transform:uppercase; letter-spacing:.04em; }

/* ── Colours ── */
.wdu-text-primary { color: var(--wdu-primary); }
.wdu-text-success { color: var(--wdu-success); }
.wdu-text-warning { color: var(--wdu-warning); }
.wdu-text-danger  { color: var(--wdu-danger); }

/* ── Buttons ── */
.wdu-btn-primary {
  display: inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 12px 24px; background:var(--wdu-primary); color:#fff;
  border: none; border-radius: 100px;
  font-size:14px; font-weight:600; cursor:pointer; text-decoration:none;
  transition: var(--wdu-transition);
}
.wdu-btn-primary:hover { background:var(--wdu-primary-dk); transform:translateY(-1px); color:#fff; }
.wdu-btn-ghost {
  display: inline-flex; align-items:center; gap:8px;
  padding: 10px 20px; background:transparent; color:var(--wdu-muted);
  border: 1px solid var(--wdu-border); border-radius: 100px;
  font-size:14px; font-weight:500; cursor:pointer; text-decoration:none;
  transition: var(--wdu-transition);
}
.wdu-btn-ghost:hover { border-color:var(--wdu-primary); color:var(--wdu-primary); }
.wdu-btn-danger {
  display:inline-flex; align-items:center; gap:6px;
  padding:10px 18px; background:rgba(239,68,68,.1); color:var(--wdu-danger);
  border:1px solid rgba(239,68,68,.3); border-radius:100px;
  font-size:14px; font-weight:600; cursor:pointer; text-decoration:none;
  transition: var(--wdu-transition);
}
.wdu-btn-danger:hover { background:var(--wdu-danger); color:#fff; }
.wdu-btn-sm { padding:7px 14px !important; font-size:12px !important; }
.wdu-btn-danger-text { background:transparent; border:none; color:var(--wdu-danger); cursor:pointer; font-size:13px; }

/* ── Plan banner ── */
.wdu-plan-banner {
  border: 2px solid var(--wdu-primary) !important;
  background: linear-gradient(135deg, rgba(99,102,241,.04) 0%, rgba(236,72,153,.04) 100%) !important;
}
.wdu-plan-banner-info { display:flex; align-items:center; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.wdu-plan-icon { font-size:28px; }
.wdu-plan-name { font-size:18px; font-weight:700; }
.wdu-plan-sub  { font-size:13px; color:var(--wdu-muted); }
.wdu-plan-bar-labels { display:flex; justify-content:space-between; font-size:13px; color:var(--wdu-muted); margin-bottom:6px; }
.wdu-bar-track { height:10px; background:var(--wdu-border); border-radius:100px; overflow:hidden; }
.wdu-bar-fill  { height:100%; background:var(--wdu-grad); border-radius:100px; transition:width .6s ease; }

/* No plan alert */
.wdu-no-plan-alert {
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(236,72,153,.1));
  border:1px solid rgba(245,158,11,.3);
}
.wdu-no-plan-icon { font-size:24px; }
.wdu-no-plan-text { flex:1; font-size:14px; color:#92400e; }

/* ── Action cards ── */
.wdu-actions-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
@media (max-width:700px) { .wdu-actions-grid { grid-template-columns:repeat(2,1fr); } }
.wdu-action-card {
  background:var(--wdu-bg); border:2px solid var(--wdu-border); border-radius:var(--wdu-r-lg);
  padding:20px 16px; text-decoration:none; display:flex; flex-direction:column; gap:10px;
  transition:var(--wdu-transition);
}
.wdu-action-card:hover { border-color:var(--wdu-primary); box-shadow:var(--wdu-shadow-lg); }
.wdu-action-primary { background:var(--wdu-grad)!important; border-color:transparent!important; color:#fff!important; }
.wdu-action-icon  { font-size:24px; }
.wdu-action-name  { font-size:15px; font-weight:600; color:var(--wdu-text); }
.wdu-action-primary .wdu-action-name { color:#fff; }
.wdu-action-sub   { font-size:13px; color:var(--wdu-muted); }
.wdu-action-primary .wdu-action-sub  { color:rgba(255,255,255,.85); }

/* ── Badges ── */
.wdu-badge { display:inline-flex; align-items:center; padding:4px 10px; border-radius:100px; font-size:11px; font-weight:600; }
.wdu-badge-green   { background:rgba(16,185,129,.1); color:var(--wdu-success); }
.wdu-badge-blue    { background:rgba(59,130,246,.1);  color:var(--wdu-info); }
.wdu-badge-warning { background:rgba(245,158,11,.1);  color:var(--wdu-warning); }
.wdu-badge-red     { background:rgba(239,68,68,.1);   color:var(--wdu-danger); }
.wdu-badge-gray    { background:var(--wdu-bg);         color:var(--wdu-muted); }
.wdu-badge-primary { background:rgba(99,102,241,.1);  color:var(--wdu-primary); }

/* ── Order list ── */
.wdu-order-list { display:flex; flex-direction:column; gap:10px; }
.wdu-order-row { display:flex; align-items:center; gap:12px; padding:14px; background:var(--wdu-bg); border:1px solid var(--wdu-border); border-radius:var(--wdu-r); }
.wdu-order-icon { font-size:20px; width:36px; text-align:center; }
.wdu-order-info { flex:1; }
.wdu-order-num  { font-weight:600; font-size:14px; }
.wdu-order-date { font-size:12px; color:var(--wdu-muted); }

/* ── Forms ── */
.wdu-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:700px) { .wdu-form-grid { grid-template-columns:1fr; } }
.wdu-form-group { margin-bottom:14px; }
.wdu-form-group label { display:block; font-size:13px; font-weight:500; margin-bottom:6px; color:var(--wdu-text); }
.wdu-input, .wdu-form-group select, .wdu-form-group textarea {
  width:100%; padding:11px 14px;
  background:var(--wdu-bg); border:1px solid var(--wdu-border); border-radius:var(--wdu-r);
  font-size:14px; color:var(--wdu-text); font-family:'Inter',sans-serif;
  transition:var(--wdu-transition); box-sizing:border-box;
}
.wdu-input:focus { outline:none; border-color:var(--wdu-primary); background:var(--wdu-white); box-shadow:0 0 0 3px rgba(99,102,241,.1); }
.wdu-form-divider { text-align:center; color:var(--wdu-muted); font-size:13px; margin:8px 0; }
.wdu-form-hint { font-size:12px; color:var(--wdu-muted); margin-top:4px; }
.wdu-form-actions { margin-top:24px; display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.wdu-form-label { font-size:13px; font-weight:500; color:var(--wdu-text); margin-bottom:6px; display:block; }
.wdu-req { color:var(--wdu-danger); }
.wdu-form-row-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
@media (max-width:800px) { .wdu-form-row-3 { grid-template-columns:1fr; } }

/* ── Service selector ── */
.wdu-service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.wdu-service-option input { display:none; }
.wdu-svc-card { border:2px solid var(--wdu-border); border-radius:var(--wdu-r); padding:14px; cursor:pointer; transition:var(--wdu-transition); }
.wdu-svc-card:hover { border-color:var(--wdu-primary); }
.wdu-service-option input:checked + .wdu-svc-card { border-color:var(--wdu-primary); background:var(--wdu-primary-lt); }
.wdu-svc-name  { font-weight:600; font-size:14px; margin-bottom:4px; }
.wdu-svc-price { font-size:15px; font-weight:700; color:var(--wdu-primary); }

/* ── Add-ons ── */
.wdu-addons-list { display:flex; flex-direction:column; gap:8px; }
.wdu-addon-row { display:flex; align-items:center; gap:14px; padding:12px; background:var(--wdu-bg); border-radius:var(--wdu-r); }
.wdu-addon-name  { flex:1; font-size:14px; font-weight:500; }
.wdu-addon-price { font-size:13px; color:var(--wdu-primary); font-weight:600; }

/* ── Tracking steps ── */
.wdu-tracking-layout { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:700px) { .wdu-tracking-layout { grid-template-columns:1fr; } }
.wdu-tracking-steps { display:flex; flex-direction:column; gap:0; }
.wdu-step { display:flex; gap:14px; padding:12px 0; border-bottom:1px solid var(--wdu-border); }
.wdu-step:last-child { border-bottom:none; }
.wdu-step-dot { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0; border:2px solid var(--wdu-border); background:var(--wdu-bg); color:var(--wdu-muted); margin-top:2px; }
.wdu-step-done .wdu-step-dot { background:var(--wdu-success); border-color:var(--wdu-success); color:#fff; }
.wdu-step-current .wdu-step-dot { background:var(--wdu-primary); border-color:var(--wdu-primary); color:#fff; animation:wdu-pulse 2s infinite; }
@keyframes wdu-pulse { 0%,100%{box-shadow:0 0 0 0 rgba(99,102,241,.4)} 50%{box-shadow:0 0 0 6px rgba(99,102,241,0)} }
.wdu-step-content { flex:1; }
.wdu-step-label { font-size:14px; font-weight:500; }
.wdu-step-done .wdu-step-label { color:var(--wdu-success); }
.wdu-step-current .wdu-step-label { color:var(--wdu-primary); font-weight:600; }
.wdu-step-pending .wdu-step-label { color:var(--wdu-muted); }
.wdu-step-time  { font-size:12px; color:var(--wdu-muted); margin-top:2px; }
.wdu-step-note  { font-size:12px; color:var(--wdu-muted); font-style:italic; }
.wdu-step-badge { display:inline-block; margin-top:4px; padding:2px 8px; background:var(--wdu-primary-lt); color:var(--wdu-primary); border-radius:100px; font-size:11px; font-weight:600; }

/* ── Detail rows ── */
.wdu-detail-rows { display:flex; flex-direction:column; gap:0; }
.wdu-detail-row { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--wdu-border); font-size:14px; }
.wdu-detail-row:last-child { border-bottom:none; }
.wdu-detail-row span:first-child { color:var(--wdu-muted); }
.wdu-detail-row span:last-child { text-align:right; }

/* ── Log ── */
.wdu-log-list { display:flex; flex-direction:column; gap:10px; }
.wdu-log-entry { display:flex; gap:12px; }
.wdu-log-dot { width:8px; height:8px; border-radius:50%; background:var(--wdu-primary); flex-shrink:0; margin-top:6px; }
.wdu-log-status { font-size:14px; font-weight:500; }
.wdu-log-time   { font-size:12px; color:var(--wdu-muted); }
.wdu-log-note   { font-size:12px; color:var(--wdu-muted); font-style:italic; }

/* ── Membership ── */
.wdu-plan-active-card { border:2px solid var(--wdu-primary) !important; }
.wdu-plan-active-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:20px; }
.wdu-plan-active-name { font-size:22px; font-weight:700; }
.wdu-plan-active-sub  { font-size:14px; color:var(--wdu-muted); }
.wdu-plan-stats-grid  { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
@media (max-width:700px) { .wdu-plan-stats-grid { grid-template-columns:repeat(2,1fr); } }
.wdu-plan-stat { background:var(--wdu-bg); border-radius:var(--wdu-r); padding:16px; text-align:center; }
.wdu-plan-stat-val { font-size:26px; font-weight:700; margin-bottom:4px; }
.wdu-plan-stat-lbl { font-size:12px; color:var(--wdu-muted); }
.wdu-plan-progress { margin-bottom:20px; }
.wdu-progress-labels { display:flex; justify-content:space-between; font-size:13px; color:var(--wdu-muted); margin-bottom:6px; }
.wdu-plan-actions { display:flex; gap:12px; flex-wrap:wrap; }
.wdu-plan-cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:24px; }
@media (max-width:800px) { .wdu-plan-cards-grid { grid-template-columns:1fr; } }
.wdu-plan-card { background:var(--wdu-white); border:2px solid var(--wdu-border); border-radius:var(--wdu-r-lg); padding:28px 22px; position:relative; display:flex; flex-direction:column; }
.wdu-plan-card-popular { border-color:var(--wdu-primary); }
.wdu-plan-badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--wdu-grad); color:#fff; padding:6px 16px; border-radius:100px; font-size:11px; font-weight:700; text-transform:uppercase; white-space:nowrap; }
.wdu-plan-card-name  { font-size:18px; font-weight:700; margin-bottom:12px; }
.wdu-plan-card-price { font-size:34px; font-weight:800; color:var(--wdu-primary); margin-bottom:4px; }
.wdu-plan-card-price span { font-size:14px; font-weight:400; color:var(--wdu-muted); }
.wdu-plan-card-features { list-style:none; padding:0; margin:0 0 24px; flex:1; }
.wdu-plan-card-features li { padding:8px 0; font-size:14px; color:var(--wdu-muted); border-bottom:1px solid var(--wdu-border); }
.wdu-plan-card-features li:last-child { border-bottom:none; }
.wdu-plan-card-btn { display:block; text-align:center; padding:13px 20px; border-radius:100px; font-weight:600; font-size:14px; cursor:pointer; text-decoration:none; border:2px solid var(--wdu-border); color:var(--wdu-primary); background:var(--wdu-bg); transition:var(--wdu-transition); }
.wdu-plan-card-btn.wdu-btn-primary { border-color:var(--wdu-primary); background:var(--wdu-primary); color:#fff; border-radius:100px; }
.wdu-section-title { font-size:18px; font-weight:700; margin:24px 0 14px; }

/* ── Locations ── */
.wdu-locations-list { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.wdu-location-card { background:var(--wdu-bg); border:1px solid var(--wdu-border); border-radius:var(--wdu-r); padding:16px 20px; display:flex; align-items:center; gap:14px; transition:var(--wdu-transition); }
.wdu-location-card:hover { border-color:var(--wdu-primary); }
.wdu-location-default { border-color:var(--wdu-primary)!important; background:var(--wdu-primary-lt)!important; }
.wdu-location-icon { font-size:22px; width:36px; text-align:center; }
.wdu-location-info { flex:1; }
.wdu-location-label { font-size:15px; font-weight:600; display:flex; align-items:center; gap:8px; }
.wdu-location-address { font-size:13px; color:var(--wdu-muted); }
.wdu-location-actions { display:flex; gap:8px; }
.wdu-label-options { display:flex; gap:12px; margin-bottom:8px; }
.wdu-label-opt { display:flex; align-items:center; gap:6px; font-size:14px; cursor:pointer; }

/* ── Payment ── */
.wdu-payment-card { display:flex; align-items:center; gap:16px; padding:18px; background:var(--wdu-bg); border:1px solid var(--wdu-border); border-radius:var(--wdu-r); }
.wdu-payment-card-icon { font-size:32px; }
.wdu-payment-card-brand { font-size:16px; font-weight:700; }
.wdu-payment-card-num   { font-size:14px; font-family:monospace; }
.wdu-payment-card-exp   { font-size:12px; color:var(--wdu-muted); }

/* ── Staff dashboard ── */
.wdu-task-card { background:var(--wdu-white); border:1px solid var(--wdu-border); border-radius:var(--wdu-r-lg); padding:20px; margin-bottom:14px; box-shadow:var(--wdu-shadow); }
.wdu-task-done { opacity:.65; }
.wdu-task-header { display:flex; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.wdu-task-type-badge { font-size:13px; font-weight:600; padding:5px 12px; border-radius:100px; background:var(--wdu-primary-lt); color:var(--wdu-primary); }
.wdu-task-order { font-size:14px; font-weight:600; flex:1; }
.wdu-task-details { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.wdu-task-detail { display:flex; gap:10px; font-size:13px; color:var(--wdu-muted); }
.wdu-task-detail span:first-child { width:20px; text-align:center; }
.wdu-task-note { background:var(--wdu-bg); border-radius:8px; padding:10px 14px; font-size:13px; color:var(--wdu-muted); margin-bottom:12px; white-space:pre-line; }
.wdu-task-actions { display:flex; gap:10px; flex-wrap:wrap; }
.wdu-weight-entry { background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(236,72,153,.05)); border:1px solid rgba(99,102,241,.2); border-radius:var(--wdu-r); padding:16px; margin-bottom:14px; }
.wdu-weight-row { display:flex; gap:10px; align-items:center; margin-top:8px; }

/* ── Tabs ── */
.wdu-tabs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:20px; padding:10px 14px; background:var(--wdu-white); border:1px solid var(--wdu-border); border-radius:100px; }
.wdu-admin-tabs { border-radius:var(--wdu-r); padding:12px 16px; justify-content:flex-start; }
.wdu-tab { padding:9px 18px; border-radius:100px; border:none; background:transparent; color:var(--wdu-muted); font-size:13px; font-weight:500; cursor:pointer; transition:var(--wdu-transition); font-family:'Inter',sans-serif; }
.wdu-tab:hover { background:var(--wdu-primary-lt); color:var(--wdu-primary); }
.wdu-tab.active { background:var(--wdu-primary); color:#fff; }
.wdu-tab-panel { display:block; }

/* ── Admin ── */
.wdu-admin-toolbar { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; align-items:center; }
.wdu-admin-page .wdu-card { box-shadow:none; border:1px solid var(--wdu-border); }
.wdu-table-wrap { overflow-x:auto; border:1px solid var(--wdu-border); border-radius:var(--wdu-r); }
.wdu-table { width:100%; border-collapse:collapse; font-size:13px; }
.wdu-table th { background:var(--wdu-bg); padding:11px 14px; text-align:left; font-size:11px; font-weight:600; color:var(--wdu-muted); text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--wdu-border); }
.wdu-table td { padding:14px; border-bottom:1px solid var(--wdu-border); vertical-align:middle; }
.wdu-table tr:last-child td { border-bottom:none; }
.wdu-table tr:hover td { background:var(--wdu-bg); }
.wdu-settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:700px) { .wdu-settings-grid { grid-template-columns:1fr; } }

/* ── Rate / addon editing ── */
.wdu-rate-row { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--wdu-border); }
.wdu-rate-row:last-child { border-bottom:none; }
.wdu-addon-edit-row { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--wdu-border); flex-wrap:wrap; }

/* ── Toggle ── */
.wdu-toggle { position:relative; display:inline-block; width:40px; height:22px; flex-shrink:0; }
.wdu-toggle input { display:none; }
.wdu-toggle-label { position:absolute; inset:0; background:var(--wdu-border); border-radius:11px; cursor:pointer; transition:var(--wdu-transition); }
.wdu-toggle-label::after { content:''; position:absolute; width:16px; height:16px; border-radius:50%; background:#fff; top:3px; left:3px; transition:var(--wdu-transition); }
.wdu-toggle input:checked + .wdu-toggle-label { background:var(--wdu-success); }
.wdu-toggle input:checked + .wdu-toggle-label::after { transform:translateX(18px); }

/* ── Messages ── */
.wdu-msg { padding:10px 14px; border-radius:var(--wdu-r); font-size:13px; }
.wdu-msg-success { background:rgba(16,185,129,.1); color:var(--wdu-success); }
.wdu-msg-error   { background:rgba(239,68,68,.1); color:var(--wdu-danger); }

/* ── Alerts ── */
.wdu-alert { padding:14px 18px; border-radius:var(--wdu-r); font-size:14px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.wdu-alert-warn { background:rgba(245,158,11,.1); border:1px solid rgba(245,158,11,.3); color:#92400e; }
.wdu-alert-info { background:rgba(59,130,246,.1); border:1px solid rgba(59,130,246,.3); color:#1e40af; }
.wdu-alert a { color:inherit; font-weight:600; }

/* ── Misc ── */
.wdu-link { font-size:14px; color:var(--wdu-primary); text-decoration:none; font-weight:500; }
.wdu-loading { text-align:center; padding:40px; color:var(--wdu-muted); font-size:14px; }
.wdu-empty-state { text-align:center; padding:60px 20px; color:var(--wdu-muted); }
.wdu-empty-icon  { font-size:48px; margin-bottom:12px; }
.wdu-section-title { font-size:17px; font-weight:700; margin:20px 0 12px; }
.wdu-modal { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:999999; display:flex; align-items:center; justify-content:center; }
.wdu-modal-box { background:var(--wdu-white); border-radius:var(--wdu-r-lg); padding:28px; width:90%; max-width:440px; box-shadow:var(--wdu-shadow-lg); }
.wdu-modal h3 { font-size:18px; font-weight:700; margin:0 0 16px; }
.wdu-modal-actions { display:flex; gap:12px; margin-top:16px; }

/* ── Analytics bar chart ── */
.wdu-bar-chart { display:flex; align-items:flex-end; gap:16px; height:160px; padding:12px 0; }
.wdu-bar-item { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:4px; }
.wdu-bar-col { width:100%; background:var(--wdu-grad); border-radius:6px 6px 0 0; min-height:4px; transition:height .4s ease; }
.wdu-bar-label { font-size:11px; color:var(--wdu-muted); font-weight:600; }
.wdu-bar-val   { font-size:10px; color:var(--wdu-muted); }
