.drl-wrap{
  max-width:1100px;
  margin:24px auto;
  font-family:Arial,sans-serif;
  color:var(--text);
  --line:rgba(232,220,192,.45);
  --glass:rgba(255,255,255,.34);
  --glass-strong:rgba(255,255,255,.42);
  --glass-soft:rgba(255,255,255,.18);
  --glass-dark:rgba(19,16,49,.88);
  --shadow-lg:0 20px 60px rgba(17,24,39,.14);
  --shadow-md:0 10px 30px rgba(17,24,39,.10);
  --inner-highlight:inset 0 1px 0 rgba(255,255,255,.55);
}
.drl-wrap *{box-sizing:border-box}

.drl-shell{
  position:relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,.32), rgba(255,255,255,.18)),
    linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.06));
  border:1px solid rgba(232,220,192,.5);
  border-radius:28px;
  padding:20px;
  box-shadow:var(--shadow-lg), var(--inner-highlight);
  backdrop-filter:blur(22px) saturate(145%);
  -webkit-backdrop-filter:blur(22px) saturate(145%);
  overflow:hidden;
}
.drl-shell::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.38), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,.18), transparent 34%, transparent 70%, rgba(255,255,255,.08));
}
.drl-shell::after{
  content:"";
  position:absolute;
  top:0;
  left:18px;
  right:18px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent);
  pointer-events:none;
}

.drl-title-wrap{
  text-align:center;
  margin-bottom:16px;
  background:
    linear-gradient(180deg, rgba(19,16,49,.96), rgba(19,16,49,.88));
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:16px 16px 12px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 10px 26px rgba(19,16,49,.18);
}
.drl-title{
  font-size:25px;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--header-text);
  font-family:'Playfair Display',serif;
  line-height:1.1;
}
.drl-tagline{
  margin-top:6px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  color:var(--header-text);
  font-family:'Montserrat',sans-serif;
}

.drl-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  margin:0 auto 16px;
}
.drl-tab-btn{
  border:1px solid rgba(232,220,192,.58);
  background:
    linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.38));
  color:var(--headers);
  border-radius:14px;
  padding:12px 16px;
  cursor:pointer;
  font-weight:800;
  transition:.22s ease;
  backdrop-filter:blur(14px) saturate(145%);
  -webkit-backdrop-filter:blur(14px) saturate(145%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.6),
    0 6px 18px rgba(17,24,39,.06);
}
.drl-tab-btn:hover{
  transform:translateY(-1px);
  border-color:#d9c790;
  background:
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,248,234,.46));
}
.drl-tab-btn.active{
  background:linear-gradient(180deg, rgba(19,16,49,.96), rgba(19,16,49,.88));
  color:var(--header-text);
  border-color:rgba(19,16,49,.9);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 10px 24px rgba(19,16,49,.18);
}
.drl-tab-panel{display:none}
.drl-tab-panel.active{display:block}

.drl-top{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin-bottom:16px;
}
.drl-protocol-top{align-items:start}

.drl-card,.drl-result{
  position:relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.16)),
    linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.06));
  border:1px solid rgba(232,220,192,.5);
  border-radius:26px;
  padding:18px;
  box-shadow:var(--shadow-md), var(--inner-highlight);
  backdrop-filter:blur(20px) saturate(145%);
  -webkit-backdrop-filter:blur(20px) saturate(145%);
}
.drl-card::before,.drl-result::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.24), transparent 26%),
    linear-gradient(135deg, rgba(255,255,255,.12), transparent 42%);
}

h3{
  margin:0 0 14px;
  text-align:center;
  font-size:20px;
  color:var(--headers);
  letter-spacing:.04em;
  font-family:'Playfair Display',serif;
}
label{
  display:block;
  margin:10px 0 6px;
  font-size:13px;
  font-weight:700;
  color:var(--text);
}
input,select,button{font:inherit}

input,select{
  width:100%;
  padding:12px 13px;
  border:1px solid rgba(201,154,46,.55);
  border-radius:18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.62));
  color:var(--text);
  outline:none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    0 4px 14px rgba(17,24,39,.05);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
input::placeholder{color:rgba(31,41,55,.45)}
input:focus,select:focus{
  border-color:var(--link);
  box-shadow:
    0 0 0 4px rgba(5,56,39,.10),
    inset 0 1px 0 rgba(255,255,255,.8),
    0 8px 20px rgba(17,24,39,.06);
}

.drl-row{display:grid;grid-template-columns:1fr 110px;gap:10px}

