:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#493940;background:#fffcfa;font-family:Pretendard,Noto Sans KR,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{min-width:320px;margin:0}button{-webkit-tap-highlight-color:transparent}button:focus-visible{outline-offset:3px;outline:3px solid #e8a5bb}button,input,textarea{font-family:inherit}.nalda-assignments{color:#403b45;flex-direction:column;gap:22px;max-width:960px;margin:0 auto;padding-bottom:35px;display:flex}.as-header{justify-content:space-between;align-items:flex-start;gap:15px;display:flex}.as-eyebrow{letter-spacing:2px;color:#b8788e;font-size:11px;font-weight:800}.as-header h2{margin:7px 0;font-size:29px}.as-header p,.as-muted{color:#847c86;margin:0;font-size:14px}.as-panel{background:#fff;border:1px solid #f1e5e8;border-radius:23px;padding:23px;box-shadow:0 8px 30px #6b485d0d}.as-panel h3{align-items:center;gap:8px;margin:0 0 15px;display:flex}.as-field{flex-direction:column;gap:8px;margin:15px 0;font-size:13px;font-weight:700;display:flex}.as-field input:not([type=checkbox]),.as-field textarea,.as-task textarea{box-sizing:border-box;width:100%;font:inherit;color:#403b45;background:#fffcfd;border:1px solid #e9dfe3;border-radius:13px;padding:13px;font-size:14px}.as-task textarea{resize:vertical}.as-class-options{flex-wrap:wrap;gap:9px;display:flex}.as-class-option{cursor:pointer;background:#fff2f6;border:1px solid #f8dfe8;border-radius:12px;align-items:center;gap:7px;padding:10px 13px;font-size:13px;display:flex}.as-primary,.as-secondary{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-size:13px;font-weight:750;display:inline-flex}.as-primary{color:#fff;background:#c77596;border:1px solid #c77596}.as-secondary{color:#945c75;background:#fff3f6;border:1px solid #efd5df}.as-primary:disabled,.as-secondary:disabled{opacity:.5;cursor:not-allowed}.as-list-heading,.as-task-top,.as-student-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.as-list-heading h3{align-items:center;gap:8px;margin:0;display:flex}.as-list-heading span,.as-meta{color:#8c8490;font-size:13px}.as-list{flex-direction:column;gap:14px;display:flex}.as-task h3{margin:0;font-size:18px}.as-description{white-space:pre-wrap;line-height:1.65}.as-meta{align-items:center;gap:6px;display:flex}.as-status{color:#936c32;white-space:nowrap;background:#fff1dd;border-radius:30px;padding:5px 10px;font-size:11px}.as-status.done{color:#347a4d;background:#e4f5e9}.as-submit-area,.as-submissions{flex-direction:column;align-items:flex-start;gap:10px;margin-top:19px;display:flex}.as-submit-area textarea{width:100%}.as-submissions{border-top:1px solid #f0e5e8;width:100%;padding-top:16px}.as-student{box-sizing:border-box;background:#fffbfc;border:1px solid #f5e8ec;border-radius:15px;width:100%;padding:15px}.as-student textarea{margin:8px 0}.as-feedback{box-sizing:border-box;background:#fff5e4;border-radius:13px;width:100%;padding:14px}.as-feedback strong{align-items:center;gap:7px;display:flex}.as-feedback p{white-space:pre-wrap;margin-bottom:0}.as-alert{border-radius:12px;padding:13px 17px;font-size:13px}.as-error{color:#a33644;background:#fff0f1}.as-success{color:#326a4d;background:#eaf7ed}.as-empty{text-align:center;color:#93848e;background:#fff;border:1px dashed #efd9e1;border-radius:20px;padding:35px}@media (width<=600px){.as-header{flex-direction:column}.as-header h2{font-size:24px}.as-panel{padding:16px}.as-primary{width:100%}}.classroom-page{flex-direction:column;gap:22px;display:flex}.classroom-hero{background:linear-gradient(110deg,#ffe0eb,#fff0c9);border-radius:25px;padding:32px}.classroom-hero span{letter-spacing:2px;color:#b5788d;font-size:10px;font-weight:800}.classroom-hero h1{margin:12px 0 7px;font-size:28px}.classroom-hero p{color:#9c7784;margin:0;font-size:13px}.classroom-stats,.classroom-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.classroom-stats>div{background:#fff0f3;border-radius:20px;flex-direction:column;gap:9px;padding:23px;display:flex}.classroom-stats>div:nth-child(2){background:#fff3db}.classroom-stats span{color:#9c7e88;font-size:12px}.classroom-stats strong{font-size:27px}.classroom-card{background:#fff;border:1px solid #f4e9ed;border-radius:22px;padding:25px}.classroom-card h2{align-items:center;gap:10px;margin:0 0 23px;font-size:18px;display:flex}.classroom-card form{flex-direction:column;gap:10px;display:flex}.classroom-card label{color:#856874;font-size:12px;font-weight:700}.classroom-card input,.classroom-card select{color:#53434a;background:#fffbfa;border:1px solid #f0e3e8;border-radius:12px;outline:none;width:100%;height:46px;padding:0 13px;font-size:14px}.classroom-card input:focus,.classroom-card select:focus{border-color:#e5a0b6;box-shadow:0 0 0 3px #ffe8ee}.classroom-card form>button{color:#634954;background:linear-gradient(110deg,#f2b6c7,#f9d0a5);border:0;border-radius:13px;min-height:46px;margin-top:9px;font-weight:800}.classroom-card button:disabled{opacity:.55;cursor:wait}.classroom-subtitle{margin-top:35px!important}.classroom-success,.classroom-error{border-radius:13px;margin:0;padding:14px;font-size:13px}.classroom-success{color:#357850;background:#edf8f1}.classroom-error{color:#a84d62;background:#fff0f2}.classroom-list-item{border-bottom:1px solid #f6eef0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 0;display:flex}.classroom-list-item strong{font-size:13px}.classroom-list-item span{color:#a48a95;font-size:12px}.classroom-list-button{cursor:pointer;text-align:left;background:0 0;border-top:0;border-left:0;border-right:0}.classroom-list-button:hover{color:#c06f8e}.classroom-empty{color:#b09aa2;font-size:13px}.classroom-members{background:#fff8f9;border-radius:13px;margin-top:20px;padding:15px;font-size:13px}.classroom-members h3{margin:0 0 13px;font-size:14px}@media (width<=750px){.classroom-grid{grid-template-columns:1fr;gap:13px}.classroom-card{padding:20px}.classroom-hero{padding:25px}.classroom-hero h1{font-size:23px}}#root{min-height:100vh}.app{color:#493940;background:#fffcfa;min-height:100vh;padding-bottom:105px}button{font:inherit;cursor:pointer}.app-header{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffcfae8;border-bottom:1px solid #f6edf0;height:82px;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;max-width:1160px;height:100%;margin:0 auto;padding:0 28px;display:flex}.brand{text-align:left;background:0 0;border:0;flex-direction:column;gap:2px;padding:0;display:flex}.brand-sub{letter-spacing:2px;color:#ba8898;font-size:10px;font-weight:600}.brand-name{letter-spacing:-1.4px;color:#543c47;font-size:24px;font-weight:800}.brand-dot{color:#e6a2ae}.notification-btn{color:#795966;background:#fff;border:1px solid #f5e5e9;border-radius:15px;place-items:center;width:43px;height:43px;display:grid;position:relative}.notification-dot{background:#e9a0af;border-radius:50%;width:7px;height:7px;position:absolute;top:9px;right:9px}.main-content{max-width:1160px;margin:0 auto;padding:32px 28px 50px}.welcome-card{background:linear-gradient(115deg,#ffdfeb 0%,#ffe8dc 54%,#fff1bc 100%);border-radius:28px;min-height:220px;padding:38px 42px;position:relative;overflow:hidden}.welcome-card:after{content:"✳";color:#ffffff52;pointer-events:none;font-size:280px;position:absolute;bottom:-100px;right:65px}.welcome-top{justify-content:space-between;align-items:center;display:flex}.eyebrow,.section-eyebrow{color:#b77c90;letter-spacing:2px;font-size:10px;font-weight:800}.welcome-icon{color:#fff;font-size:30px}.welcome-card h1{letter-spacing:-1.4px;z-index:1;margin:24px 0 10px;font-size:clamp(24px,4vw,34px);position:relative}.welcome-card p{color:#916875;z-index:1;font-size:14px;position:relative}.section-heading{justify-content:space-between;align-items:end;margin:42px 0 20px;display:flex}.section-heading h2{letter-spacing:-1px;margin:8px 0 0;font-size:24px}.section-count{color:#b59ca5;font-size:12px}.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;display:grid}.dashboard-tile{text-align:left;border:0;border-radius:24px;flex-direction:column;justify-content:space-between;min-height:205px;padding:24px;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.dashboard-tile:hover{transform:translateY(-4px);box-shadow:0 12px 30px #966b7e16}.tile-pink{background:linear-gradient(135deg,#ffe3ec,#fff0f1)}.tile-yellow{background:linear-gradient(135deg,#fff0c7,#fff8e2)}.tile-peach{background:linear-gradient(135deg,#ffe8d8,#fff1e9)}.tile-icon{color:#a46e80;background:#ffffffab;border-radius:16px;place-items:center;width:48px;height:48px;display:grid}.tile-bottom{flex-direction:column;gap:7px;display:flex}.tile-title{letter-spacing:-.7px;font-size:19px;font-weight:800}.tile-desc{color:#977c84;font-size:12px}.tile-arrow{color:#c2a2aa;position:absolute;bottom:27px;right:22px}.role-preview{background:#fff;border:1px solid #f2e8e8;border-radius:22px;justify-content:space-between;align-items:center;gap:20px;margin-top:32px;padding:25px;display:flex}.preview-label{letter-spacing:1.5px;color:#d2a0ae;font-size:9px;font-weight:800}.role-preview h3{margin:7px 0;font-size:17px}.role-preview p{color:#a28a94;margin:0;font-size:12px}.role-buttons{flex-shrink:0;gap:8px;display:flex}.role-buttons button{color:#977987;background:#fff;border:1px solid #f1e5e8;border-radius:12px;align-items:center;gap:7px;padding:11px 15px;display:flex}.role-buttons button.selected{color:#9e5974;background:#fce0e9;border-color:#f5c7d6;font-weight:700}.bottom-nav{z-index:60;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding-bottom:env(safe-area-inset-bottom);background:#fffffff0;border-top:1px solid #f2e7eb;position:fixed;bottom:0;left:0;right:0}.nav-inner{justify-content:flex-start;gap:8px;max-width:1160px;margin:0 auto;padding:10px 28px;display:flex}.nav-item{color:#a9949d;background:0 0;border:none;border-radius:15px;flex-direction:column;align-items:center;gap:5px;min-width:86px;padding:10px 13px;font-size:11px;display:flex}.nav-item.active{color:#b76382;background:#ffe7ef;font-weight:800}.page-view{min-height:65vh}.back-button{color:#a66f84;background:0 0;border:none;align-items:center;gap:8px;margin-bottom:30px;display:flex}.page-placeholder{text-align:center;background:linear-gradient(135deg,#ffe4ec,#fff4dc);border-radius:26px;padding:70px 25px}.placeholder-icon{color:#a86c83;background:#fff9;border-radius:22px;place-items:center;width:70px;height:70px;display:inline-grid}.page-placeholder h2{margin:20px 0 8px}.page-placeholder p{color:#9e7e89;font-size:14px}.coming-soon{letter-spacing:2px;color:#ba8596;margin-top:20px;font-size:10px;font-weight:800;display:inline-block}.notice-panel{z-index:70;background:#fff;border:1px solid #f2e1e7;border-radius:20px;width:min(340px,100vw - 40px);padding:22px;position:fixed;top:75px;right:20px;box-shadow:0 15px 50px #57404a20}.notice-title{justify-content:space-between;display:flex}.notice-title button{color:#ae7890;background:0 0;border:none}.notice-panel p{color:#a28b94;font-size:13px}@media (width<=750px){.app-header{height:72px}.header-inner{padding:0 20px}.main-content{padding:20px 17px 35px}.welcome-card{border-radius:23px;min-height:200px;padding:27px 24px}.welcome-card:after{font-size:230px;right:-25px}.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.dashboard-tile{border-radius:20px;min-height:175px;padding:17px}.tile-icon{width:43px;height:43px}.tile-title{font-size:16px}.tile-desc{padding-right:12px;font-size:11px;line-height:1.5}.tile-arrow{width:15px;bottom:19px;right:12px}.section-heading{margin-top:33px}.section-heading h2{font-size:21px}.role-preview{flex-direction:column;align-items:stretch}.nav-inner{justify-content:space-around;gap:0;padding:8px 5px}.nav-item{flex:1;min-width:0;padding:9px 3px;font-size:10px}}.login-page{background:radial-gradient(at 15% 15%,#ffe0eb 0%,#0000 55%),radial-gradient(at 85% 85%,#fff0bd 0%,#0000 55%),#fffcfa;justify-content:center;align-items:center;min-height:100dvh;padding:30px 18px;display:flex}.login-card{background:#ffffffeb;border:1px solid #ffffffe6;border-radius:29px;width:100%;max-width:430px;padding:43px 37px 30px;box-shadow:0 22px 65px #9d68791a}.login-logo{text-align:center}.login-logo h1{color:#533c47;letter-spacing:-1.8px;margin:8px 0;font-size:32px;font-weight:800}.login-logo p{color:#ae8c97;margin:0;font-size:12px}.login-welcome{text-align:center;margin:42px 0 29px}.login-symbol{color:#ab6a82;background:linear-gradient(135deg,#ffe1eb,#fff0d4);border-radius:22px;place-items:center;width:64px;height:64px;margin:0 auto 18px;display:grid}.login-welcome h2{letter-spacing:-.8px;color:#533c47;margin:0 0 9px;font-size:22px}.login-welcome p{color:#ae8b98;margin:0;font-size:13px}.login-form{flex-direction:column;gap:10px;display:flex}.login-form label{color:#74565f;margin-top:9px;font-size:13px;font-weight:700}.login-form input{color:#543b48;background:#fffaf9;border:1px solid #f0e4e6;border-radius:15px;outline:none;width:100%;height:53px;padding:0 17px;font-size:16px;transition:border-color .2s,box-shadow .2s}.login-form input:focus{border-color:#e5a1b5;box-shadow:0 0 0 4px #ffe3eb}.login-form input::placeholder{color:#c5adb6}.login-error{color:#a84d62;background:#fff0f2;border-radius:11px;margin:7px 0 0;padding:11px 13px;font-size:12px;line-height:1.5}.login-submit{color:#583e48;background:linear-gradient(105deg,#edacc0,#f7c5a5);border:0;border-radius:15px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:54px;margin-top:17px;font-size:15px;font-weight:800;transition:opacity .2s,transform .2s;display:flex}.login-submit:hover:not(:disabled){transform:translateY(-2px)}.login-submit:disabled{opacity:.6;cursor:wait}.login-footer{text-align:center;color:#c1aab2;margin:31px 0 0;font-size:11px}.auth-loading{color:#a56e83;text-align:center;background:linear-gradient(135deg,#ffe7ef,#fff5d9);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px;display:flex}.auth-loading p{margin:0;font-size:20px;font-weight:800}.auth-loading span{color:#a98d97;font-size:13px}.auth-loading .login-submit{max-width:220px}.spin{animation:1s linear infinite nalda-spin}@keyframes nalda-spin{to{transform:rotate(360deg)}}.header-actions{align-items:center;gap:10px;display:flex}.user-greeting{color:#8f6877;margin-right:5px;font-size:13px;font-weight:700}.account-role{color:#a7607b;letter-spacing:1px;background:#ffe5ed;border-radius:12px;padding:11px 15px;font-size:11px;font-weight:800}@media (width<=750px){.login-card{border-radius:24px;padding:36px 24px 28px}.login-logo h1{font-size:29px}.login-welcome{margin-top:36px}.user-greeting{display:none}.header-actions{gap:6px}}.login-logo{flex-direction:column;align-items:center;gap:10px;display:flex}.login-wordmark{width:min(340px,100%);height:auto;display:block}.brand{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:6px;padding:0;display:flex}.brand-logo{width:auto;height:40px;display:block}.loading-mark{object-fit:contain;width:54px;height:54px;margin-bottom:6px}@media (width<=640px){.brand-logo{height:32px}.login-wordmark{width:min(260px,100%)}}.brand-logo{object-fit:contain;width:auto;max-width:min(260px,50vw);height:52px;display:block}@media (width<=640px){.brand-logo{max-width:52vw;height:38px}}
