:root {
    --admin-ink: #132044;
    --admin-muted: #69738f;
    --admin-line: #dde3f0;
    --admin-surface: #ffffff;
    --admin-canvas: #f4f6fb;
    --admin-blue: #3754db;
    --admin-blue-dark: #263cae;
    --admin-cyan: #1bbfd8;
    --admin-danger: #c34255;
    --admin-shadow: 0 24px 80px rgba(18, 30, 69, 0.24);
}

* {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

*::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

.admin-overlay,
.admin-shell,
.game-time-lock {
    font-family: "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;
}

.admin-overlay {
    position: fixed;
    inset: 0;
    z-index: 5100;
    display: grid;
    place-items: center;
    padding: 24px;
    overflow: auto;
    background:
        radial-gradient(circle at 15% 15%, rgba(47, 197, 218, 0.22), transparent 32%),
        radial-gradient(circle at 85% 80%, rgba(86, 86, 222, 0.24), transparent 34%),
        rgba(9, 16, 42, 0.82);
    backdrop-filter: blur(16px);
}

.admin-overlay.hidden,
.admin-shell.hidden,
.game-time-lock.hidden,
.game-time-display.hidden {
    display: none !important;
}

.admin-family-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 18px 24px 0;
    padding: 12px 14px;
    border: 1px solid #f3c768;
    border-radius: 8px;
    color: #714d08;
    background: #fff7da;
    font-size: 14px;
    font-weight: 800;
}

.admin-family-notice.hidden {
    display: none;
}

.admin-family-notice button {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 50%;
    color: #714d08;
    background: transparent;
    cursor: pointer;
}

.admin-auth-card,
.admin-choice-card,
.admin-dialog-card {
    position: relative;
    width: min(100%, 440px);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 28px;
    padding: 34px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: var(--admin-shadow);
    color: var(--admin-ink);
}

.admin-choice-card {
    width: min(100%, 670px);
    text-align: center;
}

.admin-dialog-card {
    width: min(100%, 720px);
    max-height: min(780px, calc(100vh - 48px));
    overflow: auto;
    padding: 32px;
}

.admin-dialog-card.interaction-stats-dialog {
    width: min(80vw, 1280px);
}

.admin-icon-button {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    color: #5f6983;
    background: #eef1f7;
    font-size: 16px;
    cursor: pointer;
}

.admin-icon-button:hover {
    color: var(--admin-ink);
    background: #e3e7f2;
}

.admin-auth-brand {
    display: flex;
    gap: 15px;
    align-items: center;
    margin: 4px 44px 20px 0;
}

