.alchemy-workbench,.rune-challenge{max-width:1100px;margin:auto;padding:16px;box-sizing:border-box;}
.alchemy-layout{display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;align-items:center;}
.alchemy-cauldron{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;border-radius:50% 50% 35% 35%;background:radial-gradient(ellipse at center,#375846,#151220 70%);font-size:80px;color:#d7b54b;box-shadow:0 0 24px #16593655;}.alchemy-cauldron span{font-size:14px;}
.alchemy-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}.alchemy-slots-main{grid-template-columns:repeat(2,minmax(0,1fr));}
.alchemy-slot,.alchemy-admin-slot{display:flex!important;flex-direction:column;gap:5px;padding:8px;border:1px solid #4b3a65;border-radius:8px;min-width:0;font-size:12px;}.alchemy-slot select,.alchemy-admin-slot select{width:100%;min-width:0;}.alchemy-slot span{display:flex;gap:6px;align-items:center;}.alchemy-slot input{width:65px!important;}
.alchemy-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;}.alchemy-controls label{display:flex!important;flex-direction:column;gap:5px;min-width:0;}.alchemy-controls label:has(input[type=checkbox]){flex-direction:row;align-items:center;}.alchemy-controls input,.alchemy-controls select{width:100%;min-width:0;box-sizing:border-box;}.alchemy-controls input[type=checkbox]{width:auto;}
.alchemy-production{padding:12px;border:1px solid #987e32;border-radius:10px;background:#18151e;}.alchemy-production progress{width:100%;accent-color:#53be85;}.alchemy-book,.alchemy-admin details,.alchemy-admin{margin:12px 0;}.alchemy-book summary,.alchemy-admin summary{cursor:pointer;color:#d7b54b;padding:8px;}.alchemy-book article{padding:8px;border-bottom:1px solid #372c46;}.alchemy-book p{margin:5px 0;font-size:12px;}
.rune-challenge{text-align:center;max-width:720px;}.rune-sequence,.rune-symbols{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:20px 0;}.rune-sequence span{display:flex;align-items:center;justify-content:center;width:42px;height:46px;border:1px solid #9a813a;border-radius:8px;font-size:26px;color:#edd278;background:#242032;}.rune-symbols button{width:64px;height:64px;font-size:30px;border:1px solid #927631;border-radius:10px;background:#1c1629;color:#e4c252;}.rune-symbols button:disabled{opacity:.45;}.rune-symbols button:not(:disabled):hover{background:#4a365c;box-shadow:0 0 12px #be8e4166;}
@media(max-width:700px){.alchemy-layout{grid-template-columns:1fr;}.alchemy-cauldron{min-height:90px;font-size:46px;}.alchemy-slots,.alchemy-controls{grid-template-columns:repeat(2,minmax(0,1fr));}.rune-symbols button{width:52px;height:52px;}}

.lobby-center .admin-npc-editor > .alchemy-admin { grid-column: 1 / -1; }

/* Oficina de alquimia: styles scoped to the player workbench. */
.alchemy-workbench{max-width:1080px;padding:22px;border:1px solid #4d4259;border-radius:14px;background:radial-gradient(ellipse at 8% 35%,#22403640,transparent 48%),linear-gradient(145deg,#191521,#0e1018);box-shadow:0 12px 36px #0003;color:#dfdbe4;}
.alchemy-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid #74603855;padding-bottom:16px;margin-bottom:18px;}.alchemy-header h3{color:#ddc37c;margin:5px 0;font-family:Cinzel,serif;font-size:21px;}.alchemy-header p{margin:6px 0 0;color:#aaa6b5;font-size:12px;}.alchemy-header>button{flex:none;}.alchemy-eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#90b6a4;}
.alchemy-demo{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;background:#355f4b20;border:1px solid #62967b55;border-radius:9px;margin-bottom:18px;}.alchemy-demo div{display:grid;gap:5px;}.alchemy-demo strong{font-size:13px;color:#b8dbbc;}.alchemy-demo span{font-size:12px;color:#e0cd97;}.alchemy-demo small{font-size:10px;color:#acaeb5;}.alchemy-demo button{flex:none;}
.alchemy-workbench .alchemy-layout{grid-template-columns:245px minmax(0,1fr);gap:22px;align-items:stretch;}.alchemy-workbench .alchemy-cauldron{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;min-width:0;border-radius:12px;background:radial-gradient(ellipse at 50% 45%,#57947926,transparent 65%),#10141c;border:1px solid #48635466;font-size:inherit;box-shadow:inset 0 0 35px #0002;padding:18px 12px;}.alchemy-state{display:block;padding:5px 11px;border:1px solid #65877866;border-radius:20px;color:#b7d5bd;font-size:10px!important;letter-spacing:.4px;}.alchemy-cauldron>strong{color:#dfc47f;font-family:Cinzel,serif;font-size:16px;}.alchemy-cauldron>p{font-size:12px;color:#aab7b2;margin:8px 0 16px;}.alchemy-cauldron-note{text-align:center;max-width:190px;color:#8f96a0;font-size:11px;line-height:1.6;border-top:1px solid #46524a66;padding-top:14px;}
.alchemy-vessel{position:relative;width:215px;max-width:100%;margin:20px 0 0;}.alchemy-vessel>svg{display:block;width:100%;height:auto;position:relative;z-index:2;}.alchemy-fire{position:absolute;bottom:5%;left:50%;width:90px;height:40px;transform:translateX(-50%);filter:blur(2px);background:radial-gradient(ellipse,#b77d3744,transparent 70%);}.alchemy-fire i{position:absolute;bottom:4px;width:13px;height:24px;background:linear-gradient(#eab65e,#9e482722);border-radius:60% 40% 60% 40%;transform:rotate(8deg);left:38px;opacity:.5;}.alchemy-fire i:first-child{left:18px;height:18px;}.alchemy-fire i:last-child{left:61px;height:18px;}.alchemy-steam{position:absolute;top:8%;left:35%;width:30%;height:40px;}.alchemy-steam i{position:absolute;width:12px;height:38px;border-left:2px solid #b8e4cb55;border-radius:50%;opacity:.5;}.alchemy-steam i:nth-child(2){left:24px;top:-10px;}.alchemy-steam i:nth-child(3){left:44px;}
.is-working .alchemy-steam i{animation:alchemy-steam 3s ease-in-out infinite;}.is-working .alchemy-steam i:nth-child(2){animation-delay:-1s;}.is-working .alchemy-steam i:nth-child(3){animation-delay:-2s;}.is-working .alchemy-fire i{animation:alchemy-flame 1.6s ease-in-out infinite alternate;}.is-working .alchemy-bubble{animation:alchemy-bubble 2.4s ease-in-out infinite;}.is-working .bubble-two{animation-delay:-.8s;}.is-working .bubble-three{animation-delay:-1.6s;}.is-ready .alchemy-state{color:#ebd79b;border-color:#baa05699;background:#a1883720;}.is-ready .alchemy-cauldron{border-color:#a98e4666;}
.alchemy-group-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 9px;}.alchemy-group-title h4{margin:0;font-family:Cinzel,serif;font-size:13px;color:#d6be81;}.alchemy-group-title>span{font-size:10px;color:#9c99a8;}.alchemy-group-title:not(:first-child){margin-top:16px;}
.alchemy-workbench .alchemy-slot{gap:5px;padding:10px;border-color:#4b435b;background:linear-gradient(145deg,#211e2b,#171720);border-radius:9px;box-sizing:border-box;min-width:0;}.alchemy-workbench .alchemy-slot.is-filled{border-color:#6e8e7566;}.alchemy-workbench .alchemy-slot.is-optional{border-style:dashed;background:#1a172080;}.alchemy-slot-heading{display:flex!important;align-items:center;gap:7px!important;}.alchemy-slot-heading b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:#8f763026;color:#d9c183;font-size:10px;}.alchemy-slot-heading>span{font-size:10px;letter-spacing:.3px;color:#b6b0c3;}.alchemy-slot-art{display:flex!important;align-items:center!important;justify-content:center!important;width:52px;height:52px;align-self:center;border-radius:11px;background:radial-gradient(ellipse,#49836330,#17221d55);color:#a4c6a5;margin:5px 0;}.alchemy-slot-art>svg{width:36px;height:36px;}.alchemy-slot-art>img{width:44px;height:44px;object-fit:contain;}.alchemy-slot:not(.is-filled) .alchemy-slot-art{opacity:.4;}.alchemy-workbench .alchemy-slot select{font-size:11px;height:32px;padding:4px 6px;border-radius:5px;text-overflow:ellipsis;}.alchemy-slot>small{font-size:10px;color:#93ab99;min-height:13px;}.alchemy-workbench .alchemy-slot-quantity{justify-content:space-between;border-top:1px solid #4a435233;padding-top:7px;color:#a19bad;font-size:10px;}.alchemy-workbench .alchemy-slot input{width:48px!important;height:27px!important;min-height:0;padding:3px 5px!important;font-size:11px;text-align:center;box-sizing:border-box;}
.alchemy-workbench .alchemy-controls{margin:20px 0 16px;gap:12px;}.alchemy-workbench .alchemy-controls>label{border:1px solid #4a4259;border-radius:9px;background:#191820;padding:10px 12px;gap:9px;}.alchemy-controls>label>span:first-child{font-size:11px;color:#bdadc8;}.alchemy-control-input{display:flex;align-items:center;gap:10px;}.alchemy-workbench .alchemy-control-input input{height:34px;font-size:18px;padding:3px 8px;color:#ead7a2;background:#100f17;border:1px solid #40384c;border-radius:5px;}.alchemy-control-input b{font-size:10px;color:#928c9c;font-weight:normal;}
.alchemy-start-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0 4px;}.alchemy-start-row p{max-width:360px;font-size:11px;line-height:1.6;color:#a59eaf;margin:0;}.alchemy-workbench [data-alchemy-start],.alchemy-workbench [data-alchemy-collect]{width:auto!important;min-height:39px;border-radius:7px;padding:10px 22px;font-size:12px;flex:none;background:linear-gradient(135deg,#d0b468,#9e7e39);color:#1b1510;border:1px solid #dbc17c;box-shadow:0 3px 12px #ad853a22;}.alchemy-workbench button:disabled{opacity:.5;cursor:default;}
.alchemy-workbench .alchemy-production{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(130deg,#293d292c,#19171f);border-color:#8c794b66;}.alchemy-output-icon{display:flex;align-items:center;justify-content:center;width:56px;height:65px;border-radius:10px;background:#af923220;color:#dec581;flex:none;}.alchemy-output-icon svg{width:36px;height:44px;}.alchemy-production-info{flex:1;min-width:0;display:grid;gap:5px;}.alchemy-production-info>strong{font-size:13px;color:#e4d09a;}.alchemy-production-info>span{font-size:11px;color:#bbb6c3;}.alchemy-production-info p{margin:4px 0;font-size:12px;color:#afcfb3;}.alchemy-production-info small{font-size:10px;color:#948e9f;}.alchemy-production progress{height:7px;border:none;border-radius:6px;overflow:hidden;background:#0c0c12;}.alchemy-production progress::-webkit-progress-bar{background:#0c0c12;border-radius:6px;}.alchemy-production progress::-webkit-progress-value{background:linear-gradient(90deg,#427653,#a4c584);border-radius:6px;}.alchemy-production progress::-moz-progress-bar{background:#83a978;}
.alchemy-workbench .alchemy-book{border-top:1px solid #5f503a55;margin-top:19px;padding-top:7px;}.alchemy-workbench .alchemy-book summary{font-family:Cinzel,serif;font-size:12px;padding:9px 0;}.alchemy-workbench .alchemy-book article{padding:12px;border:1px solid #483d5655;background:#17141e;border-radius:8px;margin:8px 0;}.alchemy-book article>strong{font-size:13px;color:#ddd0ac;}.alchemy-book article small{color:#aaa18d;font-size:10px;}.alchemy-workbench [data-alchemy-msg]:empty{display:none;}.alchemy-workbench [data-alchemy-msg]{font-size:12px;padding:9px 12px;border-radius:6px;background:#365f3d22;}.alchemy-workbench [data-alchemy-msg].bank-error{background:#71393722;}
@keyframes alchemy-steam{0%,100%{opacity:.15;transform:translateY(0)}50%{opacity:.6;transform:translateY(-12px)}}@keyframes alchemy-flame{to{opacity:.85;transform:scaleY(1.2) rotate(-7deg)}}@keyframes alchemy-bubble{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}
@media(max-width:800px){.alchemy-workbench{padding:16px;}.alchemy-workbench .alchemy-layout{grid-template-columns:190px minmax(0,1fr);gap:14px;}.alchemy-group-title{align-items:flex-start;flex-direction:column;}.alchemy-workbench .alchemy-production{flex-wrap:wrap;}.alchemy-production [data-alchemy-collect]{margin-left:70px;}}
@media(max-width:600px){.alchemy-header,.alchemy-demo{flex-wrap:wrap;}.alchemy-workbench .alchemy-layout{grid-template-columns:1fr;}.alchemy-workbench .alchemy-cauldron{min-height:0;padding:14px;}.alchemy-vessel{width:160px;margin-top:4px;}.alchemy-cauldron-note{display:none;}.alchemy-workbench .alchemy-slots{grid-template-columns:repeat(2,minmax(0,1fr));}.alchemy-workbench .alchemy-controls{grid-template-columns:1fr;gap:8px;}.alchemy-workbench .alchemy-controls>label{flex-direction:row!important;align-items:center;justify-content:space-between;}.alchemy-control-input{max-width:145px;}.alchemy-start-row{flex-direction:column;align-items:stretch;}.alchemy-production [data-alchemy-collect]{margin-left:0;width:100%!important;}.alchemy-demo>button{width:100%;}}
@media(prefers-reduced-motion:reduce){.alchemy-workbench *, .alchemy-workbench *::before,.alchemy-workbench *::after{animation:none!important;}}

/* Keep the ingredient cards compact within the standard game panel. */
.alchemy-workbench .alchemy-slot{display:grid!important;grid-template-columns:34px minmax(0,1fr);gap:4px 7px;padding:8px;align-items:center;}
.alchemy-slot-heading{grid-column:1/-1;grid-row:1;}.alchemy-slot-heading b{width:18px;height:18px;}.alchemy-slot-heading>span{font-size:9px;}
.alchemy-slot-art{grid-column:1;grid-row:2/4;width:34px;height:40px;margin:0;}.alchemy-slot-art>svg{width:28px;height:30px;}.alchemy-slot-art>img{width:30px;height:34px;}
.alchemy-workbench .alchemy-slot select{grid-column:2;grid-row:2;height:28px;font-size:10px;min-width:0;}.alchemy-slot>small{grid-column:2;grid-row:3;font-size:9px;min-height:11px;}
.alchemy-workbench .alchemy-slot-quantity{grid-column:1/-1;grid-row:4;padding-top:5px;font-size:9px;}.alchemy-workbench .alchemy-slot input{height:24px!important;width:43px!important;font-size:10px;}

.pin-lock{max-width:740px;padding:20px;border:1px solid #705e4166;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#54412830,transparent 65%),#15131e;text-align:left;color:#d7d1de;box-sizing:border-box;}
.lock-header{display:flex;justify-content:space-between;align-items:center;gap:10px;}.lock-eyebrow{font-size:10px;color:#ac9671;text-transform:uppercase;letter-spacing:2px;}.lock-header h3{font-family:Cinzel,serif;color:#d9bd7a;margin:5px 0;font-size:23px;}.lock-rarity{padding:6px 14px;border:1px solid var(--lock-accent);border-radius:20px;font-size:12px;color:var(--lock-accent);background:#11111a;}.lock-instructions,.lock-help{font-size:12px;line-height:1.6;color:#aaa1b6;}.lock-metrics{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11px;color:#c5b28e;}.lock-chest{border:1px solid #7c643b66;border-radius:12px;margin:14px 0;background:repeating-linear-gradient(0deg,#402e2220 0 2px,#241f1920 2px 34px),linear-gradient(125deg,#423127,#1c1720);overflow:hidden;}.lock-cutaway{display:block;width:100%;height:auto;max-height:290px;}.lock-pin-status{fill:#30283a;stroke:#68593d;}.is-current .lock-pin-status{fill:var(--lock-accent);stroke:#f3d897;}.pin-lock .is-current text{fill:#15141b;}.is-pinned .lock-pin-status{fill:#578865;stroke:#9bbf91;}.is-pinned .lock-pin-lift rect{fill:#99bd83;}.lock-pin-lift{transition:transform .2s ease;}.lock-turning .lock-core{transform-origin:300px 231px;animation:lock-core-turn 1s ease-in-out infinite alternate;}
.pin-lock .lock-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;}.pin-lock .lock-controls>label{display:flex!important;flex-direction:column;gap:8px;padding:12px;background:#211b2a;border:1px solid #584963;border-radius:9px;font-size:12px;color:#d3bb8c;min-width:0;}.lock-controls output{align-self:flex-end;color:#c7bfd7;font-size:13px;margin-top:-22px;}.pin-lock .lock-controls input[type=range]{display:block;width:100%;min-width:0;height:44px;padding:0;margin:0;accent-color:var(--lock-accent);cursor:pointer;touch-action:pan-y;background:transparent;}.lock-range-ends{display:flex;justify-content:space-between;color:#8f849e;font-size:10px;}.lock-nudges{display:flex;gap:8px;}.pin-lock .lock-nudges button{min-width:48px;min-height:44px;border:1px solid #716041;border-radius:7px;color:#d8c48e;background:#302637;font-size:20px;flex:1;}.pin-lock button:focus-visible,.pin-lock input:focus-visible{outline:2px solid var(--lock-accent);outline-offset:3px;}.pin-lock button:disabled{opacity:.45;cursor:default;}.lock-feedback{margin:14px 0;padding:12px;border:1px solid #534762;border-radius:8px;background:#101018;}.lock-feedback p{margin:0 0 10px;font-size:12px;min-height:32px;line-height:1.6;color:#b5ccb3;}.lock-feedback span{font-size:10px;color:#a294ad;}.lock-feedback progress{width:100%;height:7px;display:block;margin:6px 0;border:0;border-radius:5px;overflow:hidden;accent-color:#c29666;}.lock-feedback progress::-webkit-progress-bar{background:#302638;}.lock-feedback progress::-webkit-progress-value{background:#c29666;}.lock-feedback progress::-moz-progress-bar{background:#c29666;}.lock-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}.pin-lock .lock-actions button{min-height:46px;width:100%;border-radius:8px;font-size:13px;}.pin-lock [data-rune-skip]{display:block;width:auto;min-height:44px;margin:12px auto 0;}.lock-help{text-align:center;font-size:10px;}.lock-training-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding-bottom:14px;}.lock-training-tools label{display:flex!important;flex-direction:column;font-size:11px;gap:6px;color:#c8b88e;}.lock-training-tools select,.lock-training-tools button{min-height:44px;}.lock-training-tools select{min-width:150px;}.lock-training-result{text-align:center;padding:30px 14px;}.lock-training-result h3{color:#d9bd7a;font-family:Cinzel,serif;}
.lock-admin-profiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.lock-admin-profiles fieldset{min-width:0;border:1px solid #544863;border-radius:8px;padding:12px;}.lock-admin-profiles legend{color:#d4bc81;padding:0 6px;}.lock-admin-profiles .alchemy-controls{grid-template-columns:repeat(2,minmax(0,1fr));}.lock-admin-checkbox{display:flex!important;align-items:center;gap:7px;flex-direction:row!important;}.lock-admin-checkbox input{width:auto!important;}
@keyframes lock-core-turn{to{transform:rotate(12deg)}}
@media(max-width:600px){.pin-lock{padding:12px;}.lock-header h3{font-size:20px;}.pin-lock .lock-controls{gap:8px;}.pin-lock .lock-controls>label{padding:8px;font-size:10px;}.lock-controls output{font-size:11px;margin-top:0;align-self:flex-start;}.lock-training-tools>button:last-child{margin-left:auto;}.lock-cutaway{min-height:165px;}.lock-admin-profiles{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.pin-lock *{animation:none!important;transition:none!important;}}

/* Compact desktop layout with large touch controls on small screens. */
.pin-lock .lock-cutaway{max-height:240px;}.pin-lock .lock-nudges{display:none;}.pin-lock .lock-actions{grid-template-columns:1fr 1fr auto;align-items:center;}.pin-lock .lock-actions [data-rune-skip]{margin:0;min-height:46px;padding:6px 10px;font-size:11px;}
.lock-feedback{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:4px 12px;align-items:center;}.lock-feedback>p{grid-column:1;grid-row:1/3;margin:0;}.lock-feedback>span{grid-column:2;grid-row:1;}.lock-feedback>progress{grid-column:2;grid-row:2;}.lock-feedback>[data-lock-turn-row]{grid-column:1/-1;}
@media(pointer:coarse){.pin-lock .lock-nudges{display:flex;}}
@media(max-width:600px){.pin-lock .lock-nudges{display:flex;}.pin-lock .lock-actions{grid-template-columns:1fr 1fr;}.pin-lock .lock-actions [data-rune-skip]{grid-column:1/-1;}.lock-feedback{grid-template-columns:1fr;}.lock-feedback>p{grid-column:1;grid-row:1;}.lock-feedback>span{grid-column:1;grid-row:2;}.lock-feedback>progress{grid-column:1;grid-row:3;}}

.pin-lock .lock-controls>.lock-control{display:flex;flex-direction:column;gap:8px;padding:12px;background:#211b2a;border:1px solid #584963;border-radius:9px;font-size:12px;color:#d3bb8c;min-width:0;box-sizing:border-box;}
.pin-lock .lock-control>label{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:0;font-size:12px;}.lock-value{font-size:12px;color:#c7bfd7;white-space:nowrap;}
@media(max-width:600px){.pin-lock .lock-controls>.lock-control{padding:8px;}.pin-lock .lock-control>label{font-size:10px;gap:4px;}.lock-value{font-size:11px;}}

.trap-chest-tray{margin-top:18px;padding:14px;border-top:1px solid #433653}.trap-chest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.trap-chest-card{padding:12px;background:#15121e;border:1px solid #727681;border-radius:9px;min-width:0}.trap-chest-card[data-rarity=rare]{border-color:#71b8ec}.trap-chest-card[data-rarity=epic]{border-color:#bc8cf0}.trap-chest-card[data-rarity=legendary]{border-color:#e8bd65}.trap-chest-card p{overflow-wrap:anywhere;font-size:12px}.trap-chest-card button{min-height:44px;width:100%;margin-top:10px}.trap-chest-pages{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:12px}.trap-chest-pages button{min-height:44px;min-width:44px}[data-chest-definition] details{margin:10px 0;padding:10px;border:1px solid #443652;border-radius:8px}[data-chest-definition] select,[data-chest-source] select{width:100%}@media(max-width:700px){.trap-chest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.trap-chest-grid{grid-template-columns:1fr}}

.chest-npc-service,.chest-npc-shop,.chest-npc-receipt{padding:14px;border:1px solid #55402d;border-radius:10px;margin:14px 0;background:#15111b}.chest-npc-quantity{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:12px 0}.chest-npc-quantity input{max-width:120px}.chest-npc-select{display:flex;gap:10px;align-items:center;cursor:pointer;min-height:70px}.chest-npc-select input{width:22px;height:22px;flex:none}.chest-npc-select:has(input:checked){background:#302315;border-color:#d2af57}.chest-npc-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.chest-npc-results div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #433547;padding:8px}.chest-npc-results strong{overflow-wrap:anywhere}.chest-npc-results span{white-space:nowrap;color:#d5b871}.chest-npc-shop input{max-width:100px}.chest-npc-service button,.chest-npc-shop button{min-height:44px}@media(max-width:700px){.chest-npc-results{grid-template-columns:1fr}}


/* Mestre das Fechaduras — illustrated workshop, scoped to the NPC panel. */
.chest-workshop{max-width:1080px;margin:auto;padding:22px;box-sizing:border-box;color:#dfdbe4;border:1px solid #615044;border-radius:14px;background:radial-gradient(ellipse at 8% 35%,#8a5c2826,transparent 48%),linear-gradient(145deg,#191521,#0e1018);box-shadow:0 12px 36px #0003;}
.chest-workshop-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;margin-bottom:14px;border-bottom:1px solid #74603855}.chest-workshop-eyebrow{font-size:10px;letter-spacing:2px;color:#b99c6e}.chest-workshop-header h2{font:21px Cinzel,serif;color:#e0c583;margin:6px 0}.chest-workshop-header p{font-size:12px;color:#a9a2b0;margin:6px 0 0}.chest-workshop-header>button{flex:none;width:auto!important}
.chest-workshop-wallet{display:flex;align-items:center;gap:10px;font-size:11px;color:#aaa1b0;margin:0 0 16px}.chest-workshop-wallet strong{color:#e2c479;font-size:15px}.chest-workshop-wallet>span:last-child{color:#c2a263}
.chest-workshop-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:22px;align-items:start}.chest-workshop-art{position:sticky;top:12px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 12px;border:1px solid #81633d66;border-radius:12px;background:radial-gradient(ellipse at 50% 45%,#99702e22,transparent 65%),#10121b;min-width:0;box-sizing:border-box;overflow:hidden}.chest-workshop-state{font-size:10px;color:#d3bc86;border:1px solid #8d744855;border-radius:20px;padding:6px 12px;background:#a1843012}.chest-workshop-scene{width:100%;max-width:250px;margin:10px 0}.chest-workshop-scene svg{display:block;width:100%;height:auto}.chest-workshop-art>strong{font:15px Cinzel,serif;color:#e2c784}.chest-workshop-art>p{font-size:11px;color:#a9a3af;line-height:1.7;max-width:210px;margin:10px 0 16px}.chest-workshop-seal{display:flex;gap:10px;align-items:center;justify-content:center;color:#a18962;font:10px Cinzel,serif;letter-spacing:1px;border-top:1px solid #735d3c44;padding-top:14px;width:100%}.chest-workshop-seal span{color:#d2b878}.chest-workshop-progress{width:100%;margin:0 0 16px}.chest-workshop-progress[hidden]{display:none}.chest-workshop-progress progress{display:block;width:100%;height:6px;accent-color:#d1ab5f;border:0;border-radius:6px;overflow:hidden}.chest-workshop-progress progress::-webkit-progress-bar{background:#292332}.chest-workshop-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#95723a,#edce84);border-radius:6px}.chest-workshop-progress progress::-moz-progress-bar{background:#d1ab5f}.chest-workshop-progress span{display:block;font-size:9px;color:#968c9d;margin-top:8px}
.chest-workshop .chest-npc-service{margin:0;background:linear-gradient(135deg,#211c2722,#17151f);padding:16px;border-color:#64533e66}.chest-workshop h3{font:14px Cinzel,serif;color:#ddc385;margin:0 0 12px}.chest-workshop h4{color:#d9c392;font-size:12px}.chest-workshop .chest-npc-service>p{font-size:11px;line-height:1.7;color:#afa7b9;margin:9px 0}.chest-workshop .chest-npc-service>p:nth-of-type(2){padding:10px;background:#91713412;border-radius:7px;color:#c3ae81}.chest-workshop .chest-npc-quantity{padding:12px 0;margin:4px 0 12px;border-bottom:1px solid #5d4b3c44;gap:8px}.chest-workshop .chest-npc-quantity>label,.chest-workshop .chest-npc-shop label{display:flex!important;flex-direction:column;align-items:flex-start;gap:5px;font-size:10px;color:#bcb0c6}.chest-workshop input[type=number]{height:34px!important;min-height:34px!important;max-width:85px;box-sizing:border-box;padding:5px 8px!important;color:#e8d29d;background:#100f17;border:1px solid #4e4052;border-radius:6px}.chest-workshop .chest-npc-quantity button{font-size:10px;padding:8px 10px;width:auto!important}.chest-workshop .trap-chest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chest-workshop .chest-npc-select{padding:10px;min-height:65px;background:linear-gradient(135deg,#211e29,#14141d);border-color:#73634866;transition:background .2s,border-color .2s}.chest-workshop .chest-npc-select[data-rarity=rare]{border-color:#71b8ec66}.chest-workshop .chest-npc-select[data-rarity=epic]{border-color:#bc8cf066}.chest-workshop .chest-npc-select[data-rarity=legendary]{border-color:#e8bd6588}.chest-workshop .chest-npc-select>span{font-size:10px;line-height:1.8;color:#aca5b5;min-width:0;overflow-wrap:anywhere}.chest-workshop .chest-npc-select strong{color:#e1d4b2;font-size:11px}.chest-workshop .chest-npc-select small{font-size:9px;color:#8e859c}.chest-workshop .chest-npc-select input{width:18px;height:18px;accent-color:#d7b96d}.chest-workshop .chest-npc-select:has(input:checked){background:#3a2b1f;border-color:#dab96b;box-shadow:inset 0 0 15px #be8d2212}.chest-workshop [data-service-summary]{border:1px solid #9c7d3b55;border-radius:8px;padding:12px;background:#b7913620;color:#e0c886!important;font-size:12px!important}.chest-workshop [data-service-clock]{font-size:15px!important;color:#ebd091!important;padding:16px 0}.chest-workshop [data-service-start],.chest-workshop [data-service-collect]{width:100%!important;border-radius:7px;background:linear-gradient(135deg,#d0b468,#9e7e39);color:#1b1510;border:1px solid #dbc17c;box-shadow:0 3px 12px #ad853a22;font-size:12px}.chest-workshop button:disabled{opacity:.45;cursor:default}.chest-workshop button:focus-visible,.chest-workshop input:focus-visible{outline:2px solid #e3c378;outline-offset:3px}.chest-workshop [data-service-message]{font-size:12px;line-height:1.6;color:#d3bc87;background:#a1843020;padding:10px 12px;border-radius:7px}.chest-workshop [data-service-message]:empty{display:none}.chest-workshop .chest-npc-receipt{background:#17141e;border-color:#5b4c3955;margin:18px 0;padding:12px 16px}.chest-workshop summary{cursor:pointer;color:#d6bd81;font:12px Cinzel,serif;min-height:28px;align-content:center}.chest-workshop .chest-npc-results{font-size:11px}.chest-workshop .chest-npc-results div{align-items:center;background:#221c2a55;border:1px solid #57464f55;border-radius:6px;padding:10px}.chest-workshop .chest-npc-results span{font-size:10px}.chest-workshop .chest-npc-shop{background:linear-gradient(120deg,#8b713015,#17141e);border-color:#5b4c3955;padding:16px;margin-bottom:0}.chest-workshop .chest-npc-shop .trap-chest-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.chest-workshop .chest-npc-shop article{border-color:#64533e66;background:#1c1823}.chest-workshop .chest-npc-shop article:before{content:'⌁';display:block;color:#d7bc82;font-size:36px;line-height:1;margin:2px 0 8px}.chest-workshop .chest-npc-shop h4{margin:5px 0}.chest-workshop .chest-npc-shop p{font-size:10px;color:#a9a0b4;line-height:1.7}.chest-workshop .chest-npc-shop button{border-radius:6px;font-size:11px}.chest-workshop .is-working .chest-workshop-pick{transform-origin:166px 152px;animation:chest-workshop-pick 2.5s ease-in-out infinite}.chest-workshop-sparks{opacity:.2}.chest-workshop .is-working .chest-workshop-lock{filter:drop-shadow(0 0 5px #d3ae4966)}.chest-workshop .is-working .chest-workshop-sparks,.chest-workshop .is-ready .chest-workshop-sparks{animation:chest-workshop-glow 3s ease-in-out infinite}.chest-workshop .is-ready .chest-workshop-lid{transform:translateY(-8px);filter:drop-shadow(0 6px 5px #e7c87766)}.chest-workshop .is-ready .chest-workshop-state{color:#c0ddbc;border-color:#75a17a66;background:#375f3820}
@keyframes chest-workshop-pick{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(9deg)}}@keyframes chest-workshop-glow{0%,100%{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}
@media(max-width:850px){.chest-workshop{padding:16px}.chest-workshop-layout{grid-template-columns:190px minmax(0,1fr);gap:14px}.chest-workshop .chest-npc-shop .trap-chest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chest-workshop .chest-npc-results{grid-template-columns:1fr}}
@media(max-width:600px){.chest-workshop-header{flex-wrap:wrap}.chest-workshop-header h2{font-size:19px}.chest-workshop-layout{grid-template-columns:1fr}.chest-workshop-art{position:static;padding:12px}.chest-workshop-scene{max-width:175px;margin:0}.chest-workshop-art>p{max-width:300px;margin:6px 0 10px}.chest-workshop-seal{display:none}.chest-workshop .chest-npc-service{padding:12px}.chest-workshop .chest-npc-quantity>label{width:100%}.chest-workshop .chest-npc-quantity button{flex:1;min-height:44px}.chest-workshop .chest-npc-shop .trap-chest-grid{grid-template-columns:1fr}.chest-workshop .chest-npc-results div{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.chest-workshop *{animation:none!important;transition:none!important}}

/* Keep all lock controls reachable on short screens and mobile viewports. */
:is(#rune-training-modal, #trap-chest-modal) .house-modal-sheet {
  display: block;
  box-sizing: border-box;
  min-height: 0;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 16px;
}
:is(#rune-training-modal, #trap-chest-modal) .pin-lock {
  width: 100%;
  min-width: 0;
}
@media (max-width: 600px) {
  :is(#rune-training-modal, #trap-chest-modal) .house-modal-sheet {
    width: calc(100% - 16px);
    max-height: calc(100vh - 16px);
    max-height: calc(100dvh - 16px);
  }
}

/* Wider lock workbench: diagram beside controls on desktop. */
@media (min-width: 601px) {
  :is(#rune-training-modal, #trap-chest-modal) .house-modal-sheet {
    width: min(1040px, calc(100% - 32px));
  }
  :is(#rune-training-modal, #trap-chest-modal) .pin-lock {
    max-width: none;
  }
}
@media (min-width: 900px) {
  :is(#rune-training-modal, #trap-chest-modal) .pin-lock {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 12px 24px;
    align-items: start;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-header {
    grid-column: 1 / -1; grid-row: 1;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-instructions {
    grid-column: 1 / -1; grid-row: 2; margin: 0;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-metrics {
    grid-column: 1 / -1; grid-row: 3;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-pick-select {
    grid-column: 1; grid-row: 4; min-width: 0;
  }
  :is(#rune-training-modal, #trap-chest-modal) [data-lockpick-info] {
    grid-column: 1; grid-row: 5; margin: 0; font-size: 12px; line-height: 1.6;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-chest {
    grid-column: 1; grid-row: 6 / 9; margin: 0;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-controls {
    grid-column: 2; grid-row: 4 / 6;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-feedback {
    grid-column: 2; grid-row: 6; margin: 0;
    grid-template-columns: minmax(0, 1fr) 120px;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-actions {
    grid-column: 2; grid-row: 7; gap: 8px;
  }
  :is(#rune-training-modal, #trap-chest-modal) .lock-help {
    grid-column: 2; grid-row: 8; margin: 0;
  }
}
