
:root{font-family:Inter,system-ui,"Noto Sans KR",sans-serif;color:#16233a;background:#f6f8fb}*{box-sizing:border-box}body{margin:0}button{border:0;border-radius:11px;background:#0d2a52;color:white;padding:11px 15px;font-weight:700;cursor:pointer}button.secondary{background:#edf4fb;color:#245e9e}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.loginCard{width:min(430px,100%);background:white;border:1px solid #e2e8f0;border-radius:26px;padding:34px;box-shadow:0 25px 60px #0d2a5212}.eyebrow,.hero span{font-size:11px;letter-spacing:.16em;font-weight:800;color:#4d79aa}.loginCard h1{font-size:30px;color:#0d2a52;margin:18px 0 8px}.loginCard p,.muted{color:#738095}.loginCard label,.formGrid label{display:grid;gap:7px;font-size:13px;font-weight:700;margin:14px 0}.loginCard input,.formGrid input,.formGrid textarea{border:1px solid #d8e0ea;border-radius:11px;padding:12px;font:inherit}.loginCard button{width:100%;margin-top:8px}.error{background:#fff0f0;color:#b42318;padding:10px;border-radius:10px;font-size:13px}aside{position:fixed;inset:0 auto 0 0;width:235px;background:#0d2a52;color:white;padding:28px 20px}.logo{font-weight:900;letter-spacing:.06em}.logo small{display:block;opacity:.55;font-size:9px;margin-top:5px}.logo+nav{margin-top:30px}nav span{display:block;padding:11px 12px;margin:5px 0;border-radius:10px;opacity:.75}.main{margin-left:235px}.main header{height:70px;background:white;border-bottom:1px solid #e4e9f1;display:flex;align-items:center;justify-content:space-between;padding:0 28px}.main #content{padding:28px;max-width:1250px}.hero{background:linear-gradient(135deg,#0d2a52,#427cb9);border-radius:22px;padding:30px;color:white;margin-bottom:18px}.hero span{color:#bad4ef}.hero h2{font-size:28px;margin:7px 0}.hero p{margin:0;opacity:.75}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cards article,.panel{background:white;border:1px solid #e3e8ef;border-radius:17px;padding:20px;margin-bottom:16px}.cards small{display:block;color:#7a8799;margin-bottom:8px}.cards b{color:#0d2a52;font-size:18px}.panel h3{color:#0d2a52;margin:0 0 15px}.info{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.info div{padding:13px;background:#f8fafc;border-radius:10px}.info small{display:block;color:#8290a2;margin-bottom:5px}.table{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px}th,td{text-align:left;padding:12px;border-bottom:1px solid #e8edf3;font-size:13px}th{color:#718096}.empty{border:1px dashed #ccd6e2;background:#fafcff;color:#8190a3;border-radius:12px;padding:24px;text-align:center}.list,.studentRow,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.list,.studentRow{border-bottom:1px solid #e8edf3;padding:13px 0}.list small,.studentRow small{display:block;color:#8491a2;margin-top:4px}.notice{padding:14px;background:#f8fafc;border-radius:12px;margin:8px 0}.notice p{margin-bottom:0;color:#5f6d80}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.formGrid .wide{grid-column:1/-1}.formGrid textarea{min-height:100px}.center{min-height:100vh;display:grid;place-items:center;gap:15px}.toolbar{margin-bottom:15px}.toolbar h3{margin:0}@media(max-width:760px){aside{display:none}.main{margin-left:0}.main #content{padding:16px}.main header{padding:0 16px}.cards{grid-template-columns:1fr 1fr}.info,.formGrid{grid-template-columns:1fr}.formGrid .wide{grid-column:auto}}

.formGrid select{border:1px solid #d8e0ea;border-radius:11px;padding:12px;font:inherit;background:white}

.detailHero{background:white;border:1px solid #e3e8ef;border-radius:18px;padding:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.detailHero span{font-size:10px;letter-spacing:.15em;color:#527aa8;font-weight:800}.detailHero h2{margin:5px 0;color:#0d2a52}.detailHero p{margin:0;color:#7a8799}
.tabs{display:flex;gap:8px;overflow:auto;padding:2px 0 12px}.tab{white-space:nowrap;background:#eaf1f8;color:#41678f}.tab.active{background:#0d2a52;color:white}
.tabPane{display:none}.tabPane.active{display:block}.adminRow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #e8edf3}
.adminRow small{display:block;color:#8491a2;margin-top:4px}.rowActions{display:flex;gap:7px}.danger{background:#fff0f0;color:#b42318}.formGrid input[type=file]{background:#fff}
@media(max-width:760px){.detailHero{align-items:flex-start;flex-direction:column}.adminRow{align-items:flex-start}.rowActions{flex-shrink:0}}
.adminTopTabs{display:flex;gap:8px;margin-bottom:14px}.adminTopTab{background:#eaf1f8;color:#41678f}.adminTopTab.active{background:#0d2a52;color:white}.adminTopPane{display:none}.adminTopPane.active{display:block}.accountSearch{margin-bottom:12px}.accountSearch input{width:100%;border:1px solid #d8e0ea;border-radius:11px;padding:12px;font:inherit}.accountCard{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid #e8edf3}.accountMeta b{color:#0d2a52}.accountMeta small{display:block;color:#7d8999;margin-top:6px}.roleBadge{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:999px;background:#eef5fc;color:#356b9e;font-size:10px;font-weight:800}.accountActions{display:flex;gap:8px;flex-shrink:0}.compactForm{margin-top:2px}@media(max-width:760px){.accountCard{align-items:flex-start;flex-direction:column}.accountActions{width:100%}.accountActions button{flex:1}}

/* v4 layout + NEXUS branding */
aside{width:250px;background:#fff;color:#0d2a52;padding:24px 20px;border-right:1px solid #e6ebf2;box-shadow:4px 0 18px rgba(13,42,82,.025)}
.brandLogo{width:100%;padding:5px 0 22px}.brandLogo img{display:block;width:100%;height:auto}
.main{margin-left:250px}.main header{height:72px;padding:0 30px;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
.headerTitle{display:flex;align-items:baseline;gap:10px}.headerTitle small{font-size:10px;font-weight:900;letter-spacing:.18em;color:#3977c8}.headerTitle b{font-size:15px;color:#16345d}
.main #content{padding:30px;max-width:1320px;margin:0 auto}
.adminWelcome{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#0a2450 0%,#174b86 58%,#3f83cf 100%);color:#fff;padding:30px 32px;border-radius:22px;margin-bottom:18px;box-shadow:0 12px 35px rgba(20,65,120,.12)}
.adminWelcome span{font-size:10px;letter-spacing:.18em;font-weight:900;color:#b9d8fa}.adminWelcome h2{margin:6px 0 6px;font-size:28px}.adminWelcome p{margin:0;color:#d6e4f4}.adminWelcome button{background:#fff;color:#174b86;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.metricGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metricGrid article{background:#fff;border:1px solid #e3e9f1;border-radius:17px;padding:19px 20px;box-shadow:0 5px 20px rgba(13,42,82,.025)}.metricGrid small{display:block;color:#7a8798;font-size:12px;margin-bottom:10px}.metricGrid strong{font-size:29px;color:#0d2a52}.metricGrid span{margin-left:5px;color:#8290a2;font-size:12px}
.dashboardGrid{display:grid;grid-template-columns:1.65fr .8fr;gap:16px}.panelHeading small{display:block;color:#4d79aa;font-size:9px;letter-spacing:.16em;font-weight:900;margin-bottom:5px}.panelHeading h3{margin:0 0 13px}.recentRow{display:grid;grid-template-columns:190px 1fr;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid #e9edf3}.recentRow:last-child{border-bottom:0}.recentRow small{display:block;color:#8793a2;margin-top:4px}.recentRow>span{color:#485b72;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quickPanel{display:flex;flex-direction:column}.quickAction{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;background:#f5f9fd;color:#173d69;border:1px solid #e1eaf4;margin:0 0 10px;padding:15px}.quickAction:hover{background:#edf5fd}.quickAction span{font-weight:800}.quickAction small{margin-top:4px;color:#7890a9;font-weight:500}
.adminTopTabs{margin-top:4px;position:sticky;top:82px;z-index:15;background:#f6f8fb;padding:8px 0}.adminTopTab{padding:10px 18px}.toolbar{align-items:flex-end}.toolbar h3{font-size:20px}.toolbar p{margin:4px 0 0;font-size:12px}.studentSearch{margin-bottom:12px}.studentSearch input{width:100%;border:1px solid #d8e0ea;border-radius:12px;padding:13px 14px;font:inherit;background:#fff}.studentListPanel{padding-top:7px;padding-bottom:7px}
.studentRow{padding:15px 4px}.studentIdentity{display:flex;align-items:center;gap:12px}.studentInitial{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#eaf4ff,#dbeafe);color:#1d5ca6;display:grid;place-items:center;font-size:17px;font-weight:900;flex-shrink:0}.studentRow em{display:block;color:#9aa5b3;font-size:11px;font-style:normal;margin-top:5px}
.panel{box-shadow:0 4px 18px rgba(13,42,82,.02)}
@media(max-width:960px){.metricGrid{grid-template-columns:repeat(2,1fr)}.dashboardGrid{grid-template-columns:1fr}.recentRow{grid-template-columns:160px 1fr}}
@media(max-width:760px){aside{display:none}.main{margin-left:0}.main #content{padding:16px}.metricGrid{grid-template-columns:1fr 1fr}.adminWelcome{padding:24px 20px;align-items:flex-start;flex-direction:column}.adminWelcome h2{font-size:24px}.adminTopTabs{top:70px}.recentRow{grid-template-columns:1fr}.recentRow>span{white-space:normal}.headerTitle small{display:none}}

/* v6 progress table readability */
.panel .table table th:nth-child(1),
.panel .table table td:nth-child(1){min-width:88px;white-space:nowrap}
.panel .table table th:nth-child(2),
.panel .table table td:nth-child(2){min-width:72px;white-space:nowrap}
.panel .table table th:nth-child(3),
.panel .table table td:nth-child(3){min-width:130px}
.panel .table table th:nth-child(4),
.panel .table table td:nth-child(4){min-width:430px;line-height:1.65}
.panel .table table th:nth-child(5),
.panel .table table td:nth-child(5){min-width:190px;line-height:1.55}

/* v7: preserve tutor-entered line breaks */
.table td{white-space:pre-line}

/* v7 monthly feedback */
.feedbackCard{border:1px solid #e4ebf3;border-radius:16px;padding:20px;margin:12px 0;background:#fff}
.feedbackHead{padding-bottom:12px;border-bottom:1px solid #edf1f5;margin-bottom:14px}
.feedbackHead small{color:#7a899a}.feedbackHead h4{margin:4px 0 0;color:#0d2a52;font-size:18px}
.feedbackItem{margin-top:14px}.feedbackItem b{display:block;color:#274d77;font-size:13px;margin-bottom:5px}
.feedbackItem p{white-space:pre-line;margin:0;line-height:1.75;color:#3f4c5c}
.adminFeedbackRow{display:flex;gap:14px;align-items:flex-start;border-bottom:1px solid #edf1f5;padding:10px 0}
.adminFeedbackRow>div{flex:1}.adminFeedbackRow .feedbackCard{margin:0}
@media(max-width:760px){.adminFeedbackRow{flex-direction:column}.adminFeedbackRow>button{width:100%}}


/* NEXUS official branding */
.loginCard{width:min(460px,100%);padding:36px 38px}
.loginBrand{margin:0 0 26px;padding-bottom:22px;border-bottom:1px solid #edf1f6}
.loginBrand img{display:block;width:min(320px,100%);height:auto;margin:0 auto}
.loginCard .eyebrow{text-align:center;color:#3977c8}
.loginCard h1{text-align:center;margin:12px 0 9px}
.loginCard>p{text-align:center;line-height:1.65;margin:0 0 22px}
.brandDomain{position:absolute;left:20px;right:20px;bottom:24px;text-align:center;color:#8b9bb0;font-size:11px;letter-spacing:.08em}
@media(max-width:760px){.loginCard{padding:30px 24px}.loginBrand img{width:min(280px,100%)}}
