@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css";:root{--ink: #1c2230;--ink-soft: #5b6478;--paper: #eef1f6;--surface: #ffffff;--line: #d9dee8;--brand: #2b3a67;--brand-soft: #e4e8f4;--present: #2f9e44;--present-bg: #e6f6ea;--absent: #e03131;--absent-bg: #fdecec;--makeup: #e8890c;--makeup-bg: #fdf1de;--unmarked-bg: #f2f3f6;--unmarked-line: #c9cedb;--font-body: "Pretendard", -apple-system, sans-serif;--radius: 14px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:var(--paper);color:var(--ink)}.app-shell{max-width:480px;margin:0 auto;min-height:100vh;background:var(--paper);display:flex;flex-direction:column}.app-header{padding:20px 20px 16px;background:var(--brand);color:#fff}.app-header .eyebrow{font-size:12px;letter-spacing:.04em;opacity:.7;margin:0 0 4px}.app-header h1{font-size:20px;font-weight:700;margin:0}.tab-bar{display:flex;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.tab-bar button{flex:1;padding:14px 0;border:none;background:none;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ink-soft);cursor:pointer;border-bottom:2px solid transparent}.tab-bar button.active{color:var(--brand);border-bottom-color:var(--brand)}.screen{flex:1;padding:16px 20px 40px}.class-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.class-card:active{background:var(--brand-soft)}.class-card .time{font-size:13px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.class-card .name{font-size:16px;font-weight:700;margin:2px 0}.class-card .teacher{font-size:12px;color:var(--ink-soft)}.class-card .chevron{color:var(--ink-soft);font-size:18px}.student-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px}.student-row .student-name{font-size:15px;font-weight:600}.status-btn{min-width:68px;padding:9px 0;border-radius:999px;border:1.5px solid var(--unmarked-line);background:var(--unmarked-bg);color:var(--ink-soft);font-family:var(--font-body);font-weight:700;font-size:14px;text-align:center;cursor:pointer}.status-btn.status-present{background:var(--present-bg);color:var(--present);border-color:var(--present)}.status-btn.status-absent{background:var(--absent-bg);color:var(--absent);border-color:var(--absent)}.status-btn.status-makeup{background:var(--makeup-bg);color:var(--makeup);border-color:var(--makeup)}.section-label{font-size:13px;font-weight:700;color:var(--ink-soft);margin:18px 0 8px;letter-spacing:.02em}.week-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.week-col-label{font-size:12px;font-weight:700;color:var(--ink-soft);text-align:center;padding-bottom:4px}.week-cell{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 6px;font-size:11px;margin-bottom:6px}.week-cell .cname{font-weight:700;display:block}.week-cell .ctime{color:var(--ink-soft);display:block;margin-top:2px}.login-screen{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px}.login-screen h1{font-size:24px;margin-bottom:4px}.login-screen p{color:var(--ink-soft);font-size:14px;margin-bottom:24px}.login-screen input{width:100%;padding:14px 16px;border-radius:var(--radius);border:1.5px solid var(--line);font-size:18px;letter-spacing:.1em;font-family:var(--font-body);margin-bottom:12px}.login-screen button{width:100%;padding:14px 0;border-radius:var(--radius);border:none;background:var(--brand);color:#fff;font-weight:700;font-size:15px;font-family:var(--font-body);cursor:pointer}.error-text{color:var(--absent);font-size:13px;margin-bottom:8px}.empty-state{color:var(--ink-soft);font-size:14px;padding:24px 0;text-align:center}.admin-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px}.admin-form input,.admin-form select{padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);font-family:var(--font-body);font-size:14px}.admin-form-row{display:flex;gap:8px}.admin-form-row select,.admin-form-row input{flex:1}.admin-form button{padding:10px 0;border-radius:10px;border:none;background:var(--brand);color:#fff;font-weight:700;font-family:var(--font-body);cursor:pointer}.admin-list{margin-bottom:22px}.admin-list-row{display:flex;justify-content:space-between;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:6px;font-size:14px;cursor:pointer}.admin-list-row .dim{color:var(--ink-soft);font-size:12px}.admin-class-block{margin-bottom:6px}.roster-box{background:var(--brand-soft);border-radius:0 0 10px 10px;padding:10px 14px;margin-top:-8px;display:flex;flex-direction:column;gap:6px}.roster-check{display:flex;align-items:center;gap:8px;font-size:14px}.row-actions{display:flex;gap:10px;align-items:center}.link-btn{background:none;border:none;padding:0;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--brand);cursor:pointer}.link-btn.danger{color:var(--absent)}.admin-form-row button{padding:10px 0;border-radius:10px;border:none;font-family:var(--font-body);font-weight:700;cursor:pointer}.admin-form-row button[type=submit]{background:var(--brand);color:#fff}.admin-form-row button[type=button]{background:var(--unmarked-bg);color:var(--ink-soft)}
