:root{font-family:SUIT Variable,Pretendard Variable,Noto Sans KR,Apple SD Gothic Neo,sans-serif;line-height:1.5;font-weight:400;color:#1f2c28;background:radial-gradient(circle at top,rgba(255,222,163,.42),transparent 28%),linear-gradient(180deg,#f3efe3,#eef4ef 52%,#f8f5ef);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}#root{min-height:100vh}.app-shell{width:min(1180px,calc(100vw - 32px));margin:0 auto;padding:32px 0 56px}.hero{display:grid;grid-template-columns:1.8fr 1fr;gap:24px;margin-bottom:28px;padding:28px;border:1px solid rgba(36,74,62,.14);border-radius:28px;background:radial-gradient(circle at top left,rgba(255,217,102,.35),transparent 28%),linear-gradient(135deg,#f8f4e9f5,#e7f3eefa);box-shadow:0 24px 60px #36423e1f}.eyebrow{margin:0 0 10px;font-size:.8rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#0f6b50}.hero h1{margin:0;font-size:clamp(2.1rem,5vw,3.8rem);line-height:1.02;letter-spacing:-.05em}.hero-text{max-width:60ch;margin:18px 0 0;color:#3f544d}.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.hero-badges span,.pill{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;background:#ffffffb3;color:#21453a;font-size:.9rem;font-weight:700}.summary-panel{display:grid;gap:14px}.summary-card{display:grid;gap:6px;padding:18px;border-radius:22px;background:#ffffffb8;border:1px solid rgba(36,74,62,.1)}.summary-card strong{font-size:1.4rem}.summary-card span{color:#4c6058}.summary-card.accent{background:#194e42;color:#f7f6ef}.summary-card.accent span{color:#f7f6efcc}.source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.source-card{display:grid;gap:16px;padding:18px;border-radius:22px;background:#fffdfa;border:1px solid rgba(36,74,62,.1)}.source-card.focused{background:linear-gradient(135deg,#194e42,#2f7461);color:#f6f2e8}.source-card h2{margin:4px 0 10px;font-size:1.2rem}.source-card p{margin:0;color:inherit;opacity:.88}.source-label{font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.source-card a,.actions a{display:inline-flex;width:fit-content;align-items:center;justify-content:center;padding:10px 14px;border-radius:14px;background:#194e4214;color:#16453a}.source-card.focused a{background:#ffffff24;color:#fff7e8}.toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;padding:16px;border-radius:22px;background:#fffdf8eb;border:1px solid rgba(36,74,62,.08);position:sticky;top:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toolbar label,.meta-block,.memo-field{display:grid;gap:8px}.toolbar label{font-size:.92rem;font-weight:700;color:#40554d}.resource-list{display:grid;gap:14px}.resource-card{padding:20px;border-radius:24px;border:1px solid rgba(36,74,62,.1);background:#ffffffeb;box-shadow:0 16px 40px #313b3914}.resource-card.highlight{border-color:#0f6b5042;background:linear-gradient(180deg,#f3f9f5eb,#fffffffa),#fff}.source-link{display:inline-flex;width:fit-content;align-items:center;justify-content:center;padding:10px 14px;border-radius:14px;background:#194e4214;color:#16453a}.resource-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.unit-info{flex:1}.unit-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-end}.unit-save-button{background:linear-gradient(135deg,#0f6b50,#1f6c56);color:#fff;padding:10px 20px;border-radius:14px;font-weight:800;cursor:pointer;border:none;transition:all .2s ease;box-shadow:0 4px 12px #0f6b5033;white-space:nowrap}.unit-save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0f6b504d;background:linear-gradient(135deg,#128060,#258a6d)}.unit-save-button:active:not(:disabled){transform:translateY(0)}.unit-save-button:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.status-badge.저장중{background:#ffeb3b;color:#856404}.resource-head h3{margin:10px 0 8px;font-size:1.35rem}.resource-head p{margin:0;color:#51645d}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill.grade{background:#1f6c56;color:#f9f6ec}.pill.unit{background:#ffd87861}.actions{display:grid;gap:10px;align-content:start}.attachment-list{display:grid;gap:12px;margin-top:18px}.attachment-card{padding:20px;border-radius:20px;background:#fdfcf9;border:1px solid rgba(36,74,62,.08);box-shadow:0 2px 8px #00000005}.attachment-head{display:flex;flex-direction:column;gap:16px}.attachment-info-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.attachment-title{font-size:1.05rem;color:#1a2e28;flex:1;min-width:200px}.attachment-actions{display:flex;gap:8px}.result-form{display:grid;grid-template-columns:160px 100px 1fr 100px;gap:12px;align-items:end;padding:16px;background:#194e4208;border-radius:14px;border:1px solid rgba(25,78,66,.06)}.card-save-button{background:linear-gradient(135deg,#0f6b50,#1a8a69);color:#fff;height:46px;padding:0 24px;border-radius:12px;font-weight:800;cursor:pointer;border:none;font-size:.9rem;transition:all .2s ease;box-shadow:0 4px 12px #0f6b5026;white-space:nowrap}.card-save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0f6b5040;background:linear-gradient(135deg,#128060,#21a17e)}.card-save-button:active:not(:disabled){transform:translateY(0)}.card-save-button:disabled{background:#cbd5e0;color:#718096;cursor:not-allowed;box-shadow:none}.result-form label{display:grid;gap:8px;font-size:.9rem;font-weight:700;color:#40554d}.memo-label{min-width:0}.empty-state{padding:32px;border-radius:24px;background:#ffffffd1;border:1px solid rgba(36,74,62,.08)}.meta-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:12px;margin-top:18px}.meta-block{padding:14px;border-radius:18px;background:#f6f4ee}.meta-block.toggle{align-content:center}.meta-label{font-size:.82rem;font-weight:800;color:#5e7069;text-transform:uppercase;letter-spacing:.05em}.memo-field{margin-top:12px}.memo-field textarea{min-height:92px;resize:vertical}select,textarea,button,input[type=checkbox]{font:inherit}select,textarea{width:100%;padding:12px 14px;border:1px solid rgba(42,71,63,.14);border-radius:14px;background:#fffdf8;color:#20312b}button{border:none;padding:11px 16px;border-radius:14px;background:linear-gradient(135deg,#f28f3b,#ffb95e);color:#2c1a08;font-weight:800}button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #f28f3b47}button.secondary,button.ghost{background:#efe9db;color:#294039;box-shadow:none}button.ghost{padding:8px 12px}input[type=checkbox]{width:20px;height:20px;accent-color:#0f6b50}input[type=text],input[type=date]{width:100%;padding:12px 14px;border:1px solid rgba(42,71,63,.14);border-radius:14px;background:#fffdf8;color:#20312b}@media(max-width:960px){.hero,.source-grid,.toolbar,.meta-grid{grid-template-columns:1fr}.resource-head{flex-direction:column}.actions{grid-template-columns:repeat(2,minmax(0,1fr))}.attachment-head{grid-template-columns:1fr;align-items:start}.result-form{grid-template-columns:1fr}}@media(max-width:640px){.app-shell{width:min(100vw - 20px,1180px);padding-top:18px}.hero,.resource-card,.toolbar,.source-card{border-radius:20px}.actions{grid-template-columns:1fr}}