.admin-auth-mark {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    flex: 0 0 auto;
    border-radius: 18px;
    background: linear-gradient(145deg, #dff8fc, #e7eaff);
    font-size: 29px;
}

.admin-auth-brand p,
.game-time-lock-card > p,
.admin-choice-eyebrow {
    margin: 0 0 4px;
    color: var(--admin-blue);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.admin-auth-brand h2,
.admin-choice-card h2,
.admin-dialog-card h2 {
    margin: 0;
    color: var(--admin-ink);
    font-size: clamp(22px, 3.2vw, 28px);
    letter-spacing: -0.01em;
}

.admin-auth-copy,
.admin-choice-card > p {
    margin: 0 0 24px;
    color: var(--admin-muted);
    font-size: 14px;
    line-height: 1.7;
}

.admin-form {
    display: grid;
    gap: 16px;
}

.admin-form label,
.admin-form-grid label,
.admin-search-row label,
.admin-time-control label {
    display: grid;
    gap: 7px;
    color: #45506d;
    font-size: 13px;
    font-weight: 700;
}

.admin-form input,
.admin-form select,
.admin-form-grid input,
.admin-form-grid select,
.admin-search-row input,
.admin-search-row select,
.admin-time-control input,
.admin-config-field input,
.admin-config-field select {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: 1px solid #d5dbea;
    border-radius: 12px;
    padding: 12px 13px;
    outline: none;
    color: var(--admin-ink);
    color-scheme: light;
    -webkit-text-fill-color: var(--admin-ink);
    caret-color: var(--admin-ink);
    background: #fff;
    font: inherit;
}

.admin-form input:focus,
.admin-form select:focus,
.admin-form-grid input:focus,
.admin-form-grid select:focus,
.admin-search-row input:focus,
.admin-search-row select:focus,
.admin-time-control input:focus,
.admin-config-field input:focus,
.admin-config-field select:focus {
    border-color: var(--admin-blue);
    box-shadow: 0 0 0 3px rgba(55, 84, 219, 0.12);
}

.admin-primary-button,
.admin-secondary-button,
.admin-danger-button,
.admin-close-button {
    border: 0;
    border-radius: 12px;
    padding: 11px 16px;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.admin-primary-button {
    color: #fff;
    background: linear-gradient(135deg, var(--admin-blue), var(--admin-blue-dark));
    box-shadow: 0 8px 20px rgba(55, 84, 219, 0.24);
}

.admin-primary-button:hover {
    transform: translateY(-1px);
}

.admin-secondary-button {
    color: #34415e;
    background: #e9edf6;
}

.admin-danger-button {
    color: #a42b3c;
    background: #ffe7eb;
}

/* 家庭任务操作列：三个按钮等宽、水平排列 */
.admin-task-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    align-items: center;
}
.admin-task-actions .admin-secondary-button,
.admin-task-actions .admin-danger-button {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 6px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 8px;
    line-height: 1.4;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-form-message {
    min-height: 20px;
    margin: 14px 0 0;
    color: var(--admin-danger);
    font-size: 13px;
    line-height: 1.5;
}

.admin-choice-eyebrow {
    display: inline-block;
    margin: 0 0 8px;
}

.admin-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.admin-choice-button {
    display: grid;
    gap: 8px;
    min-height: 170px;
    align-content: center;
    border: 1px solid var(--admin-line);
    border-radius: 20px;
    padding: 24px;
    color: var(--admin-ink);
    background: #f8f9fc;
    cursor: pointer;
}

.admin-choice-button > span {
    font-size: 34px;
}

.admin-choice-button strong {
    font-size: 19px;
}

.admin-choice-button small {
    color: var(--admin-muted);
    font-size: 12px;
}

.admin-choice-button:hover {
    border-color: #bac4e2;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(18, 30, 69, 0.12);
}

.admin-choice-primary {
    border-color: transparent;
    color: #fff;
    background: linear-gradient(145deg, #3857e6, #2439a4);
}

.admin-choice-primary small {
    color: rgba(255, 255, 255, 0.72);
}

.admin-shell {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    color: var(--admin-ink);
    background: var(--admin-canvas);
}

.admin-shell button {
    margin-top: 0;
}

.admin-sidebar {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 22px 16px 18px;
    color: #eef3ff;
    background:
        radial-gradient(circle at 0 0, rgba(49, 204, 221, 0.22), transparent 32%),
        linear-gradient(180deg, #182659, #111a3c 68%, #0e1734);
}

.admin-shell-brand {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 6px 8px 22px;
}

.admin-shell-brand img {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.admin-shell-brand div {
    display: grid;
    gap: 3px;
}

.admin-shell-brand strong {
    font-size: 16px;
}

.admin-shell-brand span {
    color: #8dddea;
    font-size: 12px;
}

.admin-nav {
    display: grid;
    gap: 7px;
}

.admin-nav button,
.admin-sidebar-foot button {
    display: flex;
    gap: 11px;
    align-items: center;
    width: 100%;
    border: 0;
    border-radius: 12px;
    padding: 12px 13px;
    color: #cbd4f1;
    background: transparent;
    text-align: left;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.admin-nav button span {
    width: 24px;
    text-align: center;
    font-size: 17px;
}

.admin-nav button:hover,
.admin-sidebar-foot button:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.admin-nav button.active {
    color: #fff;
    background: linear-gradient(135deg, rgba(61, 91, 226, 0.96), rgba(45, 182, 205, 0.72));
    box-shadow: 0 9px 24px rgba(14, 25, 65, 0.34);
}

.admin-sidebar-foot {
    display: grid;
    gap: 4px;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.admin-sidebar-foot button {
    font-size: 12px;
}

.admin-workspace {
    min-width: 0;
    height: 100vh;
    overflow: auto;
}

.admin-workspace-head {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    gap: 16px;
    align-items: center;
    min-height: 82px;
    padding: 0 clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--admin-line);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(14px);
}

.admin-workspace-head > div {
    min-width: 0;
}

.admin-workspace-head p {
    overflow: hidden;
    margin: 0 0 2px;
    color: var(--admin-muted);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-workspace-head h1 {
    margin: 0;
    font-size: clamp(20px, 3vw, 27px);
}

.admin-close-button {
    margin-left: auto;
    color: #33405e;
    background: #edf0f7;
}

.admin-nav-toggle {
    display: none;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 11px;
    color: var(--admin-ink);
    background: #edf0f7;
    font-size: 20px;
}

.admin-content {
    width: min(1680px, calc(100% - clamp(28px, 4vw, 64px)));
    margin: 0 auto;
    padding: 34px 0 60px;
}

.admin-compact-toolbar {
    display: flex;
    align-items: end;
    justify-content: flex-end;
    gap: 12px;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 6px 20px rgba(18, 30, 69, 0.04);
}

.admin-compact-toolbar > label {
    display: grid;
    flex: 1 1 420px;
    gap: 6px;
    color: #56617c;
    font-size: 12px;
    font-weight: 800;
}

.admin-compact-toolbar select {
    width: 100%;
    min-height: 40px;
    box-sizing: border-box;
    border: 1px solid #d5dbea;
    border-radius: 11px;
    padding: 8px 36px 8px 12px;
    color: var(--admin-ink);
    background: #fff;
    font: inherit;
}

.admin-dialog-context {
    margin: 0 0 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e6eaf4;
    color: var(--admin-muted);
    font-size: 13px;
}

.admin-overlay button,
.game-time-lock button {
    margin-top: 0;
}

.admin-config-search {
    width: min(520px, 60vw);
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

.admin-config-search input {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid var(--admin-line);
    border-radius: 13px;
    padding: 0 14px;
    color: var(--admin-ink);
    background: #fff;
    font: inherit;
    outline: none;
}

.admin-config-search input:focus {
    border-color: var(--admin-cyan);
    box-shadow: 0 0 0 3px rgba(30, 188, 225, 0.15);
}

.admin-settings-host .settings-config-item.admin-config-search-hit {
    border-color: #41d6f4;
    box-shadow: 0 0 0 3px rgba(65, 214, 244, 0.24), 0 18px 38px rgba(0, 0, 0, 0.2);
    animation: admin-config-search-pulse 0.55s ease-out;
}

@keyframes admin-config-search-pulse {
    from { transform: translateY(-3px); }
    to { transform: translateY(0); }
}

.admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 16px;
}

.admin-card,
.admin-surface {
    border: 1px solid var(--admin-line);
    border-radius: 18px;
    background: var(--admin-surface);
    box-shadow: 0 8px 24px rgba(18, 30, 69, 0.055);
}

.admin-card {
    padding: 20px;
}

.admin-user-card {
    display: grid;
    gap: 12px;
}

.admin-user-head {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    justify-content: space-between;
}

.admin-user-head h3 {
    margin: 0 0 4px;
    font-size: 18px;
}

.admin-user-head p,
.admin-user-card > p {
    margin: 0;
    color: var(--admin-muted);
    font-size: 13px;
}

.admin-tag {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    border-radius: 999px;
    padding: 2px 9px;
    color: #2840b8;
    background: #e8ecff;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-tag.super {
    color: #8a5410;
    background: #fff1cf;
}

.admin-tag.unlimited {
    color: #08788b;
    background: #dff8fb;
}

.admin-tag.exhausted {
    color: #a52e41;
    background: #ffe5e9;
}

.admin-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

.admin-card-actions button {
    flex: 1 1 auto;
}

.admin-search-row {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) minmax(140px, 220px);
    gap: 12px;
    margin: 0 0 18px;
}

.admin-player-search {
    display: flex;
    align-items: end;
    gap: 12px;
    margin: 0 0 18px;
}

.admin-player-search-field {
    display: grid;
    flex: 1 1 auto;
    gap: 7px;
    color: #45506d;
    font-size: 13px;
    font-weight: 700;
}

.admin-player-search-field input {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid var(--admin-line);
    border-radius: 13px;
    padding: 0 14px;
    color: var(--admin-ink);
    background: #fff;
    font: inherit;
    outline: none;
}

.admin-player-search-field input:focus {
    border-color: var(--admin-blue);
    box-shadow: 0 0 0 3px rgba(55, 84, 219, 0.12);
}

.admin-player-list {
    overflow: hidden;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(18, 30, 69, 0.045);
}

.admin-player-row {
    display: grid;
    grid-template-columns: auto minmax(170px, 1.05fr) minmax(220px, 1.3fr) minmax(145px, .85fr) auto auto;
    align-items: center;
    gap: 18px;
    min-height: 76px;
    padding: 13px 16px;
    border-bottom: 1px solid #e7ebf3;
}

.admin-player-bulk-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
}

.admin-player-select-all,
.admin-player-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #53607b;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-player-check,
.admin-player-check-placeholder {
    width: 18px;
}

.admin-player-select-all input,
.admin-player-check input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: var(--admin-blue);
}

.admin-delete-warning {
    margin-bottom: 18px;
    padding: 16px;
    border: 1px solid #f1bdc6;
    border-radius: 14px;
    color: #7f2b3a;
    background: #fff3f5;
}

.admin-delete-warning strong {
    display: block;
    margin-bottom: 10px;
    font-size: 16px;
}

.admin-delete-warning p {
    margin: 6px 0 0;
    line-height: 1.55;
}

.admin-player-row:last-child {
    border-bottom: 0;
}

.admin-player-row:hover {
    background: #f8faff;
}

.admin-player-identity {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.admin-player-identity h3,
.admin-player-identity p {
    overflow: hidden;
    margin: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-player-identity h3 {
    font-size: 16px;
}

.admin-player-identity p {
    margin-top: 4px;
    color: var(--admin-muted);
    font-size: 12px;
}

.admin-player-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    min-width: 0;
}

.admin-player-details span,
.admin-player-family,
.admin-player-time {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.admin-player-row small {
    color: var(--admin-muted);
    font-size: 11px;
}

.admin-player-details strong,
.admin-player-family strong {
    overflow: hidden;
    color: #36415f;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-player-time {
    justify-items: start;
}

.admin-player-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.admin-player-actions button {
    min-width: 88px;
}

@media (max-width: 1120px) {
    .admin-player-row {
        grid-template-columns: auto minmax(180px, 1fr) minmax(220px, 1.2fr) auto;
    }

    .admin-player-family {
        grid-column: 3;
    }

    .admin-player-time {
        grid-column: 4;
        grid-row: 1;
    }

    .admin-player-actions {
        grid-column: 4;
        grid-row: 2;
    }
}

@media (max-width: 720px) {
    .admin-player-row {
        grid-template-columns: auto 1fr auto;
        gap: 12px;
    }

    .admin-player-details,
    .admin-player-family {
        grid-column: 2 / -1;
    }

    .admin-player-time {
        grid-column: 3;
        grid-row: 1;
        justify-items: end;
    }

    .admin-player-actions {
        grid-column: 2 / -1;
        grid-row: auto;
    }

    .admin-player-actions button {
        flex: 1 1 0;
    }

    .admin-player-search {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-player-bulk-actions {
        justify-content: space-between;
    }
}

.admin-member-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 18px;
    padding: 16px 18px;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 6px 20px rgba(18, 30, 69, 0.04);
}

.admin-member-toolbar-main,
.admin-member-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-member-toolbar-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-left: auto;
}

.admin-family-stats {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid #dfe5f2;
    border-radius: 11px;
    color: #5c6882;
    background: #f5f7fc;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-family-stats span + span {
    padding-left: 8px;
    border-left: 1px solid #d8deeb;
}

.admin-family-stats strong {
    color: var(--admin-ink);
    font-size: 16px;
}

.admin-member-toolbar-main {
    flex: 1 1 auto;
    min-width: 0;
}

/* 家长视图无搜索框时，空的搜索区不要用 flex:1 撑开、把按钮顶到最右造成大片空白 */
.admin-member-toolbar-main:empty {
    display: none;
}

.admin-member-toolbar label {
    display: grid;
    flex: 0 1 420px;
    gap: 6px;
    min-width: 220px;
    color: #56617c;
    font-size: 12px;
    font-weight: 800;
}

.admin-member-toolbar select,
.admin-member-toolbar input {
    width: 100%;
    min-height: 40px;
    box-sizing: border-box;
    border: 1px solid #d5dbea;
    border-radius: 11px;
    padding: 8px 36px 8px 12px;
    color: var(--admin-ink);
    color-scheme: light;
    -webkit-text-fill-color: var(--admin-ink);
    caret-color: var(--admin-ink);
    background: #fff;
    font: inherit;
    outline: none;
}

.admin-member-toolbar select:focus,
.admin-member-toolbar input:focus {
    border-color: var(--admin-blue);
    box-shadow: 0 0 0 3px rgba(55, 84, 219, 0.12);
}

.admin-parent-search {
    flex: 1 1 420px !important;
    max-width: 480px;
}

.admin-member-toolbar-actions button {
    white-space: nowrap;
}

.admin-parent-groups {
    display: grid;
    gap: 18px;
}

.admin-parent-group {
    padding: 16px;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.72);
}

.admin-parent-group > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.admin-parent-group > header h2 {
    margin: 0;
    color: var(--admin-ink);
    font-size: 17px;
}

.admin-parent-group > header span {
    color: #66718a;
    font-size: 12px;
    font-weight: 800;
}

/* 家长列表：操作按钮缩小、缩短并靠右（邀请/新建家长/查看成员） */
.admin-member-toolbar-actions .admin-secondary-button,
.admin-member-toolbar-actions .admin-primary-button,
.admin-parent-group > header .admin-secondary-button {
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 700;
    border-radius: 9px;
    white-space: nowrap;
    width: auto;
    flex: 0 0 auto;
}

.admin-member-count {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    min-height: 40px;
    padding: 0 4px;
    color: var(--admin-ink);
    font-size: 22px;
    font-weight: 900;
    line-height: 40px;
    white-space: nowrap;
}

.admin-member-count small {
    color: var(--admin-muted);
    font-size: 12px;
    font-weight: 700;
}

.admin-member-form-actions {
    display: flex;
    justify-content: flex-end;
}

.admin-member-list {
    display: grid;
    gap: 10px;
}

.admin-flow-notice {
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid #f0cf77;
    border-radius: 12px;
    color: #74540d;
    background: #fff8df;
    font-size: 13px;
    font-weight: 700;
}

.admin-member-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.9fr) minmax(180px, 1.1fr) auto auto minmax(92px, auto);
    align-items: center;
    gap: 22px;
    min-height: 72px;
    padding: 14px 16px;
    border: 1px solid var(--admin-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(18, 30, 69, 0.035);
}

.admin-member-identity {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.admin-member-avatar {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    color: #fff;
    background: linear-gradient(145deg, #405fe2, #27aeca);
    font-size: 17px;
    font-weight: 900;
}

.admin-member-identity h3,
.admin-member-identity p {
    overflow: hidden;
    margin: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-member-affiliation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    min-width: 0;
}

.admin-member-affiliation span {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.admin-member-affiliation small {
    color: var(--admin-muted);
    font-size: 11px;
}

.admin-member-affiliation strong {
    overflow: hidden;
    color: #36415f;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-member-affiliation .admin-member-last-login {
    grid-column: 1 / -1;
}

.admin-member-identity h3 {
    font-size: 16px;
}

.admin-member-identity p {
    margin-top: 4px;
    color: var(--admin-muted);
    font-size: 12px;
}

.admin-member-time {
    display: grid;
    justify-items: end;
    gap: 5px;
}

.admin-member-points,
.admin-member-point-balance {
    display: grid;
    gap: 5px;
}

.admin-member-points {
    justify-items: end;
}

.admin-member-points small,
.admin-member-point-balance small {
    color: var(--admin-muted);
    font-size: 11px;
}

.admin-member-points strong,
.admin-member-point-balance strong {
    color: #8a6500;
    font-size: 18px;
}

.admin-member-point-balance {
    margin: 12px 0;
    padding: 10px 12px;
    border: 1px solid #f0cf77;
    border-radius: 10px;
    background: #fff9e8;
}

.admin-member-time small {
    color: var(--admin-muted);
    font-size: 11px;
}

.admin-point-coin {
    display: inline-grid;
    width: 20px;
    height: 20px;
    margin-right: 5px;
    place-items: center;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%, #8ecbff, #2e7cf6 52%, #1b4fc0 100%);
    box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.35);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    vertical-align: -3px;
}

.admin-member-remove {
    border: 0;
    border-radius: 10px;
    padding: 9px 12px;
    color: #af3446;
    background: #fff0f2;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.admin-member-remove:hover {
    background: #ffe2e7;
}

.admin-member-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.interaction-range {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.interaction-range button {
    min-width: 64px;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    padding: 9px 12px;
    color: #46516d;
    background: #fff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.interaction-range button.active {
    border-color: var(--admin-blue);
    color: #fff;
    background: var(--admin-blue);
}

.interaction-category-tabs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 7px;
    margin: 14px 0;
}

.interaction-category-tabs button {
    min-height: 38px;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    color: #56617c;
    background: #fff;
    font-weight: 800;
}

.interaction-category-tabs button.active {
    border-color: var(--admin-blue);
    color: #fff;
    background: var(--admin-blue);
}

.interaction-preferences-block { margin-top: 12px; }
.interaction-preferences-title { margin: 0 0 6px; color: var(--admin-muted); font-size: 12px; line-height: 1.5; }
.interaction-preferences { display: grid; gap: 7px; }

.interaction-preferences span {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 11px;
    border-radius: 8px;
    background: #f4f6fb;
}

.admin-game-config-toolbar label { display: flex; align-items: center; gap: 10px; }
.admin-game-config-toolbar select { min-width: 260px; }
.admin-game-config-tabs { display: flex; gap: 8px; margin: 14px 0; }
.admin-game-config-tabs button { min-width: 112px; padding: 10px 16px; border: 1px solid #d6def0; background: #fff; color: #53617f; border-radius: 7px; }
.admin-game-config-tabs button.active { border-color: #3562ed; background: #3562ed; color: #fff; }
.admin-game-config-tabs button:disabled { opacity: .55; }
.admin-game-config-form { max-width: 760px; }
.admin-game-config-form h2 { margin: 0 0 18px; font-size: 20px; }

.interaction-empty-note { color: var(--admin-muted); }

.interaction-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.interaction-stat-grid > div {
    display: grid;
    gap: 6px;
    min-height: 72px;
    padding: 12px;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    background: #f7f9fe;
}

.interaction-stat-grid small,
.interaction-daily-list span {
    color: var(--admin-muted);
    font-size: 12px;
}

.interaction-stat-grid strong {
    color: var(--admin-ink);
    font-size: 24px;
}

.interaction-daily-list {
    display: grid;
    gap: 0;
    margin-top: 16px;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    overflow: hidden;
}

.interaction-daily-list > div {
    display: grid;
    grid-template-columns: minmax(96px, 1fr) repeat(4, minmax(64px, auto));
    gap: 12px;
    padding: 11px 12px;
    border-bottom: 1px solid var(--admin-line);
}

.interaction-daily-list > div:last-child {
    border-bottom: 0;
}

.interaction-daily-list time {
    color: #35405e;
    font-size: 13px;
    font-weight: 800;
}

.interaction-daily-note {
    margin-top: 10px;
    color: var(--admin-muted);
    font-size: 12px;
    line-height: 1.5;
}

.admin-empty {
    grid-column: 1 / -1;
    border: 1px dashed #cbd3e6;
    border-radius: 16px;
    padding: 38px 20px;
    color: var(--admin-muted);
    background: rgba(255, 255, 255, 0.62);
    text-align: center;
    font-size: 14px;
}

.admin-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.admin-form-grid .wide {
    grid-column: 1 / -1;
}

.admin-form-grid input[readonly],
.admin-form-grid select[disabled],
.admin-form-grid input:disabled {
    border-color: transparent;
    background: #f2f4fa;
    color: #5f6983;
}

.admin-math-section-title {
    grid-column: 1 / -1;
    margin: 18px 0 8px;
    padding-top: 14px;
    border-top: 1px solid var(--admin-line);
    font-size: 15px;
    color: var(--admin-ink);
}

.admin-math-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    color: var(--admin-ink);
}

.admin-math-toggle input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--admin-blue);
}

.admin-math-bands-wrap {
    grid-column: 1 / -1;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.admin-math-bands-table {
    width: 100%;
    min-width: 1340px;
    border-collapse: collapse;
    background: var(--admin-surface);
    font-size: 13px;
}

.admin-math-bands-table th,
.admin-math-bands-table td {
    padding: 8px 6px;
    border-bottom: 1px solid #edf1f9;
    text-align: center;
}

.admin-math-bands-table th {
    background: #f4f7fd;
    color: var(--admin-muted);
    font-weight: 800;
    white-space: nowrap;
}

.admin-math-bands-table input {
    width: 54px;
    padding: 6px 3px;
    text-align: center;
    border: 1px solid var(--admin-line);
    border-radius: 6px;
    font-size: 13px;
}

/* 让超宽的档位表格容器重新显示水平滚动条（覆盖全局隐藏滚动条的规则） */
.admin-math-bands-wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: #aeb9d2 #edf1fa;
}
.admin-math-bands-wrap::-webkit-scrollbar {
    width: 10px !important;
    height: 10px !important;
    display: block !important;
}
.admin-math-bands-wrap::-webkit-scrollbar-thumb {
    background: #aeb9d2;
    border-radius: 8px;
}
.admin-math-bands-wrap::-webkit-scrollbar-thumb:hover {
    background: #8d99ba;
}
.admin-math-bands-wrap::-webkit-scrollbar-track {
    background: #edf1fa;
    border-radius: 8px;
}

.admin-math-tip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-left: 4px;
    border-radius: 50%;
    border: 1px solid #b9c8e6;
    background: #eef3fc;
    color: #6d7fa8;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    cursor: help;
    vertical-align: middle;
}

.admin-math-tip:hover {
    border-color: #3f8cff;
    background: #3f8cff;
    color: #fff;
}

.admin-dialog-warning {
    color: var(--admin-danger);
    font-weight: 700;
}

.admin-risk-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.admin-risk-table th,
.admin-risk-table td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--admin-line);
    text-align: left;
}

.admin-risk-table th {
    background: #f4f7fd;
    color: var(--admin-muted);
    font-weight: 800;
    white-space: nowrap;
}

.admin-risk-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(10, 18, 38, 0.55);
}

.admin-risk-modal-card {
    width: min(360px, calc(100% - 32px));
    padding: 24px 20px 18px;
    background: #fff;
    border-radius: 14px;
    box-shadow: var(--admin-shadow);
    text-align: center;
}

.admin-risk-modal-text {
    margin: 0 0 16px;
    color: var(--admin-danger);
    font-size: 15px;
    font-weight: 800;
}

.admin-family-form {
    margin: 0 0 24px;
    padding: 20px;
}

.admin-time-control {
    display: grid;
    grid-template-columns: minmax(100px, 1fr) auto;
    gap: 9px;
    align-items: end;
}

.admin-redeem-tabs {
    display: flex;
    gap: 10px;
    margin: 0 0 18px;
}

.admin-redeem-tabs button {
    min-width: 110px;
    min-height: 42px;
    border: 1px solid #d5dbea;
    border-radius: 12px;
    background: #fff;
    color: #56617c;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.admin-redeem-tabs button.active {
    border-color: #2b4bb3;
    background: #2b4bb3;
    color: #fff;
}

.admin-redeem-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.admin-gift-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
}

