.sp-root{--sm-primary:#3b82f6;--sm-text-primary:#000;--sm-text-secondary:#555;--sm-text-tertiary:#888;--sm-bg-primary:#fff;--sm-bg-secondary:#f0f0e8;--sm-border:#0000001a;--sm-divider:#00000014;--sm-card-shadow:0 1px 3px #00000014;--sm-mask-bg:#f7f4eeeb;--sm-mask-bg-hover:#f7f4eeb3;--sm-font:"Noto Sans TC", "Microsoft JhengHei", "PingFang TC", Arial, sans-serif;color:var(--sm-text-primary);font-family:var(--sm-font);letter-spacing:.04em;-webkit-font-smoothing:antialiased;padding:1.5rem 1rem 3rem;line-height:1.75}.sp-root *{box-sizing:border-box}html[data-theme=dark] .sp-root{--sm-text-primary:#fafafa;--sm-text-secondary:#a1a1aa;--sm-text-tertiary:#71717a;--sm-bg-primary:#27272a;--sm-bg-secondary:#1f1f22;--sm-border:#ffffff1a;--sm-divider:#ffffff14;--sm-card-shadow:0 1px 3px #0000004d;--sm-mask-bg:#18181beb;--sm-mask-bg-hover:#18181bbf}.sp-root .sp-empty{color:var(--sm-text-tertiary);text-align:center;padding:2rem 1rem;font-size:.9rem}.sp-root .chapter{margin-bottom:2.5rem}.sp-root .section-title{color:var(--sm-text-primary);border-bottom:1px solid var(--sm-border);align-items:center;gap:.625rem;margin:0 0 .875rem;padding-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.4;display:flex}.sp-root .section-number{background:var(--sm-primary);color:#fff;font-variant-numeric:tabular-nums;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.sp-root .subgroup{border-top:2px solid var(--sm-divider);padding:1.5rem 0}.sp-root .section-title+.subgroup{border-top:none;padding-top:.5rem}.sp-root .subgroup:last-child{padding-bottom:0}.sp-root .subgroup .prompt-box,.sp-root .subgroup .download-card{margin-bottom:.75rem}.sp-root .subgroup>:last-child{margin-bottom:0}.sp-root .subgroup-title{color:var(--sm-text-primary);border-left:3px solid #0184ff;margin:0 0 .85rem;padding-left:.6rem;font-size:.85rem;font-weight:600;line-height:1.3}.sp-root .sp-section-label{color:var(--sm-text-secondary);letter-spacing:.02em;border-left:2px solid var(--sm-border);margin:1.25rem 0 .65rem;padding-left:.6rem;font-size:.9rem;font-weight:600;line-height:1.3}.sp-root .subgroup-title+.sp-section-label,.sp-root .subgroup>div:first-child.sp-section-label{margin-top:0}.sp-root .prompt-box{border:1px solid var(--sm-border);background-color:var(--sm-bg-primary);box-shadow:var(--sm-card-shadow);border-radius:12px;margin:0 0 .75rem;position:relative;overflow:hidden}.sp-root .prompt-box__header{border-bottom:1px solid var(--sm-border);justify-content:space-between;align-items:center;gap:.5rem;min-height:48px;padding:.5rem .6rem .5rem 1rem;font-size:.95rem;font-weight:600;display:flex}.sp-root .prompt-box__title{font-weight:600;line-height:1.2}.sp-root .prompt-box__copy{border:1px solid var(--sm-border);color:var(--sm-text-secondary);cursor:pointer;white-space:nowrap;font-size:.85rem;font-weight:500;font-family:var(--sm-font);text-align:center;box-sizing:border-box;background-color:#0000;border-radius:10px;flex-shrink:0;width:calc(4em + 28px);padding:6px 14px;transition:all .2s}.sp-root .prompt-box__copy.copied{color:#fff;background-color:#4caf50;border-color:#4caf50}.sp-root .prompt-box__body{position:relative}.sp-root .prompt-box__content{background-color:var(--sm-bg-primary);width:100%;color:var(--sm-text-secondary);font-family:var(--sm-font);white-space:pre-wrap;word-wrap:break-word;max-height:320px;margin:0;padding:.85rem 1rem;font-size:.9rem;line-height:1.7;overflow-y:auto}.sp-root .prompt-box__content::-webkit-scrollbar{width:6px}.sp-root .prompt-box__content::-webkit-scrollbar-thumb{background:var(--sm-text-tertiary);border-radius:999px}.sp-root .prompt-box__mask{background-color:var(--sm-mask-bg);cursor:pointer;color:var(--sm-text-secondary);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:0 0 12px 12px;justify-content:center;align-items:center;font-size:.95rem;transition:background-color .2s;display:flex;position:absolute;inset:0}.sp-root .prompt-box__mask:hover{background-color:var(--sm-mask-bg-hover)}.sp-root .sp-note{margin:.5rem 0 1.25rem}.sp-root .sp-note__title{font-family:var(--sm-font);color:var(--sm-text-primary);letter-spacing:.02em;margin:0 0 .35rem;font-size:.85rem;font-weight:600}.sp-root .sp-note__body{font-family:var(--sm-font);color:var(--sm-text-secondary);white-space:pre-wrap;word-wrap:break-word;font-size:.95rem;line-height:1.75}.sp-root .download-card{background-color:var(--sm-bg-primary);border:1px solid var(--sm-border);box-shadow:var(--sm-card-shadow);cursor:pointer;border-radius:12px;align-items:center;gap:.75rem;margin:0 0 .75rem;padding:.85rem 1rem;transition:box-shadow .15s;display:flex}.sp-root .download-card:hover{box-shadow:0 4px 12px #0000001f}.sp-root .download-card__info{flex:1;min-width:0}.sp-root .download-card__name{color:var(--sm-text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .25rem;font-size:.95rem;font-weight:600;overflow:hidden}.sp-root .download-card__desc{color:var(--sm-text-secondary);margin:0;font-size:.8rem}.sp-root .download-card__btn{background:var(--sm-primary);color:#fff;white-space:nowrap;cursor:pointer;font-size:.9rem;font-weight:600;font-family:var(--sm-font);text-align:center;box-sizing:border-box;border:none;border-radius:10px;flex-shrink:0;width:calc(4em + 2.2rem);padding:.5rem 1.1rem;transition:background .15s}.sp-root .download-card__btn:hover{background:#06c}.sp-root .download-card__actions{flex-shrink:0;gap:.5rem;display:flex}.sp-root .download-card__btn--preview{width:5rem;color:var(--sm-text-secondary);border:1px solid var(--sm-border);background:0 0}.sp-root .download-card__btn--preview:hover{background:#0000000a}.xlsx-preview{z-index:9999;background:#0000008c;justify-content:center;align-items:center;padding:1.5rem;font-family:Noto Sans TC,Microsoft JhengHei,PingFang TC,Arial,sans-serif;display:flex;position:fixed;inset:0}.xlsx-preview__card{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:960px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 12px 40px #00000040}.xlsx-preview__header{border-bottom:1px solid #e0e0d8;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.xlsx-preview__title{color:#000;font-size:1.1rem;font-weight:700}.xlsx-preview__close{color:#555;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:2rem;height:2rem;transition:background .15s;display:flex}.xlsx-preview__close:hover{background:#0000000f}.xlsx-preview__body{padding:1rem 1.25rem 1.25rem;overflow:auto}.xlsx-preview__table{border-collapse:collapse;width:100%;font-size:.88rem}.xlsx-preview__table thead th{color:#fff;text-align:left;white-space:nowrap;background:#0184ff;padding:.6rem 1rem;font-weight:600;position:sticky;top:0}.xlsx-preview__table thead th:first-child{border-top-left-radius:8px}.xlsx-preview__table thead th:last-child{border-top-right-radius:8px}.xlsx-preview__table tbody td{color:#333;white-space:nowrap;border-top:1px solid #ececec;padding:.55rem 1rem}.xlsx-preview__table tbody tr:nth-child(2n){background:#f7f7f2}.xlsx-preview__text{white-space:pre-wrap;word-break:break-word;color:#333;margin:0;font-family:SF Mono,Menlo,Consolas,Noto Sans TC,monospace;font-size:.85rem;line-height:1.7}.sp-root .sp-download-all-btn{background:var(--sm-primary);color:#fff;width:100%;font-size:.95rem;font-weight:600;font-family:var(--sm-font);cursor:pointer;border:none;border-radius:10px;margin-bottom:.75rem;padding:.75rem 1.5rem;transition:background .15s}.sp-root .sp-download-all-btn:hover{background:#06c}.sp-root .links-block{margin-bottom:.75rem;padding:.25rem .25rem .75rem}.sp-root .links-block__title{color:var(--sm-text-primary);margin:0 0 .35rem;font-size:.9rem;font-weight:600}.sp-root .links-block__list{flex-wrap:wrap;gap:.5rem;margin:0;display:flex}.sp-root .links-block__btn{background:var(--sm-primary);color:#fff;border-radius:10px;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.sp-root .links-block__btn:hover{background:#06c}
:root{--sp-sidebar-bg:#f0ece4;--sp-sidebar-text:#1a1a1a;--sp-sidebar-title:#666;--sp-sidebar-border:#00000014;--sp-sidebar-shadow:2px 0 12px #00000014;--sp-sidebar-hover:#0000000d;--sp-sidebar-hover-text:#000}html[data-theme=dark]{--sp-sidebar-bg:#18181b;--sp-sidebar-text:#e4e4e7;--sp-sidebar-title:#a1a1aa;--sp-sidebar-border:#ffffff14;--sp-sidebar-shadow:2px 0 12px #0006;--sp-sidebar-hover:#ffffff14;--sp-sidebar-hover-text:#fafafa}body{--admin-nav-width:220px;--toc-width:300px}body[data-left-collapsed=true]{--admin-nav-width:24px}body:has(.course-wrapper[data-toc=collapsed]){--toc-width:0px}body:has(.student-panel-sidebar){--panel-third:calc((100vw - var(--admin-nav-width) - var(--toc-width) - 16px - 6rem) / 3);--panel-width:var(--panel-third)}body[data-student-expanded=true]{--panel-wide:calc((100vw - var(--admin-nav-width) - var(--toc-width) - 16px - 6rem) * 2 / 3);--panel-width:var(--panel-wide)}.student-panel-sidebar{top:0;bottom:0;left:var(--admin-nav-width);width:var(--panel-width);z-index:30;background:var(--sp-sidebar-bg);color:var(--sp-sidebar-text);border-right:1px solid var(--sp-sidebar-border);box-shadow:var(--sp-sidebar-shadow);flex-direction:column;transition:left .3s,width .3s;display:flex;position:fixed}.student-panel-sidebar-header{background:var(--sp-sidebar-bg);border-bottom:1px solid var(--sp-sidebar-border);flex:none;justify-content:space-between;align-items:center;gap:.5rem;height:44px;padding:0 .5rem 0 1rem;display:flex}.student-panel-sidebar-title{letter-spacing:.04em;color:var(--sp-sidebar-title);font-size:.8125rem;font-weight:600}.student-panel-toggle{width:30px;height:30px;color:var(--sp-sidebar-title);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.student-panel-toggle:hover{background:var(--sp-sidebar-hover);color:var(--sp-sidebar-hover-text)}.student-panel-sidebar-body{background:var(--sp-sidebar-bg);flex:1;overflow-y:auto}body:has(.student-panel-sidebar) .main-content{padding-left:calc(var(--panel-width) + 3rem);transition:padding-left .3s}body[data-student-expanded=true] .sp-root{max-width:760px;margin-left:auto;margin-right:auto}
