.quick-duty{--quick-gold:#e5c579;--quick-muted:#b3bba9;color:#ece4cd}.quick-hint{font-size:16px!important;line-height:1.45;margin:8px 0 22px!important}.quick-status{font-size:14px!important;min-height:22px;margin:14px 0 0!important;color:var(--quick-gold)!important}.quick-duty button{min-height:48px;border:1px solid #87917a;background:#303b32;color:#f0e7ce;border-radius:7px;font-size:16px;padding:10px;cursor:pointer;touch-action:manipulation}.quick-duty button:focus-visible{outline:3px solid #e5c579;outline-offset:3px}.quick-duty button:disabled{opacity:.55;cursor:default}.quick-duty button[aria-pressed=true]{outline:3px solid var(--quick-gold);background:#5d583a}.quick-duty small{display:block;font-size:14px;line-height:1.3;color:#d4d9c8}.quick-match-row{display:flex;gap:12px;margin:16px 0}.quick-match-row button{flex:1;min-width:0;min-height:84px}.quick-symbol{display:inline-block;font-size:34px;line-height:1.25}.quick-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-card{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:12px;text-align:center;padding:14px 8px;background:#1c2823;border-radius:9px;border:1px solid #5e6958}.quick-controls{display:flex;align-items:center;justify-content:center;gap:8px}.quick-controls button{min-width:42px;padding:8px}.quick-controls strong{font-size:24px}.quick-meter{height:126px;width:54px;align-self:center;border:2px solid #889587;position:relative;overflow:visible;background:#121d1b}.quick-meter span{display:block;position:absolute;bottom:0;width:100%;background:#72a3a6;transition:height .15s}.quick-meter i{position:absolute;left:-7px;right:-7px;border-top:4px solid var(--quick-gold)}.quick-crates{font-size:26px;line-height:1.35;min-height:75px;color:#d4bc82}.quick-dial{position:relative;height:120px;display:grid;place-items:center}.quick-dial span{position:absolute;font-size:55px;line-height:1;width:70px;height:70px;display:grid;place-items:center;color:#87c6cb}.quick-dial .quick-guide{color:var(--quick-gold);font-size:95px;width:100px;height:100px;opacity:.7}.quick-patch{min-height:100px!important;font-size:52px!important;background:#695741!important;color:#e2ca9d!important}.quick-patch.clean{background:#31554e!important;color:#b8dbbc!important}.quick-shutter{font-size:58px;color:#b9a072}.quick-route{height:280px;position:relative;margin:32px 18px}.quick-route button{position:absolute;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;font-size:20px;z-index:1}.quick-route .quick-next{border:3px solid var(--quick-gold);background:#5d593a}.quick-sequence-guide{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin:18px 0 28px}.quick-sequence-guide>span{font-size:16px;padding:5px}.quick-sequence-guide .current{outline:2px solid var(--quick-gold);border-radius:4px}.quick-sequence-guide .done{opacity:.4}.quick-wide{width:100%;min-height:70px!important}.quick-level .quick-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-clean .quick-cards{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:450px){.quick-cards{gap:6px}.quick-card{padding:12px 5px}.quick-match-row{gap:8px}.quick-controls{gap:3px}.quick-controls button{min-width:38px}.quick-dial .quick-guide{font-size:78px;width:85px;height:85px}.quick-dial span{font-size:45px}.quick-route{height:230px}.quick-match-row button{padding:8px 4px}}

@media(max-width:450px){.quick-count .quick-controls{display:grid;grid-template-columns:44px 44px;gap:5px}.quick-count .quick-controls strong{grid-column:1/-1;grid-row:1}.quick-count .quick-controls button{min-width:44px}.quick-count .quick-card{padding-inline:2px}}

/* Illustrated duties: each card is a small workbench with the thing being worked on drawn in it
   (src/duty-art.js). Flames are the only motion, and they rest under reduced motion. */
.quick-card{background:linear-gradient(#25312b,#1a241f);box-shadow:inset 0 10px 14px -12px #e6b46a40}
.quick-card.done{border-color:#a4905a;box-shadow:inset 0 10px 18px -10px #f3cd8a59}
.quick-art{display:grid;place-items:center}
.quick-duty .duty-art{display:block;max-width:100%;stroke:none;stroke-width:1}
.duty-lamp,.duty-jar{height:132px;width:auto}
.duty-sluice,.duty-well{height:124px;width:auto}
.duty-crates{width:100%;max-width:100px;height:auto}
.duty-gear,.duty-channel,.duty-screen{width:100%;max-width:112px;height:auto}
.duty-shutter{height:104px;width:auto}
.quick-duty .quick-patch{min-height:96px!important;padding:6px!important;background:#2a3129!important}
.quick-duty .quick-patch.clean{background:#223630!important;border-color:#6f9c8c;opacity:1}
.quick-patch .duty-art{width:100%;height:auto;max-height:92px;margin:auto}
.quick-match-row .duty-art{width:62px;height:62px;margin:0 auto 2px}
.quick-sequence-guide .duty-pennant{height:30px;width:auto}
.quick-match-row .duty-pennant{height:58px;width:auto}
.quick-hoist{margin:0 0 14px}
.quick-hoist .duty-hoist{height:150px;width:auto}
.quick-route{width:min(360px,calc(100% - 36px));margin-inline:auto}
.quick-route .duty-route-art{position:absolute;inset:0;width:100%;height:100%}
.quick-route.route-dispatch{background:#2c3a2c;box-shadow:0 0 0 16px #2c3a2c;border-radius:2px}
.quick-route.route-rigging{background:#1f2724;box-shadow:0 0 0 16px #1f2724;border-radius:2px}
.quick-route.route-palms{background:#b8955f;box-shadow:0 0 0 16px #b8955f;border-radius:2px}
.quick-boat{position:absolute;transform:translate(-50%,-50%);z-index:2;pointer-events:none}.quick-boat .duty-boat{width:50px;height:33px}
.duty-flame{transform-box:fill-box;transform-origin:50% 100%;animation:duty-flicker 1.4s ease-in-out infinite alternate}
@keyframes duty-flicker{0%{transform:none}40%{transform:scale(.93,1.07)}70%{transform:scale(1.04,.95)}100%{transform:scale(.97,1.03)}}
@media(prefers-reduced-motion:reduce){.duty-flame{animation:none}}
@media(max-width:450px){.duty-lamp,.duty-jar{height:118px}.duty-sluice,.duty-well{height:112px}.quick-match-row .duty-art{width:56px;height:56px}.quick-duty .quick-patch{min-height:84px!important}}
/* Held sideways, a duty fits without scrolling: the cards share one row and the art is capped by the screen's height. */
@media(max-height:500px) and (min-width:600px){.duty-dialog .quick-hint{font-size:14px!important;margin:0 0 8px!important}.duty-dialog .quick-duty .quick-cards{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}.duty-dialog .quick-card{padding:6px 5px;gap:6px}.duty-dialog .quick-duty .duty-art{max-height:min(150px,36dvh)}.duty-dialog .quick-duty .quick-patch{min-height:0!important}.duty-dialog .quick-patch .duty-art{max-height:min(80px,20dvh)}.duty-dialog .quick-duty button{min-height:40px}.duty-dialog .quick-match-row{margin:8px 0}.duty-dialog .quick-match-row button{min-height:64px}.duty-dialog .quick-status{min-height:18px;margin:6px 0 0!important}.duty-dialog .quick-route{height:190px;margin:12px auto}.duty-dialog .quick-meter{height:96px}.duty-dialog .quick-dial{height:96px}.duty-dialog .quick-sequence-guide{margin:8px 0 12px}.duty-dialog .quick-wide{min-height:52px!important}.duty-dialog :is(.duty-lamp,.duty-jar){height:110px}.duty-dialog :is(.duty-sluice,.duty-well){height:104px}}
