/* v1.78 UI system — canonical typography/layout tokens and shared component rules.
   New visual changes belong here; avoid adding another override block to style.css. */
:root{
  --fs-xxs:11px;--fs-xs:13px;--fs-sm:15px;--fs-base:17px;--fs-lg:20px;--fs-xl:24px;--fs-2xl:30px;
  --lh-tight:1.25;--lh-base:1.5;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;
  --radius-sm:8px;--radius-md:12px;--radius-lg:16px;
}
body{line-height:var(--lh-base)}
button,input,select,textarea{font:inherit}

/* Shared navigation — legacy style.css still carries higher-specificity rules in places. */
.mobile-quick-dock a,.mobile-quick-dock button{}
.mobile-quick-dock .dock-label,.mobile-quick-dock span{}
.board-tabs .board-tab{}

/* Clan member search — use the real template classes, not generic/dead aliases. */
.clan-search-modes button{}
.clan-search-bottom input,.clan-search-bottom select,.clan-search-actions button,.clan-search-actions a{}
.clan-sort-row button{}

/* Clan member cards. Keep names horizontal; let the rank badge wrap instead. */
.clan-member-main{display:block!important}
.clan-name-wrap{min-width:0;width:100%!important;align-items:flex-start!important}
.clan-name-wrap>div{min-width:0;flex:1 1 auto}
.member-name-line{min-width:0;display:flex!important;align-items:center!important;gap:var(--sp-2)!important;flex-wrap:wrap!important}
.member-name-line strong{white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;line-height:1.15!important}
.member-class-line{display:flex!important;align-items:center!important;gap:7px!important;white-space:nowrap!important;}
.member-inline-level{display:inline!important;color:var(--ui-fg)!important;line-height:1!important;white-space:nowrap!important}
.member-joined-line{white-space:nowrap!important;}
.clan-member-summary>div>span{}
.clan-member-summary b,.clan-member-summary .weapon-text{}
.clan-member-summary .skill-chip-list i{}

/* Admin forms */
.admin-section input,.admin-section select,.admin-section textarea,.admin-section button,.admin-section a{}
.admin-section h2{}
.admin-section h3{}
.admin-member-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.admin-inline-edit-btn,.backup-download-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 10px;border:1px solid var(--ui-border);border-radius:var(--radius-sm);text-decoration:none}
.member-status-badge{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;}
.member-status-badge.inactive{background:var(--ui-surface-2);color:var(--ui-fg)}
.inactive-member{opacity:.72}
.admin-profile-edit-notice{display:flex;align-items:center;gap:14px;padding:12px}
.admin-profile-edit-notice img{width:72px;height:72px;border-radius:14px;object-fit:cover}
.admin-profile-edit-notice div{display:flex;flex-direction:column;gap:4px}

@media(max-width:600px){
  :root{--fs-base:17px;--fs-lg:20px;--fs-xl:24px}
  .admin-member-table{min-width:720px}
  .admin-member-form select,.admin-member-form button,.admin-inline-edit-btn{min-height:40px}
  .clan-rank-badge{}
}


/* v1.79 Admin member management — mobile card layout.
   The legacy table assigned 100% width to only four of five columns, so the action
   column collapsed/overflowed. On phones each member is now one readable card. */
.admin-member-search input,.admin-member-search button{min-height:44px}
.admin-member-search-count{}
.admin-member-table th,.admin-member-table td{}
.admin-member-name{font-weight:800}
.admin-member-form select,.admin-member-form button{}
.admin-member-form select{min-width:110px}
.admin-member-form button{min-width:64px}

@media(max-width:600px){
  .admin-member-search{grid-template-columns:minmax(0,1fr) auto auto!important;gap:6px!important}
  .admin-member-search input{padding:10px 12px!important;}
  .admin-member-search button{padding:0 11px!important;}
  .admin-member-table-wrap{overflow:visible!important}
  .admin-member-table{display:block!important;min-width:0!important;width:100%!important;table-layout:auto!important}
  .admin-member-table thead{display:none!important}
  .admin-member-table tbody{display:grid!important;gap:10px!important;width:100%!important}
  .admin-member-table tr.admin-member-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:0!important;
    padding:10px 12px!important;
    border:1px solid var(--ui-border)!important;
    border-radius:var(--radius-md)!important;
    background:var(--ui-surface-2)!important;
  }
  .admin-member-table tr.admin-member-row td{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:auto!important;
    min-width:0!important;
    padding:7px 8px!important;
    border:0!important;

    text-align:right!important;
  }
  .admin-member-table tr.admin-member-row td::before{
    content:attr(data-label);
    flex:0 0 auto;
    color:var(--muted);

    font-weight:700;
    text-align:left;
  }
  .admin-member-table tr.admin-member-row .admin-member-name{
    grid-column:1 / -1!important;
    justify-content:flex-start!important;

    line-height:1.2!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
  }
  .admin-member-table tr.admin-member-row .admin-member-name::before{display:none!important}
  .admin-member-table tr.admin-member-row .admin-member-controls{
    grid-column:1 / -1!important;
    display:block!important;
    padding-top:9px!important;
    border-top:1px solid var(--ui-border)!important;
  }
  .admin-member-table tr.admin-member-row .admin-member-controls::before{
    display:block!important;
    margin-bottom:7px!important;
  }
  .admin-member-form{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto!important;
    gap:7px!important;
    width:100%!important;
  }
  .admin-member-form select,.admin-member-form button{
    width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    padding:7px 8px!important;

  }
  .admin-member-table tr.admin-member-row .admin-member-edit{grid-column:1 / -1!important;padding-top:3px!important}
  .admin-member-table tr.admin-member-row .admin-member-edit::before{display:none!important}
  .admin-inline-edit-btn{width:100%!important;min-height:42px!important;}
}


/* v1.80 admin navigation isolation: exactly one detail panel may be visible */
.admin-detail-panel[hidden],
.admin-detail-panel:not(.active){display:none !important;}
.admin-detail-panel.active:not([hidden]){display:block !important;}
.admin-menu-grid.detail-open{display:none !important;}

/* v1.81 master-only log deletion controls */
.admin-log-tools{display:flex;justify-content:flex-end;margin:0 0 var(--sp-3,12px)}
.admin-log-tools form,.admin-log-delete-form{margin:0}
.admin-log-delete-btn{min-width:52px;padding:7px 10px;}
.audit-log-row,.access-log-row{align-items:center}
.audit-log-row:has(.admin-log-delete-form),.access-log-row:has(.admin-log-delete-form){grid-template-columns:inherit}
@media(max-width:600px){
  .admin-log-tools .delete-btn{min-height:42px}
  .admin-log-delete-btn{min-height:36px}
}

/* v1.82 mobile topbar note: handled in style.css legacy override */


/* v1.83 admin boss participation event delete */
.admin-boss-event-card{display:block}
.admin-boss-event-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.admin-boss-event-body{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}
.admin-boss-event-body p{margin:0;min-width:0;flex:1 1 auto}
.admin-boss-event-delete{flex:0 0 auto;margin:0}
.admin-boss-event-delete .delete-btn{min-width:58px;padding:8px 12px}
@media (max-width:600px){
  .admin-boss-event-body{align-items:flex-end}
  .admin-boss-event-delete .delete-btn{min-width:64px;min-height:38px}
}

/* v1.84 profile photo: default choices first, custom upload secondary */
.profile-photo-primary-picker{margin-top:0!important}
.profile-custom-upload{margin-top:14px;border-top:1px solid var(--ui-border);padding-top:12px}
.profile-custom-upload>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;min-height:40px;padding:8px 13px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2);color:var(--ui-fg);font-weight:800}
.profile-custom-upload>summary::-webkit-details-marker{display:none}
.profile-custom-upload>summary::before{content:'＋';margin-right:7px;color:var(--ui-fg)}
.profile-custom-upload[open]>summary::before{content:'−'}
.profile-photo-form-secondary{margin-top:10px!important}
@media(max-width:600px){.profile-custom-upload>summary{width:100%;justify-content:center;}.profile-photo-form-secondary{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}.profile-photo-form-secondary .profile-photo-file,.profile-photo-form-secondary>button{width:100%!important}}


/* ================================================================
   v1.85 CANONICAL TYPOGRAPHY SYSTEM
   All font sizing lives here. Legacy style.css intentionally contains
   no font-size declarations. Change a token here instead of appending
   per-screen !important overrides.
   ================================================================ */
:root{
  --fs-caption:11px;
  --fs-small:13px;
  --fs-ui:15px;
  --fs-body:17px;
  --fs-emphasis:20px;
  --fs-title:24px;
  --fs-page:30px;
}

html,body{font-size:var(--fs-body)}
body,button,input,select,textarea{font-size:var(--fs-body)}
small,.muted,.help,.hint,.meta,.sub,.caption{font-size:var(--fs-small)}

h1,.page-title,.board-page-head h1{font-size:var(--fs-page)}
h2,.section-title,.boss-section-title,.admin-section-title{font-size:var(--fs-title)}
h3,.panel-title,.card-title{font-size:var(--fs-emphasis)}

.topbar .brand b{font-size:var(--fs-emphasis)}
.topbar .brand small,.user-id-caret,.top-role-badge{font-size:var(--fs-caption)}
.user-id-button,.user-id-dropdown,.userbox{font-size:var(--fs-ui)}

.nav a,.board-tab,.boss-top-tabs button,.boss-top-tabs a{font-size:var(--fs-body)}
.mobile-quick-dock b{font-size:var(--fs-ui)}
.mobile-quick-dock span{font-size:var(--fs-title)}

button,.btn,.save,.danger-button,.board-compose-open,.profile-choice-apply-btn,.profile-random-btn{font-size:var(--fs-body)}
label,.form label,.form-section label{font-size:var(--fs-ui)}
input::placeholder,textarea::placeholder{font-size:var(--fs-ui)}

.member-search-tabs button,.member-filter button,.member-search-mode button{font-size:var(--fs-body)}
.member-name-line strong,.member-card-name,.member-name{font-size:var(--fs-emphasis)}
.member-class-line,.member-inline-level,.member-joined-line,.member-card-meta{font-size:var(--fs-body)}
.member-skill-label,.member-equipment-label,.member-boss-label{font-size:var(--fs-small)}
.member-skill-chip,.skill-chip,.member-equipment-value{font-size:var(--fs-ui)}
.rank-badge,.member-rank-badge,.staff-badge{font-size:var(--fs-small)}

.profile-photo-copy,.profile-photo-file,.default-profile-picker-head,.weapon-slot-title,.equipment-section-head{font-size:var(--fs-body)}
.default-profile-option,.selected-skill-count,.equipment-preview{font-size:var(--fs-ui)}

.boss-date-title,.boss-time-cell,.boss-select-text,.my-boss-hour,.my-boss-names,.boss-drop-boss{font-size:var(--fs-body)}
.boss-register-guide,.boss-save-result,.my-boss-count,.boss-drop-row,.boss-table,.boss-click-timetable{font-size:var(--fs-ui)}
.boss-table th,.boss-table td,.boss-click-timetable th,.boss-click-timetable td{font-size:var(--fs-ui)}

.attendance-member-id,.attendance-panel-head,.attendance-summary{font-size:var(--fs-body)}
.attendance-card-grid,.attendance-member-card{font-size:var(--fs-ui)}

.notice-card,.notice-detail,.board,.board-list,.board-edit-form,.blood-fund-list,.clan-item-list,.distribution-list{font-size:var(--fs-body)}
.notice-card small,.notice-meta,.board-meta,.edit-history,.distribution-meta{font-size:var(--fs-small)}

.admin-menu button,.admin-menu a,.admin-tabs button,.admin-tabs a{font-size:var(--fs-body)}
.admin-member-table,.admin-table,.audit,.login-log-list,.admin-log-list{font-size:var(--fs-ui)}
.admin-member-card strong,.admin-card-title{font-size:var(--fs-emphasis)}
.admin-member-card label,.admin-member-card .meta{font-size:var(--fs-small)}

.stat-value,.hero-value,.dashboard-count,.current-owned-count{font-size:var(--fs-title)}
.stat-label,.hero-label,.dashboard-label{font-size:var(--fs-small)}

@media (max-width:600px){
  :root{
    --fs-caption:11px;
    --fs-small:13px;
    --fs-ui:15px;
    --fs-body:17px;
    --fs-emphasis:20px;
    --fs-title:24px;
    --fs-page:26px;
  }
  .topbar .brand b{font-size:var(--fs-body)}
  .topbar .brand small{font-size:var(--fs-caption)}
  .boss-table,.boss-table th,.boss-table td,.boss-click-timetable,.boss-click-timetable th,.boss-click-timetable td{font-size:var(--fs-small)}
  .admin-table,.audit,.login-log-list,.admin-log-list{font-size:var(--fs-small)}
}


/* ================================================================
   v1.86 typography/layout corrections
   - compact action labels use one lower token
   - member skill chips use one lower token
   - count + unit use the same glyph run
   - mobile header stays one horizontal line without shrinking its font
   ================================================================ */
.tab-compose-open,
.admin-reset-form button,
.admin-member-form button,
.admin-inline-edit-btn,
.admin-log-delete-btn,
.admin-boss-event-delete .delete-btn{font-size:var(--fs-ui)}

.clan-member-summary .skill-chip-list i,
.clan-member-summary .skill-chip-list b{font-size:var(--fs-ui)}

.active-member-number strong,
.level-card-button strong{font-size:var(--fs-title)}

/* The button label already contains '+'. Do not synthesize a second plus. */
.tab-compose-open::before{content:none!important;display:none!important}
.tab-compose-open{white-space:nowrap!important;width:auto!important;min-width:0!important;height:auto!important;min-height:42px!important;border-radius:999px!important;padding:9px 14px!important;line-height:1.15!important}

/* Password-reset is a compact action; keep the label inside one button. */
.admin-reset-form{grid-template-columns:minmax(0,1fr) 124px!important}
.admin-reset-form button{white-space:nowrap!important;line-height:1.15!important;padding:0 8px!important}

/* Current custom photo should not look like it still needs a default selection. */
.profile-custom-active-note{display:flex;flex-direction:column;gap:3px;margin-top:10px;padding:11px 13px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2)}
.profile-custom-active-note span{font-size:var(--fs-small);color:var(--ui-muted)}
.profile-default-change{margin-top:12px}
.profile-default-change>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;min-height:40px;padding:8px 13px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2);color:var(--ui-fg);font-size:var(--fs-ui);font-weight:800}
.profile-default-change>summary::-webkit-details-marker{display:none}
.profile-default-change>summary::before{content:'＋';margin-right:7px;color:var(--ui-fg)}
.profile-default-change[open]>summary::before{content:'−'}
.profile-default-change .default-profile-picker{margin-top:10px!important}

