/* Account surfaces share the portal's color, spacing and typography tokens. */
.ui-button { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s; }
.ui-button:hover { background:var(--canvas);border-color:#b8cdc0; }
.ui-button.primary { background:var(--primary);border-color:var(--primary);color:white; }
.ui-button.primary:hover { background:var(--primary-hover); }
.ui-button.danger { color:var(--danger);border-color:#e8caca;background:#fff8f8; }
.ui-button:disabled { opacity:.5;cursor:not-allowed; }
.ui-icon { width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }
.profile-area { position:relative;margin-top:auto;padding-top:24px; }
.profile-trigger { display:flex;align-items:center;gap:10px;width:100%;padding:10px 6px;border:0;border-radius:8px;color:var(--ink);background:transparent;text-align:left; }
.profile-trigger:hover,.profile-trigger[aria-expanded=true] { background:var(--canvas); }
.avatar { display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid #d1e5d8;border-radius:50%;background:var(--primary-soft);color:var(--primary-hover);font-size:12px;font-weight:700; }
.profile-copy { flex:1;min-width:0; }
.profile-copy strong,.profile-copy small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.profile-copy strong { font-size:12px;font-weight:600; }
.profile-copy small { color:var(--muted);font-size:10px;margin-top:1px; }
.profile-menu { position:absolute;bottom:calc(100% - 16px);left:0;z-index:60;width:260px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 8px 30px rgb(25 49 36 / 12%); }
.profile-menu-info { padding:12px;border-bottom:1px solid var(--line);margin-bottom:6px; }
.profile-menu-info strong { display:block;font-size:13px; }
.profile-menu-info span { display:block;color:var(--muted);font-size:11px;overflow-wrap:anywhere; }
.profile-menu button { display:flex;align-items:center;gap:10px;width:100%;border:0;padding:10px 12px;border-radius:6px;background:transparent;color:var(--muted);font-size:12px; }
.profile-menu button:hover { background:var(--canvas);color:var(--ink); }
.profile-error { margin:8px;font-size:11px;color:var(--danger); }
.sidebar-collapsed .profile-copy,.sidebar-collapsed .profile-chevron { display:none; }
.sidebar-collapsed .profile-trigger { justify-content:center; }
.admin-header { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px; }
.page-eyebrow { display:block;font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--primary);margin-bottom:8px; }
.admin-header h1 { font-size:26px;letter-spacing:-.04em;margin:0 0 6px;font-weight:700; }
.admin-header p { margin:0;color:var(--muted);font-size:12px; }
.admin-tabs { display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:24px; }
.admin-tab { display:flex;align-items:center;gap:7px;padding:0 0 14px;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap; }
.admin-tab[aria-selected=true] { color:var(--secondary);border-bottom-color:var(--primary); }
.tab-count { display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;background:#eaf0ec;border-radius:5px;color:var(--muted);font-size:10px; }
.admin-tab[aria-selected=true] .tab-count { background:var(--primary-soft);color:var(--primary-hover); }
.admin-toolbar { display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px; }
.search-field { display:flex;align-items:center;gap:9px;max-width:320px;width:100%;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--muted); }
.search-field:focus-within { border-color:var(--primary); }
.search-field input { width:100%;border:0;background:none;outline:0;padding:10px 0;font-size:12px;color:var(--ink); }
.ui-select { border:1px solid var(--line);border-radius:8px;background:white;padding:9px 32px 9px 12px;color:var(--ink);font-size:12px; }
.admin-panel { border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:var(--shadow); }
.table-scroll { position:relative;overflow-x:auto; }
.admin-table { width:100%;border-collapse:collapse;text-align:left;white-space:nowrap; }
.admin-table th { padding:13px 20px;background:#fafcfb;color:var(--muted);font-size:10px;font-weight:600;border-bottom:1px solid var(--line); }
.admin-table td { padding:18px 20px;font-size:12px;border-bottom:1px solid #edf1ee; }
.admin-table tbody tr:last-child td { border-bottom:0; }
.admin-table tbody tr:hover { background:#fcfdfc; }
.person { display:flex;align-items:center;gap:12px; }
.person strong { display:block;font-size:12px;font-weight:600; }
.person small { display:block;font-size:11px;color:var(--muted);margin-top:2px; }
.self-label { margin-left:5px;font-size:9px;font-weight:500;color:var(--primary); }
.badge { display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:5px;font-size:10px;background:#f0f3f1;color:var(--muted);white-space:nowrap; }
.badge.green { color:var(--primary-hover);background:var(--primary-soft); }
.badge.red { color:#a64444;background:#fbebeb; }
.badge.amber { color:#926927;background:#faf3e5; }
.status-dot { width:5px;height:5px;border-radius:50%;background:currentColor; }
.menu-chips { display:flex;gap:5px; }
.table-time { color:var(--muted);font-size:11px!important; }
.table-action { text-align:right; }
.table-action button { font-size:11px;min-height:30px;padding:5px 10px; }
.table-note { display:flex;justify-content:space-between;gap:16px;padding:14px 20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);background:#fafcfb; }
.admin-empty { padding:64px 20px;text-align:center; }
.admin-empty .ui-icon { width:30px;height:30px;color:#9eb8a8;margin-bottom:10px; }
.admin-empty h2 { margin:0 0 6px;font-size:15px; }
.admin-empty p { margin:0;color:var(--muted);font-size:12px; }
.admin-empty button { margin-top:18px; }
.inline-notice { padding:12px 16px;margin-bottom:18px;border:1px solid #cfe2d5;border-radius:8px;background:var(--primary-soft);color:var(--primary-hover);font-size:12px; }
.inline-notice.error { color:#a64444;background:#fff4f4;border-color:#ecd2d2; }
.notice-dismiss { float:right;border:0;background:none;color:inherit;line-height:1.5;margin-left:10px; }
.dialog { border:1px solid var(--line);border-radius:14px;padding:0;width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 40px);background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgb(1 53 64 / 16%); }
.dialog::backdrop { background:rgb(16 38 30 / 28%);backdrop-filter:blur(2px); }
.dialog-header { display:flex;align-items:flex-start;justify-content:space-between;padding:26px 28px 20px;border-bottom:1px solid var(--line); }
.dialog-header h2 { font-size:18px;letter-spacing:-.03em;margin:0 0 5px; }
.dialog-header p { margin:0;color:var(--muted);font-size:12px; }
.icon-button { display:grid;place-items:center;width:30px;height:30px;padding:6px;border:0;border-radius:6px;background:none;color:var(--muted); }
.icon-button:hover { background:var(--canvas); }
.dialog-body { padding:24px 28px; }
.dialog fieldset { margin:0;padding:0;border:0;min-width:0; }
.dialog-person { display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--canvas);margin-bottom:24px; }
.field-label { display:block;font-size:12px;font-weight:600;margin-bottom:8px; }
.field-hint { color:var(--muted);font-size:11px;margin:7px 0 0; }
.field { margin-bottom:24px; }
.field:last-child { margin-bottom:0; }
.text-input { width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;font-size:12px;background:white;color:var(--ink); }
.role-choice { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.role-option { display:flex;align-items:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;font-size:12px;cursor:pointer; }
.role-option:has(input:checked) { border-color:var(--primary);background:var(--primary-soft);color:var(--primary-hover); }
input[type=checkbox],input[type=radio] { accent-color:var(--primary); }
.permission-row { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid #edf1ee; }
.permission-row:last-child { border:0; }
.permission-row strong { display:block;font-size:12px;font-weight:500; }
.permission-row small { display:block;font-size:11px;color:var(--muted);margin-top:2px; }
.toggle { appearance:none;flex-shrink:0;width:32px;height:19px;margin:0;border:1px solid #cdd9d1;border-radius:20px;background:#dce4df;position:relative;cursor:pointer; }
.toggle::before { content:'';position:absolute;width:13px;height:13px;border-radius:50%;background:white;left:2px;top:2px;transition:transform .15s;box-shadow:0 1px 2px #0002; }
.toggle:checked { background:var(--primary);border-color:var(--primary); }
.toggle:checked::before { transform:translateX(13px); }
.toggle:disabled { opacity:.55;cursor:default; }
.block-field { padding-top:18px;border-top:1px solid var(--line); }
.block-field .toggle:checked { background:var(--danger);border-color:var(--danger); }
.block-warning { margin:12px 0 0;color:var(--danger);font-size:11px; }
.dialog-footer { display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:18px 28px;background:#fafcfb;border-top:1px solid var(--line); }
.dialog-error { color:var(--danger);font-size:12px;margin:0;padding:0 28px 18px; }
.audit-change { display:block;font-size:11px;color:var(--muted);margin-top:3px;max-width:400px;white-space:normal; }
.login-page { min-height:100dvh;display:flex;flex-direction:column; }
.login-brand { display:flex;align-items:center;gap:10px;padding:28px 36px;text-decoration:none; }
.login-brand img { width:30px;height:30px;object-fit:contain; }
.login-brand span { font-weight:700;font-size:16px;letter-spacing:-.04em;color:var(--secondary); }
.login-main { display:grid;place-items:center;flex:1;padding:40px 24px 80px; }
.login-card { width:100%;max-width:420px;padding:40px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 4px 24px rgb(25 49 36 / 3%); }
.login-mark { display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:var(--primary-soft);margin-bottom:28px; }
.login-mark img { width:34px;height:34px;object-fit:contain; }
.login-card h1 { font-size:25px;line-height:1.45;letter-spacing:-.055em;margin:0 0 12px;font-weight:700; }
.login-description { color:var(--muted);font-size:12px;line-height:1.9;margin:0 0 30px; }
.google-button { display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:8px;background:white;text-decoration:none;font-size:12px;font-weight:600;transition:background .15s,border-color .15s; }
.google-button:hover { background:var(--canvas);border-color:#b5c9bd; }
.google-button svg { width:18px;height:18px; }
.login-note { display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;color:var(--muted);margin:16px 0 0; }
.login-note .ui-icon { width:12px;height:12px; }
.login-divider { border-top:1px solid var(--line);margin-top:28px;padding-top:20px; }
.login-divider p { font-size:11px;color:var(--muted);margin:0;line-height:1.9; }
.login-footer { padding:20px;text-align:center;color:#8a9991;font-size:10px;letter-spacing:.08em; }
@media(max-width:1100px) { .admin-table td,.admin-table th { padding-left:14px;padding-right:14px; } }
@media(max-width:800px) {
 .profile-area { position:absolute;right:24px;top:16px;margin:0;padding:0; }
 .sidebar { position:relative; }
 .profile-trigger { padding:0;width:34px; }
 .profile-copy,.profile-chevron { display:none; }
 .profile-menu { top:44px;bottom:auto;left:auto;right:0; }
 .sidebar-head { padding-right:48px; }
 .sidebar-collapsed .sidebar-nav { margin-right:44px; }
 .admin-header { align-items:flex-start; }
 .admin-header h1 { font-size:23px; }
 .admin-header p { max-width:250px; }
 .admin-tabs { gap:20px; }
}
@media(max-width:560px) {
 .admin-header { flex-direction:column;gap:16px;margin-bottom:26px; }
 .admin-header p { max-width:none; }
 .admin-toolbar { flex-wrap:wrap; }
 .search-field { max-width:none; }
 .ui-select { width:100%; }
 .table-note { flex-direction:column;gap:4px; }
 .dialog-header,.dialog-body { padding:20px; }
 .dialog-footer { padding:16px 20px; }
 .login-brand { padding:24px; }
 .login-card { padding:30px 26px; }
 .login-main { padding:24px 20px 48px; }
}
.sr-only { position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
@media(max-width:700px) {
 .users-table,.users-table tbody { display:block; }
 .users-table thead { display:none; }
 .users-table tbody tr { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:20px;border-bottom:1px solid var(--line); }
 .users-table tbody tr:last-child { border-bottom:0; }
 .users-table td { padding:0;border:0;white-space:normal; }
 .users-table td:nth-child(1) { grid-column:1;grid-row:1;min-width:0; }
 .users-table td:nth-child(2) { grid-column:1;grid-row:2; }
 .users-table td:nth-child(3) { grid-column:1 / -1;grid-row:3; }
 .users-table td:nth-child(4) { grid-column:2;grid-row:2;text-align:right; }
 .users-table td:nth-child(5) { grid-column:1 / -1;grid-row:4; }
 .users-table td:nth-child(5)::before { content:'마지막 로그인 · '; }
 .users-table td:nth-child(6) { grid-column:2;grid-row:1;align-self:center; }
 .users-table .person small { overflow-wrap:anywhere; }
 .sidebar .sidebar-link { word-break:keep-all; }
}
@media(max-width:560px) {
 .sidebar .sidebar-link { flex-direction:column;gap:5px; }
 .sidebar-menu-label { white-space:nowrap;font-size:10px; }
 .profile-menu { max-width:calc(100vw - 40px); }
}

/* Minimal page chrome for account screens. */
.admin-header { justify-content:flex-end;margin-bottom:20px; }
.login-main { padding:32px 20px; }
.login-card { max-width:360px;padding:36px; }
.login-mark { margin:0 auto 28px; }
@media(max-width:560px) { .admin-header { align-items:flex-end; } .login-card { padding:30px 24px; } }
.delete-account { margin-right:auto; }

/* Claude member CSV management */
.admin-tabs { overflow-x:auto; }
.roster-freshness { display:flex;align-items:flex-start;gap:20px;padding:14px 18px;margin-bottom:20px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:11px;color:var(--muted); }
.roster-freshness-title { color:var(--secondary);font-weight:600;white-space:nowrap;padding-top:1px; }
.roster-freshness-values { flex:1;min-width:0; }
.roster-upload-time { display:flex;flex-wrap:wrap;gap:4px 6px; }
.roster-upload-time strong { color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums; }
.roster-freshness-values small { display:block;margin-top:5px;font-size:10px;line-height:1.6; }
.roster-upload-details { margin-top:7px;font-size:10px; }
.roster-upload-details summary { cursor:pointer;width:fit-content; }
.roster-upload-details summary:hover { color:var(--ink); }
.roster-upload-details[open] summary { margin-bottom:7px; }
.roster-upload-details div,.roster-upload-details p { overflow-wrap:anywhere;line-height:1.7; }
.roster-upload-details p { margin:3px 0 0; }
#roster-upload { flex-shrink:0;font-size:11px;padding:7px 12px; }
@media(max-width:560px) {
 .roster-freshness { display:grid;grid-template-columns:1fr auto;gap:10px 12px;padding:12px 14px; }
 .roster-freshness-title { align-self:center; }
 .roster-freshness-values { grid-column:1 / -1;grid-row:2; }
 #roster-upload { grid-column:2;grid-row:1; }
}
#roster-retry { margin-bottom:16px; }

.roster-filters { justify-content:flex-start;flex-wrap:wrap; }
