:root{font-family:Inter,Pretendard,"Noto Sans KR",system-ui,sans-serif;color:#172033;background:#f4f7fb}*{box-sizing:border-box}body{margin:0}.shell{max-width:1080px;margin:auto;padding:40px 20px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:26px}.logo{width:42px;height:42px;border-radius:14px;background:#111827;color:#fbbf24;display:grid;place-items:center;font-weight:900}.card{background:white;border:1px solid #dfe6ef;border-radius:22px;padding:24px;box-shadow:0 14px 40px #0f172a0b}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.stack{display:grid;gap:14px}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tab,button,.btn{border:0;border-radius:12px;padding:11px 15px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.tab{background:#e9eef6;color:#526078}.tab.on,.primary{background:#111827;color:#fcd34d}.secondary{background:#e8effa;color:#1d4ed8}.danger{background:#fff0f2;color:#be123c}input{width:100%;padding:13px 14px;border:1px solid #d7dfeb;border-radius:12px;font-size:14px}label{font-size:12px;font-weight:800;color:#475569}.hint{font-size:12px;color:#64748b;line-height:1.6}.notice{border-radius:12px;padding:12px;font-size:12px;line-height:1.55}.ok{background:#ecfdf5;color:#047857}.err{background:#fff1f2;color:#be123c}.warn{background:#fffbeb;color:#92400e}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:10px;border-bottom:1px solid #edf1f6;vertical-align:top}.muted{color:#64748b}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.badge{padding:4px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:10px;font-weight:900}.mono{font-family:ui-monospace,monospace;white-space:pre-wrap;word-break:break-word}.sample{max-height:360px;overflow:auto;background:#f8fafc;padding:14px;border-radius:12px;font-size:12px;line-height:1.7}.hidden{display:none}@media(max-width:760px){.grid{grid-template-columns:1fr}.shell{padding:22px 12px}.card{padding:18px}}
select{padding:9px 10px;border:1px solid #d7dfeb;border-radius:10px;background:#fff;color:#334155;font-weight:800}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.kpi{border:1px solid #e5ebf3;background:#f8fafc;border-radius:16px;padding:14px}.kpi span{display:block;font-size:10px;font-weight:900;color:#64748b}.kpi strong{display:block;margin-top:4px;font-size:22px;line-height:1.15;color:#0f172a}.kpi small{display:block;margin-top:5px;font-size:10px;color:#64748b}.chart-list{display:grid;gap:7px;margin-top:14px}.chart-row{display:grid;grid-template-columns:42px minmax(120px,1fr) 100px;gap:8px;align-items:center;font-size:10px}.chart-date{color:#64748b;font-variant-numeric:tabular-nums}.chart-track{height:12px;border-radius:999px;background:#eef2f7;overflow:hidden;position:relative}.chart-track i,.chart-track b{position:absolute;left:0;top:0;height:100%;border-radius:999px}.chart-track i{background:#cbd5e1}.chart-track b{background:#1d4ed8;min-width:0}.chart-num{text-align:right;color:#64748b;white-space:nowrap}.score-bars{display:grid;gap:9px;margin-top:16px}.score-bars>div{display:grid;grid-template-columns:55px 1fr 32px;gap:9px;align-items:center;font-size:11px}.score-track{height:12px;border-radius:999px;background:#eef2f7;overflow:hidden}.score-track i{display:block;height:100%;border-radius:999px;background:#111827}.score-bars b{text-align:right;color:#334155}@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.kpi-grid{grid-template-columns:1fr}.chart-row{grid-template-columns:40px 1fr}.chart-num{grid-column:2;text-align:left}}
.big{font-size:28px;color:#0f172a}.quota-track{height:10px;border-radius:999px;background:#eef2f7;overflow:hidden;margin-top:12px}.quota-track i{display:block;height:100%;background:#1d4ed8;border-radius:999px}.turnstile-box{min-height:70px;margin-top:8px}.resource-detail{font-size:11px;color:#64748b}

.logo{flex-shrink:0;overflow:hidden;border-radius:11px;background:#09162c}.logo img{display:block;width:100%;height:100%;object-fit:contain;transform:scale(1.58)}

.consent-mark{display:inline-block;font-size:20px;font-weight:900}.consent-yes{color:#047857}.consent-no{color:#64748b}.research-user,.research-project{border:1px solid #dfe6ef;border-radius:12px;padding:14px;margin-top:12px}.research-user>summary,.research-project>summary{cursor:pointer;font-weight:800;overflow-wrap:anywhere;margin-bottom:10px}.research-table-scroll{overflow:auto}.research-table-scroll td:first-child{min-width:150px;overflow-wrap:anywhere}.research-table-scroll th{white-space:nowrap}

.activity-months{max-height:460px;overflow:auto}.activity-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.activity-calendar button{display:flex;flex-direction:column;gap:2px;padding:7px 2px;border-radius:7px}.activity-calendar small{font-size:10px}.activity-date.has-activity{background:#dbeafe}.activity-date[aria-pressed="true"]{outline:2px solid #1d4ed8}.activity-hours{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:12px 0}.activity-hours>div{display:flex;flex-direction:column;padding:7px;background:#f1f5f9;border-radius:7px;font-size:11px}

/* Compact administration; account and report layouts retain their sizing. */
.shell:has(.admin-layout){max-width:1440px}
.admin-layout{display:grid!important;grid-template-columns:150px minmax(0,1fr);align-items:start;gap:18px}
.admin-nav{position:sticky;top:16px;display:grid;gap:6px;padding:10px;background:#fff;border:1px solid #e2e8f0;border-radius:16px}
.admin-nav .tab{justify-content:flex-start;white-space:nowrap}
.admin-content{min-width:0}.admin-panel[hidden]{display:none!important}
.admin-panel .card{padding:18px}.admin-panel-bar h2{margin:0;font-size:19px}
.admin-panel button,.admin-panel .btn{padding:7px 10px;font-size:12px;border-radius:8px;white-space:nowrap;flex-shrink:0}
.admin-panel table th,.admin-panel table td{white-space:nowrap;padding:9px 10px;vertical-align:middle}
.admin-panel table{font-size:12px}.admin-panel .row{gap:8px}
.admin-panel input,.admin-panel select{padding:8px 10px;font-size:13px}
.admin-panel .admin-feedback{flex-basis:100%;margin:0;min-height:18px}
.admin-user-dialog{width:min(480px,calc(100vw - 32px));box-sizing:border-box;max-height:85vh;overflow:auto;border:1px solid #dbe3ef;border-radius:18px;padding:22px;color:#10213e;box-shadow:0 24px 80px #10213e33;white-space:normal}
.admin-user-dialog::backdrop{background:#0f172a77}.admin-user-dialog h3{margin:0}
.admin-user-email{overflow-wrap:anywhere;white-space:normal;color:#52627b}
.admin-user-dialog .user-fields{gap:18px}.admin-user-dialog label{display:flex;align-items:center;justify-content:space-between}
.admin-user-dialog .hint{white-space:normal}.admin-user-dialog .row{flex-wrap:wrap}
.user-danger-zone{border-top:1px solid #e2e8f0;padding-top:16px}
@media(max-width:760px){.admin-layout{grid-template-columns:minmax(0,1fr)}.admin-nav{position:static;display:flex;overflow:auto;gap:6px}.admin-nav .tab{flex-shrink:0}.admin-panel .card{padding:14px}}

.research-modal{width:min(1200px,96vw);height:92vh;max-height:92dvh;border:0;border-radius:14px;padding:16px;box-sizing:border-box}.research-modal[open]{display:flex;flex-direction:column;gap:10px}.research-modal::backdrop{background:#07162bb3}.research-modal iframe{width:100%;flex:1;min-height:0;border:1px solid #dde4ef;border-radius:8px}.admin-panel{contain:layout style}.research-modal button{white-space:nowrap}

/* Match the workspace anchor font without changing tab padding or layout. */
.shell > .tabs > .tab{font-family:inherit;font-size:1rem;line-height:normal}