.admin-gift-card {
    display: grid;
    gap: 10px;
    align-content: start;
}

.admin-gift-card h3 {
    margin: 0;
    font-size: 16px;
}

.admin-gift-card p {
    margin: 0;
    color: #69738f;
    font-size: 13px;
    line-height: 1.5;
}

.admin-gift-image {
    width: 100%;
    height: 190px;
    overflow: hidden;
    border-radius: 12px;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.55), transparent 72%),
        linear-gradient(180deg, #f3f5fa, #e4e8f1);
    display: grid;
    place-items: center;
}

.admin-gift-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px;
    box-sizing: border-box;
}

.admin-gift-image-placeholder {
    display: grid;
    place-items: center;
    font-size: 46px;
}

.admin-gift-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-gift-link {
    color: #2b4bb3;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.admin-gift-upload-row {
    display: grid;
    gap: 6px;
}

.admin-gift-upload-row input[type="file"] {
    font-size: 13px;
}

.admin-task-disabled {
    opacity: 0.55;
}

.admin-dialog-card.image-preview-dialog {
    width: min(92vw, 960px);
}

.admin-image-preview {
    display: grid;
    gap: 14px;
}

.admin-image-preview-stage {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 320px;
    max-height: 70vh;
    overflow: auto;
    border: 1px solid #e6eaf4;
    border-radius: 12px;
    background: #f4f6fb;
    cursor: zoom-in;
}