@media(max-width:600px){
  /* Keep clan name + user/role on the same header row. Font sizes are not reduced. */
  .topbar{height:72px!important;min-height:72px!important;padding:0 12px!important;align-items:center!important;flex-wrap:nowrap!important;gap:8px!important}
  .topbar .brand{min-width:0!important;max-width:none!important;flex:1 1 auto!important;align-items:center!important}
  .topbar .brand b{font-size:var(--fs-emphasis)}
  .topbar .brand>div{min-width:0!important}
  .userbox{min-width:0!important;max-width:none!important;flex:0 0 auto!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;white-space:nowrap!important}
  .user-id-menu{width:auto!important;min-width:0!important;display:block!important}
  .user-id-button{width:auto!important;max-width:none!important;justify-content:flex-end!important;align-items:center!important;padding:0!important;white-space:nowrap!important}
  .user-id-button>span:first-child{display:inline!important;max-width:none!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;word-break:keep-all!important;overflow-wrap:normal!important;line-height:1.15!important}
  .top-role-badge{align-self:center!important;white-space:nowrap!important;margin:0!important}
  .desktop-logout{display:none!important}
  .tab-compose-open{right:16px!important;bottom:82px!important;width:auto!important;min-width:0!important;height:auto!important;min-height:42px!important;padding:9px 13px!important}
  .profile-default-change>summary{width:100%;justify-content:center}
}


/* v1.87 admin profile edit header: span the full profile panel, never collapse into the avatar column */
.profile-photo-panel>.admin-profile-edit-notice{
  grid-column:1 / -1!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.profile-photo-panel>.admin-profile-edit-notice>div{
  min-width:0!important;
  flex:1 1 auto!important;
}
.profile-photo-panel>.admin-profile-edit-notice b,
.profile-photo-panel>.admin-profile-edit-notice span{
  display:block!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-height:1.35!important;
}
@media(max-width:500px){
  .profile-photo-panel>.admin-profile-edit-notice{
    gap:12px!important;
    padding:12px!important;
    align-items:center!important;
  }
  .profile-photo-panel>.admin-profile-edit-notice img{
    flex:0 0 72px!important;
  }
}


/* v1.88 clan-card compact layout */
.clan-member-summary.expanded .skills-all{grid-column:1/-1!important}
.clan-member-summary.expanded .skill-chip-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px 5px!important}
.clan-member-summary.expanded .skill-chip-list i{display:block!important;min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:center!important}
.clan-member-summary.expanded .member-compact-stats{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;padding:5px!important}
.member-stat-pair{min-width:0!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;padding:5px 4px!important;border-radius:6px!important;background:var(--ui-surface-2)!important;white-space:nowrap!important;margin:0!important;color:var(--ui-muted)!important}
.member-stat-pair small{display:inline!important;margin:0!important;color:var(--ui-muted)!important;white-space:nowrap!important}
.member-stat-pair b{display:inline!important;margin:0!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;color:var(--ui-fg)!important}
@media(max-width:700px){
  .clan-member-summary.expanded{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  .clan-member-summary.expanded>div{padding:6px!important}
  .clan-member-summary.expanded .member-compact-stats{padding:4px!important}
}


/* v1.89 anti-vertical-wrap safeguards for compact UI */
button,.btn,.top-role-badge,.rank-badge,.status-badge,
.clan-member-summary>div>span,
.clan-member-summary>div>small,
.clan-member-summary .skill-chip-list i,
.clan-member-summary .member-stat-pair,
.clan-member-summary .member-stat-pair small,
.clan-member-summary .member-stat-pair b{
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.clan-member-summary>div>span,
.clan-member-summary>div>small,
.clan-member-summary .member-stat-pair,
.clan-member-summary .member-stat-pair small,
.clan-member-summary .member-stat-pair b{white-space:nowrap!important}
.clan-member-summary.expanded .member-compact-stats{min-width:0!important}
.clan-member-summary.expanded .member-compact-stats>*{min-width:0!important}


/* v1.90: 방어/마방은 한 줄 2칸, 보스참여는 다음 줄 */
.clan-member-summary.expanded .member-boss-row{
  grid-column:1/-1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  min-width:0!important;
  padding:6px 9px!important;
}
.clan-member-summary.expanded .member-boss-row>span,
.clan-member-summary.expanded .member-boss-row>b{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.clan-member-summary.expanded .member-boss-row>b{margin-left:auto!important}


/* v1.91 profile photo panel: never allow action blocks to collapse into the avatar grid column */
.profile-photo-panel>.profile-default-change,
.profile-photo-panel>.profile-custom-upload,
.profile-photo-panel>.default-profile-picker{
  grid-column:1 / -1!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.profile-photo-panel>.profile-custom-active-note{
  min-width:0!important;
}
.profile-default-change>summary,
.profile-custom-upload>summary{
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  box-sizing:border-box!important;
}
.profile-default-change[open],
.profile-custom-upload[open]{
  min-width:0!important;
}
.profile-photo-form-secondary{
  width:100%!important;
  min-width:0!important;
}
.profile-photo-form-secondary>*{
  min-width:0!important;
}
@media(max-width:600px){
  .profile-photo-panel>.profile-default-change,
  .profile-photo-panel>.profile-custom-upload,
  .profile-photo-panel>.default-profile-picker{
    grid-column:1 / -1!important;
  }
  .profile-default-change>summary,
  .profile-custom-upload>summary{
    display:flex!important;
    width:100%!important;
    justify-content:center!important;
    white-space:nowrap!important;
  }
  .profile-photo-form-secondary .profile-photo-copy,
  .profile-photo-form-secondary .profile-photo-file,
  .profile-photo-form-secondary>button{
    width:100%!important;
  }
  .profile-photo-form-secondary .profile-photo-copy strong,
  .profile-photo-form-secondary .profile-photo-copy p,
  .profile-photo-form-secondary .profile-photo-file,
  .profile-photo-form-secondary button{
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
}


/* v1.92 home member trend popup */
.member-trend-open{appearance:none;color:inherit;font:inherit;text-align:inherit;cursor:pointer}
.member-trend-open:active{transform:translateY(1px)}
.member-trend-modal{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;padding:18px}
.member-trend-modal.open{display:flex}
.member-trend-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.member-trend-panel{position:relative;width:min(620px,100%);max-height:calc(100dvh - 110px);overflow:auto;background:var(--ui-surface-2);border:1px solid var(--ui-border);border-radius:16px;padding:16px;box-shadow:0 20px 55px rgba(0,0,0,.55)}
.member-trend-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.member-trend-head h2{margin:2px 0 0}.member-trend-head small{color:var(--ui-muted)}
.member-trend-close{width:42px;height:42px;border-radius:10px;border:1px solid var(--ui-border);background:var(--ui-surface-2);color:var(--ui-fg);cursor:pointer}
.member-trend-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.member-trend-tabs button{min-width:0;padding:10px 8px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2);color:var(--ui-muted);cursor:pointer;white-space:nowrap;word-break:keep-all}
.member-trend-tabs button.active{background:#8e1d29;border-color:#c42c3b;color:var(--ui-fg)}
.member-trend-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:10px}
.member-trend-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2)}
.member-trend-summary span{color:var(--ui-muted)}.member-trend-summary strong{white-space:nowrap}.member-trend-summary strong.up{color:#53c98c}.member-trend-summary strong.down{color:#f06a74}
.member-trend-chart-wrap{position:relative;height:230px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface-2);padding:8px;overflow:hidden}
.member-trend-chart-wrap canvas{display:block;width:100%;height:100%}.member-trend-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--ui-muted)}
.member-trend-note{margin-top:8px;text-align:right;color:var(--ui-muted)}
@media(max-width:600px){.member-trend-modal{padding:10px}.member-trend-panel{padding:13px;max-height:calc(100dvh - 92px)}.member-trend-chart-wrap{height:210px}}


/* v1.93 Lineage Classic class icons extracted from supplied reference */
.class-inline-icon img,.section-class-icon img{filter:none!important;opacity:1!important}
.class-inline-icon,.section-class-icon{overflow:visible!important}


