:root{--navy:#17243a;--navy-deep:#101a2b;--ink:#202735;--muted:#737a86;--line:#e4e2dc;--paper:#f6f4ef;--white:#fff;--gold:#aa874b;--gold-soft:#eee5d5;--red:#b53e42;--green:#49715b}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font-family:Pretendard,"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.02em}button,input{font:inherit}.hidden{display:none!important}.topbar{height:72px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,56px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:baseline;gap:14px;color:var(--navy);text-decoration:none}.brand strong{font-family:"Noto Serif KR",Georgia,serif;font-size:22px;letter-spacing:-.06em}.brand span{font-size:11px;color:#8b7b60;letter-spacing:.02em}.header-actions{display:flex;align-items:center;gap:8px}.quiet-button,.icon-button,.text-button{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:9px 11px}.icon-button b{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:10px;background:var(--red);color:#fff;font-size:10px;margin-left:4px}.page{min-height:calc(100vh - 72px)}.login-layout{max-width:1120px;margin:0 auto;padding:clamp(56px,9vh,104px) 28px;display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(50px,10vw,130px);align-items:center}.login-intro .kicker,.kicker{margin:0 0 16px;color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.16em}.login-intro h1{margin:0;color:var(--navy);font-family:"Noto Serif KR",Georgia,serif;font-size:clamp(38px,4.6vw,60px);font-weight:600;line-height:1.25;letter-spacing:-.065em}.login-intro>p:last-child{margin:28px 0 0;color:var(--muted);font-size:15px;line-height:1.85}.login-panel{background:var(--white);border:1px solid var(--line);padding:34px 32px}.panel-heading{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.panel-heading h2{margin:0 0 7px;font-size:22px;color:var(--navy)}.panel-heading p{margin:0;color:var(--muted);font-size:13px}.login-panel label{display:block;margin:0 0 18px;font-size:12px;font-weight:700}.login-panel input{display:block;width:100%;border:0;border-bottom:1px solid #c9c6be;background:transparent;border-radius:0;padding:12px 2px;font-size:16px;outline:none}.login-panel input:focus{border-color:var(--gold)}.device-option{display:flex!important;align-items:center;gap:9px;font-weight:500!important;color:var(--muted);margin-bottom:6px!important}.device-option input{width:17px!important;margin:0}.device-help{margin:0 0 15px 26px;color:#989da4;font-size:11px}.error{min-height:18px;color:var(--red);font-size:12px}.primary{width:100%;border:0;background:var(--navy);color:#fff;padding:15px;cursor:pointer;font-weight:700}.login-panel .text-button{display:block;margin:12px auto 0;font-size:12px}.app-shell{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:210px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{border-right:1px solid var(--line);padding:36px 24px 28px;display:flex;flex-direction:column;background:#f1efe9}.sidebar-brand{display:flex;flex-direction:column;padding:0 10px 28px;border-bottom:1px solid #dcd8cf}.sidebar-brand strong{font-family:"Noto Serif KR",Georgia,serif;color:var(--navy);font-size:17px}.sidebar-brand span{color:var(--gold);font-size:10px;margin-top:5px;letter-spacing:.15em}.side-nav{display:flex;flex-direction:column;gap:3px;padding-top:24px}.side-nav button{border:0;background:transparent;text-align:left;padding:12px 13px;color:#707681;cursor:pointer}.side-nav button.active{background:var(--navy);color:#fff}.side-foot{margin-top:auto;padding:18px 10px 0;border-top:1px solid #dcd8cf;color:#9a9388;font-size:11px;line-height:1.6}.workspace{padding:42px clamp(24px,4vw,64px) 80px;min-width:0}.welcome-line{display:flex;justify-content:space-between;align-items:end;padding-bottom:30px;margin-bottom:34px;border-bottom:1px solid var(--line)}.welcome-line h1{margin:0;color:var(--navy);font-family:"Noto Serif KR",Georgia,serif;font-size:30px;font-weight:600;letter-spacing:-.055em}.welcome-line>p{margin:0;color:var(--muted);font-size:13px}.section-bar{display:flex;justify-content:space-between;align-items:center;margin:34px 0 15px}.section-bar>div{display:flex;align-items:center;gap:11px}.section-bar h2{margin:0;font-size:18px;color:var(--navy)}.section-index{font-size:10px;color:var(--gold);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.section-bar input{width:auto;border:1px solid var(--line);background:#fff;padding:9px 11px;color:var(--ink)}.count{font-size:12px;color:var(--gold);font-weight:800}.task-summary{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#fff}.task-card{border:0;border-right:1px solid var(--line);background:#fff;text-align:left;padding:20px 22px;color:var(--muted);font-size:12px;cursor:pointer}.task-card:last-child{border-right:0}.task-card strong{display:block;margin-top:8px;color:var(--navy);font-family:Georgia,serif;font-size:30px;font-weight:500}.task-card strong:not(:empty){color:var(--red)}.table-shell{background:#fff;border:1px solid var(--line);overflow-x:auto}.today-head,.today-row{display:grid;grid-template-columns:1.2fr .75fr 1.65fr 1.6fr 1.45fr 1fr;gap:14px;align-items:center;min-width:1040px}.today-head{padding:12px 18px;background:#f0eee8;color:#7c8189;font-size:11px;font-weight:800}.today-row{padding:15px 18px;border-top:1px solid #eceae5}.today-row:first-child{border-top:0}.student-name{color:var(--navy);font-weight:800}.today-row small{color:var(--muted)}.mobile-label{display:none}.status-group{display:flex;gap:4px}.status-btn{border:1px solid #dedbd3;background:#fff;color:#6b7079;padding:7px 9px;font-size:11px;cursor:pointer}.status-btn:hover{border-color:var(--gold)}.status-btn.selected{border-color:var(--navy);background:var(--navy);color:#fff}.warning-text{color:var(--red);font-weight:700;font-size:11px}.ok-text{color:var(--green);font-size:11px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.card{background:#fff;border:1px solid var(--line);padding:19px}.card h3{margin:9px 0 7px;font-size:16px;color:var(--navy)}.card p{margin:4px 0;color:var(--muted);font-size:12px;line-height:1.6}.badge{display:inline-block;color:#8a6e3d;background:var(--gold-soft);padding:4px 7px;font-size:10px;font-weight:800}.notice-important{border-left:3px solid var(--gold)}.unread-card{background:#fdfaf4}.mobile-nav{display:none}
@media(max-width:899px){body{padding-bottom:70px}.topbar{height:62px;padding:0 18px}.brand{display:block}.brand strong{font-size:18px}.brand span{display:none}.page{min-height:calc(100vh - 62px)}.login-layout{display:block;padding:44px 22px}.login-intro{margin-bottom:32px}.login-intro h1{font-size:35px}.login-intro>p:last-child{font-size:13px}.login-panel{padding:26px 22px}.app-shell{display:block;min-height:auto}.sidebar{display:none}.workspace{padding:28px 18px 54px}.welcome-line{display:block;margin-bottom:26px;padding-bottom:23px}.welcome-line h1{font-size:24px}.welcome-line>p{margin-top:9px}.section-bar{margin-top:28px}.task-summary{grid-template-columns:repeat(2,1fr)}.task-card{border-bottom:1px solid var(--line);padding:16px}.task-card:nth-child(2n){border-right:0}.task-card strong{font-size:27px}.table-shell{border:0;background:transparent;overflow:visible}.today-head{display:none}.today-row{min-width:0;display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);padding:18px;margin-bottom:10px;gap:17px 12px}.today-row>div:first-child{grid-column:1/-1;padding-bottom:12px;border-bottom:1px solid var(--line)}.today-row>div:last-child{grid-column:1/-1}.mobile-label{display:block;margin-bottom:7px;color:#99928a;font-size:9px;font-weight:800;letter-spacing:.08em}.status-group{flex-wrap:wrap}.status-btn{padding:8px}.mobile-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;height:64px;display:flex;background:#fff;border-top:1px solid var(--line)}.mobile-nav button{width:25%;border:0;background:#fff;color:#8b9097;font-size:11px}.mobile-nav button.active{color:var(--navy);font-weight:800;border-top:2px solid var(--gold)}}
@media(max-width:520px){.login-intro br{display:none}.login-intro h1{font-size:31px}.task-summary{grid-template-columns:1fr 1fr}.today-row{grid-template-columns:1fr}.today-row>div{grid-column:1/-1}.welcome-line h1{font-size:22px}}