.admin-image-preview-stage img {
    max-width: 100%;
    max-height: 70vh;
    object-fit: contain;
    transform-origin: center;
    transition: transform 0.15s ease;
}

.admin-image-preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.admin-help {
    border-left: 4px solid var(--admin-cyan);
    border-radius: 0 12px 12px 0;
    padding: 12px 15px;
    color: #526079;
    background: #e9f9fc;
    font-size: 12px;
    line-height: 1.65;
}

.admin-grant-form {
    display: grid;
    gap: 24px;
    padding: 24px;
}

.admin-grant-step {
    display: grid;
    gap: 12px;
}

.admin-grant-step + .admin-grant-step {
    border-top: 1px solid var(--admin-line);
    padding-top: 22px;
}

.admin-grant-step-title {
    display: flex;
    gap: 9px;
    align-items: center;
    color: var(--admin-ink);
}

.admin-grant-step-title > span {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: #fff;
    background: var(--admin-blue);
    font-size: 12px;
    font-weight: 900;
}

.admin-grant-recipient {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.admin-grant-recipient label {
    display: grid;
    gap: 7px;
    color: #45506d;
    font-size: 13px;
    font-weight: 800;
}

.admin-grant-form input[type="text"],
.admin-grant-form input[type="search"],
.admin-grant-form input[type="number"],
.admin-grant-form select {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    padding: 11px 13px;
    color: var(--admin-ink);
    background: #fff;
    font: inherit;
    outline: none;
}

.admin-grant-form input:focus,
.admin-grant-form select:focus {
    border-color: var(--admin-cyan);
    box-shadow: 0 0 0 3px rgba(30, 188, 225, 0.15);
}

.admin-grant-form select {
    min-height: 176px;
}

.admin-grant-form select option {
    padding: 9px 10px;
}

.admin-grant-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.admin-grant-item {
    position: relative;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 10px;
    align-items: center;
    min-height: 68px;
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    padding: 10px 12px;
    color: var(--admin-ink);
    background: #fff;
    cursor: pointer;
}

.admin-grant-item:has(input:checked) {
    border-color: var(--admin-blue);
    box-shadow: 0 0 0 2px rgba(49, 94, 234, 0.12);
}

.admin-grant-item input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.admin-grant-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    color: #263454;
    background: #eef2fa;
    font-size: 20px;
    font-weight: 900;
}

