.routine-backdrop{position:fixed;inset:0;z-index:89;background:rgba(30,20,8,.3);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}
.routine-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.routine-drawer{position:fixed;z-index:120; /* above the dice tray (90/95) — Tim */top:0;right:0;width:min(430px,92vw);height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;border-left:1px solid var(--gold);background:var(--panel);box-shadow:-18px 0 44px rgba(45,30,8,.24);color:var(--ink);transform:translateX(104%);visibility:hidden;pointer-events:none;transition:transform .24s ease,visibility 0s linear .24s}
.routine-drawer.is-open{transform:translateX(0);visibility:visible;pointer-events:auto;transition-delay:0s}
.routine-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);padding:var(--s4);border-bottom:1px solid var(--rule);background:linear-gradient(180deg,var(--panel),var(--panel-2))}
.routine-kicker{color:var(--rubric)}
.routine-head h2{margin:var(--s1) 0 0;font:600 1.35rem/1.2 var(--font-display);color:var(--gold-deep)}
.routine-close{width:44px;height:44px;border:1px solid var(--rule);border-radius:50%;color:var(--ink-soft)}
.routine-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--rule)}
.routine-tabs button{min-height:var(--field);padding:var(--s2);border-right:1px solid var(--rule);color:var(--ink-soft);font:600 .72rem/1.2 var(--font-display);letter-spacing:.06em;text-transform:uppercase}
.routine-tabs button:last-child{border-right:0}
.routine-tabs button[aria-selected="true"]{background:color-mix(in srgb,var(--gold) 11%,var(--panel-2));color:var(--gold-deep);box-shadow:inset 0 -2px var(--gold-deep)}
.routine-scroll{overflow:auto;padding:var(--s4);overscroll-behavior:contain}
.routine-summary{margin:0 0 var(--s4);color:var(--ink-soft);font:italic .92rem/1.45 var(--font-scribal)}
.routine-group+ .routine-group{margin-top:var(--s5)}
.routine-group h3{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s2);font:600 .76rem/1.2 var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
.routine-group h3::after{content:"";flex:1;height:1px;background:var(--rule-soft)}
.routine-list{display:grid;gap:var(--s2);margin:0;padding:0;list-style:none}
.routine-item{border:1px solid var(--rule-soft);border-radius:var(--r-sm);background:var(--panel-2)}
.routine-item label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:var(--s2);align-items:start;padding:var(--s3);cursor:pointer}
.routine-item input{position:absolute;opacity:0;pointer-events:none}
.routine-mark{width:20px;height:20px;border:1px solid var(--gold-deep);border-radius:var(--r-sm);background:var(--panel);position:relative}
.routine-item input:focus-visible+.routine-mark{outline:2px solid var(--focus);outline-offset:2px}
.routine-item input:checked+.routine-mark::after{content:"✓";position:absolute;inset:-3px 0 0;text-align:center;color:var(--verdigris);font-weight:700}
.routine-item b{display:block;color:var(--ink-soft);font:.88rem/1.25 var(--font-display)}
.routine-item small{display:block;margin-top:2px;color:var(--ink-faint);font:.78rem/1.35 var(--font-scribal)}
.routine-item--change{border-left:3px solid var(--verdigris)}
.routine-item--attention{border-left:3px solid var(--rubric)}
.routine-item.is-checked{opacity:.58}
.routine-item.is-checked b{text-decoration:line-through}
.routine-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4);border-top:1px solid var(--rule);background:var(--panel-2)}
.routine-foot button{min-height:var(--field)}
.routine-open{margin-left:auto;padding:var(--s1) var(--s2);border:1px solid var(--rule);border-radius:var(--r-pill);color:var(--gold-deep);font:600 .67rem/1.2 var(--font-display);letter-spacing:.06em;text-transform:uppercase}
.routine-open:hover{background:color-mix(in srgb,var(--gold) 9%,transparent)}
@media(max-width:520px){
  .routine-drawer{top:auto;right:0;bottom:0;left:0;width:auto;max-width:none;height:min(82dvh,720px);border-left:0;border-top:1px solid var(--gold);transform:translateY(104%);border-radius:var(--r-lg) 12px 0 0}
  .routine-drawer.is-open{transform:translateY(0)}
  .routine-head,.routine-scroll{padding:var(--s3)}
  .routine-foot{padding:var(--s2) var(--s3)}
}
@media(prefers-reduced-motion:reduce){.routine-drawer,.routine-backdrop{transition:none}}
