:root{--background:#eef4ef;--background-strong:#e2ece6;--foreground:#061727;--muted:#66757a;--line:#c8d7d0;--line-soft:#dce6e1;--primary:#9a4a16;--primary-dark:#77340d;--primary-soft:#fff7e7;--accent:#2c6b5d;--accent-soft:#e6f2ed;--danger:#b42318;--success:#146c2e;--surface:#fff;--surface-muted:#fbfbf6;--panel-bg:var(--surface);--shadow-soft:0 20px 46px #06172714;--shadow-inset:inset 0 1px 0 #ffffffd1}*{box-sizing:border-box}html{min-height:100vh;font-size:18px}body{background:linear-gradient(180deg, #f7faf7 0, var(--background) 280px, #edf4ef 100%);min-height:100vh;color:var(--foreground);margin:0;font-family:Arial,Noto Sans KR,sans-serif;line-height:1.55}a{color:inherit}.page{width:min(1120px,100% - 32px);margin:0 auto;padding:32px 0 56px}.page.narrow{width:min(720px,100% - 32px)}.page.wide{width:min(1320px,100% - 32px)}.topbar{justify-content:space-between;align-items:center;gap:16px;padding:20px 0 24px;display:flex}.admin-header-link{min-height:40px;color:var(--muted);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;padding:0 10px;font-size:.78rem;font-weight:800;line-height:1;text-decoration:none;transition:color .16s,background .16s,box-shadow .16s;display:inline-flex}.admin-header-link:hover,.admin-header-link:focus-visible{color:var(--accent);background:var(--accent-soft)}.admin-header-link:focus-visible{outline:none;box-shadow:0 0 0 3px #2c6b5d2e}.brand{gap:4px;display:grid}.brand-kicker{color:var(--primary);letter-spacing:0;flex-wrap:wrap;align-items:baseline;gap:10px;font-size:.68rem;font-weight:900;line-height:1.2;display:inline-flex}.brand-version{color:var(--muted);font-size:.54rem;font-weight:800}.brand-runtime-env{color:#b45309;letter-spacing:.04em;background:#fff4e5;border-radius:999px;align-items:center;padding:1px 6px;font-size:.48rem;font-weight:900;line-height:1.4;display:inline-flex}.brand-title{color:var(--foreground);font-size:1.45rem;font-weight:800;line-height:1.25}.muted{color:var(--muted)}.grid{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:24px;display:grid}.panel,.course-card,.mini-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft), var(--shadow-inset);border-radius:8px}.panel,.course-card{position:relative}.panel{padding:24px}.panel:before,.course-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--accent));opacity:.8;border-radius:8px 8px 0 0;height:4px;position:absolute;inset:0 0 auto}.course-list{gap:16px;display:grid}.course-card{border-color:#d4dfd9;padding:20px}.mini-card{background:var(--surface-muted);border-color:var(--line-soft);padding:14px}.course-card h3,.panel h2{margin:0 0 12px}.course-description{color:#253840;white-space:pre-wrap;max-width:68ch;margin:10px 0 16px;line-height:1.6}.label{color:#13242c;min-width:0;margin-bottom:8px;font-size:.92rem;font-weight:700;display:block}.label.compact-label{width:min(260px,100%);margin-bottom:0}.required-mark{color:var(--danger);margin-left:4px}.input{width:100%;min-width:0;min-height:52px;color:var(--foreground);background:#fbfdfb;border:1px solid #b9cac2;border-radius:6px;outline:none;padding:12px 14px;font-family:inherit;font-size:1rem;transition:border-color .16s,box-shadow .16s,background .16s;box-shadow:inset 0 1px 2px #0617270a}.input[type=date],.input[type=datetime-local]{letter-spacing:0;font-weight:700}.input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #2c6b5d24}.input[readonly]{background:var(--surface-muted);color:var(--muted);cursor:default}.input.input-error{border-color:var(--danger);background:#fff8f7}.field-error{color:var(--danger);margin-top:6px;font-size:.9rem;font-weight:700;display:block}.button{background:var(--primary);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-height:52px;padding:0 22px;font-size:1rem;font-weight:800;text-decoration:none;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:inline-flex;box-shadow:0 8px 18px #9a4a1629}.button:hover{background:var(--primary-dark);transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.6}.button:disabled:hover{transform:none}.button.pseudo-disabled{cursor:pointer;opacity:.6}.button.pseudo-disabled:hover{transform:none}.button.secondary{color:var(--foreground);background:#fff;border-color:#b8c9c2;box-shadow:0 8px 18px #0617270f}.button.secondary:hover{border-color:var(--accent);background:var(--accent-soft);color:#12352e}.button.system-auto-refresh-button.on{color:#1f5f3f;background:#2d7d511a;border-color:#2d7d5152;box-shadow:0 8px 18px #2d7d5129}.button.system-auto-refresh-button.on:hover{color:#184a31;background:#2d7d5129;border-color:#2d7d51}.button.system-auto-refresh-button.off{color:#65736e;box-shadow:none;background:#f6f8f7;border-color:#d4ddd9}.button.system-auto-refresh-button.off:hover{color:#40504a;background:#eef3f1;border-color:#aebcb6}.button.danger{background:var(--danger)}.button.small{min-height:44px;padding:0 14px;font-size:.9rem}.button.full{width:100%}.login-agree-list{gap:10px;margin-top:14px;display:grid}.login-agree-item{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:6px;padding:10px}.login-agree-row{align-items:center;gap:8px;min-width:0;display:flex}.login-agree-checkbox{flex:0 0 16px;width:16px;height:16px;margin:0}.login-agree-label{flex:auto;min-width:0;font-size:.72rem;font-weight:700;line-height:1.25;overflow:hidden}.login-agree-label-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.login-agree-label .required-mark{font-size:.68rem;font-weight:800}.login-agree-row .button.small{white-space:nowrap;flex:none;min-height:30px;padding:0 8px;font-size:.62rem}.login-agree-content{border-top:1px solid var(--line-soft);max-height:210px;margin-top:10px;padding-top:10px;font-size:.78rem;line-height:1.5;overflow:auto}.login-agree-content :where(p,li,td,th){font-size:inherit}.login-agree-content :where(h1,h2,h3,h4){font-size:.85rem}.status{border-radius:6px;margin-top:14px;padding:12px;font-weight:700}.status.ok{color:var(--success);background:#effaf1;border:1px solid #b9dcc3}.status.error{color:var(--danger);background:#fff1f0;border:1px solid #f0b7b2}.admin-login-remember{color:#13242c;cursor:pointer;align-items:center;gap:8px;font-size:.92rem;font-weight:700;display:inline-flex}.admin-login-remember input{width:18px;height:18px;accent-color:var(--accent);margin:0}.toast-viewport{z-index:900;pointer-events:none;justify-content:center;padding:0 16px;display:flex;position:fixed;bottom:24px;left:0;right:0}.toast{pointer-events:auto;border-radius:8px;width:min(420px,100%);padding:14px 16px;font-weight:800;line-height:1.5;box-shadow:0 14px 34px #1111112e}.info-toast{color:var(--success);background:#effaf1;border:1px solid #9fd1ad}.dialog-backdrop{z-index:1000;background:#1111116b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--danger);background:var(--surface);border-radius:8px;width:min(440px,100%);max-height:calc(100vh - 48px);padding:24px;overflow-y:auto;box-shadow:0 18px 48px #1111113d}.dialog.wide-dialog{border-color:var(--line);width:min(980px,100%)}.dialog-head{justify-content:space-between;align-items:start;gap:16px;margin-bottom:16px;display:flex}.dialog h2{margin:0 0 10px;font-size:1.2rem}.dialog p{color:var(--danger);margin:0 0 18px;font-weight:700}.dialog.wide-dialog p{color:var(--muted);margin:0}.dialog-table-wrap{max-height:min(60vh,560px)}.dialog-section{gap:10px;margin-bottom:16px;display:grid}.applicant-search-form{grid-template-columns:minmax(0,1fr) auto}.dialog-inline-message{font-size:.92rem;font-weight:800}.applicant-search-results{max-height:220px}.applicant-result-table{min-width:720px}.restricted-member-panel{border-top:1px solid var(--line-soft);gap:12px;margin-top:18px;padding-top:18px;display:grid}.restricted-member-panel h3{margin:0;font-size:1.05rem}.restricted-member-panel .inline-section-head{margin-bottom:0;padding-bottom:12px}.restricted-member-panel .inline-section-head p{margin:6px 0 0}.restricted-member-head{align-items:center}.restricted-member-head .button{white-space:nowrap;flex-shrink:0}.restricted-member-controls{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;gap:12px;padding:16px;display:grid}.restricted-member-search{margin:0}.restricted-member-import{align-items:center;gap:10px;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.restricted-member-import-preview{gap:10px;display:grid}.restricted-member-import-table{max-height:280px}.restricted-member-results{max-height:220px}.restricted-member-list{max-height:300px}.restricted-member-panel+.actions{margin-top:14px}.enrollment-dialog-table{table-layout:auto;min-width:1100px}.enrollment-dialog-table th,.enrollment-dialog-table td{white-space:nowrap}.enrollment-dialog-table th:nth-child(2),.enrollment-dialog-table td:nth-child(2){min-width:72px}.enrollment-dialog-table th:nth-child(6),.enrollment-dialog-table td:nth-child(6){min-width:170px}.enrollment-dialog-table th:nth-child(7),.enrollment-dialog-table td:nth-child(7),.enrollment-dialog-table th:nth-child(8),.enrollment-dialog-table td:nth-child(8){min-width:110px}.enrollment-dialog-table .term-enrollment-count-col{text-align:center;min-width:96px}.enrollment-dialog-table .table-sort-button{font:inherit;font-weight:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0}.meta{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.badge{color:#21463f;background:#edf6f2;border:1px solid #d7e2dd;border-radius:999px;padding:4px 10px;font-size:.9rem;font-weight:700}.course-search-form{border:1px solid var(--line-soft);background:#ffffffb8;border-radius:8px;gap:8px;margin-bottom:14px;padding:14px;display:grid}.course-search-row{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;display:grid}.category-filter{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.filter-chip{color:#21463f;min-height:42px;font:inherit;cursor:pointer;background:#fff;border:1px solid #b8c9c2;border-radius:999px;align-items:center;gap:7px;padding:0 15px;font-size:.92rem;font-weight:800;transition:border-color .16s,background .16s,box-shadow .16s;display:inline-flex}.filter-chip:hover,.filter-chip.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.filter-chip-count{color:#34524c;background:#eaf2ef;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:.78rem;line-height:1;display:inline-flex}.filter-chip.active .filter-chip-count{background:var(--accent);color:#fff}.admin-table{border-collapse:separate;border-spacing:0;background:#fff;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid var(--line-soft);text-align:left;padding:12px}.admin-table th{border-bottom-color:var(--line);color:#263940;background:#edf3ef;font-size:.88rem;font-weight:900}.admin-table tbody tr:nth-child(2n){background:#fbfcfa}.admin-table tbody tr:hover{background:#fffaf0}.member-summary-row{cursor:pointer}.member-summary-row.expanded,.member-summary-row:focus-visible,.admin-table tbody .member-detail-row:hover{background:#fffaf0}.member-detail-row td{background:#fffaf0;padding:0 12px 14px}.member-hover-details{background:#fffdf8;border:1px solid #ead8bd;border-radius:8px;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;padding:12px;display:grid;box-shadow:inset 0 1px #ffffffe0}.member-detail-item{gap:3px;min-width:0;display:grid}.member-detail-item.wide{grid-column:span 2}.member-detail-item span{color:var(--muted);font-size:.78rem;font-weight:800}.member-detail-item strong{color:#13242c;overflow-wrap:anywhere;min-width:0;font-size:.9rem;font-weight:800}.count-button{min-width:44px;min-height:38px;color:var(--foreground);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:0 10px;font-weight:800}.count-button:hover,.count-button:focus-visible{border-color:var(--accent);background:var(--accent-soft);outline:none}.count-button:disabled{cursor:wait;opacity:.65}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.actions.compact{gap:6px}.center{text-align:center}.summary-list{gap:12px;margin:18px 0;display:grid}.summary-list div{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:6px;justify-content:space-between;gap:16px;padding:10px 12px;display:flex}.summary-list .account-summary{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.account-label{color:var(--muted);padding-top:2px;font-size:.78rem;font-weight:700}.account-actions{display:contents}.account-actions .button{grid-column:3;justify-self:end}.account-name{color:var(--foreground);text-align:center;grid-column:2;justify-self:center;min-width:0;font-size:1.15rem;font-weight:900}.payment-widget{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;margin:18px 0;padding:12px}.admin-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.admin-shell{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px;display:grid}.admin-sidebar{border:1px solid var(--line);background:#eff6f2d1;border-radius:8px;align-content:start;gap:12px;padding:18px;display:grid;position:sticky;top:20px}.sidebar-button{height:54px;min-height:54px;color:var(--foreground);cursor:pointer;background:#ffffffc7;border:1px solid #bfd0c8;border-radius:8px;align-items:center;padding:0 18px;font-size:1rem;font-weight:800;transition:border-color .16s,background .16s,box-shadow .16s,transform .16s;display:flex;box-shadow:inset 0 1px #ffffffd1}.sidebar-button>span{text-align:center;flex:1}.sidebar-icon{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 22px;width:22px;height:22px}.sidebar-button.active,.sidebar-button:hover{color:#051722;background:#e8f4ef;border-color:#061727;transform:translateY(-1px);box-shadow:0 10px 22px #06172714,inset 0 0 0 1px #061727}.admin-content{min-width:0;padding:22px}.section-head{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-inset);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:18px 20px;display:flex}.section-head h2{margin:0}.course-term-head{background:var(--background);box-shadow:none;border:0;align-items:center}.admin-term-tab-layout{gap:8px}.admin-term-tab-layout>section:first-child{gap:6px;display:grid}.admin-term-tab-layout .course-term-head{margin-bottom:0;padding:2px 0}.admin-term-tab-layout .current-term-readonly{gap:6px 10px;min-height:auto}.admin-term-tab-layout .admin-tabs{margin-bottom:0;padding:4px}.admin-term-tab-layout .admin-tab-button{min-height:36px;padding:0 14px}.admin-term-tab-layout .member-summary-dashboard{gap:10px}.admin-term-tab-layout .member-summary-head{padding:12px 16px}.course-term-select{white-space:nowrap;align-items:center;gap:12px;width:auto;min-width:320px;margin-bottom:0;display:flex}.course-term-select .input{width:260px}.current-term-readonly{flex-wrap:wrap;align-items:baseline;gap:8px 12px;min-height:42px;display:flex}.current-term-readonly span{color:var(--text);font-size:.86rem;font-weight:700}.current-term-readonly strong{color:var(--accent);font-size:1rem}.current-term-readonly small{color:var(--muted)}.current-term-panel{justify-content:space-between;align-items:center;gap:16px;display:flex}.current-term-panel h3{margin:0 0 6px;font-size:.95rem}.current-term-panel p{text-align:right;margin:0}.current-term-name{color:var(--accent);font-size:1.05rem;font-weight:800}.inline-section-head{margin-bottom:14px}.section-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.settings-panel,.backup-panel,.danger-zone{min-width:0;max-width:880px}.system-log-panel{max-width:none}.system-health-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.system-health-card{border:1px solid var(--line-soft);background:var(--surface);border-left-width:5px;border-radius:8px;gap:6px;min-height:132px;padding:14px;display:grid}.system-health-card span,.system-health-card small{color:var(--muted);font-size:.82rem;font-weight:800}.system-health-card strong{font-size:1.25rem}.system-health-card p{color:#21353c;margin:0;font-size:.9rem;font-weight:700}.system-health-card.ok{border-left-color:var(--success)}.system-health-card.warn{border-left-color:#b7791f}.system-health-card.error{border-left-color:var(--danger)}.system-health-card.unknown{border-left-color:var(--muted)}.system-log-metrics{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.system-log-metrics span{border:1px solid var(--line-soft);background:var(--surface-muted);color:var(--muted);border-radius:6px;padding:8px 10px;font-size:.88rem;font-weight:800}.system-log-metrics strong{color:var(--foreground)}.system-monitoring-panel{border:1px solid var(--line-soft);background:#fbfdfb;border-radius:8px;gap:14px;margin-bottom:16px;padding:16px;display:grid}.system-monitoring-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.system-monitoring-head h3{margin:0 0 4px}.system-monitoring-controls{align-items:center;gap:8px;display:flex}.system-monitoring-live{border:1px solid var(--line-soft);background:var(--surface-muted);color:var(--muted);white-space:nowrap;border-radius:999px;padding:8px 10px;font-size:.78rem;font-weight:900}.system-monitoring-live.on{color:var(--success);background:#2d7d5114;border-color:#2d7d5140}.system-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.system-kpi-card{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;gap:8px;min-height:92px;padding:12px;display:grid}.system-kpi-card span{color:var(--muted);font-size:.78rem;font-weight:900}.system-kpi-card strong{color:#13242c;align-items:baseline;gap:4px;font-size:1.35rem;line-height:1;display:flex}.system-kpi-card small{color:var(--muted);font-size:.75rem}.system-kpi-card.ok{border-left:4px solid var(--success)}.system-kpi-card.warn{border-left:4px solid #b7791f}.system-charts-section{gap:12px;margin-bottom:14px;display:grid}.system-charts-row,.system-monitoring-grid,.system-history-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.system-charts-row{grid-template-columns:repeat(3,minmax(0,1fr))}.system-monitoring-grid{grid-auto-rows:340px}.system-history-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.system-monitoring-chart{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;gap:10px;min-width:0;min-height:184px;padding:12px;display:grid;overflow:hidden}.system-monitoring-grid .system-monitoring-chart{grid-template-rows:auto auto minmax(0,1fr) auto;height:100%}.system-chart-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.system-chart-head strong{color:#13242c}.system-chart-head span{color:var(--muted);font-size:.78rem;font-weight:800}.system-chart-summary{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:.78rem;font-weight:800;display:flex}.system-chart-summary span{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:6px;padding:5px 7px}.system-chart-summary strong{color:var(--foreground)}.system-bar-chart,.system-line-bars{align-items:end;gap:2px;min-width:0;height:118px;display:flex;overflow:hidden}.system-bar-chart>span,.system-line-bars>span{background:var(--accent);border-radius:3px 3px 0 0;flex:1 1 0;min-width:0}.system-line-bars>span{background:#2d7d51}.system-chart-empty{min-height:110px;color:var(--muted);text-align:center;place-items:center;font-weight:800;display:grid}.system-chart-axis{color:var(--muted);justify-content:space-between;gap:8px;font-size:.72rem;font-weight:900;display:flex}.system-response-list{gap:8px;display:grid}.system-response-list span{border-bottom:1px solid var(--line-soft);color:var(--muted);justify-content:space-between;gap:8px;padding-bottom:8px;font-size:.88rem;font-weight:800;display:flex}.system-response-list strong{color:var(--foreground)}.system-endpoint-list{gap:8px;min-height:0;display:grid;overflow:auto}.system-endpoint-row{border:1px solid var(--line-soft);background:var(--surface-muted);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:6px;gap:4px;padding:8px;display:grid}.system-endpoint-row span{overflow-wrap:anywhere;color:#13242c;min-width:0;font-size:.82rem;font-weight:900}.system-endpoint-row strong,.system-endpoint-row small{color:var(--muted);font-size:.78rem;font-weight:800}.system-daily-peaks{gap:8px;display:grid}.system-daily-peaks>div{color:var(--muted);grid-template-columns:48px minmax(0,1fr) 64px;align-items:center;gap:8px;font-size:.82rem;font-weight:800;display:grid}.system-daily-peaks>div>div{background:var(--surface-muted);border-radius:999px;height:10px;overflow:hidden}.system-daily-peaks>div>div>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.system-daily-peaks strong{color:var(--foreground);text-align:right}.system-heatmap-wrap{gap:8px;display:grid}.system-heatmap-hours{color:var(--muted);grid-template-columns:24px repeat(24,minmax(4px,1fr));font-size:.72rem;font-weight:900;display:grid}.system-heatmap-hours span:first-child{grid-column:2/span 2}.system-heatmap-hours span:nth-child(2){grid-column:8/span 2}.system-heatmap-hours span:nth-child(3){grid-column:14/span 2}.system-heatmap-hours span:nth-child(4){grid-column:20/span 2}.system-heatmap-hours span:nth-child(5){text-align:right;grid-column:25/span 1}.system-heatmap{grid-template-columns:24px repeat(24,minmax(4px,1fr));grid-auto-rows:14px;align-content:start;gap:3px;display:grid}.system-heatmap-day{color:var(--muted);place-items:center;font-size:.72rem;font-weight:900;display:grid}.system-heatmap-cell{background:var(--accent);border-radius:3px}.system-heatmap-cell.is-current{z-index:1;outline:2px solid var(--primary);outline-offset:1px;position:relative;box-shadow:0 0 0 4px #9a4a1629,inset 0 0 0 1px #ffffffdb}.system-heatmap-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:6px;font-size:.72rem;font-weight:900;display:flex}.system-heatmap-legend i{background:var(--accent);border-radius:3px;width:16px;height:10px}.system-heatmap-legend i:first-of-type{opacity:.22}.system-heatmap-legend i:nth-of-type(2){opacity:.58}.system-heatmap-legend i:nth-of-type(3){opacity:1}.system-heatmap-legend strong{color:var(--foreground)}.system-log-workspace{gap:16px;display:grid}.system-log-table-wrap{max-height:640px}.system-log-table{min-width:760px}.system-log-table th,.system-log-table td{white-space:nowrap}.system-log-table th:nth-child(5),.system-log-table td:nth-child(5){white-space:normal;min-width:280px}.system-log-row{cursor:pointer}.system-log-row.error{background:#fff7f6}.system-log-row.warn{background:#fffaf0}.system-log-row.error.expanded,.system-log-row.warn.expanded{outline:2px solid var(--accent);outline-offset:-2px}.system-log-detail-row td{background:#fafbfc;border-bottom:1px solid #dee2e6;padding:0}.system-log-expanded-detail{padding:16px}.system-log-expanded-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.system-log-expanded-head strong{overflow-wrap:anywhere}.system-log-expanded-message{color:#21353c;margin:0 0 12px;font-weight:800}.system-log-expanded-grid{grid-template-columns:1fr 1fr;gap:16px;font-size:.8125rem;display:grid}.system-log-expanded-field{overflow-wrap:anywhere;margin-bottom:8px}.system-log-expanded-actions{margin-top:4px}.log-level{border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:.78rem;font-weight:900;display:inline-flex}.log-level.info{background:var(--accent-soft);color:var(--accent)}.log-level.warn{color:#8a5a08;background:#fff4d6}.log-level.error{color:var(--danger);background:#fff1f0}.system-log-metadata{border:1px solid var(--line-soft);color:#13242c;white-space:pre-wrap;background:#f7faf7;border-radius:6px;max-height:260px;margin-top:12px;padding:10px;font-size:.78rem;overflow:auto}.environment-form{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;gap:12px;min-width:0;max-width:100%;margin:18px 0;padding:16px;display:grid}.environment-form h3{margin:0}.environment-form p.muted{margin:0;font-size:.88rem}.environment-form>.label{margin-bottom:0}.space-create-row{grid-template-columns:minmax(140px,2fr) minmax(100px,1fr) minmax(140px,2fr) auto;gap:10px;width:100%;min-width:0;display:grid}@media (max-width:960px){.space-create-row{grid-template-columns:1fr 1fr}.space-create-row>button{grid-column:1/-1}}.space-table-wrap{box-sizing:border-box;width:100%;max-width:100%;margin:14px 0 22px}.table-wrap.space-table-wrap{overflow-x:hidden}.space-table-wrap .admin-table{table-layout:fixed;width:100%;min-width:0;max-width:100%}.space-table-wrap .admin-table>thead>tr>th,.space-table-wrap .admin-table>tbody>tr>td{vertical-align:middle;overflow:hidden}.space-table-wrap .space-col-name{width:32%}.space-table-wrap .space-col-type{width:12%}.space-table-wrap .space-col-terminal{width:24%}.space-table-wrap .space-col-status{width:18%}.space-table-wrap .space-col-actions{width:14%}.space-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.space-table-wrap .admin-table th:nth-child(4),.space-table-wrap .admin-table td:nth-child(4),.space-table-wrap .admin-table th:nth-child(5),.space-table-wrap .admin-table td:nth-child(5){white-space:nowrap}.space-table-wrap .admin-table th:nth-child(5),.space-table-wrap .admin-table td:nth-child(5){text-align:right;padding-left:8px}.space-term-hint{margin:0 0 10px;font-size:.9rem}.space-management-head{align-items:center}.space-settings-toggle{flex-shrink:0}.space-settings-body{gap:14px;display:grid}.space-settings-body .environment-form,.space-settings-body .space-table-wrap,.space-settings-body .space-inactive-panel,.space-timetable-area{margin-top:0}@media (max-width:720px){.space-management-head{align-items:stretch}.space-settings-toggle{width:100%}}.admin-row-expandable{cursor:pointer}.admin-row-expandable:hover>td{background:#f9fafb}.space-row-name-cell{align-items:center;gap:8px;min-width:0;display:flex}.space-row-name-cell>span:first-child{white-space:nowrap;flex:0 auto;min-width:0}.space-assign-badge{color:#1d4ed8;background:#eff6ff;border-radius:9999px;flex-shrink:0;padding:2px 8px;font-size:.8rem;font-weight:600}.space-expand-chevron{color:#6b7280;flex-shrink:0;margin-left:auto;font-size:.85rem}.space-timetable-detail-row>td{vertical-align:top;background:#fafafa;width:100%;max-width:0;overflow:hidden;padding:12px!important}.room-weekly-timetable{min-width:0;max-width:100%}.room-weekly-timetable-toolbar{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;max-width:100%;margin-bottom:12px;display:flex}.room-weekly-timetable-courses{color:#6b7280;overflow-wrap:anywhere;word-break:break-word;flex:auto;min-width:0;margin:0;font-size:.8rem}.room-weekly-timetable-toolbar .button{flex-shrink:0}.room-timetable-export-btn{justify-content:center;align-items:center;width:32px;height:32px;min-height:32px;padding:0;display:inline-flex}.room-timetable-export-btn svg{display:block}.room-weekly-timetable-empty{text-align:center;padding:16px;font-size:.9rem}.room-weekly-timetable-scroll{max-width:100%;padding:4px 0;overflow:visible}.room-weekly-timetable-header{text-align:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px 6px 0 0;grid-template-columns:44px repeat(6,minmax(0,1fr));width:100%;padding:6px 0;font-size:.75rem;font-weight:700;display:grid}.room-weekly-timetable-body{background-color:#fff;border-bottom:1px solid #e5e7eb;border-left:1px solid #e5e7eb;border-right:1px solid #e5e7eb;grid-template-columns:44px repeat(6,minmax(0,1fr));width:100%;display:grid;position:relative}.room-weekly-timetable-hour-label{text-align:center;color:#6b7280;z-index:2;width:44px;font-size:.68rem;font-weight:600;position:absolute;left:0}.room-weekly-timetable-hour-line{pointer-events:none;z-index:1;border-top:1px dashed #e5e7eb;position:absolute;left:44px;right:0}.room-weekly-timetable-time-gutter{border-right:1px solid #e5e7eb}.room-weekly-timetable-day{z-index:2;min-width:0;height:100%;position:relative}.room-weekly-timetable-day.with-border{border-right:1px solid #e5e7eb}.room-timetable-card{color:#166534;box-shadow:none;cursor:pointer;text-align:center;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;padding:2px 3px;transition:all .15s ease-in-out;display:flex;position:absolute;left:2px;right:2px;overflow:hidden}.room-timetable-card:hover{z-index:10;background-color:#dcfce7;border-color:#86efac;transform:scale(1.02);box-shadow:0 4px 6px #0000001a}.room-timetable-card.program{color:#1e40af;background-color:#eff6ff;border-color:#bfdbfe}.room-timetable-card.program:hover{background-color:#dbeafe;border-color:#93c5fd}.room-timetable-card-title{color:#166534;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:.68rem;font-weight:700;line-height:1.2;overflow:hidden}.room-timetable-card.program .room-timetable-card-title{color:#1e40af}.room-timetable-card-time{color:#15803d;white-space:nowrap;text-overflow:ellipsis;width:100%;margin-top:1px;font-size:.62rem;line-height:1.15;overflow:hidden}.room-timetable-card .tooltip-content{visibility:hidden;color:#fff;text-align:left;white-space:nowrap;z-index:100;opacity:0;pointer-events:none;background-color:#1f2937;border-radius:6px;padding:8px 12px;font-size:.75rem;transition:opacity .15s ease-in-out;position:absolute;bottom:105%;left:50%;transform:translate(-50%);box-shadow:0 10px 15px -3px #0000001a}.room-timetable-card .tooltip-content strong{color:#38bdf8;font-size:.8rem}.room-timetable-card:hover .tooltip-content{visibility:visible;opacity:1}.space-terminal-cell{align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.space-terminal-input{flex:1;min-width:0;max-width:100%}.space-inactive-panel{margin:0 0 22px}.space-inactive-panel .restricted-member-controls{background:0 0;border:0;padding:0}.inactive-space-list{margin:0}.settings-title-input{margin-bottom:0}.branding-settings-group{gap:12px;margin:18px 0;display:grid}.settings-subpanel{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;gap:10px;padding:14px 16px;display:grid}.settings-subpanel h3{margin:0}.settings-subpanel-actions{margin-top:2px}.settings-favicon-section{gap:8px}.settings-favicon-help{margin:0 0 12px;font-size:.9rem}.settings-favicon-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.settings-favicon-badge-empty{color:var(--muted);border-color:var(--line-soft);background:#f3f4f2}.settings-favicon-file-input{display:none}.collapsible-setting-field{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;gap:10px;padding:12px;display:grid}.collapsible-setting-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.collapsible-setting-summary{min-width:0}.collapsible-setting-summary .label{margin:0;display:block}.collapsible-setting-preview{overflow-wrap:anywhere;white-space:pre-wrap;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;display:-webkit-box;overflow:hidden}.collapsible-setting-head .button{white-space:nowrap;flex-shrink:0}.collapsible-setting-body{gap:8px;display:grid}.collapsible-setting-body .settings-title-input{margin-bottom:0}.rich-consent-shell{gap:8px;display:grid}.rich-consent-toolbar{flex-wrap:wrap;gap:8px;display:flex}.rich-consent-editor{white-space:normal;min-height:180px;line-height:1.6;overflow:auto}.danger-zone{background:#fff7f6;border:1px solid #f0b7b2;border-radius:8px;gap:14px;margin-top:20px;padding:16px;display:grid}.danger-zone h3{color:var(--danger);margin:0 0 6px}.danger-zone p{margin:0}.danger-actions{flex-wrap:wrap;gap:10px;display:flex}.danger-zone+.actions{margin-top:18px}.backup-panel{gap:16px;display:grid}.backup-panel h3,.backup-panel h4{margin:0}.backup-workflows{grid-template-columns:1fr;gap:14px;display:grid}.backup-card{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;gap:14px;min-width:0;padding:16px;display:grid}.backup-card-copy{gap:6px;display:grid}.backup-card-copy p{margin:0}.backup-field-row{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:12px;display:grid}.backup-field-row .label{margin-bottom:0}.backup-field-row .button{min-width:132px;height:52px}.backup-restore-card{background:#fff7f6;border-color:#f0b7b2}.backup-restore-card h4{color:var(--danger)}.backup-restore-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.backup-restore-actions{justify-content:flex-end;display:flex}.backup-restore-actions .button{white-space:nowrap;min-width:180px;min-height:48px}.reset-dialog{width:min(560px,100%)}.confirmation-copy{color:var(--danger);background:#fff7f6;border:1px solid #f0b7b2;border-radius:6px;gap:6px;margin:12px 0 18px;padding:12px;font-weight:800;display:grid}.confirmation-copy span{color:var(--muted);font-size:.9rem;font-weight:700}.term-default-panel{margin-bottom:16px}.term-default-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.term-default-head h2{margin:0}.term-default-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.term-default-summary span{border:1px solid var(--line-soft);background:var(--surface-muted);color:#21353c;border-radius:8px;gap:4px;padding:14px 16px;font-weight:700;line-height:1.45;display:grid}.term-default-summary strong{color:var(--muted);font-size:.82rem}.term-default-summary+.form-grid{margin-top:14px}.term-start-panel{margin-bottom:16px}.setting-row{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;justify-content:space-between;align-items:center;gap:18px;padding:16px;font-weight:800;display:flex}.panel .setting-row{margin-bottom:14px}.setting-row span{gap:4px;display:grid}.setting-row>input,.setting-row>.payment-toggle-row>input{width:24px;height:24px;accent-color:var(--accent);flex:none}.setting-row .muted{font-size:.92rem;font-weight:700}.payment-setting-panel{align-items:stretch;width:100%;display:grid}.payment-toggle-row{cursor:pointer;justify-content:flex-start;align-items:center;gap:18px;display:flex}.payment-toggle-row>span{flex:auto}.payment-toggle-row span{gap:4px;display:grid}.integration-settings{gap:14px;min-width:0;max-width:100%;margin:18px 0;display:grid}.integration-details{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;min-width:0;max-width:100%;overflow-x:hidden}.integration-details .tab-pane,.integration-details .tab-pane>div{min-width:0;max-width:100%}.integration-details .member-summary-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.integration-details .member-summary-kpi{min-width:0}.integration-details .member-summary-kpi-value{white-space:normal;overflow-wrap:anywhere;word-break:keep-all}.integration-details .panel{min-width:0;max-width:100%;padding:14px 16px;overflow-x:hidden}.integration-details .table-wrap{max-width:100%;overflow-x:hidden}.integration-details .admin-table{table-layout:fixed;width:100%;min-width:0}.integration-details .admin-table th,.integration-details .admin-table td{white-space:normal;overflow-wrap:anywhere;word-break:keep-all}.integration-details .member-active-filter-chip{white-space:normal;overflow-wrap:anywhere;word-break:keep-all;max-width:100%;height:auto;min-height:34px;padding-top:6px;padding-bottom:6px;line-height:1.35}.integration-details summary{min-height:56px;color:var(--foreground);cursor:pointer;padding:16px;font-weight:900}.integration-details summary::marker{color:var(--accent)}.integration-details[open]{padding-bottom:16px}.integration-details[open] summary{border-bottom:1px solid var(--line-soft);margin-bottom:12px}.integration-section{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;gap:12px;margin:0 16px 12px;padding:16px;display:grid}.integration-section:last-child{margin-bottom:0}.integration-section h3{margin:0}.integration-subforms{flex-direction:column;gap:16px;display:flex}.integration-subform{border:1px solid var(--line-soft);background:var(--surface-soft,#00000004);border-radius:8px;flex-direction:column;gap:14px;padding:16px;display:flex}.integration-subform h4{color:var(--heading,#1e293b);margin:0;font-size:.95rem;font-weight:700}.integration-settings-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:14px;display:grid}.integration-full-field{flex-direction:column;gap:6px;width:100%;display:flex}.integration-section .label{box-sizing:border-box;flex-direction:column;align-items:stretch;gap:6px;width:100%;min-width:0;display:flex}.integration-section .label>input,.integration-section .label>textarea{box-sizing:border-box;width:100%}.secret-setting-field{gap:8px;display:grid}.secret-status{color:var(--muted);font-size:.9rem;font-weight:700}.clear-secret-row{color:var(--muted);align-items:center;gap:8px;font-size:.92rem;font-weight:700;display:inline-flex}.clear-secret-row input{width:18px;height:18px;accent-color:var(--accent)}.search-form{background:0 0;border:0;grid-template-columns:minmax(220px,1fr) auto;gap:10px;padding:0;display:grid}.member-search-panel{border:1px solid var(--line-soft);background:#ffffffb8;border-radius:8px;gap:14px;margin-bottom:14px;padding:18px;display:grid}.member-search-panel-title{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem;font-weight:900}.member-search-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.member-search-field{gap:6px;display:grid}.member-search-field.checkbox-field{grid-template-columns:auto auto 1fr;align-items:center}.member-search-field.checkbox-field input{margin:0}.member-search-field-wide{grid-column:1/-1}.member-search-label{color:var(--muted);font-size:.82rem;font-weight:800}.member-search-date-range{align-items:center;gap:8px;display:flex}.member-search-date-range .input{flex:1 1 0;min-width:0}.member-search-date-sep{color:var(--muted);flex-shrink:0;font-weight:800}.member-search-actions{justify-content:flex-end;gap:10px;display:flex}.announcement-add-all-button{margin-right:auto}.member-search-main-row{align-items:flex-end;gap:12px;display:flex}.member-search-field-keyword{flex:1}.member-search-toggle-btn{white-space:nowrap;align-items:center;gap:6px;height:52px;display:inline-flex}.member-search-grid-detailed{border-top:1px dashed var(--line-soft);margin-top:12px;padding-top:16px}.member-no-cell{align-items:center;gap:6px;display:flex}.badge-rfid{color:#0b57d0;letter-spacing:.02em;background:#e6f0fa;border:1px solid #c2e7ff;border-radius:4px;justify-content:center;align-items:center;padding:2px 6px;font-size:.72rem;font-weight:800;display:inline-flex}.member-active-filters{color:var(--muted);align-items:center;gap:10px;margin:-4px 0 14px;font-size:.84rem;font-weight:800;display:flex}.member-active-filter-chip{border:1px solid var(--accent);background:var(--accent-soft);min-height:34px;color:var(--accent);font:inherit;cursor:pointer;border-radius:999px;padding:0 12px}.sms-history-stack{gap:14px;margin-bottom:18px;display:grid}.sms-summary-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.sms-summary-kpi{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;box-shadow:none}.sms-summary-kpi:not(button){cursor:default}.sms-summary-kpi:hover,.sms-summary-kpi:focus-visible{border-color:var(--accent);background:var(--accent-soft);outline:none}.sms-purpose-summary{padding:18px}.sms-purpose-summary .table-wrap{box-shadow:none}.sms-purpose-summary .count-button{min-height:32px}.sms-active-filters{margin:0}.sms-purpose-summary h3{margin:0 0 12px}.announcement-compact-panel{padding:10px}.announcement-section-head{box-shadow:none;align-items:center;padding:6px 8px}.announcement-section-head h3{margin:0;font-size:.88rem}.announcement-section-head p{margin:1px 0 0;font-size:.76rem;line-height:1.3}.announcement-section-head .button{min-height:28px;padding:2px 8px;font-size:.78rem}.announcement-channel-head{padding-right:8px}.announcement-channel-head .category-filter{flex-direction:column;align-items:flex-end;gap:6px;margin-bottom:0;margin-left:auto;margin-right:0;display:flex}.announcement-channel-head .category-filter .filter-chip{white-space:nowrap;width:max-content}.announcement-compact-panel .member-search-panel{gap:8px;padding:8px}.announcement-compact-panel .announcement-member-search .member-search-main-row{align-items:center;gap:6px}.announcement-compact-panel .announcement-member-search .member-search-grid{gap:8px}.announcement-compact-panel .announcement-member-search .member-search-grid-detailed{margin-top:8px;padding-top:10px}.announcement-compact-panel .announcement-member-search .member-search-field{gap:3px;min-width:0}.announcement-compact-panel .announcement-member-search .member-search-label{font-size:.72rem}.announcement-compact-panel .announcement-member-search .input{min-height:32px;padding:4px 8px;font-size:.82rem}.announcement-compact-panel .announcement-member-search .member-search-toggle-btn{height:32px;min-height:32px;padding:0 10px;font-size:.76rem}.announcement-compact-panel .announcement-member-search .member-search-date-range{gap:4px}.announcement-compact-panel .announcement-member-search .member-search-date-sep{font-size:.76rem}.announcement-compact-panel .announcement-member-search .member-search-actions{flex-wrap:wrap;gap:6px}.announcement-compact-panel .announcement-member-search .member-search-actions .button{min-height:30px;padding:4px 10px;font-size:.76rem}.announcement-compact-panel .pagination{margin-top:6px}.announcement-course-panel .section-head{box-shadow:none}.announcement-course-head{background:var(--surface-muted);align-items:center;padding:8px 10px}.announcement-course-summary{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.announcement-course-summary span{border:1px solid var(--line-soft);min-height:22px;color:var(--foreground);background:#fff;border-radius:999px;align-items:center;padding:0 7px;font-size:.72rem;font-weight:700;display:inline-flex}.announcement-course-table-wrap{min-width:0;max-width:100%;overflow-x:hidden}.announcement-course-table-wrap .admin-table{table-layout:fixed;width:100%;min-width:0;max-width:100%}.announcement-course-table-wrap .admin-table th,.announcement-course-table-wrap .admin-table td{overflow:hidden}.announcement-course-table-wrap .announcement-course-title-col{width:auto}.announcement-course-table-wrap .announcement-course-count-col{width:56px}.announcement-course-table-wrap .announcement-course-action-col{width:72px}.announcement-targets-table-wrap{min-width:0;max-width:100%;overflow-x:hidden}.announcement-targets-table-wrap .admin-table{table-layout:fixed;width:100%;min-width:0;max-width:100%}.announcement-targets-table-wrap .admin-table th,.announcement-targets-table-wrap .admin-table td{padding:4px 6px;font-size:.76rem;overflow:hidden}.announcement-targets-table-wrap .announcement-target-name-col{width:18%}.announcement-targets-table-wrap .announcement-target-phone-col{width:28%}.announcement-targets-table-wrap .announcement-target-source-col{width:auto}.announcement-targets-table-wrap .announcement-target-action-col{width:64px}.announcement-targets-table-wrap .announcement-target-source-cell{word-break:break-word;white-space:normal}.announcement-targets-table-wrap .admin-table td .button{min-height:24px;padding:2px 6px;font-size:.72rem}.announcement-split-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}@media (max-width:1024px){.announcement-split-layout{grid-template-columns:1fr}}.announcement-left-col,.announcement-right-col{flex-direction:column;gap:12px;display:flex}.announcement-subtab-bar{border-bottom:2px solid var(--line-soft,#e9ecef);gap:4px;margin-bottom:8px;display:flex}.announcement-subtab-btn{color:var(--muted,#6c757d);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:6px 12px;font-size:.84rem;font-weight:700;transition:all .15s ease-in-out}.announcement-subtab-btn:hover{color:var(--foreground,#212529)}.announcement-subtab-btn.active{color:var(--color-primary,#1971c2);border-bottom-color:var(--color-primary,#1971c2)}.announcement-horizontal-tokens{flex-wrap:wrap;gap:4px;margin-bottom:0;display:flex}.announcement-compose-body{gap:10px;display:grid}.announcement-token-block{gap:6px;display:grid}.announcement-token-toolbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.announcement-token-toolbar-label{color:var(--muted);font-size:.76rem;font-weight:700}.announcement-token-action.button{min-height:28px;box-shadow:none;padding:0 10px;font-size:.76rem}.announcement-token-chip{border:1px solid var(--line-soft,#dee2e6);min-height:26px;color:var(--foreground);font:inherit;cursor:pointer;box-shadow:none;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:.74rem;font-weight:600;transition:border-color .14s,background .14s;display:inline-flex}.announcement-token-chip strong{font-family:var(--font-mono,ui-monospace, monospace);color:#1971c2;font-size:.72rem;font-weight:700}.announcement-token-chip span{color:var(--muted,#6c757d);font-weight:600}.announcement-token-chip:hover{border-color:var(--accent);background:var(--accent-soft,#eef6f3)}.announcement-token-chip.inserted{background:#ebfbee;border-color:#40c057}.announcement-token-chip.inserted strong{color:#2b8a3e}.announcement-compose-panel{gap:6px}.announcement-compose-head{margin-bottom:0;padding:6px 8px}.announcement-compose-head h4{margin:0;font-size:.84rem}.announcement-alimtalk-body{gap:10px;display:grid}.announcement-alimtalk-head{box-shadow:none;background:0 0;border:0;margin-bottom:0;padding:4px 0}.announcement-alimtalk-head h4{margin:0;font-size:.84rem}.announcement-alimtalk-empty{padding:8px 0;font-size:.82rem}.announcement-alimtalk-select.input{min-height:32px;padding:4px 8px;font-size:.82rem}.announcement-sms-preview-list{gap:8px;min-width:0;max-height:200px;display:grid;overflow:hidden auto}.announcement-sms-preview-item{border:1px solid var(--line-soft);background:var(--surface-muted,#f8f9fa);border-radius:6px;min-width:0;padding:8px 10px}.announcement-sms-preview-meta{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:4px;font-size:.82rem;display:flex}.announcement-sms-preview-meta strong{font-size:.82rem}.announcement-sms-preview-body{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font:inherit;color:var(--foreground);margin:0;font-size:.78rem;line-height:1.4}.announcement-alimtalk-preview{border:1px solid var(--line-soft);background:var(--surface-muted,#f8f9fa);border-radius:6px;padding:8px 10px}.announcement-alimtalk-preview strong{margin-bottom:4px;font-size:.76rem;display:block}.announcement-alimtalk-preview pre{white-space:pre-wrap;margin:0;font-size:.78rem;line-height:1.4}.announcement-alimtalk-sample{gap:6px;display:grid}.announcement-alimtalk-sample-label{font-size:.85rem;display:block}.announcement-alimtalk-raw{font-size:.78rem}.announcement-alimtalk-raw summary{cursor:pointer;color:var(--muted,#64748b);-webkit-user-select:none;user-select:none}.announcement-alimtalk-raw pre{background:var(--surface-muted,#f8f9fa);border:1px solid var(--line-soft,#e2e8f0);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:240px;margin:6px 0 0;padding:8px 10px;font-size:.78rem;line-height:1.4;overflow:auto}.announcement-alimtalk-map{gap:8px;display:grid}.announcement-alimtalk-map-wrap{min-width:0;max-width:100%;overflow-x:hidden}.announcement-alimtalk-map-table.admin-table{table-layout:fixed;width:100%;min-width:0;max-width:100%}.announcement-alimtalk-map-table th,.announcement-alimtalk-map-table td{vertical-align:middle;padding:4px 6px;font-size:.76rem;overflow:hidden}.announcement-alimtalk-var-col{width:28%}.announcement-alimtalk-value-col{width:auto}.announcement-alimtalk-action-col{width:64px}.announcement-alimtalk-var-cell{font-family:var(--font-mono,ui-monospace, monospace);color:#1971c2;word-break:break-all;font-weight:700}.announcement-alimtalk-map-input.input{min-height:28px;padding:2px 6px;font-size:.78rem}.announcement-alimtalk-map-table tr.is-focused{background:#f1f7ff}.announcement-alimtalk-map .announcement-token-chip:disabled{opacity:.45;cursor:not-allowed}.announcement-compact-panel .category-filter .filter-chip{min-height:24px;padding:2px 8px;font-size:.76rem}.announcement-compact-panel .category-filter .filter-chip-count{font-size:.7rem}.announcement-compact-panel .compact-table th,.announcement-compact-panel .compact-table td{padding:5px 7px;font-size:.82rem}.announcement-compact-panel .compact-table td .button{white-space:nowrap;min-height:26px;padding:2px 7px;font-size:.76rem}.sms-template-editor-grid{grid-template-columns:minmax(230px,3fr) minmax(0,7fr);align-items:start;gap:16px;display:grid}.sms-token-sidebar{background:var(--surface-muted,#f8f9fa);border:1px solid var(--line-soft,#e9ecef);border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.sms-token-sidebar-head h4{color:var(--foreground);margin:0 0 4px;font-size:.92rem;font-weight:700}.sms-token-sidebar-head p{color:var(--muted,#6c757d);margin:0;font-size:.78rem;line-height:1.35}.sms-token-chips{flex-direction:column;gap:8px;display:flex}.sms-token-chip{border:1px solid var(--line-soft,#dee2e6);width:100%;color:var(--foreground);cursor:pointer;text-align:left;background:#fff;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.82rem;transition:all .15s ease-in-out;display:flex}.sms-token-chip:hover{border-color:var(--brand-primary,#228be6);background:#f1f7ff;transform:translateY(-1px);box-shadow:0 2px 4px #0000000a}.sms-token-chip.inserted{color:#2b8a3e;background:#ebfbee;border-color:#40c057;font-weight:700}.sms-token-chip-code{font-family:var(--font-mono,monospace);color:#1971c2;font-weight:700}.sms-token-chip.inserted .sms-token-chip-code{color:#2b8a3e}.sms-token-chip-label{color:var(--muted,#6c757d);font-size:.78rem}.sms-token-chip-badge{color:#fff;background:#40c057;border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:600}.sms-template-input-panel{flex-direction:column;gap:8px;display:flex}@media (max-width:768px){.sms-template-editor-grid{grid-template-columns:1fr}}.sms-period-row{grid-template-columns:minmax(220px,1fr) 180px 180px;align-items:end;gap:12px;display:grid}.sms-period-presets{flex-wrap:wrap;gap:8px;display:flex}.sms-search-row{grid-template-columns:180px minmax(0,1fr) auto;align-items:end;display:grid}.sms-search-type{margin-bottom:0}.sms-search-actions{margin-top:-2px}.sms-detail-cell{background:#fafbfc;border-bottom:1px solid #dee2e6;padding:12px 16px}.sms-history-table{table-layout:fixed;width:100%}.sms-history-table th,.sms-history-table td{font-size:inherit;line-height:inherit}.sms-history-table th:first-child,.sms-history-table td:first-child{width:60px}.sms-history-table th:nth-child(2),.sms-history-table td:nth-child(2){white-space:nowrap;width:90px}.sms-history-table th:nth-child(3),.sms-history-table td:nth-child(3){white-space:nowrap;width:120px}.sms-history-table th:nth-child(4),.sms-history-table td:nth-child(4){white-space:nowrap;width:200px}.sms-history-table th:nth-child(5),.sms-history-table td:nth-child(5),.sms-history-table th:nth-child(6),.sms-history-table td:nth-child(6),.sms-history-table th:nth-child(7),.sms-history-table td:nth-child(7){white-space:nowrap;width:90px}.sms-history-table th:nth-child(8),.sms-history-table td:nth-child(8){white-space:nowrap;width:130px}.sms-history-table th:nth-child(9),.sms-history-table td:nth-child(9){width:auto}.sms-history-row.expanded,.sms-history-row.expanded>td{background:#fffaf0}.sms-detail-panel{border:1px solid var(--line-soft);background:var(--panel-bg);border-radius:8px;gap:10px;padding:14px 16px;font-size:.86rem;line-height:1.55;display:grid}.sms-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sms-detail-head h4{margin:0;font-size:.95rem}.sms-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 18px;display:grid}.sms-detail-row{word-break:break-word;margin-bottom:6px}.sms-detail-row-inline{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sms-detail-content{background:#fff;border:1px solid #e9ecef;border-radius:6px;grid-column:1/-1;padding:10px 12px}.sms-detail-content strong{margin-bottom:4px;display:block}.sms-detail-content pre{white-space:pre-wrap;font:inherit;margin:0}.message-template-preview-text{white-space:pre-wrap;color:var(--foreground);font:inherit;background:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;padding:12px;font-size:.92rem;line-height:1.55}.admin-tabs{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:6px;margin-bottom:14px;padding:6px;display:inline-flex}.admin-tab-button{min-height:42px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 18px;font-weight:900}.admin-tab-button.active,.admin-tab-button:hover{background:var(--accent-soft);color:var(--accent)}.member-summary-dashboard{gap:14px;display:grid}.member-summary-head{align-items:center;margin-bottom:0}.member-summary-head p{margin:4px 0 0}.member-summary-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.course-member-summary-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.course-enrollment-summary-kpis{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:16px}.enrollment-list-row{cursor:pointer}.enrollment-list-row:hover td{background:var(--accent-soft)}.enrollment-history-list{gap:6px;display:grid}.enrollment-history-item{border:1px solid var(--line-soft);background:var(--surface);border-radius:6px;padding:8px 10px}.seat-picker-dialog{width:min(680px,100vw - 32px)}.seat-picker-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin-top:12px;display:grid}.seat-picker-chip{border:1px solid var(--line-soft);background:var(--surface);min-height:62px;color:var(--foreground);text-align:center;border-radius:8px;gap:4px;padding:8px;display:grid}.seat-picker-chip strong{font-size:1rem}.seat-picker-chip span{color:var(--muted);font-size:.72rem}.seat-picker-chip.available{cursor:pointer;border-color:var(--success);background:color-mix(in srgb, var(--success) 8%, var(--surface))}.seat-picker-chip.available:hover,.seat-picker-chip.available.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.seat-picker-chip.occupied{cursor:not-allowed;opacity:.62}.seat-picker-legend{background:var(--surface-soft,#00000008);color:var(--foreground-soft,#4b5563);border-radius:6px;flex-wrap:wrap;gap:12px;margin-top:10px;margin-bottom:6px;padding:8px 12px;font-size:.8rem;display:flex}.seat-picker-legend .legend-item{align-items:center;gap:6px;display:inline-flex}.seat-picker-legend .legend-badge{border-radius:3px;width:12px;height:12px;display:inline-block}.seat-picker-legend .legend-item.self .legend-badge{background:#eff6ff;border:2px solid #2563eb}.seat-picker-legend .legend-item.swap-target .legend-badge{background:#fffbeb;border:2px solid #d97706}.seat-picker-legend .legend-item.move-target .legend-badge{border:2px solid var(--accent,#0284c7);background:var(--accent-soft,#e0f2fe)}.seat-picker-legend .legend-item.occupied .legend-badge{border:1px solid var(--line-soft,#d1d5db);background:var(--surface,#f9fafb)}.seat-picker-chip.occupied.swappable{cursor:pointer;opacity:.88;border-color:#d1d5db;transition:border-color .15s,box-shadow .15s}.seat-picker-chip.occupied.swappable:hover{opacity:1;background:#fffdf5;border-color:#d97706;box-shadow:0 0 0 2px #d9770633}.seat-picker-chip.self{cursor:not-allowed;opacity:1;box-shadow:0 0 0 2px #2563eb33;background:#eff6ff!important;border:2px solid #2563eb!important}.seat-picker-chip.self strong{color:#1d4ed8}.seat-picker-chip.self span{color:#2563eb;font-weight:600}.seat-picker-chip.swap-target{cursor:pointer;opacity:1;animation:2s ease-in-out infinite seat-pulse;box-shadow:0 0 0 3px #d977064d;background:#fffbeb!important;border:2px solid #d97706!important}.seat-picker-chip.swap-target strong{color:#b45309}.seat-picker-chip.swap-target span{color:#d97706;font-weight:600}.seat-picker-chip.move-target{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent,#0284c7) 30%, transparent);border:2px solid var(--accent,#0284c7)!important;background:var(--accent-soft,#e0f2fe)!important}.seat-picker-chip.move-target span{color:var(--accent-dark,#0369a1);font-weight:600}@keyframes seat-pulse{0%,to{box-shadow:0 0 0 3px #d977064d}50%{box-shadow:0 0 0 5px #d977068c}}.member-summary-kpi{border:1px solid var(--line-soft);border-left:4px solid var(--accent);background:var(--surface);border-radius:8px;gap:8px;min-height:96px;padding:12px;display:grid}button.member-summary-kpi{width:100%;color:inherit;font:inherit;text-align:left}.member-summary-kpi.clickable{cursor:pointer}.member-summary-kpi.clickable:hover:not(:disabled),.member-summary-kpi.clickable:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent)}.member-summary-kpi.clickable:disabled{cursor:default}.member-summary-kpi.warn{border-left-color:#b7791f}.member-summary-kpi.accent{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--panel-bg))}.member-summary-kpi.accent span,.member-summary-kpi.accent strong{color:var(--accent)}.member-summary-kpi span{color:var(--muted);font-size:.78rem;font-weight:900}.member-summary-kpi strong{color:var(--foreground);font-size:1.5rem;line-height:1}.member-summary-kpi-value{color:var(--foreground);white-space:nowrap;font-size:1.5rem;font-weight:700;line-height:1.15}.member-summary-kpi-value .unit{font-size:.78rem;font-weight:700}.member-summary-kpi.accent .member-summary-kpi-value{color:var(--accent)}.member-summary-grid{grid-template-columns:1fr;gap:14px;display:grid}.member-summary-support-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.member-summary-card{min-width:0}.member-summary-card h3{margin:0 0 12px}.member-summary-card:has(.member-summary-card-desc) h3{margin:0 0 4px}.member-summary-card-desc{margin:0 0 10px;font-size:.82rem;line-height:1.35}.member-summary-table-wrap{box-shadow:none}.member-summary-table{min-width:640px}.distribution-sample-split{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.distribution-sample-pane,.distribution-sample-pane .member-summary-table{min-width:0}.distribution-sample-label{margin:0 0 8px;font-size:.85rem;font-weight:700}.course-accordion-counts{margin-left:8px;font-size:.85rem;font-weight:500}.member-distribution-cell{grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:8px;display:grid}.member-distribution-cell small{width:92px;color:var(--muted);white-space:nowrap;flex-shrink:0}.member-distribution-bar{background:#e7efeb;border-radius:999px;height:10px;overflow:hidden}.member-distribution-bar span{border-radius:inherit;background:var(--accent);height:100%;display:block}.course-distribution-block{gap:12px;display:grid}.distribution-proportion{gap:10px;display:grid}.distribution-proportion-bar{background:#e7efeb;border-radius:999px;height:14px;display:flex;overflow:hidden}.distribution-proportion-segment{min-width:0;height:100%;display:block}.distribution-proportion-legend{flex-wrap:wrap;gap:8px 16px;display:flex}.distribution-proportion-legend-item{color:var(--muted);align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.distribution-proportion-legend-item strong{color:var(--foreground);font-weight:800}.distribution-proportion-dot{border-radius:999px;flex-shrink:0;width:10px;height:10px}.member-summary-excluded,.member-quality-list{gap:10px;display:grid}.member-summary-excluded>span,.member-summary-excluded-row,.member-quality-row{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:6px;justify-content:space-between;gap:12px;padding:10px 12px;font-weight:800;display:flex}.member-summary-excluded-row,.member-quality-filter-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer}.member-age-excluded-filter-button:hover,.member-age-excluded-filter-button:focus-visible,.member-quality-filter-button:hover,.member-quality-filter-button:focus-visible{border-color:var(--accent);background:var(--accent-soft);outline:none}.member-summary-empty{border:1px solid var(--line-soft);background:var(--surface-muted);color:var(--muted);text-align:center;border-radius:8px;padding:16px;font-weight:900}.inline-search{align-items:center;gap:8px;display:flex}.inline-search .input{min-width:220px}.compact-table th,.compact-table td{padding:8px 10px}.member-summary-card .compact-table th,.member-summary-card .compact-table td{white-space:nowrap}.member-summary-card .compact-table th.cell-wrap,.member-summary-card .compact-table td.cell-wrap{white-space:normal}.cell-nowrap{white-space:nowrap}.cell-wrap{white-space:normal}.course-list-table{font-size:.82rem}.course-list-table th{white-space:nowrap;font-size:.78rem}.course-list-table:not(.enrollment-dialog-table) th:first-child,.course-list-table:not(.enrollment-dialog-table) td:first-child{white-space:normal;width:220px;min-width:220px;max-width:220px}.course-list-table:not(.enrollment-dialog-table) td{white-space:nowrap}.course-list-table:not(.enrollment-dialog-table) td:first-child{white-space:normal}.course-list-table .button.small{min-height:34px;padding:0 8px;font-size:.78rem}.course-list-table .actions.compact{flex-wrap:nowrap;gap:4px}.course-list-period,.course-list-schedule{white-space:nowrap}.member-import-panel{gap:14px;display:grid}.member-import-file-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.member-import-summary{flex-wrap:wrap;gap:8px;display:flex}.member-import-summary span,.member-import-result{border:1px solid var(--line-soft);background:var(--surface-muted);color:var(--foreground);border-radius:6px;padding:8px 10px;font-size:.92rem;font-weight:800}.member-import-result{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.member-import-mapping-grid{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;display:grid}.member-import-excluded{margin:0;line-height:1.5}.member-import-table-wrap{max-height:520px}.member-import-table{min-width:980px}.member-import-table td:nth-child(6){white-space:normal;min-width:240px}.compact-select{min-height:42px;padding:8px 10px}.form-grid{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px;padding:16px;display:grid}.form-grid-wide{grid-column:1/-1}.date-range-row{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.schedule-editor{gap:12px;display:grid}.schedule-editor-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.schedule-editor-head h3{margin:0;font-size:1rem}.schedule-list{gap:10px;display:grid}.schedule-row{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(120px,1fr) auto;align-items:end;gap:10px;display:grid}.textarea{resize:vertical;min-height:120px}.table-wrap{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-inset);border-radius:8px;overflow-x:auto}.admin-table{min-width:760px}.access-log-table{min-width:1480px;font-size:.76rem}.access-log-table th,.access-log-table td{white-space:nowrap;padding:8px 10px}.access-log-table th{font-size:.72rem}.access-log-table td small{white-space:nowrap;margin-left:4px;display:inline}.access-log-table .button{min-height:34px;padding:0 10px;font-size:.76rem}.pagination{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;display:flex}.pagination-summary{color:var(--muted);font-size:.84rem;font-weight:800}.pagination-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;display:flex}.pagination-controls .button{height:30px!important;min-height:30px!important;padding:0 8px!important;font-size:.8rem!important}.pagination-button{min-width:30px!important;padding:0 6px!important}.pagination-button.active{border-color:var(--accent);background:var(--accent-soft);color:#12352e;box-shadow:inset 0 0 0 1px var(--accent)}.pagination-jump{align-items:center;gap:4px;margin-left:8px;display:flex}.pagination-jump-input{text-align:center;border-radius:6px;font-size:.8rem;width:55px!important;height:30px!important;min-height:30px!important;padding:0 6px!important}.pagination-jump-button{height:30px!important;min-height:30px!important;padding:0 8px!important;font-size:.8rem!important}@media (max-width:980px){.admin-layout,.admin-shell{grid-template-columns:1fr}.admin-sidebar{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.system-health-grid,.system-kpi-grid,.system-charts-row,.system-monitoring-grid,.system-history-grid,.member-summary-kpis,.sms-summary-kpis,.sms-filter-grid,.sms-period-row,.course-member-summary-kpis,.member-summary-grid,.member-summary-support-grid,.distribution-sample-split,.system-log-expanded-grid{grid-template-columns:1fr}.course-enrollment-summary-kpis{grid-template-columns:repeat(6,minmax(92px,1fr));overflow-x:auto}.system-monitoring-head{display:grid}.system-monitoring-controls{flex-direction:column;align-items:stretch}.inline-search{flex-direction:column;align-items:stretch;width:100%}.sms-search-row{display:grid}.sms-search-type{flex:auto}.inline-search .input{min-width:0}}@media (max-width:760px){html{font-size:18px}body{background:linear-gradient(180deg, #f7faf7 0, var(--background) 280px, #edf4ef 100%)}.grid,.admin-layout,.topbar{grid-template-columns:1fr;display:grid}.admin-header-link{justify-self:end}.form-grid,.integration-subforms,.integration-settings-grid,.backup-workflows,.backup-field-row,.backup-restore-grid{grid-template-columns:1fr}.backup-field-row .button,.backup-restore-actions .button{width:100%}.date-range-row,.schedule-row,.term-default-head,.term-default-summary{grid-template-columns:1fr}.term-default-head{display:grid}.section-head,.section-actions,.search-form,.course-search-row{grid-template-columns:1fr;display:grid}.announcement-course-head{align-items:stretch}.announcement-course-head .actions{justify-content:flex-start}.course-term-action{justify-self:start}.course-term-select{width:min(260px,100%);display:grid}.course-term-select .input{width:100%}.current-term-panel{flex-direction:column;align-items:flex-start}.current-term-panel p{text-align:left}.summary-list div{display:grid}}.course-accordion-list{gap:10px;margin-top:8px;display:grid}.course-accordion-item{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;overflow:hidden}.course-accordion-header{background:var(--surface-muted);text-align:left;cursor:pointer;border:none;justify-content:space-between;align-items:center;width:100%;padding:14px 18px;font-family:inherit;font-weight:700;transition:background .2s;display:flex}.course-accordion-header:hover{background:var(--line-soft)}.category-badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:.8rem;font-weight:800;display:inline-block}.accessible-disabled-wrapper{display:inline-block}.course-accordion-header .category-badge{margin-left:8px}.course-accordion-header .accordion-icon{color:var(--muted);font-size:.9rem}.course-accordion-content{border-top:1px solid var(--line-soft);padding:16px}.member-summary-table td.clickable-cell{cursor:pointer;transition:background-color .16s,color .16s;position:relative}.member-summary-table td.clickable-cell:hover{color:var(--primary-dark);background-color:var(--primary-soft)!important}.member-summary-table td.clickable-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;color:var(--primary-dark);background-color:var(--primary-soft)!important}.attendance-calendar-container{background:var(--surface);border:1px solid var(--line-soft);border-radius:12px;max-width:440px;margin-bottom:20px;padding:12px 16px;transition:all .2s;box-shadow:0 4px 20px #0000000a}.attendance-calendar-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.attendance-calendar-title-wrapper{align-items:center;gap:10px;display:flex}.attendance-calendar-title{color:var(--foreground);text-align:center;min-width:100px;font-size:1.05rem;font-weight:700}.attendance-calendar-nav{gap:4px;display:flex}.attendance-calendar-btn{background:var(--surface-muted);border:1px solid var(--line-soft);cursor:pointer;width:28px;height:28px;color:var(--foreground);border-radius:6px;justify-content:center;align-items:center;font-size:.8rem;transition:all .15s;display:flex}.attendance-calendar-btn:hover:not(:disabled){background:var(--line-soft);border-color:var(--line)}.attendance-calendar-btn:disabled{opacity:.4;cursor:not-allowed}.attendance-calendar-toggle-btn{background:var(--surface-muted);border:1px solid var(--line-soft);cursor:pointer;color:var(--muted);border-radius:6px;padding:4px 10px;font-size:.8rem;font-weight:500;transition:all .15s}.attendance-calendar-toggle-btn:hover{background:var(--line-soft);color:var(--foreground)}.attendance-calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.attendance-calendar-weekday{text-align:center;color:var(--muted);border-bottom:1px solid var(--line-soft);padding:4px 0;font-size:.75rem;font-weight:600}.attendance-calendar-weekday:first-child{color:var(--danger)}.attendance-calendar-weekday:last-child{color:#2563eb}.attendance-calendar-day-cell{cursor:pointer;border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:44px;padding:4px 2px;transition:all .15s;display:flex;position:relative}.attendance-calendar-day-cell:hover:not(.muted):not(.active){background:var(--background-strong)}.attendance-calendar-day-number{font-size:.88rem;font-weight:500}.attendance-calendar-day-cell.muted{color:var(--line);cursor:pointer}.attendance-calendar-day-cell.muted:hover{background:var(--surface-muted)}.attendance-calendar-day-cell.today{border-color:var(--accent)}.attendance-calendar-day-cell.today .attendance-calendar-day-number{color:var(--accent);font-weight:700}.attendance-calendar-day-cell.active{border-color:var(--accent);box-shadow:0 3px 8px #2c6b5d33;background:var(--accent)!important}.attendance-calendar-day-cell.active .attendance-calendar-day-number{font-weight:700;color:var(--surface)!important}.attendance-calendar-day-cell.active.today{border-color:var(--accent)}.attendance-calendar-day-badge{color:var(--surface);text-align:center;background:#2563eb;border-radius:8px;min-width:15px;padding:0 4px;font-size:.65rem;font-weight:700;box-shadow:0 1px 3px #2563eb26}.attendance-calendar-day-cell.active .attendance-calendar-day-badge{background:var(--surface);color:#2563eb;box-shadow:none}.attendance-bulk-dropdown{background:var(--panel-bg);border:1px solid var(--border);z-index:10;border-radius:6px;flex-direction:column;min-width:120px;margin-top:4px;padding:4px 0;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.attendance-bulk-dropdown-item{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:8px 12px;font-size:.8rem;font-weight:700;transition:background-color .15s}.attendance-bulk-dropdown-item:hover{background-color:var(--bg)}.attendance-bulk-dropdown-item.attended{color:#2e7d32}.attendance-bulk-dropdown-item.absent{color:#d32f2f}.attendance-bulk-dropdown-item.excused{color:#0288d1}.admin-table th.attendance-session-col--selected,.admin-table td.attendance-session-col--selected{background:var(--accent-soft);border-left:2px solid var(--accent);border-right:2px solid var(--accent)}.admin-table td.attendance-session-col--canceled{opacity:.6}.admin-table td.attendance-session-col--selected.attendance-session-col--canceled{background:color-mix(in srgb, var(--accent-soft) 55%, #f5f5f5)}.attendance-session-current-badge{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));vertical-align:middle;border-radius:999px;margin-left:4px;padding:1px 6px;font-size:.6rem;font-weight:700;line-height:1.4;display:inline-block}.attendance-record-cell{flex-direction:row;justify-content:center;align-items:center;gap:2px;display:flex}.attendance-record-memo-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;align-items:center;padding:0;display:flex}.attendance-record-memo-btn--filled{color:#ed6c02}.attendance-record-memo-icon{display:block}.attendance-status-select{border:1px solid var(--border);cursor:pointer;background:var(--surface);border-radius:4px;width:60px;height:24px;padding:2px;font-size:.8rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.badge-success{color:var(--success);background:#effaf1;border-color:#b9dcc3}.badge-danger{color:var(--danger);background:#fff1f0;border-color:#f0b7b2}.badge-warning{color:#92400e;background:#fff8eb;border-color:#f0d9a8}.badge-muted{color:#5b6470;white-space:nowrap;background:#f4f5f7;border-color:#d5d9de;padding:2px 8px;font-size:.78rem;font-weight:600}.backup-panel{gap:12px;padding:16px}.backup-panel .form-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:12px}.backup-panel .form-grid .label{flex-direction:column;gap:4px;margin-bottom:0;font-size:.85rem;display:flex}.backup-panel .form-grid .input{min-height:38px;padding:6px 10px;font-size:.9rem}.backup-panel .form-grid .checkbox-label{cursor:pointer;flex-direction:row;align-items:center;gap:8px;min-height:38px;font-weight:500}.backup-panel .form-grid .checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.backup-panel .form-actions{gap:8px;margin-top:4px;display:flex}.backup-panel .form-actions .button{min-height:38px;padding:8px 16px;font-size:.9rem}.backup-table-date{white-space:nowrap;font-size:.85rem}.backup-table-filename{white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;max-width:180px;font-size:.85rem;display:inline-block;overflow:hidden}.backup-action-btn{border:1px solid var(--line-soft);background:var(--surface);width:32px;height:32px;color:var(--foreground-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:inline-flex;min-width:0!important;padding:0!important}.backup-action-btn:hover{background:var(--surface-muted);color:var(--foreground)}.backup-action-btn.danger-btn{color:var(--danger);background:#fff7f6;border-color:#f0b7b2}.backup-action-btn.danger-btn:hover{color:#c92a2a;background:#ffe3e1}.weekly-operational-timetable{gap:16px;min-width:0;max-width:100%;display:grid}.timetable-top-bar{gap:14px;min-width:0;display:grid}.timetable-navigation{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.operational-summary-kpis{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.operational-summary-kpis .member-summary-kpi{min-height:78px}.operational-summary-kpi-canceled{border-left-color:#b7791f}.operational-summary-kpi-makeup{border-left-color:#277da1}.operational-summary-kpi-conflict{border-left-color:var(--danger)}@media (max-width:720px){.operational-summary-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.week-navigator{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.current-week-label{align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:flex}.relation-tag{border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:600}.relation-tag.before{color:#0369a1;background:#e0f2fe}.relation-tag.after{color:#475569;background:#f1f5f9}.timetable-controls{flex-direction:column;gap:12px;min-width:0;max-width:100%;display:flex}.space-selector-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;max-width:100%;padding-bottom:8px;display:flex}.space-tab-btn:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.space-tab-btn{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:600;display:flex}.space-tab-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.space-count-badge{background:color-mix(in srgb, var(--accent) 10%, var(--surface));min-height:18px;color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;padding:1px 5px;font-size:.7rem;font-weight:700;line-height:1.2;display:inline-flex}.space-count-badge.open-access{background:color-mix(in srgb, var(--info,#2563eb) 10%, var(--surface));color:var(--info,#2563eb)}.space-tab-btn.active .space-count-badge{background:color-mix(in srgb, var(--accent) 16%, var(--surface))}.conflict-dot{background:var(--danger);border-radius:50%;width:6px;height:6px;display:inline-block}.filter-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.operational-status-select{width:auto;min-width:140px}.operational-search-input{flex:240px;min-width:180px}@media (max-width:720px){.operational-status-select,.operational-search-input{flex-basis:100%;width:100%}}.timetable-grid-wrap{padding:0;overflow-x:auto}.timetable-grid-table{border-collapse:collapse;width:100%;min-width:700px}.timetable-grid-table th,.timetable-grid-table td{border:1px solid var(--line-soft);vertical-align:top;padding:8px}.timetable-grid-table th{background:var(--surface-muted);text-align:center;font-size:.8rem;font-weight:700}.timetable-grid-table th.time-col{width:70px}.timetable-grid-table td.time-cell{color:var(--muted);text-align:center;background:var(--surface-muted);font-size:.75rem;font-weight:600}.event-cell{height:64px;position:relative;overflow:visible;padding:4px!important}.event-card-item{text-align:left;cursor:pointer;z-index:1;border:1px solid #0000;border-radius:4px;margin:0;padding:4px 6px;font-size:.75rem;transition:transform .12s,box-shadow .12s;display:block;position:absolute;left:4px;right:4px;overflow:hidden}.event-card-item:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000014}.event-card-item.planned{color:#92400e;background:#fef3c7;border-color:#f59e0b}.event-card-item.scheduled{border-color:var(--accent);color:#164e63;background:#e6f2ed}.event-card-item.canceled{color:#64748b;background:#f1f5f9;border-color:#94a3b8;text-decoration:line-through}.event-card-item.makeup{color:#3730a3;background:#e0e7ff;border-color:#6366f1}.event-card-item.open-access{color:#15803d;background:#f0fdf4;border-color:#22c55e}.event-card-item.conflict{box-shadow:0 0 0 1px var(--danger);border-color:var(--danger)!important}.card-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.card-time{opacity:.85;font-size:.68rem}.conflict-badge{background:var(--danger);color:#fff;border-radius:2px;margin-top:2px;padding:0 3px;font-size:.6rem;display:inline-block}.drawer-backdrop{z-index:1000;background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.operational-schedule-drawer{border-radius:0;flex-direction:column;width:min(420px,100vw);height:100%;animation:.18s ease-out slideInRight;display:flex}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-title-area{align-items:center;gap:8px;display:flex}.drawer-title{margin:0;font-size:1.05rem}.btn-close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:1.4rem}.drawer-body{flex:1;padding:20px;overflow-y:auto}.info-grid{gap:16px;display:grid}.info-item{flex-direction:column;gap:4px;display:flex}.info-label{color:var(--muted);font-size:.75rem;font-weight:600}.info-value{font-size:.88rem;font-weight:700}.status-chip{border-radius:4px;padding:2px 8px;font-size:.72rem;font-weight:700}.status-chip.planned{color:#92400e;background:#fef3c7}.status-chip.scheduled{color:#164e63;background:#e6f2ed}.status-chip.canceled{color:#64748b;background:#f1f5f9}.status-chip.makeup{color:#3730a3;background:#e0e7ff}.status-chip.open-access{color:#15803d;background:#f0fdf4}.drawer-footer{border-top:1px solid var(--line);justify-content:flex-end;padding:16px 20px;display:flex}.ncp-template-row{cursor:pointer;transition:background-color .15s ease-in-out}.ncp-template-row:hover{background-color:var(--surface-subtle,#f8fafc)}.ncp-template-row.expanded{background-color:var(--surface-subtle,#f1f5f9)}.ncp-template-detail-row>td{border-bottom:1px solid var(--line-soft,#e2e8f0);padding:0}.ncp-template-detail{background-color:var(--surface-subtle,#f8fafc);border-top:1px solid var(--line-soft,#e2e8f0);padding:1rem 1.25rem}.ncp-template-detail-two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.ncp-template-detail-two-col>.panel{padding:10px 14px 14px}.ncp-template-detail-two-col>.panel>h4{margin:0 0 .5rem}@media (max-width:900px){.ncp-template-detail-two-col{grid-template-columns:1fr}}.ncp-template-detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem 1rem;font-size:.8125rem;display:grid}.ncp-template-content{white-space:pre-wrap;word-break:break-word;border:1px solid var(--line-soft,#e2e8f0);color:var(--fg-main,#1e293b);background-color:#fff;border-radius:.375rem;margin:0;padding:.75rem .875rem;font-family:inherit;font-size:.8125rem;line-height:1.5}.alimtalk-card-preview{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;width:100%;overflow:hidden;box-shadow:0 1px 3px #0000000d}.alimtalk-card-header{background:#fef01b;border-bottom:1px solid #ebd800;align-items:center;gap:.5rem;padding:.625rem .875rem;display:flex}.alimtalk-card-badge{color:#3c1e1e;font-size:.75rem;font-weight:700}.alimtalk-channel-name{color:#554000;font-size:.75rem;font-weight:500}.alimtalk-card-body{padding:.75rem .875rem}.alimtalk-extra-box{color:#4b5563;background:#f9fafb;border:1px solid #f3f4f6;border-radius:.25rem;padding:.375rem .5rem;font-size:.75rem}.alimtalk-card-buttons{background:#fafafa;border-top:1px solid #f3f4f6}.alimtalk-card-btn-item{color:#2563eb;text-align:center;border-bottom:1px solid #f0f0f0;justify-content:center;align-items:center;padding:.5rem;font-size:.8125rem;display:flex}.alimtalk-card-btn-item:last-child{border-bottom:none}
