*{box-sizing:border-box}body{margin:0;background:#f4f7f4;color:#223129;font:15px/1.55 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif}header{height:64px;background:#fff;border-bottom:1px solid #e2e9e2;display:flex;justify-content:space-between;align-items:center;padding:0 max(calc((100vw - 1040px)/2),20px)}.brand{color:#2d6f56;text-decoration:none;font-size:20px;font-weight:850}.brand span{font-size:11px;color:#76827a;font-weight:500;margin-left:7px}.signed-user{font-size:12px;color:#67736b}main{max-width:1040px;margin:28px auto;padding:0 18px}.login-wrap{min-height:70vh;display:grid;place-items:center}.login-card,.card,.stat-card{background:#fff;border:1px solid #e2e9e2;border-radius:16px;box-shadow:0 4px 16px #18342108}.login-card{width:min(100%,430px);padding:28px}.logo-mark{width:42px;height:42px;border-radius:14px;background:#e8f3ec;color:#2d6f56;display:grid;place-items:center;font-size:20px;font-weight:900}h1{font-size:25px;margin:12px 0 5px}h2{font-size:17px;margin:0 0 12px}.muted{color:#77827a}.small{font-size:12px}.eyebrow{font-size:11px;letter-spacing:.08em;color:#628170;margin:0 0 5px;font-weight:800}label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px}input,select{font:inherit}input[type=tel],input:not([type]),input[type=date],input[type=number],select{width:100%;border:1px solid #d8e0d9;border-radius:10px;padding:11px 12px;background:#fff;color:#223129}input[type=file]{font-size:13px;max-width:100%}.primary,.secondary{font:inherit;font-weight:750;border-radius:10px;padding:10px 14px;cursor:pointer}.primary{background:#2d6f56;color:white;border:0}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{background:white;color:#356b54;border:1px solid #d8e4db}.full{width:100%;margin-top:12px}.login-card .primary{margin-top:14px}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.welcome h1{margin:0 0 5px}.tabs{display:flex;gap:7px;margin:16px 0}.tabs button{border:0;background:#e9eee9;padding:10px 14px;border-radius:9px;font-weight:700;color:#627068;cursor:pointer}.tabs button.active{background:#2d6f56;color:white}.tab-panel{display:block}.card{padding:18px;margin-bottom:15px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}.card-heading,.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.percent{font-size:24px;color:#2d6f56;font-weight:850}.progress{height:9px;background:#edf0ed;border-radius:12px;overflow:hidden;margin:13px 0 8px}.progress>div{height:100%;width:0;background:#2d6f56;border-radius:12px;transition:width .2s}.status-card{background:#e8f3ec;border:1px solid #d4e5d9;border-radius:13px;padding:13px 16px;margin-bottom:15px}.status-card.expired{background:#fff2eb;border-color:#f0d5c6}.nickname-edit{margin-top:10px;padding-top:9px;border-top:1px solid #d4e5d9}.nickname-edit input{flex:1;min-width:0;border:1px solid #d8e0d9;border-radius:9px;padding:8px 10px}.preview{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.preview img,.preview video{width:70px;height:70px;object-fit:cover;border-radius:9px;background:#eef2ee}.success{background:#e9f4ed;color:#2d6f56;padding:12px;border-radius:10px;margin-top:10px}.empty{color:#7b867e;font-size:13px;padding:12px 0}.submission{border-top:1px solid #e8ede8;padding:12px 0}.submission:first-child{border-top:0}.files{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.file-link{font-size:12px;color:#2d6f56}.badge{font-size:11px;border-radius:20px;padding:4px 8px;background:#edf2ed;color:#657269}.badge.approved{background:#e8f3ec;color:#2d6f56}.badge.pending{background:#fff5e5;color:#986523}.badge.revision_requested{background:#fff0ee;color:#99544d}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.stat-card{padding:15px}.stat-card span{display:block;font-size:12px;color:#748078}.stat-card b{font-size:21px}.review-card{border-top:1px solid #e8ede8;padding:13px 0}.review-card:first-child{border-top:0}.review-files{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.review-files a{color:#2d6f56;font-size:12px}.review-actions{display:flex;gap:7px;margin-top:9px}.review-actions button{font-size:12px}.member-item{border-top:1px solid #e8ede8;padding:14px 0}.member-item:first-child{border-top:0}.member-fields{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 90px 90px auto;gap:7px;align-items:center}.member-fields input{min-width:0;padding:8px;font-size:12px}.member-fields .namebox{font-weight:700}.attendance-form{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:end}.toggle{display:flex;align-items:center;gap:7px;font-size:12px}.toggle input{accent-color:#2d6f56}.message{font-size:12px;margin:10px 0;padding:9px 11px;background:#fff4e3;border-radius:8px;color:#76531e}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#20382c;color:#fff;padding:11px 16px;border-radius:10px;box-shadow:0 4px 18px #0002;z-index:10}footer{text-align:center;font-size:11px;color:#8a948d;padding:15px 0 30px}.hidden{display:none!important}@media(max-width:760px){main{margin:18px auto}.two-col{grid-template-columns:1fr}.member-fields{grid-template-columns:1fr 1fr}.member-fields .namebox{grid-column:1/-1}.attendance-form{grid-template-columns:1fr 1fr}.attendance-form button{grid-column:1/-1}.stats-row{grid-template-columns:1fr 1fr}.welcome{align-items:flex-start}.welcome h1{font-size:21px}.card{padding:15px}}