.drl-btn{
  width:100%;
  border:1px solid transparent;
  border-radius:18px;
  padding:13px;
  cursor:pointer;
  font-weight:800;
  margin-top:12px;
  transition:transform .12s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
  backdrop-filter:blur(14px) saturate(145%);
  -webkit-backdrop-filter:blur(14px) saturate(145%);
}

.drl-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(11,26,51,.12);
}

.drl-btn:focus,
.drl-btn:active{
  outline:none;
  transform:translateY(0);
}

.drl-btn-main{
  background:linear-gradient(180deg, rgba(5,56,39,.96), rgba(5,56,39,.86));
  color:#ffffff;
  border-color:rgba(5,56,39,.9);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 10px 24px rgba(5,56,39,.18);
}

.drl-btn-main:hover,
.drl-btn-main:focus,
.drl-btn-main:active{
  background:linear-gradient(180deg, rgba(10,77,55,.98), rgba(10,77,55,.90));
  color:#ffffff;
  border-color:rgba(10,77,55,.95);
}

.drl-btn-sub{
  background:linear-gradient(180deg, rgba(19,16,49,.96), rgba(19,16,49,.88));
  color:#EEC867;
  border-color:rgba(19,16,49,.92);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.1),
    0 10px 24px rgba(19,16,49,.16);
}

.drl-btn-sub:hover,
.drl-btn-sub:focus,
.drl-btn-sub:active{
  background:linear-gradient(180deg, rgba(34,28,79,.98), rgba(26,22,60,.92));
  color:#EEC867;
  border-color:rgba(34,28,79,.95);
}
.drl-center{text-align:center}
.drl-kicker{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#6b7280;
  margin-top:6px;
}
.drl-big{
  font-size:30px;
  font-weight:800;
  color:var(--headers);
  margin:6px 0;
  min-height:34px;
}

.drl-syringe-wrap{
  margin:16px 0 8px;
  overflow-x:auto;
  padding:6px 2px;
  border-radius:22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,.14));
  border:1px solid rgba(232,220,192,.42);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    0 8px 20px rgba(17,24,39,.05);
}
.drl-caption{
  text-align:center;
  font-size:12px;
  color:#6b7280;
  margin-top:10px;
}

.drl-stats,.drl-date-grid{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.drl-stats{grid-template-columns:repeat(3,1fr)}
.drl-date-grid{grid-template-columns:repeat(2,1fr)}

.drl-stat{
  background:
    linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,.34));
  border:1px solid rgba(232,220,192,.5);
  border-radius:18px;
  padding:13px;
  text-align:center;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.68),
    0 8px 18px rgba(17,24,39,.04);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.drl-stat .s1{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#6b7280;
  margin-bottom:6px;
}
.drl-stat .s2{
  font-size:18px;
  font-weight:800;
  color:var(--headers);
  min-height:22px;
}

.drl-alert{
  display:none;
  margin-top:12px;
  border-radius:16px;
  padding:13px 14px;
  font-size:14px;
  line-height:1.5;
  text-align:left;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    0 8px 18px rgba(17,24,39,.05);
}
.drl-alert.show{display:block}
.drl-warn{
  background:linear-gradient(180deg, rgba(255,241,240,.92), rgba(255,241,240,.72));
  border:1px solid rgba(239,183,177,.8);
  color:#9f2d20;
}
.drl-info{
  background:linear-gradient(180deg, rgba(238,248,235,.92), rgba(238,248,235,.74));
  border:1px solid rgba(214,231,208,.88);
  color:#486246;
}
.drl-note{margin-top:8px;font-size:12px;color:#6b7280}

.drl-week-grid,.drl-plan-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin-top:14px;
}
.drl-week-card,
.drl-single-syringe,
.drl-syringe-card,
.drl-stock-card,
.drl-option-row{
  background:
    linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,.34));
  border:1px solid rgba(232,220,192,.5);
  border-radius:16px;
  padding:12px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.68),
    0 8px 18px rgba(17,24,39,.04);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.drl-week-title,.drl-supplies-title,.drl-subtitle{
  font-size:18px;
  font-weight:800;
  color:var(--headers);
  margin-bottom:10px;
}
.drl-week-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin:6px 0;
  font-size:13px;
}
.drl-week-meta span{color:#6b7280}
.drl-week-meta strong{color:var(--text);text-align:right}

.drl-empty{
  text-align:center;
  color:#6b7280;
  padding:14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.42), rgba(255,255,255,.24));
  border:1px dashed rgba(216,204,176,.85);
  border-radius:16px;
}
.drl-partial-note{margin-top:6px;color:#8b4d38;font-size:12px}

.drl-draw-schedule{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-top:12px;
}
.drl-draw-chip,
.drl-day-chip{
  background:
    linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.38));
  border:1px solid rgba(232,220,192,.56);
  border-radius:999px;
  padding:8px 12px;
  display:inline-flex;
  gap:8px;
  align-items:center;
  font-size:13px;
  cursor:pointer;
  transition:background-color .2s ease,border-color .2s ease,transform .12s ease;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.68),
    0 6px 14px rgba(17,24,39,.04);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.drl-draw-chip:hover,