.admin-grant-submit-row {
    display: grid;
    grid-template-columns: minmax(150px, 240px) minmax(140px, 210px);
    gap: 12px;
    align-items: end;
}

.admin-grant-submit-row button {
    min-height: 44px;
}

.admin-grant-receipt {
    display: flex;
    gap: 8px 16px;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #bce9d4;
    border-radius: 12px;
    padding: 12px 14px;
    color: #17654f;
    background: #ecfbf4;
    font-size: 13px;
}

.admin-settings-host {
    overflow: hidden;
    border: 1px solid var(--admin-line);
    border-radius: 18px;
    padding: 18px;
    background: #17213e;
}

.admin-settings-host .settings-body {
    max-height: none;
    overflow: visible;
}

.admin-settings-host .settings-config-item {
    background: rgba(255, 255, 255, 0.055);
}

.admin-settings-host .settings-exit-btn {
    color: #263454;
    background: #dfe4ef;
}

.admin-qr-view {
    display: grid;
    place-items: center;
    gap: 14px;
    text-align: center;
}

.admin-qr-view img {
    width: min(280px, 80vw);
    height: auto;
    border: 10px solid #fff;
    border-radius: 16px;
    box-shadow: 0 10px 32px rgba(16, 28, 65, 0.14);
}

.admin-qr-view p {
    margin: 0;
    color: var(--admin-muted);
    font-size: 13px;
    line-height: 1.6;
}

