/* Palette and PNG skin shared with SDL modern_ui.inc / inventory redesign. */
:root{--bg:#172523;--panel:#1e2f2b;--raised:#2b4039;--well:#172523;--line:#847756;--text:#f4e8cc;--muted:#b7c8b1;--gold:#dfc492;--green:#9fc288;--wood:#6f5038;--wood-dark:#412f23;font-family:"Microsoft JhengHei","Noto Sans TC",system-ui,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(#101c1b66,#101c1b99),url("game-ui/parchment.png") center/cover fixed}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}button:disabled{cursor:default;filter:saturate(.25);opacity:.65}[hidden]{display:none!important}
.shell{position:relative;isolation:isolate;display:grid;grid-template-columns:204px minmax(0,1fr);gap:24px;max-width:1280px;min-height:740px;margin:24px auto;padding:88px 34px 34px;background:url("game-ui/parchment.png") center/100% 100%;box-shadow:0 18px 50px #0009;border-radius:20px}
.shell::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-style:solid;border-width:72px 28px 30px;border-image-source:url("game-ui/outer-frame.png");border-image-slice:100 45 45;border-image-repeat:stretch}
.game-header{z-index:3;position:absolute;top:8px;left:34px;right:34px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{color:#fff0c9;font-size:20px;font-weight:700;text-decoration:none;text-shadow:0 2px 2px #24180e;letter-spacing:2px}.game-header h1{position:absolute;left:50%;transform:translateX(-50%);width:360px;height:70px;margin:0;background:url("game-ui/title-plaque.png") center/100% 100% no-repeat;display:grid;place-items:center;font-size:25px;letter-spacing:4px;color:#fff0c9;text-shadow:0 2px 2px #2d180b}.header-note{font-size:12px;color:#e4d4b0;letter-spacing:1px}
.sidebar{display:flex;flex-direction:column;gap:22px;padding-right:22px;border-right:1px solid #84775688;min-width:0}.nav-current,.section-plaque,.side-label{background:url("game-ui/section-plaque.png") center/100% 100% no-repeat;color:#fff0c9;text-shadow:0 2px 2px #2d180b;display:flex;align-items:center;justify-content:center;min-height:46px;font-size:17px;font-weight:600;letter-spacing:1px;margin:0;padding:8px 20px}.nav-current{background-image:url("game-ui/button-primary.png");font-size:16px;min-height:50px}.side-label{font-size:15px;padding:8px 14px;gap:14px;margin-bottom:16px}.side-label span{font-size:12px;letter-spacing:0;color:#dbcba8}.account{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:7px 5px;min-width:0;border-bottom:1px solid #84775655;font-size:13px}.account>span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.account-icon{width:33px;height:36px;flex-shrink:0;background:url("game-ui/slot-empty.png") center/100% 100%;display:grid;place-items:center;color:var(--gold)}.account button{margin-left:auto;min-width:32px;min-height:40px;font-size:20px}.side-bottom{margin-top:auto;color:var(--muted);font-size:13px;line-height:1.8}.side-bottom p{font-size:12px;margin:10px 0 18px}.live-dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:5px}
main{min-width:0}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.section-plaque{min-width:190px;width:max-content;max-width:100%;font-size:18px}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px}.header-actions span{font-size:13px;color:var(--green)}.outline,.primary{border:0;background:url("game-ui/button-secondary.png") center/100% 100% no-repeat;color:#fff0c9;min-height:48px;padding:12px 20px;font-size:14px;text-shadow:0 1px 2px #2d180b;font-weight:600;transition:filter .12s,transform .12s}.primary{background-image:url("game-ui/button-primary.png")}.outline:hover,.primary:hover{filter:brightness(1.17)}.outline:active,.primary:active{transform:translateY(1px);filter:brightness(.9)}.full{width:100%}.text-button{border:0;background:transparent;color:var(--muted);padding:4px}.text-button:hover{color:#fff0c9}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stats article,.character-card,.auth-card,.empty{border:2px solid var(--line);border-radius:9px;background:#1e2f2be8;box-shadow:inset 0 1px #c4d0ad25,0 3px 0 #101b1790}.stats article{padding:16px 18px;text-align:center}.stats article>span{font-size:14px;color:var(--text)}.stats strong{display:block;font-size:29px;line-height:1.4;font-weight:600;margin:7px 0;color:var(--gold);font-variant-numeric:tabular-nums}.stats strong small{font-size:12px;color:var(--muted);font-weight:400}.stats article>div{font-size:11px;color:var(--muted)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:24px 0 16px}.section-header h2 span{font-size:13px;margin-left:10px;color:#d3dfbf}.history-toggle{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px;cursor:pointer;min-height:44px}.history-toggle input{width:16px;height:16px;accent-color:var(--green)}
.characters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.character-card{padding:16px;min-width:0}.card-header{display:flex;align-items:center;gap:10px;min-height:54px}.avatar{width:47px;height:49px;flex-shrink:0;background:url("game-ui/slot-empty.png") center/100% 100%;color:var(--gold);display:grid;place-items:center;font-size:23px}.card-title{min-width:0;flex:1}.card-title h3{font-size:18px;font-weight:600;color:#fff0c9;text-shadow:0 1px 2px #0008;margin:0 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-title>span{font-size:12px;color:var(--muted)}.badge{white-space:nowrap;font-size:12px;padding:5px 8px;color:#dbe9c9;background:#365545;border:1px solid #829b6c;border-radius:4px}.badge.stale,.badge.stopping{color:#f0d7a3;background:#58462e;border-color:#aa8f5d}.badge.stopped{background:#303c36;color:#c0c6b7;border-color:#727866}.character-level{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 6px}.character-level>span{font-size:13px;color:var(--muted)}.character-level strong{font-size:25px;font-weight:500;color:var(--gold);font-variant-numeric:tabular-nums}.map-line{display:flex;align-items:center;gap:7px;font-size:13px;min-height:40px;border-bottom:1px solid #84775666;padding:5px 0 12px;color:var(--text)}.map-line>div{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-line small{margin-left:auto;color:var(--muted);font-size:11px}.map-symbol{font-size:22px;color:var(--gold)}.pet{background:#172523;border:1px solid #6f6b50;border-radius:6px;padding:13px;margin:14px 0;box-shadow:inset 0 2px 4px #0004}.pet-header{display:flex;align-items:center;gap:9px}.pet-symbol{width:37px;height:39px;flex-shrink:0;background:url("game-ui/slot-empty.png") center/100% 100%;color:var(--gold);display:grid;place-items:center;font-size:23px}.pet-header small{font-size:11px;color:var(--muted)}.pet-header h4{font-size:15px;font-weight:500;margin:4px 0 0}.pet-header strong{margin-left:auto;white-space:nowrap;font-size:15px;color:var(--green);font-weight:500}.skills{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.skills>span,.login-trail span{font-size:12px;color:#d9e2c8;background:#2b4039;border:1px solid #788264;border-radius:4px;padding:5px 8px}.muted{color:var(--muted);font-size:12px}.card-meta,.card-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:11px;color:var(--muted);line-height:1.8}.card-foot{border-top:1px solid #84775655;margin-top:10px;padding-top:8px;font-size:10px}.stop-reason{font-size:12px;color:#e5b995;line-height:1.7;margin:10px 0 0}.character-card.stale{border-color:#aa8f5d}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty h3{color:var(--text);font-size:18px}.empty p{font-size:14px;line-height:1.9}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid #84775688;font-size:11px;color:var(--muted)}
.login-panel{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center;min-height:480px}.login-copy{padding:12px}.login-copy>.section-plaque{width:230px}.login-copy p{font-size:15px;line-height:2;max-width:360px;margin:24px 0}.login-copy p.muted{font-size:13px}.login-trail{display:flex;flex-wrap:wrap;gap:8px}.auth-card{padding:22px}.auth-card h3{min-width:0;width:100%;font-size:18px;margin:0 0 12px}form label{display:block;font-size:14px;color:var(--muted);margin:20px 0 9px}input:not([type=checkbox]){width:100%;min-height:48px;background:#172523;color:var(--text);border:2px solid #7a7659;border-radius:6px;padding:10px 12px;box-shadow:inset 0 2px 5px #0005;outline:none}input:not([type=checkbox]):focus{border-color:var(--green);box-shadow:0 0 0 2px #9fc28830}form .primary{margin-top:24px;min-height:52px}form small{display:block;font-size:12px;color:var(--muted);line-height:1.7;margin-top:14px;text-align:center}.error,.success{padding:12px 15px;border-radius:5px;font-size:13px;margin:0 0 18px;line-height:1.7}.error{background:#4b332a;color:#f0c2a7;border:1px solid #b58e68}.success{background:#2b4039;color:#d9e2c8;border:1px solid #84966f}dialog{background:#1e2f2b url("game-ui/parchment.png") center/cover;color:var(--text);border:7px solid #6f5038;outline:2px solid #b2986f;border-radius:10px;width:min(460px,calc(100% - 36px));padding:30px;box-shadow:inset 0 0 0 1px #b2986f,0 15px 60px #000a}dialog::backdrop{background:#0e0a07b8}dialog h2{margin:0 auto 18px;font-size:18px;min-width:220px}dialog p{color:var(--muted);font-size:13px;line-height:1.8}.dialog-close{position:absolute;right:4px;top:4px;width:36px;height:36px;background:url("game-ui/close-button.png") center/contain no-repeat;font-size:0;color:transparent}
@media(max-width:1100px){.shell{margin:12px;grid-template-columns:180px minmax(0,1fr);gap:18px;padding:84px 28px 30px}.sidebar{padding-right:16px}.characters{grid-template-columns:1fr}.login-panel{grid-template-columns:1fr;gap:16px;min-height:0}.login-copy{padding:0}.login-copy p{max-width:none;margin:16px 0}.login-copy p.muted{margin:14px 0}.auth-card{max-width:500px;width:100%}.stats article{padding:14px 10px}.stats strong{font-size:26px}.header-note{display:none}.brand{font-size:17px}.game-header h1{width:330px}}
@media(max-width:700px){.shell{display:block;margin:8px;padding:86px 20px 24px;min-height:calc(100vh - 16px)}.game-header{left:24px;right:24px}.brand{display:none}.game-header h1{width:min(320px,100%);font-size:23px;letter-spacing:3px}.sidebar{border:0;border-bottom:1px solid #84775688;padding:0 0 18px;margin-bottom:18px;gap:14px}.nav-current{display:none}.side-label{width:180px;margin-bottom:10px}.side-bottom{margin-top:0;display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:12px}.side-bottom p{flex:1;margin:0 8px;min-width:180px;font-size:11px}.side-bottom .outline{width:auto;min-height:42px;font-size:12px;padding:10px 16px}#accounts{display:flex;flex-wrap:wrap;gap:8px}.account{margin:0;border:1px solid #84775666;border-radius:5px;padding:3px 8px}.account-icon{width:27px;height:30px}.account button{min-height:36px}#add-account{margin-top:12px;width:180px;min-height:44px;font-size:13px}.page-header{gap:8px;align-items:center;margin-bottom:16px}.section-plaque{min-width:150px;min-height:44px;font-size:16px;padding:8px 14px}.header-actions{gap:8px;flex-direction:column;align-items:flex-end}.header-actions span{font-size:11px}.header-actions .outline{min-height:40px;padding:8px 16px;font-size:12px}.stats{gap:7px}.stats article{padding:12px 5px}.stats article>span{font-size:12px}.stats strong{font-size:25px;margin:7px 0}.stats strong small{font-size:10px}.stats article>div{font-size:10px;line-height:1.5}.section-header{gap:8px;margin-top:20px}.history-toggle{font-size:11px;gap:4px}.history-toggle input{width:14px;height:14px}.character-card{padding:14px}.badge{font-size:11px}.card-title h3{font-size:17px}.map-line{font-size:12px}.login-panel{gap:14px}.auth-card{max-width:none;padding:20px}.login-copy p{font-size:14px}.login-trail span{font-size:11px}.login-copy>.section-plaque{display:none}.login-copy p.muted{margin-bottom:0}.login-copy p:first-of-type{margin-top:0}footer{font-size:10px}dialog{padding:27px 20px}dialog h2{min-width:210px}}
@media(min-width:1101px) and (max-width:1279px){.shell{margin:16px}.card-header{gap:8px}.card-title h3{font-size:17px}.badge{font-size:11px;padding:5px 6px}}