/* v1.94 member trend popup - new member scroll list */
.member-trend-newcomers{margin-top:12px;border-top:1px solid var(--ui-border);padding-top:11px}
.member-trend-newcomers-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.member-trend-newcomers-head strong,.member-trend-newcomers-head span{white-space:nowrap;word-break:keep-all}
.member-trend-newcomers-head span{color:var(--ui-muted)}
.member-trend-new-list{max-height:185px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2)}
.member-trend-new-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid var(--ui-border)}
.member-trend-new-row:last-child{border-bottom:0}
.member-trend-new-info{min-width:0;display:flex;align-items:baseline;gap:7px}
.member-trend-new-info strong,.member-trend-new-info span,.member-trend-new-row time{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
.member-trend-new-info span,.member-trend-new-row time{color:var(--ui-muted)}
.member-trend-new-row time{margin-left:auto;flex:0 0 auto}
.member-trend-new-empty{padding:18px 10px;text-align:center;color:var(--ui-muted)}
@media(max-width:600px){.member-trend-new-list{max-height:165px}.member-trend-new-row{padding:8px 9px;gap:8px}.member-trend-new-info{gap:5px}}


/* v1.96 boss management */
.boss-time-admin-tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;gap:5px!important;scrollbar-width:thin}
.boss-time-admin-tabs a{flex:1 0 auto!important;white-space:nowrap!important;word-break:keep-all!important;text-align:center!important}
.boss-input-settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.boss-input-settings-form>label{display:flex;align-items:center;gap:8px;min-width:0;padding:10px;border:1px solid var(--ui-border,var(--ui-border));border-radius:8px;background:var(--ui-surface-2,var(--ui-surface-2));color:var(--ui-fg,var(--ui-fg))}
.boss-input-settings-form>label>span:first-child{white-space:nowrap}
.boss-input-settings-form input[type="number"]{min-width:0;width:100%;max-width:120px}
.boss-input-settings-form em{white-space:nowrap;color:var(--ui-muted,var(--ui-muted))}
.boss-input-settings-form .boss-setting-toggle{grid-column:1/-1}
.boss-setting-toggle>span{display:flex;flex-direction:column;gap:2px}
.boss-setting-toggle small{color:var(--ui-muted)}
.boss-input-settings-form>button{grid-column:1/-1}
.boss-settings-note{margin-top:7px}
.boss-range-controls{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin:10px 0 12px}
.boss-range-controls label{display:flex;flex-direction:column;gap:4px}
.boss-range-controls label span,.boss-range-controls em{white-space:nowrap}
.boss-rate-stat-cards{margin-top:8px}
.boss-ranking-head{margin-top:14px}
.boss-member-rate-list{display:flex;flex-direction:column;gap:4px}
.boss-member-rate-row{display:grid;grid-template-columns:44px minmax(120px,1.5fr) 70px 82px 82px;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2)}
.boss-member-rate-header{background:var(--ui-surface-2);color:var(--ui-muted)}
.boss-member-rate-row>span,.boss-member-rate-row>button{min-width:0;white-space:nowrap;word-break:keep-all}
.boss-rate-member{display:flex;flex-direction:column}
.boss-rate-member small{color:var(--ui-muted)}
.boss-rate-open{border:1px solid #695121;border-radius:7px;background:var(--ui-surface-2);color:#e5c565;padding:6px 7px}
.boss-rate-modal{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.66);display:flex;align-items:center;justify-content:center;padding:16px}
.boss-rate-modal[hidden]{display:none!important}
.boss-rate-modal-card{width:min(620px,100%);max-height:82vh;overflow:auto;background:var(--ui-surface-2);border:1px solid var(--ui-border);border-radius:12px;padding:12px}
.boss-rate-modal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.boss-rate-modal-head h3{margin:0}
.boss-analysis-tabs{display:flex;flex-wrap:nowrap;gap:5px;margin:10px 0;overflow-x:auto}
.boss-analysis-tabs button{flex:1 0 auto;white-space:nowrap;word-break:keep-all}
.boss-analysis-tabs button.active{border-color:#8a6a27;color:#e6c768}
.boss-rate-chart{display:flex;flex-direction:column;gap:7px}
.boss-chart-row{display:grid;grid-template-columns:58px minmax(80px,1fr) 62px 46px;align-items:center;gap:7px}
.boss-chart-row>span,.boss-chart-row>b,.boss-chart-row>small{white-space:nowrap;word-break:keep-all}
.boss-chart-track{height:10px;border-radius:999px;background:var(--ui-surface-2);overflow:hidden}
.boss-chart-track i{display:block;height:100%;background:linear-gradient(90deg,#786126,#d5b451);border-radius:inherit}
.boss-chart-row small{color:var(--ui-muted);text-align:right}
@media(max-width:700px){
  .boss-input-settings-form{grid-template-columns:1fr}
  .boss-input-settings-form .boss-setting-toggle,.boss-input-settings-form>button{grid-column:1}
  .boss-member-rate-row{grid-template-columns:32px minmax(95px,1fr) 48px 58px 66px;padding:7px 6px;gap:4px}
  .boss-range-controls{align-items:stretch}
  .boss-range-controls label{flex:1 1 135px}
  .boss-chart-row{grid-template-columns:48px minmax(60px,1fr) 56px 38px;gap:5px}
}


/* v1.99 public boss tabs / my info / clan info */
.boss-main-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
.boss-main-tabs a{min-width:0!important;text-align:center!important;white-space:nowrap!important;word-break:keep-all!important}
.boss-register-date{margin-top:10px!important}
.boss-inline-date-form{margin-top:5px}
.boss-inline-date-form input[type="date"]{max-width:155px}
.boss-public-info-panel{margin-top:10px}
.boss-info-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px}
.boss-info-mode-tabs a{display:flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2);color:var(--ui-muted);text-decoration:none;font-weight:700;white-space:nowrap;word-break:keep-all}
.boss-info-mode-tabs a.active{border-color:#745c28;background:var(--ui-surface-2);color:#e5c76f}
.boss-info-period-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 12px;padding:10px;border:1px solid var(--ui-border,var(--ui-border));border-radius:9px;background:var(--ui-surface-2,var(--ui-surface-2));color:var(--ui-fg,var(--ui-fg))}
.boss-info-period-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.boss-info-period-row>div>b,.boss-info-period-row>div>span{white-space:nowrap;word-break:keep-all}
.boss-info-period-row>div>span{color:var(--ui-muted,var(--ui-muted))}
.boss-info-period-row form{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.boss-info-period-row input[type="date"]{min-width:136px}
.boss-public-stat-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 14px}
.boss-public-stat-cards>div{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "note note";align-items:center;gap:3px 8px;padding:10px;border:1px solid var(--ui-border,var(--ui-border));border-radius:9px;background:var(--ui-surface-2,var(--ui-surface-2));color:var(--ui-fg,var(--ui-fg))}
.boss-public-stat-cards span{grid-area:label;color:var(--ui-muted,var(--ui-muted));white-space:nowrap}
.boss-public-stat-cards strong{grid-area:value;color:var(--ui-fg,#e7c86d);white-space:nowrap}
.boss-public-stat-cards em{grid-area:note;color:var(--ui-muted,var(--ui-muted));font-style:normal;white-space:nowrap}
.boss-my-period-list{max-height:520px;overflow-y:auto;padding-right:2px}
.boss-my-period-list article{grid-template-columns:58px 62px minmax(0,1fr)!important}
.my-boss-date,.my-boss-hour{white-space:nowrap;color:var(--ui-muted)}
.boss-clan-ranking-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.boss-clan-ranking-title small{color:var(--ui-muted);white-space:nowrap}
.boss-clan-rate-list{display:flex;flex-direction:column;gap:4px}
.boss-clan-rate-row{display:grid;grid-template-columns:42px minmax(125px,1.5fr) 65px 72px 72px;gap:6px;align-items:center;padding:8px 9px;border:1px solid var(--ui-border,var(--ui-border));border-radius:8px;background:var(--ui-surface-2,var(--ui-surface-2));color:var(--ui-fg,var(--ui-fg))}
.boss-clan-rate-head{background:var(--ui-surface-3,var(--ui-surface-2));color:var(--ui-muted,var(--ui-muted))}
.boss-clan-rate-row>span,.boss-clan-rate-row>b{min-width:0;white-space:nowrap;word-break:keep-all}
.boss-rate-name{display:flex;flex-direction:column}
.boss-rate-name small{color:var(--ui-muted)}
.boss-clan-drops{margin-top:16px}

@media(min-width:701px){
  .topbar{position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;box-sizing:border-box!important;z-index:4000!important}
  .nav{position:fixed!important;top:72px!important;left:0!important;right:0!important;height:48px!important;box-sizing:border-box!important;z-index:3990!important;align-items:stretch!important}
  .nav a{display:flex!important;align-items:center!important;padding:0 18px!important}
  .container{padding-top:144px!important}
}
@media(max-width:700px){
  .boss-info-period-row{align-items:stretch;flex-direction:column}
  .boss-info-period-row form{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto}
  .boss-info-period-row input[type="date"]{width:100%;min-width:0}
  .boss-public-stat-cards{grid-template-columns:1fr}
  .boss-clan-rate-row{grid-template-columns:30px minmax(92px,1fr) 42px 50px 61px;gap:4px;padding:7px 5px}
  .boss-my-period-list article{grid-template-columns:52px 56px minmax(0,1fr)!important}
}


/* v2.00 admin menu regroup */
.boss-admin-3tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible!important}
.boss-admin-3tabs a{min-width:0!important;white-space:nowrap!important;word-break:keep-all!important}
.site-manage-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0 14px}
.site-manage-tabs a{display:flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2);color:var(--ui-muted);text-decoration:none;font-weight:700;white-space:nowrap;word-break:keep-all}
.site-manage-tabs a.active{border-color:#745c28;background:var(--ui-surface-2);color:#e5c76f}
.site-board-manager .board-manager-block:first-child{margin-top:0}
.boss-member-edit-date{margin-bottom:14px}
@media(max-width:700px){
  .boss-admin-3tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .boss-admin-3tabs a{padding-left:4px!important;padding-right:4px!important}
}


/* v2.01 clan participation analysis modal */
.boss-clan-stat-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.boss-analysis-card{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "note note";align-items:center;gap:3px 8px;padding:10px;border:1px solid #695323;border-radius:9px;background:var(--ui-surface-2);color:inherit;text-align:left;cursor:pointer}
.boss-analysis-card span{grid-area:label;color:#c8b06d;white-space:nowrap}
.boss-analysis-card strong{grid-area:value;color:#f0d57b;white-space:nowrap}
.boss-analysis-card em{grid-area:note;color:#8f815e;font-style:normal;white-space:nowrap}
.boss-analysis-card:hover{border-color:#9a7b35;background:var(--ui-surface-2)}
.clan-analysis-modal-card{width:min(720px,100%)}
.boss-rate-modal-head>div{display:flex;flex-direction:column;gap:2px}
.boss-rate-modal-head>div small{color:var(--ui-muted);white-space:nowrap}
.clan-analysis-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
.clan-analysis-tabs button{min-width:0}
.clan-analysis-legend{margin:2px 0 10px;color:var(--ui-muted)}
.clan-analysis-legend span{white-space:normal;word-break:keep-all}
.clan-analysis-chart{max-height:56vh;overflow-y:auto;padding-right:3px}
.clan-chart-row{grid-template-columns:68px minmax(90px,1fr) 62px 52px}
@media(max-width:700px){
  .boss-clan-stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .clan-analysis-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .clan-analysis-tabs button{padding-left:4px;padding-right:4px}
  .clan-chart-row{grid-template-columns:56px minmax(60px,1fr) 56px 44px}
}


/* v2.02 boss info date picker: compact calendar button beside period */
.boss-period-picker-row{align-items:center}
.boss-period-copy{flex:1 1 auto}
.boss-period-calendar-form{display:block!important;flex:0 0 auto!important}
.boss-calendar-button{position:relative;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2);color:var(--ui-fg);cursor:pointer;overflow:hidden}
.boss-calendar-button:hover{border-color:#6f5928;color:#e1c368}
.boss-calendar-button>span{pointer-events:none}

@media(max-width:700px){
  .boss-info-period-row.boss-period-picker-row{flex-direction:row;align-items:center}
  .boss-period-calendar-form{width:auto!important;display:block!important}
  .boss-calendar-button{width:40px;height:40px}
}


/* v2.03 clan boss summary cleanup + graph interaction fix */
.boss-clan-stat-clean>div,
.boss-clan-stat-clean>.boss-analysis-card{
  grid-template-areas:"label value"!important;
  align-items:center!important;
}
.boss-clan-stat-clean>div em,
.boss-clan-stat-clean>.boss-analysis-card em{display:none!important}
.boss-clan-stat-clean>.boss-analysis-card{min-height:58px}
.clan-analysis-chart{margin-top:10px}


/* v2.04 compact register calendar + batch edit/save */
.boss-register-date-center{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.boss-register-date-center h1{margin:0!important;white-space:nowrap!important}
.boss-register-calendar-form{display:block!important;margin:0!important}
.boss-register-calendar-button{width:38px!important;height:38px!important;flex:0 0 38px!important}
.admin-batch-form{position:relative}
.admin-dirty-save{position:fixed!important;right:22px!important;bottom:22px!important;z-index:4500!important;min-width:132px!important;min-height:46px!important;border:1px solid #9a742d!important;border-radius:11px!important;background:#8f202a!important;color:var(--ui-fg)!important;font-weight:900!important;padding:10px 16px!important;box-shadow:0 8px 24px rgba(0,0,0,.35)!important}
.admin-dirty-save[hidden]{display:none!important}
.admin-drag-handle{display:flex!important;align-items:center!important;justify-content:center!important;min-width:30px!important;min-height:34px!important;border:0!important;background:transparent!important;color:var(--ui-muted)!important;cursor:grab!important;user-select:none!important}
.admin-drag-handle:active{cursor:grabbing!important}
.site-data-add-batch{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important}
.site-data-sort-list{display:flex!important;flex-direction:column!important;gap:5px!important;margin-top:8px!important}
.site-option-row{display:grid!important;grid-template-columns:30px minmax(0,1fr) 32px!important;align-items:center!important;gap:5px!important;padding:5px!important;border:1px solid var(--ui-border)!important;border-radius:7px!important;background:var(--ui-surface-2)!important}
.site-option-row.dragging,.boss-time-batch-row.dragging{opacity:.45!important}
.site-option-value{width:100%!important;min-width:0!important;border:0!important;background:transparent!important;color:inherit!important;padding:5px!important;font-weight:800!important}
.site-remove-item{border:0!important;background:transparent!important;color:#e37b82!important;min-height:32px!important}
.site-option-empty{color:var(--ui-muted)!important}
.boss-time-batch-add{display:grid!important;grid-template-columns:100px minmax(0,1fr) auto!important;gap:6px!important;margin:8px 0!important}
.boss-time-batch-add input{min-width:0!important;border:1px solid var(--ui-border)!important;border-radius:8px!important;background:var(--ui-surface-2)!important;color:var(--ui-fg)!important;padding:8px 9px!important}
.boss-time-batch-add button{border:0!important;border-radius:8px!important;background:#8f202a!important;color:var(--ui-fg)!important;font-weight:900!important;padding:0 11px!important}
.boss-time-batch-row{display:grid!important;grid-template-columns:30px 100px minmax(0,1fr) 34px!important;gap:6px!important;align-items:center!important;padding:7px!important;border:1px solid var(--ui-border,var(--ui-border))!important;border-radius:9px!important;background:var(--ui-surface-2,var(--ui-surface-2))!important;color:var(--ui-fg,var(--ui-fg))!important}
.boss-time-batch-row input{min-width:0!important;border:1px solid var(--ui-border,var(--ui-border))!important;border-radius:8px!important;background:var(--ui-input,var(--ui-surface-2))!important;color:var(--ui-fg,var(--ui-fg))!important;padding:8px 9px!important}
.boss-time-remove{min-width:32px!important;min-height:34px!important}
@media(max-width:700px){.admin-dirty-save{right:14px!important;bottom:78px!important}.boss-time-batch-add{grid-template-columns:82px minmax(0,1fr) auto!important}.boss-time-batch-row{grid-template-columns:28px 82px minmax(0,1fr) 32px!important;gap:4px!important}}


/* v2.05 boss info 4-way period tabs */
.boss-info-mode-tabs-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.boss-season-select-form{flex:0 0 auto!important}
.boss-season-select-form select{min-height:40px;max-width:180px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2);color:var(--ui-fg);padding:7px 28px 7px 10px}
@media(max-width:700px){
  .boss-info-mode-tabs-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .boss-season-select-form{width:auto!important}
  .boss-season-select-form select{max-width:145px}
}


/* v2.06 graph modal hardening + profile dirty save */
#clanAnalysisModal[hidden]{display:none}
#clanAnalysisModal:not([hidden]){display:flex}
.profile-dirty-save{position:fixed!important;right:22px!important;bottom:22px!important;z-index:4500!important;min-width:132px!important;min-height:46px!important;border:1px solid #9a742d!important;border-radius:11px!important;background:#8f202a!important;color:var(--ui-fg)!important;font-weight:900!important;padding:10px 16px!important;box-shadow:0 8px 24px rgba(0,0,0,.35)!important}
.profile-dirty-save[hidden]{display:none!important}
@media(max-width:700px){.profile-dirty-save{right:14px!important;bottom:78px!important}}


/* v2.07 profile dirty-save visibility fix */
.profile-dirty-save{
  position:fixed!important;
  right:22px!important;
  bottom:22px!important;
  z-index:5000!important;
  min-width:132px!important;
  min-height:46px!important;
  border:1px solid #9a742d!important;
  border-radius:11px!important;
  background:#8f202a!important;
  color:var(--ui-fg)!important;
  font-weight:900!important;
  padding:10px 16px!important;
  box-shadow:0 8px 24px rgba(0,0,0,.35)!important;
}
.profile-dirty-save[hidden]{display:none!important}
@media(max-width:700px){
  .profile-dirty-save{right:14px!important;bottom:78px!important}
}


/* v2.08 clan graph modal definitive visibility fix */
#clanAnalysisModal[hidden]{display:none}
#clanAnalysisModal:not([hidden]){display:flex}


/* v2.09 graph analysis popup buttons */
.clan-analysis-tabs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin:12px 0 14px;
  padding:4px;
  border:1px solid var(--ui-border);
  border-radius:10px;
  background:var(--ui-surface-2);
  overflow:visible;
}
.clan-analysis-tabs button{
  width:100%;
  min-width:0;
  min-height:40px;
  padding:8px 6px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:var(--ui-muted);
  font-weight:800;
  white-space:nowrap;
  word-break:keep-all;
  box-shadow:none;
}
.clan-analysis-tabs button:hover{
  background:var(--ui-surface-2);
  color:var(--ui-fg);
}
.clan-analysis-tabs button.active{
  border-color:#765d28;
  background:var(--ui-surface-2);
  color:#ebcb6d;
}
@media(max-width:600px){
  .clan-analysis-tabs{
    gap:4px;
    padding:3px;
  }
  .clan-analysis-tabs button{
    min-height:38px;
    padding:7px 3px;
  }
}


/* v2.10 clan participation graph redesign */
.clan-analysis-modal-card{
  width:min(680px,100%);
  padding:14px;
}
.clan-analysis-chart{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:56vh;
  overflow-y:auto;
  padding:2px;
  margin-top:4px;
}
.clan-chart-item{
  padding:10px 11px;
  border:1px solid var(--ui-border);
  border-radius:9px;
  background:var(--ui-surface-2);
}
.clan-chart-item-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.clan-chart-label{
  min-width:0;
  color:var(--ui-fg);
  font-weight:800;
  white-space:nowrap;
  word-break:keep-all;
}
.clan-chart-values{
  display:flex;
  align-items:baseline;
  gap:8px;
  flex:0 0 auto;
}
.clan-chart-values b{
  color:#e6c76c;
  white-space:nowrap;
}
.clan-chart-values small{
  color:var(--ui-muted);
  white-space:nowrap;
}
.clan-chart-track{
  position:relative;
  height:11px;
  overflow:hidden;
  border-radius:999px;
  background:var(--ui-surface-2);
}
.clan-chart-track i{
  display:block;
  height:100%;
  min-width:2px;
  border-radius:999px;
  background:linear-gradient(90deg,#7b6125,#d5b95a);
}
.clan-analysis-modal-card .boss-rate-modal-head{
  padding-bottom:2px;
}
.clan-analysis-modal-card .boss-rate-modal-head h3{
  margin:0;
}
.clan-analysis-modal-card .boss-rate-modal-head small{
  color:var(--ui-muted);
}
@media(max-width:600px){
  .clan-analysis-modal-card{padding:11px}
  .clan-chart-item{padding:9px}
  .clan-chart-item-head{gap:8px;margin-bottom:7px}
  .clan-chart-values{gap:6px}
  .clan-chart-track{height:10px}
}


/* v2.11 clan analysis modal close button */
#clanAnalysisClose{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  min-width:38px;
  min-height:38px;
  padding:0;
  border:1px solid var(--ui-border);
  border-radius:9px;
  background:var(--ui-surface-2);
  color:var(--ui-muted);
  font-weight:700;
  line-height:1;
  box-shadow:none;
  cursor:pointer;
}
#clanAnalysisClose:hover{
  border-color:#765d28;
  background:var(--ui-surface-2);
  color:#e6c76c;
}
#clanAnalysisClose:active{
  transform:translateY(1px);
}
@media(max-width:600px){
  #clanAnalysisClose{
    width:36px;
    height:36px;
    min-width:36px;
    min-height:36px;
  }
}


/* v2.12 analysis tabs follow selected period */
.clan-analysis-tabs-day{grid-template-columns:1fr}
.clan-analysis-tabs-week{grid-template-columns:repeat(2,minmax(0,1fr))}
.clan-analysis-tabs-month{grid-template-columns:repeat(3,minmax(0,1fr))}
.clan-analysis-tabs-season{grid-template-columns:repeat(4,minmax(0,1fr))}


/* v2.14 boss registration gate + participant popup + clean personal stats */
.boss-time-cell.boss-time-participant-open{
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  padding:0;
  text-align:left;
  cursor:pointer;
}
.boss-time-cell.boss-time-participant-open:hover strong{color:#e6c76c}
.boss-participants-modal{
  position:fixed;
  inset:0;
  z-index:4800;
  align-items:center;
  justify-content:center;
  padding:16px;
  background:rgba(0,0,0,.68);
}
.boss-participants-modal[hidden]{display:none}
.boss-participants-modal:not([hidden]){display:flex}
.boss-participants-card{
  width:min(520px,100%);
  max-height:min(70vh,620px);
  overflow:auto;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:var(--ui-surface-2);
  padding:14px;
}
.boss-participants-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.boss-participants-head h3{margin:0}
.boss-participants-head span{color:var(--ui-muted)}
#bossParticipantsClose{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  min-width:38px;
  border:1px solid var(--ui-border);
  border-radius:9px;
  background:var(--ui-surface-2);
  color:var(--ui-muted);
  cursor:pointer;
}
#bossParticipantsClose:hover{
  border-color:#765d28;
  background:var(--ui-surface-2);
  color:#e6c76c;
}
.boss-participants-body{display:flex;flex-direction:column;gap:8px}
.boss-participant-group{
  padding:10px;
  border:1px solid var(--ui-border);
  border-radius:9px;
  background:var(--ui-surface-2);
}
.boss-participant-group>b{
  display:block;
  margin-bottom:7px;
  color:#e6c76c;
}
.boss-participant-group>div{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.boss-participant-group span{
  padding:5px 8px;
  border-radius:999px;
  background:var(--ui-surface-2);
  color:var(--ui-fg);
}
@media(max-width:700px){
      .boss-participants-card{padding:11px}
}


/* v2.16 reliable calendar picker */
.boss-register-calendar-form,
.boss-period-calendar-form{
  position:relative;
}
.boss-native-date-input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
  left:50%;
  top:50%;
}
.boss-calendar-button{
  appearance:none;
  -webkit-appearance:none;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ui-border);
  background:var(--ui-surface-2);
  color:var(--ui-fg);
  cursor:pointer;
}
.boss-calendar-button:hover{
  border-color:#6f5928;
  color:#e1c368;
}


/* v2.18 notice/news image attachments */
.board-image-upload{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2)}
.board-image-upload>span{font-weight:800;color:var(--ui-fg)}
.board-image-upload input[type="file"]{max-width:100%;color:var(--ui-muted)}
.board-image-upload small{color:var(--ui-muted)}
.board-card-image{display:block;width:100%;max-height:220px;object-fit:cover;margin:8px 0 10px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2)}
.board-detail-image{display:block;width:auto;max-width:100%;max-height:70vh;object-fit:contain;margin:14px auto;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2)}
.board-edit-current-image{display:block;width:auto;max-width:min(100%,520px);max-height:340px;object-fit:contain;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2)}
.board-remove-image{display:flex;align-items:center;gap:7px;width:max-content}
@media(max-width:700px){.board-card-image{max-height:180px}.board-detail-image{max-height:58vh}}