.admin-qr-url {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
    padding: 10px 12px;
    color: var(--admin-ink);
    background: #f2f4f9;
    font: 12px/1.4 Consolas, monospace;
    text-align: center;
}

.admin-config-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.admin-config-field {
    display: grid;
    gap: 8px;
}

.admin-config-field span {
    overflow: hidden;
    color: #4d5873;
    font: 700 12px/1.4 Consolas, monospace;
    text-overflow: ellipsis;
}

.admin-toast {
    position: fixed;
    z-index: 5300;
    right: 24px;
    bottom: 24px;
    max-width: min(380px, calc(100vw - 48px));
    border-radius: 13px;
    padding: 12px 16px;
    color: #fff;
    background: #1b2853;
    box-shadow: 0 14px 38px rgba(11, 20, 48, 0.3);
    font: 700 13px/1.5 "Microsoft YaHei UI", sans-serif;
}

.admin-toast.error {
    background: #a83143;
}

.game-time-display {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-width: 80px;
    border: 1px solid rgba(88, 226, 239, 0.4);
    border-radius: 999px;
    padding: 4px 10px;
    color: #eafcff;
    background: rgba(14, 53, 91, 0.72);
    box-shadow: 0 0 16px rgba(38, 211, 229, 0.2);
}

.game-time-display.warning {
    border-color: rgba(255, 189, 69, 0.7);
    color: #fff0bd;
    background: rgba(102, 60, 14, 0.8);
}

