/* Header, perimeter and footer never belong to the scroll surface. */
body.desktop-client #panel[data-native-panel=npc] .native-npc-service-pane{
 border-width:28px 28px 22px;border-image-slice:28 28 22;border-image-width:28px 28px 22px;border-image-repeat:stretch;
 background:#151b14;display:flex;flex-direction:column;padding:0;isolation:isolate;
}
body.desktop-client #panel[data-native-panel=npc] .native-npc-services{
 flex:1 1 0;min-height:0;height:0;max-height:none;box-sizing:border-box;
 margin:7px 0 0;padding:9px 10px;overflow-x:hidden;overflow-y:auto;
 border:1px solid #776e51;border-radius:4px;background:linear-gradient(#101710e8,#1a2017e8);
 clip-path:inset(0 round 4px);contain:paint;overscroll-behavior:contain;touch-action:pan-y;
}
body.desktop-client #panel[data-native-panel=npc] .native-npc-services>*{flex-shrink:0}
body.desktop-client #panel[data-native-panel=npc] .native-npc-service-title{left:14px;top:-24px;width:calc(100% - 35px);background:none}
body.desktop-client #panel[data-native-panel=npc] .native-npc-footer{flex:0 0 40px;min-height:40px;margin:0;padding:4px 0 0;box-sizing:border-box;align-items:center}
body.desktop-client #panel[data-native-panel=npc] .native-npc-footer>button{min-height:30px;margin:0}
/* The generic badge is baked into the source frame. Continue its own header
   grain over that area for every NPC service, including inns and banks. */
body.desktop-client #panel[data-native-panel=npc] .native-npc-board::before{
 content:'';position:absolute;left:7px;top:2px;width:34px;height:29px;
 border-radius:17px 0 0 0;background:url('/assets/ui/native-title-npc-frame.png') -60px -2px/367px 239px no-repeat;
 pointer-events:none;
}
body.desktop-client #panel[data-native-panel=npc] .native-npc-title{left:19px;top:5px;width:258px;z-index:1}
body.desktop-client #panel[data-native-panel=npc] .native-npc-service-pane:is([data-npc-service=quest],[data-npc-service=collection],[data-npc-service=career])::after{
 content:none;
}
/* The source corner already contains its close glyph; this is its hit area. */
body.desktop-client #panel[data-native-panel=npc] .dialog-head{right:0;top:0;left:auto;width:0;height:0;min-height:0;padding:0;border:0;background:none;box-shadow:none}
body.desktop-client #panel[data-native-panel=npc] #close-panel{
 right:-8px;top:-6px;width:44px;height:44px;min-height:44px;margin:0;padding:0;
 border:0;border-image:none;border-radius:50%;background:none;box-shadow:none;font-size:0;color:transparent;text-shadow:none;transform:none;filter:none;
}
body.desktop-client #panel[data-native-panel=npc] #close-panel::before,
body.desktop-client #panel[data-native-panel=npc] #close-panel::after{content:none}
body.desktop-client #panel[data-native-panel=npc] #close-panel:focus-visible{outline:1px solid #ebcc85;outline-offset:-10px}
body.desktop-client.touch-client #panel[data-native-panel=npc] .native-npc-services{padding:8px 9px;font-size:12px}
/* Source side slices include a second inset rule; cover that rule while
   retaining the original outer metal, header, corner X and lower rim. */
body.desktop-client #panel[data-native-panel=npc] .native-npc-service-pane:not([data-npc-service=travel])::before{content:'';position:absolute;inset:0 -9px -1px;background:#151b14;z-index:-1;pointer-events:none}
/* 2026-10-29 任務卡「可重複／一次性」標記 */.quest-repeat-tag{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:9px;font-size:11px;font-weight:600;vertical-align:middle;letter-spacing:.04em}.quest-repeat-tag[data-repeat=yes]{background:#2f5d3a;color:#d9ffd9;border:1px solid #6fbf7f}.quest-repeat-tag[data-repeat=no]{background:#4a3f2a;color:#f1e2bd;border:1px solid #a08a55}
