.button-surface.button-surface{--button-fill:#bd3c35;--button-text:#fbf6ec;position:relative;z-index:0;box-sizing:border-box;cursor:pointer;appearance:none;isolation:isolate;border-radius:100em;background-image:linear-gradient(135deg,rgba(255,255,255,.16),transparent 38%,rgba(60,32,28,.15)),var(--button-fill);color:var(--button-text);-webkit-tap-highlight-color:transparent;transition:box-shadow 300ms ease,translate 250ms ease;box-shadow:0 .05em .05em -.01em rgba(60,32,28,.75),0 .01em .01em -.01em rgba(60,32,28,.45),.15em .3em .1em -.01em rgba(60,32,28,.28),0 0 0 .035em inset rgba(255,255,255,.14),-.05em -.05em .05em inset rgba(60,32,28,.3),.025em .05em .1em inset rgba(255,255,255,.34),-.075em -.25em .25em .1em inset rgba(60,32,28,.28)}
.button-surface::after{content:"";position:absolute;z-index:-1;width:calc(100% + .3em);height:calc(100% + .3em);top:-.15em;left:-.15em;border-radius:inherit;background:linear-gradient(-135deg,rgba(60,32,28,.55),transparent 20%,transparent);filter:blur(.0125em);opacity:.25;mix-blend-mode:multiply;pointer-events:none}.button-surface::before{content:"";position:absolute;z-index:-1;inset:.035em;border-radius:inherit;box-shadow:0 .14em .18em rgba(60,32,28,.32);pointer-events:none}.button-surface:hover{box-shadow:0 0 0 rgba(60,32,28,0),0 0 0 rgba(60,32,28,0),0 0 0 rgba(60,32,28,0),.1em .15em .05em inset rgba(60,32,28,.52),-.025em -.03em .05em .025em inset rgba(60,32,28,.32),0 0 .05em .5em inset rgba(255,255,255,.14),-.075em -.12em .2em .1em inset rgba(60,32,28,.28)}.button-surface:active{translate:0 .08em;box-shadow:.12em .16em .12em inset rgba(60,32,28,.48),-.04em -.04em .07em inset rgba(255,255,255,.16),0 0 .05em .36em inset rgba(60,32,28,.18)}.button-surface:focus-visible{outline:3px solid #e7bc62;outline-offset:4px}.button-surface.close{border-radius:100em}@media(prefers-reduced-motion:reduce){.button-surface{transition-duration:.01ms!important}}
@media(max-width:720px){.opening-video{width:100%;height:100%;object-position:center center}.opening-shade{background:linear-gradient(180deg,#3c201c38,#3c201cb0 88%,#fbf6ec 100%)}body:has(.opening) .generate,body:has(.opening) .button-surface.generate{width:fit-content;min-width:0;padding:0 24px;align-self:flex-start}}
/* 主角页面的上传按钮保持原本的暖米白底、朱砂红字与描边。 */
body:has(.source-grid) .button-surface.upload{--button-fill:#fbf6ec!important;--button-text:#bd3c35!important;display:block;width:220px!important;min-width:0;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px;background-image:linear-gradient(135deg,rgba(255,255,255,.72),rgba(251,246,236,.9) 60%,rgba(231,188,98,.12)),var(--button-fill);border:2px solid #bd3c35;box-shadow:0 .05em .05em -.01em rgba(60,32,28,.35),.12em .22em .12em -.01em rgba(60,32,28,.16),0 0 0 .035em inset rgba(189,60,53,.1),.025em .05em .1em inset rgba(255,255,255,.8)}
body:has(.source-grid) .button-surface.upload:hover{background-image:linear-gradient(135deg,rgba(255,255,255,.92),rgba(251,246,236,.92) 60%,rgba(231,188,98,.2)),var(--button-fill);box-shadow:.08em .1em .08em inset rgba(189,60,53,.14),0 0 .05em .25em inset rgba(255,255,255,.72)}
body:has(.source-grid) .button-surface.generate{width:fit-content;min-width:260px;margin-left:auto;margin-right:auto;padding-left:30px;padding-right:30px}
@media(max-width:680px){body:has(.source-grid) .button-surface.upload{width:210px!important}body:has(.source-grid) .button-surface.generate{min-width:220px;width:fit-content;padding-left:26px;padding-right:26px}}
/* 游客照页的生成按钮按文字收紧，桌面和手机端均保持居中。 */
body:has(.tool) .button-surface.generate{display:block;width:220px!important;min-width:0;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}
@media(max-width:700px){body:has(.tool) .button-surface.generate{width:200px!important;padding-left:20px;padding-right:20px}}
/* 足迹页三项主要操作统一为紧凑居中尺寸。 */
body:has(#open-locations) #open-locations.button-surface,body:has(#open-locations) label[for="person-file"].button-surface,body:has(#open-locations) #generate-footprint.button-surface{display:flex;width:230px!important;min-width:0;margin-left:auto;margin-right:auto;padding-left:22px;padding-right:22px;justify-content:center}
@media(max-width:720px){body:has(#open-locations) #open-locations.button-surface,body:has(#open-locations) label[for="person-file"].button-surface,body:has(#open-locations) #generate-footprint.button-surface{width:210px!important;padding-left:18px;padding-right:18px}}
/* 定位弹窗保留轻量操作样式，避免套用实体按钮的填充色。 */
#location-dialog .button-surface.close{width:42px;height:42px;padding:0;border:0;border-radius:50%;background:transparent!important;background-image:none!important;color:#3c201c!important;box-shadow:none!important;font-size:28px;line-height:1}
#location-dialog .button-surface.close::before,#location-dialog .button-surface.close::after{content:none}
#location-dialog .button-surface.close:hover{background:#f4dec7!important;box-shadow:none!important}
#location-dialog .button-surface.add{display:inline-block;margin:6px 29px 20px;padding:10px 0;border:0;border-bottom:2px solid #bd3c35;border-radius:0;background:transparent!important;background-image:none!important;color:#bd3c35!important;box-shadow:none!important;font-weight:800}
#location-dialog .button-surface.add::before,#location-dialog .button-surface.add::after{content:none}
#location-dialog .button-surface.add:hover{background:transparent!important;box-shadow:none!important;color:#3c201c!important}
@media(max-width:720px){#location-dialog .button-surface.add{margin-left:18px}}