.game-time-display.exhausted {
    border-color: rgba(255, 92, 116, 0.72);
    color: #ffe1e5;
    background: rgba(106, 27, 42, 0.88);
}

.game-time-clock {
    font-size: 14px;
}

.game-time-display strong {
    font-size: 13px;
}

.game-time-display small {
    font-size: 10px;
    opacity: 0.75;
}

.game-time-lock {
    position: fixed;
    inset: 0;
    z-index: 6000;
    display: grid;
    place-items: center;
    padding: 24px;
    overflow: auto;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 110, 92, 0.18), transparent 36%),
        rgba(6, 11, 28, 0.94);
    backdrop-filter: blur(18px);
}

.game-time-lock-card {
    width: min(100%, 450px);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 26px;
    padding: 34px;
    color: #eef3ff;
    background: linear-gradient(160deg, rgba(30, 43, 82, 0.98), rgba(15, 23, 52, 0.98));
    box-shadow: 0 30px 100px rgba(0, 0, 0, 0.52);
    text-align: center;
}

.game-time-lock-icon {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    margin: 0 auto 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 25px;
    background: rgba(255, 255, 255, 0.08);
    font-size: 38px;
}

.game-time-lock-card > p {
    color: #ffad94;
}

.game-time-lock-card h2 {
    margin: 5px 0 10px;
    font-size: clamp(25px, 6vw, 34px);
}

.game-time-lock-copy {
    margin: 0 0 22px;
    color: #aeb9d7;
    font-size: 13px;
    line-height: 1.7;
}

.game-time-lock-card .admin-form {
    text-align: left;
}

.game-time-lock-card .admin-form label {
    color: #cbd3eb;
}

.game-time-lock-card .admin-form input {
    border-color: rgba(255, 255, 255, 0.14);
    color: #fff;
    color-scheme: dark;
    -webkit-text-fill-color: #fff;
    caret-color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.game-time-lock-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 4px;
}

.game-time-lock-actions button {
    width: 100%;
}

@media (max-width: 780px) {
    .admin-grant-recipient {
        grid-template-columns: 1fr;
    }

    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 8;
        width: min(290px, 86vw);
        box-sizing: border-box;
        transform: translateX(-105%);
        transition: transform 0.22s ease;
        box-shadow: 18px 0 45px rgba(8, 15, 38, 0.35);
    }

    .admin-shell.nav-open .admin-sidebar {
        transform: translateX(0);
    }

    .admin-shell.nav-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 7;
        background: rgba(8, 13, 31, 0.55);
    }

    .admin-nav-toggle {
        display: inline-grid;
        flex: 0 0 auto;
        place-items: center;
    }

    .admin-workspace-head {
        min-height: 72px;
        padding: 0 15px;
    }

    .admin-close-button {
        padding: 9px 11px;
        font-size: 12px;
    }

    .admin-content {
        width: calc(100% - 30px);
        padding-top: 24px;
    }

    .admin-config-search {
        width: 100%;
    }

    .admin-member-toolbar {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 12px;
    }

    .admin-member-toolbar-actions {
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .admin-member-row {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
    }

    .admin-member-time {
        justify-items: end;
    }

    .admin-member-points {
        justify-items: end;
    }

    .admin-member-affiliation {
        grid-column: 1 / -1;
        padding-left: 54px;
    }

    .admin-member-actions {
        grid-column: 1 / -1;
        justify-self: end;
    }

    .admin-choice-grid,
    .admin-form-grid,
    .admin-search-row,
    .admin-grant-items,
    .admin-grant-submit-row {
        grid-template-columns: 1fr;
    }

    .admin-form-grid .wide {
        grid-column: auto;
    }

    .admin-choice-button {
        min-height: 130px;
    }
}

