:root {
  --quest-paper: #fffaf0;
  --quest-ink: #513b22;
  --quest-brown: #7d531f;
  --quest-gold: #d99b24;
  --quest-green: #4f9e50;
}

.student-quest-page { min-height: 100vh; background: #dff4ff url("/token-assets/page-background.png") center / cover fixed; color: var(--quest-ink); }
.student-quest-page [hidden] { display: none !important; }
.student-quest-teacher-mode {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 13050;
  min-height: 44px;
  border: 1px solid rgb(148 163 184 / 35%);
  border-radius: 999px;
  background: rgb(15 23 42 / 92%);
  padding: 10px 14px;
  color: #f8fafc;
  box-shadow: 0 16px 36px rgb(15 23 42 / 35%);
  backdrop-filter: blur(12px);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.student-quest-teacher-mode:hover,
.student-quest-teacher-mode:focus-visible { border-color: #60a5fa; background: #183455; outline: 3px solid rgb(96 165 250 / 24%); }
.student-quest-page .student-token-layout { align-items: start; }
.student-quest-main { min-width: 0; padding: 18px 18px 34px 0; }
.student-quest-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; min-height: 146px; border: 5px solid #8b5d24; border-radius: 30px 16px 24px 22px; background: linear-gradient(180deg, #fff9e8, #f4dfb1); padding: 20px 28px; box-shadow: inset 0 0 0 2px #d4a451, 0 10px 24px #4c6f7d38; }
.student-quest-hero-copy p,
.student-quest-ledger-heading p,
.student-quest-chest-copy > p { margin: 0 0 5px; color: #1d6ab4; font-size: 11px; font-weight: 1000; letter-spacing: .13em; }
.student-quest-hero h1 { margin: 0; color: #3f2b17; font-family: Georgia, "Noto Serif KR", serif; font-size: clamp(25px, 3vw, 40px); }
.student-quest-hero-copy > span { display: block; margin-top: 8px; color: #725330; font-size: 13px; font-weight: 750; line-height: 1.45; }
.student-quest-profile { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.student-quest-profile strong { border-radius: 999px; background: #2f6e9f; padding: 4px 11px; color: #fff; font-size: 10px; font-weight: 1000; }
.student-quest-summary { display: grid; grid-template-columns: repeat(3, minmax(88px, 1fr)); gap: 8px; margin: 0; }
.student-quest-summary div { min-width: 92px; border-left: 1px solid #d1b47a; padding: 5px 12px; text-align: center; }
.student-quest-summary dt { color: #8a6b41; font-size: 10px; font-weight: 900; }
.student-quest-summary dd { margin: 5px 0 0; color: #40301f; font-size: 19px; font-weight: 1000; white-space: nowrap; }

.student-quest-chest { position: relative; display: block; margin: 16px 22px 0; border: 8px solid #9a6120; border-radius: 14px; background: linear-gradient(180deg, #fff3cc, #f7d98f); padding: 16px 190px 16px 24px; box-shadow: inset 0 0 0 3px #efbd56, 0 8px 18px #68481928; }
.student-quest-chest-copy h2 { margin: 0; font-family: Georgia, "Noto Serif KR", serif; font-size: 21px; }
.student-quest-chest-copy > span { display: block; margin-top: 6px; color: #765632; font-size: 12px; font-weight: 800; }
.student-quest-chest-copy .student-quest-goal-target { color: #168b55; font-weight: 1000; }
.student-quest-chest-hotspot { position: absolute; right: 24px; bottom: 8px; width: 180px; height: 110px; border: 0; background: transparent; padding: 0; cursor: pointer; }
.student-quest-chest-hotspot > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.student-quest-chest-hotspot:disabled { cursor: default; }
.student-quest-chest-hotspot:not(:disabled):focus-visible { outline: 3px solid #176a47; outline-offset: 2px; border-radius: 18px; }
.student-quest-progress { display: inline-block; width: min(560px, calc(100% - 60px)); height: 14px; margin-top: 15px; overflow: hidden; border: 2px solid #9b763b; border-radius: 10px; background: #e6d7b3; vertical-align: middle; }
.student-quest-progress span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #40a853, #85c54d); transition: width .2s ease; }
.student-quest-chest-copy > strong { display: inline-block; margin-left: 9px; color: #194e8b; font-size: 17px; }
.student-quest-chest-actions { position: absolute; right: 20px; top: 14px; display: flex; gap: 6px; z-index: 1; }
.student-quest-chest-actions button { min-height: 32px; border: 1px solid #a6762d; border-radius: 16px; background: #fff8e7e6; padding: 0 10px; color: #6b4b25; font: inherit; font-size: 9px; font-weight: 900; cursor: pointer; }
.student-quest-chest-actions button:last-child { border-color: #489659; background: #efffeb; color: #2c763e; }
.student-quest-chest-actions button:disabled { cursor: default; filter: grayscale(1); opacity: .55; }
.student-quest-stat-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: -24px 76px 8px; padding: 0; position: relative; z-index: 2; }
.student-quest-stat-strip button { border: 3px solid #8c5d28; border-radius: 9px; background: linear-gradient(180deg, #fff3c9, #eacb84); padding: 9px 12px; box-shadow: inset 0 0 0 1px #fff2bd, 0 3px 4px #5b3c2238; color: inherit; font: inherit; text-align: center; cursor: pointer; }
.student-quest-stat-strip button > span { display: block; color: #654522; font-size: 9px; font-weight: 1000; }
.student-quest-stat-strip button > strong { display: block; margin: 4px 0 0; color: #247b47; font-size: 18px; font-weight: 1000; }
.student-quest-stat-strip button:nth-child(3) > strong { color: #bd691c; }
.student-quest-stat-strip button:nth-child(4) > strong { color: #3177a6; }
.student-quest-message { min-height: 21px; margin: 8px 24px 2px; color: #6f613f; font-size: 11px; font-weight: 800; }
.student-quest-message[data-tone="good"] { color: #277b45; }
.student-quest-message[data-tone="bad"] { color: #a43932; }

.student-quest-detail { position: relative; min-height: 390px; scroll-margin-top: 12px; margin: 8px 28px 12px; background: url("/token-assets/quest-board/mission-workspace-board.png") center / 100% 100% no-repeat; padding: 52px 64px 48px; color: #4f371d; }
.student-quest-detail-close { position: absolute; top: 18px; right: 24px; z-index: 2; display: grid; place-items: center; width: 38px; min-height: 38px; border: 1px solid #af8b55; border-radius: 50%; background: #fff9e9e8; color: #6a4825; font: inherit; cursor: pointer; box-shadow: 0 4px 12px #56371f2e; }
.student-quest-workspace-heading { display: flex; align-items: center; gap: 12px; padding: 0 8px 12px; }
.student-quest-workspace-heading > img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 3px 2px #67441d3d); }
.student-quest-workspace-kicker { margin: 0 0 3px; color: #2a70aa; font-size: 9px; font-weight: 1000; letter-spacing: .1em; }
.student-quest-workspace-heading h2 { margin: 0; color: #432d17; font-family: Georgia, "Noto Serif KR", serif; font-size: 22px; }
.student-quest-workspace-heading span { display: block; margin-top: 4px; color: #72583a; font-size: 11px; font-weight: 750; line-height: 1.5; }
.student-quest-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 18px; }
.student-quest-native-panel { min-width: 0; padding: 15px 18px; }
.student-quest-native-kicker { display: block; margin-bottom: 5px; color: #267559; font-size: 10px; font-weight: 1000; letter-spacing: .08em; }
.student-quest-native-panel > strong { display: block; color: #3f2b18; font-size: 17px; }
.student-quest-workspace-section { margin-top: 12px; border-top: 1px solid #d8c59e; padding-top: 9px; }
.student-quest-workspace-section h3 { margin: 0 0 4px; color: #795326; font-size: 10px; }
.student-quest-workspace-section p { margin: 0; color: #654c30; font-size: 11px; font-weight: 700; line-height: 1.55; white-space: pre-wrap; }
.student-quest-copy-link { color: #0b65a5; font-weight: 900; overflow-wrap: anywhere; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.student-quest-copy-link:hover { color: #084f82; }
.student-quest-copy-link:focus-visible { border-radius: 3px; outline: 3px solid #2f6f9f; outline-offset: 2px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-workspace-kicker { font-size: 12px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-workspace-heading h2 { font-size: 25px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-workspace-heading span { font-size: 15px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-native-kicker { font-size: 13px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-native-panel > strong { font-size: 20px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-workspace-section h3 { font-size: 13px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-workspace-section p { font-size: 15px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-native-meta span { font-size: 12px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-field { font-size: 16px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-field > span { font-size: 14px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-field textarea,
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-field input[type="file"] { font-size: 16px; }
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-loading,
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-error,
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-empty,
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-note,
.student-quest-detail[data-mission-kind="assignment"] .student-quest-assignment-submit { font-size: 15px; }
.student-quest-board-evidence { display: grid; gap: 7px; margin-top: 12px; border-top: 1px solid #d8c59e; padding-top: 10px; }
.student-quest-board-evidence > h3 { margin: 0; color: #795326; font-size: 10px; }
.student-quest-board-evidence-title { color: #49321d; font-size: 12px; }
.student-quest-board-evidence-copy,
.student-quest-board-evidence-state { margin: 0; color: #654c30; font-size: 10px; font-weight: 750; line-height: 1.5; white-space: pre-wrap; }
.student-quest-board-evidence .board-file-gallery { display: grid; grid-template-columns: 1fr; gap: 6px; margin-top: 2px; }
.student-quest-board-evidence .board-file-card { min-width: 0; border: 0; background: transparent; padding: 0; }
.student-quest-board-evidence .board-file-image-link { display: block; }
.student-quest-board-evidence .board-file-card img { display: block; width: 100%; height: 132px; border: 1px solid #d8c59e; border-radius: 8px; object-fit: cover; }
.student-quest-board-evidence .board-file-card > strong,
.student-quest-board-evidence .board-file-card > span,
.student-quest-board-evidence .board-file-card > .board-row-actions { display: none; }
.student-quest-native-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.student-quest-native-meta span { border: 1px solid #bd9a61; border-radius: 999px; background: #fff8df80; padding: 4px 9px; color: #765024; font-size: 9px; font-weight: 1000; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-workspace-heading h2 { font-size: 25px; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-workspace-kicker { color: #176444; font-size: 12px; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-workspace-heading span { color: #36526f; font-size: 15px; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-workspace-grid { grid-template-columns: minmax(220px, .78fr) minmax(0, 1.22fr); gap: 12px; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-native-panel { display: grid; align-content: start; gap: 11px; border: 1px solid #dbe6f4; border-radius: 8px; background: #fff; padding: 14px; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-native-panel--accent { background: linear-gradient(180deg, #f4fff8, #f8fbff); }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-native-kicker { margin: 0; color: #176444; font-size: 12px; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-native-panel > strong { color: #14355f; font-size: 20px; line-height: 1.25; overflow-wrap: anywhere; }
.student-quest-bonus-copy { margin: 0; color: #36526f; font-size: 14px; font-weight: 750; line-height: 1.55; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-native-meta { margin-top: 0; }
.student-quest-detail[data-mission-kind="bonus"] .student-quest-native-meta span { border: 0; background: #edf7ff; padding: 7px 10px; color: #24425f; font-size: 12px; }
.student-quest-bonus-condition-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.student-quest-bonus-condition-chips span { border: 1px solid #50341624; border-radius: 999px; background: #f5f7faeb; padding: 4px 8px; color: #334155; font-size: 12px; font-weight: 1000; line-height: 1.2; }
.student-quest-bonus-condition-chips span[data-tone="goal"] { border-color: #b4530947; background: #fef3c7f5; color: #92400e; }
.student-quest-bonus-condition-chips span[data-tone="record"] { border-color: #0e74903d; background: #cffafee6; color: #155e75; }
.student-quest-bonus-condition-chips span[data-tone="missing"] { border-color: #be12383d; background: #ffe4e6f0; color: #9f1239; }
.student-quest-bonus-condition-chips span[data-tone="done"] { border-color: #16653438; background: #dcfce7f0; color: #166534; }
.student-quest-bonus-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.student-quest-bonus-action { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; border: 1px solid #b6c7d8; border-radius: 22px; background: #fff; padding: 0 16px; color: #34506d; font: inherit; font-size: 11px; font-weight: 1000; text-decoration: none; cursor: pointer; }
.student-quest-bonus-action.is-primary { border-color: #4f8d51; background: #eef9de; color: #326e36; }
.student-quest-bonus-action:disabled { cursor: default; filter: grayscale(.7); opacity: .65; }
.student-quest-workspace-field { display: grid; gap: 5px; color: #674822; font-size: 10px; font-weight: 1000; }
.student-quest-workspace-field > span { justify-self: end; margin-top: -18px; color: #98764b; font-size: 8px; }
.student-quest-workspace-field textarea { min-height: 88px; border: 1px solid #c6aa78; border-radius: 10px; background: transparent; padding: 9px; color: #72583a; font: inherit; resize: none; }
.student-quest-workspace-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 14px 0 0; border-block: 1px solid #d8c59e; padding: 10px 0; }
.student-quest-workspace-metrics div { min-width: 0; border-left: 1px solid #d8c59e; padding: 0 9px; }
.student-quest-workspace-metrics div:first-child { border-left: 0; }
.student-quest-workspace-metrics dt { color: #98764b; font-size: 8px; font-weight: 1000; }
.student-quest-workspace-metrics dd { margin: 4px 0 0; overflow: hidden; color: #4d361e; font-size: 10px; font-weight: 1000; text-overflow: ellipsis; white-space: nowrap; }
.student-quest-workspace-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.student-quest-workspace-actions > span { margin-right: auto; color: #76552d; font-size: 10px; font-weight: 900; }
.student-quest-detail-action { min-height: 42px; border: 1px solid #4f8d51; border-radius: 22px; background: #eef9de; padding: 0 16px; color: #326e36; font: inherit; font-size: 10px; font-weight: 1000; cursor: pointer; }
.student-quest-detail-action[data-tone="pending"] { border-color: #c1903c; background: #fff4d2; color: #8b5a18; }
.student-quest-detail-action:disabled { cursor: default; filter: grayscale(.7); opacity: .65; }

.student-job-quest { color: #3d2b18; }
.student-job-quest__head { display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid #d2b477; padding-bottom: 16px; }
.student-job-quest__head p { margin: 0 0 5px; color: #8b5b1f; font-size: 10px; font-weight: 1000; letter-spacing: .08em; }
.student-job-quest__head h2 { margin: 0; font-family: Georgia, "Noto Serif KR", serif; font-size: clamp(25px, 3vw, 38px); }
.student-job-quest__pay { border: 1px solid #c59a55; border-radius: 999px; background: #fff7df; padding: 9px 14px; color: #735020; font-size: 11px; }
.student-job-quest__steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 18px 0; padding: 0; list-style: none; }
.student-job-quest__steps li { position: relative; display: grid; justify-items: center; gap: 5px; color: #998365; font-size: 9px; text-align: center; }
.student-job-quest__steps li:not(:last-child)::after { position: absolute; top: 13px; left: calc(50% + 15px); right: calc(-50% + 15px); height: 2px; background: #cab995; content: ""; }
.student-job-quest__steps b { position: relative; z-index: 1; display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #af9973; border-radius: 50%; background: #fffaf0; font-size: 9px; }
.student-job-quest__steps [data-state="current"] b { border-color: #2d8a45; background: #2e963f; color: #fff; box-shadow: 0 0 0 4px #dcefd6; }
.student-job-quest__steps [data-state="complete"] b { border-color: #4a8e4f; color: #31763a; }
.student-job-quest__steps [data-state="complete"]::after { background: #5d9d5f; }
.student-job-quest__schedule { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: -6px 0 18px; }
.student-job-quest__schedule div { border: 1px solid #d8c292; border-radius: 9px; background: #fff9e9; padding: 8px 10px; }
.student-job-quest__schedule dt { color: #90662b; font-size: 8px; font-weight: 1000; }
.student-job-quest__schedule dd { margin: 3px 0 0; color: #4f3820; font-size: 10px; font-weight: 900; }
.student-job-quest__body { display: grid; gap: 16px; }
.student-job-quest__intro { display: flex; align-items: center; gap: 10px; border: 1px solid #ddc18b; border-radius: 12px; background: #fff9e9; padding: 12px 15px; }
.student-job-quest__mode { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 27px; border: 1px solid #6f9b56; border-radius: 7px; background: #eff9df; color: #397339; font-size: 9px; font-weight: 1000; }
.student-job-quest__mode[data-mode="required"] { border-color: #d86343; background: #fff0e8; color: #a33d25; }
.student-job-quest__primary { min-height: 48px; border: 1px solid #26763a; border-radius: 12px; background: #2f953e; padding: 0 28px; color: #fff; font: inherit; font-weight: 1000; box-shadow: inset 0 1px #83c774; cursor: pointer; }
.student-job-quest__primary:disabled { cursor: default; filter: grayscale(.8); opacity: .62; }
.student-job-quest--application .student-job-quest__head { align-items: flex-start; min-height: 76px; padding: 0 0 15px; }
.student-job-quest--application .student-job-quest__head h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.05; }
.student-job-quest--application .student-job-quest__application-copy { margin: 10px 0 0; color: #3d2b18; font-size: 13px; font-weight: 800; letter-spacing: 0; }
.student-job-quest--application .student-job-quest__pay { display: inline-flex; min-height: 42px; align-items: center; margin-right: 36%; padding-inline: 17px; font-size: 12px; white-space: nowrap; }
.student-job-application__progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(350px, 39%); justify-self: end; margin: -76px 0 27px; padding: 0; list-style: none; }
.student-job-application__progress li { position: relative; display: grid; justify-items: center; gap: 7px; color: #746c5d; font-size: 10px; font-weight: 900; text-align: center; }
.student-job-application__progress li:not(:last-child)::after { position: absolute; top: 35px; left: calc(50% + 9px); right: calc(-50% + 9px); height: 2px; background: #aaa79f; content: ""; }
.student-job-application__progress b { order: 2; z-index: 1; display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid #6e706c; border-radius: 50%; background: #969895; color: transparent; font-size: 0; }
.student-job-application__progress [data-state="current"] { color: #176f30; }
.student-job-application__progress [data-state="current"] b { border-color: #176f30; background: #269844; box-shadow: 0 0 0 3px #e4f1dc; }
.student-job-application__progress [data-state="complete"] b { border-color: #3c8b4f; background: #66a66e; }
.student-job-application__progress [data-state="complete"]::after { background: #55995f; }
.student-job-application { display: grid; grid-template-columns: minmax(220px, .95fr) minmax(260px, 1.15fr) minmax(250px, 1.05fr); gap: 0; border: 1px solid #d8bb7e; background: #fffaf083; }
.student-job-application > section { min-width: 0; border-right: 1px solid #d8bb7e; padding: 20px 18px; }
.student-job-application > section:last-child { border-right: 0; }
.student-job-result > section { border: 1px solid #d5b87f; border-radius: 12px; background: #fffaf0aa; padding: 16px; }
.student-job-application h3, .student-job-result h3, .student-job-activity h3 { margin: 0 0 8px; font-family: Georgia, "Noto Serif KR", serif; font-size: 18px; }
.student-job-application h3 > i { margin-right: 4px; color: #8a570f; font-size: 17px; }
.student-job-application__hint { margin: 0 0 14px; color: #6f5a3e; font-size: 9px; font-weight: 700; }
.student-job-application__catalog { display: grid; align-content: start; }
.student-job-application__catalog-list { display: grid; max-height: 496px; gap: 5px; overflow-y: auto; padding-right: 2px; scrollbar-color: #c79445 transparent; scrollbar-width: thin; }
.student-job-choice { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr) 27px; align-items: center; gap: 9px; min-height: 58px; border: 1px solid #d8bb7e; border-radius: 9px; background: #fffdf7b8; padding: 7px 9px; color: #352719; text-align: left; cursor: pointer; }
.student-job-choice > i { color: #9d6718; font-size: 23px; text-align: center; }
.student-job-choice span strong, .student-job-choice span small { display: block; }
.student-job-choice span strong { font-size: 12px; }
.student-job-choice span small { display: -webkit-box; margin-top: 4px; overflow: hidden; color: #6f5d45; font-size: 8px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.student-job-choice.is-selected { border-color: #277d38; background: linear-gradient(180deg, #4ca53c, #258835); color: #fff; box-shadow: inset 0 1px #8bd27d; }
.student-job-choice.is-selected > i, .student-job-choice.is-selected span small { color: #fff7df; }
.student-job-choice.is-focused:not(.is-selected) { outline: 2px solid #e2bd70; outline-offset: -3px; }
.student-job-choice__check { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: #fff; color: #26783a; font-size: 12px; }
.student-job-application__details { color: #3e2b18; }
.student-job-application__job-title { margin: 18px 0 15px; padding-bottom: 15px; border-bottom: 1px dashed #d3ae6b; font-family: Georgia, "Noto Serif KR", serif; font-size: 24px; line-height: 1.2; }
.student-job-application__facts { margin: 0; }
.student-job-application__facts > div { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 8px; border-bottom: 1px dashed #d9b978; padding: 10px 0; }
.student-job-application__facts dt { font-size: 10px; font-weight: 1000; }
.student-job-application__facts dd { margin: 0; color: #3e3326; font-size: 10px; font-weight: 750; line-height: 1.55; }
.student-job-application__stars { display: inline-flex; gap: 3px; color: #eea817; font-size: 17px; }
.student-job-application__stars .fa-regular { color: #d4c8ad; }
.student-job-application__salary { color: #13712e !important; font-size: 14px !important; font-weight: 1000 !important; }
.student-job-application__salary i { color: #e9a515; }
.student-job-application__task-group { border-bottom: 1px dashed #d9b978; padding: 13px 0 10px; }
.student-job-application__task-group:last-child { border-bottom: 0; }
.student-job-application__task-group h4 { margin: 0 0 7px; font-size: 11px; }
.student-job-application__task-group h4 i { width: 25px; color: #3e9148; font-size: 18px; text-align: center; }
.student-job-application__task-group ul { display: grid; gap: 4px; margin: 0; padding-left: 43px; color: #413525; font-size: 10px; line-height: 1.45; }
.student-job-application__task-group p { margin: 0 0 0 32px; color: #79694f; font-size: 9px; }
.student-job-application__order-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.student-job-application__order-head strong { color: #197433; font-size: 10px; white-space: nowrap; }
.student-job-application__order ol { display: grid; gap: 22px; min-height: 260px; margin: 22px 0 16px; padding: 0; list-style: none; }
.student-job-application__order li { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) 29px 24px; align-items: center; gap: 7px; min-height: 86px; border: 2px solid #ba7c20; border-radius: 13px; background: #fffaf0bf; padding: 9px; font-weight: 900; }
.student-job-application__order li:not(:last-child)::after { position: absolute; bottom: -19px; left: 50%; color: #c79a50; content: "•••"; font-size: 9px; letter-spacing: 1px; transform: translateX(-50%) rotate(90deg); }
.student-job-application__rank { display: grid; width: 34px; height: 34px; place-items: center; border: 3px double #fff3af; border-radius: 50%; background: #db9515; color: #fff; font-size: 16px; box-shadow: 0 0 0 1px #a76d17; }
.student-job-application__order li:nth-child(2) .student-job-application__rank { background: #858585; box-shadow: 0 0 0 1px #666; }
.student-job-application__order li:nth-child(3) .student-job-application__rank { background: #bd6821; box-shadow: 0 0 0 1px #8b4715; }
.student-job-application__order-copy { display: flex; min-width: 0; align-items: center; gap: 8px; }
.student-job-application__order-copy i { flex: 0 0 auto; color: #73501d; font-size: 21px; }
.student-job-application__order-copy strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.student-job-application__order-controls { display: grid; gap: 5px; }
.student-job-application__move, .student-job-application__remove, .student-job-application__reset { border: 1px solid #d2b477; background: #fff8e9; color: #785018; font: inherit; cursor: pointer; }
.student-job-application__move { display: grid; width: 28px; min-height: 28px; place-items: center; border-radius: 7px; padding: 0; }
.student-job-application__move:disabled { cursor: default; opacity: .35; }
.student-job-application__remove { width: 24px; min-height: 24px; border: 0; border-radius: 50%; background: #f8e8c7; padding: 0; }
.student-job-application__reset { width: 100%; min-height: 40px; border-color: #bd8433; border-radius: 9px; font-size: 10px; font-weight: 1000; }
.student-job-application__reset:disabled { opacity: .45; }
.student-job-application__actions { display: flex; justify-content: center; gap: 24px; border-top: 1px dashed #d1ad6c; padding-top: 21px; }
.student-job-application__later { min-width: 220px; min-height: 48px; border: 1px solid #b88131; border-radius: 11px; background: #fff8e8a8; color: #4b351d; font: inherit; font-weight: 1000; cursor: pointer; }
.student-job-application__actions .student-job-quest__primary { min-width: 265px; }
.student-job-application__actions .student-job-quest__primary i { margin-right: 8px; color: #ffd56a; }
.student-job-quest--waiting .student-job-quest__head { display: block; border-bottom-style: dashed; padding: 0 0 24px; text-align: center; }
.student-job-quest--waiting .student-job-quest__head h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.05; }
.student-job-waiting__status { display: inline-flex; min-height: 48px; align-items: center; gap: 7px; margin-top: 17px; border: 2px solid #26783b; border-radius: 999px; padding: 0 34px; color: #18742d; font-size: 22px; }
.student-job-waiting__status i { font-size: 27px; }
.student-job-quest__head .student-job-waiting__guide { margin: 16px 0 0; color: #352b20; font-size: 15px; font-weight: 700; letter-spacing: 0; }
.student-job-waiting__guide strong { color: #11732d; }
.student-job-waiting { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(320px, .94fr); column-gap: 26px; }
.student-job-waiting > section { min-width: 0; padding: 24px 16px 20px; }
.student-job-waiting__choices { border-right: 1px solid #ddbd7e; }
.student-job-waiting h3 { margin: 0 0 5px; font-family: Georgia, "Noto Serif KR", serif; font-size: 24px; }
.student-job-waiting h3 i { width: 32px; color: #a96c0f; text-align: center; }
.student-job-waiting__hint { margin: 0 0 17px; color: #63513c; font-size: 12px; }
.student-job-waiting__list, .student-job-waiting__timeline { margin: 0; padding: 0; list-style: none; }
.student-job-waiting__list { display: grid; gap: 10px; }
.student-job-waiting__list li { display: grid; grid-template-columns: 56px 54px minmax(0, 1fr); min-height: 92px; align-items: center; border: 1px solid #ddb46b; border-radius: 13px; background: #fffaf0a8; padding: 12px 20px; }
.student-job-waiting__list li > i { color: #8d641f; font-size: 34px; text-align: center; }
.student-job-waiting__list li > span { display: grid; gap: 4px; }
.student-job-waiting__list small { color: #49351e; font-size: 12px; font-weight: 800; }
.student-job-waiting__list strong { color: #201912; font-size: 20px; }
.student-job-waiting__rank { display: grid; width: 48px; height: 48px; place-items: center; border: 4px double #fff3af; border-radius: 50%; background: #db9515; color: #fff; font-size: 23px; box-shadow: 0 0 0 1px #a76d17; }
.student-job-waiting__list li:nth-child(2) .student-job-waiting__rank { background: #858585; box-shadow: 0 0 0 1px #666; }
.student-job-waiting__list li:nth-child(3) .student-job-waiting__rank { background: #bd6821; box-shadow: 0 0 0 1px #8b4715; }
.student-job-waiting__timeline { display: grid; gap: 0; margin: 20px 0 26px 8px; }
.student-job-waiting__timeline li { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; min-height: 76px; }
.student-job-waiting__timeline li:not(:last-child)::after { position: absolute; top: 28px; bottom: -3px; left: 12px; border-left: 2px dashed #8a9698; content: ""; }
.student-job-waiting__timeline li[data-state="complete"]::after { border-color: #3b9848; }
.student-job-waiting__timeline li > i { position: relative; z-index: 1; color: #858b8c; font-size: 26px; }
.student-job-waiting__timeline li[data-state="complete"] > i { color: #26943d; }
.student-job-waiting__timeline span { display: grid; align-content: start; gap: 5px; }
.student-job-waiting__timeline strong { color: #251b12; font-size: 18px; }
.student-job-waiting__timeline li[data-state="complete"] strong { color: #16752c; }
.student-job-waiting__timeline small { color: #3e3327; font-size: 12px; line-height: 1.45; }
.student-job-waiting__fairness { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: center; gap: 8px; border: 1px solid #aebb6f; border-radius: 12px; background: #f8f9df80; padding: 13px 17px; }
.student-job-waiting__fairness > i { color: #388c3d; font-size: 38px; text-align: center; }
.student-job-waiting__fairness p { margin: 0; color: #3b3427; font-size: 12px; font-weight: 800; line-height: 1.7; }
.student-job-waiting__actions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(250px, 1.05fr) minmax(250px, .95fr); gap: 24px; border-top: 1px dashed #d1ad6c; padding: 20px 14% 0; }
.student-job-waiting__actions button { min-height: 58px; font: inherit; font-size: 17px; font-weight: 1000; cursor: pointer; }
.student-job-waiting__back { border: 1px solid #b88131; border-radius: 12px; background: #fff8e8a8; color: #392817; }
.student-job-waiting__back i { margin-right: 8px; color: #326ba6; }
.student-job-waiting__withdraw-area { grid-column: 1 / -1; display: grid; justify-items: center; gap: 3px; padding-top: 11px; }
.student-job-waiting__withdraw { border: 0; background: transparent; color: #765020; font: inherit; font-size: 15px; font-weight: 1000; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.student-job-waiting__withdraw:disabled, .student-job-waiting__edit:disabled { cursor: default; opacity: .55; }
.student-job-waiting__withdraw-area small { color: #77654d; font-size: 10px; }
.student-job-quest--result .student-job-quest__head { display: block; border-bottom-style: dashed; padding: 0 0 20px; text-align: center; }
.student-job-quest--result .student-job-quest__head h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.05; }
.student-job-result__status { display: inline-flex; min-height: 48px; align-items: center; gap: 8px; margin-top: 16px; border: 1px solid #bd7e2e; border-radius: 999px; background: #fff8e8a8; padding: 0 28px; color: #774818; font-size: 21px; }
.student-job-result__status i { font-size: 25px; }
.student-job-result__guide { display: grid; gap: 6px; margin-top: 13px; }
.student-job-result__guide p, .student-job-result__guide strong { margin: 0; font-size: 14px; letter-spacing: 0; }
.student-job-result__guide p { color: #3d3328; font-weight: 700; }
.student-job-result__guide strong { color: #14722d; }
.student-job-result { display: grid; grid-template-columns: minmax(360px, 1.04fr) minmax(340px, .96fr); gap: 0; }
.student-job-result > section { min-width: 0; border: 0; border-radius: 0; background: transparent; padding: 24px 16px 12px; }
.student-job-result__own { display: grid; align-content: start; gap: 12px; border-right: 1px dashed #d3ad66 !important; padding-right: 28px !important; }
.student-job-result h3 { margin: 0 0 2px; font-size: 24px; }
.student-job-result h3 i { width: 32px; color: #945c0c; text-align: center; }
.student-job-result__job-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 8px 18px; min-height: 170px; border: 1px solid #dcb36d; border-radius: 13px; background: #fffaf0a8; padding: 16px 22px; }
.student-job-result__job-card > i { grid-row: 1 / 3; color: #a66b13; font-size: 69px; text-align: center; }
.student-job-result__job-card h4 { align-self: end; margin: 0; color: #24190f; font-family: Georgia, "Noto Serif KR", serif; font-size: 29px; }
.student-job-result__job-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid #dfbd80; border-radius: 10px; background: #fffdf7a8; }
.student-job-result__job-card dl > div { display: grid; gap: 4px; padding: 10px 14px; text-align: center; }
.student-job-result__job-card dl > div + div { border-left: 1px solid #d9b673; }
.student-job-result__job-card dt { color: #8d5b25; font-size: 10px; font-weight: 1000; }
.student-job-result__job-card dd { margin: 0; color: #16702d; font-size: 18px; font-weight: 1000; }
.student-job-result__tasks { display: grid; grid-template-columns: 155px minmax(0, 1fr); gap: 8px 14px; border: 1px solid #dcc08a; border-radius: 11px; background: #fffaf0a8; padding: 14px 18px; }
.student-job-result__tasks h4 { margin: 0; color: #177331; font-size: 16px; }
.student-job-result__tasks--weekly h4 { color: #1c62ad; }
.student-job-result__tasks h4 i { width: 30px; font-size: 24px; text-align: center; }
.student-job-result__tasks ul { display: grid; gap: 5px; margin: 0; padding-left: 18px; color: #30271e; font-size: 12px; line-height: 1.45; }
.student-job-result__confirmation { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; border: 1px solid #d8b36f; border-radius: 11px; background: #fff8e9a8; padding: 12px 16px; }
.student-job-result__confirmation .student-job-quest__mode { align-self: start; }
.student-job-result__confirmation p { display: grid; gap: 4px; margin: 0; }
.student-job-result__confirmation strong { color: #66431b; font-size: 14px; }
.student-job-result__confirmation small { color: #6f5d46; font-size: 10px; }
.student-job-result__actions { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 12px; }
.student-job-result__actions button { min-height: 58px; font: inherit; font-size: 15px; font-weight: 1000; cursor: pointer; }
.student-job-result__actions .student-job-quest__primary i { margin-right: 7px; }
.student-job-result__activity { border: 1px solid #989898; border-radius: 12px; background: #fffdf8a8; color: #30281f; }
.student-job-result__activity i { margin-right: 7px; color: #216ab2; }
.student-job-result__activity:disabled { cursor: default; opacity: .55; }
.student-job-result__table { padding-left: 32px !important; }
.student-job-result__rows { margin-top: 12px; overflow: hidden; border: 1px solid #d6b474; border-radius: 10px; }
.student-job-result__row { display: grid; grid-template-columns: 74px minmax(110px, .85fr) minmax(130px, 1.15fr); align-items: center; min-height: 47px; margin: 0; border-bottom: 1px solid #dec596; color: #33281d; font-size: 12px; text-align: center; }
.student-job-result__row:last-child { border-bottom: 0; }
.student-job-result__row > * { display: grid; min-height: 47px; place-items: center; padding: 7px 10px; }
.student-job-result__row > * + * { border-left: 1px solid #dec596; }
.student-job-result__row--head { min-height: 40px; background: #fff3d7; font-weight: 1000; }
.student-job-result__row--head > * { min-height: 40px; }
.student-job-result__row.is-own { background: #eff9df; color: #16712d; }
.student-job-result__row.is-own > * { font-weight: 1000; }
.student-job-result__privacy { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; color: #3e3327; font-size: 11px; line-height: 1.5; }
.student-job-result__privacy i { color: #26923d; font-size: 20px; }
@media (max-width: 1050px) {
  .student-job-application, .student-job-result { grid-template-columns: 1fr; }
  .student-job-waiting { grid-template-columns: 1fr; }
  .student-job-waiting__choices { border-right: 0; border-bottom: 1px solid #ddbd7e; }
  .student-job-waiting__actions { grid-template-columns: 1fr; padding-inline: 8%; }
  .student-job-result__own { border-right: 0 !important; border-bottom: 1px dashed #d3ad66 !important; padding-right: 16px !important; }
  .student-job-result__table { padding-left: 16px !important; }
  .student-job-choice { grid-template-columns: 34px minmax(0, 1fr); }
  .student-job-choice > em { grid-column: 2; }
  .student-job-quest--application .student-job-quest__pay { margin-right: 0; }
  .student-job-application__progress { width: 100%; margin: 4px 0 18px; }
  .student-job-application > section { border-right: 0; border-bottom: 1px solid #d8bb7e; }
  .student-job-application > section:last-child { border-bottom: 0; }
}

.student-quest-ledger { margin: 4px 0 0; border: 8px solid #98601f; border-radius: 18px; background: var(--quest-paper); box-shadow: inset 0 0 0 3px #e1b65d, 0 12px 30px #5e5a4430; }
.student-quest-ledger-heading { display: flex; align-items: end; justify-content: space-between; border-bottom: 1px solid #d5bc8c; padding: 18px 24px 12px; }
.student-quest-ledger-heading p { color: #886127; }
.student-quest-ledger-heading h2 { margin: 0; font-family: Georgia, "Noto Serif KR", serif; font-size: 27px; }
.student-quest-ledger-heading > span { color: #927851; font-size: 10px; font-weight: 800; }
.student-quest-priority-summary { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.student-quest-priority-summary > span,
.student-quest-row-chips > span { display: inline-flex; align-items: center; min-height: 20px; border: 1px solid #bba47f; border-radius: 999px; background: #fffaf0; padding: 2px 7px; color: #715026; font-size: 9px; font-weight: 1000; line-height: 1.2; }
.student-quest-priority-summary > span[data-tone="due-today"],
.student-quest-row-chips > span[data-tone="due-today"] { border-color: #c85f4d; background: #fff2ee; color: #7b2f24; }
.student-quest-priority-summary > span[data-tone="chest-today"],
.student-quest-row-chips > span[data-tone="chest-today"] { border-color: #7657c8; background: #f4f0ff; color: #49358f; }
.student-quest-row-chips > span[data-tone="chest-complete"] { border-color: #5e914f; background: #eff9e9; color: #39763d; }
.student-quest-tabs { display: flex; flex-wrap: wrap; gap: 7px; padding: 10px 22px; }
.student-quest-tabs button { min-height: 34px; border: 1px solid #c9af82; border-radius: 16px; background: #fffdf8; padding: 0 14px; color: #715737; font: inherit; font-size: 10px; font-weight: 900; cursor: pointer; }
.student-quest-tabs button.is-active { border-color: #3d79ae; background: #e4f2ff; color: #285d90; }
.student-quest-tabs span { display: inline-grid; place-items: center; min-width: 19px; height: 19px; margin-left: 4px; border-radius: 10px; background: #fff; color: #285d90; }
.student-quest-table-head,
.student-quest-row { display: grid; grid-template-columns: 110px minmax(220px, 1.8fr) 145px 105px 145px 112px; align-items: center; gap: 9px; }
.student-quest-table-head { border-block: 1px solid #ddc9a7; background: #f7ecd8; padding: 9px 18px; color: #705231; font-size: 9px; font-weight: 1000; text-align: center; }
.student-quest-row { min-height: 78px; border-bottom: 1px solid #e5d5b9; padding: 10px 18px; }
.student-quest-row[role="button"] { cursor: pointer; }
.student-quest-row[role="button"]:focus-visible { outline: 3px solid #2e7cb8; outline-offset: -3px; }
.student-quest-row.is-active { background: #fff0c8; box-shadow: inset 5px 0 #b77827; }
.student-quest-row:last-child { border-bottom: 0; }
.student-quest-kind { display: flex; align-items: center; gap: 8px; color: #2970a8; font-size: 10px; font-weight: 1000; }
.student-quest-kind i { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #d2b06b; border-radius: 9px; background: #fff7df; color: #bd7d16; font-size: 16px; }
.student-quest-copy { min-width: 0; }
.student-quest-copy strong { display: block; color: #3f2e1b; font-size: 14px; }
.student-quest-copy .student-quest-description { display: block; margin-top: 5px; overflow: hidden; color: #8a724e; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.student-quest-row-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.student-quest-row-chips > span[data-tone="required"] { border-color: #b7832f; background: #fff7dc; color: #76511c; }
.student-quest-row-chips > span[data-tone="optional"] { border-color: #399385; background: #edf9f6; color: #276d64; }
.student-quest-cell { color: #72593a; font-size: 10px; font-weight: 800; text-align: center; }
.student-quest-cell[data-tone="due-today"] { color: #9b3d31; font-weight: 1000; }
.student-quest-reward { color: #8c641e; font-size: 11px; font-weight: 1000; }
.student-quest-reward i { margin-right: 4px; color: #e7a727; }
.student-quest-row-progress { display: flex; align-items: center; gap: 6px; }
.student-quest-row-progress > span { flex: 1; height: 8px; overflow: hidden; border-radius: 5px; background: #e8ddc5; }
.student-quest-row-progress > span > i { display: block; height: 100%; background: #4da456; }
.student-quest-row-progress strong { min-width: 31px; font-size: 9px; }
.student-quest-action { min-height: 34px; border: 1px solid #83a85d; border-radius: 17px; background: #f6fff0; padding: 0 11px; color: #3e7b39; font: inherit; font-size: 10px; font-weight: 1000; cursor: pointer; }
.student-quest-action[data-tone="pending"] { border-color: #d39c44; background: #fff7e5; color: #a96612; }
.student-quest-action[data-tone="done"] { cursor: default; opacity: .8; }
.student-quest-action:disabled { cursor: default; opacity: .65; }
.student-quest-status { justify-self: center; min-width: 74px; border: 1px solid #b99b68; border-radius: 999px; background: #fff9e9; padding: 7px 9px; color: #735535; font-size: 9px; font-style: normal; font-weight: 1000; text-align: center; white-space: nowrap; }
.student-quest-status[data-tone="completed"] { border-color: #6f9d59; background: #f1f9e8; color: #39763d; }
.student-quest-status[data-tone="pending"] { border-color: #ce9340; background: #fff5df; color: #a35d0c; }
.student-quest-status[data-tone="closed"] { opacity: .68; }
.student-quest-empty { padding: 34px 20px; color: #927b57; font-size: 12px; font-weight: 800; text-align: center; }

.student-quest-dialog { width: min(560px, calc(100vw - 32px)); border: 5px solid #8f5f25; border-radius: 18px; background: #fff9ec; padding: 0; color: var(--quest-ink); box-shadow: 0 28px 70px #3e2a1b66; }
.student-quest-dialog::backdrop { background: #2039498c; backdrop-filter: blur(3px); }
.student-quest-dialog header,
.student-quest-dialog footer { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #d9bf8e; padding: 14px 18px; }
.student-quest-dialog header p { margin: 0 0 4px; color: #2676b7; font-size: 9px; font-weight: 1000; letter-spacing: .12em; }
.student-quest-dialog h2 { margin: 0; font-family: Georgia, "Noto Serif KR", serif; font-size: 21px; }
.student-quest-dialog button { min-height: 36px; border: 1px solid #b99c69; border-radius: 17px; background: #fffdf7; padding: 0 15px; color: #60492d; font: inherit; font-size: 10px; font-weight: 900; cursor: pointer; }
.student-quest-dialog-body { padding: 18px; }
.student-quest-dialog-body > p { margin: 0 0 14px; color: #705636; font-size: 12px; line-height: 1.55; }
.student-quest-dialog label { display: grid; gap: 7px; color: #5d4428; font-size: 11px; font-weight: 900; }
.student-quest-dialog textarea { min-height: 120px; border: 1px solid #c4a56f; border-radius: 10px; background: #fffef9; padding: 10px; color: #493520; font: inherit; resize: vertical; }
.student-quest-dialog footer { justify-content: flex-end; gap: 7px; border-top: 1px solid #d9bf8e; border-bottom: 0; }
.student-quest-dialog footer span { margin-right: auto; color: #8a704a; font-size: 9px; }
.student-quest-dialog .student-quest-confirm { border-color: #498b53; background: #eaf9df; color: #316e39; }

@media (max-width: 1450px) and (min-width: 1051px) {
  .student-quest-table-head,
  .student-quest-row { grid-template-columns: 86px minmax(150px, 1fr) 104px 82px 106px 84px; gap: 6px; padding-inline: 11px; }
  .student-quest-kind { gap: 5px; font-size: 9px; }
  .student-quest-kind i { width: 28px; height: 28px; }
  .student-quest-copy strong { font-size: 12px; }
  .student-quest-cell { font-size: 9px; }
}

@media (max-width: 1050px) {
  .student-quest-main { padding-right: 12px; }
  .student-quest-hero { grid-template-columns: 1fr; gap: 12px; padding: 18px 22px; }
  .student-quest-summary { width: 100%; }
  .student-quest-summary div:first-child { border-left: 0; }
  .student-quest-chest { margin-inline: 8px; padding-right: 160px; }
  .student-quest-chest-hotspot { width: 145px; }
  .student-quest-table-head { display: none; }
  .student-quest-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 10px; }
  .student-quest-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; min-height: 0; border: 1px solid #d8bf91; border-radius: 12px; background: #fffdf8; padding: 12px; }
  .student-quest-kind { grid-column: 1 / -1; }
  .student-quest-copy { grid-column: 1 / -1; }
  .student-quest-copy .student-quest-description { white-space: normal; }
  .student-quest-cell { text-align: left; }
  .student-quest-row-progress { grid-column: 1 / -1; }
  .student-quest-detail { margin-inline: 8px; padding: 50px 46px 44px; }
  .student-quest-workspace-grid { grid-template-columns: 1fr; gap: 4px; }
  .student-quest-detail[data-mission-kind="bonus"] .student-quest-workspace-grid { grid-template-columns: 1fr; }
}

@media (min-width: 1451px) {
  .student-quest-page .student-token-layout {
    max-width: 1556px;
    grid-template-columns: 310px minmax(0, 1fr);
    gap: 54px;
    padding: 10px 0 28px;
  }
  .student-quest-page .student-token-sidebar { padding-inline: 24px; }
  .student-quest-page .student-quest-detail {
    min-height: 540px;
    margin: 8px 0 12px;
    padding: 54px 76px 50px;
  }
  .student-quest-page .student-quest-workspace-grid { gap: 24px; }
  .student-quest-page .student-quest-board-evidence .board-file-card img { height: 168px; }
}

@media (max-width: 760px) {
  .student-quest-main { display: none; }
  .student-quest-teacher-mode { right: 12px; bottom: 12px; }
}

/* 최신 v2 길드 보드의 원본 비트맵을 그대로 사용한다. */
.student-quest-main { padding-top: 10px; }
.student-quest-hero { min-height: 184px; border: 0; border-radius: 0; background: url("/token-assets/quest-board/guild-header-wood.webp") center / 100% 100% no-repeat; padding: 30px 70px 34px 92px; box-shadow: none; }
.student-quest-hero h1 { color: #fff7cf; font-size: clamp(28px, 2.5vw, 40px); white-space: nowrap; text-shadow: 0 3px 1px #4c280f, 0 0 8px #301708; }
.student-quest-hero-copy p { color: #f3d17b; text-shadow: 0 2px #4d260e; }
.student-quest-hero-copy > span { color: #f8e8bb; text-shadow: 0 2px #4d260e; }
.student-quest-summary div { border-left-color: #a9763e; background: #2b160b55; border-radius: 10px; padding-block: 10px; }
.student-quest-summary dt { color: #ecd6a2; }
.student-quest-summary dd { color: #fff6cb; text-shadow: 0 2px #4d260e; }

.student-quest-chest { min-height: 172px; margin: -5px 52px 0; border: 0; border-radius: 0; background: url("/token-assets/quest-board/quest-goal-board.png") center / 100% 100% no-repeat; padding: 34px 250px 30px 84px; box-shadow: none; }
.student-quest-chest-copy > p { color: #93641c; }
.student-quest-chest-copy h2 { color: #4c3317; font-size: 24px; }
.student-quest-chest-hotspot { right: 72px; bottom: 19px; width: 145px; height: 125px; filter: drop-shadow(0 6px 5px #4b2c1766); }
.student-quest-chest-actions { right: 80px; top: 20px; }
.student-quest-message { margin-top: 0; text-align: center; }

.student-quest-ledger { position: relative; isolation: isolate; margin: -2px 10px 0; border: 0; border-radius: 0; background: url("/token-assets/quest-board/ledger/ledger-frame-body.png") center / 100% 440px repeat-y; padding: 85px 70px 62px; box-shadow: none; }
.student-quest-ledger::before,.student-quest-ledger::after { position: absolute; left: 0; z-index: -1; width: 100%; content: ""; pointer-events: none; }
.student-quest-ledger::before { top: 0; height: 240px; background: url("/token-assets/quest-board/ledger/ledger-frame-top.png") top center / 100% 240px no-repeat; }
.student-quest-ledger::after { bottom: 0; height: 110px; background: url("/token-assets/quest-board/ledger/ledger-frame-bottom.png") bottom center / 100% 110px no-repeat; }
.student-quest-ledger-heading { border-bottom-color: #b58b4d; padding: 4px 24px 12px; }
.student-quest-ledger-heading h2 { color: #4a2f15; font-size: 31px; text-shadow: 0 1px #fff1c4; }
.student-quest-tabs { justify-content: center; }
.student-quest-tabs button { border: 2px solid #9f7139; background: #f9e9bd; box-shadow: inset 0 1px #fff7da; }
.student-quest-tabs button.is-active { border-color: #2f6f9f; background: #3f86bd; color: #fff; box-shadow: inset 0 1px #8fc1e3; }
.student-quest-tabs button.is-active span { color: #2f6f9f; }
.student-quest-table-head { border-color: #b89359; background: #e6ce99aa; }
.student-quest-row { border-bottom-color: #c9a96f; }
.student-quest-kind i { background-position: center; background-size: cover; color: transparent; }
.student-quest-kind[data-kind="assignment"] i { background-image: url("/token-assets/quest-board/ledger/category-assignment.png"); }
.student-quest-kind[data-kind="document"] i { background-image: url("/token-assets/quest-board/ledger/category-news.png"); }
.student-quest-kind[data-kind="practice"] i { background-image: url("/token-assets/quest-board/ledger/category-daily.png"); }
.student-quest-kind[data-kind="math"] i { background-image: url("/token-assets/quest-board/ledger/category-assignment.png"); }
.student-quest-kind[data-kind="job"] i { background-image: url("/token-assets/quest-board/ledger/category-job.png"); }
.student-quest-kind[data-kind="bonus"] i { background-image: url("/token-assets/quest-board/ledger/category-bonus.png"); }
.student-quest-kind[data-kind="bounty"] i { background-image: url("/token-assets/quest-board/ledger/category-bounty.png"); }
.student-quest-kind[data-kind="recurring"] i { background-image: url("/token-assets/quest-board/ledger/category-daily.png"); }
.student-quest-row[data-state="completed"] { position: relative; }
.student-quest-row[data-today-priority="due"] { background: #ffe3dc; box-shadow: inset 0 0 0 2px #c85f4d; }
.student-quest-row[data-today-priority="chest"] { background: #e9dfff; box-shadow: inset 0 0 0 2px #7657c8; }
.student-quest-row[data-today-priority="both"] { background: #f2d5f7; box-shadow: inset 0 0 0 2px #8a4fa3; }
.student-quest-row[data-state="completed"]::after { position: absolute; right: 8px; top: 4px; width: 74px; height: 45px; background: url("/token-assets/quest-board/stamp-approved.webp") center / contain no-repeat; content: ""; opacity: .45; pointer-events: none; }

@media (max-width: 1050px) {
  .student-quest-hero { padding: 26px 48px 36px; }
  .student-quest-hero h1 { font-size: 28px; }
  .student-quest-chest { margin-inline: 14px; padding: 32px 190px 28px 58px; }
  .student-quest-chest-hotspot { right: 42px; }
  .student-quest-chest-actions { right: 46px; }
  .student-quest-stat-strip { margin-inline: 34px; }
  .student-quest-ledger { margin-inline: 0; padding: 82px 38px 60px; }
  .student-quest-row { background: #fff9e8cc; }
}

/* Q4: 최신 v2 학생 길드 장부의 실제 PNG와 tablet 배치를 그대로 사용한다. */
.student-quest-page .student-token-layout {
  width: 100%;
  max-width: 1354px;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 18px;
  margin: 0 auto;
  padding: 16px 10px 28px 18px;
}

.student-quest-page .student-token-sidebar {
  top: 10px;
  height: calc(100vh - 20px);
  min-height: 0;
  overflow-y: auto;
  scrollbar-color: #a37a3e transparent;
  scrollbar-width: thin;
}

.student-quest-page .student-token-sidebar nav {
  gap: 6px;
}

.student-quest-page .student-token-sidebar nav a,
.student-quest-fullscreen {
  min-height: 46px;
  flex: 0 0 auto;
}

.student-quest-page .student-token-sidebar nav a > span[aria-hidden="true"] {
  flex: 0 0 25px;
  font-size: 18px;
  line-height: 1;
  text-align: center;
}

.student-quest-sidebar-count {
  position: relative;
  z-index: 1;
  display: grid;
  flex: 0 0 auto;
  grid-template-rows: 1fr auto;
  place-items: center;
  min-width: 42px;
  min-height: 32px;
  margin-left: auto;
  box-sizing: border-box;
  border: 1px solid rgba(119, 70, 20, .45);
  border-radius: 12px;
  background: radial-gradient(circle at 35% 25%, rgba(255, 255, 236, .98), rgba(255, 223, 132, .9) 58%, rgba(184, 105, 28, .72)), linear-gradient(180deg, #ffe599, #d89424);
  padding: 3px 7px 4px;
  color: #5d3107;
  font-style: normal;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  text-shadow: 0 1px 0 rgba(255, 242, 196, .72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72), inset 0 -2px 0 rgba(105, 55, 12, .24), 0 3px 7px rgba(62, 34, 10, .2);
  pointer-events: none;
}

.student-quest-sidebar-count strong { display: block; min-width: 0; color: #0f4f9f; font-size: 18px; line-height: .95; text-shadow: 0 1px 0 rgba(255, 248, 210, .95), 0 0 6px rgba(255, 255, 255, .72); }
.student-quest-sidebar-count small { display: block; margin-top: 1px; font-size: 9px; line-height: 1; white-space: nowrap; }
.student-quest-sidebar-count.is-complete { border-color: rgba(24, 110, 67, .48); background: radial-gradient(circle at 35% 25%, rgba(248, 255, 236, .98), rgba(187, 236, 134, .92) 58%, rgba(63, 148, 73, .76)), linear-gradient(180deg, #dff5a7, #60ad45); color: #174a1f; }
.student-quest-sidebar-count.is-complete strong { color: #0b6b2e; }

.student-quest-fullscreen {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 0;
  background: #625744;
  border-radius: 22px;
  color: #fffaf0;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.student-quest-main {
  padding: 10px 0 34px;
}

.student-quest-hero {
  grid-template-columns: minmax(0, 1fr) 360px;
  min-height: 176px;
  background: url("/token-assets/quest-board/guild-header-wood.png") center / 100% 100% no-repeat;
  padding: 30px 72px 26px 142px;
}

.student-quest-hero-copy p {
  color: #376fa8;
  text-shadow: none;
}

.student-quest-hero h1 {
  color: #402b18;
  font-size: clamp(29px, 2.6vw, 38px);
  text-shadow: 0 1px #fff4d6;
}

.student-quest-hero-copy > span {
  max-width: 470px;
  color: #4e3a27;
  text-shadow: none;
}

.student-quest-profile strong {
  background: #2f6f9f;
  box-shadow: inset 0 1px #7eb6dc;
}

.student-quest-summary {
  grid-template-columns: repeat(2, minmax(130px, 1fr));
  gap: 0;
}

.student-quest-summary div {
  min-width: 0;
  border: 0;
  border-left: 1px solid #d4bb8b;
  border-radius: 0;
  background: transparent;
  padding: 4px 14px;
}

.student-quest-summary dt {
  color: #7f6443;
}

.student-quest-summary dt i {
  margin-right: 5px;
  color: #d99b24;
}

.student-quest-summary div:last-child dt i { color: #71a83d; }

.student-quest-summary dd {
  color: #312417;
  font-size: 23px;
  text-shadow: none;
}

.student-quest-summary small {
  display: block;
  margin-top: 3px;
  color: #6d573c;
  font-size: 8px;
  font-weight: 800;
  line-height: 1.25;
}

.student-quest-chest {
  min-height: 200px;
  margin: 8px 46px 0;
  padding: 42px 185px 72px 62px;
}

.student-quest-chest-copy > p {
  margin-bottom: 6px;
  color: #6a4317;
  text-shadow: 0 1px #fff4c7;
}

.student-quest-chest-copy h2 {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.student-quest-chest-copy > span {
  color: #4e3921;
  font-size: 11px;
}

.student-quest-chest-copy .student-quest-goal-guide {
  margin-top: 0;
  line-height: 1.45;
}

.student-quest-chest-copy .student-quest-goal-target {
  margin-top: 10px;
  color: #168b55;
  font-size: 12px;
}

.student-quest-chest-hotspot > img {
  display: none;
}

.student-quest-progress {
  width: calc(100% - 64px);
  margin-top: 8px;
}

.student-quest-stat-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin: -67px 102px 12px;
}

.student-quest-stat-strip button {
  display: grid;
  align-content: center;
  gap: 2px;
  min-height: 52px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 6px 8px 3px;
  box-shadow: none;
  transform: translateY(1px);
}

.student-quest-stat-strip button > span { font-size: 9px; }
.student-quest-stat-strip button > strong { margin-top: 0; font-size: 21px; }
.student-quest-stat-strip button:hover { background: #fff4c733; }
.student-quest-stat-strip button.is-active { border-radius: 10px; background: #fff4c752; box-shadow: inset 0 0 0 2px #2f6f9f99; }
.student-quest-stat-strip button:focus-visible { border-radius: 10px; outline: 3px solid #2f6f9f; outline-offset: -3px; }
.student-quest-message { margin: 0 24px 4px; }

.student-quest-ledger {
  margin: 0;
  padding: 72px 48px 62px;
}

.student-quest-ledger-heading {
  align-items: center;
  padding: 0 22px 10px;
}

.student-quest-ledger-heading h2 {
  font-size: 29px;
}

.student-quest-ledger-heading > div:first-child > span {
  display: block;
  color: #7b633f;
  font-size: 9px;
  font-weight: 800;
}

.student-quest-ledger-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.student-quest-ledger-actions button {
  min-height: 32px;
  border: 1px solid #b88a39;
  border-radius: 7px;
  background: #fff6cf;
  padding: 0 10px;
  color: #76521e;
  font: inherit;
  font-size: 9px;
  font-weight: 900;
  cursor: pointer;
}

.student-quest-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
  padding: 11px 14px;
}

.student-quest-tabs button {
  min-width: 0;
  padding-inline: 8px;
}

.student-quest-table-head,
.student-quest-row {
  grid-template-columns: 92px minmax(190px, 1.7fr) 138px 104px 136px 100px;
}

.student-quest-row {
  min-height: 64px;
  padding-block: 7px;
}

@media (max-width: 1250px) and (min-width: 1051px) {
  .student-quest-page .student-token-layout { grid-template-columns: 226px minmax(0, 1fr); gap: 12px; padding-left: 12px; }
  .student-quest-page .student-token-sidebar { padding-inline: 16px; }
  .student-quest-hero { grid-template-columns: minmax(0, 1fr) 292px; padding-left: 112px; padding-right: 54px; }
  .student-quest-summary dd { font-size: 19px; }
  .student-quest-chest { margin-inline: 22px; padding-left: 54px; }
  .student-quest-stat-strip { gap: 12px; margin-inline: 70px; }
  .student-quest-ledger { padding-inline: 34px; }
  .student-quest-table-head,
  .student-quest-row { grid-template-columns: 82px minmax(145px, 1fr) 112px 82px 112px 82px; gap: 6px; padding-inline: 10px; }
}

@media (max-width: 1050px) {
  .student-quest-page .student-token-layout { grid-template-columns: 198px minmax(0, 1fr); gap: 10px; padding: 10px; }
  .student-quest-page .student-token-sidebar { top: 6px; height: calc(100vh - 12px); padding: 22px 13px; }
  .student-quest-page .student-token-brand { padding-inline: 4px; }
  .student-quest-page .student-token-sidebar nav a { min-height: 42px; padding-inline: 15px; }
  .student-quest-fullscreen { min-height: 40px; }
  .student-quest-hero { grid-template-columns: 1fr; min-height: 180px; padding: 24px 42px 30px 80px; }
  .student-quest-hero-copy > span { max-width: 390px; }
  .student-quest-summary { display: none; }
  .student-quest-chest { min-height: 178px; margin-inline: 5px; padding: 36px 130px 64px 42px; }
  .student-quest-progress { width: calc(100% - 36px); }
  .student-quest-stat-strip { gap: 4px; margin: -61px 34px 8px; }
  .student-quest-stat-strip button { min-height: 48px; }
  .student-quest-stat-strip button > span { font-size: 7px; }
  .student-quest-stat-strip button > strong { font-size: 16px; }
  .student-quest-ledger { padding: 68px 26px 58px; }
  .student-quest-ledger-heading { align-items: flex-start; padding-inline: 10px; }
  .student-quest-ledger-heading h2 { font-size: 24px; }
  .student-quest-ledger-actions { display: grid; }
  .student-quest-tabs { gap: 5px; padding-inline: 6px; }
  .student-quest-tabs button { min-height: 31px; padding-inline: 4px; font-size: 8px; }
  .student-quest-list { grid-template-columns: 1fr; }
  .student-quest-row { display: grid; grid-template-columns: 1fr auto; min-height: 0; padding: 10px; }
}

/* Keep the final quest row clear of tablet browser chrome and safe areas. */
.student-quest-page .student-quest-main {
  -webkit-overflow-scrolling: touch;
  scroll-padding-bottom: calc(34px + env(safe-area-inset-bottom));
  padding-bottom: calc(34px + env(safe-area-inset-bottom));
}
