.source-dialog{width:min(1180px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:30px;border:1px solid #e4e8ef;border-radius:24px;background:#fbfcfe;color:#1d2535;box-shadow:0 30px 100px #18294a30;box-sizing:border-box;overflow:auto}.source-dialog::backdrop{background:#15213859;backdrop-filter:blur(7px)}.source-heading{display:flex;gap:20px;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.source-heading h2{font-size:27px;letter-spacing:-.7px;margin:8px 0;overflow-wrap:anywhere}.source-heading p{color:#737e90;font-size:14px;line-height:1.6;margin:0}.source-eyebrow{font-size:11px;letter-spacing:2px;color:#5c7eb2;font-weight:600}.source-close{flex:0 0 36px;height:36px;border:0;border-radius:50%;background:#edf0f5;color:#59657b;font-size:23px}.source-student{display:flex;align-items:center;gap:12px;margin-bottom:24px;color:#64718a}.source-student select{max-width:100%;min-width:180px;border:1px solid #dbe2ec;border-radius:10px;padding:9px 12px;background:white}.source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.source-card{appearance:none;text-align:left;min-width:0;padding:22px;border:1px solid #e2e8f1;border-radius:18px;background:white;display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:#5e6e86;transition:transform .2s,box-shadow .2s;cursor:pointer}.source-card:hover{transform:translateY(-2px);box-shadow:0 12px 25px #2235520c;border-color:#b7cdf1}.source-card b{font-size:16px;color:#25354e;overflow-wrap:anywhere;line-height:1.5}.source-card span:not(.source-file-icon){font-size:12px}.source-card small{font-size:11px;color:#8d96a6}.source-file-icon{display:grid;place-content:center;border-radius:13px;width:48px;height:57px;background:linear-gradient(140deg,#eef5ff,#dce9ff);font-size:11px;letter-spacing:1px;color:#447ccb;margin-bottom:10px}.source-empty{padding:65px 20px;text-align:center;grid-column:1/-1;color:#8791a1}.source-empty b{font-size:19px;color:#596d89;font-weight:500}.source-empty p{font-size:13px;line-height:1.7}.source-detail-toolbar{display:flex;gap:14px;align-items:center;margin:0 0 20px;flex-wrap:wrap}.source-detail-toolbar span{font-size:13px;color:#7e8798;flex:1}.source-detail-toolbar a{text-decoration:none}.source-viewer{display:grid;grid-template-columns:105px minmax(0,1fr);gap:22px;align-items:start}.source-pages{display:flex;flex-direction:column;gap:8px;max-height:65vh;overflow:auto}.source-pages button{padding:12px 8px;border:1px solid #e0e7f1;border-radius:12px;background:white;color:#697b93;cursor:pointer}.source-pages button[aria-pressed=true]{background:#eaf2ff;border-color:#92bafa;color:#286fd4}.source-paper-pane{min-width:0;padding:20px;border-radius:18px;background:#edf1f6}.source-paper{position:relative;width:fit-content;max-width:100%;margin:auto;background:white;box-shadow:0 2px 12px #263a5715}.source-paper img{display:block;width:auto;max-width:100%;max-height:900px}.source-question-box{position:absolute;border:2px solid #4385e9;background:#4790fc0c;box-sizing:border-box;pointer-events:none}.source-page-footer{display:flex;gap:15px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:20px}.source-page-footer p{color:#798599;font-size:12px;margin:0}.source-error{background:#fff0eb;color:#a3432c;border:1px solid #f3d5c9;padding:12px;border-radius:12px;line-height:1.5}.source-error button{border:0;background:transparent;color:inherit;text-decoration:underline}.source-loading{color:#6e80a0}.source-pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:25px;color:#7a879c}.source-dialog button:focus-visible,.source-dialog a:focus-visible{outline:3px solid #8bb6f4;outline-offset:3px}.source-dialog button:disabled{opacity:.45;cursor:default}
@media(max-width:700px){.source-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:20px 15px;border-radius:18px}.source-heading h2{font-size:22px}.source-heading p{font-size:12px}.source-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.source-card{padding:16px 12px;border-radius:14px}.source-card b{font-size:14px}.source-viewer{display:block}.source-pages{flex-direction:row;max-height:none;margin-bottom:12px;overflow-x:auto;padding:3px}.source-pages button{flex:0 0 auto}.source-paper-pane{padding:10px}.source-detail-toolbar{gap:8px}.source-detail-toolbar span{flex-basis:100%;order:3}.source-page-footer{gap:10px}.source-page-footer .primary{width:100%}.source-student{display:block}.source-student select{margin-top:8px;display:block;width:100%}}
@media(prefers-reduced-motion:reduce){.source-card{transition:none}}