/* v2.19 board image zoom viewer */
.image-zoomable{
  cursor:zoom-in;
}
body.image-lightbox-open{
  overflow:hidden;
}
.image-lightbox{
  position:fixed;
  inset:0;
  z-index:7000;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.92);
}
.image-lightbox[hidden]{
  display:none;
}
.image-lightbox-toolbar{
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px;
  border:1px solid var(--ui-border);
  border-radius:11px;
  background:rgba(15,22,29,.92);
  box-shadow:0 8px 28px rgba(0,0,0,.35);
}
.image-lightbox-toolbar button{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border:1px solid var(--ui-border);
  border-radius:8px;
  background:var(--ui-surface-2);
  color:var(--ui-fg);
  font-weight:800;
  cursor:pointer;
}
.image-lightbox-toolbar button:hover{
  border-color:#765d28;
  background:var(--ui-surface-2);
  color:#e6c76c;
}
.image-lightbox-toolbar span{
  min-width:58px;
  text-align:center;
  color:var(--ui-muted);
  font-weight:800;
}
.image-lightbox-toolbar .image-lightbox-close{
  margin-left:4px;
}
.image-lightbox-stage{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  touch-action:none;
  user-select:none;
}
.image-lightbox-stage.is-zoomed{
  cursor:grab;
}
.image-lightbox-stage.is-zoomed:active{
  cursor:grabbing;
}
.image-lightbox-stage img{
  display:block;
  max-width:92vw;
  max-height:88vh;
  object-fit:contain;
  transform-origin:center center;
  transition:transform .08s ease-out;
  will-change:transform;
}
@media(max-width:700px){
  .image-lightbox-toolbar{
    top:10px;
    right:10px;
    left:10px;
    justify-content:center;
  }
  .image-lightbox-toolbar button{
    min-width:36px;
    height:36px;
    padding:0 8px;
  }
  .image-lightbox-stage img{
    max-width:96vw;
    max-height:82vh;
  }
}


/* v2.20 dashboard mobile list simplification */
.skill-modal-head{
  align-items:center;
}
.skill-modal-head h2{
  margin:0;
}
.skill-modal-count{
  margin-top:2px;
}
@media(max-width:700px){
  .skill-modal-panel{
    padding:12px;
  }
  .skill-modal-head{
    margin-bottom:4px;
  }
  .skill-modal-count{
    margin-bottom:8px;
  }
}


/* v2.21 dashboard configuration */
.site-manage-tabs-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dashboard-config-block{margin-top:14px;padding:14px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2)}
.dashboard-config-note{margin:0 0 10px;color:var(--ui-muted)}
.dashboard-level-add,.dashboard-skill-add{display:grid;gap:8px;margin-bottom:10px}
.dashboard-level-add{grid-template-columns:minmax(100px,180px) auto;justify-content:start}
.dashboard-skill-add{grid-template-columns:110px minmax(110px,.6fr) minmax(160px,1fr) minmax(220px,1.5fr) auto}
.dashboard-level-list,.dashboard-skill-list{display:flex;flex-direction:column;gap:7px}
.dashboard-level-row{display:grid;grid-template-columns:auto minmax(90px,140px) auto 38px;align-items:center;gap:7px;width:max-content;max-width:100%}
.dashboard-level-row input,.dashboard-skill-row input,.dashboard-skill-row select,.dashboard-skill-add input,.dashboard-skill-add select,.dashboard-level-add input{min-height:38px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2);color:var(--ui-fg);padding:7px 9px;box-sizing:border-box}
.dashboard-level-remove,.dashboard-skill-remove{width:38px;min-width:38px;height:38px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2);color:var(--ui-muted);cursor:pointer}
.dashboard-skill-row{display:grid;grid-template-columns:36px 42px 100px minmax(100px,.65fr) minmax(150px,1fr) minmax(220px,1.35fr) 38px;align-items:center;gap:7px}
.dashboard-skill-icon-preview{width:38px;height:38px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2)}
.dashboard-skill-icon-preview img{width:100%;height:100%;object-fit:cover}
.skill-icon-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--ui-muted)}
@media(max-width:700px){
  .dashboard-config-block{padding:11px}
  .dashboard-skill-add{grid-template-columns:1fr 1fr}
  .dashboard-skill-add #dashboardSkillKeywords,.dashboard-skill-add #dashboardSkillIcon{grid-column:1/-1}
  .dashboard-skill-add button{grid-column:1/-1}
  .dashboard-skill-row{grid-template-columns:32px 40px 1fr 38px;padding:8px;border:1px solid var(--ui-border);border-radius:9px}
  .dashboard-skill-row .dashboard-skill-class{grid-column:3}
  .dashboard-skill-row .dashboard-skill-label,.dashboard-skill-row .dashboard-skill-keywords,.dashboard-skill-row .dashboard-skill-icon-url{grid-column:1/-1}
  .dashboard-skill-row .dashboard-skill-remove{grid-column:4;grid-row:1}
}


/* v2.22 dashboard skill selector */
.dashboard-skill-add-select{
  grid-template-columns:110px minmax(180px,1fr) 42px auto;
}
.dashboard-skill-row-select{
  grid-template-columns:36px 42px 110px minmax(180px,1fr) 38px;
}
.dashboard-skill-add-select select,
.dashboard-skill-row-select select{
  min-height:40px;
}
@media(max-width:700px){
  .dashboard-skill-add-select{
    grid-template-columns:1fr 1.6fr 42px;
  }
  .dashboard-skill-add-select button{
    grid-column:1/-1;
  }
  .dashboard-skill-row-select{
    grid-template-columns:32px 40px 1fr 38px;
  }
  .dashboard-skill-row-select .dashboard-skill-class{
    grid-column:3;
  }
  .dashboard-skill-row-select .dashboard-skill-name{
    grid-column:1/-1;
  }
}


/* v2.23 site option abbreviations */
.site-data-add-with-alias{
  grid-template-columns:minmax(0,1fr) minmax(90px,.55fr) auto;
}
.site-option-row-alias{
  grid-template-columns:36px minmax(0,1fr) minmax(90px,.55fr) 38px;
}
.site-option-alias{
  min-width:0;
}
@media(max-width:700px){
  .site-data-add-with-alias{
    grid-template-columns:1fr .7fr auto;
  }
  .site-option-row-alias{
    grid-template-columns:32px minmax(0,1fr) minmax(75px,.65fr) 38px;
  }
}


/* v2.24 automatic option icon matching */
.site-option-icon-preview{width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex:0 0 36px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-2);overflow:hidden;color:var(--ui-muted)}
.site-option-icon-preview img{width:100%;height:100%;object-fit:contain}
.site-option-row-alias{grid-template-columns:36px 36px minmax(0,1fr) minmax(90px,.55fr) 38px}
.site-data-add-with-alias{grid-template-columns:36px minmax(0,1fr) minmax(90px,.55fr) auto}
@media(max-width:700px){.site-option-row-alias{grid-template-columns:32px 36px minmax(0,1fr) minmax(75px,.65fr) 38px}.site-data-add-with-alias{grid-template-columns:36px 1fr .7fr auto}}


/* v2.25 info categories: five compact buttons in one row */
.info-category-strip.show{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:5px;
  overflow:visible;
  padding:4px 0 8px;
}
.info-category-strip button{
  min-width:0;
  width:100%;
  padding:8px 4px;
  white-space:nowrap;
  word-break:keep-all;
}
@media(max-width:700px){
  .info-category-strip.show{
    gap:4px;
    padding-top:2px;
  }
  .info-category-strip button{
    padding:7px 2px;
  }
}


/* v2.26:legacy style.css has repeat(4) !important rules; override only this verified conflict */
.info-category-strip.show{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:4px !important;
  overflow:visible !important;
}
.info-category-strip.show > button{
  min-width:0 !important;
  width:100% !important;
  box-sizing:border-box !important;
  padding:7px 2px !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
}
@media(max-width:700px){
  .info-category-strip.show{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:3px !important;
  }
  .info-category-strip.show > button{
    min-height:42px !important;
    padding:7px 1px !important;
  }
}


/* v2.27 site option editor visibility + live icon search
   Verified conflict: base .site-option-row and .site-data-add-batch use !important. */
