:root{--primary:#3157d5;--primary-dark:#2443ad;--primary-soft:#edf1ff;--ink:#18213a;--muted:#687087;--line:#e5e8f0;--surface:#fff;--background:#f5f7fb;--success:#138a5b;--danger:#d43d4c;--shadow:0 10px 30px rgba(31,44,81,.08)}
*{box-sizing:border-box}html{font-family:Inter,Pretendard,"Noto Sans KR",system-ui,sans-serif;color:var(--ink);background:var(--background)}body{margin:0;min-height:100vh;padding-bottom:104px}button,input,select{font:inherit}.container{width:min(100% - 32px,800px);margin-inline:auto}.site-header{color:#fff;background:linear-gradient(135deg,#294bc2,#5274e8);padding:30px 0 52px}.site-header.compact{padding:22px 0 28px}.site-header p{margin:0 0 4px;font-size:.86rem;opacity:.8}.site-header h1{margin:0;font-size:1.75rem;letter-spacing:-.04em}.header-row{display:flex;gap:16px;align-items:center}.back-link{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#fff;background:rgba(255,255,255,.14);font-size:1.5rem;text-decoration:none}.main-content{margin-top:-28px}.summary-card,.section-card,.application-card,.state-card,.success-card{background:var(--surface);border:1px solid rgba(229,232,240,.8);border-radius:22px;box-shadow:var(--shadow)}.summary-card{padding:26px;background:linear-gradient(145deg,#fff 55%,#f0f3ff)}.eyebrow{margin:0 0 7px;color:var(--primary);font-size:.8rem;font-weight:800;letter-spacing:.03em}.big-number{display:block;font-size:3.4rem;line-height:1.1;letter-spacing:-.06em;margin-bottom:24px}.goal-line{display:flex;justify-content:space-between;font-size:.92rem}.progress{height:12px;margin:10px 0;border-radius:99px;background:#e8ebf5;overflow:hidden}.progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#6e8cf4);transition:width .5s ease}.goal-copy{margin:0;color:var(--muted);font-size:.86rem}.section-card{margin-top:18px;padding:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.section-heading.outside{margin:30px 4px 14px}.section-heading h2,.form-intro h2{margin:0;font-size:1.25rem;letter-spacing:-.03em}.period-badge{padding:6px 10px;border-radius:99px;color:var(--primary);background:var(--primary-soft);font-size:.75rem;font-weight:700}.student-list{padding:0;margin:0;list-style:none}.student-row{display:grid;grid-template-columns:1fr auto 82px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.student-row:last-child{border:0}.student-name{font-weight:650}.student-row strong{font-size:1.05rem}.goal-state{color:var(--muted);font-size:.8rem;text-align:right}.goal-state.achieved{color:var(--success);font-weight:800}.recent-list{display:grid;gap:12px}.application-card{padding:20px}.application-head{display:flex;justify-content:space-between;color:var(--primary);font-size:.84rem}.application-date{color:var(--muted)}.application-company{margin:17px 0 5px;font-size:1.15rem}.application-position,.application-site{margin:0;color:var(--muted);font-size:.9rem}.application-site{margin-top:8px}.application-actions{display:flex;align-items:center;gap:18px;margin-top:18px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border:0;border-radius:13px;font-weight:750;text-decoration:none;cursor:pointer}.button:disabled{opacity:.55;cursor:wait}.button-primary{color:#fff;background:var(--primary)}.button-primary:hover{background:var(--primary-dark)}.button-secondary{color:var(--primary);background:var(--primary-soft)}.button-ghost{color:var(--muted);background:#f0f2f6}.button-danger{color:#fff;background:var(--danger)}.text-button{padding:8px;border:0;color:#8a5160;background:transparent;text-decoration:underline;cursor:pointer}.floating-action{position:fixed;z-index:5;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 32px),520px);min-height:60px;color:#fff;background:var(--primary);box-shadow:0 12px 30px rgba(49,87,213,.35);font-size:1rem}.floating-action span{margin-right:6px;font-size:1.35rem}.state-card,.empty-card{text-align:center;padding:42px 20px}.state-card p{color:var(--muted)}.spinner{display:inline-block;width:30px;height:30px;border:3px solid #dce2f6;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-card{border:1px dashed #cdd3e3;border-radius:18px;color:var(--muted);line-height:1.7}.modal{width:min(calc(100% - 32px),420px);padding:0;border:0;border-radius:22px;box-shadow:0 25px 80px rgba(20,29,56,.28)}.modal::backdrop{background:rgba(15,20,37,.55)}.modal form{padding:27px}.modal h2{margin:10px 0}.modal-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--danger);background:#fff0f1;font-weight:900}.modal label,.form-card label{display:block;margin:18px 0 7px;font-size:.9rem;font-weight:750}.form-card label span{color:var(--primary);font-size:.72rem}.modal input,.form-card input,.form-card select{width:100%;height:52px;padding:0 14px;border:1px solid #d6dae5;border-radius:12px;color:var(--ink);background:#fff}.modal input:focus,.form-card input:focus,.form-card select:focus{outline:3px solid rgba(49,87,213,.15);border-color:var(--primary)}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.register-main{margin-top:20px}.form-card{margin-top:0}.form-intro{padding-bottom:8px}.form-intro>p:last-child{margin:10px 0 0;color:var(--muted);font-size:.9rem}.form-error{min-height:20px;margin:13px 0 7px;color:var(--danger);font-size:.86rem}.submit-button{width:100%;min-height:58px}.success-card{padding:42px 24px;text-align:center}.success-check{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 20px;border-radius:50%;color:#fff;background:var(--success);font-size:2rem}.success-card h2{margin:4px 0 24px;font-size:1.8rem}.success-name{font-size:1.2rem}.count-change{font-size:1.3rem}.count-change b{padding:0 8px;color:var(--primary)}.success-message{margin:20px 0;color:var(--success);font-weight:750}.success-card .button{width:100%;margin-top:12px}.form-card select:disabled{background:#f0f1f5}.form-card input::placeholder{color:#a4a9b8}
@media(min-width:700px){body{padding-bottom:120px}.site-header{padding-top:42px}.summary-card{padding:34px}.big-number{font-size:4.25rem}.section-card{padding:28px}.recent-list{grid-template-columns:repeat(2,minmax(0,1fr))}.floating-action{width:360px}.application-card{display:flex;flex-direction:column}.application-actions{margin-top:auto;padding-top:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}
