:root{font-family:Inter,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:#303b38;background:#f7f8fa;font-synthesis:none;--green:#275649;--green-dark:#204839;--mint:#e9f0e5;--muted:#939b97;--line:#e9ece9;--sidebar:224px}
*{box-sizing:border-box}body{margin:0;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #9dbb85;outline-offset:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #8fac81;outline-offset:2px}button{border:0;background:none}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}input[type=checkbox]{accent-color:var(--green)}input[type=range]{accent-color:var(--green)}[hidden]{display:none!important}.icon{flex-shrink:0;vertical-align:middle;pointer-events:none}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fcfcfb;border-right:1px solid #e5e9e5;display:flex;flex-direction:column;padding:32px 18px 16px;z-index:20}.brand{display:flex;align-items:center;gap:9px;padding:0 12px;font-size:25px;font-weight:700;letter-spacing:-1.1px;width:max-content}.brand-dot{color:#7a9e61}.workspace-label{font-size:10px;color:#a0a7a2;letter-spacing:1.8px;margin:39px 17px 15px}.nav-item{height:46px;display:flex;align-items:center;gap:12px;border-radius:7px;width:100%;padding:0 15px;font-size:12px;color:#7b8580;text-align:left;transition:background .15s,color .15s}.nav-item .icon{width:18px;height:18px}.nav-item:hover{background:#f0f3ee;color:var(--green)}.nav-item.active{background:#eaf0e6;color:#385b42;font-weight:600}.nav-active-dot{width:5px;height:5px;background:#588553;border-radius:50%;margin-left:auto}.nav-count{margin-left:auto;font-size:10px;background:#edf0eb;border:1px solid #e4e8e1;min-width:19px;padding:2px 5px;text-align:center;border-radius:4px}.main-nav{display:grid;gap:5px}.nav-section-label{font-size:10px;color:#a2aaa4;letter-spacing:1px;margin:29px 17px 12px}.nav-item.future{font-size:12px;color:#a1a8a3}.soon-label{font-size:9px;border:1px solid #e6e9e3;border-radius:4px;padding:2px 4px;margin-left:auto;color:#9ba79b;white-space:nowrap}.sidebar-bottom{margin-top:auto;padding-top:35px}.sidebar-note{background:#f0f2e9;border:1px solid #e9ece0;border-radius:9px;margin:0 4px 22px;padding:24px 17px 18px;position:relative;overflow:hidden}.note-decoration{position:absolute;right:10px;top:9px;font-size:61px;line-height:1;color:#d8dfc9;transform:rotate(8deg)}.eyebrow{font-size:9px;letter-spacing:1.45px;font-weight:600;color:#809176}.sidebar-note>.eyebrow{font-size:7px;letter-spacing:.7px;position:relative}.sidebar-note h3{font-size:17px;font-weight:550;letter-spacing:.4px;margin:18px 0 9px;color:#495b43}.sidebar-note p{font-size:10px;line-height:1.9;color:#8c9584}.sidebar-note button{display:flex;align-items:center;justify-content:space-between;padding:0;margin-top:20px;width:100%;font-size:10px;color:#58734f}.sidebar-note button .icon{width:14px;height:14px}.sidebar-help{display:flex;align-items:center;gap:11px;width:100%;padding:0 17px 22px;font-size:11px;color:#8b958e}.sidebar-help .icon{width:16px;height:16px}.sidebar-help .icon:last-child{margin-left:auto;width:12px}.local-user{border-top:1px solid var(--line);padding:20px 12px 4px;display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;background:#e9eadd;color:#6b775e;border:1px solid #dfe3d7;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:19px}.local-user strong{font-size:10px;font-weight:500;display:block}.local-user>div>span{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:8px;color:#a0a69e}.local-user i,.local-badge i{width:5px;height:5px;display:block;border-radius:50%;background:#87a875}.local-user>.icon{margin-left:auto;width:13px;color:#b1b7ae}.app-shell{margin-left:var(--sidebar);min-height:100vh}.topbar{height:73px;border-bottom:1px solid #e8ebe8;padding:0 45px;display:flex;align-items:center;justify-content:space-between;background:#fcfcfb}.breadcrumb{display:flex;align-items:center;gap:17px;font-size:11px;color:#98a19a}.breadcrumb strong{font-weight:500;color:#5c6860}.breadcrumb-slash{color:#c5cbc3}.topbar-right{display:flex;align-items:center;gap:17px}.local-badge{font-size:10px;color:#869282;display:flex;align-items:center;gap:7px}.local-badge i{width:5px;height:5px}.header-divider{height:19px;width:1px;background:#e4e8e1}.icon-button{width:30px;height:30px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;padding:5px;color:#8d9790}.icon-button:hover{color:var(--green);background:#eef2eb}.icon-button .icon{width:17px;height:17px}.tiny-avatar{width:26px;height:26px;background:#eee9df;color:#7e8170;display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif;font-size:14px}
main{max-width:1430px;margin:auto;padding:40px 45px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;padding:0 0 30px}.page-overline{font-size:8px;font-weight:600;color:#8c9b87;letter-spacing:2.1px;display:flex;align-items:center;gap:6px}.page-overline>span{display:block;width:5px;height:5px;background:#7e9a6d;border-radius:50%}.page-heading h1{font-weight:600;font-size:29px;letter-spacing:.5px;margin:14px 0 12px;color:#2d3931;line-height:1.4}.page-heading h1>span{color:#507548}.page-heading p{font-size:11px;letter-spacing:.3px;color:#969e97}.heading-mark{width:147px;display:flex;align-items:center;justify-content:center;position:relative;margin:0 18px 7px 0;gap:18px;color:#92a187}.heading-mark>.icon{width:27px;height:27px;stroke-width:1.1}.heading-mark>.icon:last-of-type{transform:rotate(-10deg);color:#5c7653}.mark-line{width:27px;height:1px;background:#c4cebe;position:relative}.mark-line:after{content:'';position:absolute;right:0;top:-2px;width:4px;height:4px;border-right:1px solid #c4cebe;border-top:1px solid #c4cebe;transform:rotate(45deg)}.heading-mark-caption{font-size:7px;letter-spacing:2px;color:#a0aa99;position:absolute;bottom:-25px;left:14px;white-space:nowrap}.workflow{display:flex;align-items:center;background:#f0f3ed;border:1px solid #e7ebe2;border-radius:7px;min-height:48px;padding:9px 21px;margin-bottom:23px;gap:20px}.workflow-step{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.2px;color:#9ca69a;white-space:nowrap}.workflow-step>span{font-family:Georgia,serif;font-size:10px;border:1px solid #d9dfd2;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;color:#9ba992;background:#f6f7f3}.workflow-step.current{color:#4f6c44;font-weight:600}.workflow-step.current>span{background:#dae7ce;border-color:#dae7ce;color:#4b6a3e}.workflow-step.done>span{color:#4c6b42;background:#e6eddc}.workflow-line{height:1px;max-width:82px;min-width:20px;flex:1;background:#dce3d5}.workflow-tail{margin-left:auto;font-size:9px;letter-spacing:.7px;color:#9ca895}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(295px,1fr);gap:22px;align-items:stretch}.panel{background:#fff;border:1px solid #e4e8e3;border-radius:10px;box-shadow:0 3px 5px #243c2502;overflow:hidden}.panel-heading{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.panel-heading h2{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;letter-spacing:.2px}.panel-heading h2>.icon{width:17px;height:17px;color:#71836b}.small-label{font-size:9px;color:#a4aba2}.source-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);padding:0 24px;height:39px}.source-tab{display:flex;align-items:flex-start;gap:7px;padding:0 0 13px;color:#a0a79f;font-size:10px;position:relative}.source-tab>.icon{width:14px;height:14px}.source-tab.active{color:#466b3b;font-weight:600}.source-tab.active:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;border-radius:2px;background:#6d8959}.source-panel{display:flex;flex-direction:column}.source-panel #source-content{flex:1;min-height:327px;padding:21px 24px 17px;display:flex;flex-direction:column}.dropzone{border:1.5px dashed #ccd7c4;border-radius:7px;background:radial-gradient(ellipse at 50% 0,#f9fbf5 0,transparent 70%),#fcfdfb;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:308px;height:100%;padding:23px 15px 19px;cursor:pointer;transition:background .15s,border-color .15s;position:relative}.dropzone:hover,.dropzone.dragging{background:#f1f6ec;border-color:#8ea77b}.dropzone.dragging{box-shadow:inset 0 0 0 2px #adc89b}.upload-art{width:69px;height:62px;position:relative;display:grid;place-items:center;margin:4px 0 15px}.upload-art>.icon{width:35px;height:35px;stroke-width:1.2;color:#6c8a58;position:relative}.upload-orbit{position:absolute;inset:0 4px;background:#eaf0e1;border-radius:19px;transform:rotate(-9deg);border:1px solid #e1e9d7}.upload-art:after{content:'+';position:absolute;right:0;top:3px;color:#b0c397;font-size:17px}.dropzone h3{font-size:15px;font-weight:550;letter-spacing:.4px;color:#596650}.dropzone p{font-size:10px;color:#a0a995;margin-top:9px;letter-spacing:.3px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;border-radius:6px;padding:0 17px;font-size:11px;font-weight:500;transition:background .15s,box-shadow .15s;white-space:nowrap}.button .icon{width:15px;height:15px}.button.primary{color:#fff;background:var(--green);border:1px solid var(--green);box-shadow:0 2px 3px #23492e0a}.button.primary:hover:enabled{background:#1c4436;box-shadow:0 3px 8px #23492e20}.button.secondary{color:#74816e;background:#fff;border:1px solid #e1e6dd}.button.secondary:hover:enabled{background:#f2f5ef;border-color:#c5d1bc}.button.small{min-height:33px;font-size:10px;padding:0 12px;gap:6px}.button.small .icon{width:13px;height:13px}.upload-button{margin-top:22px;min-width:148px;height:38px;font-size:10px}.upload-button .icon{width:13px;height:13px}.file-support{display:flex;align-items:center;gap:9px;margin-top:19px;font-size:8px;letter-spacing:.8px;color:#9fa998}.file-support span{color:#c0c8ba}.upload-limit{font-size:8px;margin-top:6px;color:#b3bbac;letter-spacing:.2px}#local-source{flex:1}.source-footer{min-height:58px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f0f2ed;background:#fdfefb;gap:8px}.demo-link{display:flex;align-items:center;gap:9px;color:#9aa28f;font-size:9px;padding:0}.demo-link strong{font-weight:500;color:#66814f;margin-left:2px}.demo-link>.icon{width:12px;height:12px;color:#92a47e;margin-left:2px}.demo-play{width:24px;height:24px;border:1px solid #e3e8d9;border-radius:50%;display:grid;place-items:center;color:#8da278;background:#f4f7ed}.demo-play>.icon{width:11px;height:11px;fill:#8da278;stroke-width:0;margin-left:1px}.demo-meta{font-size:8px;color:#adb6a5}.settings-panel{padding:0 23px 17px}.settings-panel .panel-heading{padding:0;height:65px}.text-button{display:inline-flex;align-items:center;gap:5px;color:#8d9b83;font-size:9px;padding:3px 0}.text-button:hover{color:var(--green)}.text-button .icon{width:13px;height:13px}.text-button.danger{color:#a1887d}.settings-panel fieldset{border:0;margin:0;padding:0;min-width:0}.setting-label{font-size:10px;color:#687760;display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.recommended{font-size:8px;color:#b1bba6;letter-spacing:.1px;font-weight:400}.segmented{display:flex;padding:3px;background:#f5f6f3;border:1px solid #e8ece2;border-radius:5px;margin-bottom:24px}.segmented label{flex:1;position:relative;cursor:pointer}.segmented input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.segmented span{display:flex;align-items:center;justify-content:center;gap:6px;height:29px;border:1px solid transparent;color:#a0aa96;font-size:9px;border-radius:3px;pointer-events:none}.segmented input:checked+span{background:#fff;border-color:#e4e9dc;color:#5c7b47;box-shadow:0 2px 3px #1f411506}.segmented input:focus-visible+span{outline:2px solid #91ac7e}.segmented .icon{width:13px;height:13px}.sensitivity-setting .setting-label{margin-bottom:8px}.setting-label output{color:#82916f;font-size:9px}input[type=range]{appearance:none;width:100%;height:3px;border-radius:3px;background:#dfe7d7;display:block;margin:17px 0 11px;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;background:#698850;width:12px;height:12px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #b9caa8}.range-labels{display:flex;justify-content:space-between;font-size:8px;color:#a8b19f;margin-bottom:20px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;font-size:10px;color:#7b8773}.setting-row select,#sort-order{font-size:9px;color:#8a9781;background:#fff;border:1px solid #e4e9de;border-radius:4px;padding:6px 7px;min-width:117px}.settings-divider{height:1px;background:#edf0e8;margin:14px 0 12px}.switch-row{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:32px;cursor:pointer}.switch-row>span:first-child{display:flex;align-items:center;gap:7px;color:#7b8871;font-size:10px}.switch-row .icon{width:14px;height:14px;color:#97a58a}.switch-row>input{position:absolute;right:0;width:29px;height:16px;opacity:0;z-index:1;cursor:pointer;margin:0}.switch-track{width:27px;height:15px;border-radius:10px;background:#e7ebe2;transition:background .2s;position:relative;pointer-events:none}.switch-track:after{content:'';width:11px;height:11px;position:absolute;top:2px;left:2px;border-radius:50%;background:white;box-shadow:0 1px 2px #35452715;transition:transform .2s}.switch-row input:checked+.switch-track{background:#7c9965}.switch-row input:checked+.switch-track:after{transform:translateX(12px)}.switch-row input:focus-visible+.switch-track{outline:2px solid #8da67b;outline-offset:2px}.crop-setting{font-size:9px;color:#91a083;display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 0 6px;min-height:31px}.crop-setting>span:last-child{color:#a6b09c;display:flex;align-items:center;gap:4px;font-size:8px}.crop-setting .icon{width:11px;height:11px}.range-details{margin:4px 0 7px}.range-details summary{font-size:8px;color:#a4af99;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:5px 0}.range-details summary>.icon{width:11px;height:11px}.time-fields{display:flex;gap:10px;align-items:center;margin:8px 0}.time-fields label{font-size:8px;color:#9aa78e;min-width:0;flex:1}.time-fields input{display:block;width:100%;padding:6px;margin-top:5px;border:1px solid #dfe5d7;border-radius:4px;font-size:10px;color:#607653;min-width:0}.time-fields>span{color:#b8c1b0}.extract-button{width:100%;margin-top:13px;min-height:39px;font-size:10px;justify-content:center}.extract-button>.icon:last-child{margin-left:auto;width:13px}.extract-button>.icon:first-child{margin-right:auto;width:14px}.privacy-note{display:flex;align-items:center;justify-content:center;gap:5px;font-size:8px;color:#a5ae9b;margin-top:11px}.privacy-note .icon{width:11px;height:11px}.setting-muted{opacity:.45}
.url-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:308px;background:#fcfdfb;border:1px solid #e6ecdf;border-radius:7px;padding:20px}.url-icon{width:46px;height:46px;border-radius:50%;background:#edf3e7;color:#7f9a66;display:grid;place-items:center;margin-bottom:17px}.url-panel h3{font-size:14px;font-weight:500;color:#687b5b}.url-panel p{font-size:9px;color:#9ba88e;margin:11px 0 22px}.url-panel form{display:flex;width:100%;gap:7px}.url-panel input,#retry-url{min-width:0;flex:1;width:100%;border:1px solid #dce5d4;border-radius:5px;padding:10px;font-size:10px;color:#4d6741}.url-panel .button{font-size:10px;padding:0 11px}.url-info{text-align:center;line-height:1.9;font-size:9px;color:#a8b09e;margin-top:18px}.video-wrapper{position:relative;background:#18251e;border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;flex:1;min-height:235px}.video-wrapper video{width:100%;max-height:330px;display:block}.video-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;background:#24352c;color:#bfcbb8;font-size:11px}.source-meta{display:flex;gap:10px;align-items:center;margin-top:16px;min-width:0}.source-file-icon{width:33px;height:35px;display:grid;place-items:center;background:#f1f5eb;border-radius:5px;color:#87a471}.source-file-icon>.icon{width:17px;height:17px}.source-meta>div{min-width:0;flex:1}.source-meta strong{font-size:10px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden;color:#65775a}.source-meta p{font-size:8px;color:#a0ad94;margin-top:5px;word-spacing:3px}.source-ready{display:flex;align-items:center;gap:6px;font-size:9px;color:#92a27f}.source-ready>.icon{width:13px;height:13px}.source-error,.restored-source{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:305px;padding:10px;color:#9ba68e}.source-error>.icon,.restored-source>.icon{width:30px;height:30px;margin-bottom:20px;color:#90a17e}.source-error h3,.restored-source h3{font-size:15px;font-weight:500;max-width:100%;overflow-wrap:anywhere}.source-error p,.restored-source p{font-size:10px;line-height:1.9;margin:16px 0 22px;max-width:90%}.source-error form{display:flex;gap:7px;margin-top:20px;width:100%}#retry-url{font-size:9px}
.processing-panel{margin-top:21px;border:1px solid #dce7d4;background:#f5f9f1;padding:18px 22px 16px;border-radius:8px}.processing-heading{display:flex;align-items:center;gap:15px;color:#5d7a49}.processing-heading>div{flex:1}.processing-heading>div strong{font-size:11px;font-weight:500;display:block}.processing-heading>div span{font-size:9px;color:#95a785;display:block;margin-top:7px}.processing-heading>strong{font-size:12px;font-variant-numeric:tabular-nums}.progress-track{height:3px;border-radius:3px;margin-top:16px;background:#e2ebd9;overflow:hidden}.progress-track>div{height:100%;background:#77995d;transition:width .15s}.spinner{display:inline-block;width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.extract-button .spinner{width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}
.results-section{margin-top:33px}.results-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}.results-title{min-width:0}.results-title h2{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.results-title h2>span{font-size:9px;min-width:20px;line-height:19px;border:1px solid #e0e6d9;border-radius:5px;color:#889a78;background:#f0f4e9;text-align:center;padding:0 5px;font-weight:500}.results-title p{font-size:9px;color:#a2ac9b;margin-top:8px;max-width:380px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.results-actions{display:flex;align-items:center;gap:8px}.results-actions>.button:disabled{opacity:.52}.empty-results{min-height:244px;border:1px solid #e5e9e1;border-radius:9px;background:linear-gradient(110deg,#fafcf8,#f1f4ed);display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:32px 40px}.empty-copy{position:relative;z-index:1}.empty-copy>.eyebrow{font-size:7px;letter-spacing:1.4px;color:#9aa88c}.empty-copy h3{font-size:19px;font-weight:500;line-height:1.6;color:#647458;margin-top:14px;letter-spacing:.5px}.empty-copy p{color:#a5af9a;font-size:9px;line-height:1.9;margin-top:11px}.empty-copy .text-button{margin-top:11px;color:#7b9566;font-size:9px}.empty-copy .text-button .icon{margin-left:7px;width:12px}.sample-stack{position:relative;width:290px;height:177px;margin-right:21px;flex-shrink:0}.sample-slide{position:absolute;width:247px;border-radius:5px;overflow:hidden;box-shadow:0 11px 25px #3e553522;border:4px solid #fff;background:white;line-height:0}.sample-slide img{width:100%;display:block}.sample-back{right:-12px;top:0;transform:rotate(12deg)}.sample-middle{right:9px;top:4px;transform:rotate(1deg)}.sample-front{left:0;top:18px;transform:rotate(-10deg);border-bottom-width:23px}.sample-front span{position:absolute;bottom:-15px;left:8px;color:#85917a;font-size:7px;line-height:1}.sample-spark{position:absolute;right:-33px;bottom:-3px;color:#aabb91;font-size:37px;z-index:2;transform:rotate(12deg)}.benefits-row{display:flex;justify-content:space-between;gap:16px;padding:26px 14px 30px;border-bottom:1px solid #e6eae1}.benefits-row>div{display:flex;align-items:flex-start;gap:10px}.benefits-row>div>.icon{width:21px;height:21px;stroke-width:1.2;color:#a1b28e;margin-top:1px}.benefits-row strong{font-size:9px;font-weight:500;color:#8c9d7c;display:block;letter-spacing:.2px}.benefits-row small{display:block;font-size:8px;color:#b3bda8;margin-top:7px}.page-footer{display:flex;align-items:center;justify-content:space-between;padding:20px 0 23px;gap:10px;color:#b2bbab;font-size:8px}.page-footer>span{display:flex;align-items:center;gap:8px}.page-footer svg{width:14px;height:14px;opacity:.55}.page-footer i{display:block;width:3px;height:3px;border-radius:50%;background:#c9d1c2}.version-tag{font-size:7px;border:1px solid #e3e8dd;padding:2px 3px;border-radius:3px;color:#a9b39e}
.results-toolbar{display:flex;gap:16px;align-items:center;margin:0 0 15px;padding:10px 0;border-top:1px solid #e9ede5;border-bottom:1px solid #e9ede5}.select-all{font-size:10px;color:#8c9c7d;display:flex;align-items:center;gap:7px;cursor:pointer}.select-all input{width:13px;height:13px;margin:0}.select-all>span{font-size:8px;color:#a6b299;margin-left:9px}.toolbar-spacer{flex:1}#sort-order{min-width:99px;border:0;background:transparent;font-size:9px}.view-toggle{display:flex;border:1px solid #e0e7d9;border-radius:4px;padding:2px;gap:2px}.view-toggle button{display:grid;place-items:center;width:25px;height:24px;color:#adbaa0;border-radius:3px}.view-toggle button.active{background:#e8efdf;color:#6d8b55}.view-toggle .icon{width:13px;height:13px}.slide-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.slide-card{border:1px solid #e2e8db;background:#fff;border-radius:7px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.slide-card:hover{box-shadow:0 5px 14px #3c5d2e0b;border-color:#bdcfad}.slide-card:not(.selected){opacity:.55}.slide-thumbnail{position:relative;aspect-ratio:16/9;background:#edf0e8}.slide-image-button{display:block;width:100%;height:100%;padding:0}.slide-image-button img{width:100%;height:100%;object-fit:contain;display:block}.slide-checkbox{position:absolute;top:9px;left:9px;line-height:0;cursor:pointer}.slide-checkbox input{width:15px;height:15px;margin:0;cursor:pointer;filter:drop-shadow(0 1px 2px #0002)}.slide-expand{position:absolute;right:7px;top:7px;background:#fff9;color:#56694d;width:24px;height:24px;opacity:0;transition:opacity .15s}.slide-card:hover .slide-expand,.slide-expand:focus-visible{opacity:1}.slide-expand .icon{width:12px;height:12px}.manual-tag{position:absolute;right:8px;bottom:7px;background:#fffD;border-radius:3px;font-size:7px;color:#758b63;padding:3px 5px}.slide-card-footer{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 11px}.slide-card-footer>span{display:flex;align-items:center;gap:11px}.slide-card-footer b{font-size:10px;font-weight:500;color:#8a9b7a;font-variant-numeric:tabular-nums}.timestamp{font-size:8px;color:#9dad8e;display:flex;align-items:center;gap:4px;padding:0}.timestamp:hover{color:#466b32}.timestamp .icon{width:10px;height:10px}.delete-slide .icon{width:12px;height:12px}.delete-slide{width:24px;height:24px;color:#adb9a2}.delete-slide:hover{color:#ae7767;background:#fcf3ef}.list-view{grid-template-columns:1fr;gap:9px}.list-view .slide-card{display:flex;align-items:center;padding:7px;gap:16px}.list-view .slide-thumbnail{width:150px;flex-shrink:0;border-radius:3px;overflow:hidden}.list-view .slide-card-footer{flex:1;padding-right:12px}.list-view .slide-card-footer b{font-size:13px}.list-view .slide-card-footer>span{gap:25px}.list-view .timestamp{font-size:11px}
dialog{padding:0;border:1px solid #e0e6da;border-radius:13px;box-shadow:0 25px 100px #14271833;color:#586c4c;background:#fff;max-height:calc(100dvh - 48px);overflow:auto}dialog::backdrop{background:#1f332963;backdrop-filter:blur(4px)}.modal{width:min(560px,calc(100vw - 32px));padding:31px}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.modal-heading h2{font-size:21px;font-weight:500;letter-spacing:.2px;margin-top:7px;line-height:1.5;color:#435d37}.modal-heading .icon-button{align-self:flex-start;flex-shrink:0}.modal>p{font-size:11px;line-height:1.9;color:#96a38a;margin-bottom:21px}.export-options{display:grid;gap:10px;margin-top:25px}.export-options>button{border:1px solid #e2eadb;background:#fbfdf8;border-radius:7px;display:flex;align-items:center;text-align:left;padding:16px;gap:15px;transition:background .15s,border-color .15s}.export-options>button:hover{background:#f1f6e9;border-color:#bbcea8}.export-options>button>.icon:first-child{width:25px;height:25px;color:#95ae7e;stroke-width:1.3}.export-options>button>span{flex:1}.export-options strong{font-size:12px;font-weight:500;display:block;color:#657f53}.export-options small{font-size:9px;display:block;color:#a7b49a;margin-top:7px}.export-options b{font-size:10px;font-weight:400;color:#a0b28f}.export-options>button>.icon:last-child{width:13px;height:13px;color:#9caf8a}.modal-note{display:flex;gap:9px;font-size:9px;color:#9eac92;line-height:1.9;background:#f5f8f0;border:1px solid #e8efdf;border-radius:6px;padding:13px;margin-top:20px}.modal-note .icon{width:14px;height:14px;margin-top:2px}.inspect-modal{width:min(1000px,calc(100vw - 32px));padding:22px}.inspect-modal .modal-heading{margin-bottom:15px}.inspect-modal h2{font-size:14px;margin:0}.muted{color:#b3bfa8;font-weight:400;font-size:.75em;margin-left:5px}.inspect-image{width:100%;max-height:55dvh;display:flex;align-items:center;justify-content:center;background:#e9ede4;border-radius:5px;overflow:hidden}.inspect-image img{max-width:100%;max-height:55dvh;display:block;object-fit:contain}.inspect-navigation{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.inspect-navigation>span{font-size:9px;color:#9eae91}.inspect-navigation i{font-style:normal;margin:0 8px;color:#c1cdb6}.note-label{display:flex;justify-content:space-between;font-size:10px;color:#80986b;margin:21px 0 10px;gap:12px}.note-label span{font-size:8px;color:#b0bda4}.inspect-modal textarea{width:100%;resize:vertical;max-height:140px;min-height:65px;border:1px solid #e0ead7;border-radius:5px;padding:11px;color:#779060;font-size:11px;background:#fcfef9}.inspect-modal textarea::placeholder{color:#bcc8b2}.inspect-footer{display:flex;justify-content:space-between;gap:10px;margin-top:15px}.crop-modal{width:min(810px,calc(100vw - 32px))}#crop-stage{position:relative;background:#17271a;overflow:hidden;touch-action:none;cursor:crosshair;max-height:53dvh;margin:auto;user-select:none}#crop-stage>img{width:100%;height:100%;object-fit:fill;display:block;pointer-events:none}#crop-selection{position:absolute;left:0;top:0;width:100%;height:100%;border:2px solid #d0f49a;box-shadow:0 0 0 1000px #12260a8c;pointer-events:none}#crop-selection:before,#crop-selection:after{content:'';position:absolute;width:100%;height:1px;left:0;top:33.333%;background:#d0f49a70}#crop-selection:after{top:66.667%}#crop-selection>span{width:8px;height:8px;background:#e6ffc7;border:1px solid #779958;position:absolute}#crop-selection>span:nth-child(1){left:-4px;top:-4px}#crop-selection>span:nth-child(2){right:-4px;top:-4px}#crop-selection>span:nth-child(3){right:-4px;bottom:-4px}#crop-selection>span:nth-child(4){left:-4px;bottom:-4px}.crop-presets{display:flex;gap:7px;margin:15px 0}.crop-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:22px}.crop-fields label{font-size:9px;color:#a2b18f}.crop-fields input{width:100%;display:block;margin-top:7px;padding:8px;font-size:11px;border:1px solid #dce8cf;border-radius:4px;color:#7c9862}.modal-footer{margin-top:22px;display:flex;align-items:center;justify-content:space-between}.modal-footer>span{font-size:9px;color:#acbba0}.history-modal{width:min(700px,calc(100vw - 32px))}.history-list{display:grid;gap:13px}.history-card{display:flex;border:1px solid #e4ecdc;border-radius:7px;padding:10px;gap:8px;align-items:center}.history-card>button:first-child{display:flex;align-items:center;gap:15px;text-align:left;flex:1;min-width:0;padding:0}.history-card img{width:110px;aspect-ratio:16/9;border-radius:3px;object-fit:cover;background:#eaf0e3}.history-card>button>span{min-width:0;flex:1}.history-card strong{display:block;font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6e875b}.history-card small{font-size:9px;color:#acb99e;display:block;margin-top:9px}.history-card>button>.icon{width:15px;color:#9daf8d}.history-empty{padding:40px;text-align:center;color:#abbc9c}.history-empty>.icon{width:35px;height:35px;margin-bottom:20px}.history-empty h3{font-size:16px;font-weight:500}.history-empty p{margin-top:12px;font-size:10px}.guide-steps{display:grid;gap:25px;margin-top:26px}.guide-steps article{display:flex;gap:15px}.guide-steps b{font:15px Georgia,serif;color:#a1b78c;border:1px solid #e1ecd6;border-radius:50%;width:33px;height:33px;flex-shrink:0;display:grid;place-items:center;background:#f6faef}.guide-steps h3{font-size:12px;font-weight:500;margin:5px 0 8px;color:#6f8a5a}.guide-steps p{font-size:10px;color:#a3b295;line-height:1.9}.roadmap{display:grid;gap:0;margin-top:26px}.roadmap article{display:flex;gap:15px;padding:20px 13px;border-bottom:1px solid #e9f0e0}.roadmap article:last-child{border-bottom:0}.roadmap article>span{font:16px Georgia,serif;color:#b6c5a7;flex-shrink:0}.roadmap article>div{flex:1}.roadmap small{font-size:8px;color:#b0c19f}.roadmap h3{font-size:13px;font-weight:500;color:#8aa374;margin:6px 0 10px}.roadmap p{font-size:10px;line-height:1.9;color:#a4b696}.roadmap-current{border-radius:7px;background:#f5f9ed}.roadmap-current>span,.roadmap-current h3{color:#6e8e54!important}.roadmap-current>.icon{color:#99b77e;width:19px}.roadmap article>span{margin-top:2px}#toast{position:fixed;left:calc(50% + var(--sidebar)/2);bottom:28px;max-width:min(600px,calc(100vw - 30px));display:flex;align-items:center;gap:10px;padding:13px 20px;border:1px solid #d1dfc6;background:#f8fdf2;box-shadow:0 5px 28px #3656201c;border-radius:9px;z-index:100;transform:translate(-50%,20px);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;font-size:11px;line-height:1.7;color:#6a8a53}#toast .icon{width:17px;height:17px}#toast.visible{opacity:1;transform:translate(-50%,0)}#toast.error{color:#a17e68;background:#fffcf6;border-color:#e9d9c7}
@media(min-width:1600px){:root{--sidebar:244px}main{padding-top:49px}.page-heading h1{font-size:34px}.workspace-grid{grid-template-columns:minmax(0,1.7fr) minmax(330px,1fr)}.source-panel #source-content{padding:24px 28px 20px}.dropzone{min-height:340px}.panel-heading{height:70px}.settings-panel{padding:0 27px 20px}.settings-panel .panel-heading{height:70px}.segmented{margin-bottom:28px}.setting-row{min-height:36px}.switch-row{min-height:34px}.settings-divider{margin:17px 0 14px}.empty-results{min-height:258px}.sample-stack{margin-right:65px}}
@media(max-width:1200px){:root{--sidebar:200px}.sidebar{padding-left:12px;padding-right:12px}.brand{font-size:23px;gap:7px;padding:0 12px}.brand svg{width:29px;height:29px}.topbar{padding:0 28px}main{padding:32px 28px 0}.workspace-grid{gap:17px;grid-template-columns:minmax(0,1.35fr) minmax(285px,1fr)}.small-label{display:none}.source-panel .panel-heading{padding:0 20px}.source-tabs{padding:0 20px}.source-panel #source-content{padding:18px}.source-footer{padding:0 18px}.demo-meta{display:none}.settings-panel{padding:0 19px 17px}.page-heading h1{font-size:26px}.workflow-tail{display:none}.workflow-line{max-width:none}.heading-mark{margin-right:0;width:126px;gap:13px}.heading-mark-caption{left:6px}.sample-stack{width:230px;margin-right:14px}.sample-slide{width:211px}.sample-front{top:27px}.sample-back{top:8px}.sample-middle{top:14px}.sample-spark{right:-24px;bottom:4px;font-size:30px}.empty-results{padding:26px;min-height:230px}.empty-copy h3{font-size:17px}.empty-copy p{font-size:8px}.benefits-row{padding-left:0;padding-right:0}.benefits-row>div{gap:7px}.benefits-row>div>.icon{width:17px;height:17px}.benefits-row strong{font-size:8px}.benefits-row small{font-size:7px}.results-actions .button{font-size:9px;padding:0 9px}.results-actions{gap:6px}.results-actions .button>.icon{width:12px}.slide-gallery{gap:12px}.select-all>span{display:none}}
@media(max-width:1000px){:root{--sidebar:172px}.sidebar{padding:27px 9px 12px}.brand{padding:0 8px;gap:6px;font-size:21px}.brand svg{width:26px;height:26px}.workspace-label{font-size:8px;margin:35px 12px 14px}.nav-item{padding:0 12px;font-size:11px;gap:9px}.nav-item.future{font-size:10px}.soon-label{font-size:7px;padding:2px 3px}.nav-item .icon{width:16px}.nav-section-label{margin-left:12px}.sidebar-note{padding:20px 12px 15px}.sidebar-note>.eyebrow{font-size:6px}.sidebar-note h3{font-size:15px}.sidebar-note p{font-size:9px}.sidebar-note button{font-size:9px}.sidebar-help{padding-left:10px;padding-right:10px}.local-user{padding:18px 7px 3px;gap:7px}.user-avatar{width:27px;height:27px;font-size:16px}.local-user strong{font-size:9px}.local-user>div>span{font-size:7px}.local-user>.icon{display:none}main{padding:29px 23px 0}.topbar{padding:0 23px}.page-heading h1{font-size:24px}.page-heading p{font-size:10px}.page-overline{font-size:7px;letter-spacing:1.5px}.heading-mark{display:none}.workspace-grid{grid-template-columns:minmax(0,1.1fr) minmax(268px,1fr);gap:14px}.source-panel #source-content{padding:15px;min-height:330px}.dropzone{min-height:318px}.settings-panel{padding:0 16px 16px}.settings-panel .panel-heading{height:61px}.panel-heading h2{font-size:11px}.source-footer{padding:0 15px}.demo-link{font-size:8px;gap:7px}.source-meta p{font-size:7px}.results-header{align-items:flex-start}.results-title h2{font-size:12px}.results-title p{font-size:8px;max-width:230px}.results-actions .button{padding:0 8px;gap:4px}.results-actions #save-button{display:none}.results-actions{padding-top:2px}.empty-results{padding:25px 23px;min-height:224px}.empty-copy h3{font-size:15px}.empty-copy>.eyebrow{font-size:6px;letter-spacing:.8px}.sample-stack{width:190px;height:160px;margin-right:9px}.sample-slide{width:177px}.sample-front{top:32px}.sample-middle{top:18px}.sample-back{top:12px}.sample-spark{right:-24px;bottom:10px}.empty-copy p{font-size:7px}.slide-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.list-view{grid-template-columns:1fr}.benefits-row{gap:10px}.benefits-row>div{gap:6px}.benefits-row>div>.icon{width:15px}.benefits-row strong{font-size:7px}.benefits-row small{font-size:6px}.page-footer{font-size:7px}.results-toolbar{gap:12px}.source-tab{font-size:9px}.source-tabs{gap:22px}.switch-row>span:first-child{font-size:9px}.setting-row{font-size:9px}.setting-row select{font-size:8px}}
@media(max-width:780px){:root{--sidebar:66px}.sidebar{padding:25px 10px 17px;align-items:center}.brand{padding:0}.brand>span{display:none}.brand svg{width:32px;height:32px}.workspace-label,.sidebar .nav-section-label,.sidebar .nav-item>span,.sidebar .sidebar-note,.sidebar .sidebar-help>span,.sidebar .sidebar-help>.icon:last-child,.sidebar .local-user>div,.sidebar .local-user>.icon{display:none}.main-nav{margin-top:38px;width:100%;gap:9px}.nav-item{justify-content:center;padding:0;width:43px;height:43px}.nav-item .icon{width:20px;height:20px}.nav-item.future{margin-top:12px}.sidebar .future:first-of-type{margin-top:32px}.sidebar-bottom{width:100%;padding:0}.sidebar-help{padding:0;justify-content:center;min-height:43px;margin-bottom:15px}.sidebar-help .icon{width:20px;height:20px}.local-user{justify-content:center;padding:18px 0 0}.user-avatar{width:31px;height:31px}.topbar{height:61px}.local-badge{font-size:8px}.breadcrumb{font-size:9px;gap:12px}.topbar-right{gap:11px}.page-heading h1{font-size:25px}.workspace-grid{grid-template-columns:1fr minmax(260px,.9fr)}main{padding:27px 21px 0}.topbar{padding:0 21px}.page-heading{padding-bottom:25px}.results-actions #capture-button{font-size:0;gap:0;width:32px;padding:0}.results-actions #capture-button .icon{width:14px;height:14px}.empty-copy h3{font-size:16px}.sample-stack{width:220px;height:160px}.sample-slide{width:193px}.sample-front{top:28px}.sample-middle{top:15px}.sample-back{top:11px}#toast{left:calc(50% + 33px);max-width:calc(100vw - 90px)}.benefits-row strong{font-size:8px}.benefits-row small{font-size:7px}.benefits-row>div>.icon{width:17px}}
@media(max-width:680px){.workspace-grid{grid-template-columns:1fr}.settings-panel{padding:0 22px 18px}.settings-panel .panel-heading{height:61px}.settings-panel fieldset{display:block}.segmented{margin-bottom:20px}.setting-row{min-height:33px}.settings-divider{margin:12px 0 9px}.switch-row{min-height:32px}.crop-setting{min-height:31px}.range-details{margin:2px 0 5px}.range-details summary{font-size:9px}.setting-label{font-size:11px}.switch-row>span:first-child{font-size:10px}.setting-row{font-size:10px}.setting-row select{font-size:9px}.source-panel #source-content{min-height:325px;padding:18px}.dropzone{min-height:300px}.source-panel .panel-heading{padding:0 23px;height:60px}.source-footer{min-height:53px;padding:0 22px}.demo-meta{display:block}.workflow{gap:13px;padding:11px 16px}.workflow-step{font-size:9px;gap:6px}.workflow-step>span{width:20px;height:20px}.workflow-line{min-width:10px}.topbar-right .local-badge{display:none}.topbar-right .header-divider{display:none}.page-heading h1{font-size:24px}.page-heading p{font-size:9px;max-width:300px;line-height:1.9}.page-overline{font-size:6px;letter-spacing:1.2px}.source-tabs{padding:0 23px}.source-tab{font-size:10px}.source-tabs{gap:27px}.results-header{margin-bottom:16px;align-items:center}.results-actions #capture-button{font-size:0;gap:0}.empty-results{flex-direction:column;align-items:flex-start;gap:0;padding:29px 29px 21px}.empty-copy h3{font-size:19px}.empty-copy p{font-size:9px}.empty-copy>.eyebrow{font-size:7px;letter-spacing:1.2px}.empty-copy .text-button{font-size:10px}.sample-stack{align-self:flex-end;margin-top:2px;margin-right:10px;height:170px;width:242px}.sample-slide{width:213px}.sample-back{top:14px}.sample-middle{top:19px}.sample-front{top:35px}.sample-spark{bottom:0;right:-23px}.benefits-row{display:grid;grid-template-columns:1fr;gap:21px;padding:25px 5px 25px}.benefits-row>div{gap:13px}.benefits-row>div>.icon{width:22px;height:22px}.benefits-row strong{font-size:10px}.benefits-row small{font-size:9px;margin-top:4px}.page-footer{align-items:flex-start;line-height:1.7;gap:16px;font-size:7px}.page-footer>span:last-child{max-width:104px;flex-wrap:wrap;gap:5px}.page-footer>span:first-child{font-size:7px}.page-footer svg{display:none}.results-title p{max-width:190px}.slide-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.slide-card-footer{height:35px;padding:0 7px}.slide-card-footer b{font-size:9px}.slide-card-footer>span{gap:6px}.timestamp{font-size:7px}.timestamp .icon{display:none}.slide-checkbox{top:6px;left:6px}.slide-checkbox input{width:13px;height:13px}.slide-expand{display:none}.results-toolbar{gap:9px}.select-all{font-size:9px;gap:5px}.results-toolbar .danger{font-size:8px}.results-toolbar .text-button .icon{display:none}#sort-order{min-width:75px;width:75px;font-size:8px;padding:5px 1px}.view-toggle button{width:21px;height:22px}.view-toggle .icon{width:12px}.list-view{grid-template-columns:1fr}.list-view .slide-thumbnail{width:112px}.list-view .slide-card-footer>span{gap:15px}.list-view .timestamp{font-size:9px}.list-view .slide-card{gap:9px}.list-view .slide-card-footer{padding-right:5px;padding-left:0}.list-view .slide-card-footer b{font-size:11px}.crop-modal{padding:22px}.crop-fields{gap:8px}.inspect-navigation>span{font-size:7px}.inspect-navigation .button{font-size:8px;padding:0 8px;min-height:29px}.inspect-navigation i{margin:0 3px}.note-label{flex-wrap:wrap;gap:7px}.note-label span{font-size:7px}.modal{padding:23px}.modal-heading h2{font-size:18px}.modal-heading .eyebrow{font-size:7px}.history-card img{width:75px}.history-card>button:first-child{gap:10px}.history-card strong{font-size:10px}.history-card small{font-size:8px}.export-options>button{padding:13px;gap:12px}.export-options strong{font-size:11px}.export-options small{font-size:8px}.guide-steps{gap:20px}.guide-steps p{font-size:10px}.modal-note{font-size:9px}#toast{font-size:10px;padding:12px 15px}}
@media(max-width:400px){:root{--sidebar:53px}.sidebar{padding-left:6px;padding-right:6px}.brand svg{width:29px;height:29px}.nav-item{width:39px}.topbar{padding:0 15px}.breadcrumb{gap:9px;font-size:8px}.tiny-avatar{width:22px;height:22px}main{padding:25px 14px 0}.page-heading h1{font-size:21px}.page-overline{font-size:5px}.page-heading p{font-size:8px}.workflow{padding:10px;gap:8px}.workflow-step{font-size:8px}.workflow-step>span{width:18px;height:18px;font-size:8px}.workflow-step{gap:4px}.workflow-line{min-width:7px}.source-panel #source-content{padding:14px}.source-footer{padding:0 14px}.demo-meta{font-size:7px}.settings-panel{padding:0 18px 18px}.results-title h2{font-size:11px}.results-title p{font-size:7px;max-width:150px}.results-actions .button{font-size:8px;padding:0 8px}.results-actions #capture-button{width:28px}.results-actions #export-button>.icon:last-child{display:none}.sample-stack{width:207px;margin-right:0}.sample-slide{width:183px}.empty-results{padding:25px 21px 16px}.empty-copy h3{font-size:17px}.empty-copy>.eyebrow{font-size:6px}.empty-copy p{font-size:8px}.sample-spark{right:-13px;bottom:12px;font-size:28px}.results-toolbar{gap:7px}.results-toolbar .danger{font-size:7px}.view-toggle{display:none}.slide-card-footer .delete-slide{width:19px;padding:3px}.slide-card-footer .delete-slide>.icon{width:10px}.slide-card-footer>span{gap:5px}.slide-card-footer{padding:0 5px}.slide-card-footer b{font-size:8px}.timestamp{font-size:6px}#toast{left:calc(50% + 26px);max-width:calc(100vw - 70px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition:none!important}}

/* Keep working controls readable, including high-density laptop displays. */
.breadcrumb{font-size:12px}.local-badge{font-size:11px}.workspace-label{font-size:10px}.nav-item{font-size:13px}.nav-item.future{font-size:12px}.sidebar-help{font-size:12px}.local-user strong{font-size:11px}.local-user>div>span{font-size:9px}.page-heading p{font-size:13px;color:#7e8a7b}.page-overline{font-size:9px}.workflow-step{font-size:12px}.workflow-tail{font-size:10px}.panel-heading h2{font-size:14px}.small-label{font-size:11px;color:#899482}.text-button{font-size:11px}.source-tab{font-size:12px}.dropzone h3{font-size:18px}.dropzone p{font-size:12px;color:#8b987f}.upload-button{font-size:12px;min-height:41px}.file-support{font-size:10px}.upload-limit{font-size:10px;color:#97a48b}.demo-link{font-size:11px}.demo-meta{font-size:10px;color:#93a184}.demo-link strong{color:#5e7e44}.setting-label{font-size:12px}.recommended{font-size:10px;color:#8f9d80}.segmented span{font-size:11px;height:31px}.setting-label output{font-size:11px}.range-labels{font-size:10px;color:#94a184}.setting-row{font-size:12px}.setting-row select{font-size:11px;min-width:136px}.switch-row>span:first-child{font-size:12px}.crop-setting{font-size:11px}.crop-setting>span:last-child{font-size:10px}.range-details summary{font-size:10px}.extract-button{font-size:12px;min-height:42px}.privacy-note{font-size:10px;color:#96a389}.source-meta strong{font-size:12px}.source-meta p{font-size:10px}.source-ready{font-size:11px}.results-title h2{font-size:16px}.results-title p{font-size:11px;color:#94a186}.button.small{font-size:11px}.empty-copy h3{font-size:21px}.empty-copy p{font-size:11px;color:#8e9e7f}.empty-copy>.eyebrow{font-size:9px}.empty-copy .text-button{font-size:11px}.benefits-row strong{font-size:11px;color:#82966f}.benefits-row small{font-size:10px;color:#9caa8d}.page-footer{font-size:10px}.slide-card-footer b{font-size:12px}.timestamp{font-size:10px}.select-all{font-size:11px}.select-all>span{font-size:10px}#sort-order{font-size:10px}.export-options strong{font-size:14px}.export-options small{font-size:11px}.modal>p{font-size:12px}.modal-note{font-size:11px;color:#81966e}.modal-heading .eyebrow{font-size:9px}.guide-steps h3{font-size:14px}.guide-steps p{font-size:12px;color:#8d9e7e}.roadmap h3{font-size:15px}.roadmap p{font-size:12px;color:#91a27f}.roadmap small{font-size:10px}.history-card strong{font-size:13px}.history-card small{font-size:11px}.note-label{font-size:12px}.note-label span{font-size:10px}.inspect-modal textarea{font-size:13px}.inspect-navigation>span{font-size:11px}
@media(max-width:1100px){.nav-item{font-size:11px}.nav-item.future{font-size:10px}.page-heading p{font-size:11px}.page-overline{font-size:8px}.small-label{display:none}.setting-label,.setting-row,.switch-row>span:first-child{font-size:11px}.setting-row select{font-size:10px;min-width:123px}.recommended{font-size:9px}.demo-link{font-size:10px}.results-actions .button.small{font-size:10px}.empty-copy h3{font-size:18px}.empty-copy p{font-size:10px}.empty-copy>.eyebrow{font-size:8px}.benefits-row strong{font-size:10px}.benefits-row small{font-size:9px}.page-footer{font-size:9px}.source-meta p{font-size:9px}}
@media(max-width:680px){.breadcrumb{font-size:10px}.page-heading h1{font-size:23px}.page-heading p{font-size:11px}.page-overline{font-size:7px;letter-spacing:.8px}.workflow{gap:9px;padding:11px 12px}.workflow-step{font-size:10px}.workflow-step>span{font-size:9px}.dropzone p{font-size:11px}.setting-label,.setting-row,.switch-row>span:first-child{font-size:12px}.setting-row select{font-size:11px;min-width:136px}.source-tab{font-size:12px}.demo-link{font-size:10px}.demo-meta{font-size:9px}.results-title h2{font-size:13px}.results-title p{font-size:10px;max-width:165px}.results-actions .button.small{font-size:10px}.results-actions #capture-button{font-size:0}.empty-copy h3{font-size:20px}.empty-copy p{font-size:11px}.empty-copy>.eyebrow{font-size:8px}.benefits-row strong{font-size:12px}.benefits-row small{font-size:11px}.page-footer{font-size:9px}.page-footer>span:first-child{font-size:9px}.slide-card-footer b{font-size:10px}.timestamp{font-size:9px}.select-all{font-size:10px}.results-toolbar .danger{font-size:10px}.results-toolbar .text-button{font-size:10px}#sort-order{font-size:9px;width:83px}.export-options strong{font-size:13px}.export-options small{font-size:10px}.modal-note{font-size:11px}.inspect-navigation>span{font-size:9px}.note-label span{font-size:9px}.history-card strong{font-size:12px}.history-card small{font-size:10px}.source-meta strong{font-size:11px}.source-meta p{font-size:9px}}
@media(max-width:400px){.page-heading h1{font-size:21px}.page-heading p{font-size:10px}.page-overline{font-size:6px}.workflow{gap:7px;padding:11px 9px}.workflow-step{font-size:9px;gap:4px}.demo-meta{font-size:8px}.results-title h2{font-size:12px}.results-title p{max-width:140px;font-size:9px}.results-actions .button.small{font-size:9px}.results-actions #capture-button{font-size:0}.results-actions{gap:5px}.slide-card-footer b{font-size:9px}.timestamp{font-size:8px}.results-toolbar{gap:9px}.results-toolbar .danger{font-size:9px}.results-toolbar .text-button{font-size:9px}.sample-stack{width:197px}}
.results-actions #save-button{display:inline-flex}.url-retry-form{display:flex;gap:9px;margin-top:20px}.url-validation{font-size:11px;color:#b18870;margin-top:12px}.source-error .url-retry-form{margin-top:15px}
.platform-badges{display:flex;gap:9px;margin:0 0 23px}.platform-badges>span{display:flex;align-items:center;gap:6px;border-radius:5px;padding:6px 10px;font-size:10px;font-weight:500}.platform-badges .icon{width:13px;height:13px}.platform-youtube{background:#fff1ee;color:#c76a5a;border:1px solid #f2dfd7}.platform-bilibili{background:#eff7fa;color:#74a5b7;border:1px solid #deedf1}.url-panel{min-height:340px}.url-panel p{font-size:11px;margin:12px 0 24px;color:#8b9b7b}.url-panel .url-info{font-size:10px;color:#99a98a;line-height:1.9;margin-top:19px}.url-panel>.text-button{font-size:10px;margin-top:14px}.platform-link-form{display:flex;width:100%;gap:8px}.platform-link-form input{min-width:0;flex:1;width:100%;border:1px solid #dce5d4;border-radius:5px;padding:12px 10px;font-size:11px;color:#4d6741;background:#fff}.platform-link-form input::placeholder{color:#acb8a1}.platform-link-form .button{font-size:11px;padding:0 13px}.link-import-progress{border:1px solid #dbe8d2;border-radius:7px;background:#f5f9ef;padding:17px;margin:17px 24px 0}.link-progress-heading{display:flex;align-items:center;gap:10px}.link-progress-heading>.icon{width:19px;height:19px;color:#92a979}.link-progress-heading>.spinner{width:16px;height:16px;color:#789c5d}.link-progress-heading>div{flex:1;min-width:0}.link-progress-heading strong{font-size:12px;font-weight:500;color:#66834e}.link-progress-heading p{font-size:10px;color:#9aab89;line-height:1.7;margin-top:6px;overflow-wrap:anywhere}.link-progress-heading .text-button{font-size:11px;flex-shrink:0}.link-progress-track{background:#dfe9d6;height:3px;border-radius:3px;overflow:hidden;margin-top:15px}.link-progress-track>span{height:100%;display:block;background:#86a76a;transition:width .2s}.link-progress-track.indeterminate>span{width:30%!important;animation:link-progress 1.7s ease-in-out infinite}.link-progress-details{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:9px;color:#99ab88}.import-error{border-color:#ebdfce;background:#fffaf3}.import-error .link-progress-heading strong{color:#9a8268}.import-error .link-progress-heading p{color:#b29c80}.import-error-actions{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:12px}.import-error-actions:empty{display:none}.import-error-actions .text-button{font-size:10px}.connection-status{display:flex;gap:13px;align-items:flex-start;border:1px solid #dfe9d5;background:#f6faef;padding:17px;border-radius:7px;margin:24px 0 22px}.connection-status>.icon{width:20px;height:20px;color:#8eab74}.connection-status strong{font-size:13px;font-weight:500;color:#749359}.connection-status p{font-size:11px;color:#9bad8a;line-height:1.8;margin-top:8px}.connection-status.offline{background:#fffaf3;border-color:#ebdfcc}.connection-status.offline strong{color:#ad9474}.connection-status.offline p{color:#b8a88f}.cookies-explanation{font-size:12px;line-height:1.9;color:#96a588;margin-bottom:20px}.cookies-state{display:flex;gap:9px;align-items:center;font-size:12px;color:#8ca276;margin:20px 0}.cookies-state .icon{width:17px;height:17px}.cookies-actions{display:flex;gap:10px;flex-wrap:wrap}.service-start-help>p{font-size:12px;color:#9dad8b;line-height:1.8}.service-start-help code{display:block;padding:12px;background:#f1f5ea;border:1px solid #e4ebdb;border-radius:5px;font-size:12px;color:#7e9868;margin:13px 0}.service-start-help a{margin-top:4px}#auth-feedback{font-size:11px;color:#a18b6d;margin-top:16px;line-height:1.9}#auth-feedback:empty{display:none}.download-list{display:grid;gap:12px}.download-list article{display:flex;align-items:center;gap:12px;padding:15px 12px;border:1px solid #e3ebda;border-radius:7px}.download-file-icon{width:34px;height:39px;display:grid;place-items:center;background:#f0f6e8;border-radius:5px;color:#93ac7b;flex-shrink:0}.download-list article>div{min-width:0;flex:1}.download-list strong{font-size:12px;font-weight:500;color:#738e5e;display:block;line-height:1.7;overflow-wrap:anywhere}.download-list small{font-size:10px;color:#a9b99a;display:block;margin-top:6px}.download-list .button{flex-shrink:0}@keyframes link-progress{0%{transform:translateX(-110%)}100%{transform:translateX(450%)}}
@media(max-width:680px){.link-import-progress{margin:15px 17px 0;padding:14px}.link-progress-heading strong{font-size:11px}.link-progress-heading p{font-size:10px}.link-progress-details{font-size:8px}.url-panel{padding:18px 13px;min-height:335px}.url-panel h3{font-size:14px}.url-panel p{font-size:10px}.platform-link-form input{font-size:10px;padding:11px 8px}.platform-link-form .button{font-size:10px;padding:0 10px}.platform-link-form .button .icon{display:none}.platform-badges{margin-bottom:22px}.platform-badges>span{font-size:10px}.download-list article{padding:12px 10px;gap:9px}.download-list strong{font-size:11px}.download-list small{font-size:9px}.download-list .button{font-size:10px;padding:0 9px}.download-file-icon{width:27px;height:34px}.download-file-icon>.icon{width:17px}.cookies-explanation{font-size:11px}.cookies-actions>.button{font-size:10px}}
@media(max-width:1100px){.results-actions #save-button{font-size:0;width:32px;padding:0;gap:0}.results-actions #save-button>.icon{width:14px;height:14px}}
@media(max-width:680px){.results-header{flex-wrap:wrap;row-gap:13px}.results-title{flex:1;min-width:120px}.results-actions #save-button{font-size:0;width:30px}.results-actions #capture-button{width:30px}}
/* Keep service links quiet and available without expanding the working area. */
.app-legal{display:flex;justify-content:flex-end;gap:18px;padding:20px 0 16px;font-size:11px;color:#7a7f87}
.app-legal a{color:inherit;text-decoration:none}
.app-legal a:hover,.app-legal a:focus-visible{text-decoration:underline;text-underline-offset:3px}

.catalog-main{color:#354a40;--catalog-ink:#354a40;--catalog-muted:#758477}
.catalog-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 29px}
.catalog-heading h1{font-size:35px;line-height:1.55;font-weight:550;letter-spacing:-1px;margin:12px 0 8px;color:#304c3c}
.catalog-heading h1 span{color:#809d68}
.catalog-heading p{font-size:13px;line-height:1.9;color:#7a8979}
.catalog-heading>.button{flex-shrink:0;font-size:12px;height:37px}
.catalog-heading .page-overline{font-size:9px;color:#8a9d7e;letter-spacing:1.6px}
.catalog-intro{display:flex;align-items:center;gap:16px;padding:23px 25px;background:#eef3e8;border:1px solid #e1e8d9;border-radius:10px}
.catalog-intro-icon{display:grid;place-items:center;width:44px;height:49px;flex-shrink:0;border:1px solid #d9e4ce;border-radius:7px;background:#f8faf4;color:#7d9966}
.catalog-intro-icon>.icon{width:22px;height:22px}
.catalog-intro strong{display:block;font-size:14px;font-weight:550;color:#4b6841}
.catalog-intro p{font-size:12px;line-height:1.85;margin-top:7px;color:#7c8f6e}
.catalog-university-marks{display:flex;align-items:center;gap:23px;margin-left:auto;padding-left:20px;color:#7b8e6f}
.catalog-university-marks span{font:21px Georgia,serif}
.catalog-university-marks span:first-child{font:700 20px "Segoe UI",sans-serif;letter-spacing:-1px}
.catalog-university-marks span:last-child{font:600 18px Georgia,serif;letter-spacing:1px}
.catalog-stats{display:grid;grid-template-columns:1fr 1fr 1.25fr 1.35fr;border-bottom:1px solid #e0e7dc;padding:27px 0;margin:0 0 28px;min-height:100px}
.catalog-stats>div{padding:0 24px;border-right:1px solid #e1e7dc;display:flex;gap:12px;align-items:baseline}
.catalog-stats>div:first-child{padding-left:0}
.catalog-stats>div:last-child{border:0;padding-right:0}
.catalog-stats strong{font-size:29px;letter-spacing:-1px;font-weight:500;color:#48673c;font-variant-numeric:tabular-nums}
.catalog-stats>div>span{font-size:11px;color:#7f8d77;line-height:1.7}
.catalog-stats .catalog-stats-note{display:block;position:relative;padding-left:49px;align-self:center;font-size:12px;line-height:1.8;color:#5a744b}
.catalog-stats-note>.icon{position:absolute;left:24px;top:3px;width:16px;height:16px;color:#819e6a}
.catalog-stats .catalog-stats-note>span{font-size:10px;color:#98a48c}
.catalog-controls{display:flex;gap:13px;align-items:stretch;margin-bottom:20px}
.catalog-search{display:flex;align-items:center;gap:13px;flex:1;min-width:0;padding:0 16px;height:48px;border:1px solid #dce4d6;background:#fff;border-radius:7px;transition:border-color .15s,box-shadow .15s}
.catalog-search:focus-within{border-color:#9eb58c;box-shadow:0 0 0 3px #9bb88218}
.catalog-search>.icon{width:19px;height:19px;color:#8b9f7c}
.catalog-search input{min-width:0;width:100%;padding:12px 0;border:0;background:transparent;font-size:13px;color:#415d35;outline:none!important}
.catalog-search input::placeholder{color:#9ea995}
.search-hint{font-size:10px;color:#a6b09d;white-space:nowrap;border-left:1px solid #e9ede4;padding-left:16px}
.catalog-favorites.button{height:48px;font-size:12px;padding:0 18px;gap:9px;color:#748c61;white-space:nowrap}
.catalog-favorites>.icon{width:16px;height:16px}
.catalog-favorites>span{font-size:10px;padding:2px 5px;border-radius:4px;background:#e8efdf;min-width:18px}
.catalog-favorites.active{background:#e9f1df;border-color:#b9cba4;color:#4b6f34}
.catalog-favorites.active>.icon{fill:#c1d3aa}
.catalog-filters{display:flex;flex-direction:column;gap:21px;padding-bottom:24px;border-bottom:1px solid #e2e8dc}
.catalog-school-tabs{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.catalog-school-tabs button{display:flex;align-items:center;gap:9px;padding:9px 14px;font-size:12px;border-radius:5px;border:1px solid transparent;color:#85937b}
.catalog-school-tabs button:hover{background:#eff3e9}
.catalog-school-tabs button>span{font-size:10px;color:#a1ad94;font-variant-numeric:tabular-nums}
.catalog-school-tabs button.active{border-color:#d7e3c9;background:#eaf1e1;color:#55733e;font-weight:550}
.catalog-school-tabs button.active>span{color:#7e9965}
.catalog-secondary-filters{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.catalog-secondary-filters label{display:flex;align-items:center;gap:10px;font-size:11px;color:#929f86}
.catalog-secondary-filters select,.catalog-results-heading select{min-width:125px;padding:7px 25px 7px 10px;border:1px solid #e0e7d9;border-radius:5px;background:#fff;color:#627b4f;font-size:11px;cursor:pointer}
.catalog-secondary-filters>.text-button{font-size:11px;color:#99a68b;margin-left:auto}
.catalog-results{padding-top:27px;scroll-margin-top:22px}
.catalog-results-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:19px}
.catalog-results-heading h2{font-size:17px;font-weight:550;color:#526c43}
.catalog-results-heading>div{display:flex;align-items:center;gap:17px}
#catalog-result-count{font-size:11px;color:#8e9d80}
.catalog-results-heading select{font-size:10px;min-width:130px;background:transparent;border-color:#dfe7d7}
.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.course-card{display:flex;flex-direction:column;min-width:0;padding:19px 20px 0;border:1px solid #e0e7d9;border-radius:8px;background:#fff;box-shadow:0 2px 5px #2f4d201b;transition:border-color .18s,box-shadow .18s,transform .18s}
.course-card:hover{border-color:#c3d3b4;box-shadow:0 6px 18px #4262270d;transform:translateY(-2px)}
.course-card-top{display:flex;align-items:center;gap:9px;margin-bottom:17px;min-width:0}
.course-school{border-radius:4px;font-size:9px;letter-spacing:.4px;font-weight:600;padding:5px 7px;line-height:1;background:#eef2e8;color:#798b64}
.school-stanford .course-school{background:#f7eeee;color:#ad7f78}
.school-cmu .course-school{background:#eef1f7;color:#8497af}
.course-code{font-size:10px;color:#87977a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.course-bookmark{display:grid;place-items:center;margin-left:auto;flex-shrink:0;width:29px;height:29px;padding:5px;border-radius:5px;color:#b4bfa9}
.course-bookmark:hover{background:#f0f4eb;color:#7f9967}
.course-bookmark .icon{width:16px;height:16px}
.course-bookmark.saved{color:#7b9a5e;background:#edf3e5}
.course-bookmark.saved .icon{fill:#dce9cc}
.course-card-title{display:block;text-align:left;padding:0;margin:0 0 16px;min-height:91px;width:100%}
.course-card-title h3{font-size:16px;font-weight:550;line-height:1.5;letter-spacing:-.2px;color:#3d5733;overflow-wrap:anywhere}
.course-card-title>span{font-size:11px;color:#97a58b;display:block;margin-top:9px;line-height:1.7}
.course-card-title:hover h3{color:#6c8a4f}
.course-topics{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto;margin-bottom:18px}
.course-topics>span,.catalog-detail-tags>span{font-size:9px;padding:4px 7px;border:1px solid #e7eddf;border-radius:4px;color:#8b9d79;background:#f9fbf5;line-height:1.4}
.course-offering{display:flex;align-items:center;gap:7px;font-size:10px;color:#a1ad94;margin-bottom:16px}
.course-offering>.icon{width:13px;height:13px;color:#aab79c}
.course-level{margin-left:auto;font-size:9px;color:#9eac8f}
.course-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:49px;border-top:1px solid #edf0e6}
.course-resource{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#849970;min-width:0;padding:10px 0;line-height:1.7}
.course-resource>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.course-resource>.icon{width:13px;height:13px}
.course-resource>.icon:last-child{width:12px;margin-left:2px}
.course-resource.has-materials{color:#648845;font-weight:500}
.course-resource:hover{color:#3d6622}
.course-detail-button{font-size:10px;padding:8px 0 8px 5px;color:#a4b196;flex-shrink:0}
.course-detail-button:hover{color:#658547}
.catalog-pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:27px;color:#9ba98c;font-size:10px}
.catalog-pagination>div{display:flex;align-items:center;gap:13px;font-variant-numeric:tabular-nums}
.catalog-pagination .button{font-size:10px;height:32px;padding:0 12px}
.catalog-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:33px;padding-top:22px;border-top:1px solid #e2e8da;color:#a1ae93;font-size:9px;line-height:1.8}
.catalog-footer>span:first-child{display:flex;align-items:flex-start;gap:7px}
.catalog-footer .icon{width:13px;height:13px;margin-top:2px;color:#92a780}
.catalog-footer>span:last-child{white-space:nowrap}
.catalog-empty,.catalog-loading{grid-column:1/-1;text-align:center;padding:65px 20px;border:1px dashed #dfe8d6;background:#fbfcf8;border-radius:8px;color:#8ca079}
.catalog-empty>.icon{width:32px;height:32px;color:#a6bb92;margin-bottom:21px}
.catalog-empty h3{font-size:17px;font-weight:500;line-height:1.8}
.catalog-empty p{font-size:12px;color:#a1af94;line-height:1.9;margin:12px 0 23px}
.catalog-empty .button{font-size:11px}
.catalog-loading{display:flex;align-items:center;justify-content:center;gap:13px;font-size:12px}
.catalog-dialog.modal{width:min(630px,calc(100vw - 32px));padding:29px 30px;color:#647e51}
.catalog-dialog .modal-heading{margin-bottom:20px}
.catalog-dialog .modal-heading h2{font-size:22px;font-weight:500;color:#5a7845}
.catalog-detail-title{font-size:21px;line-height:1.6;font-weight:500;color:#4c6d37;overflow-wrap:anywhere}
.catalog-detail-translation{font-size:13px;line-height:1.7;color:#8da175;margin-top:8px}
.catalog-detail-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px 15px;font-size:10px;color:#9eaf8b;margin:17px 0}
.catalog-detail-meta>span+span{padding-left:13px;border-left:1px solid #e0e9d5}
.catalog-instructors{display:flex;align-items:center;gap:8px;font-size:11px;line-height:1.8;color:#91a67c;margin-bottom:17px}
.catalog-instructors .icon{width:15px;height:15px;align-self:flex-start;margin-top:3px}
.catalog-detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:21px}
.catalog-detail-tags:empty{display:none}
.catalog-detail-resources{display:grid;gap:9px}
.catalog-detail-resources>a{display:flex;align-items:center;gap:12px;border:1px solid #e0ead4;background:#fcfef9;padding:14px;border-radius:7px}
.catalog-detail-resources>a:hover{border-color:#b9cf9e;background:#f6faef}
.catalog-detail-resources>a>span:nth-child(2){flex:1;min-width:0}
.resource-symbol{display:grid;place-items:center;width:35px;height:38px;background:#eef4e5;color:#95af79;border-radius:5px;flex-shrink:0}
.resource-symbol>.icon{width:18px;height:18px}
.catalog-detail-resources strong{display:block;font-size:12px;font-weight:500;line-height:1.6;color:#6a8a50}
.catalog-detail-resources small{display:block;font-size:9px;color:#a1b38e;margin-top:5px;line-height:1.8;overflow-wrap:anywhere}
.catalog-detail-resources>a>.icon{width:15px;height:15px;color:#a7ba94}
.catalog-source-proof{display:flex;align-items:center;justify-content:space-between;gap:13px;font-size:10px;line-height:1.8;margin-top:24px;padding-top:20px;border-top:1px solid #e5eddc;color:#9fb48a}
.catalog-source-proof>span,.catalog-source-proof>a{display:flex;align-items:center;gap:6px}
.catalog-source-proof .icon{width:13px;height:13px}
.catalog-source-proof>a{font-size:9px;color:#8ca971;white-space:nowrap}
.catalog-detail-note{font-size:10px;line-height:1.9;color:#b0c09e;margin-top:15px}
.course-video{margin-bottom:14px}
.course-video-status{display:flex;align-items:center;gap:6px;color:#9ca88f;font-size:10px;line-height:1.7}
.course-video-status>.icon{width:13px;height:13px}
.course-video-status.video-available{color:#6f8f53}
.course-video-status.video-restricted{color:#ad9273}
.catalog-detail-video{background:#f6f9f0;border:1px solid #e4ebd9;border-radius:6px;padding:13px 14px;margin-bottom:17px}
.catalog-detail-video .course-video-status{font-size:11px}
.catalog-detail-video p{font-size:10px;line-height:1.9;color:#99ac86;margin-top:6px}
#catalog-video{max-width:180px}
.course-video-links:empty{display:none}
.course-video-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.video-source-link{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #ecdcd4;border-radius:4px;background:#fff8f5;color:#ac7b69;font-size:9px;line-height:1.6}
.video-source-link .icon{width:11px;height:11px}
.video-source-link small{font-size:8px;color:#af9586;padding-left:3px;border-left:1px solid #e8dcd3}
.video-source-link.platform-bilibili{border-color:#d9e7ed;background:#f2f9fc;color:#759fae}
.video-source-link:hover{border-color:#c5b5a1;filter:brightness(.98)}
.catalog-video-providers{margin-top:17px;padding-top:15px;border-top:1px solid #dde7d1}
.catalog-video-providers h4{font-size:12px;font-weight:500;color:#718c58;margin:0 0 13px}
.catalog-video-providers article+article{border-top:1px solid #e5ecd9;margin-top:15px;padding-top:13px}
.provider-entry{display:flex;align-items:center;gap:10px}
.provider-entry>span:nth-child(2){flex:1;min-width:0}
.provider-entry strong{display:block;font-size:11px;font-weight:500;line-height:1.8;color:#81965f;overflow-wrap:anywhere}
.provider-entry small{display:block;margin-top:4px;font-size:9px;color:#9aad86;line-height:1.9;overflow-wrap:anywhere}
.provider-entry>.icon{width:13px;height:13px;color:#9db287}
.provider-evidence{display:flex;align-items:center;justify-content:flex-end;gap:5px;font-size:9px;color:#9eaf89;margin-top:10px}
.provider-evidence>.icon{width:11px;height:11px}
.provider-lessons{margin-top:12px;font-size:10px;color:#8caa6f}
.provider-lessons summary{cursor:pointer;padding:5px 0;line-height:1.8}
.provider-lessons ol{max-height:245px;overflow:auto;margin:8px 0 0;padding:0 8px 0 27px;overscroll-behavior:contain}
.provider-lessons li{padding:7px 0 7px 3px;border-bottom:1px solid #e6eddd;line-height:1.9}
.provider-lessons a{display:block;overflow-wrap:anywhere}
.provider-lessons a>.icon{width:10px;height:10px;margin-left:4px}
@media(min-width:1600px){.course-grid{gap:21px}.course-card{padding:23px 24px 0}.course-card-title{min-height:87px}}
@media(max-width:1250px){.catalog-university-marks{gap:14px;padding-left:5px}.catalog-university-marks span{font-size:17px}.catalog-stats>div{padding:0 15px;gap:8px}.catalog-stats strong{font-size:26px}.catalog-stats .catalog-stats-note{padding-left:36px}.catalog-stats-note>.icon{left:15px}.catalog-stats>div>span{font-size:10px}.course-grid{gap:13px}.course-card{padding:16px 15px 0}.course-card-title h3{font-size:15px}.course-card-title{min-height:111px}.search-hint{display:none}}
@media(max-width:1050px){.catalog-university-marks{display:none}.catalog-stats{grid-template-columns:1fr 1fr 1.35fr}.catalog-stats>div:nth-child(3){border:0;padding-right:0}.catalog-stats .catalog-stats-note{display:none}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.course-card{padding:19px 20px 0}.course-card-title{min-height:88px}.catalog-heading h1{font-size:31px}}
@media(max-width:680px){.catalog-heading{align-items:flex-start;gap:12px;margin-bottom:23px}.catalog-heading h1{font-size:25px;letter-spacing:-.5px;margin-top:11px}.catalog-heading p{font-size:11px;line-height:1.9;max-width:270px}.catalog-heading .page-overline{font-size:7px;letter-spacing:.5px}.catalog-heading>.button{height:31px;width:31px;min-width:31px;padding:0;gap:0;font-size:0;margin-top:36px}.catalog-heading>.button .icon{width:15px;height:15px}.catalog-intro{padding:17px 14px;gap:12px}.catalog-intro-icon{width:33px;height:39px}.catalog-intro-icon>.icon{width:18px;height:18px}.catalog-intro strong{font-size:11px;line-height:1.7}.catalog-intro p{font-size:9px;line-height:1.9;margin-top:5px}.catalog-stats{padding:21px 0;margin-bottom:23px;min-height:91px}.catalog-stats>div{display:block;text-align:center;padding:0 8px}.catalog-stats>div:first-child{padding-left:0}.catalog-stats strong{font-size:25px;display:block;margin-bottom:6px}.catalog-stats>div>span{font-size:8px;white-space:nowrap}.catalog-controls{gap:8px;flex-wrap:wrap;margin-bottom:17px}.catalog-search{height:43px;padding:0 12px;gap:9px;flex-basis:100%}.catalog-search input{font-size:11px}.catalog-search>.icon{width:17px;height:17px}.catalog-favorites.button{height:32px;font-size:10px;padding:0 11px}.catalog-favorites>.icon{width:13px;height:13px}.catalog-favorites>span{font-size:8px}.catalog-filters{gap:18px;padding-bottom:20px}.catalog-school-tabs{gap:3px;flex-wrap:nowrap;justify-content:space-between}.catalog-school-tabs button{padding:7px 7px;font-size:10px;gap:5px}.catalog-school-tabs button>span{font-size:8px}.catalog-secondary-filters{gap:10px;flex-wrap:wrap}.catalog-secondary-filters label{font-size:9px;gap:6px}.catalog-secondary-filters select{font-size:10px;min-width:0;max-width:120px;padding:6px 2px 6px 7px}.catalog-secondary-filters>.text-button{font-size:9px;margin-left:0;padding:4px 0}.catalog-results{padding-top:22px}.catalog-results-heading{margin-bottom:15px;gap:8px}.catalog-results-heading h2{font-size:15px}.catalog-results-heading>div{gap:8px}#catalog-result-count{font-size:9px}.catalog-results-heading select{font-size:9px;min-width:0;max-width:117px;padding:6px 2px 6px 7px}.course-grid{grid-template-columns:minmax(0,1fr);gap:14px}.course-card{padding:17px 19px 0}.course-card-top{margin-bottom:10px}.course-card-title{min-height:0;margin-bottom:15px}.course-card-title h3{font-size:17px;line-height:1.5}.course-card-title>span{font-size:11px;margin-top:8px}.course-school{font-size:9px}.course-code{font-size:10px}.course-topics{margin-bottom:17px}.course-offering{font-size:10px}.course-card-bottom{min-height:48px}.course-resource{font-size:11px}.course-detail-button{font-size:10px}.catalog-pagination{flex-wrap:wrap;justify-content:center;gap:14px;font-size:9px}.catalog-pagination>span{text-align:center;width:100%}.catalog-pagination .button{font-size:10px;height:31px}.catalog-footer{align-items:flex-start;flex-direction:column;gap:10px;font-size:8px;margin-top:27px;padding-top:18px}.catalog-dialog.modal{padding:24px 19px}.catalog-dialog .eyebrow{font-size:7px;letter-spacing:1px}.catalog-dialog .modal-heading h2{font-size:20px}.catalog-detail-title{font-size:18px}.catalog-detail-translation{font-size:12px}.catalog-detail-meta{font-size:9px;gap:9px}.catalog-detail-meta>span+span{padding-left:9px}.catalog-detail-resources>a{padding:12px 10px;gap:9px}.catalog-detail-resources small{font-size:8px}.catalog-source-proof{flex-wrap:wrap;font-size:9px;gap:9px}.catalog-detail-note{font-size:9px}.catalog-empty{padding:43px 16px}.catalog-empty h3{font-size:15px}.catalog-empty p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.course-card{transition:none}.course-card:hover{transform:none}}

.course-mode{display:flex;align-items:flex-start;gap:9px;margin-top:14px;text-align:left;color:#393f3b;font-size:12px;cursor:pointer;line-height:1.6}
.course-mode input{accent-color:var(--green,#275a43);margin-top:4px;flex-shrink:0}
.course-mode small{display:block;color:#7d847e;font-size:11px;font-weight:400}
.course-result{padding:30px 28px;text-align:center;min-height:330px;display:flex;align-items:center;flex-direction:column;justify-content:center}
.course-result-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#eaf1e9;color:#315c42;margin-bottom:16px}
.course-result-icon svg{width:24px;height:24px}
.course-result .eyebrow{font-size:9px;letter-spacing:1.7px;color:#728377}
.course-result h3{font-size:20px;margin:12px 0 5px;line-height:1.5;overflow-wrap:anywhere;max-width:100%}
.course-result p{font-size:12px;color:#848a83;line-height:1.8;margin:12px 0}
.course-result .course-result-status{color:#315c42;font-size:12px;margin:0}
.course-result-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin:18px 0 0;color:#7c837b;font-size:12px}
.course-result-stats b{font-size:20px;color:#323d32;font-weight:600}
.course-result-actions{display:flex;justify-content:center;gap:15px;align-items:center;flex-wrap:wrap;margin-top:6px}
.course-lessons{max-height:50vh;overflow:auto;margin-top:20px}
.course-lessons article{display:flex;align-items:center;gap:12px;padding:15px 0;border-top:1px solid #eceee8}
.course-lessons article>b{color:#899384;font-size:12px;font-weight:500}
.course-lessons article>div{flex:1;min-width:0}
.course-lessons strong{display:block;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.course-lessons small{font-size:11px;color:#878d85}
.course-lessons .button{flex-shrink:0}
.slide-card .timestamp{white-space:nowrap}
.task-hint{font-size:13px;color:var(--text-secondary,#697386);line-height:1.7;margin:10px 0 20px}
.task-row{display:flex;align-items:center;gap:20px;padding:18px 0;border-top:1px solid var(--border,#e7ebef)}
.task-copy{flex:1;min-width:0}.task-copy strong{display:block;font-size:14px;font-weight:500;line-height:1.5;overflow-wrap:anywhere}.task-copy small{display:block;font-size:12px;line-height:1.7;color:var(--text-secondary,#697386);margin-top:5px}
.task-copy progress{display:block;width:min(100%,260px);height:3px;border:0;border-radius:3px;margin-top:11px;accent-color:var(--accent,#086ad8)}
.task-copy progress::-webkit-progress-bar{background:#edf0f4;border-radius:3px}.task-copy progress::-webkit-progress-value{background:var(--accent,#086ad8);border-radius:3px}
.task-actions{display:flex;align-items:center;gap:13px;flex-shrink:0}.task-error,.task-copy .task-error{color:#b13f36;font-size:12px;line-height:1.6}
.task-downloads{margin-top:24px;border-top:1px solid var(--border,#e7ebef);padding-top:18px}.task-downloads>summary{cursor:pointer;font-size:12px;color:var(--text-secondary,#697386)}
@media(max-width:600px){.task-row{align-items:flex-start;gap:10px}.task-actions{gap:8px}.task-actions .button{padding:7px 10px}.task-actions .text-button{font-size:12px}.link-progress-heading:has([data-action="detach-task"]){flex-wrap:wrap}.link-progress-heading:has([data-action="detach-task"])>div{flex-basis:70%}}
@media(max-width:600px){.course-result{padding:24px 17px}.course-result h3{font-size:17px}.course-result-actions{gap:12px}.course-lessons article{gap:8px}.course-lessons .button{padding:8px;font-size:11px}.link-progress-heading>div{min-width:0}.link-progress-heading strong,.link-progress-heading p{overflow-wrap:anywhere}.link-progress-details{gap:10px;flex-wrap:wrap}.course-mode{font-size:11px}.slide-card .timestamp{font-size:10px}}

.course-card{padding:0!important;overflow:hidden;--card-gutter:19px}
.course-card> :not(.course-cover){margin-left:var(--card-gutter);margin-right:var(--card-gutter)}
.course-card .course-card-top{margin-top:16px;margin-bottom:12px}
.course-card .course-card-title{width:calc(100% - var(--card-gutter)*2);min-height:80px;margin-bottom:10px}
.course-cover{display:block;position:relative;width:100%;padding:0;aspect-ratio:16/9;overflow:hidden;background:#eef2e8;border-bottom:1px solid #e4eadf;text-align:left}
.course-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .35s ease}
.course-cover:hover img{transform:scale(1.035)}
.course-cover:focus-visible{outline:3px solid #91ab79;outline-offset:-4px}
.course-cover-label{position:absolute;bottom:10px;right:10px;background:#fffffff0;border:1px solid #ffffff80;border-radius:4px;color:#5b6f53;padding:4px 7px;font-size:9px;letter-spacing:.2px;line-height:1.3;box-shadow:0 1px 4px #00000005}
.course-card-description{font-size:11px;line-height:1.9;color:#73806c;margin-top:0;margin-bottom:17px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:62px}
.course-card .course-topics{margin-top:auto}
.catalog-dialog.modal{width:min(760px,calc(100vw - 32px));padding:26px 30px 29px;color:#475b42}
.catalog-detail-cover{margin:0 0 23px}
.catalog-detail-cover>div{position:relative;aspect-ratio:16/7.5;overflow:hidden;border-radius:8px;background:#eaf0e2}
.catalog-detail-cover img{width:100%;height:100%;object-fit:contain;display:block}
.catalog-detail-cover figcaption{font-size:9px;line-height:1.7;color:#8b9585;margin-top:8px;display:flex;align-items:flex-start;gap:14px;justify-content:space-between}
.catalog-detail-cover figcaption>span:first-child{max-width:520px}
.cover-attribution{display:flex;gap:13px;flex-shrink:0}
.cover-attribution a{display:inline-flex;align-items:center;gap:4px;color:#7c9070;white-space:nowrap}
.cover-attribution .icon{width:10px;height:10px}
.catalog-detail-title{font-size:24px;color:#3c5635}
.catalog-detail-translation{color:#7d916f}
.catalog-detail-meta{color:#7b8c70}
.catalog-instructors{color:#7f906f}
.catalog-course-overview{margin:25px 0 28px;border-top:1px solid #e6ebdf;padding-top:23px}
.course-section-heading .eyebrow,.course-resource-heading .eyebrow{font-size:8px;letter-spacing:1.6px;color:#a0ad91}
.course-section-heading h4,.course-resource-heading h4{font-size:16px;font-weight:550;color:#435d38;margin-top:7px}
.catalog-description{font-size:13px;line-height:2.1;color:#5e6d57;margin:15px 0 18px}
.course-syllabus h5,.course-prerequisites h5{font-size:11px;font-weight:550;color:#5c764c;margin-bottom:10px}
.course-syllabus ul{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:0 0 20px}
.course-syllabus li{position:relative;padding-left:14px;color:#718363;font-size:11px;line-height:1.8;overflow-wrap:anywhere}
.course-syllabus li:before{position:absolute;content:'';width:4px;height:4px;border-radius:50%;background:#9cb486;left:1px;top:8px}
.course-prerequisites{background:#f6f8f1;border:1px solid #e9eee2;border-radius:6px;padding:13px 15px;margin-bottom:20px}
.course-prerequisites h5{margin-bottom:5px}
.course-prerequisites p{color:#77876a;font-size:11px;line-height:1.9}
.course-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:20px 0}
.course-facts div{min-width:0;border-left:1px solid #e5ebde;padding-left:15px}
.course-facts div:first-child{padding-left:0;border:0}
.course-facts dt{font-size:9px;color:#a0ad92;margin-bottom:7px}
.course-facts dd{font-size:11px;color:#6a8059;line-height:1.7;margin:0}
.course-overview-source{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:9px;line-height:1.9;color:#a0ac94}
.course-overview-source a{display:flex;align-items:center;gap:4px;color:#829a6b;flex-shrink:0}
.course-overview-source .icon{width:10px;height:10px}
.course-original-description{margin-top:14px;font-size:10px;line-height:1.9;color:#92a080}
.course-original-description summary{cursor:pointer;padding:4px 0}
.course-original-description p{padding:10px 0 0;color:#7e8b75;font-size:11px;line-height:1.9;overflow-wrap:anywhere}
.course-resource-heading{padding-top:22px;border-top:1px solid #e6ebdf;margin-bottom:16px}
@media(max-width:1250px){.course-card{--card-gutter:16px}.course-card .course-card-title{min-height:91px}.course-card-title h3{font-size:15px}}
@media(max-width:1050px){.course-card{--card-gutter:19px}.course-card .course-card-title{min-height:70px}}
@media(max-width:680px){.course-card{--card-gutter:18px}.course-card .course-card-title{min-height:0}.course-card-description{font-size:11px;-webkit-line-clamp:3;min-height:0}.course-cover-label{font-size:9px}.catalog-dialog.modal{padding:22px 19px}.catalog-detail-cover>div{aspect-ratio:16/10}.catalog-detail-cover figcaption{flex-direction:column;gap:6px;font-size:8px}.cover-attribution{gap:12px}.catalog-detail-title{font-size:19px}.catalog-description{font-size:12px;line-height:2}.course-syllabus ul{grid-template-columns:1fr;gap:7px}.course-facts{gap:8px}.course-facts div{padding-left:9px}.course-facts dd{font-size:10px}.course-overview-source{align-items:flex-start;gap:8px;font-size:8px}.catalog-course-overview{margin-top:21px;padding-top:21px}.course-syllabus li{font-size:11px}}
@media(prefers-reduced-motion:reduce){.course-cover img{transition:none}.course-cover:hover img{transform:none}}
.school-berkeley .course-school{background:#eef1f5;color:#6f8398}.school-harvard .course-school,.school-cornell .course-school{background:#f7eded;color:#a77b76}.school-princeton .course-school{background:#f8efe2;color:#ac8b62}
.course-source-access{font-size:10px;line-height:1.9;color:#8b967f;margin-top:14px;padding:12px 14px;background:#f7f9f2;border:1px solid #e8eddf;border-radius:6px}
@media(max-width:680px){.catalog-school-tabs{flex-wrap:wrap;justify-content:flex-start;gap:5px}.catalog-school-tabs button{padding:7px 9px}}

/* Desktop presentation layer. Loaded after feature styles so extraction, catalog,
   cache and prerequisite views share one set of controls and semantic colors.
   References: Apple HIG / designing-for-macos, toolbars, sidebars, materials. */
:root {
  color-scheme: light;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --ink: #202124;
  --secondary: #61656d;
  --tertiary: #737780;
  --accent: #086ad8;
  --accent-hover: #005abd;
  --selection: #e8f1fe;
  --surface: #fff;
  --canvas: #f5f5f7;
  --control: #f0f0f2;
  --border: #dcdde1;
  --separator: #e6e7eb;
  --sidebar: 232px;
  --green: var(--accent);
  --green-dark: var(--accent-hover);
  --mint: var(--selection);
  --muted: var(--secondary);
  --line: var(--separator);
  color: var(--ink);
  background: var(--canvas);
}
body { font-size: 13px; line-height: 1.5; }
button, input, select, textarea { font-family: inherit; }
button, a, input, select, textarea, summary { touch-action: manipulation; }
button:disabled { opacity: .44; }
::selection { background: #bdd9fc; color: #102a4c; }
button:focus-visible, a:focus-visible, summary:focus-visible, [tabindex]:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #70aaf0; outline-offset: 3px;
}
input::placeholder, textarea::placeholder { color: var(--tertiary); }
.icon { stroke-width: 1.7; }
button, a, summary { -webkit-user-select: none; user-select: none; }
h1, h2, h3, h4, h5 { color: var(--ink); letter-spacing: -.02em; }
select { color: var(--ink); }

/* Inspector and form controls. */
.workspace-grid { grid-template-columns: minmax(0, 1fr) 310px; gap: 20px; }
.panel { border: 1px solid var(--border); border-radius: 11px; background: var(--surface); box-shadow: 0 2px 5px #171b2404; }
.panel-heading, .source-panel .panel-heading { height: 55px; padding: 0 20px; }
.panel-heading h2 { font-size: 14px; color: var(--ink); letter-spacing: 0; gap: 8px; }
.panel-heading h2 > .icon { color: var(--secondary); width: 16px; height: 16px; }
.small-label { font-size: 11px; color: var(--secondary); }
.source-tabs { margin: 0 20px; padding: 3px; background: #ededf0; border: 1px solid #e4e4e8; border-radius: 7px; display: flex; gap: 3px; height: 34px; }
.source-tab { flex: 1; align-items: center; justify-content: center; padding: 0 10px; font-size: 12px; color: #626770; border-radius: 5px; gap: 7px; }
.source-tab.active { color: var(--ink); background: white; box-shadow: 0 1px 3px #1418201c; font-weight: 500; }
.source-tab.active:after { display: none; }
.source-tab > .icon { width: 14px; height: 14px; }
.source-panel #source-content { padding: 20px; min-height: 300px; }
.dropzone { border: 1px dashed #c5cbd5; border-radius: 8px; min-height: 308px; padding: 27px 18px; background: #fafbfc; }
.dropzone:hover, .dropzone.dragging { background: #f1f6fe; border-color: #7daae3; }
.dropzone.dragging { box-shadow: inset 0 0 0 2px #bbd7fc; }
.upload-art { height: 56px; width: 56px; margin: 0 0 18px; }
.upload-orbit { inset: 0; transform: none; background: #e9f1fe; border: 1px solid #dce9fc; border-radius: 14px; }
.upload-art > .icon { color: var(--accent); width: 30px; height: 30px; stroke-width: 1.5; }
.upload-art:after { display: none; }
.dropzone h3 { color: var(--ink); font-size: 18px; font-weight: 600; letter-spacing: -.3px; }
.dropzone p { color: var(--secondary); font-size: 12px; margin-top: 6px; letter-spacing: 0; }
.button { min-height: 32px; font-size: 12px; font-weight: 500; border-radius: 6px; padding: 0 13px; gap: 6px; }
.button.primary { background: var(--accent); border: 1px solid #0060cb; color: #fff; box-shadow: 0 1px 2px #15376116, inset 0 1px 0 #ffffff1c; }
.button.primary:hover:enabled { background: var(--accent-hover); box-shadow: 0 2px 4px #15376122; }
.button.secondary { color: #414751; background: #fff; border: 1px solid #d4d6dc; box-shadow: 0 1px 2px #161b2409; }
.button.secondary:hover:enabled { background: #f3f4f6; border-color: #bdc3cd; }
.button.small { min-height: 30px; font-size: 12px; padding: 0 11px; }
.button.small .icon { width: 14px; height: 14px; }
.upload-button { min-height: 34px; height: 34px; font-size: 12px; margin-top: 20px; min-width: 142px; }
.file-support { font-size: 10px; color: var(--secondary); letter-spacing: .5px; margin-top: 18px; }
.file-support span { color: #a6adb7; }
.upload-limit { color: var(--tertiary); font-size: 11px; margin-top: 5px; letter-spacing: 0; }
.source-footer { padding: 0 20px; min-height: 48px; background: #fafafb; border-color: var(--separator); }
.demo-link { color: var(--secondary); font-size: 11px; gap: 8px; }
.demo-link strong, .demo-link > .icon { color: var(--accent); }
.demo-play { background: #e7effb; border-color: #dce7f8; color: var(--accent); }
.demo-play > .icon { fill: var(--accent); }
.demo-meta { color: var(--secondary); font-size: 10px; }
.settings-panel { padding: 0 18px 16px; }
.settings-panel .panel-heading { padding: 0; height: 55px; }
.text-button { color: var(--accent); font-size: 12px; }
.text-button:hover { color: var(--accent-hover); }
.text-button.danger { color: #b33b3b; }
.setting-label { color: #42464e; font-size: 12px; margin-bottom: 9px; }
.recommended { color: var(--secondary); font-size: 10px; }
.segmented { background: #ededf0; border-color: #e3e4e8; border-radius: 6px; padding: 2px; margin-bottom: 18px; }
.segmented span { color: var(--secondary); height: 28px; font-size: 11px; border-radius: 4px; }
.segmented input:checked + span { border-color: #fff; color: var(--ink); box-shadow: 0 1px 3px #11111120; }
.segmented input:focus-visible + span { outline: 3px solid #70aaf0; }
.setting-label output { color: var(--secondary); font-size: 11px; }
input[type=range] { background: #d5dbe5; height: 4px; margin: 15px 0 10px; }
input[type=range]::-webkit-slider-thumb { background: white; width: 17px; height: 17px; border: 1px solid #c5cad2; box-shadow: 0 1px 3px #0002; }
input[type=range]::-moz-range-thumb { background: white; width: 16px; height: 16px; border: 1px solid #c5cad2; border-radius: 50%; box-shadow: 0 1px 3px #0002; }
.range-labels { font-size: 10px; color: var(--secondary); margin-bottom: 15px; }
.setting-row { font-size: 12px; color: #42464e; min-height: 36px; }
.setting-row select, #sort-order { min-width: 128px; font-size: 11px; color: #42464e; border: 1px solid #d5d7dc; background: #fff; border-radius: 5px; padding: 5px 7px; }
.settings-divider { background: var(--separator); margin: 12px 0 8px; }
.switch-row { min-height: 32px; }
.switch-row > span:first-child { color: #42464e; font-size: 12px; }
.switch-row .icon { color: #747c88; }
.switch-track { width: 28px; height: 17px; background: #d5d7dc; }
.switch-track:after { width: 13px; height: 13px; }
.switch-row > input { width: 30px; height: 22px; }
.switch-row input:checked + .switch-track { background: var(--accent); }
.switch-row input:checked + .switch-track:after { transform: translateX(11px); }
.switch-row input:focus-visible + .switch-track { outline-color: #70aaf0; }
.crop-setting { font-size: 11px; color: #42464e; min-height: 31px; }
.crop-setting > span:last-child { font-size: 11px; color: var(--secondary); }
.range-details summary { font-size: 11px; color: var(--secondary); padding: 7px 0; }
.time-fields label { font-size: 11px; color: var(--secondary); }
.time-fields input, .crop-fields input { border-color: var(--border); color: var(--ink); font-size: 12px; }
.extract-button { min-height: 34px; font-size: 12px; margin-top: 12px; }
.privacy-note { color: var(--secondary); font-size: 10px; margin-top: 9px; }
.source-meta strong, .source-ready { color: var(--ink); }
.source-meta p { color: var(--secondary); font-size: 11px; }

/* Results and document controls. */
.results-section { margin-top: 26px; }
.results-header { margin-bottom: 15px; align-items: center; }
.results-title h2 { font-size: 16px; }
.results-title h2 > span { background: #e8e9ed; border: 0; color: #606672; font-size: 11px; }
.results-title p { color: var(--secondary); font-size: 12px; margin-top: 3px; }
.results-actions .button.small { font-size: 12px; }
.results-actions #save-button { display: inline-flex; }
.empty-results { background: #f0f1f4; border: 1px dashed #d7dbe2; min-height: 160px; padding: 24px; justify-content: center; text-align: center; }
.empty-symbol { color: #98a1af; display: block; }
.empty-symbol > .icon { width: 30px; height: 30px; stroke-width: 1.3; }
.empty-copy h3 { color: #555d6a; font-size: 14px; font-weight: 500; margin: 8px 0 0; letter-spacing: 0; }
.empty-copy p { color: var(--secondary); font-size: 12px; margin-top: 5px; }
.empty-copy .text-button { color: var(--accent); font-size: 12px; margin-top: 10px; }
.sample-stack, .benefits-row { display: none; }
.page-footer { color: var(--secondary); font-size: 10px; padding: 20px 0; }
.page-footer > span:first-child { font-size: 10px; }
.page-footer svg { display: none; }
.version-tag { color: var(--secondary); border-color: var(--border); }
.results-toolbar { background: #eceef2; border-color: var(--border); border-radius: 7px; }
.select-all, .select-all > span { color: var(--secondary); font-size: 12px; }
.view-toggle { background: #dedfe4; border-color: var(--border); }
.view-toggle button { color: var(--secondary); }
.view-toggle button.active { background: #fff; color: var(--ink); box-shadow: 0 1px 3px #0002; }
.slide-card { border-color: var(--border); box-shadow: 0 1px 3px #151c2810; border-radius: 8px; }
.slide-card.selected { border-color: #9bbded; }
.slide-card:hover { border-color: #8fb4e6; box-shadow: 0 3px 10px #151c2812; }
.slide-card-footer { background: white; border-color: var(--separator); }
.slide-card-footer b { color: var(--ink); }
.timestamp { color: var(--accent); font-size: 11px; }
.processing-panel, .link-import-progress { background: #eef4fd; border-color: #cbdcf3; color: var(--ink); }
.processing-heading strong, .link-progress-heading strong { color: var(--ink); }
.processing-heading span, .link-progress-heading p, .link-progress-details { color: var(--secondary); }
.progress-track, .link-progress-track { background: #d9e3f3; }
#processing-bar, .link-progress-track > span { background: var(--accent); }
.spinner { border-color: #c6d5e9; border-top-color: var(--accent); }

/* Sheets: readable type, stable close action, content and resource columns. */
dialog { border: 1px solid #c9ccd3; border-radius: 13px; color: var(--ink); background: #fff; box-shadow: 0 24px 90px #141b3040, 0 3px 12px #141b3020; }
dialog::backdrop { background: #1a23353d; backdrop-filter: blur(3px); }
.modal { padding: 24px; max-height: calc(100dvh - 48px); }
.modal-heading { gap: 15px; margin-bottom: 18px; }
.modal-heading h2 { font-size: 20px; font-weight: 600; color: var(--ink); letter-spacing: -.5px; margin-top: 3px; }
.modal-heading .eyebrow { color: var(--secondary); font-size: 10px; letter-spacing: .8px; }
.modal-heading .icon-button { background: #eeeff2; color: #6e7581; border-radius: 50%; width: 26px; height: 26px; }
.modal-heading .icon-button:hover { background: #dfe3e9; color: var(--ink); }
.modal > p { color: var(--secondary); font-size: 13px; }
.modal-note { background: #f3f4f7; border-color: #e3e6ec; color: #626b79; font-size: 12px; border-radius: 7px; }
.export-options { gap: 8px; margin-top: 18px; }
.export-options > button { background: #fafbfc; border-color: var(--border); padding: 14px; }
.export-options > button:hover { background: var(--selection); border-color: #aac7ef; }
.export-options strong { color: var(--ink); font-size: 14px; }
.export-options small { color: var(--secondary); font-size: 11px; margin-top: 4px; }
.export-options b, .export-options > button > .icon { color: var(--accent); }
.export-options > button > .icon:first-child { color: var(--accent); }
.inspect-image { background: #e8ebf0; }
.inspect-navigation > span, .note-label, .note-label span, .muted { color: var(--secondary); }
.inspect-modal textarea { background: #fafbfd; border-color: var(--border); color: var(--ink); font-size: 13px; }
.inspect-modal textarea::placeholder { color: var(--tertiary); }
.crop-fields label, .modal-footer > span { color: var(--secondary); font-size: 11px; }
.history-card { border-color: var(--border); }
.history-card strong, .history-empty h3, .guide-steps h3, .roadmap h3 { color: var(--ink); }
.history-card small, .history-empty, .guide-steps p, .roadmap p, .roadmap small { color: var(--secondary); }
.guide-steps b { color: var(--accent); background: var(--selection); border-color: #d3e0f5; font-family: inherit; }
.roadmap-current { background: #edf4ff; }
.roadmap-current > span, .roadmap-current h3 { color: var(--accent) !important; }
.roadmap-current > .icon { color: var(--accent); }
.roadmap article { border-color: var(--separator); }
.catalog-dialog.modal { width: min(1060px, calc(100vw - 48px)); padding: 0 24px 22px; color: var(--ink); }
.catalog-dialog .modal-heading { position: sticky; top: 0; z-index: 4; margin: 0 -24px 22px; padding: 17px 24px; background: #f7f8faf5; border-bottom: 1px solid var(--separator); backdrop-filter: blur(16px); align-items: center; }
.catalog-dialog .modal-heading h2 { font-size: 20px; color: var(--ink); font-weight: 600; margin: 1px 0 0; }
.catalog-dialog .modal-heading .icon-button { align-self: center; }
.course-detail-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(270px, 1fr); gap: 26px; align-items: start; }
.course-detail-reading, .course-detail-inspector { min-width: 0; }
.course-detail-inspector { padding-left: 23px; border-left: 1px solid var(--separator); }
.catalog-detail-cover { margin-bottom: 17px; }
.catalog-detail-cover > div { background: #f0f2f6; border-radius: 8px; aspect-ratio: 16 / 7; }
.catalog-detail-cover figcaption { font-size: 10px; color: var(--secondary); gap: 8px; flex-wrap: wrap; }
.cover-attribution a { color: var(--accent); font-size: 10px; }
.catalog-detail-title { font-size: 23px; line-height: 1.4; font-weight: 600; color: var(--ink); }
.catalog-detail-translation { color: var(--secondary); font-size: 14px; margin-top: 6px; }
.catalog-detail-meta { color: var(--secondary); font-size: 11px; margin: 15px 0; }
.catalog-detail-meta > span + span { border-color: var(--border); }
.catalog-instructors { font-size: 12px; color: var(--secondary); margin-bottom: 13px; }
.catalog-detail-tags { margin-bottom: 16px; }
.catalog-course-overview { border-color: var(--separator); padding-top: 18px; margin: 18px 0 0; }
.course-section-heading .eyebrow, .course-resource-heading .eyebrow { display: none; }
.course-section-heading h4, .course-resource-heading h4 { color: var(--ink); font-size: 15px; font-weight: 600; margin: 0 0 12px; }
.catalog-description { color: #4c535f; font-size: 13px; line-height: 1.9; margin: 12px 0 18px; }
.course-syllabus h5, .course-prerequisites h5 { color: var(--ink); font-size: 12px; margin: 0 0 8px; }
.course-syllabus li { color: #606977; font-size: 12px; line-height: 1.7; }
.course-syllabus li:before { background: #7e9fc8; }
.course-prerequisites { background: #f3f5f8; border-color: #e2e6ec; padding: 13px; }
.course-prerequisites p { color: #606977; font-size: 12px; }
.course-facts { gap: 12px; }
.course-facts div { border-color: var(--separator); padding-left: 12px; }
.course-facts dt { font-size: 10px; color: var(--secondary); }
.course-facts dd { font-size: 12px; color: #434d5b; }
.course-overview-source, .course-original-description, .course-source-access { font-size: 11px; color: var(--secondary); }
.course-overview-source { flex-wrap: wrap; gap: 5px; }
.course-overview-source a, .course-original-description summary { color: var(--accent); }
.catalog-open-tree { margin-bottom: 22px; border-color: #d5e2f4; background: #f0f5fd; padding: 13px; gap: 10px; color: #275d9f; }
.catalog-open-tree > span:first-child { background: #dfeafb; width: 32px; height: 34px; border-radius: 7px; flex-shrink: 0; }
.catalog-open-tree strong { font-size: 12px; }
.catalog-open-tree small { color: #577190; font-size: 11px; margin-top: 3px; }
.catalog-detail-video { background: #f5f7fa; border-color: #e0e5ed; padding: 15px; margin-bottom: 15px; }
.catalog-detail-video > p { color: var(--secondary); font-size: 11px; }
.catalog-video-providers { border-color: #dce2eb; padding-top: 12px; margin-top: 12px; }
.catalog-video-providers h4 { color: #414f63; font-size: 12px; }
.catalog-video-providers article + article { border-color: var(--separator); }
.provider-entry { gap: 8px; }
.provider-entry strong { font-size: 12px; color: #3c5c81; line-height: 1.7; }
.provider-entry small { color: var(--secondary); font-size: 10px; }
.provider-entry > .icon { color: var(--secondary); }
.provider-evidence { font-size: 10px; color: var(--accent); }
.provider-lessons { font-size: 11px; color: #475e7c; }
.provider-lessons li { border-color: var(--separator); }
.catalog-detail-resources { gap: 8px; }
.catalog-detail-resources > a { border-color: var(--border); background: #fff; border-radius: 7px; padding: 13px 10px; gap: 10px; }
.catalog-detail-resources > a:hover { background: #f2f6fc; border-color: #b7cce7; }
.catalog-detail-resources strong { color: #334b6b; font-size: 12px; }
.catalog-detail-resources small { color: var(--secondary); font-size: 10px; line-height: 1.7; }
.catalog-detail-resources > a > .icon { color: #6c819b; }
.resource-symbol { background: #edf2f9; color: #607d9f; width: 32px; height: 36px; flex-shrink: 0; }
.resource-symbol .icon { width: 19px; height: 19px; }
.catalog-source-proof { color: var(--secondary); font-size: 11px; border-color: var(--separator); padding-top: 18px; margin-top: 24px; }
.catalog-source-proof a { color: var(--accent); }
.catalog-dialog .catalog-detail-note { color: var(--secondary); font-size: 11px; margin: 12px 0 0; }

/* Related courses and cached course decks use the same palette. */
.catalog-tree-dialog.modal { width: min(930px, calc(100vw - 48px)); }
.prereq-intro { color: var(--secondary); font-size: 13px; }
.prereq-toolbar label { font-size: 11px; color: var(--secondary); }
.prereq-picker { font-size: 12px; background: white; color: var(--ink); border-color: var(--border); padding: 8px 10px; min-height: 35px; }
.prereq-history .text-button, .prereq-tree-tools button { color: var(--accent); font-size: 11px; }
.prereq-direction { border-color: var(--separator); gap: 4px; }
.prereq-direction button { color: var(--secondary); font-size: 12px; padding: 7px 12px; }
.prereq-direction button[aria-pressed=true] { background: var(--selection); border-color: #d3e1f4; color: #235eaa; }
.prereq-direction button span { background: #d8e6fa; color: #3f6b9f; font-size: 10px; }
.prereq-target { background: #344d71; border: 1px solid #2d466b; border-radius: 9px; padding: 20px; gap: 5px; }
.prereq-target > span { color: #d0def1; font-size: 11px; letter-spacing: 0; }
.prereq-target > p { color: #e2ebf8; font-size: 14px; }
.prereq-summary { color: #515e70; font-size: 13px; }
.prereq-flow-label, .prereq-tree-tools > span, .prereq-group-heading > small, .prereq-node-note, .prereq-code, .prereq-coverage, .prereq-edition-note { color: var(--secondary); font-size: 11px; }
.prereq-source, .prereq-text a, .prereq-branch > summary, .prereq-text > summary { color: var(--accent); font-size: 11px; }
.prereq-source span { color: var(--secondary); }
.prereq-group-heading > span, .prereq-relation { background: #e9eef6; color: #486587; font-size: 11px; }
.kind-recommended > .prereq-group-heading > span, .prereq-relation.kind-recommended { background: #f8f1e1; color: #836629; }
.kind-corequisite > .prereq-group-heading > span, .prereq-relation.kind-corequisite { background: #eceaf6; color: #64558e; }
.prereq-branches { border-color: #cbd6e5; }
.prereq-branches > li:before { background: #cbd6e5; }
.prereq-course-link { color: #344861; background: #fff; border-color: #d9e0e9; border-radius: 7px; }
.prereq-course-link:hover { background: #f2f6fd; border-color: #a6bedf; }
.prereq-course-link strong { font-size: 13px; }
.prereq-course-link > small, .prereq-topic p, .prereq-text p { color: var(--secondary); font-size: 12px; }
.prereq-course-link > .icon { color: #7692b5; }
.prereq-topic, .prereq-empty { background: #f3f5f8; border-color: #dce2ea; color: var(--secondary); }
.prereq-topic strong, .prereq-empty > strong { color: #46566c; font-size: 13px; }
.prereq-topic small { color: var(--secondary); font-size: 11px; }
.prereq-empty a { color: var(--accent); font-size: 12px; }
.prereq-edition-note { border-color: var(--separator); }
.prereq-next-courses > li { background: #f9fafc; border-color: var(--border); }
.prerequisite-view button:focus-visible, .catalog-open-tree:focus-visible, .course-tree-button:focus-visible { outline: 3px solid #70aaf0; }
.url-panel h3, .course-result h3, .download-list strong { color: var(--ink); }
.url-panel p, .url-info, .course-mode small, .course-result p, .course-result-stats, .course-lessons small { color: var(--secondary); }
.url-panel h3 { font-size: 17px; }
.url-panel p, .url-panel .url-info { font-size: 12px; color: var(--secondary); }
.url-panel > .text-button { font-size: 11px; }
.url-panel { padding: 20px 20px; min-height: 308px; background: #fafbfc; border-color: #dce2eb; }
.course-link-input { width: 100%; min-width: 0; }
.url-panel .course-link-input { max-width: 560px; }
.platform-link-form input { color: var(--ink); border-color: var(--border); background: white; font-size: 12px; }
.platform-link-form input::placeholder { color: var(--tertiary); }
.platform-link-form input:focus { border-color: #74a6e7; box-shadow: 0 0 0 3px #5799ee22; }
.course-result-icon { color: var(--accent); background: var(--selection); }
.course-result .course-result-status { color: #2f7750; }
.course-result-stats b { color: var(--ink); }
.course-lessons article, .download-list article { border-color: var(--separator); }
.download-list small, .cookies-explanation, .cookies-state { color: var(--secondary); }
.download-file-icon { background: var(--selection); color: #5c7ea8; }
.connection-status { background: #edf5f1; border-color: #d5e5dc; margin: 18px 0; padding: 15px; }
.connection-status > .icon, .connection-status strong { color: #367253; }
.connection-status p { color: #587362; font-size: 12px; margin-top: 4px; }
.connection-status.offline { background: #fcf5e9; border-color: #e9d9bb; }
.connection-status.offline strong { color: #8d652d; }
.connection-status.offline p { color: #79694f; }
.service-start-help > p { color: var(--secondary); }
.service-start-help code { background: #f0f2f6; color: #455774; border-color: var(--border); }
#auth-feedback { color: #8b632f; font-size: 12px; }
#toast { background: #fff; border-color: #d3dbe6; color: #3c5574; box-shadow: 0 6px 28px #17263f26; border-radius: 9px; font-size: 12px; }
#toast.error { background: #fff8f5; border-color: #e8cbc1; color: #92442f; }

/* Minimal workspace: one navigation bar, search-first rows, optional settings. */
:root { --sidebar: 0px; --canvas: #fff; --surface: #fff; --accent: #2463c5; --accent-hover: #174da1; --selection: #eef3fb; --border: #e3e5e9; --separator: #eceef1; background: #fff; }
body { background: #fff; }
.app-shell { margin: 0; min-height: 100vh; }
.topbar { height: 58px; padding: 0 max(24px, calc((100vw - 1240px)/2)); display: flex; gap: 30px; position: sticky; top: 0; z-index: 25; background: #fff; border-bottom: 1px solid var(--separator); backdrop-filter: none; }
.brand { padding: 0; gap: 8px; font-size: 16px; letter-spacing: -.5px; flex-shrink: 0; }
.brand svg { width: 23px; height: 23px; }
.brand > span { display: block; }
.main-nav { display: flex; align-items: stretch; gap: 6px; margin: 0; height: 100%; }
.nav-item { position: relative; padding: 0 14px; height: 100%; min-width: 0; width: auto; font-size: 13px; font-weight: 400; color: var(--secondary); border-radius: 0; white-space: nowrap; }
.nav-item:hover { color: var(--ink); background: #fafafa; }
.nav-item.active { color: var(--ink); background: none; font-weight: 600; }
.nav-item.active::after { content: ''; position: absolute; height: 2px; bottom: -1px; left: 14px; right: 14px; background: var(--ink); }
.topbar-right { margin-left: auto; display: flex; gap: 10px; align-items: center; }
.icon-button { color: #747b85; width: 30px; height: 30px; border-radius: 5px; }
.icon-button:hover { background: #f2f3f5; color: var(--ink); }
.icon-button .icon { width: 17px; height: 17px; }
.view-catalog [data-action="search-courses"] { display: none; }
main { max-width: 1240px; margin: auto; padding: 28px 24px 36px; }
#extractor-view { max-width: 980px; padding-top: 40px; }
.workspace-grid { display: block; }
.source-panel { background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
.source-tabs { height: 37px; padding: 0; margin: 0 0 18px; gap: 22px; border: 0; border-bottom: 1px solid var(--separator); border-radius: 0; background: none; }
.source-tab { flex: none; padding: 0 0 12px; border: 0; border-radius: 0; font-size: 13px; background: none; box-shadow: none; color: var(--secondary); align-items: center; justify-content: flex-start; }
.source-tab.active { background: none; box-shadow: none; color: var(--ink); font-weight: 500; }
.source-tab.active:after { display: block; background: var(--ink); height: 2px; }
.source-tab > .icon { width: 14px; height: 14px; color: #7d8590; }
.source-panel #source-content { min-height: 0; padding: 0; }
.dropzone { height: auto; min-height: 190px; padding: 28px 20px; border: 1px dashed #d5d9e0; border-radius: 6px; background: #fcfcfd; }
.dropzone h3 { color: #616976; font-size: 14px; font-weight: 400; letter-spacing: 0; }
.dropzone:hover, .dropzone.dragging { background: #f8fafd; border-color: #9aadc9; }
.upload-button { margin: 14px 0 0; min-width: 0; min-height: 31px; height: 31px; font-size: 12px; padding: 0 14px; }
.file-support { margin-top: 14px; color: #858c97; font-size: 10px; letter-spacing: .5px; gap: 6px; }
.source-footer { background: none; padding: 11px 0 0; border: 0; min-height: 0; }
.demo-link { font-size: 11px; color: var(--secondary); gap: 6px; }
.demo-play { display: none; }
.demo-link > .icon { width: 11px; color: var(--secondary); }
.demo-meta { font-size: 10px; color: #858c97; }
.extract-controls { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin-top: 22px; }
.settings-panel { position: relative; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; z-index: 15; }
.settings-panel > summary { display: flex; align-items: center; gap: 7px; height: 32px; color: var(--secondary); font-size: 12px; cursor: pointer; list-style: none; }
.settings-panel > summary::-webkit-details-marker { display: none; }
.settings-panel > summary > .icon { width: 14px; height: 14px; }
.settings-panel > summary > .icon:last-child { width: 11px; }
.settings-content { position: absolute; right: 0; top: calc(100% + 8px); width: 320px; padding: 0 18px 15px; background: white; border: 1px solid #dfe3ea; border-radius: 8px; box-shadow: 0 8px 30px #17233920; max-height: min(570px, 65dvh); overflow-y: auto; }
.settings-panel .panel-heading { height: 48px; }
.settings-panel .panel-heading h2 { font-size: 12px; }
.settings-panel fieldset { display: block; }
.setting-row, .switch-row { min-height: 35px; }
.settings-panel .panel-heading h2 > .icon, .recommended { display: none; }
.extract-button { margin: 0; width: auto; min-width: 126px; height: 34px; min-height: 34px; font-size: 12px; }
.extract-button > .icon:first-child, .extract-button > .icon:last-child { display: none; }
.button, .button.small { border-radius: 5px; font-size: 12px; min-height: 32px; box-shadow: none; }
.button.primary { box-shadow: none; }
.button.secondary { color: #555d69; border-color: #dce0e6; box-shadow: none; background: white; }
.url-panel { display: flex; min-height: 190px; padding: 25px 0 16px; border: 0; border-radius: 0; background: none; text-align: left; align-items: stretch; justify-content: center; }
.url-panel .course-link-input { max-width: none; width: 100%; }
.platform-link-form { gap: 10px; }
.platform-link-form input { font-size: 14px; border-radius: 5px; padding: 11px 13px; }
.platform-link-form .button { min-width: 75px; }
.course-mode { margin-top: 13px; color: var(--secondary); font-size: 12px; gap: 8px; }
.course-mode input { flex: 0 0 auto; width: 14px; height: 14px; margin: 2px 0 0; padding: 0; }
.course-mode > span { flex: 0 1 auto; }
.course-mode small { display: none; }
.url-panel .url-info { font-size: 11px; color: #7a828d; margin: 13px 0 0; line-height: 1.6; }
#source-video { max-height: 280px; background: #1c2027; }
.source-meta { padding: 10px 0; }
.source-meta strong { font-size: 12px; }
.source-meta p { font-size: 11px; }
.source-ready { font-size: 11px; }
.source-ready > .icon { width: 12px; }
.results-section { margin-top: 32px; border-top: 1px solid var(--separator); padding-top: 22px; }
.results-header { gap: 12px; margin-bottom: 18px; align-items: center; }
.results-title h2 { font-size: 14px; font-weight: 500; }
.results-title p { font-size: 11px; margin-top: 4px; }
.results-title h2 > span { background: transparent; border: 0; padding: 0; font-size: 12px; color: var(--secondary); }
.results-actions .button.small { font-size: 12px; min-height: 30px; }
.results-actions #save-button { display: inline-flex; }
.empty-results { min-height: 100px; background: none; border: 0; padding: 20px; text-align: center; }
.empty-copy h3 { font-size: 13px; margin: 0; }
.empty-copy p { font-size: 12px; }
.empty-symbol, .empty-copy .text-button { display: none; }
.results-toolbar { border: 0; border-radius: 0; border-bottom: 1px solid var(--separator); background: none; padding: 0 0 12px; }
.slide-card { box-shadow: none; }
.processing-panel { margin-top: 24px; }
.link-import-progress { margin: 0 0 16px; }

/* Course rows keep the name, description, video availability and resource together. */
.catalog-controls { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; }
.catalog-search { height: 42px; padding: 0 12px; border: 1px solid #dce0e6; background: #fff; border-radius: 6px; box-shadow: none; gap: 9px; }
.catalog-search > .icon { width: 17px; height: 17px; color: #8a919c; }
.catalog-search input { color: var(--ink); font-size: 14px; padding: 10px 0; }
.catalog-search input::placeholder { color: #7a828d; }
.catalog-search:focus-within { border-color: #8aabd7; box-shadow: 0 0 0 2px #c7d9f333; }
.search-hint { border: 0; padding-left: 12px; color: #939aa5; font-size: 10px; }
.catalog-favorites.button, .catalog-filter-toggle.button { height: 36px; min-height: 36px; padding: 0 10px; font-size: 12px; border-color: transparent; color: #626b78; gap: 6px; white-space: nowrap; box-shadow: none; }
.catalog-favorites.button:hover, .catalog-filter-toggle.button:hover { background: #f4f5f7; border-color: transparent; }
.catalog-favorites > span { background: none; font-size: 10px; padding: 0; color: #7e8693; }
.catalog-favorites.active, .catalog-filter-toggle.active { color: var(--accent); background: var(--selection); border-color: transparent; }
.catalog-favorites > .icon, .catalog-filter-toggle > .icon { width: 14px; height: 14px; }
.catalog-favorites.active > .icon { fill: #d3e2f8; }
.catalog-filters { padding: 15px; gap: 14px; border: 1px solid #e8ebef; border-radius: 6px; background: #fafbfc; margin-bottom: 20px; }
.catalog-school-tabs { gap: 3px; flex-wrap: wrap; justify-content: flex-start; }
.catalog-school-tabs button { font-size: 12px; padding: 5px 9px; gap: 6px; color: #637082; border-radius: 4px; }
.catalog-school-tabs button > span { color: #858d98; font-size: 10px; }
.catalog-school-tabs button.active { color: #2d5893; background: #eaf0f8; border-color: transparent; }
.catalog-school-tabs button.active > span { color: #52719a; }
.catalog-secondary-filters { gap: 12px; }
.catalog-secondary-filters label { color: var(--secondary); font-size: 11px; gap: 6px; }
.catalog-secondary-filters select, .catalog-results-heading select { font-size: 11px; border-color: #dfe3e9; color: #5d6674; border-radius: 4px; background: white; padding: 5px 7px; min-width: 120px; }
.catalog-secondary-filters > .text-button { color: var(--secondary); font-size: 11px; }
.catalog-secondary-filters > .text-button:last-child { margin-left: 0; }
.catalog-results { padding: 0; scroll-margin-top: 75px; }
.catalog-results-heading { display: flex; align-items: center; justify-content: space-between; margin: 0; padding: 0 0 13px; gap: 12px; }
.catalog-results-heading > div { gap: 16px; }
#catalog-result-count { color: #7a8390; font-size: 12px; }
.catalog-tree-entry { font-size: 11px; color: #67768a; gap: 5px; }
.catalog-tree-entry .icon { width: 12px; height: 12px; }
.catalog-results-heading select { border-color: transparent; padding-right: 0; background: transparent; min-width: 120px; font-size: 11px; }
.course-grid { display: block; border-top: 1px solid var(--separator); }
.course-card { display: grid; grid-template-columns: 84px minmax(0, 1fr) 170px 130px; align-items: center; column-gap: 22px; padding: 19px 0 !important; border: 0; border-bottom: 1px solid var(--separator); border-radius: 0; box-shadow: none; background: white; overflow: visible; transition: background .12s; }
.course-card:hover { background: #fafbfc; transform: none; border-color: var(--separator); box-shadow: none; }
.course-card > :not(.course-cover) { margin: 0; }
.course-cover { width: 84px; height: 58px; aspect-ratio: auto; border: 0; border-radius: 4px; background: #f2f3f6; }
.course-cover img { object-fit: cover; object-position: center; }
.course-cover-label { display: none; }
.catalog-detail-cover .course-cover-label { display: block; }
.course-cover:hover img { transform: none; }
.course-row-info { min-width: 0; }
.course-card .course-card-top { display: flex; align-items: center; gap: 7px; min-height: 0; margin: 0 0 4px; }
.course-school, .school-stanford .course-school, .school-cmu .course-school { color: #647082; background: none; padding: 0; border: 0; font-size: 10px; font-weight: 500; line-height: 1.4; letter-spacing: 0; }
.course-code { font-size: 10px; color: #78818f; }
.course-offering { font-size: 10px; color: #8a929f; margin: 0 0 0 3px; display: inline; }
.course-card .course-card-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 10px; margin: 0 0 4px; min-height: 0; width: 100%; padding: 0; }
.course-card-title h3 { font-size: 14px; line-height: 1.5; color: #2a313c; font-weight: 550; letter-spacing: -.15px; }
.course-card-title > span { font-size: 11px; color: #7c8593; margin: 0; line-height: 1.5; }
.course-card-title:hover h3 { color: var(--accent); }
.course-card-description { display: block; color: #828a97; font-size: 11px; line-height: 1.65; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; min-height: 0; }
.course-video { align-self: center; min-width: 0; margin: 0; }
.course-video-status, .course-video-status.video-available, .course-video-status.video-not_listed, .course-video-status.video-unknown { font-size: 10px; color: #7e8794; gap: 5px; }
.course-video-status .icon { width: 12px; height: 12px; }
.course-video-links { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; margin-top: 5px; }
.video-source-link, .video-source-link.platform-bilibili { display: flex; font-size: 10px; color: #637794; border: 0; border-radius: 0; background: none; padding: 0; gap: 4px; }
.video-source-link small { border: 0; color: #7f8996; font-size: 9px; padding: 0; }
.video-source-link:hover { border: 0; color: var(--accent); filter: none; }
.course-card .course-card-bottom { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; border: 0; min-height: 0; gap: 7px; }
.course-resource, .course-resource.has-materials { color: #4f6e98; font-size: 11px; font-weight: 400; padding: 3px 0; gap: 5px; max-width: 100%; }
.course-resource > .icon:first-child { display: none; }
.course-resource > .icon:last-child { width: 12px; height: 12px; }
.course-row-actions { display: flex; align-items: center; gap: 7px; }
.course-tree-button, .course-bookmark, .course-detail-button { display: inline-flex; justify-content: center; align-items: center; width: 23px; height: 23px; color: #8d97a5; margin: 0; padding: 3px; border: 0; border-radius: 4px; background: transparent; }
.course-tree-button .icon, .course-bookmark .icon, .course-detail-button .icon { width: 14px; height: 14px; }
.course-bookmark.saved { color: var(--accent); background: #eef3fb; }
.course-bookmark.saved .icon { fill: #d4e1f5; }
.course-tree-button:hover, .course-bookmark:hover, .course-detail-button:hover { color: var(--accent); background: #eef3fb; }
.catalog-pagination { color: #7d8694; font-size: 11px; margin-top: 22px; }
.catalog-pagination .button { font-size: 11px; border-color: #e4e7ed; }
.catalog-footer { color: #8c94a1; font-size: 10px; border: 0; margin-top: 32px; padding: 0; }
.catalog-footer .icon { color: #8c94a1; }
.catalog-empty, .catalog-loading { color: var(--secondary); background: none; border: 0; border-radius: 0; padding: 48px 20px; }
.catalog-empty p { color: var(--secondary); }
.catalog-detail-cover figcaption { color: var(--secondary); }
.catalog-detail-video .course-video-status { color: #557069; font-size: 12px; }
.catalog-detail-resources > a { box-shadow: none; }
.catalog-dialog .modal-heading { background: #fff; backdrop-filter: none; }
.catalog-dialog .modal-heading .eyebrow { font-size: 9px; }
.catalog-tree-dialog .modal-heading h2 { font-size: 20px; }
.prereq-target { background: #f4f6f9; border-color: #e2e6ed; color: #3b4c63; padding: 16px; }
.prereq-target > span { color: #7b8797; }
.prereq-target > strong { font-size: 18px; }
.prereq-target > p { color: #64748b; font-size: 13px; }
#toast { left: 50%; }

@media (max-width: 1000px) {
  .topbar { padding: 0 24px; gap: 20px; }
  .course-card { grid-template-columns: 64px minmax(0, 1fr) 155px 105px; gap: 16px; }
  .course-cover { width: 64px; height: 48px; }
  .course-card-title { flex-direction: column; }
  .course-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .course-detail-inspector { padding: 22px 0 0; border-left: 0; border-top: 1px solid var(--separator); }
  .catalog-detail-cover > div { aspect-ratio: 16 / 6.5; }
  .results-actions #save-button { font-size: 12px; width: auto; padding: 0 10px; gap: 6px; }
  .prereq-toolbar { align-items: stretch; flex-direction: column; gap: 12px; }
  .prereq-toolbar label { max-width: 100%; }
  .prereq-history { justify-content: space-between; padding: 0; }
}
@media (max-width: 680px) {
  .topbar { height: 52px; gap: 12px; padding: 0 16px; }
  .brand > span { display: none; }
  .brand svg { width: 21px; height: 21px; }
  .main-nav { gap: 2px; }
  .nav-item { padding: 0 10px; font-size: 12px; }
  .nav-item.active:after { left: 10px; right: 10px; }
  .topbar-right { gap: 4px; }
  .icon-button { width: 26px; height: 28px; padding: 4px; }
  .icon-button .icon { width: 16px; height: 16px; }
  main { padding: 22px 18px 28px; }
  #extractor-view { padding-top: 28px; }
  .catalog-controls { flex-wrap: nowrap; gap: 3px; margin-bottom: 17px; }
  .catalog-search { height: 38px; padding: 0 9px; gap: 6px; flex-basis: auto; }
  .catalog-search input { font-size: 12px; }
  .catalog-search > .icon { width: 15px; height: 15px; }
  .search-hint { display: none; }
  .catalog-favorites.button, .catalog-filter-toggle.button { width: 32px; height: 34px; padding: 0; font-size: 0; gap: 0; }
  .catalog-filter-toggle #catalog-filter-label { font-size: 0; }
  .catalog-filter-toggle.active::after { content: ''; width: 4px; height: 4px; background: var(--accent); border-radius: 50%; margin-left: 2px; }
  .catalog-favorites > span { display: none; }
  .catalog-filters { padding: 11px; }
  .catalog-school-tabs { flex-wrap: wrap; gap: 3px; }
  .catalog-school-tabs button { padding: 5px; font-size: 11px; }
  .catalog-secondary-filters { gap: 10px; }
  .catalog-secondary-filters select { min-width: 100px; font-size: 11px; }
  .catalog-secondary-filters > .text-button { font-size: 11px; }
  .catalog-results-heading { gap: 8px; padding-bottom: 11px; margin: 0; }
  .catalog-results-heading > div { gap: 8px; }
  .catalog-results-heading select { min-width: 0; max-width: 108px; font-size: 10px; padding-left: 0; }
  #catalog-result-count, .catalog-tree-entry { font-size: 11px; }
  .course-card { grid-template-columns: 52px minmax(0, 1fr); gap: 0 12px; padding: 17px 0 !important; align-items: start; }
  .course-cover { width: 52px; height: 42px; margin-top: 3px; }
  .course-card .course-card-top { margin-bottom: 3px; gap: 5px; flex-wrap: wrap; }
  .course-offering { font-size: 9px; margin-left: 2px; }
  .course-card .course-card-title { gap: 2px; min-height: 0; margin-bottom: 5px; }
  .course-card-title h3 { font-size: 14px; }
  .course-card-title > span { font-size: 11px; }
  .course-card-description { font-size: 11px; }
  .course-video { grid-column: 2; padding-top: 10px; }
  .course-video-links { flex-direction: row; flex-wrap: wrap; gap: 5px 10px; }
  .course-card .course-card-bottom { grid-column: 2; flex-direction: row; justify-content: space-between; align-items: center; margin-top: 8px; gap: 7px; }
  .course-row-actions { gap: 8px; }
  .course-tree-button, .course-bookmark, .course-detail-button { width: 27px; height: 27px; }
  .catalog-pagination { font-size: 10px; flex-wrap: wrap; gap: 14px; justify-content: center; }
  .catalog-pagination > span { width: 100%; text-align: center; }
  .catalog-footer { font-size: 10px; gap: 8px; }
  .source-tabs { margin: 0 0 16px; padding: 0; height: 35px; gap: 22px; }
  .source-panel #source-content { padding: 0; min-height: 0; }
  .dropzone { min-height: 180px; padding: 24px 18px; }
  .source-footer { padding: 10px 0 0; }
  .demo-meta { display: block; font-size: 10px; }
  .extract-controls { margin-top: 20px; gap: 16px; }
  .settings-panel { padding: 0; position: static; }
  .extract-controls { position: relative; z-index: 16; }
  .settings-content { width: min(320px, calc(100vw - 36px)); right: 0; top: calc(100% + 10px); }
  .extract-button { font-size: 12px; min-width: 116px; }
  .setting-row, .switch-row { min-height: 37px; }
  .setting-label, .setting-row, .switch-row > span:first-child { font-size: 12px; }
  .setting-row select { font-size: 11px; min-width: 134px; }
  .crop-setting, .range-details summary { font-size: 11px; }
  .url-panel { padding: 20px 0; min-height: 180px; }
  .platform-link-form input { font-size: 12px; padding: 11px 10px; }
  .platform-link-form .button { min-width: 55px; padding: 0 10px; }
  .course-mode { font-size: 11px; }
  .results-title { min-width: 130px; flex: 1; }
  .results-title h2 { font-size: 14px; }
  .results-title p { font-size: 11px; max-width: 230px; }
  .results-actions { padding: 0; gap: 6px; }
  .results-actions #save-button, .results-actions #capture-button { display: inline-flex; font-size: 0; padding: 0; width: 30px; gap: 0; }
  .results-actions #save-button .icon, .results-actions #capture-button .icon { width: 14px; height: 14px; }
  .results-actions #export-button { font-size: 11px; }
  .results-toolbar { flex-wrap: wrap; gap: 10px; }
  .results-toolbar .text-button, .select-all { font-size: 11px; }
  #sort-order { width: auto; min-width: 100px; font-size: 11px; }
  .view-toggle { display: flex; }
  .view-toggle button { width: 25px; height: 25px; }
  .slide-gallery { gap: 10px; }
  .slide-card-footer b, .timestamp { font-size: 10px; }
  .modal { padding: 20px; width: min(560px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); }
  .catalog-dialog.modal, .catalog-tree-dialog.modal { width: calc(100vw - 24px); padding: 0 18px 18px; }
  .catalog-dialog .modal-heading { margin: 0 -18px 18px; padding: 15px 18px; }
  .catalog-detail-title { font-size: 21px; }
  .catalog-detail-meta { font-size: 11px; gap: 8px; }
  .catalog-detail-cover > div { aspect-ratio: 16 / 8; }
  .course-syllabus ul { grid-template-columns: 1fr; gap: 8px; }
  .catalog-source-proof { flex-wrap: wrap; gap: 10px; font-size: 11px; }
  .prereq-next-courses { grid-template-columns: 1fr; }
  .prereq-branches { padding-left: 12px; margin-left: 4px; }
  .prereq-branches > li:before { width: 13px; left: -13px; }
  #toast { left: 50%; max-width: calc(100vw - 28px); font-size: 12px; }
}
@media (max-width: 360px) {
  .topbar { gap: 7px; padding: 0 12px; }
  .nav-item { padding: 0 8px; }
  .topbar-right { gap: 0; }
}
@media (prefers-reduced-transparency: reduce) { dialog::backdrop { backdrop-filter: none; } }
@media (prefers-contrast: more) {
  :root { --secondary: #3f4651; --tertiary: #505863; --border: #8a929f; --separator: #b3b9c3; }
  .course-card-description, .course-code, .course-offering, .course-school, .course-video-status, .course-card-title > span { color: #505c6f; }
  .catalog-search, .dropzone, .button.secondary { border-color: #8a929f; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition: none !important; } }

/* One reading column. Supporting material is available through native disclosures. */
.catalog-dialog.course-sheet.modal { width: min(860px, calc(100vw - 48px)); height: min(820px, calc(100dvh - 56px)); max-height: none; padding: 0; color: var(--ink); overflow: hidden; border-radius: 16px; }
.catalog-dialog.course-sheet[open] { display: flex; flex-direction: column; }
.course-sheet .course-dialog-bar { display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; min-height: 52px; background: #f8f8fa; border-bottom: 1px solid var(--separator); flex: 0 0 auto; }
.course-dialog-bar > .text-button { font-size: 12px; color: var(--secondary); }
.course-dialog-bar > .icon-button { width: 28px; height: 28px; background: transparent; color: var(--secondary); }
.course-sheet .course-detail-header { display: flex; gap: 28px; padding: 30px 36px 26px; align-items: center; flex: 0 0 auto; }
.course-detail-heading { flex: 1; min-width: 0; }
.course-detail-code { margin: 0 0 12px; color: var(--secondary); font-size: 12px; }
.course-detail-code span { padding: 0 7px; color: var(--secondary); }
.course-sheet .catalog-detail-title { margin: 0; color: var(--ink); font-size: 25px; font-weight: 600; line-height: 1.3; letter-spacing: -.65px; }
.course-sheet .catalog-detail-translation { margin: 10px 0 0; color: var(--secondary); font-size: 14px; }
.course-sheet .catalog-detail-cover { width: 104px; margin: 0; flex: 0 0 104px; position: relative; }
.course-sheet .catalog-detail-cover > div { aspect-ratio: auto; height: 88px; border-radius: 10px; background: #f5f5f6; }
.course-sheet .catalog-detail-cover img { object-fit: contain; }
.course-sheet .catalog-detail-cover .course-cover-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); padding: 0; border: 0; }
.course-sheet .catalog-detail-cover figcaption { margin: 0; }
.course-detail-tabs { display: flex; align-self: flex-start; margin: 0 36px; gap: 3px; border: 0; padding: 3px; background: #eff0f3; border-radius: 8px; flex: 0 0 auto; }
.course-sheet .course-detail-tabs > button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; color: var(--secondary); background: none; border: 0; border-radius: 6px; padding: 7px 18px; width: auto; font-size: 12px; font-weight: 400; margin: 0; cursor: pointer; }
.course-sheet .course-detail-tabs > button[aria-selected=true] { color: var(--ink); background: #fff; box-shadow: 0 1px 4px #00000014; font-weight: 500; }
.course-detail-tabs .icon { display: none; }
.course-detail-body { padding: 0 36px 32px; overflow: auto; overscroll-behavior: contain; min-height: 0; flex: 1; scrollbar-width: thin; }
.course-sheet [role=tabpanel][hidden] { display: none; }
.course-sheet .catalog-course-overview { padding: 0; margin: 0; border: 0; }
.course-sheet .catalog-description { font-size: 14px; color: #4e545d; line-height: 1.9; margin: 26px 0 22px; max-width: 680px; }
.course-intro-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0; padding: 14px 16px; background: #f7f8fa; border-radius: 8px; }
.course-intro-facts dt { color: var(--secondary); font-size: 11px; margin-bottom: 6px; }
.course-intro-facts dd { margin: 0; font-size: 13px; color: var(--ink); overflow-wrap: anywhere; }
.course-sheet .course-intro-heading, .course-sheet .course-intro-section h3 { font-size: 13px; font-weight: 600; color: var(--ink); margin: 0 0 10px; line-height: 1.7; }
.course-sheet .course-intro-heading + .catalog-description { margin: 0 0 20px; }
.course-sheet .course-intro-section { margin: 0; padding: 20px 0; border-top: 1px solid #eeeff2; }
.course-sheet .course-intro-section p { margin: 0; font-size: 13px; line-height: 1.9; color: #4e545d; }
.course-sheet .course-intro-section .course-intro-note, .course-sheet .course-intro-note, .course-sheet .course-intro-section .course-intro-missing { color: var(--secondary); font-size: 12px; line-height: 1.9; }
.course-sheet .course-intro-note { margin: 8px 0 18px; }
.course-sheet .course-intro-section .course-intro-note { margin: 5px 0 0; }
.course-intro-links, .course-intro-source { display: flex; gap: 8px 18px; align-items: center; flex-wrap: wrap; margin-top: 10px; font-size: 11px; line-height: 1.8; color: var(--secondary); }
.course-intro-links a, .course-intro-source a { display: inline-flex; align-items: center; gap: 5px; color: var(--accent); }
.course-intro-links .text-button { padding: 0; font-size: 11px; }
.course-intro-links .icon, .course-intro-source .icon { width: 11px; height: 11px; }
.course-intro-source { padding: 0 0 18px; margin-top: 0; }
.course-sheet .course-intro-section .course-syllabus ul { margin-bottom: 0; gap: 10px 28px; }
.course-sheet .course-intro-section .course-syllabus li { font-size: 13px; }
.course-syllabus li small { display: block; color: #8a919b; font-size: 11px; line-height: 1.6; margin-top: 1px; }
.course-sheet .course-intro-materials .course-primary-actions { margin: 12px 0 0; gap: 18px; }
.course-sheet .catalog-course-overview > .course-original-description { margin: 0 0 20px; }
.course-primary-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin: 0 0 34px; }
.course-primary-actions > a { display: inline-flex; gap: 10px; align-items: center; color: var(--secondary); font-size: 13px; padding: 8px 0; }
.course-primary-actions > .resource-primary { color: #fff; background: var(--accent); padding: 9px 16px; border-radius: 7px; }
.course-primary-actions > .resource-primary:hover { background: var(--accent-hover); }
.course-primary-actions > a:not(.resource-primary):hover { color: var(--secondary); }
.course-primary-actions .icon { width: 14px; height: 14px; }
.course-sheet .course-disclosure { border-top: 1px solid #eeeff2; margin: 0; }
.course-sheet .course-disclosure > summary { display: flex; align-items: center; gap: 12px; padding: 19px 0; list-style: none; color: var(--ink); font-size: 13px; font-weight: 500; cursor: pointer; }
.course-disclosure > summary::-webkit-details-marker { display: none; }
.course-disclosure > summary::after { content: ''; margin-left: auto; width: 6px; height: 6px; flex-shrink: 0; border: solid #7d848e; border-width: 0 1.5px 1.5px 0; transform: rotate(-45deg); }
.course-disclosure[open] > summary::after { transform: rotate(45deg); }
.course-disclosure > summary small { margin-left: auto; font-size: 11px; color: var(--secondary); }
.course-disclosure > summary small + * { margin-left: 0; }
.course-disclosure > summary:has(small)::after { margin-left: 0; }
.course-disclosure-content { padding: 2px 0 24px; color: var(--secondary); font-size: 13px; line-height: 1.9; }
.course-sheet .course-syllabus h5 { display: none; }
.course-sheet .course-syllabus ul { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 28px; padding: 0; margin: 0 0 12px; list-style: none; }
.course-sheet .course-syllabus li { font-size: 13px; color: var(--secondary); line-height: 1.8; }
.course-sheet .course-syllabus li::before { background: #c0c7d1; }
.course-sheet .course-prerequisites { padding: 0; margin: 24px 0 12px; background: none; border: 0; }
.course-sheet .course-prerequisites h5 { font-size: 12px; color: var(--secondary); margin: 0 0 8px; }
.course-sheet .course-prerequisites p { font-size: 13px; color: var(--secondary); line-height: 1.9; }
.course-sheet .course-original-description { margin-top: 18px; font-size: 12px; color: var(--secondary); }
.course-sheet .course-original-description summary { color: var(--secondary); font-size: 12px; }
.course-sheet .course-original-description p { margin-top: 14px; font-size: 13px; line-height: 1.9; }
.course-sheet .catalog-detail-video { padding: 2px 0 24px; margin: 0; background: none; border: 0; border-radius: 0; }
.course-sheet .catalog-detail-video .course-video-status { font-size: 12px; color: var(--secondary); }
.course-sheet .catalog-detail-video > p { font-size: 12px; line-height: 1.9; color: var(--secondary); margin: 6px 0 20px; }
.course-sheet .catalog-video-providers { border: 0; padding: 0; margin: 0; }
.course-sheet .catalog-video-providers > h4 { display: none; }
.course-sheet .catalog-video-providers article { padding: 0; margin: 16px 0 0; }
.course-sheet .provider-entry, .course-sheet .provider-entry.platform-bilibili { display: flex; gap: 12px; border: 0; background: none; padding: 0; color: var(--secondary); border-radius: 0; }
.course-sheet .provider-entry .resource-symbol { display: none; }
.course-sheet .provider-entry strong { display: block; color: var(--secondary); font-size: 13px; line-height: 1.7; font-weight: 400; }
.course-sheet .provider-entry small { display: block; font-size: 12px; line-height: 1.7; color: var(--secondary); margin-top: 5px; }
.course-sheet .provider-entry > .icon { width: 13px; height: 13px; color: var(--secondary); flex-shrink: 0; }
.course-sheet .provider-lessons { margin: 16px 0 0; font-size: 12px; }
.course-sheet .provider-lessons summary { color: var(--secondary); font-size: 12px; padding: 0; }
.course-sheet .provider-lessons ol { max-height: 260px; overflow: auto; margin: 14px 0; padding-left: 20px; }
.course-sheet .provider-lessons li { padding: 7px 0; font-size: 12px; line-height: 1.8; }
.course-sheet .provider-evidence { display: inline-flex; margin-top: 14px; font-size: 11px; color: var(--secondary); }
.course-sheet .catalog-detail-resources { display: flex; flex-direction: column; gap: 12px; margin: 0 0 24px; }
.course-sheet .catalog-detail-resources > a { display: inline-flex; align-items: center; gap: 10px; padding: 0; border: 0; background: none; box-shadow: none; color: var(--secondary); }
.course-sheet .catalog-detail-resources > a:hover { color: var(--secondary); background: none; }
.course-sheet .catalog-detail-resources strong { font-size: 13px; font-weight: 400; color: inherit; }
.course-sheet .catalog-detail-resources .icon { width: 13px; height: 13px; color: var(--secondary); }
.course-sheet .catalog-detail-resources > a > .icon:last-child { margin-left: 0; }
.course-sheet .catalog-detail-meta { display: flex; gap: 8px 14px; flex-wrap: wrap; font-size: 12px; color: var(--secondary); margin: 20px 0 12px; }
.course-sheet .catalog-detail-meta > span + span { padding: 0; border: 0; }
.course-sheet .catalog-instructors { margin: 0 0 18px; font-size: 12px; color: var(--secondary); line-height: 1.8; }
.course-sheet .course-overview-source { display: flex; gap: 8px 14px; flex-wrap: wrap; font-size: 11px; color: var(--secondary); }
.course-sheet .course-overview-source a { color: var(--secondary); }
.course-image-credit { font-size: 11px; color: var(--secondary); margin-top: 16px; }
.course-image-credit summary { cursor: pointer; }
.course-image-credit details > span { display: block; margin-top: 10px; }
.course-image-credit .cover-attribution { display: flex; gap: 16px; }
.course-image-credit a { color: var(--secondary); }
.course-sheet .catalog-source-proof { display: flex; gap: 10px; flex-wrap: wrap; justify-content: space-between; font-size: 11px; color: var(--secondary); margin: 24px 0 0; padding-top: 16px; border-top: 1px solid #eeeff2; }
.course-sheet .catalog-source-proof a { color: var(--secondary); font-size: 11px; }
.course-sheet .course-source-access { font-size: 12px; margin-top: 16px; background: none; padding: 0; color: var(--secondary); }
.course-sheet.catalog-tree-dialog .course-detail-header { padding-top: 20px; padding-bottom: 24px; }
.course-sheet.catalog-tree-dialog .catalog-detail-title { font-size: 23px; }
.course-sheet.catalog-tree-dialog .catalog-detail-cover { display: none; }
@media (max-width: 600px) {
  .catalog-dialog.course-sheet.modal { width: calc(100vw - 20px); height: calc(100dvh - 28px); border-radius: 12px; }
  .course-sheet .course-dialog-bar { padding: 10px 18px; }
  .course-sheet .course-detail-header, .course-sheet.catalog-tree-dialog .course-detail-header { padding: 24px 22px; gap: 16px; }
  .course-sheet .catalog-detail-title, .course-sheet.catalog-tree-dialog .catalog-detail-title { font-size: 21px; }
  .course-sheet .catalog-detail-cover { width: 58px; flex-basis: 58px; }
  .course-sheet .catalog-detail-cover > div { height: 58px; }
  .course-sheet .catalog-detail-translation { font-size: 13px; }
  .course-detail-tabs { margin: 0 22px; gap: 3px; max-width: calc(100% - 44px); }
  .course-sheet .course-detail-tabs > button { padding: 7px 12px; font-size: 12px; white-space: nowrap; }
  .course-detail-body { padding: 0 22px 26px; }
  .course-sheet .catalog-description { font-size: 14px; margin-top: 26px; line-height: 1.95; }
  .course-intro-facts { gap: 10px; padding: 12px; margin: 22px 0; }
  .course-intro-facts dd { font-size: 12px; }
  .course-primary-actions { gap: 18px; margin-bottom: 32px; }
  .course-primary-actions > a { font-size: 12px; }
  .course-primary-actions > .resource-primary { padding: 10px 14px; }
  .course-sheet .course-disclosure > summary { font-size: 13px; padding: 19px 0; }
  .course-disclosure > summary small { font-size: 10px; }
  .course-sheet .course-syllabus ul { grid-template-columns: minmax(0, 1fr); }
}

.prerequisite-view { padding-top: 22px; }
.prereq-toolbar { display: flex; align-items: center; gap: 18px; margin: 0 0 20px; }
.prereq-direction { display: flex; gap: 0; border: 0; padding: 3px; margin: 0; background: #f3f4f6; border-radius: 7px; }
.prereq-direction button { border: 0; padding: 5px 17px; border-radius: 5px; background: none; color: var(--secondary); font-size: 12px; cursor: pointer; }
.prereq-direction button[aria-pressed=true] { background: #fff; color: var(--ink); box-shadow: 0 1px 4px #00000014; }
.prereq-history { display: flex; padding: 0; gap: 0; }
.prereq-history .text-button { color: var(--secondary); font-size: 12px; }
.prereq-switch { position: relative; margin-left: auto; font-size: 12px; color: var(--secondary); }
.prereq-switch > summary { cursor: pointer; list-style: none; padding: 5px 0 5px 10px; }
.prereq-switch > summary::-webkit-details-marker { display: none; }
.prereq-switch > label { display: grid; gap: 10px; position: absolute; width: 330px; max-width: calc(100vw - 90px); right: 0; top: 34px; z-index: 5; padding: 17px; background: #fff; border: 1px solid #e9ecf1; border-radius: 8px; box-shadow: 0 8px 28px #2d416214; }
.prereq-picker { width: 100%; min-width: 0; min-height: 36px; font-size: 12px; border: 1px solid #e4e8ef; border-radius: 5px; padding: 7px; background: white; color: var(--secondary); }
.prereq-tree { position: relative; display: block; margin: 0; padding: 0; background: #f6f7f9; border: 1px solid var(--separator); border-radius: 10px; overflow: hidden; }
.prereq-graph-viewport { position: relative; height: 416px; overflow: hidden; cursor: grab; touch-action: none; }
.prereq-graph-viewport.is-dragging, .prereq-graph-viewport.is-dragging * { cursor: grabbing; }
.prereq-graph-stage { position: absolute; left: 0; top: 0; transform-origin: 0 0; user-select: none; }
.prereq-edges { position: absolute; inset: 0; overflow: visible; pointer-events: none; }
.graph-edge { fill: none; stroke: #bdc7d5; stroke-width: 1.5; }
.graph-edge.kind-recommended { stroke: #c6bfaf; stroke-dasharray: 5 5; }
.graph-edge.kind-corequisite { stroke: #c9c1d5; stroke-dasharray: 3 4; }
.prereq-tree .graph-node { position: absolute; box-sizing: border-box; margin: 0; text-align: left; overflow-wrap: anywhere; }
.prereq-tree .graph-course { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 12px 18px; border: 1px solid #e3e7ed; border-radius: 8px; color: var(--ink); background: #fff; box-shadow: 0 2px 6px #18233406; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.prereq-tree .graph-course:hover { border-color: #91afd4; background: #fff; box-shadow: 0 4px 16px #3349640b; }
.prereq-tree .graph-course > .prereq-code { display: block; color: var(--secondary); font-size: 11px; line-height: 1.4; letter-spacing: 0; flex-shrink: 0; }
.prereq-tree .graph-course > strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; color: var(--ink); font-size: 14px; line-height: 1.5; font-weight: 500; }
.prereq-tree .graph-target { background: var(--selection); border-color: #96b6e3; box-shadow: none; }
.prereq-tree .graph-target > .prereq-code { color: var(--secondary); }
.prereq-tree .graph-target > strong { color: #194f96; font-weight: 600; }
.prereq-tree .graph-topic { border-style: dashed; background: #fafbfc; cursor: default; box-shadow: none; }
.prereq-tree .graph-condition { display: flex; align-items: center; justify-content: center; gap: 5px; padding: 0 4px; border: 0; border-radius: 20px; background: #fafbfc; cursor: pointer; color: var(--secondary); box-shadow: none; }
.graph-condition .prereq-group-heading, .graph-condition small { display: inline; margin: 0; font-size: 11px; line-height: 1.6; color: inherit; font-weight: 400; }
.prereq-tree .graph-condition.kind-recommended { color: var(--secondary); }
.prereq-tree .graph-condition.kind-corequisite { color: var(--secondary); }
.prereq-tree .graph-condition:hover, .prereq-tree .graph-condition.selected { color: var(--secondary); background: #f0f3f7; }
.graph-controls { display: flex; align-items: center; gap: 2px; position: absolute; bottom: 12px; right: 12px; padding: 3px; border: 1px solid #eef0f4; border-radius: 7px; background: #ffffffed; }
.graph-controls button { display: grid; place-items: center; width: 29px; height: 26px; padding: 0; border: 0; border-radius: 4px; background: none; color: var(--secondary); font-size: 18px; cursor: pointer; }
.graph-controls button:hover { color: var(--secondary); background: #f2f5f8; }
.graph-controls .icon { width: 13px; height: 13px; }
.graph-controls button:last-child { margin-left: 4px; }
.prereq-bottom { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; margin-top: 20px; gap: 14px; }
.prereq-bottom > .text-button { font-size: 11px; color: var(--secondary); padding: 0; white-space: nowrap; line-height: 1.8; }
.prereq-bottom > .text-button .icon { width: 12px; height: 12px; }
.prereq-readable { min-width: 0; margin: 0; }
.prereq-readable[open] { grid-column: 1 / -1; }
.prereq-readable > summary { font-size: 11px; color: var(--secondary); cursor: pointer; line-height: 1.8; }
.prereq-summary { display: block; margin: 18px 0; color: var(--secondary); font-size: 12px; line-height: 1.9; }
.prereq-summary p { margin: 0 0 10px; }
.prereq-source { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--secondary); line-height: 1.8; text-decoration: none; }
.prereq-source:hover { text-decoration: underline; }
.prereq-source .icon { width: 11px; height: 11px; }
.prereq-readable .prereq-group { margin: 24px 0; }
.prereq-readable .prereq-group-heading { display: flex; gap: 10px; font-size: 12px; margin: 0 0 12px; }
.prereq-readable .prereq-group-heading > span { padding: 0; background: none; color: var(--secondary); font-size: 12px; }
.prereq-readable .prereq-group-heading > small { color: var(--secondary); font-size: 11px; }
.prereq-readable .prereq-branches { list-style: none; border-left: 1px solid #e6ebf2; padding: 0 0 0 18px; margin: 0 0 0 6px; }
.prereq-readable .prereq-branches > li { margin: 16px 0; }
.prereq-readable .prereq-course-link { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; border: 0; background: none; padding: 0; color: var(--secondary); cursor: pointer; text-align: left; }
.prereq-readable .prereq-course-link strong { font-size: 13px; font-weight: 400; }
.prereq-readable .prereq-course-link .icon { display: none; }
.prereq-readable .prereq-code, .prereq-readable .prereq-course-link small { color: var(--secondary); font-size: 12px; }
.prereq-readable .prereq-branch { margin-top: 12px; }
.prereq-readable .prereq-branch > summary { font-size: 12px; color: var(--secondary); cursor: pointer; }
.prereq-readable .prereq-topic { background: none; border: 0; padding: 0; font-size: 12px; color: var(--secondary); line-height: 1.9; }
.prereq-readable .prereq-topic strong { font-size: 13px; font-weight: 400; }
.graph-evidence { position: relative; padding: 20px 24px; margin-top: 14px; background: #fafbfc; border-radius: 8px; color: var(--secondary); font-size: 12px; line-height: 1.9; }
.graph-evidence[hidden] { display: none; }
.graph-evidence > .icon-button { position: absolute; top: 12px; right: 12px; width: 24px; height: 24px; background: none; color: var(--secondary); }
.graph-evidence > strong { font-size: 12px; color: var(--secondary); font-weight: 500; }
.graph-evidence p, .graph-evidence ul { margin: 10px 0; }
.graph-evidence ul { padding-left: 18px; }
.prereq-node-note { font-size: 12px; color: var(--secondary); line-height: 1.9; margin-top: 10px; }
.prereq-edition-note { padding: 0; border: 0; margin: 20px 0 0; color: var(--secondary); font-size: 11px; line-height: 1.9; }
.prereq-empty { border: 0; background: none; padding: 45px 0; color: var(--secondary); font-size: 13px; line-height: 1.9; }
.prereq-empty > strong { font-size: 14px; color: var(--secondary); font-weight: 400; }
.prereq-empty p { margin: 12px 0 20px; }
.prereq-empty a { display: inline-flex; align-items: center; gap: 6px; color: var(--secondary); font-size: 12px; }
.prereq-empty a .icon { width: 12px; height: 12px; }
.prereq-status { font-size: 13px; color: var(--secondary); }
.prerequisite-view .catalog-loading { min-height: 280px; }
@media (max-width: 600px) {
  .prereq-toolbar { flex-direction: row; align-items: center; gap: 12px; margin-bottom: 18px; }
  .prereq-direction button { padding: 5px 13px; font-size: 11px; }
  .prereq-history { width: auto; }
  .prereq-history .text-button, .prereq-switch { font-size: 11px; }
  .prereq-graph-viewport { height: 380px; }
  .prereq-tree .graph-course { padding: 11px 13px; border-radius: 8px; }
  .prereq-tree .graph-course > strong { font-size: 13px; }
  .prereq-tree .graph-course > .prereq-code { font-size: 10px; }
  .prereq-bottom { gap: 10px; }
  .prereq-bottom > .text-button, .prereq-readable > summary { font-size: 10px; }
}
.prereq-empty details { margin: 14px 0; text-align: left; font-size: 12px; }
.prereq-empty details summary { cursor: pointer; }
.prereq-empty details a { display: inline; overflow-wrap: anywhere; }

.catalog-format-control { flex-shrink: 0; }
.catalog-format-control select { width: 142px; min-height: 34px; padding: 6px 5px; color: #7b8492; border: 1px solid transparent; border-radius: 5px; background: white; font-size: 12px; cursor: pointer; }
.catalog-format-control select:hover { background: #f5f6f8; }
.catalog-format-control.active select { background: #f0f4fa; color: #58769e; }
#catalog-teaching-note { font-size: 10px; color: #929eaf; }
.catalog-result-label:has(#catalog-teaching-note:not([hidden])) { flex-wrap: wrap; gap: 6px 14px; }
.course-card .course-card-top:has(.course-format-label) { flex-wrap: wrap; }
.course-format-label { font-size: 10px; color: #8799ae; padding-left: 8px; border-left: 1px solid #e4e9f0; }
.course-teaching-details { margin: 22px 0; padding: 18px 0; border-top: 1px solid #eeeff2; border-bottom: 1px solid #eeeff2; }
.course-teaching-details h4 { font-size: 12px; font-weight: 400; color: #77889f; margin: 0 0 10px; }
.course-teaching-details p { margin-top: 8px; font-size: 12px; line-height: 1.9; color: #8a97a9; }
.course-teaching-details .course-teaching-formats { color: #6a819f; }
.course-teaching-details ul { list-style: none; padding: 0; margin: 14px 0 0; }
.course-teaching-details li { margin-top: 8px; font-size: 11px; line-height: 1.8; color: #94a4ba; }
.course-teaching-details a { display: inline; }
.course-teaching-details .icon { width: 11px; height: 11px; vertical-align: middle; }
@media (max-width: 680px) {
  .catalog-controls { flex-wrap: wrap; }
  .catalog-controls .catalog-search { flex-basis: 100%; }
  .catalog-format-control { margin-right: auto; }
  .catalog-format-control select { width: 138px; min-height: 32px; padding-left: 0; font-size: 11px; }
  .catalog-result-label:has(#catalog-teaching-note:not([hidden])) { align-items: flex-start; flex-direction: column; gap: 4px; }
  #catalog-teaching-note { max-width: 170px; font-size: 9px; line-height: 1.6; }
  .course-format-label { font-size: 9px; }
}

.catalog-recommend-entry { color: #62738c; font-size: 11px; white-space: nowrap; }
.catalog-recommend-entry[aria-pressed=true] { color: #627895; }
#course-recommendations { max-width: 820px; margin: 18px auto 0; }
#course-recommendations[hidden] { display: none; }
.rec-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 16px 0 26px; }
.rec-heading h3 { margin: 0; color: #3d4756; font-size: 18px; font-weight: 500; letter-spacing: -.3px; }
.rec-heading p { margin-top: 8px; color: #64748b; font-size: 12px; }
.rec-heading-actions { display: flex; gap: 20px; padding-top: 4px; }
.rec-heading-actions .text-button { color: #64748b; font-size: 12px; white-space: nowrap; }
.rec-settings { padding: 0 0 30px; }
.rec-form-intro { font-size: 13px; line-height: 1.9; color: #64748b; margin-bottom: 24px; }
.rec-fields { display: grid; grid-template-columns: minmax(0, 1fr) 140px 150px; gap: 18px; }
.rec-fields > label { display: grid; gap: 10px; font-size: 12px; color: #64748b; min-width: 0; }
.rec-fields input, .rec-fields select, .rec-known-label input { width: 100%; min-width: 0; min-height: 38px; background: #fff; border: 1px solid #e1e6ed; padding: 8px 10px; border-radius: 6px; color: #62738c; font-size: 13px; }
.rec-fields input::placeholder, .rec-known-label input::placeholder { color: #b2bac6; }
.rec-foundations { margin: 24px 0 20px; padding: 16px 0; border-top: 1px solid #edf0f4; border-bottom: 1px solid #edf0f4; color: #8a99af; font-size: 12px; }
.rec-foundations > summary { color: #64748b; cursor: pointer; }
.rec-foundations > p { font-size: 11px; color: #64748b; margin: 14px 0; }
.rec-known-list { list-style: none; padding: 0; margin: 14px 0; }
.rec-known-list:empty { display: none; }
.rec-known-list li { display: flex; align-items: center; gap: 12px; padding: 7px 0; color: #64748b; font-size: 12px; }
.rec-known-list li > span { flex: 1; min-width: 0; }
.rec-known-list button { display: grid; place-items: center; width: 25px; height: 25px; padding: 4px; color: #a9b4c3; }
.rec-known-list .icon { width: 13px; height: 13px; }
.rec-known-options { max-height: 240px; overflow: auto; background: #fafbfc; border-radius: 6px; margin-top: 8px; }
.rec-known-options:empty { display: none; }
.rec-known-options button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; text-align: left; color: #64748b; font-size: 12px; }
.rec-known-options button:hover { background: #f0f4fa; color: #728cad; }
.rec-known-options .icon { width: 13px; height: 13px; flex-shrink: 0; }
.rec-known-options p { padding: 12px; color: #9cA8b8; }
.rec-video-only { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #64748b; }
.rec-video-only input { width: 14px; height: 14px; padding: 0; margin: 0; flex: 0 0 auto; }
.rec-preference-note { margin-top: 16px; font-size: 11px; line-height: 1.9; color: #64748b; }
.rec-form-actions { display: flex; align-items: center; gap: 22px; margin-top: 24px; }
.rec-form-actions .text-button { font-size: 12px; color: #64748b; }
.rec-course { display: flex; gap: 22px; border-top: 1px solid #eaedf2; padding: 26px 0; }
.rec-number { flex: 0 0 22px; font-size: 12px; color: #b4becc; padding-top: 2px; font-variant-numeric: tabular-nums; }
.rec-course-content { min-width: 0; flex: 1; }
.rec-course-code { color: #64748b; font-size: 11px; margin: 0 0 7px; }
.rec-course-title { text-align: left; padding: 0; font-size: 18px; color: #4f617a; font-weight: 500; line-height: 1.5; }
.rec-course-title:hover { color: #526f98; }
.rec-reason { margin-top: 10px; font-size: 12px; line-height: 1.8; color: #64748b; }
.rec-readiness { display: inline; margin: 8px 0 0; padding: 0; font-size: 11px; line-height: 1.9; text-align: left; color: #64748b; }
.rec-readiness.status-ready { color: #4e7389; }
.rec-readiness.status-unconfirmed { color: #806d52; }
.rec-readiness .icon { display: inline; vertical-align: middle; width: 11px; height: 11px; margin-left: 3px; }
.rec-readiness:hover { color: #7c93b2; }
.rec-concurrent { display: block; font-size: 10px; margin-top: 5px; color: #aaa0bb; }
.rec-feedback { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 16px; }
.rec-feedback button { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; padding: 0; color: #64748b; }
.rec-feedback button:hover { color: #728bad; }
.rec-feedback .icon { width: 12px; height: 12px; }
.rec-undo { margin: 10px 0 24px; color: #92a4bc; font-size: 12px; line-height: 1.9; }
.rec-undo .text-button { font-size: 12px; color: #738cAF; margin-left: 16px; }
.rec-history { margin-top: 20px; border-top: 1px solid #edf0f4; padding-top: 18px; }
.rec-history > summary { color: #64748b; font-size: 11px; cursor: pointer; }
.rec-history ul { list-style: none; margin: 16px 0 0; padding: 0; max-height: 280px; overflow: auto; }
.rec-history li { display: flex; align-items: center; gap: 20px; padding: 10px 0; color: #8a9bb4; font-size: 12px; }
.rec-history li > span { flex: 1; min-width: 0; }
.rec-history small { font-size: 10px; color: #b0b9c7; margin-right: 12px; }
.rec-history .text-button { color: #a2afc1; font-size: 11px; flex-shrink: 0; }
.rec-empty { padding: 36px 0; color: #9ba9bd; font-size: 13px; line-height: 1.9; }
.rec-empty > strong { color: #8396b0; font-weight: 400; }
.rec-empty p { margin: 12px 0 20px; }
.rec-empty .text-button { color: #869fbd; font-size: 12px; margin-right: 18px; }
.rec-loading { display: flex; align-items: center; gap: 10px; min-height: 240px; color: #a4b1c4; font-size: 13px; }
.rec-load-note, .rec-round-note { color: #ac9d88; font-size: 12px; line-height: 1.9; padding: 12px 0; }
.rec-load-note .text-button { color: #8ca1bd; font-size: 12px; margin-left: 12px; }
@media (max-width: 680px) {
  .catalog-results-heading > div:last-child { flex-wrap: wrap; justify-content: flex-end; }
  .catalog-result-label { min-width: 0; }
  .catalog-recommend-entry { font-size: 10px; }
  #course-recommendations { margin-top: 12px; }
  .rec-heading { padding: 16px 0 22px; gap: 12px; }
  .rec-heading h3 { font-size: 16px; }
  .rec-heading p { font-size: 11px; max-width: 170px; line-height: 1.8; }
  .rec-heading-actions { gap: 13px; }
  .rec-heading-actions .text-button { font-size: 10px; }
  .rec-fields { grid-template-columns: 1fr 1fr; gap: 18px 14px; }
  .rec-fields > label:first-child { grid-column: 1 / -1; }
  .rec-fields input, .rec-fields select { font-size: 12px; }
  .rec-course { gap: 14px; padding: 24px 0; }
  .rec-number { flex-basis: 18px; font-size: 11px; }
  .rec-course-title { font-size: 16px; }
  .rec-reason { font-size: 11px; }
  .rec-readiness { font-size: 10px; }
  .rec-feedback { gap: 20px; }
  .rec-feedback button { font-size: 10px; }
}

#my-learning[hidden], #learning-continue[hidden], .catalog-controls[hidden], .catalog-results[hidden] { display: none; }
#my-learning { max-width: 850px; margin: 12px auto 0; }
.learning-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 36px; }
.learning-heading h1 { color: #343d4b; font-size: 23px; font-weight: 500; letter-spacing: -.5px; margin: 0; }
.learning-heading p { color: #64748b; font-size: 12px; margin-top: 10px; }
.learning-profile { display: flex; align-items: center; gap: 16px; }
.learning-profile select { max-width: 150px; font-size: 12px; color: #52647e; background: transparent; border: 0; min-height: 32px; padding: 4px 24px 4px 0; }
.learning-profile .text-button { color: #64748b; font-size: 11px; white-space: nowrap; }
.learning-profile-form { padding: 0 0 22px; margin: -12px 0 16px; border-bottom: 1px solid #edf0f4; }
.learning-profile-form > p { color: #64748b; font-size: 12px; line-height: 1.8; margin-bottom: 18px; }
.learning-profile-form form { display: flex; align-items: flex-end; gap: 18px; margin-bottom: 14px; }
.learning-profile-form label { display: grid; gap: 8px; font-size: 11px; color: #64748b; flex: 1; max-width: 340px; }
.learning-profile-form input { width: 100%; min-width: 0; }
.learning-tabs { display: flex; align-items: center; gap: 26px; border-bottom: 1px solid #e9edf2; }
.learning-tabs button { display: inline-flex; align-items: center; gap: 8px; padding: 12px 0 14px; font-size: 12px; color: #64748b; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.learning-tabs button[aria-pressed=true] { color: #334864; border-bottom-color: #566b88; }
.learning-tabs small { font-size: 10px; color: #64748b; font-variant-numeric: tabular-nums; }
.learning-course { display: flex; align-items: center; gap: 26px; border-bottom: 1px solid #edf0f4; padding: 26px 0; }
.learning-course-copy { min-width: 0; flex: 1; }
.learning-course-copy > small { color: #64748b; font-size: 11px; display: block; margin-bottom: 8px; }
.learning-course-title { text-align: left; display: block; padding: 0; font-size: 17px; line-height: 1.6; color: #41536e; font-weight: 500; }
.learning-course-progress { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 12px; }
.learning-unit-count { color: #64748b; font-size: 11px; }
.learning-progress { appearance: none; border: 0; width: 110px; height: 3px; border-radius: 2px; overflow: hidden; background: #e9eef5; }
.learning-progress::-webkit-progress-bar { background: #e9eef5; }
.learning-progress::-webkit-progress-value { background: #7b96b7; border-radius: 2px; }
.learning-progress::-moz-progress-bar { background: #7b96b7; }
.learning-position-preview { color: #64748b; font-size: 12px; line-height: 1.8; margin-top: 10px; overflow-wrap: anywhere; }
.learning-row-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; flex-shrink: 0; }
.learning-row-actions .text-button { font-size: 12px; color: #526c91; }
.learning-row-actions .learning-record-link { font-size: 11px; color: #64748b; }
.learning-row-actions .icon { width: 12px; height: 12px; }
.learning-empty { padding: 65px 0 80px; }
.learning-empty h2 { font-size: 17px; font-weight: 400; color: #52647e; }
.learning-empty p { margin: 12px 0 22px; color: #64748b; font-size: 12px; line-height: 1.9; }
.learning-empty .text-button { font-size: 12px; color: #526c91; }
.learning-local-note { color: #64748b; font-size: 11px; line-height: 1.9; margin: 32px 0 20px; }
#learning-continue { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 0 0 20px; margin-bottom: 18px; border-bottom: 1px solid #edf0f4; }
#learning-continue > div { display: flex; align-items: center; gap: 16px; min-width: 0; }
#learning-continue span, #learning-continue small { color: #64748b; font-size: 11px; white-space: nowrap; }
#learning-continue > div > button { font-size: 12px; color: #52647e; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; padding: 0; }
#learning-continue > a, #learning-continue > .text-button { color: #526c91; font-size: 12px; white-space: nowrap; }
#learning-continue .icon { width: 12px; height: 12px; }
.course-learning { padding: 28px 0 8px; }
.course-learning-status { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 22px; }
.course-learning-status > label { display: flex; align-items: center; gap: 16px; color: #64748b; font-size: 12px; }
.course-learning-status select { min-height: 34px; font-size: 12px; color: #52647e; width: auto; }
.course-learning-status .learning-course-progress { margin-top: 0; }
.learning-resume-row { display: flex; align-items: baseline; gap: 16px; margin: 0 0 24px; }
.learning-resume-row > a { color: #526c91; font-size: 13px; white-space: nowrap; }
.learning-resume-row > span { min-width: 0; color: #64748b; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.learning-resume-row .icon { width: 12px; height: 12px; }
.learning-position-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin: 24px 0; }
.learning-position-form > label { display: grid; gap: 9px; flex: 1; min-width: 180px; color: #64748b; font-size: 12px; }
.learning-position-form input { width: 100%; min-width: 0; }
.learning-position-form > button { padding: 10px 0; font-size: 12px; color: #526c91; }
.learning-save-status { font-size: 11px; color: #526c91; width: 100%; }
.learning-save-status:empty { display: none; }
.learning-unit-details, .learning-add-unit { border-top: 1px solid #edf0f4; }
.learning-unit-details > summary, .learning-add-unit > summary { cursor: pointer; padding: 18px 0; font-size: 13px; color: #52647e; }
.learning-list-note { font-size: 11px; color: #64748b; line-height: 1.9; margin-bottom: 16px; }
.learning-unit-details > ul { list-style: none; padding: 0; margin: 0 0 20px; max-height: 360px; overflow-y: auto; scrollbar-width: thin; }
.learning-unit-details li { display: flex; align-items: flex-start; gap: 10px; padding: 10px 2px; }
.learning-unit-details li > label { display: flex; align-items: flex-start; gap: 10px; color: #52647e; font-size: 12px; line-height: 1.8; flex: 1; min-width: 0; }
.learning-unit-details input[type=checkbox] { width: 14px; height: 14px; margin: 4px 0 0; flex: 0 0 14px; padding: 0; }
.learning-unit-details li > label > span { overflow-wrap: anywhere; }
.learning-unit-details li small { display: inline; font-size: 10px; color: #64748b; margin-left: 10px; }
.learning-unit-link, .learning-unit-remove { width: 24px; min-height: 26px; flex: 0 0 24px; color: #64748b; display: grid; place-items: center; padding: 3px; }
.learning-unit-link .icon, .learning-unit-remove .icon { width: 13px; height: 13px; }
.learning-add-unit form { display: grid; gap: 14px; padding: 0 0 22px; }
.learning-add-unit label { display: grid; gap: 8px; color: #64748b; font-size: 12px; }
.learning-add-unit input { min-width: 0; width: 100%; }
.learning-add-unit button { justify-self: start; color: #526c91; font-size: 12px; }
.learning-knowledge { display: flex; gap: 10px; align-items: flex-start; padding-top: 22px; border-top: 1px solid #edf0f4; color: #52647e; font-size: 12px; line-height: 1.8; }
.learning-knowledge input { width: 14px; height: 14px; flex: 0 0 14px; padding: 0; margin: 3px 0 0; }
.learning-knowledge small { display: block; color: #64748b; font-size: 11px; margin-top: 5px; }
.learning-profile-form input, .learning-position-form input, .learning-add-unit input { font-size: 13px; min-height: 36px; border: 1px solid #dce3ec; border-radius: 6px; color: #52647e; background: #fff; padding: 8px 10px; }
@media (max-width: 680px) {
  .main-nav .nav-item { padding-left: 7px; padding-right: 7px; }
  .learning-heading { gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
  .learning-heading h1 { font-size: 21px; }
  .learning-profile { gap: 14px; }
  .learning-profile select { max-width: 140px; }
  .learning-tabs { gap: 22px; }
  .learning-tabs button { font-size: 12px; }
  .learning-course { align-items: flex-start; gap: 16px; padding: 23px 0; }
  .learning-course-title { font-size: 16px; }
  .learning-row-actions { margin-top: 26px; gap: 14px; }
  .learning-row-actions .text-button { font-size: 11px; }
  .learning-profile-form form { gap: 12px; }
  #learning-continue > div { gap: 10px; flex-wrap: wrap; }
  #learning-continue > div > button { flex-basis: calc(100% - 64px); }
  #learning-continue > div > small { padding-left: 54px; }
  .course-learning-status { align-items: flex-start; flex-direction: column; gap: 14px; }
  .learning-resume-row { flex-wrap: wrap; gap: 8px; }
  .learning-resume-row > span { flex-basis: 100%; }
  .learning-unit-details > ul { max-height: 320px; }
  .learning-position-form > label { min-width: 150px; }
}
@media (max-width: 360px) {
  .main-nav .nav-item { padding-left: 4px; padding-right: 4px; }
  .learning-tabs { gap: 16px; }
  .learning-course { flex-wrap: wrap; }
  .learning-row-actions { flex-direction: row; margin: 0; width: 100%; align-items: center; }
  .learning-profile-form form { flex-wrap: wrap; }
  .learning-profile-form label { flex-basis: 100%; }
  .course-detail-tabs { gap: 22px; }
  .course-sheet .course-detail-tabs > button { font-size: 12px; }
}

.account-entry { color: #4d607b; font-size: 12px; padding: 6px 3px; min-width: 30px; white-space: nowrap; }
.account-dialog.modal { width: min(420px, calc(100vw - 28px)); padding: 28px; border-radius: 12px; max-height: calc(100dvh - 32px); }
.account-dialog .modal-heading { margin-bottom: 22px; }
.account-dialog .modal-heading h2 { font-size: 21px; color: #334155; font-weight: 500; }
.account-description { font-size: 13px; line-height: 1.9; color: #64748b; margin: 8px 0 24px; }
#account-form { display: grid; gap: 18px; }
#account-form > label, .account-import > label { display: grid; gap: 8px; color: #52647e; font-size: 12px; }
#account-form input, .account-import select { width: 100%; min-width: 0; border: 1px solid #dce3ec; border-radius: 6px; background: #fff; padding: 9px 10px; min-height: 40px; font-size: 14px; color: #334155; }
#account-form > .button { width: 100%; margin-top: 4px; }
.auth-alternatives { display: flex; flex-wrap: wrap; gap: 14px 18px; margin-top: 22px; }
.auth-alternatives .text-button { font-size: 12px; color: #526c91; }
.auth-caption, .account-detail-note { font-size: 11px; line-height: 1.8; color: #64748b; margin-top: 18px; }
.auth-destination { font-size: 12px; color: #64748b; line-height: 1.8; overflow-wrap: anywhere; }
.auth-destination strong { display: block; color: #334155; font-weight: 500; }
#account-form [name="otp"] { font-size: 22px; letter-spacing: .3em; text-align: center; }
.account-settings { border-top: 1px solid #edf0f4; border-bottom: 1px solid #edf0f4; font-size: 12px; color: #52647e; line-height: 1.8; padding: 16px 0; }
.account-settings summary { cursor: pointer; }
.account-settings-content { padding-top: 20px; display: grid; gap: 22px; }
[data-account-form] { display: grid; gap: 16px; }
[data-account-form] > label { display: grid; gap: 8px; font-size: 12px; color: #52647e; }
[data-account-form] input { width: 100%; min-width: 0; border: 1px solid #dce3ec; border-radius: 6px; background: #fff; padding: 9px 10px; min-height: 40px; font-size: 14px; color: #334155; }
[data-account-form] > .text-button { justify-self: start; }
.account-setting-actions { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.account-setting-actions .text-button, [data-account-form] .text-button, .auth-code-request .text-button { font-size: 12px; }
.account-device-list { display: grid; gap: 12px; list-style: none; padding: 0; color: #52647e; font-size: 12px; }
.account-device-list small { display: block; color: #64748b; margin-top: 4px; }
.account-delete { padding-top: 16px; border-top: 1px solid #edf0f4; }
.account-delete > summary { color: #a04242; }
.account-delete p { font-size: 11px; line-height: 1.9; color: #64748b; margin: 16px 0; }
.account-password-hint { margin-top: -12px; font-size: 11px; color: #64748b; }
.account-mode { font-size: 12px; color: #526c91; margin-top: 22px; }
.account-message { color: #a04242; font-size: 12px; line-height: 1.9; margin-top: 18px; overflow-wrap: anywhere; }
.account-message:empty { display: none; }
.account-help { color: #64748b; font-size: 11px; margin-top: 22px; display: block; }
.account-name { font-size: 18px; color: #334155; }
.account-email { font-size: 13px; color: #64748b; margin: 8px 0 18px; overflow-wrap: anywhere; }
.account-sync { display: flex; align-items: center; gap: 14px; font-size: 12px; color: #526c91; margin-bottom: 18px; }
.account-sync .text-button { color: #526c91; font-size: 12px; }
.account-signout { color: #52647e; font-size: 12px; margin-top: 24px; }
.account-service-error { font-size: 12px; color: #a04242; line-height: 1.9; }
.account-service-error .text-button { font-size: 12px; color: #526c91; margin-left: 10px; }
.account-import { font-size: 12px; line-height: 1.9; color: #64748b; padding: 16px 0; border-top: 1px solid #edf0f4; border-bottom: 1px solid #edf0f4; }
.account-import summary { cursor: pointer; color: #52647e; }
.account-import p { margin: 14px 0; }
.account-import > button { margin-top: 18px; }
.learning-account { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.learning-account .text-button, .learning-account > span { color: #52647e; font-size: 12px; }
.learning-account > span { color: #64748b; font-size: 11px; }
.learning-sync-retry[hidden] { display: none; }
.learning-empty > .button + .text-button { margin-left: 20px; }
@media (max-width: 680px) {
  .topbar-right [data-action="guide"] { display: none; }
  .account-entry { font-size: 11px; }
  .account-dialog.modal { padding: 24px; }
  .learning-account { gap: 10px; }
}

.catalog-browse { min-width: 0; }
.catalog-browse-tabs { display: flex; gap: 22px; overflow-x: auto; scrollbar-width: thin; border-bottom: 1px solid var(--separator,#e7ebef); margin-bottom: 16px; padding-top: 3px; }
.catalog-browse-tabs > button { position: relative; flex-shrink: 0; white-space: nowrap; padding: 0 1px 11px; color: var(--secondary,#697386); font-size: 12px; background: none; border: 0; }
.catalog-browse-tabs > button[aria-selected="true"] { color: var(--ink,#20252c); }
.catalog-browse-tabs > button[aria-selected="true"]::after { content: ''; position: absolute; height: 2px; left: 0; right: 0; bottom: -1px; background: var(--accent,#086ad8); border-radius: 2px; }
.catalog-browse .catalog-school-tabs { margin: 0; gap: 7px; }
.catalog-browse .catalog-school-tabs button { display: inline-flex; align-items: center; min-height: 31px; }
.catalog-browse .catalog-school-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2px 18px; max-height: 270px; overflow-y: auto; }
.catalog-browse .catalog-school-tabs[hidden], .catalog-category-list[hidden] { display: none; }
.catalog-browse .catalog-school-tabs .catalog-category { display: flex; min-width: 0; min-height: 48px; padding: 8px; border: 0; background: none; color: var(--secondary); }
.catalog-browse .catalog-school-tabs .catalog-category > span:first-child { min-width: 0; color: inherit; }
.catalog-browse .catalog-school-tabs .catalog-category:hover { background: #f0f2f6; }
.catalog-browse .catalog-school-tabs .catalog-category.active { background: var(--selection); color: var(--accent); }
.catalog-category:disabled { opacity: .4; cursor: default; }
#catalog-search-note { font-size: 11px; color: var(--secondary); }
.catalog-result-label:has(#catalog-search-note:not([hidden])) { flex-wrap: wrap; gap: 5px 14px; }
.catalog-secondary-filters { position: relative; }
.catalog-secondary-filters label > span { white-space: nowrap; flex-shrink: 0; }
.catalog-extra-filters > summary { cursor: pointer; color: var(--secondary); font-size: 11px; list-style: none; white-space: nowrap; padding: 7px 0; }
.catalog-extra-filters > summary::-webkit-details-marker { display: none; }
.catalog-extra-filters > summary::after { content: '⌄'; margin-left: 5px; }
.catalog-extra-body { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; padding: 18px; background: #fff; border: 1px solid var(--border); border-radius: 9px; box-shadow: 0 8px 24px #18233414; }
.catalog-extra-body label { min-width: 0; }
.catalog-extra-body select { min-width: 0; width: 100%; }
.catalog-extra-filters:not([open]) .catalog-extra-body { display: none; }
.catalog-area-tabs { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 16px; }
.catalog-area-tabs > button { display: inline-flex; gap: 8px; align-items: center; padding: 6px 9px; border: 0; border-radius: 4px; background: transparent; color: var(--secondary,#697386); font-size: 12px; }
.catalog-area-tabs > button[aria-pressed="true"] { color: var(--accent,#086ad8); background: var(--selection,#e8f1fe); }
.catalog-area-tabs > button > span { font-size: 10px; opacity: .7; }
.catalog-browse-search > label { display: flex; align-items: center; gap: 8px; width: min(100%,360px); padding: 7px 10px; border: 1px solid #dfe3e9; background: white; border-radius: 5px; margin-bottom: 12px; }
.catalog-browse-search > label > .icon { width: 14px; height: 14px; color: #919aaa; flex-shrink: 0; }
.catalog-browse-search > label:focus-within { border-color: #8aabd7; }
.catalog-browse-search input { min-width: 0; width: 100%; border: 0; padding: 0; border-radius: 0; box-shadow: none; background: none; font-size: 12px; outline: none; color: var(--ink,#20252c); }
.catalog-browse-search input::placeholder { color: #8a929f; }
.catalog-category-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2px 18px; max-height: 270px; overflow-y: auto; overscroll-behavior: contain; }
.catalog-category { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; min-height: 40px; text-align: left; padding: 8px; border: 0; border-radius: 5px; background: none; color: #4f5d70; }
.catalog-category:hover { background: #f0f2f6; }
.catalog-category[aria-pressed="true"] { background: var(--selection,#e8f1fe); color: var(--accent,#086ad8); }
.catalog-category > span:first-child { min-width: 0; }
.catalog-category strong { display: block; font-size: 12px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
.catalog-category small { display: block; color: #8b94a2; font-size: 10px; margin-top: 3px; }
.category-count { flex-shrink: 0; font-size: 11px; color: #929aa7; font-variant-numeric: tabular-nums; }
.catalog-category-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 12px 0 0; }
.catalog-category-footer > span { color: #8893a2; font-size: 11px; line-height: 1.7; }
.catalog-category-footer > .text-button { font-size: 11px; }
.catalog-category-empty { grid-column: 1/-1; color: #7c8797; font-size: 12px; padding: 15px 8px; line-height: 1.8; }
.catalog-browse + .catalog-secondary-filters { border-top: 1px solid var(--separator,#e7ebef); padding-top: 16px; }
.catalog-applied-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: -4px 0 18px; }
.catalog-applied-filters > button { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 7px; font-size: 11px; color: #5a6d87; border: 0; border-radius: 4px; background: #f1f4f8; line-height: 1.6; overflow-wrap: anywhere; }
.catalog-applied-filters > button:hover { background: #e8edf5; }
.catalog-applied-filters .icon { width: 11px; height: 11px; flex-shrink: 0; color: #8b96a6; }
.catalog-applied-filters > .browse-clear { color: #838d9c; background: none; }
.learning-mode .catalog-applied-filters { display: none; }
button.course-school, .course-detail-code > button { font-family: inherit; color: inherit; padding: 0; border: 0; background: none; }
.course-detail-code > button { font: inherit; }
button.course-school:hover, .course-detail-code > button:hover { color: var(--accent,#086ad8); text-decoration: underline; text-underline-offset: 3px; }
.course-browse-links { display: flex; flex-wrap: wrap; gap: 5px 16px; align-items: center; margin-top: 13px; }
.course-browse-links > button, .catalog-instructors > button { padding: 0; font-size: 12px; font-weight: 400; line-height: 1.7; color: #6d7f96; background: none; border: 0; text-align: left; }
.course-browse-links > button:hover, .catalog-instructors > button:hover { color: var(--accent,#086ad8); text-decoration: underline; text-underline-offset: 3px; }
.course-browse-links > span { font-size: 11px; color: #939cab; }
.catalog-instructors > button { font-size: inherit; }
@media(max-width:680px) {
  .catalog-extra-body { grid-template-columns: 1fr; gap: 12px; }
  .catalog-browse .catalog-school-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px 6px; }
  .catalog-result-label:has(#catalog-search-note:not([hidden])) { flex-direction: column; align-items: flex-start; }
  .catalog-category-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px 6px; max-height: 250px; }
  .catalog-category { padding: 7px 5px; gap: 6px; }
  .catalog-category strong { font-size: 11px; }
  .catalog-browse-tabs { gap: 25px; }
  .catalog-category-footer { align-items: flex-start; }
  .catalog-category-footer > span { max-width: 72%; font-size: 10px; }
  .catalog-category-footer > button { flex-shrink: 0; }
  .catalog-area-tabs { gap: 3px; }
  .catalog-area-tabs > button { font-size: 11px; padding: 5px 6px; }
  .catalog-applied-filters { margin-top: 0; }
  .course-browse-links { gap: 5px 12px; }
  .course-browse-links > button { font-size: 11px; }
}

.catalog-request-entries, .catalog-empty-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; }
.catalog-request-entries { gap: 18px; }
.catalog-request-entries .text-button { font-size: 11px; }
#catalog-request-hint { display: flex; align-items: center; gap: 8px; color: var(--secondary); font-size: 12px; padding: 0 0 14px; }
#catalog-request-hint[hidden] { display: none; }
#catalog-request-hint .text-button { font-size: inherit; }
.course-request-dialog.modal { width: min(560px, calc(100vw - 28px)); padding: 26px 28px; max-height: calc(100dvh - 32px); border-radius: 12px; color: var(--ink); }
.course-request-dialog .modal-heading { margin-bottom: 18px; }
.course-request-dialog .modal-heading h2 { font-size: 20px; font-weight: 550; }
.request-tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--separator); margin-bottom: 20px; }
.request-tabs button { border: 0; border-bottom: 2px solid transparent; background: transparent; padding: 0 0 10px; color: var(--secondary); font-size: 12px; }
.request-tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.request-description { color: var(--secondary); font-size: 12px; line-height: 1.8; margin: 0 0 22px; }
.course-request-dialog fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 20px; }
.course-request-dialog fieldset label { display: block; min-width: 0; font-size: 12px; color: var(--secondary); }
.course-request-dialog label > span { color: var(--tertiary); font-size: 11px; margin-left: 4px; }
.course-request-dialog input, .course-request-dialog textarea, .course-request-dialog select { display: block; width: 100%; min-width: 0; max-width: 100%; margin-top: 8px; background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 9px 10px; color: var(--ink); font-size: 13px; }
.course-request-dialog textarea { resize: vertical; line-height: 1.7; min-height: 82px; }
.course-request-dialog input { min-height: 40px; }
.request-more summary { color: var(--secondary); font-size: 12px; cursor: pointer; }
.request-extra-fields { display: grid; gap: 18px; margin-top: 20px; }
.request-field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.request-extra-fields small, .request-submit > span, .request-detail-note { font-size: 11px; color: var(--tertiary); line-height: 1.8; }
.request-submit { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding-top: 4px; }
.request-submit .button { padding: 8px 17px; font-size: 12px; }
.request-similar { border-left: 2px solid var(--separator); padding-left: 12px; margin-top: -6px; }
.request-similar[hidden] { display: none; }
.request-similar > p, .request-existing > p { font-size: 11px; color: var(--secondary); margin: 0 0 6px; }
.request-similar > button { display: flex; align-items: center; justify-content: space-between; width: 100%; text-align: left; gap: 8px; padding: 6px 0; border: 0; background: transparent; color: var(--accent); font-size: 12px; }
.request-similar > button span { overflow-wrap: anywhere; }
.request-similar .icon, .request-existing .icon { width: 13px; height: 13px; flex-shrink: 0; }
.request-existing { border-top: 1px solid var(--separator); margin-top: 22px; padding-top: 16px; }
.request-existing .text-button { white-space: normal; text-align: left; font-size: 12px; }
.request-message { color: var(--secondary); font-size: 12px; line-height: 1.8; margin: 0 0 18px; overflow-wrap: anywhere; }
.request-message.is-error { color: #a04242; }
.request-empty, .request-loading { padding: 24px 0; font-size: 12px; color: var(--secondary); }
.request-empty p { margin: 0 0 16px; }
.request-list-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 8px; color: var(--tertiary); font-size: 11px; }
.request-list-toolbar > div { display: flex; flex-wrap: wrap; gap: 18px; }
.request-list-toolbar .text-button, .request-row .text-button { font-size: 12px; }
.request-list-toolbar select { width: auto; margin-top: 0; font-size: 12px; }
.request-row { padding: 18px 0; border-bottom: 1px solid var(--separator); display: flex; justify-content: space-between; gap: 16px; }
.request-row:last-child { border-bottom: 0; }
.request-row > div:first-child { min-width: 0; }
.request-row strong { font-size: 13px; font-weight: 500; overflow-wrap: anywhere; }
.request-row small { display: block; margin-top: 6px; color: var(--tertiary); font-size: 11px; overflow-wrap: anywhere; }
.request-row p, .request-source-link { font-size: 12px; line-height: 1.8; color: var(--secondary); margin: 10px 0 0; overflow-wrap: anywhere; }
.request-source-link { display: inline-flex; gap: 5px; color: var(--accent); text-decoration: none; }
.request-row .icon, .request-review-detail .icon { width: 12px; height: 12px; }
.request-row-actions { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; gap: 10px; }
.request-status { color: var(--secondary); font-size: 11px; white-space: nowrap; }
.request-status.status-added { color: #267044; }
.request-status.status-reviewing { color: var(--accent); }
.request-review-detail { padding: 20px 0; margin-bottom: 20px; border-bottom: 1px solid var(--separator); overflow-wrap: anywhere; }
.request-review-detail h3 { font-size: 16px; font-weight: 500; margin: 0 0 8px; }
.request-review-detail p, .request-review-detail a { font-size: 12px; line-height: 1.8; }
.request-user-note { white-space: pre-wrap; color: var(--secondary); }
@media (max-width: 580px) {
  .course-request-dialog.modal { padding: 22px 20px; }
  .request-tabs { gap: 20px; }
  .request-field-pair { grid-template-columns: 1fr; }
  .request-submit { align-items: flex-start; flex-direction: column; }
  .request-row { gap: 10px; }
  .catalog-request-entries { width: 100%; justify-content: flex-start; }
}

.feedback-dialog.modal { width: min(520px,calc(100vw - 28px)); padding: 28px; border-radius: 14px; }
.feedback-dialog .modal-heading { margin-bottom: 20px; }
.feedback-dialog h2 { font-size: 21px; }
.feedback-tabs { display: flex; width: fit-content; gap: 3px; padding: 3px; border-radius: 7px; background: #eff0f3; margin-bottom: 22px; }
.feedback-tabs button { padding: 6px 16px; font-size: 12px; color: var(--secondary); border-radius: 5px; }
.feedback-tabs [aria-selected=true] { background: #fff; color: var(--ink); box-shadow: 0 1px 3px #0001; }
.feedback-dialog [hidden] { display: none; }
.feedback-intro { font-size: 13px; color: var(--secondary); line-height: 1.8; margin-bottom: 20px; }
#feedback-form { display: grid; gap: 18px; }
#feedback-form label { display: grid; gap: 7px; font-size: 12px; color: var(--secondary); }
#feedback-form input, #feedback-form select, #feedback-form textarea { min-width: 0; width: 100%; padding: 9px 11px; border: 1px solid var(--border); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; }
#feedback-form textarea { resize: vertical; min-height: 110px; }
#feedback-form small, .feedback-item small { font-size: 11px; line-height: 1.7; color: var(--secondary); }
#feedback-form .button { justify-self: start; }
#feedback-message { color: var(--secondary); font-size: 12px; line-height: 1.8; margin-top: 16px; }
#feedback-message:empty { display: none; }
.feedback-item { border-bottom: 1px solid var(--separator); padding: 16px 0; }
.feedback-item header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.feedback-item strong { font-size: 13px; font-weight: 500; overflow-wrap: anywhere; }
.feedback-item header span { font-size: 11px; white-space: nowrap; color: var(--secondary); }
.feedback-item p { font-size: 12px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--secondary); margin: 10px 0; }
.feedback-item .feedback-reply { color: #315d8e; }
#feedback-mine > .text-button { margin-top: 18px; font-size: 12px; }
.feedback-review-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 8px; }
.feedback-review-toolbar label, .feedback-review-form label { display: grid; gap: 7px; font-size: 12px; color: var(--secondary); }
.feedback-review-toolbar select, .feedback-review-form select, .feedback-review-form textarea { min-width: 0; width: 100%; padding: 9px 11px; border: 1px solid var(--border); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; }
.feedback-review-toolbar .text-button { font-size: 12px; }
.feedback-review-item summary { display: flex; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.feedback-review-item summary::-webkit-details-marker { display: none; }
.feedback-review-item summary span { font-size: 11px; color: var(--secondary); white-space: nowrap; }
.feedback-review-form { display: grid; gap: 14px; margin: 18px 0 2px; }
.feedback-review-form textarea { resize: vertical; }
.feedback-review-form button { justify-self: start; }
@media (max-width: 420px) { .feedback-dialog.modal { padding: 22px 18px; } .feedback-tabs button { padding-inline: 10px; } }

.storage-dialog.modal,.publication-dialog.modal { width:min(600px,calc(100vw - 28px));padding:28px; }
.storage-summary { font-size:20px;letter-spacing:-.03em;margin:24px 0 10px; }
.storage-hint,.storage-empty,.storage-message,.publication-hint { color:var(--secondary);font-size:12px;line-height:1.8; }
.storage-dialog section { margin:28px 0; }
.storage-dialog h3,.storage-dialog summary { font-size:13px;font-weight:500; }
.storage-dialog h3 span { color:var(--secondary);margin-left:6px; }
.storage-row { display:flex;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid var(--border); }
.storage-row > div { flex:1;min-width:0; }
.storage-row strong { display:block;font-size:13px;font-weight:500;overflow-wrap:anywhere; }
.storage-row small { display:block;font-size:11px;color:var(--secondary);margin-top:6px; }
.storage-row button { font-size:12px;white-space:nowrap; }
.storage-dialog details>summary { cursor:pointer; }
.storage-message:empty { display:none; }
.project-cloud-state { display:block;font-size:11px;color:var(--secondary);line-height:1.6;white-space:normal; }
.history-list { min-width:0;grid-template-columns:minmax(0,1fr); }
.history-card { min-width:0; }
.history-card>button>span { overflow:hidden; }
.history-cloud-action { font-size:11px;white-space:nowrap;margin:0 8px; }
.publication-item { padding:16px 0;border-bottom:1px solid var(--border);font-size:12px; }
.publication-item summary { cursor:pointer;font-size:13px;overflow-wrap:anywhere; }
.publication-item form { display:grid;gap:14px;margin-top:18px; }
.publication-item label { display:grid;gap:6px;color:var(--secondary); }
.publication-item input,.publication-item textarea { width:100%;min-width:0;padding:9px 11px;border:1px solid var(--border);border-radius:7px;font:inherit; }
.publication-item label.publication-confirm { display:flex;align-items:start;gap:8px;line-height:1.7; }
.publication-confirm input { width:auto;margin-top:3px; }
.publication-actions { display:flex;gap:20px;align-items:center; }
.publication-item small { color:var(--secondary);display:block;margin:9px 0; }
.publication-preview-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0; }
.publication-preview-grid figure { margin:0;min-width:0; }
.publication-preview-grid img { width:100%;aspect-ratio:16/9;object-fit:contain;border:1px solid var(--border);border-radius:5px;background:#f6f7f9; }
.publication-preview-grid figcaption { margin-top:4px;font-size:11px;color:var(--secondary); }
.catalog-review-dialog.modal { width:min(820px,calc(100vw - 28px));max-height:88dvh;padding:28px;overflow:auto; }
.review-intro,.review-message { color:var(--secondary);font-size:12px;line-height:1.8;margin:16px 0; }
.review-message:empty { display:none; }
.review-summary { display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;font-size:12px;margin:20px 0; }
.review-metric { border:0;background:transparent;color:var(--secondary);font:inherit;padding:5px 0;cursor:pointer; }
.review-metric b { font-weight:500;color:var(--ink);margin-left:4px; }
.review-metric.active { color:var(--ink);text-decoration:underline;text-underline-offset:5px; }
.review-filters { display:grid;grid-template-columns:minmax(170px,1fr) repeat(3,minmax(0,auto));gap:8px;margin:20px 0; }
.catalog-review-dialog input:not([type=checkbox]),.catalog-review-dialog select,.catalog-review-dialog textarea { width:100%;min-width:0;border:1px solid var(--border);background:var(--surface,#fff);border-radius:7px;font:inherit;font-size:12px;color:inherit;padding:9px 11px; }
.catalog-review-dialog textarea { resize:vertical;line-height:1.7; }
.review-course { display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;color:inherit;width:100%;padding:18px 0;cursor:pointer; }
.review-course>span:first-child { min-width:0; }
.review-course strong { display:block;font-size:14px;font-weight:500;line-height:1.6;margin:5px 0;overflow-wrap:anywhere; }
.review-course small,.review-course-gaps { color:var(--secondary);font-size:11px;line-height:1.7; }
.review-course:hover strong { text-decoration:underline;text-underline-offset:4px; }
.review-pagination { display:flex;align-items:center;gap:20px;justify-content:flex-end;margin-top:20px; }
.review-pagination small { margin-right:auto;color:var(--secondary);font-size:12px; }
.review-editor-heading { margin:24px 0; }
.review-editor-heading h2 { font-size:22px;font-weight:500;line-height:1.5;margin:10px 0;overflow-wrap:anywhere; }
.review-editor-heading small,.review-editor-heading a { font-size:12px;color:var(--secondary);overflow-wrap:anywhere; }
.review-alert { color:#845621;background:#f9f4e9;border-radius:8px;padding:12px;font-size:12px;line-height:1.8; }
.review-field { border-top:1px solid var(--border);padding:18px 0; }
.review-field>summary { display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:14px;font-weight:500; }
.review-field>summary small { font-size:11px;font-weight:400;color:var(--secondary); }
.review-field label { display:grid;gap:7px;font-size:12px;color:var(--secondary); }
.review-field fieldset { border:0;padding:18px 0 0;margin:0;min-width:0;display:grid;gap:16px; }
.review-field fieldset[hidden] { display:none; }
.review-field label.review-enable,.review-checkboxes label { display:flex;align-items:center;gap:8px; }
.review-enable { margin-top:20px; }
.review-checkboxes { display:flex;flex-wrap:wrap;gap:12px 22px; }
.review-source { display:grid;gap:14px;padding-top:18px;border-top:1px dashed var(--border);margin-top:8px; }
.review-inline { display:flex;gap:8px;align-items:center;flex-wrap:wrap; }
.review-inline select { flex:1; }
.review-group { border:1px solid var(--border);border-radius:8px;padding:12px;margin:8px 0; }
.review-node { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;margin:12px 0; }
.review-node select { grid-column:1/-1; }
.review-node [name=topic][hidden] { display:none; }
.review-resource { display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:8px;margin-bottom:16px; }
.review-resource [name=resourceURL] { grid-column:1/-1;grid-row:2; }
.review-resource [name=resourceAccess] { grid-column:1/3; }
.review-resource button { grid-column:3;grid-row:1; }
.review-editor-actions { display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:22px 0; }
.review-publish { border-top:1px solid var(--border);padding-top:22px;display:grid;gap:16px; }
.review-publish label { display:flex;gap:8px;align-items:start;font-size:12px;line-height:1.8;color:var(--secondary); }
.review-publish label input { margin-top:5px; }
.review-publish button { justify-self:start; }
.review-publish small { color:var(--secondary);font-size:11px;line-height:1.8; }
.material-results { padding:6px 0; }
.material-course-home { display:inline-flex;font-size:12px;color:var(--accent);margin:10px 0 2px; }
.course-dialog-bar .course-share-link { margin-left:auto;font-size:12px; }
.course-video-context { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 18px;margin-bottom:18px;border-bottom:1px solid var(--separator);font-size:12px; }
.course-video-context strong { font-size:12px;font-weight:500; }
.course-video-context span { display:block;font-size:11px;color:var(--secondary);margin-top:5px; }
.course-video-context a { flex-shrink:0;color:var(--accent);display:flex;align-items:center;gap:5px; }
.course-video-context .icon { width:13px;height:13px; }
.course-lecture-files { display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;font-size:12px;margin:0 0 20px; }
.course-lecture-files>span { color:var(--secondary); }
.course-lecture-files a { color:var(--accent);display:inline-flex;align-items:center;gap:5px; }
.course-lecture-files .icon { width:13px;height:13px; }
.link-import-progress:has(.material-results) { background:var(--surface,#fff);border:1px solid var(--border);padding:18px 20px;border-radius:10px;margin:4px 0 20px; }
.source-panel:has(.material-results) .url-panel { min-height:0;padding:20px 0 16px; }
.material-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px; }
.material-results section { margin:20px 0; }
.material-course,.material-note,.material-origin { font-size:11px;color:var(--secondary);line-height:1.8; }
.material-results h3 { font-size:14px;line-height:1.7;margin:4px 0;font-weight:500; }
.material-links { margin:12px 0; }
.material-links a { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:12px 0;border-bottom:1px solid var(--border); }
.material-links a>span:first-child { font-size:13px;overflow-wrap:anywhere; }
.material-links a>small { grid-column:1;grid-row:2;font-size:11px;color:var(--secondary); }
.material-links a>span:last-child { grid-column:2;grid-row:1/3;align-self:center;color:var(--secondary); }
.material-links details>summary { font-size:12px;color:var(--secondary);cursor:pointer;padding:12px 0; }
.material-next { border-top:1px solid var(--border);padding-top:16px;display:grid;gap:10px; }
@media(max-width:640px){
  .catalog-review-dialog.modal{padding:22px 18px}
  .review-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .review-filters input{grid-column:1/-1}
  .review-node{grid-template-columns:minmax(0,1fr) auto}
  .review-node [name=topic]{grid-column:1/-1}
  .review-resource{grid-template-columns:80px minmax(0,1fr) auto}
  .review-resource [name=resourceAccess]{grid-column:1/-1}
  .review-resource button{grid-row:3;grid-column:3}
}
@media(max-width:420px){
  .storage-dialog.modal,.publication-dialog.modal{padding:22px 18px}
  .history-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .history-card>button:first-child{grid-column:1/-1;width:100%;min-width:0}
  .history-card img{width:64px;flex-shrink:0}
  .history-cloud-action{margin:0;justify-self:start}
  .history-card>.icon-button{grid-column:2;justify-self:end}
}

.course-match-list { display: grid; gap: 12px; margin-top: 16px; }
.course-match-list article { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px; background: #fff; border: 1px solid #dce3ed; border-radius: 8px; }
.course-match-list h3 { font-size: 14px; line-height: 1.5; margin: 0 0 5px; }
.course-match-list p, .match-source-title { font-size: 12px; color: #596677; margin: 6px 0; }
.course-match-list a { font-size: 12px; color: #0969da; }
.course-match-list button { flex-shrink: 0; }
.stored-course-search { margin: 20px 0; }
.stored-course-search label { display: block; font-size: 12px; margin-bottom: 8px; }
.stored-course-search > div { display: flex; gap: 8px; }
.stored-course-search input { min-width: 0; flex: 1; border: 1px solid #cbd4e0; border-radius: 7px; padding: 9px 12px; background: #fff; }
@media (max-width: 600px) { .course-match-list article { align-items: flex-start; flex-direction: column; } }
/* Shared workspace shell and controls. Feature files own their internal layouts.
   Apple HIG: designing-for-macos, sidebars, toolbars and layout. */
:root {
  --ink: #242628;
  --secondary: #62676e;
  --tertiary: #70767e;
  --accent: #0969da;
  --accent-hover: #0757b5;
  --selection: #e8f0fc;
  --border: #dcdfe4;
  --separator: #eceef0;
  --nav-width: 196px;
}
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-weight: 600; }
button:focus-visible, a:focus-visible, summary:focus-visible, [tabindex]:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 3px;
}
.button, .button.small { min-height: 34px; border-radius: 7px; }
.button.primary { background: var(--accent); border-color: transparent; }
.button.secondary { border-color: var(--border); color: var(--ink); }
.icon-button { border-radius: 7px; }
main { padding: 32px 40px 40px; max-width: 1320px; }
.workspace-heading { margin-bottom: 28px; }
.workspace-heading h1, .catalog-page-title, .learning-heading h1 { font-size: 24px; line-height: 1.3; letter-spacing: -.6px; color: var(--ink); margin: 0; }
.workspace-heading p { font-size: 13px; color: var(--secondary); margin: 9px 0 0; }
.catalog-page-title { margin: 0 0 24px; }
.learning-mode > .catalog-page-title { display: none; }
.nav-item { display: flex; align-items: center; gap: 10px; }
.nav-item > .icon { width: 17px; height: 17px; flex-shrink: 0; stroke-width: 1.6; }
.nav-item.active::after { display: none; }
.app-legal { max-width: 1320px; margin: 0 auto; padding: 16px 40px 24px; gap: 18px; color: var(--secondary); }

@media (min-width: 901px) {
  .app-shell { margin-left: var(--nav-width); }
  .topbar {
    position: fixed; inset: 0 auto 0 0; width: var(--nav-width); height: 100dvh;
    display: flex; flex-direction: column; align-items: stretch; gap: 0;
    padding: 30px 16px 18px; background: #f5f5f7; border: 0; border-right: 1px solid #e7e7eb;
  }
  .brand { justify-content: flex-start; padding: 0 12px; font-size: 17px; gap: 9px; }
  .brand svg { width: 25px; height: 25px; }
  .main-nav { flex-direction: column; height: auto; gap: 5px; margin-top: 36px; }
  .main-nav .nav-item { width: 100%; height: 39px; padding: 0 12px; border-radius: 7px; font-size: 13px; color: #575c63; font-weight: 400; }
  .main-nav .nav-item:hover { background: #eaeaee; }
  .main-nav .nav-item.active { background: #e4e9f1; color: #1e4f8a; font-weight: 600; }
  .main-nav .nav-item.active > .icon { color: var(--accent); }
  .main-nav [data-action=workspace] { margin-top: 20px; }
  .topbar-right { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin: auto 0 0; padding: 16px 8px 0; border-top: 1px solid #e1e3e7; }
  .topbar-right .account-entry { flex-basis: 100%; text-align: left; margin-top: 4px; font-size: 12px; color: var(--secondary); min-height: 36px; }
  #toast { left: calc(50% + var(--nav-width) / 2); }
}

/* Search remains the first action; course rows carry only a compact preview. */
.catalog-controls { gap: 12px; margin-bottom: 20px; }
.catalog-search { height: 42px; border-radius: 8px; background: #f7f8fa; border-color: transparent; }
.catalog-search:focus-within { background: #fff; border-color: #6c9eda; box-shadow: 0 0 0 3px #0969da12; }
.catalog-search input { font-size: 13px; }
.search-hint { padding-left: 0; white-space: nowrap; }
.catalog-format-control select { font-size: 12px; color: var(--secondary); width: 132px; }
.catalog-favorites.button, .catalog-filter-toggle.button { color: var(--secondary); border-radius: 7px; }
.catalog-results-heading { padding-bottom: 12px; }
#catalog-result-count { color: var(--secondary); }
.catalog-results-heading select, .catalog-recommend-entry, .catalog-tree-entry { font-size: 12px; color: var(--secondary); }
.course-card { grid-template-columns: 72px minmax(0, 1fr) 145px 112px; gap: 20px; padding: 20px 0 !important; }
.course-card:hover { background: #f8f9fb; }
.course-cover { width: 72px; height: 54px; border-radius: 7px; }
.course-card .course-card-top { gap: 7px; margin-bottom: 6px; }
.course-card .course-school, .course-card .course-code { font-size: 11px; color: var(--secondary); }
.course-card .course-offering { display: none; }
.course-card .course-card-title { gap: 3px 10px; margin-bottom: 0; }
.course-card-title h3 { font-size: 15px; font-weight: 550; line-height: 1.45; color: var(--ink); }
.course-card-title > span { font-size: 12px; color: var(--secondary); }
.course-card-description { display: none; }
.course-card .course-video-status { font-size: 11px; color: var(--secondary); }
.course-video-links { gap: 5px; margin-top: 6px; }
.video-source-link, .video-source-link.platform-bilibili { font-size: 11px; color: #4d6482; }
.video-source-link small { font-size: 10px; color: var(--secondary); }
.video-source-link > .icon:first-child { display: none; }
.course-resource, .course-resource.has-materials { color: #405e83; font-size: 12px; }
.course-row-actions { gap: 4px; }
.course-tree-button, .course-bookmark, .course-detail-button { width: 28px; height: 28px; border-radius: 6px; color: var(--secondary); }
.catalog-filters { background: #f8f9fb; border-radius: 10px; padding: 20px; border: 1px solid var(--separator); }
.catalog-browse-tabs > button { font-size: 13px; }
.catalog-category strong { color: var(--ink); font-size: 13px; }
.catalog-category small, .category-count { color: var(--secondary); }
.catalog-category[aria-pressed=true] strong { color: var(--accent); }
.catalog-secondary-filters { gap: 16px; }
.catalog-secondary-filters select { min-height: 32px; border-radius: 6px; font-size: 12px; }

/* A focused import surface with familiar segmented controls. */
#extractor-view { max-width: 940px; padding-top: 52px; }
.source-tabs { display: inline-flex; width: fit-content; max-width: 100%; border: 0; border-radius: 8px; background: #eff0f3; gap: 3px; padding: 3px; height: 36px; margin-bottom: 22px; }
.source-tab { display: flex; justify-content: center; height: 30px; padding: 0 18px; margin: 0; border-radius: 6px; font-size: 12px; }
.source-tab.active { background: white; box-shadow: 0 1px 4px #00000014; }
.source-tab.active::after { display: none; }
.source-tab > .icon { display: none; }
.dropzone { min-height: 270px; border-radius: 12px; background: #fafbfc; border-color: #cdd3dc; }
.dropzone > .icon { width: 28px; height: 28px; color: #737d8b; margin-bottom: 20px; stroke-width: 1.4; }
.dropzone h3 { font-size: 15px; color: var(--ink); }
.upload-button { margin-top: 18px; min-height: 34px; border-radius: 7px; }
.file-support { font-size: 11px; color: var(--secondary); margin-top: 16px; }
.source-footer { padding-top: 16px; }
.demo-link, .demo-meta { font-size: 12px; color: var(--secondary); }
.extract-controls { margin-top: 28px; }
.extract-button { min-height: 36px; }
.url-panel { min-height: 240px; padding: 32px 0; }
.platform-link-form input { border-radius: 8px; border-color: var(--border); }
.settings-content { border-radius: 11px; border-color: var(--border); box-shadow: 0 10px 40px #1823341a; }
.modal { border-color: #dedfe4; box-shadow: 0 24px 100px #151d2d26, 0 2px 10px #151d2d0a; }
dialog::backdrop { background: #242a3738; backdrop-filter: blur(3px); }
.account-entry { color: var(--secondary); }
.account-dialog .modal-heading h2 { color: var(--ink); font-weight: 600; }

@media (min-width: 901px) and (max-width: 1180px) {
  :root { --nav-width: 174px; }
  main { padding: 28px; }
  .topbar { padding-inline: 12px; }
  .course-card { grid-template-columns: 56px minmax(0, 1fr) 130px 100px; gap: 14px; }
  .course-cover { width: 56px; height: 48px; }
  .search-hint { display: none; }
  .catalog-controls { gap: 5px; }
}
@media (max-width: 900px) {
  .topbar { height: 60px; padding: 0 24px; gap: 20px; background: #f8f8fa; }
  .main-nav { align-items: center; gap: 3px; }
  .main-nav .nav-item { height: 34px; padding: 0 12px; border-radius: 7px; }
  .main-nav .nav-item.active { background: #e8ecf2; color: #1e4f8a; }
  .nav-item > .icon { display: none; }
  .topbar-right { gap: 5px; }
  main { padding: 28px 24px; }
  .brand > span { display: block; }
  .course-card { grid-template-columns: 56px minmax(0, 1fr) 135px 100px; gap: 14px; }
  .course-cover { width: 56px; height: 48px; }
  .search-hint { display: none; }
  .catalog-controls { gap: 6px; }
  .catalog-page-title { font-size: 22px; }
  #extractor-view { padding-top: 32px; }
  .app-legal { padding-inline: 24px; }
}
@media (max-width: 680px) {
  .app-shell { padding-bottom: 76px; }
  .topbar { height: 54px; padding: 0 20px; }
  .brand { font-size: 16px; }
  .brand svg { width: 23px; height: 23px; }
  .main-nav { position: fixed; inset: auto 0 0; display: flex; height: calc(60px + env(safe-area-inset-bottom)); padding: 5px 10px calc(5px + env(safe-area-inset-bottom)); background: #fafafc; border-top: 1px solid #e5e7eb; gap: 4px; }
  .main-nav .nav-item { display: flex; flex: 1; flex-direction: column; justify-content: center; gap: 4px; height: 48px; padding: 4px 0; font-size: 10px; border-radius: 7px; }
  .main-nav .nav-item > .icon { display: block; width: 19px; height: 19px; }
  .main-nav .nav-item.active { background: #edf2fa; color: #165ab2; }
  .topbar-right .icon-button { width: 32px; height: 32px; }
  .topbar-right .account-entry { font-size: 12px; padding: 6px; }
  main { padding: 26px 20px; }
  .workspace-heading { margin-bottom: 24px; }
  .workspace-heading h1, .catalog-page-title { font-size: 22px; }
  .workspace-heading p { font-size: 12px; }
  .catalog-page-title { margin-bottom: 20px; }
  .catalog-controls { flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
  .catalog-search { height: 42px; }
  .catalog-search input { font-size: 13px; }
  .catalog-format-control select { font-size: 12px; padding-left: 0; }
  .catalog-favorites.button, .catalog-filter-toggle.button { width: 34px; height: 34px; padding: 0; font-size: 0; }
  .catalog-results-heading { gap: 8px; }
  .catalog-results-heading > div { gap: 12px; }
  .catalog-results-heading select { font-size: 11px; max-width: 96px; }
  .catalog-tree-entry, .catalog-recommend-entry { font-size: 11px; }
  .catalog-tree-entry .icon { display: none; }
  .course-card { grid-template-columns: 48px minmax(0, 1fr); gap: 0 14px; padding: 20px 0 !important; align-items: start; }
  .course-cover { width: 48px; height: 42px; }
  .course-card-title h3 { font-size: 14px; }
  .course-card .course-card-title { flex-direction: column; gap: 4px; }
  .course-video { padding-top: 12px; }
  .course-video-links { flex-direction: row; flex-wrap: wrap; gap: 6px 12px; }
  .course-card .course-card-bottom { margin-top: 12px; gap: 6px; }
  .course-resource, .course-resource.has-materials { font-size: 11px; }
  .course-tree-button, .course-bookmark, .course-detail-button { width: 30px; height: 32px; }
  .course-row-actions { gap: 0; }
  .catalog-filters { padding: 14px; }
  .catalog-category strong { font-size: 12px; }
  .catalog-secondary-filters { gap: 10px; }
  .catalog-secondary-filters label { flex: 0 1 auto; min-width: 0; }
  .catalog-secondary-filters select { width: auto; min-width: 0; }
  .catalog-secondary-filters { gap: 10px; }
  .catalog-secondary-filters > label { max-width: 128px; }
  .catalog-extra-body label { display: flex; justify-content: space-between; }
  .catalog-extra-body select { width: 75%; }
  .dropzone { min-height: 250px; }
  .url-panel { min-height: 210px; }
  .demo-link { font-size: 11px; }
  .demo-meta { font-size: 10px; }
  .settings-content { width: min(320px, calc(100vw - 40px)); }
  .app-legal { padding: 16px 20px; }
  #toast { bottom: calc(80px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-transparency: reduce) { dialog::backdrop { backdrop-filter: none; } }
@media (prefers-contrast: more) {
  :root { --secondary: #41474f; --tertiary: #4e535b; --separator: #c8cdd5; --border: #89919b; }
  .catalog-search { border-color: var(--border); }
}

.slide-thumbnail { background:#f1f2f5; }
.results-toolbar { flex-wrap:wrap; }
.slide-thumbnail .slide-image-button img { object-fit:contain; }
.frame-unavailable { position:absolute;inset:0;display:grid;place-items:center;padding:16px;color:var(--secondary);font-size:12px;background:#f4f5f7; }
.gallery-lesson { max-width:240px;min-width:0;font-size:12px;border:1px solid var(--border);border-radius:6px;padding:6px;background:#fff;color:var(--ink); }
.gallery-pagination { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:14px 0;border-top:1px solid var(--separator);font-size:12px;color:var(--secondary); }
.gallery-pagination>div { display:flex;gap:10px;align-items:center; }
.gallery-no-slides { color:var(--secondary);padding:24px 0;font-size:13px; }
.empty-extraction { padding:22px 0;max-width:580px; }
.empty-extraction h3 { font-size:14px;margin:0; }
.empty-extraction p { font-size:12px;line-height:1.8;color:var(--secondary);margin:10px 0 16px; }
.empty-extraction>div { display:flex;flex-wrap:wrap;gap:10px; }
.extraction-mode-hint,.classroom-result-note { font-size:11px;line-height:1.7;color:var(--secondary);margin:8px 0 14px; }
.extraction-modes.segmented { display:flex; }
.extraction-modes>label { flex:1;min-width:0; }
.extraction-modes>label>span { justify-content:center;white-space:nowrap; }
.reader-selection { display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap;color:var(--secondary);cursor:pointer; }
.reader-selection input { accent-color:var(--accent); }
.inspect-modal { width:min(1440px,calc(100vw - 32px));height:min(1000px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:16px 20px;overflow:hidden; }
.slide-reader { height:100%;min-height:0;display:flex;flex-direction:column;gap:12px;background:#fff;color:var(--ink); }
.slide-reader:fullscreen { padding:20px;box-sizing:border-box;width:100vw;height:100dvh; }
.reader-toolbar { display:flex;align-items:center;gap:18px;flex-shrink:0; }
.reader-page { display:flex;align-items:center;gap:7px;font-size:13px;white-space:nowrap; }
.reader-page input { width:60px;min-width:0;padding:5px;border:1px solid var(--border);border-radius:6px;font-size:13px;text-align:center;color:var(--ink);background:#fff; }
.reader-page input::-webkit-inner-spin-button { display:none; }
.reader-page>span { color:var(--secondary); }
.reader-zoom-controls { display:flex;align-items:center;gap:8px;margin-left:auto; }
.reader-zoom-controls .text-button { font-size:12px;padding:5px 6px;border-radius:5px; }
.reader-zoom-controls [aria-pressed=true] { background:var(--selection);color:var(--accent); }
.reader-zoom-controls output { font-size:11px;min-width:35px;text-align:center;color:var(--secondary); }
.reader-window { display:flex;gap:8px; }
.inspect-modal .inspect-image { flex:1;min-height:80px;max-height:none;width:100%;position:relative;display:flex;align-items:flex-start;justify-content:flex-start;overflow:auto;background:#f0f1f4;border:1px solid #e8e9ec;border-radius:8px;touch-action:pan-x pan-y; }
.inspect-image .inspect-frame { flex:none;margin:auto; }
.inspect-image .inspect-frame[hidden] { display:none; }
.inspect-modal .inspect-image img { display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:0;user-select:none; }
.inspect-image.is-zoomed { cursor:grab;touch-action:none; }
.inspect-image.dragging { cursor:grabbing; }
.reader-image-error { text-align:center;margin:auto;padding:24px;font-size:13px;color:var(--secondary); }
.reader-image-error[hidden] { display:none; }
.reader-image-error strong { color:var(--ink); }
.reader-image-error p { line-height:1.7;margin:8px 0 14px; }
.inspect-modal .inspect-navigation { flex-shrink:0;margin:0;gap:10px; }
.inspect-modal .inspect-navigation>span { font-size:11px;overflow-wrap:anywhere;text-align:center; }
.reader-notes { flex-shrink:0;border-top:1px solid var(--separator);padding-top:8px;max-height:210px;overflow:auto; }
.reader-notes summary { color:var(--secondary);font-size:12px;cursor:pointer;padding:4px 0; }
.reader-notes summary>span { font-size:11px;margin-left:10px;color:var(--accent); }
.reader-notes .note-label { display:block;font-size:11px;margin:6px 0; }
.reader-notes textarea { width:100%;box-sizing:border-box;min-height:70px;max-height:125px;resize:vertical; }
.inspect-modal .inspect-footer { flex-shrink:0;margin:0;align-items:center;gap:12px; }
.reader-key-hint { font-size:11px;color:var(--secondary); }
@media(max-width:680px){
  .inspect-modal { width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);padding:12px; }
  .reader-toolbar { flex-wrap:wrap;gap:7px; }
  .reader-window { margin-left:auto; }
  .reader-zoom-controls { order:3;margin-left:0;width:100%;justify-content:center;border-top:1px solid var(--separator);padding-top:7px; }
  .reader-zoom-controls .icon-button { width:32px;height:30px; }
  .reader-key-hint { display:none; }
  .inspect-modal .inspect-footer { flex-wrap:wrap;gap:8px; }
  .inspect-modal .inspect-footer .button { padding:0 8px;font-size:11px;gap:5px;min-width:0; }
  .reader-page input { width:52px; }
  .inspect-modal .inspect-navigation>span { max-width:42%;font-size:10px; }
  .inspect-modal .inspect-navigation .button { padding:0 8px;font-size:11px; }
  .reader-notes { max-height:160px; }
  .gallery-lesson { max-width:150px; }
  .gallery-pagination { flex-wrap:wrap;gap:10px; }
  .course-video-context { align-items:flex-start;flex-direction:column;gap:8px; }
}

.launch-dialog.modal { width:min(760px,calc(100vw - 28px));padding:28px;max-height:calc(100dvh - 32px);overflow:auto; }
.launch-dialog h2 { font-size:20px;font-weight:600;margin:0; }
.launch-subtitle { font-size:12px;color:var(--secondary);margin:8px 0 0; }
.launch-tabs { display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--separator);margin:24px 0; }
.launch-tabs button { padding:9px 0;font-size:13px;color:var(--secondary); }
.launch-tabs [aria-current] { color:var(--ink);box-shadow:0 2px var(--accent); }
.launch-tabs .launch-refresh { margin-left:auto;font-size:12px; }
.launch-environment { display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--secondary); }
.launch-environment span { font-size:11px; }
.launch-stat-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 20px;margin:26px 0 28px; }
.launch-stat-grid span { display:block;font-size:12px;color:var(--secondary); }
.launch-stat-grid strong { display:block;font-size:25px;font-weight:500;margin-top:7px;letter-spacing:-.04em; }
.launch-section { border-top:1px solid var(--separator);padding:20px 0; }
.launch-section h3 { font-size:13px;font-weight:500;margin:0 0 14px; }
.launch-section h3>span { font-size:11px;font-weight:400;margin-left:12px; }
.launch-note,.launch-invite-heading p { font-size:12px;line-height:1.8;color:var(--secondary);margin:8px 0 0; }
.launch-good { color:#27824b; }
.launch-attention { color:#a86516; }
.launch-checks { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 24px;font-size:12px; }
.launch-checks>span { display:flex;gap:8px;justify-content:space-between; }
.launch-checks b { font-weight:400;font-size:11px; }
.launch-dialog select,.launch-dialog input:not([type=checkbox]):not([type=hidden]) { min-width:0;max-width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;color:var(--ink);background:#fff;box-sizing:border-box; }
#launch-policy-form { display:flex;gap:10px;flex-wrap:wrap;align-items:center; }
.launch-open-confirm { width:100%;font-size:12px;color:var(--secondary); }
.launch-open-confirm[hidden] { display:none; }
.launch-config { font-size:12px;color:var(--secondary); }
.launch-config summary { cursor:pointer; }
.launch-config ul { padding:0;list-style:none;line-height:1.8;margin:16px 0 0; }
.launch-config li { display:flex;gap:12px;margin:8px 0; }
.launch-config li>span { white-space:nowrap; }
.launch-invite-heading { display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px; }
.launch-invite-heading p { margin:0; }
.launch-invite-form { display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:14px;padding:18px 0;border-top:1px solid var(--separator);border-bottom:1px solid var(--separator);margin-bottom:20px; }
.launch-invite-form[hidden] { display:none; }
.launch-invite-form label { display:grid;gap:7px;font-size:12px;color:var(--secondary); }
.launch-invite-form>div { grid-column:1/-1;display:flex;gap:14px;align-items:center; }
.launch-search { display:flex;gap:10px;margin-bottom:12px; }
.launch-search input { flex:1;width:0; }
.launch-invite,.launch-event { display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid var(--separator); }
.launch-invite>div:first-child,.launch-event>div { min-width:0; }
.launch-invite strong,.launch-event strong { font-size:13px;font-weight:500;overflow-wrap:anywhere; }
.launch-invite small,.launch-event small { display:block;font-size:11px;color:var(--secondary);margin-top:7px;line-height:1.7; }
.launch-invite>div:last-child { display:flex;gap:13px;flex-shrink:0; }
.launch-invite .text-button,.launch-pagination .text-button { font-size:12px; }
.launch-event time { font-size:11px;color:var(--secondary);white-space:nowrap; }
.launch-pagination { display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0;font-size:11px;color:var(--secondary); }
.launch-pagination>div { display:flex;gap:12px;align-items:center; }
.launch-empty { padding:22px 0; }
#launch-message { font-size:12px;line-height:1.8;color:var(--secondary);margin:16px 0 0; }
#launch-message:empty { display:none; }
@media(max-width:520px){
  .launch-dialog.modal { padding:18px;width:calc(100vw - 20px); }
  .launch-tabs { gap:18px;margin:20px 0; }
  .launch-stat-grid { gap:20px 12px; }
  .launch-checks { grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px; }
  .launch-maintenance-checks { grid-template-columns:minmax(0,1fr);margin-top:14px; }
  .launch-environment { flex-direction:column;gap:5px; }
  .launch-invite-heading { align-items:flex-start; }
  .launch-invite-heading .button { flex-shrink:0; }
  .launch-search { flex-wrap:wrap;gap:8px; }
  .launch-search input { flex-basis:100%;width:100%; }
  .launch-invite { align-items:flex-start;flex-direction:column;gap:10px; }
  .launch-event { align-items:flex-start;gap:10px; }
  .launch-event time { white-space:normal;min-width:65px; }
}

.library-management { width: min(980px, calc(100vw - 32px)); max-width: 980px; }
.source-alias-dialog { width: min(680px, calc(100vw - 32px)); }
.source-alias-dialog > h3 { font-size: 15px; margin-bottom: 12px; }
#source-alias-form { display: grid; gap: 14px; margin: 20px 0; }
#source-alias-form > label:not(.publication-confirm) { display: grid; gap: 7px; font-size: 12px; }
#source-alias-form input:not([type=checkbox]), #source-alias-form textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--border); border-radius: 7px; background: #fff; }
#source-alias-form > button { justify-self: start; }
.source-alias-list article { border-top: 1px solid var(--separator); padding: 14px 0; font-size: 12px; }
.source-alias-list a { color: var(--accent); overflow-wrap: anywhere; }
.source-alias-list p { color: var(--secondary); margin: 8px 0; line-height: 1.7; }
.source-alias-list article > div { display: flex; gap: 16px; }
.library-ingestion-panel { border: 1px solid var(--border); border-radius: 10px; padding: 16px; margin: 18px 0; }
.library-ingestion-heading { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.library-ingestion-heading h3 { margin: 0 auto 0 0; font-size: 15px; }
.library-stats, .library-job p, .library-job small { font-size: 12px; color: var(--secondary); line-height: 1.7; }
.library-job { border-top: 1px solid var(--separator); padding-top: 12px; margin-top: 12px; }
.library-job > div { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.library-job strong { font-size: 13px; }
.library-job progress { width: 100%; height: 7px; margin-top: 10px; accent-color: var(--accent); }
.library-job details { font-size: 12px; }
.library-job li { margin: 10px 0; overflow-wrap: anywhere; }
.library-job li span { display: block; color: var(--secondary); margin-top: 4px; }
.library-error { color: #b42318 !important; }
.library-filters { display: flex; align-items: center; gap: 10px; margin: 22px 0 14px; }
.library-filters input { min-width: 0; flex: 1; }
.library-filters input, .library-filters select { min-height: 36px; border: 1px solid var(--border); border-radius: 7px; padding: 7px 10px; background: var(--surface, #fff); color: var(--ink); font: inherit; font-size: 12px; }
.library-management .publication-item > summary { overflow-wrap: anywhere; }
.library-management .publication-actions { flex-wrap: wrap; row-gap: 9px; }
.library-pagination { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 16px; margin-top: 18px; font-size: 12px; }
.library-pagination > span { margin-right: auto; color: var(--secondary); }
.library-file-table { max-width: 100%; overflow: auto; margin-top: 14px; }
.library-file-table table { width: 100%; border-collapse: collapse; font-size: 12px; }
.library-file-table th, .library-file-table td { padding: 8px; text-align: left; border-bottom: 1px solid var(--separator); white-space: nowrap; }
.library-file-table code { font-size: 11px; }
.library-message { min-height: 1.7em; }
@media (max-width: 540px) {
  .library-management { width: calc(100vw - 20px); padding: 18px; }
  .library-filters { flex-wrap: wrap; }
  .library-filters input { flex-basis: 100%; }
  .library-ingestion-panel { padding: 12px; }
  .library-job > div small { display: block; }
  .library-management .modal-heading h2 { font-size: 18px; }
}

.course-community{padding:24px 0;max-width:760px;margin:auto}.community-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.community-heading h3{font-size:20px;margin:0 0 8px}.community-heading p,.community-guidelines{color:var(--secondary);font-size:13px;line-height:1.8;margin:0}.community-guidelines{margin:18px 0;padding:12px 14px;background:#f4f7fc;border-radius:8px}.community-compose{border:1px solid #dce4f0;border-radius:12px;padding:18px;margin:14px 0 0}.community-compose label,.community-report-form label{display:block;font-size:13px;margin-bottom:12px}.community-compose select,.community-report-form select{margin-left:12px;padding:6px;border:1px solid #dce4f0;border-radius:6px}.community-compose textarea{display:block;box-sizing:border-box;width:100%;margin-top:8px;resize:vertical;min-height:100px;font:inherit;font-size:14px;line-height:1.8;padding:12px;border:1px solid #dce4f0;border-radius:8px}.community-form-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.community-form-footer small,.community-message{color:var(--secondary);font-size:12px;line-height:1.7}.community-message{min-height:22px;margin:12px 0}.community-empty{text-align:center;padding:34px 8px;color:var(--secondary)}.community-empty h4{color:var(--text);font-size:16px;margin:0 0 10px}.community-empty p{font-size:13px;line-height:1.8}.community-post{padding:22px 0;border-bottom:1px solid #e8edf4}.community-post>header{display:flex;align-items:center;gap:10px}.community-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#eaf1fc;color:#2564b8;font-size:13px}.community-post strong{font-size:13px}.community-post time{display:block;font-size:11px;color:var(--secondary);margin-top:3px}.community-kind{margin-left:auto;font-size:11px;background:#f1f5fb;color:#527398;border-radius:20px;padding:4px 10px}.community-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9;margin:14px 0}.community-content a{color:#0865db;text-decoration:underline;text-underline-offset:3px}.community-post>footer{display:flex;gap:18px}.community-post>footer button{font-size:12px;color:var(--secondary)}.community-replies{padding-left:18px;margin-top:12px;border-left:2px solid #e6edf7}.community-reply{padding:16px 0}.community-reply .community-content{font-size:13px}.community-deleted{color:var(--secondary);font-size:13px}.community-more{margin-top:20px}.community-report-form,.community-review{padding:14px;margin:14px 0;background:#f7f9fd;border-radius:8px}.community-review article+article{border-top:1px solid #dce4f0;padding-top:12px}.community-replying{font-size:13px;margin-bottom:12px}.community-review small{color:var(--secondary)}
@media(max-width:600px){.community-compose{padding:13px}.community-form-footer{align-items:flex-start;flex-direction:column}.community-form-footer button{align-self:flex-end}.community-heading h3{font-size:18px}.course-detail-tabs{overflow-x:auto}.community-kind{padding:4px 7px;white-space:nowrap}.community-replies{padding-left:12px}}

.social-dialog{width:min(760px,calc(100vw - 36px));max-height:calc(100dvh - 40px);padding:0;border-radius:16px;overflow:auto}.social-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;border-bottom:1px solid #e8edf4;background:#fafbfd}.social-profile{display:flex;gap:18px;flex-wrap:wrap;padding:30px 30px 8px}.social-avatar{width:70px;height:70px;flex-shrink:0;border-radius:22px;display:grid;place-items:center;font-size:29px;font-weight:650;background:#eaf1fc;color:#2564b8}.social-identity{flex:1;min-width:180px}.social-eyebrow{font-size:11px;color:var(--secondary);margin:0 0 6px}.social-identity h2{font-size:25px;margin:0 0 10px;overflow-wrap:anywhere}.social-bio{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 8px}.social-identity>small{font-size:11px;color:var(--secondary)}.social-profile-actions{display:flex;gap:8px;align-items:flex-start;flex-direction:column}.social-stats{display:flex;gap:30px;flex-basis:100%;margin:14px 0 4px}.social-stats button,.social-stats>span{border:0;background:none;display:flex;gap:6px;align-items:baseline;padding:0;font:inherit;font-size:12px;color:var(--secondary)}.social-stats button{cursor:pointer}.social-stats strong{font-size:18px;color:var(--text)}.social-tabs{display:flex;gap:6px;padding:0 26px 14px;overflow-x:auto;border-bottom:1px solid #e8edf4}.social-tabs button{border:0;background:transparent;color:var(--secondary);font:inherit;font-size:13px;border-radius:7px;padding:9px 12px;white-space:nowrap;cursor:pointer}.social-tabs button[aria-current]{color:#0865db;background:#edf4ff}.social-message{min-height:20px;padding:0 30px;font-size:12px;line-height:1.8;color:var(--secondary);margin:8px 0}.social-content{padding:0 30px 25px}.social-post{padding:22px 0;border-bottom:1px solid #e8edf4}.social-post>header{display:flex;gap:10px;align-items:center}.social-post>header small{display:block;color:var(--secondary);font-size:11px;margin-top:4px}.social-post>footer{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.social-post>footer a,.social-post>footer button{font-size:12px;color:var(--secondary)}.social-course{display:inline-block;font-size:12px;margin:14px 0 0;color:#527398}.social-post .community-content{margin:12px 0 16px}.community-author{font-size:13px;font-weight:600;color:inherit;text-decoration:none}.community-author:hover{text-decoration:underline}.community-like[aria-pressed=true],.community-post>footer .community-like[aria-pressed=true],.social-post>footer .community-like[aria-pressed=true]{color:#0865db}.social-empty{text-align:center;padding:30px 10px;color:var(--secondary);font-size:13px;line-height:1.9}.social-empty h3{font-size:16px;color:var(--text);margin:0 0 10px}.social-empty a{display:inline-block;margin-top:10px;color:#0865db}.social-person{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;padding:18px 0;border-bottom:1px solid #e8edf4}.social-person>span:nth-child(2){flex:1;min-width:0}.social-person strong{font-size:14px}.social-person small{display:block;font-size:12px;color:var(--secondary);margin-top:7px;overflow-wrap:anywhere}.social-more{margin:0 30px 25px}.social-editor{padding:20px;margin:0 30px 20px;border:1px solid #dce4f0;border-radius:12px}.social-editor h3{font-size:16px;margin:0 0 10px}.social-editor p{font-size:12px;color:var(--secondary);line-height:1.8}.social-editor>label{display:block;font-size:13px;margin:14px 0}.social-editor input:not([type=radio]),.social-editor textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:10px 12px;font:inherit;font-size:14px;border:1px solid #dce4f0;border-radius:8px}.social-editor textarea{resize:vertical;min-height:86px}.social-editor fieldset{display:flex;gap:8px;flex-wrap:wrap;border:0;padding:0;margin:12px 0 20px}.social-editor legend{font-size:13px;margin-bottom:10px}.social-color{font-size:12px;display:flex;gap:4px;padding:6px 8px;border-radius:8px;background:#f1f5fb}.social-account-links{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}.social-account-links button{font-size:13px}
[data-color=green]{background:#e5f4eb;color:#257653}[data-color=violet]{background:#efe9fb;color:#7750b3}[data-color=amber]{background:#fff3d9;color:#94690d}[data-color=rose]{background:#fbe8ef;color:#ab4c70}[data-color=slate]{background:#edf0f4;color:#65738a}[data-color=blue]{background:#eaf1fc;color:#2564b8}
@media(max-width:600px){.social-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 28px);border-radius:12px}.social-topbar{padding:12px 20px}.social-profile{padding:24px 20px 8px;gap:14px}.social-avatar{width:52px;height:52px;border-radius:17px;font-size:23px}.social-identity{min-width:160px}.social-identity h2{font-size:22px}.social-profile-actions{flex-direction:row;align-items:center;width:100%}.social-stats{gap:24px;margin:8px 0}.social-tabs{padding:0 16px 12px}.social-content{padding:0 20px 22px}.social-message{padding:0 20px}.social-editor{margin:0 20px 18px;padding:15px}.social-more{margin:0 20px 22px}.social-tabs button{padding:9px 10px}}

.notification-entry{border:1px solid #dce4f0;background:white;padding:8px 12px;border-radius:8px;font:inherit;font-size:12px;white-space:nowrap;cursor:pointer;color:var(--secondary)}.notification-entry.has-unread{color:#0865db;background:#edf4ff;border-color:#c9ddff}.notification-dialog{width:min(650px,calc(100vw - 36px));padding:0;border-radius:14px;max-height:calc(100dvh - 40px);overflow:auto}.notification-heading{display:flex;justify-content:space-between;align-items:center;padding:24px 26px 16px}.notification-heading h2{font-size:22px;margin:0 0 8px}.notification-heading p{font-size:13px;color:var(--secondary);margin:0}.notification-filters{display:flex;gap:6px;padding:0 26px 16px;border-bottom:1px solid #e8edf4}.notification-filters button{font:inherit;font-size:13px;padding:8px 14px;border:0;border-radius:7px;background:none;color:var(--secondary);cursor:pointer}.notification-filters [aria-current]{background:#edf4ff;color:#0865db}.notification-tools{display:flex;justify-content:space-between;padding:14px 26px 0}.notification-tools button{font-size:12px}.notification-message{margin:8px 26px;min-height:20px;font-size:12px;color:var(--secondary);line-height:1.8}.notification-list{padding:0 15px 20px}.notification-item{display:flex;align-items:flex-start;gap:12px;padding:16px 12px;text-decoration:none;color:inherit;border-bottom:1px solid #e8edf4;border-radius:8px}.notification-item.unread{background:#f4f8ff}.notification-copy{flex:1;min-width:0}.notification-copy strong{font-size:13px;line-height:1.7}.notification-copy strong>span{font-weight:400}.notification-copy time{display:block;font-size:11px;color:var(--secondary);margin-top:3px}.notification-preview{display:block;margin:10px 0 8px;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.notification-copy small{font-size:11px;color:#527398}.notification-dot{width:6px;height:6px;border-radius:50%;background:#0865db;flex-shrink:0;margin-top:8px}.notification-empty{text-align:center;padding:35px 16px;font-size:13px;color:var(--secondary)}.notification-empty h3{font-size:16px;color:var(--text)}.notification-dialog>[data-notification=more]{margin:0 26px 24px}.community-focus-note{font-size:12px;padding:12px;background:#edf4ff;color:#527398;border-radius:8px}.community-focus-note a{color:#0865db}.community-highlight{outline:2px solid #a8ccff;outline-offset:5px;border-radius:8px;scroll-margin:14px}
@media(max-width:600px){.notification-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 28px)}.notification-heading{padding:22px 20px 16px}.notification-tools{padding:12px 20px 0}.notification-filters{padding:0 14px 14px}.notification-message{margin:8px 20px}.notification-list{padding:0 8px 16px}.notification-entry{padding:7px 9px}}

.community-admin-dialog{width:min(850px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:26px}.community-admin-dialog .modal-heading p{font-size:13px;color:var(--secondary);margin:8px 0 0}.community-admin-counts{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0;font-size:12px;color:var(--secondary)}.community-admin-counts span{padding:10px 13px;background:#f3f7fc;border-radius:8px}.community-admin-counts strong{color:var(--text);font-size:18px;margin-right:5px}.community-admin-tabs{display:flex;gap:6px;border-bottom:1px solid #e3e8f0;padding-bottom:12px}.community-admin-tabs button{font:inherit;font-size:13px;padding:9px 12px;color:var(--secondary);border-radius:7px}.community-admin-tabs [aria-current]{color:#0865db;background:#edf4ff}.community-admin-filter{display:flex;gap:12px;justify-content:space-between;align-items:flex-end;margin-top:16px}.community-admin-filter label{display:grid;gap:7px;font-size:12px;min-width:0;max-width:85%}.community-admin-filter select{max-width:100%;padding:8px;background:white;border:1px solid #dce3ed;border-radius:6px;font:inherit}.community-admin-message{font-size:12px;line-height:1.8;min-height:22px;color:var(--secondary);margin:13px 0}.community-admin-post{padding:18px 0;border-top:1px solid #e3e8f0}.community-admin-post header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;font-size:14px}.community-admin-post small{display:block;margin-top:6px;font-size:11px;color:var(--secondary)}.community-admin-state{flex-shrink:0;font-size:11px;padding:5px 8px;background:#f3f6fa;border-radius:5px}.community-admin-post .community-content{font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;max-height:330px;overflow:auto;margin:14px 0}.community-admin-reasons{font-size:12px;color:#795e39;background:#fff8ea;padding:10px;border-radius:6px;line-height:1.8}.community-admin-post footer{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.community-admin-post footer a{font-size:12px}.community-admin-confirm{background:#edf4ff;border:1px solid #d4e5ff;padding:13px;border-radius:8px;margin-top:13px;font-size:12px;line-height:1.8}.community-admin-confirm p{margin:0 0 10px}.community-admin-confirm button{margin-right:12px}.community-admin-event{display:grid;gap:8px;border-top:1px solid #e3e8f0;padding:16px 0;font-size:13px}.community-admin-event span{font-size:11px;color:var(--secondary)}.community-admin-event a{color:#0865db;font-size:12px;overflow-wrap:anywhere}.community-admin-empty{padding:34px;text-align:center;font-size:13px;color:var(--secondary)}
.community-admin-filter label{flex:1;max-width:calc(100% - 48px)}.community-admin-filter select{width:100%;min-width:0}.community-admin-post header>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.community-admin-dialog{width:calc(100vw - 18px);padding:20px 16px;max-height:calc(100dvh - 24px)}.community-admin-counts{gap:7px}.community-admin-counts span{padding:8px;font-size:11px}.community-admin-counts strong{font-size:16px}.community-admin-tabs{gap:2px}.community-admin-tabs button{padding:8px;font-size:12px}.community-admin-post header{font-size:13px}}

.member-setup-dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.member-setup-dialog>p{font-size:13px;line-height:1.8;color:var(--secondary)}.member-setup-form.social-editor{margin:16px 0 0;padding:0;border:0}.member-setup-preview{width:66px;height:66px;border-radius:20px;display:grid;place-items:center;font-size:28px}.social-avatar svg,.community-avatar svg,.member-setup-preview svg{width:65%;height:65%;display:block}.member-avatar-picker{display:flex;gap:8px;flex-wrap:wrap}.member-avatar-picker>label{position:relative;display:grid;justify-items:center;gap:5px;padding:8px;border:1px solid #e0e6ef;border-radius:9px;min-width:54px;cursor:pointer}.member-avatar-picker>label:has(input:checked){border-color:#0865db;background:#edf4ff}.member-avatar-picker input{position:absolute;top:3px;left:3px;accent-color:#0865db}.member-avatar-picker span{display:grid;place-items:center;width:30px;height:30px;font-size:23px;color:#3c6388}.member-avatar-picker svg{width:27px;height:27px}.member-avatar-picker small{font-size:11px}.member-review-status{margin:10px 30px;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.8;color:#586a81;background:#f4f7fb}.member-storage-summary{padding:12px;border:1px solid #e3e9f1;border-radius:10px;font-size:12px;line-height:1.9}.member-storage-summary p{margin:5px 0}.member-access-note{padding:12px;border-radius:10px;background:#fff3dd;font-size:12px;line-height:1.8}.member-access-note textarea{width:100%;box-sizing:border-box;padding:10px;min-height:80px}.member-admin-dialog{width:min(900px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.member-admin-dialog .modal-heading p,[data-members-message]{font-size:12px;line-height:1.8;color:var(--secondary)}.member-admin-search{display:flex;gap:10px;margin:18px 0}.member-admin-search input{flex:1;min-width:0}.member-admin-card{border:1px solid #e0e6ef;border-radius:12px;padding:18px;margin:14px 0}.member-admin-card>header{display:flex;gap:10px;align-items:center}.member-admin-card>header>div{flex:1;min-width:0;overflow-wrap:anywhere}.member-admin-card>header small{display:block;font-size:11px;color:var(--secondary);margin-top:5px}.member-admin-card>header>span:last-child{font-size:12px}.member-admin-card h3{font-size:14px;margin:12px 0 8px}.member-admin-card p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8}.member-admin-card section{padding:14px 0;border-top:1px solid #edf0f5;margin-top:12px}.member-admin-card form{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.member-admin-card form>label{flex:1;min-width:120px;font-size:12px}.member-admin-card form>div,.member-admin-card form>p{flex-basis:100%}.member-admin-card input,.member-admin-card select,.member-admin-search input{width:100%;box-sizing:border-box;border:1px solid #dce4f0;border-radius:7px;padding:9px;font:inherit;font-size:13px}.member-admin-card label input,.member-admin-card label select{display:block;margin-top:7px}.member-admin-card summary{font-size:12px;margin-top:18px;cursor:pointer}.member-admin-card details form{padding:12px;border-radius:8px;background:#fafbfd}.member-admin-note,.member-admin-empty{font-size:12px;line-height:1.8;color:var(--secondary)}.member-admin-pagination{display:flex;justify-content:space-between;align-items:center;margin:18px 0;font-size:12px}.member-review-event{padding:16px 0;border-bottom:1px solid #e5ebf3}.member-review-event span{display:block;font-size:11px;margin-top:5px;color:var(--secondary)}.member-review-event p{font-size:12px;overflow-wrap:anywhere}.member-report-form select{display:block;margin-top:7px;padding:9px;font:inherit;max-width:100%}
.member-admin-dialog .community-admin-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px}.member-admin-dialog .community-admin-tabs button{flex:0 0 auto;white-space:nowrap;min-width:max-content;padding:9px 12px}.member-setup-form>.button{margin-right:12px}
@media(max-width:600px){.member-admin-dialog{padding:18px;width:calc(100vw - 18px)}.member-admin-dialog .community-admin-tabs{padding-left:0;padding-right:0}.member-admin-search{flex-wrap:wrap}.member-admin-search input{flex-basis:100%}.member-admin-card{padding:12px}.member-admin-card>header{flex-wrap:wrap}.member-admin-card>header>span:last-child{flex-basis:100%}.member-review-status{margin:10px 20px}.member-avatar-picker>label{min-width:48px}.member-setup-dialog{padding:20px}}

.language-picker{display:inline-flex;align-items:center;flex-shrink:0}
.language-picker select{font:inherit;font-size:12px;line-height:1.4;color:var(--text,#24272b);background:transparent;border:1px solid var(--border,#dfe1e5);border-radius:7px;padding:6px 20px 6px 8px;min-height:32px;max-width:104px;cursor:pointer}
.language-picker select:focus-visible{outline:2px solid #0a66df;outline-offset:3px}
html[lang=en] .catalog-browse-tabs{overflow-x:auto}
html[lang=en] .catalog-browse-tabs button{white-space:nowrap}
html[lang=en] .main-nav .nav-item span{overflow-wrap:normal}
@media(max-width:600px){.language-picker select{font-size:11px;max-width:86px;padding-left:6px}.topbar-right{gap:4px!important}}
@media(max-width:680px){.topbar-right{min-width:0;flex-shrink:1}.topbar-right .notification-entry{position:relative;width:32px;min-width:32px;height:32px;padding:0;font-size:0}.topbar-right .notification-entry::before{content:'🔔';font-size:16px}.topbar-right .notification-entry.has-unread::after{content:'';position:absolute;right:3px;top:3px;width:5px;height:5px;border-radius:50%;background:#0865db}}
@media(max-width:420px){.topbar .brand>span{display:none}.topbar{gap:8px}.topbar-right .account-entry{padding-inline:4px}}
@media(max-width:600px){html[lang=en] .course-intro-facts{grid-template-columns:1fr;gap:12px}html[lang=en] .course-intro-facts>div{display:flex;justify-content:space-between;gap:16px;align-items:baseline}html[lang=en] .course-intro-facts dt,html[lang=en] .course-intro-facts dd{word-break:normal;overflow-wrap:normal}html[lang=en] .course-intro-facts dd{margin:0;text-align:right}}