.site-option-row.site-option-row-alias{
  grid-template-columns:30px 38px minmax(150px,1fr) minmax(90px,.55fr) 34px !important;
  gap:7px !important;
  align-items:center !important;
  min-width:0 !important;
}
.site-data-add-batch.site-data-add-with-alias{
  grid-template-columns:38px minmax(150px,1fr) minmax(90px,.55fr) auto !important;
  gap:7px !important;
  align-items:center !important;
}
.site-option-row.site-option-row-alias .site-option-value,
.site-option-row.site-option-row-alias .site-option-alias{
  width:100% !important;
  min-width:0 !important;
  height:38px !important;
  box-sizing:border-box !important;
  border:1px solid var(--ui-border) !important;
  border-radius:7px !important;
  background:var(--ui-surface-2) !important;
  color:var(--ui-fg) !important;
  padding:7px 9px !important;
  font-weight:700 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.site-option-row.site-option-row-alias .site-option-alias{
  color:var(--ui-fg) !important;
}
.site-option-row.site-option-row-alias .site-remove-item{
  width:34px !important;
  min-width:34px !important;
}
.site-option-icon-preview.searching{
  position:relative;
  opacity:.72;
}
.site-option-icon-preview.searching::after{
  content:"";
  position:absolute;
  inset:3px;
  border:2px solid rgba(255,255,255,.18);
  border-top-color:var(--ui-border);
  border-radius:50%;
  animation:siteIconSpin .7s linear infinite;
}
@keyframes siteIconSpin{to{transform:rotate(360deg)}}

@media(max-width:700px){
  .site-option-row.site-option-row-alias{
    grid-template-columns:28px 36px minmax(120px,1fr) minmax(72px,.48fr) 32px !important;
    gap:5px !important;
  }
  .site-data-add-batch.site-data-add-with-alias{
    grid-template-columns:36px minmax(120px,1fr) minmax(72px,.48fr) 58px !important;
    gap:5px !important;
  }
  .site-option-row.site-option-row-alias .site-option-value,
  .site-option-row.site-option-row-alias .site-option-alias{
    padding:6px !important;
  }
}


/* v2.28 site option editor: explicit child placement.
   Do not rely on grid auto-placement because older rules were still collapsing fields. */
.site-option-row.site-option-row-alias{
  display:grid !important;
  grid-template-columns:30px 38px minmax(0,1fr) minmax(100px,.52fr) 34px !important;
  grid-template-areas:"drag icon name alias remove" !important;
  align-items:center !important;
  gap:7px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.site-option-row.site-option-row-alias > .admin-drag-handle{grid-area:drag !important}
.site-option-row.site-option-row-alias > .site-option-icon-preview{grid-area:icon !important}
.site-option-row.site-option-row-alias > .site-option-value{grid-area:name !important}
.site-option-row.site-option-row-alias > .site-option-alias{grid-area:alias !important}
.site-option-row.site-option-row-alias > .site-remove-item{grid-area:remove !important}

.site-option-row.site-option-row-alias > .site-option-value,
.site-option-row.site-option-row-alias > .site-option-alias{
  display:block !important;
  position:static !important;
  float:none !important;
  margin:0 !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:40px !important;
  box-sizing:border-box !important;
  border:1px solid var(--ui-border) !important;
  border-radius:8px !important;
  background:var(--ui-surface-2) !important;
  color:var(--ui-fg) !important;
  padding:8px 10px !important;
  opacity:1 !important;
  visibility:visible !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.site-option-row.site-option-row-alias > .site-option-alias{
  color:var(--ui-fg) !important;
}
.site-option-row.site-option-row-alias > .site-option-value::placeholder,
.site-option-row.site-option-row-alias > .site-option-alias::placeholder{
  color:var(--ui-muted) !important;
  opacity:1 !important;
}

.site-data-add-batch.site-data-add-with-alias{
  display:grid !important;
  grid-template-columns:38px minmax(0,1fr) minmax(100px,.52fr) 64px !important;
  grid-template-areas:"icon name alias add" !important;
  gap:7px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.site-data-add-batch.site-data-add-with-alias > .site-new-icon-preview{grid-area:icon !important}
.site-data-add-batch.site-data-add-with-alias > .site-new-item{grid-area:name !important}
.site-data-add-batch.site-data-add-with-alias > .site-new-alias{grid-area:alias !important}
.site-data-add-batch.site-data-add-with-alias > .site-add-item{grid-area:add !important}

@media(max-width:700px){
  .site-option-row.site-option-row-alias{
    grid-template-columns:28px 38px minmax(0,1fr) 34px !important;
    grid-template-areas:"drag icon name remove"
      ". alias alias ." !important;
    gap:6px !important;
    padding:7px !important;
  }
  .site-option-row.site-option-row-alias > .site-option-value{
    min-width:0 !important;
  }
  .site-option-row.site-option-row-alias > .site-option-alias{
    width:100% !important;
    margin-top:0 !important;
  }

  .site-data-add-batch.site-data-add-with-alias{
    grid-template-columns:38px minmax(0,1fr) 64px !important;
    grid-template-areas:"icon name add"
      ". alias alias" !important;
    gap:6px !important;
  }
  .site-data-add-batch.site-data-add-with-alias > .site-new-item,
  .site-data-add-batch.site-data-add-with-alias > .site-new-alias{
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
}


/* v2.29 local option icons */
.site-option-icon-preview[data-icon-source="local"]{
  border-color:var(--ui-border);
}


/* v2.32 boss member editor toolbar */
.boss-member-edit-toolbar{
  margin:14px 0 16px;
  padding:14px;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:linear-gradient(180deg,var(--ui-surface-2) 0%,var(--ui-surface-2) 100%);
}
.boss-member-edit-toolbar-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.boss-member-edit-toolbar-head>div{
  min-width:0;
}
.boss-admin-kicker{
  display:block;
  margin-bottom:3px;
  color:var(--ui-muted);
  font-size:var(--fs-small);
  font-weight:800;
}
.boss-member-edit-toolbar-head h3{
  margin:0;
  color:var(--ui-fg);
  font-size:var(--fs-emphasis);
  line-height:1.2;
}
.boss-member-edit-toolbar-head time{
  flex:0 0 auto;
  color:#93a9c6;
  font-size:var(--fs-ui);
  white-space:nowrap;
}
.boss-member-edit-date{
  margin:0;
}
.boss-member-edit-date>label{
  display:block;
  color:var(--ui-muted);
  font-size:var(--fs-ui);
  font-weight:800;
}
.boss-member-edit-date>label>span{
  display:block;
  margin-bottom:6px;
}
.boss-member-date-control{
  display:grid;
  grid-template-columns:minmax(0,1fr) 88px;
  gap:8px;
}
.boss-member-date-control input,
.boss-member-date-control button{
  min-height:44px;
  box-sizing:border-box;
  border-radius:9px;
}
.boss-member-date-control input{
  width:100%;
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--ui-border);
  background:var(--ui-surface-2);
  color:var(--ui-fg);
}
.boss-member-date-control button{
  border:1px solid #9a3540;
  background:#8f202a;
  color:var(--ui-fg);
  font-weight:900;
}
@media(max-width:600px){
  .boss-time-admin-tabs{
    gap:4px!important;
  }
  .boss-time-admin-tabs a{
    min-height:42px;
    display:flex!important;
    align-items:center;
    justify-content:center;
    padding:7px 8px!important;
  }
  .boss-member-edit-toolbar{
    margin-top:10px;
    padding:12px;
    border-radius:11px;
  }
  .boss-member-edit-toolbar-head{
    align-items:center;
    margin-bottom:10px;
  }
  .boss-member-edit-toolbar-head time{
    font-size:var(--fs-small);
  }
  .boss-member-date-control{
    grid-template-columns:minmax(0,1fr) 74px;
    gap:6px;
  }
  .boss-member-date-control input,
  .boss-member-date-control button{
    min-height:44px!important;
  }
}


/* v2.35 real-icon picker: polished catalog UI */
.site-option-icon-preview.site-icon-pick-btn{
  padding:0!important;cursor:pointer!important;color:var(--ui-muted)!important;
  border:1px solid var(--ui-border)!important;border-radius:9px!important;background:var(--ui-surface-2)!important;
  overflow:hidden!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)!important;
}
.site-option-icon-preview.site-icon-pick-btn:hover{border-color:#9b762c!important;background:var(--ui-surface-2)!important}
.site-option-icon-preview.site-icon-pick-btn img{width:100%!important;height:100%!important;object-fit:contain!important;padding:3px!important;box-sizing:border-box!important}
.site-icon-picker-modal[hidden]{display:none!important}
.site-icon-picker-modal{position:fixed;inset:0;z-index:6100;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(2,5,9,.84);backdrop-filter:blur(4px)}
.site-icon-picker-card{width:min(860px,96vw);max-height:min(790px,92vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--ui-border);border-radius:16px;background:var(--ui-surface-2);box-shadow:0 28px 80px rgba(0,0,0,.62)}
.site-icon-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px 13px;border-bottom:1px solid var(--ui-border);background:linear-gradient(180deg,var(--ui-surface-2),var(--ui-surface-2))}
.site-icon-picker-head>div{min-width:0}
.site-icon-picker-head h3{margin:0;color:var(--ui-fg);font-size:var(--fs-emphasis);line-height:1.2}
.site-icon-picker-head span{display:block;margin-top:4px;color:var(--ui-muted);font-size:var(--fs-small)}
.site-icon-picker-head>button{flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2);color:var(--ui-fg);font-size:var(--fs-emphasis);line-height:1}
.site-icon-picker-head>button:hover{border-color:var(--ui-border);background:var(--ui-surface-2)}
.site-icon-picker-search-wrap{padding:12px 14px 8px;background:var(--ui-surface-2)}
#siteIconPickerSearch{display:block;width:100%;box-sizing:border-box;margin:0;min-height:44px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2);color:var(--ui-fg);padding:9px 12px;outline:none}
#siteIconPickerSearch:focus{border-color:#99742b;box-shadow:0 0 0 2px rgba(153,116,43,.14)}
#siteIconPickerSearch::placeholder{color:var(--ui-muted)}
.site-icon-picker-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 14px 10px;scrollbar-width:thin;background:var(--ui-surface-2)}
.site-icon-picker-tabs button{flex:0 0 auto;min-height:34px;padding:5px 12px;border:1px solid var(--ui-border);border-radius:999px;background:var(--ui-surface-2);color:var(--ui-muted);font-weight:800;white-space:nowrap}
.site-icon-picker-tabs button:hover{border-color:var(--ui-border);color:var(--ui-fg)}
.site-icon-picker-tabs button.active{border-color:#9b762c;background:var(--ui-surface-2);color:#f2d78d;box-shadow:inset 0 0 0 1px rgba(242,215,141,.06)}
.site-icon-picker-grid{overflow:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;gap:8px;padding:5px 14px 16px;background:var(--ui-surface-2)}
.site-icon-picker-item{position:relative;min-width:0;min-height:104px;padding:10px 7px 8px;border:1px solid var(--ui-border);border-radius:11px;background:linear-gradient(180deg,var(--ui-surface-2),var(--ui-surface-2));color:var(--ui-fg);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.site-icon-picker-item:hover{border-color:var(--ui-border);background:linear-gradient(180deg,var(--ui-surface-2),var(--ui-surface-2));transform:translateY(-1px)}
.site-icon-picker-item.selected{border-color:#a47d2e;background:linear-gradient(180deg,var(--ui-surface-2),var(--ui-surface-2));box-shadow:inset 0 0 0 1px rgba(240,208,123,.13)}
.site-icon-picker-item.selected::after{content:'✓';position:absolute;top:6px;right:7px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#a47d2e;color:var(--ui-fg);font-weight:900;font-size:12px}
.site-icon-picker-item img{width:48px;height:48px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 2px 3px rgba(0,0,0,.28))}
.site-icon-picker-item span{display:block!important;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center!important;color:var(--ui-fg);font-size:var(--fs-small);font-weight:800;line-height:1.25!important}
.site-icon-picker-item small{display:inline-flex!important;max-width:100%;min-height:20px;align-items:center;justify-content:center;padding:2px 7px;border:1px solid var(--ui-border);border-radius:999px;background:var(--ui-surface-2);color:var(--ui-muted);font-size:var(--fs-caption);line-height:1.2!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-icon-picker-empty{grid-column:1/-1;padding:42px 10px;text-align:center;color:var(--ui-muted);border:1px dashed var(--ui-border);border-radius:11px;background:var(--ui-surface-2)}
.site-icon-picker-actions{padding:10px 14px 14px;border-top:1px solid var(--ui-border);background:var(--ui-surface-2)}
.site-icon-picker-actions button{width:100%;min-height:40px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2);color:var(--ui-fg);font-weight:800}
.site-icon-picker-actions button:hover{border-color:var(--ui-border);color:var(--ui-fg)}
body.site-icon-picker-open{overflow:hidden}
@media(max-width:700px){
  .site-icon-picker-modal{padding:7px;align-items:flex-end}
  .site-icon-picker-card{width:100%;max-height:91vh;border-radius:16px 16px 8px 8px}
  .site-icon-picker-head{padding:13px 12px 11px}
  .site-icon-picker-search-wrap{padding:10px 10px 7px}
  .site-icon-picker-tabs{padding-left:10px;padding-right:10px}
  .site-icon-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px 10px 12px}
  .site-icon-picker-item{min-height:99px;padding:8px 5px 7px}
  .site-icon-picker-item img{width:44px;height:44px}
  .site-icon-picker-actions{padding:9px 10px 11px}
}
@media(max-width:390px){.site-icon-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.site-icon-picker-item span{font-size:12px}}

/* v2.33 owned-item click history */
.clan-item-stock-item.clan-item-history-open{width:100%;font:inherit;text-align:left;cursor:pointer;border:0;color:var(--ui-fg)}
.clan-item-history-modal[hidden]{display:none!important}
.clan-item-history-modal{position:fixed;inset:0;z-index:6200;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(3,7,11,.82)}
.clan-item-history-card{width:min(520px,94vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--ui-border);border-radius:14px;background:var(--ui-surface-2);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.clan-item-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 15px;border-bottom:1px solid var(--ui-border)}
.clan-item-history-head h2{margin:0;color:var(--ui-fg);font-size:var(--fs-emphasis)}
.clan-item-history-head span{color:var(--ui-muted);font-size:var(--fs-small)}
.clan-item-history-head>button{width:38px;height:38px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2);color:var(--ui-fg);font-size:var(--fs-emphasis)}
.clan-item-history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:12px 14px}
.clan-item-history-summary>div{padding:10px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2);display:flex;flex-direction:column;gap:3px}
.clan-item-history-summary span{color:var(--ui-muted);font-size:var(--fs-small)}
.clan-item-history-summary b{color:var(--ui-fg);font-size:var(--fs-emphasis)}
.clan-item-history-list{overflow:auto;padding:0 14px 14px}
.clan-item-history-row{display:grid;grid-template-columns:minmax(100px,1fr) 64px 64px;align-items:center;gap:8px;min-height:46px;padding:7px 9px;border-bottom:1px solid var(--ui-border)}
.clan-item-history-row time{color:var(--ui-muted);white-space:nowrap}
.clan-item-history-row b{text-align:right;color:var(--ui-fg)}
.clan-item-history-row b.fund-minus{color:#e18a92}
.clan-item-history-loading{padding:28px 8px;text-align:center;color:var(--ui-muted)}
.clan-item-history-settings{margin:0 14px 14px;min-height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2);color:var(--ui-fg);font-weight:800;text-decoration:none}
@media(max-width:600px){
  .clan-item-history-modal{padding:8px;align-items:flex-end}
  .clan-item-history-card{width:100%;max-height:84vh;border-radius:14px 14px 8px 8px}
  .clan-item-history-row{grid-template-columns:minmax(96px,1fr) 58px 58px}
}



/* v2.35 selected icon preview */
.site-option-icon-preview[data-icon-url]:not([data-icon-url=""]){border-color:var(--ui-border)!important}


/* v3.16 member-trend newcomer profile trigger: keep the existing row appearance. */
.member-trend-new-profile-trigger{
  width:100%;
  font:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}
