/* Same native stage, frame, typography, header and scale on both sides. */
.upgrade-window[hidden]{display:none!important}.upgrade-window{position:fixed;z-index:55;top:max(8px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);isolation:isolate;color:#e4d5a4}.upgrade-stage{position:absolute;left:0;top:0;width:672px;height:804px;display:grid;grid-template-columns:332px 332px;gap:8px;transform-origin:0 0;font:12px/1.35 'TG Vietnamese Serif',Georgia,serif}.upgrade-column{position:relative;box-sizing:border-box;width:332px;height:803.846px;border:1px solid #bd9a45;border-radius:3px;background:#080b07;box-shadow:inset 0 0 0 3px #3d2c13,0 4px 15px #0009;overflow:hidden}.upgrade-column button,.upgrade-column select{box-sizing:border-box;min-width:0;min-height:0;margin:0;border:1px solid #7d6837;border-radius:1px;color:#e4d5a4;background:#241c10;font:12px/1.35 'TG Vietnamese Serif',Georgia,serif;cursor:pointer;padding:3px 5px;box-shadow:none;touch-action:manipulation}.upgrade-column button:disabled{opacity:.4;cursor:default}.upgrade-column button:focus-visible{outline:2px solid #f2d47d;outline-offset:-2px}.upgrade-column button[aria-pressed=true]{border-color:#d7b35c;background:#4a371b;color:#fff0b7}.upgrade-column .inventory-heading{font:600 17px/25px 'TG Vietnamese Serif',Georgia,serif}.upgrade-column [data-up-close]{position:absolute;right:3px;top:1px;width:23px;height:23px;padding:0;font:23px/20px Georgia,serif}.upgrade-tabs{position:absolute;left:12px;right:12px;top:34px;display:flex;gap:4px;height:25px}.upgrade-tabs button{flex:1;padding:2px}.up-type-region{position:absolute;left:12px;right:12px;top:68px;height:75px}.up-type-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.up-type-options button{height:25px;padding:2px;font-size:12px}.up-type-note{font-size:10px;color:#ad9b71;line-height:14px;margin:5px 0 0}.up-recipe-label{display:block;font-size:12px}.up-recipe-label select{width:100%;margin-top:5px;height:29px;padding:3px}.upgrade-selected-name{position:absolute;top:145px;left:12px;right:12px;height:22px;margin:0;text-align:center;color:#efda95;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.upgrade-slots{position:absolute;left:56px;top:172px;width:220px;height:210.78px;background:transparent url('assets/ui/upgrade-ring.png') center/100% 100% no-repeat;image-rendering:pixelated}.upgrade-slots>button{position:absolute;width:20.958%;height:21.875%;padding:0;border:1px solid transparent;border-radius:0;background:transparent;display:grid;place-items:center}.upgrade-slots>button>span{display:none}/* Keep native trigram artwork visible through transparent item art. */
.upgrade-slots>button[data-filled=true],.upgrade-slots>button.upgrade-primary[data-filled=true]{background:transparent;border-color:transparent;box-shadow:none}.upgrade-slots>button:hover{outline:1px solid #e8ecd1;outline-offset:-2px}.upgrade-slots canvas{width:100%;height:100%;max-width:54px;max-height:54px;object-fit:contain;image-rendering:pixelated}.upgrade-slots small{position:absolute;z-index:1;right:1px;top:0;font:11px/13px 'TG Vietnamese Serif',Georgia,serif;color:#fff0ac;background:#09130cbb;text-shadow:1px 1px #000}.upgrade-slots small.missing{color:#e69079}.upgrade-money{position:absolute;left:12px;right:12px;top:395px;height:26px;margin:0;padding:0 6px;display:flex;align-items:center;gap:6px;border:1px solid #68532e;background:#13140c;font-size:12px}.upgrade-money canvas{width:22px;height:22px;object-fit:contain;image-rendering:pixelated}.upgrade-money b{margin-left:auto;color:#e4d77e}.up-support{position:absolute;left:12px;right:12px;top:431px;height:45px}.up-support label{display:flex;align-items:center;gap:5px;font-size:11px}.up-support select{margin-left:auto;width:100px;height:25px;padding:2px}.up-support small{display:block;color:#ad9b71;font-size:10px;margin-top:3px}.upgrade-formula{position:absolute;left:12px;right:12px;top:486px;height:218px;padding:6px;box-sizing:border-box;border:1px solid #54482a;background:#0c1009;overflow:auto;scrollbar-width:thin}.upgrade-formula h3{font-size:12px;color:#e8d399;border-bottom:1px solid #54482a;margin:0 0 6px;padding-bottom:4px}.up-quote-summary{display:flex;justify-content:space-between;gap:4px;font-size:11px;color:#e4d77e;margin-bottom:8px}.upgrade-formula p[data-up-requirement]{display:flex;justify-content:space-between;gap:4px;font-size:11px;margin:4px 0}.upgrade-formula small{font-size:10px;color:#9ec87f;white-space:nowrap}.upgrade-formula .missing,.upgrade-formula .missing small{color:#e69079}.up-failure{font-size:10px;color:#e0b374;margin:6px 0}.upgrade-formula .up-consumption{font-size:10px;line-height:14px;color:#ad9b71;margin:8px 0 0}.up-actions{position:absolute;left:12px;right:12px;top:715px;display:flex;gap:6px;height:28px}.up-actions button{flex:1}.up-actions [data-up-execute]{border-color:#a8873e;background:#4a371b;color:#fff0b7}.up-result{position:absolute;left:12px;right:12px;top:752px;height:40px;overflow:auto;color:#e4d77e;font-size:11px;line-height:15px}.upgrade-native-inventory{position:relative;width:332px;height:804px}.upgrade-native-inventory .inventory-in-upgrade{position:relative!important;left:0!important;top:0!important;right:auto!important;max-width:none;z-index:auto}
/* Native frame and text shared with inventory/character windows. */
.ktc-window{border-radius:3px;border-color:#bd9a45;background:#080b07;box-shadow:inset 0 0 0 3px #3d2c13,0 4px 18px #000a;font-family:'TG Vietnamese Serif',Georgia,serif}.ktc-window header{padding:3px 5px 3px 10px;min-height:30px;background:linear-gradient(100deg,#20180d,#2a2114,#16130b);border-color:#a8873e}.ktc-window h2{font:600 17px/25px 'TG Vietnamese Serif',Georgia,serif;margin:0;color:#e8d399}.ktc-window button,.ktc-window input,.ktc-window h3{font-family:'TG Vietnamese Serif',Georgia,serif}.ktc-window button{border-radius:1px;border-color:#7d6837;background:#241c10;color:#e4d5a4}.ktc-window header>button{width:28px;min-height:25px;height:25px;padding:0;font:23px/20px Georgia,serif}.ktc-tabs button[aria-selected=true]{border-color:#d7b35c;background:#4a371b;color:#fff0b7}.ktc-good,.ktc-good-icon,.ktc-buy-row input{border-radius:1px}.ktc-good{border-color:#54482a;background:#0c1009}.ktc-good-icon{border-color:#68532e}.ktc-wallet,.ktc-window footer{background:#10150d}.ktc-buy-row>button{background:#4a371b;border-color:#a8873e}.equipment-tooltip .equipment-line.fs-stars,.game-tooltip .equipment-line.fs-stars{display:table!important;width:max-content!important;max-width:100%;box-sizing:border-box;margin:6px auto!important;text-align:center!important;white-space:nowrap;color:#ffde4e;border:1px solid #e4be42;padding:2px 5px;letter-spacing:1px}

.up-type-region{top:40px;height:100px}.up-auto-title{text-align:center;color:#e8d399;font-size:12px;margin:4px 0 8px}.up-auto-route{text-align:center;color:#e4d77e;margin:8px 0;font-size:12px}.up-type-note{font-size:11px;line-height:16px;text-align:center}
.equipment-tooltip .equipment-line.fs-upgrade,.game-tooltip .equipment-line.fs-upgrade{color:#4295ff!important;text-shadow:-1px -1px #000,1px -1px #000,-1px 1px #000,1px 1px #000!important}

.equipment-tooltip .equipment-line.fs-stars,.game-tooltip .equipment-line.fs-stars{border:0!important}.equipment-tooltip .equipment-line.fs-stars[data-upgrade-max=true],.game-tooltip .equipment-line.fs-stars[data-upgrade-max=true]{border:1px solid #e4be42!important}
.up-auto-title{margin-right:60px}.upgrade-column [data-up-clear]{position:absolute;right:12px;top:41px;font-size:10px;padding:2px 4px}.up-support p{margin:0;font-size:11px}

/* Paired source items: red/blue gems, weapon/armor helpers, HP/MP tiers. */
.ktc-goods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 10px 10px;align-content:start}.ktc-good{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:8px;min-width:0;border:1px solid #68532e;background:#0c1009}.ktc-good .ktc-good-icon{align-self:center;flex:none;width:50px;height:50px;min-height:50px;padding:0;background:#090e07;border:1px solid #68532e;box-shadow:inset 0 0 8px #776c3526;display:grid;place-items:center}.ktc-good-icon canvas{width:46px;height:46px}.ktc-good-info{text-align:center}.ktc-good h3{height:36px;display:grid;place-items:center;font-size:12px;line-height:16px;margin:0 0 3px}.ktc-good h3 button{font:inherit;line-height:16px;min-height:0;height:auto;border:0;background:none;padding:0;color:#efda95}.ktc-good-info>small{font-size:10px;line-height:14px}.ktc-buy-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:5px;margin-top:auto}.ktc-buy-row>strong{grid-column:1/-1;text-align:center;font-size:14px;line-height:18px}.ktc-buy-row>strong span{font-size:12px}.ktc-buy-row label{display:flex;justify-content:center;gap:3px;font-size:9px;min-width:0}.ktc-buy-row input{width:35px;height:30px;font-size:13px}.ktc-buy-row>button{min-width:0;min-height:30px;height:30px;font-size:12px;padding:0 4px}.ktc-tooltip-icon{display:grid;place-items:center;margin:10px auto;width:64px;height:64px;border:1px solid #68532e;background:#090e07}.ktc-tooltip-icon canvas{width:60px;height:60px;object-fit:contain;image-rendering:pixelated}.ktc-window footer{padding:6px 10px}.ktc-window footer p{font-size:11px}.ktc-wallet{padding:8px 10px}.ktc-tabs{padding:3px 10px 8px}

.ktc-buy-row{width:100%;min-width:0;box-sizing:border-box}.ktc-buy-row>button{box-sizing:border-box;width:100%;max-width:100%;margin:0}.ktc-buy-row input{box-sizing:border-box;min-width:0}.ktc-good h3 button{box-sizing:border-box;width:100%;max-width:100%}

/* Compact rows use the newcomer menu's native frame, sizing and spacing. */
.ktc-window{width:min(352px,calc(100vw - 24px));padding:7px;max-height:calc(100dvh - 100px);font:13px/1.4 'TG Vietnamese Serif',Georgia,serif}.ktc-window h2{font:600 13px/25px 'TG Vietnamese Serif',Georgia,serif}.ktc-goods{display:flex;flex-direction:column;gap:5px;padding:3px;scrollbar-width:thin}.ktc-good{display:grid;grid-template-columns:32px minmax(0,1fr) 37px 42px;grid-template-rows:auto;gap:5px;align-items:center;min-height:53px;padding:5px 6px;background:#211a0f;border:1px solid #8f773b;border-radius:2px}.ktc-good .ktc-good-icon{grid-column:1;grid-row:1;width:32px;height:32px;min-height:32px;background:#090c06;border:0;box-shadow:none}.ktc-good-icon canvas{width:32px;height:32px}.ktc-good-info{grid-column:2;grid-row:1;text-align:left}.ktc-good h3{display:block;height:auto;min-height:0;margin:0;font-size:12px;line-height:16px}.ktc-good h3 button{text-align:left;color:#e4d5a4}.ktc-buy-row{display:contents}.ktc-buy-row>strong{grid-column:2;grid-row:2;text-align:left;font-size:11px;line-height:14px;margin-top:-4px}.ktc-buy-row>strong span{font-size:11px}.ktc-good-info{align-self:start}.ktc-good .ktc-good-icon{grid-row:1/3}.ktc-buy-row label{grid-column:3;grid-row:1/3;font-size:0;gap:0}.ktc-buy-row input{width:36px;height:30px;font-size:13px;border:1px solid #8f773b;border-radius:2px;background:#090c06}.ktc-buy-row>button{grid-column:4;grid-row:1/3;width:42px;max-width:42px;height:32px;min-height:32px;align-self:center;border:1px solid #8f773b;border-radius:2px;background:#211a0f;font:12px/1.4 'TG Vietnamese Serif',Georgia,serif;padding:3px}.ktc-tabs{padding:3px 3px 7px;gap:5px}.ktc-tabs button{min-height:32px;height:32px;font-size:12px;border-radius:2px;background:#211a0f}.ktc-wallet{padding:6px 3px}.ktc-wallet canvas{width:25px;height:25px}.ktc-wallet span{font-size:11px}.ktc-wallet b{font-size:15px}.ktc-wallet button{min-height:30px;font-size:12px;padding:2px 6px}.ktc-window header{padding:0 0 0 6px;min-height:30px}.ktc-window footer{padding:5px 3px 0;margin-top:6px}.ktc-window footer p{font-size:11px;margin-bottom:3px}.ktc-window footer>small{font-size:10px}

.ktc-good .ktc-good-icon{background:transparent;border:0;box-shadow:none;overflow:visible}.ktc-buy-row label,.ktc-buy-row input,.ktc-buy-row>button{box-sizing:border-box;height:32px;min-height:32px;align-self:center;margin:0}.ktc-buy-row label{display:flex;align-items:center;justify-content:center}.ktc-buy-row input{width:100%;padding:3px 0;line-height:24px;text-align:center;appearance:textfield;-moz-appearance:textfield}.ktc-buy-row input::-webkit-inner-spin-button,.ktc-buy-row input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ktc-wallet canvas{display:none}

.ktc-good{grid-template-columns:32px minmax(0,1fr) 42px 42px}.ktc-buy-row label{width:42px}.ktc-buy-row input{width:42px}

.inventory-window .inventory-cell.ktc-inventory-item{border:0;outline:0;padding:0!important;background:transparent}.inventory-cell.ktc-inventory-item canvas{width:100%;height:100%;object-fit:contain}.inventory-window .inventory-cell.ktc-inventory-item.selected{outline:0;background:transparent}.upgrade-selected-name{top:75px}.upgrade-slots{top:115px}.upgrade-money{top:345px}.upgrade-formula{top:395px;height:290px}.up-actions{top:715px}.up-actions button{flex:1}[data-up-quantity-error]{color:#e69079}

/* The source ring fills the native pane, with even 16px gutters. */
.upgrade-selected-name{top:40px;height:22px}.upgrade-slots{left:16px;top:70px;width:300px;height:287.425px}.upgrade-money{top:370px}.upgrade-formula{top:410px;height:290px}.up-actions{top:715px}

.upgrade-slots{left:50%;transform:translateX(-50%)}

.inventory-cell canvas[data-item-icon="ktc/xu.png"]{image-rendering:pixelated;image-rendering:crisp-edges}

.upgrade-slots{width:330px;height:316.168px}.upgrade-money{top:400px}.upgrade-formula{top:440px;height:260px}
/* One source pixel stays one screen CSS pixel; outer window transforms cancel out. */
.inventory-cell canvas[data-item-icon="ktc/xu.png"]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(32px / var(--inventory-scale,1) / var(--upgrade-scale,1));height:calc(32px / var(--inventory-scale,1) / var(--upgrade-scale,1));max-width:none;max-height:none;image-rendering:pixelated}

.equipment-tooltip .equipment-line.fs-upgrade,.game-tooltip .equipment-line.fs-upgrade{color:#66ddff!important;text-shadow:-1px 0 #000,1px 0 #000,0 -1px #000,0 1px #000,-1px -1px #000,1px -1px #000,-1px 1px #000,1px 1px #000!important}

/* Item art has no frame; the original inventory slot remains visible. */
.inventory-window .inventory-cell.ktc-inventory-item{border:1px solid #383320;outline:0;padding:2px!important;background:transparent}
.inventory-cell.ktc-inventory-item canvas{display:block;box-sizing:border-box;width:100%;height:100%;border:0;background:transparent;object-fit:contain}
.inventory-window .inventory-cell.ktc-inventory-item.selected{outline:1px solid #fff0b7;outline-offset:-1px;background:transparent}

.inventory-cell canvas[data-item-icon="ktc/xu.png"]{visibility:hidden}.inventory-currency-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden}.inventory-native-coin{position:absolute;width:18px;height:18px;image-rendering:pixelated;border:0;background:transparent;pointer-events:none}

/* Match the inventory cell's content area, independently of the larger ring slot. */
.upgrade-slots canvas[data-item-icon]{width:var(--upgrade-item-size,34px);height:var(--upgrade-item-size,34px);max-width:var(--upgrade-item-size,34px);max-height:var(--upgrade-item-size,34px);object-fit:contain}
.upgrade-slots canvas[data-item-icon^="ktc/"]{width:38px;height:38px;max-width:38px;max-height:38px}

/* Display the 138px source at 1:1 after the enclosing window transform. */
.upgrade-slots{width:calc(138px / var(--upgrade-scale,1));height:calc(138px / var(--upgrade-scale,1))}
.upgrade-money{top:calc(85px + 138px / var(--upgrade-scale,1))}
.upgrade-formula{top:calc(125px + 138px / var(--upgrade-scale,1));height:calc(575px - 138px / var(--upgrade-scale,1))}

.upgrade-slots canvas[data-item-icon]{background:transparent;border:0;box-shadow:none}

/* Compact upgrade pane follows the native ring width; inventory keeps its own full frame. */
.upgrade-window>.upgrade-stage{width:calc(var(--upgrade-left-width) + 340px);grid-template-columns:var(--upgrade-left-width) 332px}
.upgrade-window .upgrade-column{width:var(--upgrade-left-width);height:calc(380px + 138px / var(--upgrade-scale,1))}
.upgrade-window .upgrade-formula{height:150px}
.upgrade-window .up-actions{top:calc(285px + 138px / var(--upgrade-scale,1))}
.upgrade-window .up-result{top:calc(325px + 138px / var(--upgrade-scale,1))}
.equipment-tooltip .equipment-line.fs-stars,.game-tooltip .equipment-line.fs-stars,.equipment-tooltip .equipment-line.fs-stars[data-upgrade-max=true],.game-tooltip .equipment-line.fs-stars[data-upgrade-max=true]{border:0!important;padding:0!important;letter-spacing:0;line-height:0}
.native-upgrade-stars{display:inline-block;position:relative;width:var(--star-width);height:11px;vertical-align:middle}
.native-upgrade-stars>span{display:block;position:absolute;left:0;top:0;width:var(--star-width);height:11px;background:url('assets/ui/equipment-stars/yellow.png') no-repeat}
.native-upgrade-stars-max{width:172px;height:17px;background:url('assets/ui/equipment-stars/frame12.png') no-repeat;animation:native-star-frame12 8.9s steps(88) infinite}
.native-upgrade-stars-max>span{left:3px;top:3px}
.equipment-max-star{display:inline-block;width:12px;height:11px;margin-right:4px;vertical-align:0;background:url('assets/ui/equipment-stars/blue.png') no-repeat;text-shadow:none}
@keyframes native-star-frame12{from{background-position:0 0}to{background-position:0 -1496px}}
@media(prefers-reduced-motion:reduce){.native-upgrade-stars-max{animation:none}}

.upgrade-tabs select{flex:2;min-width:0}.upgrade-tabs button{flex:1}.service-navigation article{border-bottom:1px solid #66542d;padding:4px}.service-navigation article p{margin:5px 0}.service-navigation::backdrop{background:#0005}.service-navigation p{margin:5px 0}

/* Keep recipe controls above the native SPR ring at every stage scale. */
.upgrade-window .upgrade-tabs{top:34px;height:25px}.upgrade-window .up-type-region{top:64px;height:30px;font-size:0}.upgrade-window .up-type-region select{margin:0;font-size:12px;height:29px}.upgrade-window .upgrade-selected-name{top:98px;height:22px}.upgrade-window .upgrade-slots{top:128px}.upgrade-window .upgrade-money{top:calc(143px + 138px / var(--upgrade-scale,1))}.upgrade-window .upgrade-formula{top:calc(183px + 138px / var(--upgrade-scale,1));height:190px}.upgrade-window .up-actions{top:calc(383px + 138px / var(--upgrade-scale,1))}.upgrade-window .up-result{top:calc(423px + 138px / var(--upgrade-scale,1))}.upgrade-window .upgrade-column{height:calc(478px + 138px / var(--upgrade-scale,1))}

/* The three NPC workstations share the original compact crafting frame. */
.upgrade-slots small{left:1px;right:auto;top:0;bottom:auto}
.upgrade-window .upgrade-selected-name{top:40px}.upgrade-window .upgrade-slots{top:70px}.upgrade-window .upgrade-money{top:calc(85px + 138px / var(--upgrade-scale,1))}.upgrade-window .upgrade-formula{top:calc(125px + 138px / var(--upgrade-scale,1));height:190px}.upgrade-window .up-actions{top:calc(325px + 138px / var(--upgrade-scale,1))}.upgrade-window .up-result{top:calc(365px + 138px / var(--upgrade-scale,1))}.upgrade-window .upgrade-column{height:calc(420px + 138px / var(--upgrade-scale,1))}

/* Reserve title space for close; wrap recipe names without truncation. */
.upgrade-window .upgrade-column .inventory-heading{font-size:calc(11px / var(--upgrade-scale,1));padding-left:4px;padding-right:calc(25px / var(--upgrade-scale,1));white-space:nowrap;text-align:left}
.upgrade-window .upgrade-selected-name{top:40px;height:44px;white-space:normal;overflow:visible;text-overflow:clip;font-size:12px;line-height:15px;overflow-wrap:anywhere}
.upgrade-window .upgrade-slots{top:92px}
.upgrade-window .upgrade-money{top:calc(107px + 138px / var(--upgrade-scale,1));gap:4px;padding:0 3px;font-size:11px;white-space:nowrap}
.upgrade-window .upgrade-money canvas{flex:0 0 18px;width:18px;height:18px}
.upgrade-window .upgrade-money span{flex:none}
.upgrade-window .upgrade-money b{min-width:0;font-size:10px;white-space:nowrap}
.upgrade-window .upgrade-formula{top:calc(147px + 138px / var(--upgrade-scale,1));overflow:visible;font-size:12px;line-height:16px}
.upgrade-window .up-quote-summary{display:grid;grid-template-columns:1fr;font-size:11px;overflow-wrap:anywhere}
.upgrade-window .upgrade-formula p[data-up-requirement]{font-size:11px;line-height:15px}
.upgrade-window .upgrade-formula p[data-up-requirement]>span{min-width:0;overflow-wrap:anywhere}
.upgrade-window .up-result{overflow:visible;font-size:11px;line-height:15px;overflow-wrap:anywhere}
.up-recipe-pages{display:flex;align-items:center;justify-content:center;gap:8px;margin:3px 0 6px}.up-recipe-pages button{width:28px;height:25px;min-height:25px;padding:0}.up-recipe-pages span{font-size:11px}
