:root{--ink:#173830;--muted:#6c7e78;--green:#2e705e;--green-dark:#214f44;--green-soft:#e7f0e8;--orange:#ef7047;--orange-soft:#fff0e9;--paper:#f6f4ed;--panel:#fffdf8;--line:#ddd9cf}*{box-sizing:border-box}body,html{margin:0;min-height:100%;color:var(--ink);background:var(--paper)}body{font:14px Segoe UI,Arial,sans-serif}button{font:inherit;color:inherit;cursor:pointer}.app-shell{min-height:100vh}.eyebrow{color:#a37f6b;font-size:9px;font-weight:800;letter-spacing:.15em}.library-gate{min-height:100vh;padding-bottom:32px;background-color:var(--paper);background-image:radial-gradient(#dcd8cf 1px,transparent 0);background-size:22px 22px}.library-gate>header{min-height:78px;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,253,248,.97);border-bottom:1px solid var(--line)}.library-gate>header>div:last-child{display:grid;grid-template-columns:auto auto auto auto;align-items:center;grid-gap:7px;gap:7px;color:var(--muted)}.library-gate>header>div:last-child b{color:var(--green);font-size:23px}.library-gate>header>div:last-child span{margin-right:13px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.library-intro{max-width:830px;margin:auto;padding:50px 22px 26px;text-align:center}.library-intro h1{margin:9px 0 12px;font-size:clamp(35px,5vw,54px);line-height:1;letter-spacing:-.045em}.library-intro p{max-width:700px;margin:auto;color:var(--muted);font-size:15px;line-height:1.55}.library-grid{width:min(1120px,calc(100% - 36px));margin:auto;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:11px;gap:11px}.library-grid>button{min-height:112px;padding:17px 19px;display:grid;grid-template-columns:35px 47px 1fr auto;align-items:center;grid-gap:12px;gap:12px;text-align:left;border:1px solid var(--line);background:rgba(255,253,248,.97);border-radius:15px;box-shadow:0 8px 20px rgba(27,57,48,.05);transition:transform .18s,box-shadow .18s,border-color .18s}.library-grid>button:hover{transform:translateY(-3px);border-color:var(--green);box-shadow:0 15px 34px rgba(27,57,48,.11)}.library-number{align-self:start;color:#a78370;font-size:10px;font-weight:800;letter-spacing:.12em}.library-icon{width:47px;height:47px;display:grid;place-items:center;color:white;background:var(--green);border-radius:12px}.library-grid>button:nth-child(3n+2) .library-icon{background:#527b72}.library-grid>button:nth-child(3n) .library-icon{background:var(--orange)}.library-grid>button>span:nth-child(3){display:flex;flex-direction:column}.library-grid strong{font-size:16px}.library-grid small{margin-top:4px;color:var(--muted);font-size:10px}.library-count{display:flex;align-items:center;gap:4px;color:var(--green);white-space:nowrap;font-size:8px;font-weight:800;letter-spacing:.09em}.library-gate>footer{width:max-content;max-width:calc(100% - 36px);margin:24px auto 0;padding:9px 14px;display:flex;align-items:center;gap:6px;color:#4f675f;background:#e6efe7;border-radius:999px;font-size:9px;font-weight:700}.topbar{min-height:74px;padding:0 18px;display:grid;grid-template-columns:1fr auto 1fr;grid-gap:20px;gap:20px;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(255,253,248,.97);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand,.topbar{align-items:center}.brand{display:flex;gap:10px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;color:white;background:var(--green);border-radius:12px;box-shadow:inset 0 -2px rgba(0,0,0,.13)}.brand>div{display:flex;flex-direction:column}.brand strong{font-size:15px}.brand>div>span{margin-top:3px;color:var(--muted);font-size:9px}.mode-tabs{display:flex;gap:3px;padding:4px;background:#ece9e2;border-radius:11px}.mode-tabs button{padding:9px 13px;display:flex;align-items:center;gap:6px;border:0;background:transparent;border-radius:8px;font-size:10px;font-weight:800}.mode-tabs button.active{background:white;box-shadow:0 2px 7px rgba(24,53,45,.1)}.top-stats{display:flex;justify-content:flex-end;gap:7px}.top-stats>div{min-width:71px;padding:8px 9px;display:flex;align-items:center;gap:7px;background:white;border:1px solid var(--line);border-radius:9px}.top-stats svg{color:var(--green)}.top-stats>div:nth-child(2) svg{color:var(--orange)}.top-stats span{display:flex;flex-direction:column;color:#8a9692;font-size:7px;text-transform:uppercase;letter-spacing:.08em}.top-stats strong{color:var(--ink);margin-top:1px;font-size:12px;letter-spacing:0}.top-stats .urgent{border-color:var(--orange);background:var(--orange-soft);animation:pulse .8s infinite alternate}@keyframes pulse{to{transform:scale(1.04)}}.workspace{min-height:calc(100vh - 74px);display:grid;grid-template-columns:245px minmax(660px,1fr) 245px}.case-panel,.guide-panel{padding:24px 17px;background:var(--panel)}.case-panel{border-right:1px solid var(--line)}.guide-panel{border-left:1px solid var(--line)}.case-panel h1{margin:10px 0 8px;font-size:26px;line-height:1.02}.case-panel>p{margin:0 0 16px;color:var(--muted);font-size:11px;line-height:1.5}.back-libraries{margin:-7px 0 14px;padding:5px 0;border:0;color:var(--green);background:transparent;font-size:9px;font-weight:800}.case-list{display:grid;grid-gap:6px;gap:6px;max-height:565px;overflow-y:auto;padding-right:3px}.case-list>button{min-height:51px;padding:7px;display:grid;grid-template-columns:31px 1fr;align-items:center;grid-gap:8px;gap:8px;text-align:left;border:1px solid var(--line);background:white;border-radius:9px}.case-list>button>span{width:31px;height:31px;display:grid;place-items:center;color:var(--green);background:var(--green-soft);border-radius:8px;font-size:9px;font-weight:800}.case-list>button>div{min-width:0;display:flex;flex-direction:column}.case-list small{color:#9b8a80;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px;text-transform:uppercase;letter-spacing:.06em}.case-list strong{margin-top:2px;font-size:10px}.case-list button.active{border-color:var(--green);background:#f3f8f4;box-shadow:inset 3px 0 var(--green)}.case-list button:disabled{cursor:not-allowed;opacity:.68}.challenge-settings{margin-top:13px;padding:12px;background:#efede7;border:1px solid var(--line);border-radius:10px}.challenge-settings label{display:block;margin-top:9px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.challenge-settings label div{display:flex;gap:4px;margin-top:5px}.challenge-settings label button{flex:1 1;padding:6px 2px;border:1px solid var(--line);background:white;border-radius:6px;font-size:9px}.challenge-settings label button.active{color:white;background:var(--green);border-color:var(--green)}.start-button{width:100%;margin-top:9px;padding:8px;justify-content:center;gap:5px;border:0;color:white;background:var(--orange);border-radius:7px;font-size:10px;font-weight:800}.best-card,.start-button{display:flex;align-items:center}.best-card{margin-top:12px;padding:10px;gap:7px;border:1px solid var(--line);background:white;border-radius:9px}.best-card svg{color:#aa8330}.best-card span{display:flex;flex-direction:column;color:var(--muted);font-size:8px}.best-card strong{color:var(--ink);margin-top:2px;font-size:11px}.lab-panel{padding:27px 31px 50px;background-color:var(--paper);background-image:radial-gradient(#dcd8cf 1px,transparent 0);background-size:22px 22px}.case-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.case-heading h2{margin:7px 0 4px;font-size:28px;letter-spacing:-.035em}.case-heading p{margin:0;color:var(--muted);font-size:12px}.case-progress{width:115px;flex:0 0 115px;text-align:right}.case-progress>span{font-size:10px;font-weight:800}.case-progress i{height:6px;margin-top:6px;display:block;overflow:hidden;background:#e1dfd8;border-radius:99px}.case-progress em{display:block;height:100%;background:var(--orange);border-radius:inherit}.dataset-card{margin-top:18px;overflow:hidden;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 13px 32px rgba(24,55,46,.09)}.dataset-toolbar{min-height:45px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;background:#ebe9e2;border-bottom:1px solid var(--line)}.dataset-toolbar>div{display:flex;align-items:center;gap:7px}.dataset-toolbar svg{color:var(--green)}.dataset-toolbar strong{font-size:9px}.dataset-toolbar span{padding:3px 6px;color:var(--muted);background:white;border-radius:5px;font-size:8px}.dataset-toolbar p{margin:0;display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:10px}th{padding:9px 11px;text-align:left;color:#8d7b70;background:#f8f6f0;border-bottom:1px solid var(--line);font-size:8px;letter-spacing:.08em}td{min-width:100px;padding:10px 11px;border-bottom:1px solid #ebe9e2;transition:background .15s}td:first-child,th:first-child{width:60px;min-width:60px;text-align:center}tbody tr{cursor:pointer}tbody tr:hover td{background:#f6f9f6}tbody tr.selected td{background:#fff1eb}tbody tr.cleaned td{background:#e8f3e9}tbody tr:last-child td{border-bottom:0}td:first-child button{width:25px;height:25px;display:grid;place-items:center;border:1px solid #cac6bc;background:white;border-radius:6px;font-size:9px}tr.selected td:first-child button{color:white;background:var(--orange);border-color:var(--orange)}td i{padding:3px 7px;color:#a54d35;background:var(--orange-soft);border-radius:5px;font-style:normal;font-size:8px}td.visible-clue{box-shadow:inset 0 -2px var(--orange)}.investigation-grid{margin-top:13px;display:grid;grid-template-columns:1fr 1fr;grid-gap:11px;gap:11px}.step-card{padding:16px;background:rgba(255,253,248,.97);border:1px solid var(--line);border-radius:13px}.step-title{display:flex;align-items:flex-start;gap:9px}.step-title>span{width:24px;height:24px;display:grid;place-items:center;color:white;background:var(--green);border-radius:7px;font-size:9px;font-weight:800}.step-title small{color:#9d7d6b;font-size:8px;font-weight:800;letter-spacing:.11em}.step-title h3{margin:3px 0 10px;font-size:14px}.action-list,.issue-grid{display:grid;grid-gap:6px;gap:6px}.issue-grid{grid-template-columns:1fr 1fr}.issue-grid button{min-height:51px;padding:8px;display:flex;flex-direction:column;text-align:left;border:1px solid var(--line);background:white;border-radius:8px}.issue-grid button:last-child{grid-column:1/-1}.issue-grid strong{font-size:9px}.issue-grid small{margin-top:2px;color:var(--muted);font-size:7px;line-height:1.3}.action-list button{min-height:36px;padding:6px 8px;display:flex;align-items:center;gap:7px;text-align:left;border:1px solid var(--line);background:white;border-radius:8px;font-size:9px}.action-list button>span{width:21px;height:21px;flex:0 0 21px;display:grid;place-items:center;color:var(--green);background:var(--green-soft);border-radius:5px;font-weight:800}.action-list button.selected,.issue-grid button.selected{border-color:var(--orange);background:var(--orange-soft);box-shadow:inset 0 0 0 1px var(--orange)}.action-list button:disabled,.issue-grid button:disabled{cursor:not-allowed;opacity:.67}.submit-row{margin-top:12px;justify-content:space-between;gap:12px}.submit-row,.submit-row>span{display:flex;align-items:center}.submit-row>span{gap:5px;color:var(--muted);font-size:9px}.submit-row button{padding:11px 15px;display:flex;align-items:center;gap:6px;border:0;color:white;background:var(--orange);border-radius:8px;font-size:10px;font-weight:800}.submit-row button:disabled{opacity:.45;cursor:not-allowed}.feedback{margin-top:13px;padding:15px;background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 10px 28px rgba(25,54,46,.08)}.feedback.success{border-color:#b9d2c0}.feedback.review{border-color:#e6b4a3}.feedback-heading{display:flex;align-items:center;gap:8px}.feedback.success .feedback-heading>svg{color:var(--green)}.feedback.review .feedback-heading>svg{color:var(--orange)}.feedback-heading h3{margin:3px 0 0;font-size:15px}.score-parts{margin:12px 0;display:flex;flex-wrap:wrap;gap:6px}.score-parts span{padding:7px 9px;display:flex;align-items:center;gap:5px;border-radius:7px;font-size:9px}.score-parts b{margin-left:4px}.score-parts .correct{color:#2c6757;background:var(--green-soft)}.score-parts .incorrect{color:#a34e37;background:var(--orange-soft)}.instruction{padding:11px;display:flex;gap:8px;background:#fff4dc;border-radius:9px}.instruction>svg{flex:0 0 auto;color:#aa7928}.instruction strong{font-size:10px}.instruction p{margin:3px 0;font-size:9px;line-height:1.45}.instruction span{color:#776a50;font-size:8px}.feedback>button{margin:11px 0 0 auto;padding:9px 12px;display:flex;align-items:center;gap:5px;border:0;color:white;background:var(--green);border-radius:7px;font-size:9px;font-weight:800}.guide-flow{margin-top:12px;display:grid;grid-gap:8px;gap:8px}.guide-flow>div{position:relative;padding:11px 10px 10px 41px;display:grid;grid-template-columns:22px 1fr;align-items:center;background:white;border:1px solid var(--line);border-radius:9px}.guide-flow>div>span{position:absolute;left:9px;top:9px;width:22px;height:22px;display:grid;place-items:center;color:white;background:var(--green);border-radius:6px;font-size:8px}.guide-flow svg{color:var(--green)}.guide-flow strong{font-size:10px}.guide-flow p{grid-column:1/-1;margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.4}.quality-check{margin-top:13px;padding:12px;color:#716043;background:#fff3d8;border-radius:9px}.quality-check svg{color:#a97827}.quality-check strong{display:block;margin-top:6px;font-size:10px}.quality-check p{margin:3px 0 0;font-size:8px;line-height:1.45}.session{margin-top:13px;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--line);background:white;border-radius:9px}.session>span{grid-column:1/-1;padding:8px 9px;color:#9d7d69;border-bottom:1px solid var(--line);font-size:7px;font-weight:800;letter-spacing:.12em}.session>div{padding:9px 2px;display:flex;flex-direction:column;text-align:center;border-right:1px solid var(--line)}.session>div:last-child{border:0}.session b{font-size:15px}.session small{color:var(--muted);font-size:7px}.modal-backdrop{position:fixed;inset:0;z-index:50;padding:20px;display:grid;place-items:center;background:rgba(15,39,33,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.results-modal{width:min(470px,100%);padding:31px;text-align:center;background:var(--panel);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.results-modal>span:first-child{width:67px;height:67px;margin:0 auto 14px;display:grid;place-items:center;color:white;background:var(--green);border-radius:50%}.results-modal h2{margin:8px 0;font-size:30px}.results-modal>p{color:var(--muted)}.results-modal>div{margin:17px 0;display:grid;grid-template-columns:1fr 1fr;grid-gap:7px;gap:7px}.results-modal>div span{padding:11px;display:flex;flex-direction:column;color:var(--muted);background:#efede7;border-radius:8px;font-size:8px}.results-modal>div strong{color:var(--ink);margin-top:3px;font-size:20px}.results-modal>button{width:100%;padding:10px;display:flex;justify-content:center;align-items:center;gap:6px;border:0;color:white;background:var(--orange);border-radius:8px;font-weight:800}.results-modal>button.secondary{margin-top:6px;color:var(--green);background:transparent}@media (max-width:1160px){.workspace{grid-template-columns:225px minmax(630px,1fr)}.guide-panel{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}.guide-flow{grid-template-columns:repeat(4,1fr)}.quality-check{max-width:420px}}@media (max-width:880px){.topbar{grid-template-columns:1fr auto;padding:10px 14px}.mode-tabs{order:3;grid-column:1/-1;justify-self:center}.workspace{display:block}.case-panel{border-right:0;border-bottom:1px solid var(--line)}.case-list{grid-template-columns:repeat(5,minmax(145px,1fr));overflow-x:auto;overflow-y:hidden;max-height:none;padding-bottom:5px}.lab-panel{padding:23px 17px 40px}.guide-flow{grid-template-columns:1fr 1fr}.library-grid{grid-template-columns:1fr}}@media (max-width:620px){.brand>div>span{display:none}.brand strong{font-size:12px}.top-stats>div{min-width:0}.top-stats span{display:none}.case-heading{display:block}.case-progress{width:100%;margin-top:13px}.investigation-grid,.issue-grid{grid-template-columns:1fr}.issue-grid button:last-child{grid-column:1}.submit-row{flex-direction:column;align-items:stretch}.submit-row button{justify-content:center}.guide-flow{grid-template-columns:1fr}.dataset-toolbar p{display:none}.library-gate>header{padding-inline:16px}.library-gate>header>div:last-child{display:none}.library-intro{padding-top:36px}.library-grid>button{min-height:105px;padding:14px;grid-template-columns:28px 43px 1fr}.library-icon{width:43px;height:43px}.library-count{grid-column:3}}