
:root{--navy:#12213c;--blue:#2869d5;--pale:#eef4ff;--ink:#17243b;--muted:#7a879b;--line:#e4eaf3;--bg:#f5f7fb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.shell{display:flex;min-height:100vh}.sidebar{width:245px;flex:none;background:var(--navy);color:#c9d6eb;padding:32px 18px;position:sticky;top:0;height:100vh}.brand{color:white;font-size:21px;font-weight:850;letter-spacing:.5px;padding:0 10px}.brand small{display:block;color:#9eb2d4;font-size:10px;letter-spacing:2px;margin-top:3px}.nav{margin-top:45px}.nav button{display:block;width:100%;text-align:left;background:transparent;color:#c9d6eb;padding:14px 15px;border-radius:9px;margin:3px 0}.nav button.active,.nav button:hover{background:#29456f;color:#fff}.nav button span{margin-right:10px}.sidebar-bottom{position:absolute;bottom:24px;left:28px;font-size:12px;color:#8da4c5}.main{flex:1;min-width:0;padding:34px 38px 70px;max-width:1700px;margin:auto}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.top h1{font-size:25px;letter-spacing:-.8px;margin:0}.sub{color:var(--muted);font-size:13px}.topright{display:flex;align-items:center;gap:14px}.btn{background:var(--blue);color:white;border-radius:8px;padding:10px 15px;font-weight:700}.btn.light{background:#e9f0ff;color:#2257a5}.btn.outline{background:white;border:1px solid var(--line);color:var(--ink)}.btn.danger{background:#b92b39}.btn.sm{padding:6px 10px;font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.card,.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 3px 15px #1a3b6610}.card .value{font-size:27px;font-weight:850;margin:7px 0}.card .label{color:var(--muted);font-size:12px}.layout{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.panel{margin-bottom:20px}.panel h2{font-size:16px;margin:0 0 17px}.panel h3{font-size:14px;margin:16px 0 10px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.grid16{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.session{border-radius:9px;background:#f0f3f8;text-align:center;padding:10px 2px;color:#64748b;font-weight:700}.session.done{background:#e1edff;color:#245fba}.session strong{display:block;font-size:12px}.session small{display:block;font-size:10px}.chartrow{display:grid;grid-template-columns:100px 1fr 56px;gap:10px;align-items:center;margin:12px 0}.track{height:12px;background:#eaf0f8;border-radius:20px;overflow:hidden}.fill{height:100%;background:var(--blue);border-radius:20px}.field{display:flex;flex-direction:column;gap:6px;margin:12px 0}.field label{font-size:12px;color:#53647b;font-weight:700}input,select,textarea{width:100%;background:#fff;border:1px solid #dbe3ee;border-radius:8px;padding:10px 12px;outline:none;color:var(--ink)}input:focus,textarea:focus,select:focus{border-color:#4a82dc;box-shadow:0 0 0 3px #3578dd16}textarea{resize:vertical;min-height:85px}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tabs{display:flex;gap:6px;margin:0 0 17px;border-bottom:1px solid var(--line);padding-bottom:11px}.tabs button{padding:9px 13px;background:#f1f4f9;border-radius:8px;color:#53647b;font-weight:700}.tabs button.active{background:#dceaff;color:#1d5bb8}.muted{color:var(--muted)}.tiny{font-size:12px}.note{padding:12px 14px;background:#f2f6ff;border-radius:8px;color:#45617e;margin:12px 0}.table{width:100%;border-collapse:collapse}.table th{text-align:left;background:#f7f9fc;color:#64748b;font-size:12px}.table td,.table th{padding:12px;border-bottom:1px solid var(--line)}.table tr.clickable:hover{background:#f6f9ff;cursor:pointer}.badge{display:inline-block;border-radius:7px;padding:5px 9px;font-size:11px;font-weight:800}.red{background:#bd2636;color:white}.green{background:#e4f7ed;color:#14834b}.amber{background:#fff0d7;color:#93620b}.gray{background:#edf1f6;color:#5b6a7d}.items{display:grid;gap:10px}.item{border:1px solid var(--line);border-radius:10px;padding:14px}.item .title{font-weight:750}.vocabgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.vocabbox{border:1px solid var(--line);border-radius:10px;padding:12px}.vocabbox input{max-width:100px}.auth{max-width:480px;margin:10vh auto;background:white;border-radius:18px;padding:36px;box-shadow:0 12px 45px #182c4b22}.auth .brand{background:var(--navy);padding:23px;border-radius:12px;text-align:center;margin-bottom:24px}.auth .brand small{font-weight:400}.auth h2{font-size:19px}.hint{font-size:12px;color:#78889c}.hidden{display:none!important}.notice{position:fixed;right:25px;bottom:25px;background:#182c4b;color:white;border-radius:10px;padding:14px 20px;z-index:5;box-shadow:0 7px 20px #0003}.record{border-left:3px solid var(--blue);padding:11px 14px;background:#f7faff;margin:10px 0;border-radius:0 9px 9px 0;white-space:pre-wrap}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:12px 0}.pill{background:#edf4ff;color:#2459ac;padding:5px 9px;border-radius:6px;font-size:12px;font-weight:700}.empty{color:#8b98a9;text-align:center;padding:35px 10px}.warning{border:1px solid #f4c5c9;background:#fff5f5;padding:13px;border-radius:8px;color:#a62a37}.mobile{display:none}@media(max-width:950px){.shell,.auth{display:none!important}.mobile{display:block;padding:50px 20px;text-align:center;font-size:19px}}
.dash-achievement{padding:17px 20px;margin-bottom:14px}.dash-achievement h2{margin:0 0 10px}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.achievement-item{background:#f7faff;border-radius:9px;padding:10px 13px}.achievement-item .track{margin-top:9px}.dash-sessions,.dash-actions{padding:17px 20px}.dash-session-row{margin:9px 0}.dash-session-row .grid16{margin-top:5px}.dash-session-row .session{padding:4px 1px;border-radius:5px}.dash-session-row .session strong{font-size:11px}.dash-actions .item{padding:9px 11px}.dash-actions .items{gap:6px}.dash-actions h3{margin:14px 0 8px}.dash-actions .item .sub{font-size:11px}.cards{margin-bottom:14px}.cards .card{padding:15px 18px}.cards .card .value{margin:3px 0}.top{margin-bottom:18px}.main{padding-top:24px}.layout{gap:14px}.dash-sessions.panel,.dash-actions.panel{margin-bottom:12px}@media(min-width:1200px){.dash-achievement{position:relative}}
.writing-count{display:flex;justify-content:flex-end;margin-top:7px;color:#64748b;font-size:12px}.writing-count strong{color:#2869d5;font-variant-numeric:tabular-nums}
.brand-sidebar{padding:0 5px;text-align:center}.brand-sidebar img{display:block;width:100%;height:auto;max-height:118px;object-fit:contain;background:transparent;border-radius:0;padding:0;mix-blend-mode:multiply}.brand-sidebar small{margin-top:10px;color:#b5c8e6;font-size:11px;letter-spacing:2.8px}.sidebar .nav{margin-top:32px}.auth .brand-login{background:transparent;border:0;padding:10px 0 8px}.brand-login img{display:block;width:min(100%,300px);height:auto;margin:0 auto;mix-blend-mode:multiply}.auth .brand-login small{color:#60769a;letter-spacing:3px;margin-top:7px}.writing-count{font-size:13px}.writing-count strong{font-size:15px}

/* PRIME IELTS • Langino-inspired blue design system v8 */
:root{--navy:#233a64;--blue:#4c7ce5;--pale:#edf3ff;--ink:#253554;--muted:#8491a7;--line:#e7eaf4;--bg:#f7f8fd}
body{background:var(--bg);font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;color:var(--ink);letter-spacing:-.012em}
.shell{background:#f8f9fe}
.sidebar{width:258px;background:#fff;color:#6c7793;border-right:1px solid #eaeef8;padding:27px 18px;box-shadow:3px 0 25px #344b8210}
.brand-sidebar{padding:0 11px!important;text-align:left!important}
.brand-sidebar img{display:block;width:100%;height:auto;max-height:118px;object-fit:contain;background:transparent;border-radius:0;padding:0;mix-blend-mode:multiply}
.brand-sidebar small{font-size:10px!important;color:#8290af!important;letter-spacing:2.4px!important;text-align:center;margin:3px 0 0!important}
.sidebar .nav{margin-top:34px!important}
.nav button{color:#74809a;border-radius:12px;margin:5px 0;padding:14px 16px;font-weight:650;transition:background .18s,color .18s;letter-spacing:0}
.nav button span{display:inline-flex;width:25px;color:#9ba9c8;font-size:17px;vertical-align:middle}
.nav button.active,.nav button:hover{background:#eaf1ff;color:#315ec5;box-shadow:inset 3px 0 0 #6b90ed}
.nav button.active span,.nav button:hover span{color:#4c7ce5}
.sidebar-bottom{color:#a4aec0!important;left:29px}
.main{padding:32px 40px 66px;max-width:none;margin:0}
.top{margin-bottom:24px}
.top h1{font-size:27px;font-weight:790;letter-spacing:-1.15px;color:#29385a}
.top .sub{margin-top:3px}
.topright{gap:12px}
.card,.panel{background:#fff;border:1px solid #edf0f8;box-shadow:0 7px 27px #3049720a;border-radius:19px}
.card{position:relative;overflow:hidden;min-height:122px}
.cards{gap:17px;margin-bottom:18px}
.cards .card{padding:20px 21px}
.cards .card:nth-child(1){background:#edf3ff;border-color:#edf3ff}
.cards .card:nth-child(2){background:#f0f5ff;border-color:#f0f5ff}
.cards .card:nth-child(3){background:#f2f7ff;border-color:#f2f7ff}
.cards .card:nth-child(4){background:#f5f4ff;border-color:#f5f4ff}
.card .label{font-size:12px;font-weight:690;color:#7283a5}
.card .value{font-size:32px;color:#294a92;letter-spacing:-1.3px;font-weight:820}
.card .sub{color:#8390ac}
.panel{padding:23px 25px;margin-bottom:19px}
.panel h2{font-size:18px;font-weight:790;color:#304067;letter-spacing:-.6px}
.panel h3{color:#35486f}
.dash-achievement{padding:21px 25px;margin-bottom:18px}
.achievement-grid{gap:13px}
.achievement-item{background:#f5f7fe;border:1px solid #edf0fa;border-radius:14px;padding:16px 17px}
.achievement-item b{color:#53688e;font-weight:750}
.achievement-item strong{color:#315fc8;font-size:17px}
.track{height:9px;background:#e2e9f9}
.fill{background:linear-gradient(90deg,#6e99f1,#487ae1)}
.dash-sessions,.dash-actions{padding:21px 25px}
.session{background:#f4f6fc;border:1px solid #eef0f7;color:#8b95ac;border-radius:9px}
.session.done{background:#e4eeff;border-color:#dae7ff;color:#4b74c6}
.btn{background:#4e7ee5;box-shadow:0 3px 9px #4e7ee522;border-radius:10px;padding:11px 17px;transition:background .15s,transform .15s}
.btn:hover{background:#3b6bda;transform:translateY(-1px)}
.btn.light{background:#ecf2ff;color:#4674cc;box-shadow:none}
.btn.outline{background:#fff;color:#506280;border-color:#e3e9f4;box-shadow:none}
.btn.danger{background:#cf4655}
.btn.sm{padding:7px 11px}
input,select,textarea{background:#fcfdff;border:1px solid #e4e9f3;border-radius:10px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:#6992ec;box-shadow:0 0 0 4px #648de91c}
.field label{font-size:12px;color:#6b7894}
.tabs{gap:9px;border-bottom-color:#edf0f6}
.tabs button{background:transparent;color:#8b95ab;border-radius:10px;padding:10px 16px}
.tabs button.active{background:#eaf1ff;color:#3e6ed2}
.note{background:#f1f5ff;border:1px solid #e7edfb;color:#667a9f;border-radius:12px}
.table{border-radius:12px;overflow:hidden}
.table th{background:#f8faff;color:#8591a9}
.table th,.table td{padding:14px 13px;border-bottom-color:#eff1f7}
.table tr.clickable:hover{background:#f5f8ff}
.item,.vocabbox{border-color:#e8edf6;border-radius:14px;background:#fff}
.item:hover,.vocabbox:hover{border-color:#d5e2fb}
.badge{border-radius:8px}
.red{background:#d64c61;color:white}
.auth{max-width:510px;border:1px solid #edf0f9;box-shadow:0 22px 70px #415c8c15;border-radius:22px;padding:38px 40px;margin:7vh auto}
.auth .brand-login{background:transparent;border:0;padding:10px 0 8px}
.auth .brand-login img{display:block;width:min(100%,300px);height:auto;margin:0 auto;mix-blend-mode:multiply}
.auth h2{color:#2e416a}
.writing-count strong{color:#376ad4}
.record{background:#f5f8ff}
@media(min-width:1200px){.main{padding-left:42px;padding-right:42px}}
@media(max-width:950px){.shell,.auth{display:none!important}}

/* v9 — Langino-inspired English blue / airy learning UI */
body{font-family:"Plus Jakarta Sans","Noto Sans KR",Arial,sans-serif;font-size:14px;letter-spacing:-.025em}
.sidebar{width:328px;min-width:328px;padding:26px 19px;background:#fff}
.brand-sidebar{max-width:265px;margin:0 auto}
.brand-sidebar img{display:block;width:100%;height:auto;max-height:118px;object-fit:contain;background:transparent;border-radius:0;padding:0;mix-blend-mode:multiply}
.sidebar .nav{margin-top:40px!important}
.nav button{font-family:"Plus Jakarta Sans","Noto Sans KR",sans-serif;font-size:25px!important;font-weight:750!important;letter-spacing:-.065em;display:flex;align-items:center;gap:14px;width:100%;padding:13px 9px!important;margin:10px 0;min-height:68px;line-height:1.12;text-align:left}
.nav button span{display:inline-flex;flex:none;width:52px!important;height:52px;align-items:center;justify-content:center;font-size:26px!important;background:#eaf1ff;border-radius:15px;color:#4878d7;box-shadow:inset 0 0 0 1px #dce8fb}
.nav button[data-nav="rl"] span,.nav button[data-nav="approvals"] span{background:#fff1e8;color:#db875a}
.nav button[data-nav="writing"] span,.nav button[data-nav="students"] span{background:#f1eaff;color:#8c68cc}
.nav button[data-nav="speaking"] span{background:#e5faf3;color:#35a78a}
.nav button[data-nav="vocab"] span,.nav button[data-nav="settings"] span{background:#fff5db;color:#bf912f}
.nav button.active{background:#eef4ff;color:#2c61c1;box-shadow:none}
.nav button:hover{background:#f3f7ff;box-shadow:none}
.sidebar-bottom{font-size:11px}
.main{padding:31px 39px 66px}
.top h1{font-size:31px;letter-spacing:-1.15px}
.card .value{font-family:"Plus Jakarta Sans",sans-serif}
.card,.panel{border-radius:20px;box-shadow:0 9px 28px rgba(36,76,130,.055)}
.panel h2{font-size:19px;letter-spacing:-.035em}
.learning-resources{margin-top:21px;padding:26px 27px 29px;background:#fff}
.learning-resources .eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#5383d8;margin-bottom:8px}
.learning-resources .sub{margin:7px 0 21px;color:#8792aa}
.resource-mark{width:48px;height:48px;border-radius:17px;background:#edf4ff;color:#4c7ce5;font-size:26px;display:grid;place-items:center}
.resources-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.resource-card{display:flex;align-items:flex-start;gap:12px;position:relative;min-height:153px;text-decoration:none;color:#2f426a!important;background:#f7f9ff;border:1px solid #e9effb;padding:21px 14px 17px;border-radius:17px;transition:all .18s}
.resource-card:hover{border-color:#adcbf8;background:#eff5ff;transform:translateY(-2px)}
.resource-icon{display:flex;align-items:center;justify-content:center;flex:none;width:45px;height:45px;border-radius:14px;font-size:25px}
.resource-icon.blue{background:#e6efff}.resource-icon.coral{background:#fff0e8}.resource-icon.gold{background:#fff6db}.resource-icon.mint{background:#e3f8ef}
.resource-card b{font-size:15px;line-height:1.3;display:block;margin:2px 0 8px}
.resource-card p{font-size:12px;font-weight:650;margin:0 0 7px;color:#5877a6}
.resource-card small{font-family:"Noto Sans KR",sans-serif;font-size:11px;line-height:1.45;color:#8392aa}
.resource-arrow{position:absolute;top:13px;right:12px;color:#83a2d2;font-size:16px}
@media(max-width:1500px){.resources-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-card{min-height:125px}}

/* v11 — prime-logo navy titles and soft muted rose active sidebar */
:root{--langino-purple:#18345D;--prime-menu-blue:#3368ca;--prime-selected-red:#F6D5D9}
/* v9 25px -> 20px: reduce by 20 percent */
.sidebar .nav button{font-size:20px!important;color:var(--prime-menu-blue)!important;letter-spacing:-.045em}
.sidebar .nav button:not(.active):hover{background:#edf3ff!important;color:#2559b6!important}
.sidebar .nav button.active,.sidebar .nav button.active:hover{background:var(--prime-selected-red)!important;color:#8E3041!important;box-shadow:0 6px 17px rgba(158,56,73,.10)!important}
.sidebar .nav button.active span{background:#FBE9EB!important;color:#9A3A4C!important;box-shadow:none!important}
/* Sidebar logo label: 10px -> 20px */
.sidebar .brand-sidebar small{font-size:20px!important;font-weight:800!important;letter-spacing:2px!important;color:var(--langino-purple)!important;margin-top:6px!important}
/* Main title My Learning in PRIME navy */
.top h1{color:var(--langino-purple)!important}

/* v13: guide addition only — original v11 typography, logo, and navigation remain intact */
.sidebar-bottom{left:18px!important;right:18px!important;bottom:19px!important;font-size:12px!important}
.prime-guide-button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 13px;border:1px solid #e5eaf3;border-radius:12px;background:#f3f7ff;color:#2656a1;font-weight:750;font-size:15px;transition:background .15s}
.prime-guide-button:hover{background:#e8f0ff}
.prime-guide-question{display:grid;place-items:center;width:32px;height:32px;background:#e3edff;border-radius:9px;color:#285ab2;font-size:20px;font-weight:800;flex:none}
.prime-guide-button small{display:block;font-size:11px;color:#71809b;font-weight:500;margin-top:2px}
.prime-guide-footnote{padding:11px 8px 0;color:#9da9bc;font-size:10px;letter-spacing:.04em}
.prime-guide-backdrop{position:fixed;inset:0;background:rgba(16,32,56,.45);z-index:3000;display:flex;justify-content:center;align-items:center;padding:20px}
.prime-guide-modal{background:#fff;color:#263955;width:min(760px,96vw);max-height:88vh;overflow-y:auto;border-radius:18px;padding:30px;box-shadow:0 25px 70px #10233d40}
.prime-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}
.prime-guide-head h2{margin:0;color:#18345D;font-size:24px}
.prime-guide-head p{color:#70809c;font-size:13px;margin:7px 0 0}
.prime-guide-close{flex:none;width:36px;height:36px;background:#f0f4fa;color:#314867;border-radius:10px;font-size:25px;line-height:1}
.prime-guide-entry{display:grid;grid-template-columns:185px 1fr;gap:20px;padding:18px 4px;border-top:1px solid #e9edf4}
.prime-guide-entry h3{margin:0 0 6px;font-size:16px;color:#2869d5}
.prime-guide-ko{font-size:12px;color:#657691}
.prime-guide-entry p{margin:0;color:#35465f;font-size:13px;line-height:1.85}
.prime-guide-note{padding:13px 16px;background:#f2f6ff;border-radius:10px;font-size:12px;color:#526789;line-height:1.7}
@media(max-height:660px){.sidebar .nav{margin-top:16px!important}.sidebar .nav button{padding-top:9px!important;padding-bottom:9px!important}.sidebar-bottom{bottom:8px!important}.prime-guide-footnote{display:none}}

/* v14: Guide vocabulary glossary, preserving v11/v13 visual language */
.prime-glossary-heading{margin:25px 0 12px;padding-top:18px;border-top:2px solid #e6ecf6;color:#18345D;font-size:21px;font-weight:800}
.prime-glossary-subtitle{margin:0 0 14px;font-size:13px;color:#657691}
.prime-glossary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.prime-glossary-card{padding:13px 14px;border:1px solid #e7edf7;border-radius:11px;background:#f8faff}
.prime-glossary-term{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:5px}
.prime-glossary-term strong{font-size:14px;color:#235ba6}
.prime-glossary-term span{font-size:12px;font-weight:700;color:#18345D}
.prime-glossary-desc{font-size:12px;line-height:1.65;color:#566882}
@media(max-width:620px){.prime-glossary-grid{grid-template-columns:1fr}}

/* v15 — Screenshot-inspired SCORE FACTORY-like restrained educational dashboard. */
:root{--navy:#151e2f;--blue:#143e70;--pale:#e9eff8;--ink:#151923;--muted:#78818f;--line:#e9eaf0;--bg:#f4f4f6;--langino-purple:#152743;--prime-menu-blue:#173456;--prime-selected-red:#e6e7eb}
html,body{background:#f4f4f6!important}
body,button,input,select,textarea{font-family:Arial,"Pretendard","Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:-.025em;color:#1a1d25}
.shell{background:#f4f4f6!important;min-height:100vh}
.sidebar{width:218px!important;min-width:218px!important;padding:23px 12px!important;background:#f6f6f8!important;border-right:1px solid #eaeaf0!important;box-shadow:none!important}
.brand-sidebar{padding:0 18px!important;max-width:204px!important;margin:0 auto!important}
.brand-sidebar img{display:block;width:100%;height:auto;max-height:118px;object-fit:contain;background:transparent;border-radius:0;padding:0;mix-blend-mode:multiply}
.sidebar .brand-sidebar small{display:none!important}
.sidebar .nav{margin-top:20px!important}
.sidebar .nav button{font-family:Arial,"Noto Sans KR",sans-serif!important;color:#1e3454!important;font-size:14px!important;font-weight:700!important;letter-spacing:-.025em!important;gap:9px!important;min-height:43px!important;line-height:1.25!important;margin:2px 0!important;padding:8px 10px!important;border-radius:9px!important;box-shadow:none!important}
.sidebar .nav button span{width:30px!important;height:30px!important;font-size:18px!important;border:0!important;border-radius:8px!important;box-shadow:none!important;background:transparent!important;color:inherit!important}
.sidebar .nav button.active,.sidebar .nav button.active:hover{background:#e1e2e7!important;color:#14223b!important;box-shadow:none!important}
.sidebar .nav button.active span{background:transparent!important;color:#14223b!important}
.sidebar .nav button:not(.active):hover{background:#edeef2!important;color:#0c2e55!important}
.sidebar-bottom{left:12px!important;right:12px!important;bottom:17px!important}
.prime-guide-button{background:#151e2f!important;color:#fff!important;border-color:#151e2f!important;border-radius:20px!important;padding:10px 13px!important;font-size:13px!important}
.prime-guide-button:hover{background:#2b3445!important}
.prime-guide-question{background:transparent!important;color:#fff!important;width:23px;height:23px;border:1px solid #ffffff90;border-radius:7px;font-size:15px!important}
.prime-guide-button small{color:#ccd3dd!important;font-size:10px!important}
.prime-guide-footnote{display:none!important}
.main{padding:0 30px 65px!important;max-width:none!important;width:calc(100% - 218px);margin:0!important}
.prime-topline{height:71px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9e9ed;margin-bottom:27px;padding:0 3px}
.prime-topline-name{font-size:15px;font-weight:900;letter-spacing:-.04em;color:#14213b}
.prime-topline-name b{font-size:12px;font-weight:750;letter-spacing:.02em;margin-left:8px;color:#6d7583}
.prime-topline-meta{font-size:10px;letter-spacing:.14em;color:#9a9fa7;font-weight:700}
.top{margin-bottom:20px!important;align-items:center!important}
.top h1{font-size:30px!important;font-weight:850!important;letter-spacing:-1.6px!important;color:#11141c!important}
.top .sub{color:#7b8392!important;font-size:13px!important;margin-top:3px}
.topright .pill{background:#fff;color:#5b6575;border-radius:20px;padding:7px 13px;border:1px solid #e8eaf0}
.btn{background:#161d29!important;color:#fff!important;border-radius:11px!important;box-shadow:none!important;font-size:12px!important;font-weight:750!important;padding:10px 15px!important;transform:none!important}
.btn:hover{background:#31394b!important;transform:none!important}
.btn.light{background:#e8f0f7!important;color:#204a70!important}
.btn.outline{background:#fff!important;color:#192336!important;border:1px solid #e3e5eb!important}
.btn.danger{background:#b94b56!important;color:#fff!important}
.btn.sm{padding:7px 11px!important}
.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px!important;margin-bottom:13px!important}
.cards .card{min-height:138px!important;padding:20px!important;border:0!important;border-radius:22px!important;box-shadow:none!important}
.cards .card:nth-child(1){background:#d7f4e9!important}
.cards .card:nth-child(2){background:#fff1cf!important}
.cards .card:nth-child(3){background:#fff!important}
.cards .card:nth-child(4){background:#e8eef8!important}
.card .label{font-size:11px!important;color:#617181!important;letter-spacing:.06em;text-transform:uppercase;font-weight:800!important}
.card .value{font-family:Arial,"Noto Sans KR",sans-serif!important;font-weight:850!important;color:#141923!important;font-size:31px!important;letter-spacing:-1.2px!important;margin:11px 0 2px!important}
.card .sub{font-size:12px!important;color:#697786!important}
.panel{background:#fff!important;border:0!important;box-shadow:none!important;border-radius:23px!important;padding:22px 24px!important;margin-bottom:13px!important}
.panel h2{font-family:Arial,"Noto Sans KR",sans-serif!important;color:#11141c!important;font-size:18px!important;font-weight:850!important;letter-spacing:-.7px!important}
.panel h3{color:#172131!important}
.dash-achievement{background:#fff!important;padding:20px 24px!important}
.achievement-grid{gap:12px!important}
.achievement-item{background:#f6f7f9!important;border:0!important;border-radius:12px!important;padding:15px!important}
.achievement-item b{color:#3b4657!important}
.achievement-item strong{color:#172a44!important}
.track{background:#ecf0f4!important;height:8px!important}
.fill{background:#2a9d8f!important}
.layout{gap:12px!important}
.session{background:#f3f4f7!important;border:0!important}
.session.done{background:#dff4ec!important;color:#1b7765!important}
.tabs button{font-size:13px!important;border-radius:10px!important}
.tabs button.active{background:#d9f3e8!important;color:#126c58!important}
.field label{color:#444d5c!important;font-size:12px!important}
input,select,textarea{border-radius:10px!important;border:1px solid #dfe3e9!important;background:#fff!important}
.note{background:#f4f6f8!important;border:0!important;color:#607081!important}
.table th{background:#f8f8fa!important;color:#626c7b!important}
.table td,.table th{border-bottom:1px solid #eef0f2!important}
.table tr.clickable:hover{background:#f1f6f5!important}
.red{background:#c54857!important;color:#fff!important}
.resource-card{background:#f7f8fa!important;border:1px solid #eff0f3!important;box-shadow:none!important}
.resource-card:hover{background:#f1f5f5!important;border-color:#dcebe8!important}
.learning-resources .eyebrow{color:#16856e!important}
.auth{box-shadow:0 14px 55px #202b4018!important;border:0!important}
.auth .brand-login img{display:block;width:min(100%,300px);height:auto;margin:0 auto;mix-blend-mode:multiply}
@media(max-width:1250px){.sidebar{width:190px!important;min-width:190px!important}.main{width:calc(100% - 190px);padding:0 22px 55px!important}.cards .card{padding:15px!important}.cards{gap:9px!important}}
@media(max-width:950px){.shell,.auth{display:none!important}.mobile{display:block!important}}


/* v17 — refined typography, following the supplied dashboard reference.
   Deliberately keep bold emphasis exclusively on the main My Learning heading. */
:root{--prime-font:"Noto Sans KR","Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif}
html,body,body *,button,input,textarea,select,option{font-family:var(--prime-font)!important}
body{font-size:14px!important;letter-spacing:-.025em!important;line-height:1.55!important}
/* Prior screenshots contained conflicting heavy weights: normalize them. */
body *,body *::before,body *::after{font-weight:400!important}
/* Only the student heading receives an emphasized weight. */
.top h1{font-weight:400!important;letter-spacing:-.06em!important;font-size:28px!important}
.top h1.my-learning-heading{font-weight:750!important}
/* Narrow, restrained navigation matching the screenshot reference. */
.sidebar .nav button{
  font-family:var(--prime-font)!important;font-size:14px!important;font-weight:400!important;
  line-height:1.35!important;letter-spacing:-.035em!important;
  min-height:42px!important;padding:8px 11px!important;gap:8px!important
}
.sidebar .nav button span{width:24px!important;height:26px!important;font-size:16px!important;flex:none!important}
.prime-guide-button{font-size:13px!important}
.prime-guide-button small{font-size:10px!important}
/* Keep hierarchy through size and tone, not boldness. */
.prime-topline-name{font-size:15px!important;letter-spacing:-.025em!important}
.prime-topline-name b{font-size:11px!important}
.panel h2{font-size:18px!important;letter-spacing:-.04em!important}
.panel h3{font-size:16px!important}
.card .label{font-size:11px!important;letter-spacing:.035em!important}
.card .value{font-size:30px!important;letter-spacing:-.065em!important}
.btn,.tabs button,.field label,.table th,.table td{font-weight:400!important}
input,select,textarea{font-size:14px!important;line-height:1.5!important}


/* v18 — minimal outline navigation, colored per subject. */
.sidebar .nav button{
  font-size:20px!important;font-weight:400!important;
  min-height:52px!important;line-height:1.3!important;
  padding:11px 12px!important;gap:13px!important;
  letter-spacing:-.045em!important;
}
.sidebar .nav button span.nav-symbol{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:28px!important;height:28px!important;flex:none!important;
  background:transparent!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;padding:0!important;
}
.sidebar .nav button span.nav-symbol svg{
  width:23px;height:23px;display:block;stroke:currentColor;
  fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;
}
.sidebar .nav button[data-nav="dashboard"] .nav-symbol{color:#5278BF!important}
.sidebar .nav button[data-nav="rl"] .nav-symbol{color:#169C94!important}
.sidebar .nav button[data-nav="writing"] .nav-symbol{color:#DD8F65!important}
.sidebar .nav button[data-nav="speaking"] .nav-symbol{color:#A071B9!important}
.sidebar .nav button[data-nav="vocab"] .nav-symbol{color:#BDA044!important}
.sidebar .nav button[data-nav="students"] .nav-symbol{color:#507DBD!important}
.sidebar .nav button[data-nav="approvals"] .nav-symbol{color:#30A58C!important}
.sidebar .nav button[data-nav="settings"] .nav-symbol{color:#A47CBA!important}
.sidebar .nav button.active .nav-symbol{background:transparent!important;box-shadow:none!important}
.sidebar .nav button.active .nav-symbol svg{stroke:currentColor!important}
@media(max-width:1250px){.sidebar .nav button{font-size:20px!important}}


/* v19 — sidebar widened approximately 2 cm (76px) from 190px to 266px. */
.sidebar{width:266px!important;min-width:266px!important;flex:0 0 266px!important;box-sizing:border-box!important}
.sidebar .nav{max-width:none!important;width:100%!important}
@media (min-width:951px) and (max-width:1250px){
  .sidebar{width:266px!important;min-width:266px!important;flex-basis:266px!important}
  .main{width:calc(100% - 266px)!important}
}

/* v20 — archive search; original v19 design intact */
.archive-filters{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:14px;align-items:end;margin-top:18px}
.archive-filters .field{min-width:0}.archive-filters input,.archive-filters select{width:100%}
.archive-delete{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}
.archive-delete .btn{margin-top:8px}
@media(max-width:1450px){.archive-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v21: extra homework records */
.rl-extras{margin:20px 0 14px;padding:18px;border:1px solid #e3e8ed;border-radius:14px;background:#fbfcfd}.rl-extras h3{margin:0;font-size:16px;font-weight:400}.rl-extra-entry{background:#fff;border:1px solid #e9edf1;border-radius:12px;padding:12px 14px;margin:12px 0}.rl-extra-entry .field{margin-top:9px}.rl-extra-entry input,.rl-extra-entry textarea{width:100%}.rl-extra-history div,.rl-extra-admin{padding:4px 0}.rl-extra-history span,.rl-extra-admin span{display:block;font-size:13px}.rl-extra-history small,.rl-extra-admin small{display:block;color:#687387;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.rl-extra-history{min-width:170px}.rl-extra-admin{min-width:160px}

/* v23 — resources moved from dashboard to dedicated student sidebar navigation */
.student-resources-page{max-width:1440px}
/* v22 — fifth Learning Resources card, original v21 design preserved */
.resource-icon.prime-blog-icon{background:#03c75a;color:#fff;font-size:24px;font-weight:800;font-family:Arial,sans-serif}
@media(min-width:1501px){.resources-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.resource-card{padding:20px 11px 16px;gap:10px}}
/* v25 — Director-managed learning resources */
.resource-manager .resource-manage-list{display:flex;flex-direction:column;gap:10px;margin:22px 0}
.resource-manage-row{display:flex;align-items:center;gap:13px;background:#f9fafc;border:1px solid #e9edf2;border-radius:14px;padding:13px}
.resource-manage-num{min-width:22px;color:#7c8797}
.resource-manage-info{flex:1;min-width:0;font-size:15px}
.resource-manage-info small{display:block;color:#788598;overflow-wrap:anywhere;font-size:12px;margin-top:3px}
.resource-manage-actions{display:flex;gap:6px;flex-wrap:wrap}
.resource-manage-actions button:disabled{opacity:.35;cursor:not-allowed}
.resource-add-form{border-top:1px solid #e9edf2;padding-top:20px}
.resource-add-form h3{font-weight:400;margin:0 0 12px}
@media(max-width:1150px){.resource-manage-row{flex-wrap:wrap}.resource-manage-actions{width:100%;margin-left:30px}}
/* v29: native-style NAVER mark and soft connected-speech lips */
.resource-icon.prime-naver-mark{background:#03c75a;color:#fff;border-radius:10px;flex:none}
.resource-icon.prime-linking-mark{background:#fcf2f1;border:1px solid #f2e7e5;border-radius:12px;flex:none}
.resource-icon.prime-naver-mark svg,.resource-icon.prime-linking-mark svg{display:block}