@media (max-width: 520px) {
    .admin-overlay,
    .game-time-lock {
        align-items: end;
        padding: 0;
    }

    .admin-auth-card,
    .admin-choice-card,
    .admin-dialog-card,
    .game-time-lock-card {
        width: 100%;
        max-height: calc(100vh - 16px);
        box-sizing: border-box;
        overflow: auto;
        border-radius: 26px 26px 0 0;
        padding: 28px 20px calc(24px + env(safe-area-inset-bottom));
    }

    .admin-dialog-card.interaction-stats-dialog {
        width: 100%;
    }

    .admin-choice-grid {
        gap: 10px;
    }

    .admin-choice-button {
        min-height: 112px;
        padding: 16px;
    }

    .admin-grid {
        grid-template-columns: 1fr;
    }

    .admin-card {
        padding: 17px;
    }

    .admin-time-control {
        grid-template-columns: 1fr;
    }

    .admin-settings-host {
        margin-inline: -4px;
        padding: 10px;
    }

    .admin-config-search {
        grid-template-columns: 1fr;
    }

    .admin-member-toolbar {
        padding: 14px;
    }

    .admin-member-toolbar-main,
    .admin-member-toolbar-actions {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .admin-family-stats {
        justify-content: flex-start;
    }

    .admin-member-toolbar label {
        flex-basis: auto;
        min-width: 0;
    }

    .admin-member-count {
        min-height: auto;
        line-height: 1.2;
    }

    .admin-member-toolbar-actions button {
        width: auto;
        flex: 0 1 auto;
        white-space: nowrap;
        padding: 7px 14px;
    }

    .admin-member-row {
        grid-template-columns: 1fr;
    }

    .admin-compact-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-member-time {
        justify-items: start;
        padding-left: 54px;
    }

    .admin-member-affiliation {
        grid-column: auto;
        grid-template-columns: 1fr;
        padding-left: 54px;
    }

    .admin-member-actions {
        grid-column: auto;
        justify-self: stretch;
    }

    .admin-member-actions button {
        flex: 1;
    }

    .interaction-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .interaction-daily-list > div {
        grid-template-columns: 1fr 1fr;
    }

    .game-time-display {
        min-width: auto;
        padding: 3px 8px;
    }
}

.admin-preset-row { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-preset-row button {
    min-width: 68px;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid #c8d4f2;
    border-radius: 12px;
    background: #f4f7ff;
    color: #2b4bb3;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.admin-preset-row button.active {
    background: #2b4bb3;
    border-color: #2b4bb3;
    color: #fff;
}

.admin-dialog-card.member-detail-dialog {
    width: min(94vw, 920px);
}

.admin-member-detail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 8px 0 6px;
}

.admin-member-detail > div {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 13px 15px;
    border-radius: 14px;
    background: #f4f6fb;
}

.admin-member-detail span {
    color: #7a869e;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.admin-member-detail strong {
    color: #1f2a44;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    word-break: break-all;
}

.admin-dialog-card .admin-card-actions {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e6eaf4;
}

.admin-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e6eaf4;
}

.admin-detail-actions button {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    padding: 6px 12px;
    font-size: 13px;
    white-space: nowrap;
}

.admin-message-list {
    display: grid;
    gap: 10px;
}

.admin-message-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 14px 16px;
    border: 1px solid #e3e8f2;
    border-radius: 12px;
    background: #fff;
    color: #1f2a44;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-message-row:hover {
    border-color: #b9c6ea;
    box-shadow: 0 6px 18px rgba(18, 30, 69, 0.06);
}

.admin-message-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #9aa5bf;
}

.admin-message-dot.pending {
    background: #f0a020;
    box-shadow: 0 0 0 4px rgba(240, 160, 32, 0.16);
}

.admin-message-dot.confirmed {
    background: #2ea866;
}

.admin-message-dot.expired {
    background: #c43d4f;
}

.admin-message-main {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.admin-message-main strong {
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-message-main small {
    color: #7a869e;
    font-size: 12px;
}

.admin-message-action {
    color: #315eea;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-detail-actions-sticky {
    position: sticky;
    bottom: -32px;
    z-index: 3;
    margin: 18px -32px -32px;
    padding: 16px 32px 22px;
    border-top: 1px solid #e6eaf4;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 -8px 22px rgba(18, 30, 69, 0.08);
}

.admin-time-manage {
    position: relative;
    flex: 0 0 auto;
}

.admin-time-manage > button {
    width: auto;
}

.admin-time-manage-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.admin-time-manage-options button {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    white-space: nowrap;
}

.admin-task-importance-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    padding: 4px 0;
}

.admin-task-importance-options label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    font-weight: 600;
    cursor: pointer;
}

.admin-nav-badge {
    margin-left: auto;
    min-width: 18px;
    padding: 1px 6px;
    border-radius: 9px;
    background: #ff4d4f;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
}

.admin-task-pending-badge {
    color: #ff6b6b;
    font-size: 13px;
    font-weight: 700;
}

.admin-task-completion-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.04);
}

.admin-task-completion-row + .admin-task-completion-row {
    margin-top: 8px;
}

.admin-task-completion-copy {
    display: grid;
    gap: 2px;
}

.admin-task-completion-copy strong {
    color: #eef3ff;
    font-size: 14px;
}

.admin-task-completion-copy span {
    color: #cbd4f1;
    font-size: 13px;
}

.admin-task-completion-copy small {
    color: #8fa3c9;
    font-size: 12px;
}

.admin-task-completion-actions {
    display: flex;
    gap: 8px;
    flex: 0 0 auto;
}