.drl-day-chip:hover{
  transform:translateY(-1px);
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,248,234,.42));
  border-color:#d9c790;
}
.drl-draw-chip.active{
  background:linear-gradient(180deg, rgba(19,16,49,.96), rgba(19,16,49,.88));
  border-color:#131031;
}
.drl-draw-chip span{color:#6b7280}
.drl-draw-chip strong{color:var(--headers)}
.drl-draw-chip.active span,
.drl-draw-chip.active strong{color:#EEC867}

.drl-day-checks{display:flex;flex-wrap:wrap;gap:8px}
.drl-day-chip{margin:0;font-weight:600}
.drl-day-chip input{width:auto;margin:0}

.drl-supplies-list>div{margin:6px 0}
.drl-supplies-note{margin-top:10px;color:#6b7280;font-size:12px}
.drl-tab-panel>.drl-result+.drl-result{margin-top:14px}
.drl-protocol-top>.drl-card{height:100%}

.drl-stock-head h4{
  margin:0;
  font-size:18px;
  line-height:1.25;
  color:var(--headers);
}
.drl-stock-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:10px;
}
.drl-stock-supplies-wrap{margin-top:14px}

.drl-result-table-wrap{margin-top:14px}
.drl-option-table{display:grid;gap:10px}
.drl-option-row{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:10px}
.drl-option-row strong{display:block}

.drl-stock-options{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin-top:14px;
}
.drl-stock-card.best{
  border:1px solid rgba(193,154,46,.85);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    0 0 0 2px rgba(193,154,46,.12),
    0 12px 24px rgba(193,154,46,.10);
}
.drl-badge-star{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:700;
  color:#7a5a00;
  background:linear-gradient(180deg, rgba(255,248,214,.96), rgba(255,248,214,.78));
  border:1px solid #e8d18a;
  border-radius:999px;
  padding:4px 8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.drl-stock-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
}
.drl-stock-stat{
  background:linear-gradient(180deg, rgba(255,255,255,.66), rgba(250,248,242,.5));
  border:1px solid rgba(232,220,192,.52);
  border-radius:12px;
  padding:10px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.74);
}
.drl-stock-stat .k{
  font-size:11px;
  text-transform:uppercase;
  color:#6b7280;
  margin-bottom:4px;
}
.drl-stock-stat .v{
  font-size:18px;
  font-weight:800;
  color:var(--headers);
}

.drl-toast{
  position:fixed;
  right:20px;
  bottom:20px;
  background:linear-gradient(180deg, rgba(19,16,49,.97), rgba(19,16,49,.9));
  color:#EEC867;
  padding:12px 16px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.1),
    0 16px 30px rgba(0,0,0,.16);
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .22s ease,transform .22s ease;
  z-index:9999;
  font-size:14px;
  font-weight:700;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.drl-toast.show{opacity:1;transform:translateY(0)}

.drl-export-card{
  position:fixed;
  left:-99999px;
  top:0;
  width:1200px;
  display:none;
  background:#fff;
  z-index:-1;
}

@media (max-width:900px){
  .drl-top,
  .drl-stats,
  .drl-date-grid,
  .drl-plan-grid,
  .drl-week-grid,
  .drl-stock-options{
    grid-template-columns:1fr;
  }
  .drl-big{font-size:24px}
  .drl-row{grid-template-columns:1fr 100px}
}

@media (max-width:640px){
  .drl-shell{padding:14px;border-radius:22px}
  .drl-card,.drl-result{padding:14px;border-radius:20px}
  .drl-title{font-size:21px}
  h3{font-size:18px}
  .drl-tab-btn{width:100%}
  .drl-option-row{grid-template-columns:1fr}
  .drl-stock-grid{grid-template-columns:1fr}
}
.drl-wrap select{
  min-height: 48px;
  height: 48px;
  line-height: 1.2;
  padding: 0 42px 0 14px;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.drl-row select{
  min-width: 100px;
}

.drl-card select,
.drl-result select{
  font-size: 14px;
}