.member-trend-new-profile-trigger:focus-visible{
  outline:2px solid var(--red, #dc2634);
  outline-offset:2px;
}
@media (hover:hover) and (pointer:fine){
  .member-trend-new-profile-trigger:hover{filter:brightness(1.06);}
}


/* v3.19 app entry */
.app-entry-shell{max-width:460px;margin:42px auto 90px;padding:28px 22px;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(14,21,31,.96);box-shadow:0 18px 48px rgba(0,0,0,.28)}
.app-entry-mark{display:flex;justify-content:center;margin-bottom:14px}.app-entry-mark img{width:72px;height:72px;object-fit:contain;border-radius:16px}
.app-entry-copy{text-align:center}.app-entry-kicker{margin:0 0 6px;color:var(--ui-muted);font-size:11px;letter-spacing:.14em;font-weight:800}.app-entry-copy h1{margin:0;font-size:25px;line-height:1.25}.app-entry-copy>p:last-child{margin:10px 0 0;color:var(--ui-fg);font-size:14px;line-height:1.55}
.app-entry-actions{display:grid;gap:10px;margin-top:24px}.app-entry-btn{min-height:48px;display:flex;align-items:center;justify-content:center;width:100%;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:var(--ui-surface-2);color:var(--ui-fg);text-decoration:none;font:inherit;font-weight:800;cursor:pointer}.app-entry-btn.primary{background:#d9a441;color:var(--ui-fg);border-color:#d9a441}
.app-invite-form{display:none;margin-top:12px;padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:var(--ui-surface-2)}.app-invite-form.open{display:block}.app-invite-form label{display:block;margin-bottom:7px;font-size:13px;font-weight:800}.app-invite-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.app-invite-row input{min-width:0;height:44px;border-radius:10px}.app-invite-row button{min-width:68px;border:0;border-radius:10px;font-weight:800}.app-invite-form small{display:block;margin-top:8px;color:var(--ui-muted);line-height:1.45}
.app-invite-ready{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:11px 13px;border-radius:12px;background:rgba(217,164,65,.11);border:1px solid rgba(217,164,65,.28);font-size:13px}.app-invite-ready b{overflow-wrap:anywhere}
.app-entry-foot{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:20px;color:var(--ui-muted);font-size:12px;text-align:center}.app-entry-foot a{color:var(--ui-fg)}
@media(max-width:600px){.app-entry-shell{margin:18px auto 84px;padding:24px 17px;border-radius:18px}.app-entry-copy h1{font-size:23px}}


/* v3.22 member trend modal fixes */
.member-trend-empty[hidden]{display:none!important}
.member-trend-new-list{background:var(--ui-surface-2)!important;border-color:var(--ui-border)!important;overflow-x:hidden!important}
.member-trend-new-row,
button.member-trend-new-row{
  width:100%!important;max-width:100%!important;min-width:0!important;
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;gap:10px!important;
  padding:10px 12px!important;margin:0!important;
  background:var(--ui-surface-2)!important;color:var(--ui-fg)!important;
  border:0!important;border-bottom:1px solid var(--ui-border)!important;
  border-radius:0!important;box-shadow:none!important;text-align:left!important;
  font:inherit!important;
}
button.member-trend-new-row:last-child{border-bottom:0!important}
button.member-trend-new-row:active{background:var(--ui-surface-2)!important}
.member-trend-new-info{min-width:0!important;display:flex!important;align-items:center!important;gap:7px!important;overflow:hidden!important}
.member-trend-new-info strong{color:var(--ui-fg)!important;font-weight:800!important;overflow:hidden!important;text-overflow:ellipsis!important}
.member-trend-new-info span{color:var(--ui-muted)!important;flex:0 0 auto!important}
.member-trend-new-row time{color:var(--ui-muted)!important;font-size:.92em!important;white-space:nowrap!important}
.member-trend-chart-wrap{min-width:0!important}
.member-trend-chart-wrap canvas{max-width:100%!important}
@media(max-width:600px){
  .member-trend-panel{width:100%!important;max-width:100%!important}
  .member-trend-new-row,button.member-trend-new-row{padding:10px!important;gap:7px!important}
  .member-trend-new-info{gap:5px!important}
  .member-trend-new-info strong{max-width:92px!important}
  .member-trend-new-info span{font-size:.9em!important}
  .member-trend-new-row time{font-size:.86em!important}
}

/* v3.31 installed-app clan-code entry */
.app-entry-v331 .app-entry-actions-v331{grid-template-columns:1fr 1fr}
.app-entry-v331 .app-code-login{margin-top:14px}
.app-code-head b{display:block;font-size:15px}.app-code-head p{margin:5px 0 12px;color:var(--ui-muted);font-size:12px;line-height:1.5}
.clan-create-v331 section{max-width:500px}.clan-create-v331 select{width:100%;min-height:44px;border-radius:10px;background:var(--ui-surface-2);color:var(--ui-fg);border:1px solid var(--ui-border);padding:0 11px}
.clan-mark-picker-v331{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;margin-top:6px;padding:10px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface-2)}.clan-mark-picker-v331>img{width:72px;height:72px;object-fit:cover;border-radius:12px;border:1px solid var(--ui-border)}.clan-mark-picker-v331>span{min-width:0}.clan-mark-picker-v331 input[type=file]{width:100%;font-size:12px}.clan-mark-picker-v331 small{display:block;margin-top:6px;color:var(--ui-muted);font-size:11px}
.clan-login-v331 section>img{width:86px;height:86px;object-fit:cover;border-radius:16px}.clan-login-server-v331{display:block;margin:10px 0 2px;color:#c7a658;font-weight:800}.clan-login-v331 h1{margin:0}.clan-login-v331 section>p{margin-top:5px;color:var(--ui-muted)}.auth-back-link-v331{display:block;margin-top:10px;color:var(--ui-muted)!important;font-size:12px}
@media(max-width:600px){.app-entry-v331 .app-entry-actions-v331{grid-template-columns:1fr 1fr}.clan-create-v331 section{padding-left:16px;padding-right:16px}}
/* v3.38 dashboard core skill names link to game information */
.dashboard-skill-info-link{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;padding:0;margin:0;text-align:left;cursor:pointer;text-decoration:none}
.dashboard-skill-info-link:hover,.dashboard-skill-info-link:focus-visible{color:#f0d58a;text-decoration:none;outline:none}


/* v3.61 interaction recovery */
[hidden]{display:none!important;pointer-events:none!important}
[aria-hidden="true"].image-lightbox,
[aria-hidden="true"].skill-modal,
[aria-hidden="true"].member-trend-modal,
[aria-hidden="true"].member-profile-modal,
[aria-hidden="true"].global-search-panel{
  display:none!important;
  pointer-events:none!important;
}
@media(max-width:820px){
  .mobile-quick-dock{
    z-index:2147483000!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .mobile-quick-dock>a{
    position:relative!important;
    z-index:1!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
}


/* v3.64 smooth mobile page navigation */
@media(max-width:820px){
  /* v3.68: do not keep a transformed containing block while idle.
     Persistent transform/will-change makes descendant position:fixed elements
     anchor to main.container instead of the viewport. */
  main.container{
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }
  main.container.page-dragging,
  main.container.page-transitioning{
    will-change:transform,opacity;
  }
  main.container.page-dragging{
    user-select:none;
    -webkit-user-select:none;
  }
  .mobile-quick-dock>a{
    transition:transform 120ms ease, background-color 160ms ease, color 160ms ease, opacity 160ms ease!important;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-quick-dock>a:active,
  .mobile-quick-dock>a.dock-tap-feedback{
    transform:scale(.94)!important;
    opacity:.78!important;
  }
  @media(prefers-reduced-motion:reduce){
    main.container,.mobile-quick-dock>a{transition:none!important;animation:none!important}
  }
}


/* v3.67 board gesture ownership + compose FAB final override */
@media (max-width: 820px){
  /* Horizontal data areas scroll themselves; page swipe must not capture them. */
  .compact-ledger,
  .distribution-ledger,
  .clan-item-ledger,
  .table-wrap,
  [data-horizontal-scroll]{
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
  }

  /* Only the active board panel may expose its compose action. */
  .board-card-list:not(.active) .tab-compose-toolbar,
  .board-card-list:not(.active) .tab-compose-open{display:none!important;}

  .board-card-list.active .tab-compose-toolbar{
    display:block!important;
    width:0!important;
    height:0!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  .board-card-list.active .tab-compose-open{
    position:fixed!important;
    right:max(16px, env(safe-area-inset-right))!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    top:auto!important;
    left:auto!important;
    z-index:1400!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    height:46px!important;
    min-height:46px!important;
    min-width:0!important;
    margin:0!important;
    padding:0 16px!important;
    border-radius:23px!important;
    box-shadow:0 8px 24px rgba(0,0,0,.45)!important;
    white-space:nowrap!important;
  }
}


/* v3.68 viewport FAB: board/siege actions live under body, never under transformed page content. */
@media(max-width:820px){
  body > .tab-compose-open.viewport-compose-fab,
  body > .siege-add-fab.viewport-siege-fab{
    position:fixed!important;
    right:max(16px,env(safe-area-inset-right))!important;
    bottom:calc(88px + env(safe-area-inset-bottom))!important;
    top:auto!important;
    left:auto!important;
    z-index:5600!important;
    margin:0!important;
    transform:none!important;
  }
  body > .tab-compose-open.viewport-compose-fab{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    width:auto!important;min-width:0!important;height:48px!important;min-height:48px!important;
    padding:0 17px!important;border-radius:24px!important;white-space:nowrap!important;
    box-shadow:0 8px 28px rgba(0,0,0,.46)!important;
  }
  body > .siege-add-fab.viewport-siege-fab{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    min-height:48px!important;padding:0 17px!important;border-radius:14px!important;
    box-shadow:0 8px 28px rgba(0,0,0,.46)!important;
  }
}


/* v3.78 board / poll / fund / inventory interaction cleanup */
body.compose-modal-open .global-search-shell,
body.compose-modal-open > .tab-compose-open.viewport-compose-fab,
body.siege-compose-open .global-search-shell,
body.siege-compose-open > .siege-add-fab.viewport-siege-fab{display:none!important}
.notice-poll-compose{display:grid;gap:12px}.notice-poll-deadline{display:grid;gap:6px}.notice-poll-deadline input{min-height:44px}
.notice-choice-rows,.notice-datetime-rows{display:grid;gap:8px}.notice-choice-row{display:grid;grid-template-columns:1fr 42px;gap:8px}.notice-datetime-row{display:grid;grid-template-columns:1.25fr .85fr 42px;gap:8px}.notice-choice-row input,.notice-datetime-row input{min-height:44px}.notice-choice-row button,.notice-datetime-row button{min-height:44px}
.fund-period-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.fund-period-switch button{min-height:42px;border:1px solid var(--ui-border);border-radius:10px;background:var(--panel,var(--ui-surface-2));font-weight:800}.fund-period-switch button.active{background:#b51f2d;color:var(--ui-fg);border-color:#d72b3b}
.fund-chart-card{border:1px solid var(--ui-border);border-radius:14px;padding:14px;margin-bottom:12px}.fund-chart-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.fund-chart{display:flex;align-items:flex-end;gap:6px;height:170px;overflow-x:auto;padding:8px 2px}.fund-chart-col{min-width:34px;height:100%;display:grid;grid-template-rows:1fr 20px;gap:4px}.fund-chart-bars{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100%;border-bottom:1px solid var(--ui-border)}.fund-chart-bars i{width:11px;min-height:2px;border-radius:4px 4px 0 0}.fund-chart-bars .income{background:#3aa675}.fund-chart-bars .expense{background:#d84a55}.fund-chart-col small{text-align:center;font-size:10px;white-space:nowrap}
.board-card-list[data-board-panel="blood_fund"] .fund-ledger-v378 .compact-ledger-head,.board-card-list[data-board-panel="blood_fund"] .fund-ledger-v378 .fund-ledger-row-v378{display:grid!important;grid-template-columns:72px 58px minmax(110px,1fr) 94px!important;align-items:center;gap:8px;min-width:0!important;width:100%!important}.fund-ledger-row-v378{border:0;border-bottom:1px solid var(--ui-border);background:transparent;text-align:left;padding:11px 8px;color:inherit;cursor:pointer}.fund-ledger-row-v378>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fund-detail-modal{position:fixed;inset:0;z-index:8000;background:rgba(0,0,0,.62);display:grid;place-items:center;padding:18px}.fund-detail-modal[hidden]{display:none!important}.fund-detail-card{width:min(460px,100%);background:var(--panel,var(--ui-surface-2));border:1px solid var(--ui-border);border-radius:16px;padding:16px}.fund-detail-head{display:flex;justify-content:space-between;align-items:center}.fund-detail-head button{font-size:24px}.fund-detail-body dl{display:grid;grid-template-columns:72px 1fr;gap:9px 12px}.fund-detail-body dt{color:var(--muted,var(--ui-muted))}.fund-detail-body dd{margin:0}.fund-detail-edit{display:block;text-align:center;margin-top:14px;padding:11px;border-radius:10px;background:#b51f2d;color:var(--ui-fg);font-weight:800}
.clan-item-two-step{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.7fr;gap:10px}.clan-item-two-step label{min-width:0}.clan-item-two-step select{width:100%}
@media(max-width:640px){.clan-item-two-step{grid-template-columns:.9fr 1.5fr}.notice-datetime-row{grid-template-columns:1fr .8fr 40px}.board-card-list[data-board-panel="blood_fund"] .fund-ledger-v378 .compact-ledger-head,.board-card-list[data-board-panel="blood_fund"] .fund-ledger-v378 .fund-ledger-row-v378{grid-template-columns:60px 48px minmax(92px,1fr) 82px!important;font-size:13px}.fund-chart{height:150px}}

/* v3.86 siege FAB is rendered body-direct from first paint; no JS relocation. */
@media(max-width:820px){
  body > .siege-add-fab.viewport-siege-fab{
    position:fixed!important;
    right:max(16px,env(safe-area-inset-right))!important;
    bottom:calc(88px + env(safe-area-inset-bottom))!important;
    top:auto!important;
    left:auto!important;
    margin:0!important;
    transform:none!important;
    transition:background .12s ease,filter .12s ease!important;
  }
}


/* v3.88 mobile bottom menu */
@media(max-width:820px){
  .mobile-quick-dock{display:flex!important;align-items:stretch!important;gap:2px!important;overflow:hidden!important}
  .mobile-quick-dock>a,.mobile-quick-dock>.mobile-more-menu-button{
    flex:1 1 0!important;min-width:0!important;height:54px!important;padding:2px 1px!important;border:0!important;border-radius:8px!important;
    background:transparent!important;color:var(--ui-muted)!important;display:flex!important;flex-direction:column!important;align-items:center!important;
    justify-content:center!important;gap:1px!important;font-family:inherit!important;-webkit-tap-highlight-color:transparent
  }
  .mobile-quick-dock>.mobile-more-menu-button span{font-size:22px!important;line-height:26px!important}
  .mobile-quick-dock>.mobile-more-menu-button b{font-size:12px!important;line-height:12px!important;font-weight:900!important;color:inherit!important}
  .mobile-quick-dock>.mobile-more-menu-button.active{color:#ff555f!important;background:linear-gradient(180deg,rgba(183,32,43,.22),rgba(114,19,28,.1))!important;box-shadow:inset 0 0 0 1px rgba(204,54,64,.24)!important}
  body.mobile-more-menu-open{overflow:hidden!important}
  .mobile-more-menu{position:fixed;inset:0;z-index:2147483100;pointer-events:none}
  .mobile-more-menu.open{pointer-events:auto}
  .mobile-more-menu-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.52);opacity:0;transition:opacity .15s ease}
  .mobile-more-menu.open .mobile-more-menu-backdrop{opacity:1}
  .mobile-more-menu-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 14px calc(82px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;border-top:1px solid var(--ui-border);background:var(--card,var(--ui-surface-2));box-shadow:0 -12px 36px rgba(0,0,0,.42);transform:translateY(105%);transition:transform .16s cubic-bezier(.2,.75,.3,1)}
  .mobile-more-menu.open .mobile-more-menu-sheet{transform:translateY(0)}
  .mobile-more-menu-handle{width:38px;height:4px;border-radius:4px;background:var(--ui-surface-2);margin:0 auto 8px;opacity:.6}
  .mobile-more-menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .mobile-more-menu-head strong{font-size:19px}
  .mobile-more-menu-head button{width:34px;height:34px;border:0;border-radius:50%;background:var(--soft,var(--ui-surface-2));color:var(--text,var(--ui-fg));font-size:24px;line-height:1}
  .mobile-more-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .mobile-more-menu-grid a{min-width:0;min-height:76px;padding:9px 4px;border:1px solid var(--ui-border);border-radius:13px;background:var(--soft,var(--ui-surface-2));color:var(--text,var(--ui-fg))!important;text-decoration:none!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}
  .mobile-more-menu-grid a:active{transform:scale(.97)}
  .mobile-more-menu-grid a span{font-size:25px;line-height:1}
  .mobile-more-menu-grid a b{font-size:13px;line-height:1.15;white-space:nowrap}
}


/* v3.89 mobile depth / restrained feature accents / SPA-safe board FAB */
@media(max-width:820px){
  /* Board compose button now lives in the dedicated viewport host, not as a body orphan. */
  #viewportFabHost > .tab-compose-open.viewport-compose-fab{
    position:fixed!important;right:max(16px,env(safe-area-inset-right))!important;
    bottom:calc(88px + env(safe-area-inset-bottom))!important;top:auto!important;left:auto!important;
    z-index:5600!important;margin:0!important;transform:none!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    width:auto!important;min-width:0!important;height:48px!important;min-height:48px!important;
    padding:0 17px!important;border-radius:24px!important;white-space:nowrap!important;
    box-shadow:0 9px 28px rgba(0,0,0,.48)!important;
  }
  body.compose-modal-open #viewportFabHost > .tab-compose-open.viewport-compose-fab{display:none!important}

  /* Dock: retain one calm dark surface, but give icons enough feature identity. */
  .mobile-quick-dock{
    background:linear-gradient(180deg,rgba(38,48,59,.98),rgba(27,35,44,.99))!important;
    border-top:1px solid rgba(150,164,179,.20)!important;
    box-shadow:0 -9px 24px rgba(0,0,0,.32)!important;
  }
  .mobile-quick-dock>a,.mobile-quick-dock>.mobile-more-menu-button{
    color:var(--ui-muted)!important;background:transparent!important;box-shadow:none!important;
  }
  .mobile-quick-dock>a>span:first-child,.mobile-quick-dock>.mobile-more-menu-button>span:first-child{
    opacity:.92;filter:saturate(.82);transition:color .12s ease,opacity .12s ease,transform .12s ease;
  }
  .mobile-quick-dock .dock-home>span:first-child{color:var(--ui-muted)!important}
  .mobile-quick-dock .dock-clan>span:first-child{color:var(--ui-muted)!important}
  .mobile-quick-dock .dock-news>span:first-child{color:var(--ui-muted)!important}
  .mobile-quick-dock .dock-stats>span:first-child{color:#88adc9!important}
  .mobile-quick-dock .dock-bosses>span:first-child{color:#c9ab72!important}
  .mobile-quick-dock .dock-siege>span:first-child{color:#c78686!important}
  .mobile-quick-dock .dock-board>span:first-child{color:var(--ui-muted)!important}
  .mobile-quick-dock .dock-more>span:first-child{color:var(--ui-muted)!important}
  .mobile-quick-dock>a.active,.mobile-quick-dock>.mobile-more-menu-button.active{
    color:var(--ui-fg)!important;
    background:linear-gradient(180deg,rgba(151,48,60,.22),rgba(88,31,40,.14))!important;
    box-shadow:inset 0 0 0 1px rgba(205,78,90,.28),0 2px 8px rgba(0,0,0,.12)!important;
  }
  .mobile-quick-dock>a.active>span:first-child,.mobile-quick-dock>.mobile-more-menu-button.active>span:first-child{
    color:#ff6872!important;opacity:1!important;filter:none!important;transform:translateY(-1px)
  }

  /* More menu: main functions remain visible even if they are not selected as bottom tabs. */
  .mobile-more-menu-sheet{
    background:linear-gradient(180deg,var(--card,var(--ui-surface-2)),var(--panel,var(--ui-surface-2)))!important;
    border-top-color:rgba(158,173,188,.24)!important;
  }
  .mobile-more-menu-grid a{
    --menu-accent:#93a4b5;
    position:relative;overflow:hidden;
    background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))!important;
    border-color:rgba(161,175,190,.18)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 4px 12px rgba(0,0,0,.10)!important;
  }
  .mobile-more-menu-grid a::before{
    content:"";position:absolute;left:0;top:0;right:0;height:2px;background:var(--menu-accent);opacity:.72
  }
  .mobile-more-menu-grid a span{color:var(--menu-accent)!important;text-shadow:0 1px 10px color-mix(in srgb,var(--menu-accent) 28%,transparent)}
  .mobile-more-menu-grid .menu-siege{--menu-accent:#d66368;background:linear-gradient(145deg,rgba(145,44,53,.16),rgba(255,255,255,.012))!important}
  .mobile-more-menu-grid .menu-bosses{--menu-accent:#d4a34f;background:linear-gradient(145deg,rgba(145,96,25,.14),rgba(255,255,255,.012))!important}
  .mobile-more-menu-grid .menu-attendance{--menu-accent:#55b6aa;background:linear-gradient(145deg,rgba(38,121,111,.14),rgba(255,255,255,.012))!important}
  .mobile-more-menu-grid .menu-clan{--menu-accent:#9c9fd0}
  .mobile-more-menu-grid .menu-news{--menu-accent:#b78bc8}
  .mobile-more-menu-grid .menu-stats{--menu-accent:#5f9ed1}
  .mobile-more-menu-grid .menu-board{--menu-accent:#8fa6b8}
  .mobile-more-menu-grid .menu-profile{--menu-accent:#8ca5c8}
  .mobile-more-menu-grid .menu-admin{--menu-accent:#c79a55;background:linear-gradient(145deg,rgba(133,94,34,.12),rgba(255,255,255,.012))!important}

  /* Attendance: build depth with luminance, not loud color blocks. */
  .attendance-page .embedded-manage-tabs.attendance-main-tabs{
    padding:6px!important;border:1px solid rgba(155,171,187,.18)!important;border-radius:16px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
  }
  .attendance-page .attendance-main-tabs button{
    position:relative;border-radius:12px!important;background:transparent!important;color:var(--muted,var(--ui-muted))!important;
  }
  .attendance-page .attendance-main-tabs button.active{
    color:var(--text,var(--ui-fg))!important;
    background:linear-gradient(180deg,rgba(89,113,135,.18),rgba(49,65,81,.16))!important;
    box-shadow:inset 0 0 0 1px rgba(122,151,176,.20)!important;
  }
  .attendance-page .attendance-main-tabs button.active::after{
    content:"";position:absolute;left:22%;right:22%;bottom:3px;height:2px;border-radius:3px;background:#5f9fd4
  }
  .attendance-title-row .attendance-summary{
    background:linear-gradient(145deg,rgba(137,34,47,.38),rgba(46,50,72,.34))!important;
    border-color:rgba(181,70,83,.34)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
  }
  .attendance-panel{
    background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.016))!important;
    border-color:rgba(151,169,187,.18)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 8px 22px rgba(0,0,0,.09)!important;
  }
  .attendance-panel-head{
    background:linear-gradient(90deg,rgba(67,116,158,.075),transparent 62%);
  }
  .attendance-panel-head h2::before{content:"●";font-size:10px;color:#5b9bd2;margin-right:9px;vertical-align:2px}
  .attendance-panel.absent-panel .attendance-panel-head{background:linear-gradient(90deg,rgba(153,112,48,.065),transparent 62%)}
  .attendance-panel.absent-panel .attendance-panel-head h2::before{color:#b69662}
  .attendance-id-only-card{
    background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(0,0,0,.03))!important;
    border-color:rgba(151,169,187,.16)!important;
  }
  .attendance-id-only-card:not(.absent){box-shadow:inset 0 -2px 0 rgba(63,146,201,.16)!important}
  .attendance-id-only-card.absent{opacity:.88!important;filter:saturate(.78)}
}


/* =========================================================
   v3.90 - richer mobile navigation + separated clan ledger
   ========================================================= */
@media(max-width:820px){
  .mobile-quick-dock>a,.mobile-quick-dock>.mobile-more-menu-button{gap:3px!important}
  .mobile-quick-dock .dock-icon{width:28px;height:28px;display:grid!important;place-items:center}
  .mobile-quick-dock .dock-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}
  .mobile-quick-dock .dock-home .dock-icon{color:#9bb7d2!important}.mobile-quick-dock .dock-clan .dock-icon{color:var(--ui-muted)!important}
  .mobile-quick-dock .dock-news .dock-icon{color:var(--ui-muted)!important}.mobile-quick-dock .dock-stats .dock-icon{color:#89add0!important}
  .mobile-quick-dock .dock-board .dock-icon{color:var(--ui-muted)!important}.mobile-quick-dock .dock-more .dock-icon{color:#bd919a!important}
  .mobile-quick-dock>a.active .dock-icon,.mobile-quick-dock>.mobile-more-menu-button.active .dock-icon{color:#ff5963!important;filter:drop-shadow(0 0 9px rgba(255,73,86,.26))}

  .mobile-more-menu-sheet.menu-v390{top:58px;bottom:0;max-height:none;padding:10px 14px calc(82px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:linear-gradient(180deg,var(--ui-surface-2) 0%,var(--ui-surface-2) 100%);overflow-y:auto}
  .menu-v390-head{align-items:flex-start!important;margin:2px 2px 14px!important}.menu-v390-head>div{display:flex;flex-direction:column;gap:2px}.menu-v390-head strong{font-size:24px!important;line-height:1.2}.menu-v390-head small{font-size:12px;color:var(--ui-muted)}
  .mobile-more-menu-grid.menu-v390-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .mobile-more-menu-grid.menu-v390-grid a{position:relative;min-height:100px!important;padding:13px 28px 13px 12px!important;border-radius:14px!important;display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;grid-template-rows:auto!important;align-items:center!important;justify-content:stretch!important;gap:9px!important;text-align:left!important;overflow:hidden}
  .mobile-more-menu-grid.menu-v390-grid a::before{content:"";position:absolute!important;inset:0!important;border-radius:inherit!important;background:linear-gradient(135deg,color-mix(in srgb,var(--menu-accent) 14%,transparent),transparent 62%)!important;pointer-events:none}
  .mobile-more-menu-grid.menu-v390-grid a::after{content:"";position:absolute;left:0;top:15px;bottom:15px;width:2px;border-radius:4px;background:var(--menu-accent);opacity:.9}
  .mobile-menu-icon{width:48px;height:48px;border-radius:12px;display:grid!important;place-items:center;background:color-mix(in srgb,var(--menu-accent) 14%,var(--ui-surface-2));border:1px solid color-mix(in srgb,var(--menu-accent) 48%,var(--ui-border));box-shadow:inset 0 1px rgba(255,255,255,.04),0 5px 15px rgba(0,0,0,.16)}
  .mobile-menu-icon svg{width:34px;height:34px;fill:none;stroke:var(--menu-accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--menu-accent) 24%,transparent))}
  .mobile-menu-copy{min-width:0;display:flex!important;flex-direction:column;gap:4px}.mobile-menu-copy b{font-size:15px!important;color:var(--ui-fg)!important;line-height:1.15!important}.mobile-menu-copy small{font-size:10.5px;color:var(--ui-muted);line-height:1.3}
  .menu-v390-grid a>em{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-style:normal;font-size:24px;color:color-mix(in srgb,var(--menu-accent) 72%,var(--ui-fg));opacity:.86}
  .menu-v390-grid .menu-siege{--menu-accent:#ef4f56!important}.menu-v390-grid .menu-bosses{--menu-accent:#f2a13d!important}.menu-v390-grid .menu-attendance{--menu-accent:#2fc0ad!important}
  .menu-v390-grid .menu-stats{--menu-accent:#579df0!important}.menu-v390-grid .menu-board{--menu-accent:#aa66df!important}.menu-v390-grid .menu-ledger{--menu-accent:#e0a83e!important}
  .menu-v390-grid .menu-clan{--menu-accent:#e9a23f!important}.menu-v390-grid .menu-relations{--menu-accent:#7198db!important}.menu-v390-grid .menu-profile{--menu-accent:#88a7cb!important}
  .menu-v390-grid .menu-settings{--menu-accent:#9ba7b3!important}.menu-v390-grid .menu-admin{--menu-accent:#a96ce4!important}.menu-v390-grid .menu-wide{grid-column:1/-1!important;min-height:86px!important;grid-template-columns:48px minmax(0,1fr)!important}

  .board-tabs-v390{display:flex!important;overflow-x:auto!important;gap:7px!important;padding-bottom:5px!important;scrollbar-width:none}.board-tabs-v390::-webkit-scrollbar{display:none}.board-tabs-v390 .board-tab{flex:0 0 auto!important;min-width:84px!important;text-decoration:none!important;display:flex;align-items:center;justify-content:center}
  .ledger-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}.clan-ledger-page-head{margin-bottom:10px!important}
  .info-compose-category-chip{display:inline-flex;align-items:center;width:max-content;padding:7px 11px;border-radius:999px;background:rgba(88,126,162,.14);border:1px solid rgba(114,153,188,.28);color:var(--ui-fg);font-size:12px;font-weight:800}
}

/* =========================================================
   v3.91 - relation board is independent from the normal board
   ========================================================= */
.relation-page-head{margin-bottom:10px}.relation-tabs-v391{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px!important}.relation-tabs-v391 .board-tab{text-decoration:none!important;display:flex;align-items:center;justify-content:center;min-width:0}.board-tabs-v391{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:820px){
  .relation-tabs-v391{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
  .relation-tabs-v391 .board-tab{padding:10px 5px!important;font-size:12px!important;white-space:nowrap!important}
  .board-tabs-v391{display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none;padding-bottom:5px!important}.board-tabs-v391::-webkit-scrollbar{display:none}.board-tabs-v391 .board-tab{flex:0 0 auto!important;min-width:92px!important}
  body[data-page-mode="relations"] .board-card-list[data-board-panel="info"]{display:block!important}
}
.gs-acquisition-list{display:grid;gap:7px}.gs-acquisition-row{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--ui-border);border-radius:10px;background:rgba(255,255,255,.025)}.gs-acquisition-row.is-live{border-color:rgba(47,192,173,.45)}.gs-acquisition-row.is-ended{opacity:.72}.gs-acquisition-row small{font-size:11px;opacity:.75}.gs-acquisition-row em{font-style:normal;font-size:12px;line-height:1.45;opacity:.88}

/* v3.92 - richer bottom-dock icons + four dedicated board feeds */
@media(max-width:820px){
  .mobile-quick-dock .dock-icon svg{width:29px;height:29px;stroke-width:1.75}
  .mobile-quick-dock>a,.mobile-quick-dock>button{--dock-accent:#a8b4c2}
  .mobile-quick-dock .dock-home{--dock-accent:#7fb0e7}
  .mobile-quick-dock .dock-clan{--dock-accent:#e5a24d}
  .mobile-quick-dock .dock-news{--dock-accent:#45bfa8}
  .mobile-quick-dock .dock-stats{--dock-accent:#579df0}
  .mobile-quick-dock .dock-board{--dock-accent:#aa66df}
  .mobile-quick-dock .dock-more{--dock-accent:#ef5b62}
  .mobile-quick-dock .dock-icon{color:color-mix(in srgb,var(--dock-accent) 72%,var(--ui-muted))}
  .mobile-quick-dock .active .dock-icon{color:var(--dock-accent);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--dock-accent) 22%,transparent))}
  .board-tabs-v392{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;overflow:visible!important}
  .board-tabs-v392 .board-tab{min-width:0!important;padding:10px 4px!important;font-size:12px!important;line-height:1.2!important;white-space:normal!important;word-break:keep-all!important}
}
.official-board-list{gap:10px}.official-board-card{display:block;text-decoration:none;color:inherit}
.official-feed-badge,.official-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}
.official-feed-badge.update{background:rgba(87,157,240,.14);color:#79b1f4;border:1px solid rgba(87,157,240,.26)}
.official-feed-badge.event{background:rgba(242,161,61,.14);color:#f2ad55;border:1px solid rgba(242,161,61,.28)}
.official-status-badge.live{background:rgba(47,192,173,.13);color:#5dd2c1;border:1px solid rgba(47,192,173,.25)}
.official-status-badge.ended{background:rgba(148,163,184,.12);color:var(--ui-muted);border:1px solid rgba(148,163,184,.2)}
.official-empty{display:grid!important;gap:6px}.official-empty small{display:block;opacity:.65;line-height:1.45;font-size:12px}

/* v3.100 - member list weapon row must occupy the full card width.
   ui-system.css is loaded after style.css, so this override prevents the
   legacy mobile 2-column summary grid from squeezing the weapon row into
   half a card. The weapon itself stays in the cell immediately to the
   right of the '1st 무기' label. */
.clan-member-summary.expanded .member-weapon-row-v397{
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:66px minmax(0,1fr) !important;
  align-items:center !important;
  gap:5px !important;
  width:100% !important;
  min-width:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.clan-member-summary.expanded .member-weapon-row-v397 > span,
.clan-member-summary.expanded .member-weapon-row-v397 > .weapon-short-v397{
  min-width:0 !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
}
.clan-member-summary.expanded .member-weapon-row-v397 > .weapon-short-v397{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}


/* =========================================================
   v3.105 - board / alliance-enemy tabs typography final override
   ui-system.css is loaded after style.css, so the previous v3.104
   rule in style.css was being overwritten by the legacy 12px rule.
   Keep this override at the end of the actually-later stylesheet.
   ========================================================= */
.board-tabs-v392 .board-tab,
body[data-page-mode="relations"] .relation-tabs-v391 .board-tab {
  font-size:28px !important;
  line-height:1.12 !important;
  font-weight:900 !important;
  min-height:56px !important;
  padding:13px 16px !important;
}
@media(max-width:820px){
  .board-tabs-v392,
  body[data-page-mode="relations"] .relation-tabs-v391 {
    display:flex !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    gap:8px !important;
    scrollbar-width:none !important;
    -webkit-overflow-scrolling:touch;
  }
  .board-tabs-v392::-webkit-scrollbar,
  body[data-page-mode="relations"] .relation-tabs-v391::-webkit-scrollbar{display:none}
  .board-tabs-v392 .board-tab,
  body[data-page-mode="relations"] .relation-tabs-v391 .board-tab {
    flex:0 0 auto !important;
    width:auto !important;
    min-width:max-content !important;
    white-space:nowrap !important;
    font-size:24px !important;
    line-height:1.1 !important;
    padding:13px 15px !important;
  }
}


/* v3.106 final tab sizing: board moderate, relations clearly larger */
.board-tabs-v392 .board-tab{font-size:18px!important;line-height:1.15!important;font-weight:850!important;min-height:46px!important;padding:10px 12px!important}
body[data-page-mode="relations"] .relation-tabs-v391 .board-tab{font-size:22px!important;line-height:1.15!important;font-weight:900!important;min-height:50px!important;padding:11px 14px!important}
@media(max-width:820px){
 .board-tabs-v392 .board-tab{font-size:16px!important;min-height:44px!important;padding:10px 11px!important}
 body[data-page-mode="relations"] .relation-tabs-v391 .board-tab{font-size:20px!important;min-height:48px!important;padding:11px 14px!important}
}


/* v3.107 - bottom-tab selections are real dock items, presets are not feature locks */
@media(max-width:820px){
  .mobile-quick-dock{overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;-webkit-overflow-scrolling:touch!important}
  .mobile-quick-dock::-webkit-scrollbar{display:none!important}
  .mobile-quick-dock>a,.mobile-quick-dock>.mobile-more-menu-button{flex:1 0 58px!important;min-width:58px!important}
  .mobile-quick-dock>.mobile-more-menu-button{position:sticky!important;right:0!important;z-index:3!important;background:linear-gradient(180deg,rgba(43,52,62,.99),rgba(29,37,46,.99))!important;box-shadow:-7px 0 12px rgba(0,0,0,.16)!important}
  .mobile-quick-dock .dock-bosses{--dock-accent:#e3a64b!important}
  .mobile-quick-dock .dock-siege{--dock-accent:#e3656d!important}
  .mobile-quick-dock .dock-attendance{--dock-accent:#36bda9!important}
  .mobile-quick-dock .dock-attendance>span:first-child{color:#82c8bb!important}
}

/* v3.111 server-master controlled fixed advertising */
.server-ad-slot-v3111{display:none;position:fixed;left:0;right:0;bottom:0;z-index:2890;min-height:58px;max-height:100px;padding:4px 12px;background:rgba(7,11,16,.98);border-top:1px solid var(--ui-border);box-shadow:0 -8px 22px rgba(0,0,0,.32);overflow:hidden}
.server-ad-slot-v3111.is-visible{display:flex;align-items:center;justify-content:center}
.server-ad-inner-v3111{width:min(100%,970px);min-height:50px;max-height:92px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}
.server-ad-inner-v3111>*{max-width:100%}
body.has-server-ad-v3111 .container{padding-bottom:112px!important}
@media(max-width:1024px){.server-ad-slot-v3111{min-height:56px;max-height:86px}.server-ad-inner-v3111{max-height:78px}body.has-server-ad-v3111 .container{padding-bottom:104px!important}}
@media(max-width:600px){.server-ad-slot-v3111{left:8px;right:8px;bottom:86px;min-height:52px;max-height:74px;border:1px solid var(--ui-border);border-radius:12px;padding:3px 8px;box-shadow:0 8px 28px rgba(0,0,0,.45)}.server-ad-inner-v3111{min-height:46px;max-height:66px}body.has-server-ad-v3111{padding-bottom:154px!important}body.has-server-ad-v3111 .container{padding-bottom:90px!important}}


/* v3.113 - Safe Browsing / credential-page identity hardening */
.hmo-auth-v3113 section{max-width:430px}
.hmo-auth-brand-v3113{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 14px}
.hmo-auth-brand-v3113>img{width:46px!important;height:46px!important;object-fit:contain;border-radius:11px}
.hmo-auth-brand-v3113>div{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}
.hmo-auth-brand-v3113 b{font-size:20px}
.hmo-auth-brand-v3113 span{font-size:12px;opacity:.72;margin-top:4px}
.hmo-auth-v3113 h1{margin:4px 0 13px;text-align:center}
.hmo-auth-clan-v3113{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 0 13px;padding:9px 11px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(255,255,255,.035)}
.hmo-auth-clan-v3113>img{width:34px!important;height:34px!important;object-fit:contain;margin:0!important}
.hmo-auth-clan-v3113>div{display:flex;flex-direction:column;align-items:flex-start}
.hmo-auth-clan-v3113 small{font-size:11px;opacity:.66}
.hmo-auth-clan-v3113 b{font-size:14px;margin-top:2px}
.hmo-auth-account-note-v3113{font-size:13px!important;text-align:center;margin:4px 0 8px!important}
.hmo-independent-notice-v3113{font-size:12px;line-height:1.5;padding:10px 11px;margin:0 0 13px;border-radius:10px;border:1px solid rgba(255,190,85,.25);background:rgba(255,190,85,.07);opacity:.9}
@media(max-width:820px){.hmo-auth-brand-v3113>img{width:42px!important;height:42px!important}.hmo-auth-v3113 h1{font-size:21px}}

/* v3.115 public SEO service copy */
.pc329-seo-copy{max-width:1180px;margin:8px auto 34px;padding:18px 22px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025)}
.pc329-seo-copy h2{margin:0 0 8px;font-size:18px}.pc329-seo-copy p{margin:6px 0;color:var(--ui-muted);font-size:14px;line-height:1.65}
@media(max-width:820px){.pc329-seo-copy{margin:12px 14px 24px;padding:14px 16px}.pc329-seo-copy h2{font-size:16px}.pc329-seo-copy p{font-size:13px}}

/* v3.118 public support/legal */
.public-footer-v3118{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;padding:22px 14px 90px;color:var(--ui-muted);font-size:13px}.public-footer-v3118 a{color:var(--ui-fg);text-decoration:none}.public-legal-v3118{max-width:760px;margin:20px auto;padding:24px;border:1px solid var(--border,var(--ui-border));border-radius:16px;background:var(--card,var(--ui-surface-2))}.public-legal-v3118 h1{margin-top:0}.public-legal-v3118 h2{margin-top:24px;font-size:18px}.public-legal-v3118 a{color:#d7b56d}.contact-form-v3118{display:grid;gap:14px;margin-top:20px}.contact-form-v3118 label{display:grid;gap:6px;font-weight:700}.contact-form-v3118 input,.contact-form-v3118 select,.contact-form-v3118 textarea{width:100%;padding:11px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2);color:var(--ui-fg)}.contact-form-v3118 textarea{min-height:180px;resize:vertical}.notice-ok,.notice-error{padding:11px;border-radius:9px;margin:12px 0}.notice-ok{border:1px solid #315a46}.notice-error{border:1px solid #74404a}.contact-direct-v3118,.legal-date-v3118{margin-top:20px;color:var(--ui-muted)}@media(max-width:600px){.public-legal-v3118{margin:10px;padding:17px}.public-footer-v3118{gap:10px 14px}}


/* v3.121 periodic profile refresh reminder */
.profile-update-cycle-v3121{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px;align-items:center;margin:16px 0;padding:14px;border:1px solid var(--theme-border,var(--line,var(--ui-border)));border-radius:12px;background:var(--theme-surface-2,rgba(255,255,255,.035))}.profile-update-cycle-v3121 label{display:flex;flex-direction:column;gap:4px}.profile-update-cycle-v3121 label small{font-weight:500}.profile-update-cycle-v3121 select{width:100%;min-height:42px}.profile-update-reminder-v3121{max-width:1180px;margin:12px auto 0;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #b98b3c;border-radius:12px;background:rgba(185,139,60,.12);color:var(--theme-fg,var(--text,var(--ui-fg)))}.profile-update-reminder-v3121>div{display:flex;flex-direction:column;gap:2px}.profile-update-reminder-v3121 span{font-size:12px;color:var(--theme-sub,var(--muted,var(--ui-muted)))}.profile-update-reminder-v3121 a{flex:0 0 auto;padding:8px 11px;border-radius:9px;background:#b98b3c;color:var(--ui-fg)!important;font-weight:850;text-decoration:none}@media(max-width:820px){.profile-update-cycle-v3121{grid-template-columns:1fr}.profile-update-reminder-v3121{margin:10px 12px 0}.profile-update-reminder-v3121 a{font-size:12px}}

/* =========================================================
   v3.123 - board tabs + boss registration time-slot layout
   ========================================================= */
/* Board navigation: one deliberate segmented surface instead of loose buttons. */
.board-tabs-v392{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:6px!important;
  padding:6px!important;
  margin:10px 0 14px!important;
  border:1px solid color-mix(in srgb,var(--ui-border) 82%,transparent)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--panel,var(--ui-surface-2)) 90%,transparent)!important;
  box-shadow:0 7px 24px rgba(0,0,0,.10)!important;
  overflow:visible!important;
}
.board-tabs-v392 .board-tab{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  min-height:48px!important;
  padding:10px 7px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  background:transparent!important;
  color:var(--muted,var(--ui-muted))!important;
  font-size:14px!important;
  line-height:1.15!important;
  font-weight:850!important;
  letter-spacing:-.02em!important;
  white-space:normal!important;
  word-break:keep-all!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease!important;
}
.board-tabs-v392 .board-tab:hover{
  background:color-mix(in srgb,var(--panel2,var(--ui-surface-2)) 78%,transparent)!important;
  border-color:color-mix(in srgb,var(--ui-border) 72%,transparent)!important;
  color:var(--text,var(--ui-fg))!important;
}
.board-tabs-v392 .board-tab.active{
  border-color:rgba(192,72,83,.62)!important;
  background:linear-gradient(180deg,rgba(151,42,52,.94),rgba(102,28,36,.96))!important;
  color:var(--ui-fg)!important;
  box-shadow:0 5px 14px rgba(91,20,29,.22),inset 0 1px 0 rgba(255,255,255,.10)!important;
}
.board-tabs-v392 .board-tab.active::after{
  content:"";
  position:absolute;
  left:24%;right:24%;bottom:4px;height:2px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
}
@media(max-width:700px){
  .board-tabs-v392{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:5px!important;
    padding:5px!important;
    overflow:visible!important;
  }
  .board-tabs-v392 .board-tab{
    min-width:0!important;
    width:auto!important;
    min-height:43px!important;
    padding:8px 5px!important;
    font-size:13px!important;
    white-space:normal!important;
  }
  .board-tabs-v392 .board-tab:nth-child(-n+3){grid-column:span 2!important}
  .board-tabs-v392 .board-tab:nth-child(n+4){grid-column:span 3!important}
}

/* Boss registration:a time is the row; every boss at that time stays inside it. */
.boss-click-row{
  grid-template-columns:62px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
}
.boss-click-row>div:last-child{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr))!important;
  gap:6px!important;
  min-width:0!important;
}
.boss-select-label{
  width:100%!important;
  min-width:0!important;
  justify-content:center!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
.boss-time-cell.boss-time-participant-open{
  min-height:40px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
}
@media(max-width:600px){
  .boss-click-row{grid-template-columns:54px minmax(0,1fr)!important;gap:6px!important}
  .boss-click-row>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  .boss-select-label{padding:7px 5px!important;font-size:13px!important}
}


/* v3.126 - clan ledger tabs: exact board segmented style, 3 equal columns */
.ledger-tabs.board-tabs-v392{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  width:100%!important;
  padding:6px!important;
  margin:10px 0 14px!important;
  overflow:visible!important;
}
.ledger-tabs.board-tabs-v392 .board-tab{
  min-width:0!important;
  width:100%!important;
  min-height:48px!important;
  padding:10px 7px!important;
  font-size:14px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
@media(max-width:700px){
  .ledger-tabs.board-tabs-v392{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
    padding:5px!important;
    overflow:visible!important;
  }
  .ledger-tabs.board-tabs-v392 .board-tab,
  .ledger-tabs.board-tabs-v392 .board-tab:nth-child(n){
    grid-column:auto!important;
    flex:none!important;
    min-width:0!important;
    width:100%!important;
    min-height:43px!important;
    padding:8px 4px!important;
    font-size:13px!important;
    white-space:nowrap!important;
  }
}


/* =========================================================
   v3.128 - relations tabs use the same segmented UI as board/ledger
   ========================================================= */
body[data-page-mode="relations"] .relation-tabs-v391.board-tabs-v392{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  width:100%!important;
  padding:6px!important;
  margin:10px 0 14px!important;
  overflow:visible!important;
  border:1px solid color-mix(in srgb,var(--ui-border) 82%,transparent)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--panel,var(--ui-surface-2)) 90%,transparent)!important;
  box-shadow:0 7px 24px rgba(0,0,0,.10)!important;
}
body[data-page-mode="relations"] .relation-tabs-v391.board-tabs-v392 .board-tab,
body[data-page-mode="relations"] .relation-tabs-v391.board-tabs-v392 .board-tab:nth-child(n){
  grid-column:auto!important;
  flex:none!important;
  width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  padding:10px 7px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  background:transparent!important;
  color:var(--muted,var(--ui-muted))!important;
  font-size:14px!important;
  line-height:1.15!important;
  font-weight:850!important;
  letter-spacing:-.02em!important;
  white-space:nowrap!important;
}
body[data-page-mode="relations"] .relation-tabs-v391.board-tabs-v392 .board-tab.active{
  border-color:rgba(192,72,83,.62)!important;
  background:linear-gradient(180deg,rgba(151,42,52,.94),rgba(102,28,36,.96))!important;
  color:var(--ui-fg)!important;
  box-shadow:0 5px 14px rgba(91,20,29,.22),inset 0 1px 0 rgba(255,255,255,.10)!important;
}
@media(max-width:700px){
  body[data-page-mode="relations"] .relation-tabs-v391.board-tabs-v392{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
    padding:5px!important;
    overflow:visible!important;
  }
  body[data-page-mode="relations"] .relation-tabs-v391.board-tabs-v392 .board-tab,
  body[data-page-mode="relations"] .relation-tabs-v391.board-tabs-v392 .board-tab:nth-child(n){
    grid-column:auto!important;
    flex:none!important;
    width:100%!important;
    min-width:0!important;
    min-height:43px!important;
    padding:8px 4px!important;
    font-size:13px!important;
    white-space:nowrap!important;
  }
}

/* v6.3 board official-event visibility setting */
.board-setting-check{display:flex;align-items:center;gap:8px;min-height:40px;font-weight:600}
.board-setting-check input[type="checkbox"]{width:18px;height:18px;margin:0}
