:root{--ink:#151616;--muted:#686f73;--line:#d7dcde;--paper:#f4f1e9;--surface:#fffdf8;--surface-strong:#fff;--red:#b72530;--red-dark:#8f1720;--green:#08745b;--blue:#1f5d8c;--gold:#b98018;--shadow:0 22px 60px #1516161f}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:linear-gradient(135deg, #08745b1a, transparent 26%), linear-gradient(315deg, #1f5d8c14, transparent 28%), linear-gradient(90deg, #1516160a 1px, transparent 1px), linear-gradient(180deg, #1516160a 1px, transparent 1px), var(--paper);color:var(--ink);background-size:100% 100%,100% 100%,44px 44px,44px 44px,auto;font-family:Avenir Next,Segoe UI,sans-serif}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{width:min(1180px,100vw - 32px);margin:0 auto;padding:32px 0}.masthead{padding:14px 0 28px}.masthead-copy h1{letter-spacing:0;max-width:810px;margin:6px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.1rem,5vw,5.5rem);font-weight:700;line-height:.96}.masthead-note{max-width:640px;color:var(--muted);margin:14px 0 0;font-size:.98rem;line-height:1.45}.eyebrow{color:var(--red);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}.workspace{border:1px solid var(--line);min-width:0;min-height:650px;box-shadow:var(--shadow);background:#fffdf8ed;grid-template-columns:minmax(320px,440px) minmax(0,1fr);display:grid;overflow:hidden}.search-pane{border-right:1px solid var(--line);background:linear-gradient(#eef4f0b8,#ffffffc7 180px),#ffffffc2;min-width:0;padding:22px}.step-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:16px;display:grid}.step-pill{border:1px solid var(--line);min-width:0;min-height:30px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#ffffffb8;justify-content:center;align-items:center;font-size:.72rem;font-weight:800;display:inline-flex}.step-pill.active{border-color:var(--ink);background:var(--ink);color:#fff}.step-pill.complete{color:var(--green);background:#08745b1c;border-color:#08745b3d}.finder-controls{gap:12px;display:grid}.control-group{gap:7px;display:grid}.control-note{color:var(--muted);margin:0;font-size:.86rem;font-weight:700}.control-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:800}.form-field{gap:7px;display:grid}.form-field>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:800}.select-wrap{border:1px solid var(--ink);background:var(--surface-strong);min-height:46px;transition:border-color .16s,box-shadow .16s,transform .16s;position:relative}.select-wrap select{appearance:none;width:100%;min-width:0;height:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;outline:0;padding:0 38px 0 12px;position:absolute;inset:0}.select-wrap svg{pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.select-wrap:focus-within,.search-box:focus-within{box-shadow:0 0 0 3px #b7253029}.select-wrap:hover,.search-box:hover{border-color:var(--red)}.search-box{border:2px solid var(--ink);background:var(--surface-strong);grid-template-columns:22px minmax(0,1fr) 22px;align-items:center;gap:10px;min-height:54px;padding:0 14px;transition:border-color .16s,box-shadow .16s;display:grid}.search-box input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:1rem}.course-row:hover,.action:hover,.icon-action:hover{border-color:var(--red)}.panel-hint{border-left:4px solid var(--green);color:#26534b;background:#08745b14;align-items:center;gap:9px;margin:14px 0;padding:10px 12px;font-size:.86rem;line-height:1.35;display:flex}.notice{color:var(--red-dark);background:#b7253012;border:1px solid #b7253047;align-items:flex-start;gap:10px;padding:12px;font-size:.9rem;display:flex}.course-list{gap:10px;max-height:510px;padding-right:4px;display:grid;overflow:auto}.course-list-help{min-height:124px;color:var(--muted);background:#fffdf8c2;border:1px dashed #1516163d;align-content:center;justify-items:start;gap:6px;margin-top:16px;padding:16px;display:grid}.course-list-help svg{color:var(--green)}.course-list-help strong{color:var(--ink);font-size:1rem}.course-list-help span{line-height:1.42}.course-row{border:1px solid var(--line);background:var(--surface);width:100%;min-height:78px;color:var(--ink);cursor:pointer;text-align:left;grid-template-columns:24px minmax(0,1fr);gap:12px;padding:14px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.course-row:hover{transform:translateY(-1px);box-shadow:0 10px 24px #15161614}.course-row.selected{border-color:var(--red);box-shadow:inset 4px 0 0 var(--red)}.course-row strong,.course-row small{display:block}.course-row strong{overflow-wrap:anywhere;font-size:.96rem}.course-row small{color:var(--muted);margin-top:4px;line-height:1.35}.skeleton-row{pointer-events:none}.skeleton-icon,.skeleton-line{background:linear-gradient(90deg,#d7dcdeb3,#ffffffe6,#d7dcdeb3) 0 0/220% 100%;border-radius:999px;animation:1.2s linear infinite shimmer;display:block}.skeleton-icon{width:22px;height:22px}.skeleton-line{width:62%;height:11px;margin-top:9px}.skeleton-line.wide{width:86%;height:14px;margin-top:1px}.calendar-pane{background:radial-gradient(circle at 90% 8%,#b980181a,#0000 18%),#fffdf88f;min-width:0;padding:30px}.selected-header{border-bottom:1px solid var(--line);justify-content:space-between;gap:22px;padding-bottom:24px;display:flex}.selected-header h2,.empty-panel h2{letter-spacing:0;overflow-wrap:anywhere;margin:7px 0 8px;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.7rem,3vw,3.2rem);line-height:1}.selected-header p:not(.eyebrow),.empty-panel p{color:var(--muted);margin:0;line-height:1.45}.actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.action,.icon-action{border:1px solid var(--ink);background:var(--surface-strong);min-width:0;min-height:42px;color:var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:800;text-decoration:none;transition:border-color .16s,background .16s,color .16s,transform .16s;display:inline-flex}.action.primary{border-color:var(--red);background:var(--red);color:#fff}.action.disabled,.action.disabled:hover{color:#1516166b;cursor:not-allowed;background:#ffffff75;border-color:#1516162e;transform:none}.action:hover,.icon-action:hover,.feed-copy:hover{transform:translateY(-1px)}.icon-action{width:44px;padding:0}.feed-url{border:1px dashed var(--line);min-width:0;max-width:100%;color:var(--blue);overflow-wrap:anywhere;word-break:break-word;background:#1f5d8c0f;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:14px;padding:12px;font-family:SFMono-Regular,Consolas,monospace;font-size:.82rem;display:grid}.feed-url span{overflow-wrap:anywhere}.feed-copy{background:var(--surface-strong);min-height:36px;color:var(--blue);cursor:pointer;white-space:nowrap;border:1px solid #1f5d8c52;justify-content:center;align-items:center;gap:7px;padding:0 10px;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.78rem;font-weight:800;display:inline-flex}.feed-copy:hover{border-color:var(--blue)}.feed-copy:disabled{color:#15161661;cursor:not-allowed;border-color:#15161629}.subscription-note{max-width:640px;color:var(--muted);margin:18px 0 0;font-size:.94rem;line-height:1.45}.module-selector{border:1px solid var(--line);background:#ffffff8f;margin-top:18px;padding:14px}.module-selector-header{justify-content:space-between;align-items:center;gap:14px;display:flex}.module-selector-header h3{margin:3px 0 0;font-size:1rem;line-height:1.25}.module-selector-note{color:var(--muted);margin:4px 0 0;font-size:.82rem;line-height:1.35}.module-selector-actions{gap:8px;display:flex}.module-selector-actions button{border:1px solid var(--ink);background:var(--surface-strong);min-height:34px;color:var(--ink);cursor:pointer;padding:0 10px;font-size:.78rem;font-weight:900}.module-selector-actions button:hover,.module-option:hover{border-color:var(--red)}.module-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:270px;margin-top:12px;padding-right:2px;display:grid;overflow:auto}.module-option{background:var(--surface);min-height:62px;color:var(--ink);cursor:pointer;text-align:left;border:1px solid #15161629;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:9px;padding:10px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.module-option.selected{box-shadow:inset 3px 0 0 var(--green);border-color:#08745b6b}.module-option svg{color:var(--green);margin-top:1px}.module-option strong,.module-option small{overflow-wrap:anywhere;min-width:0;display:block}.module-option strong{font-size:.82rem;line-height:1.25}.module-option small{color:var(--muted);margin-top:3px;font-size:.75rem;line-height:1.3}.module-option small b{color:var(--green);font-weight:900}.module-option:not(.selected) small b{color:var(--red-dark)}.source-note,.site-footer{color:var(--muted);font-size:.84rem;line-height:1.45}.source-note{margin:9px 0 0}.source-note a,.site-footer a{color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1px}.footer-button{width:fit-content;color:var(--blue);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;margin:0 auto;padding:0;text-decoration:underline;text-decoration-thickness:1px}.report-button{background:var(--surface-strong);width:fit-content;max-width:min(100%,360px);min-height:42px;color:var(--red-dark);cursor:pointer;overflow-wrap:anywhere;border:1px solid #b7253061;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:900;line-height:1.2;text-decoration:none;transition:border-color .16s,background .16s,box-shadow .16s,color .16s,transform .16s;display:inline-flex;box-shadow:0 10px 24px #15161614}.report-button:hover{border-color:var(--red);color:var(--red);background:#b7253014;transform:translateY(-1px);box-shadow:0 12px 28px #1516161f}.report-button:focus-visible{outline-offset:3px;outline:3px solid #b7253038}.report-button svg{flex:none}.results-report-button{width:fit-content;min-height:32px;color:var(--red-dark);cursor:pointer;text-align:left;text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:6px;padding:4px 0 0;font-size:.82rem;font-weight:900;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.results-report-button:hover{color:var(--red)}.results-report-button:focus-visible{outline-offset:3px;outline:3px solid #b7253033}.footer-button:hover{color:var(--red)}.site-footer{text-align:center;gap:4px;padding:16px 0 0;display:grid}.bug-modal-backdrop{z-index:20;background:#1516167a;place-items:center;padding:18px;animation:.18s ease-out both bug-backdrop-in;display:grid;position:fixed;inset:0}.bug-modal-backdrop.closing{animation:.18s ease-in both bug-backdrop-out}.bug-modal{border:1px solid var(--line);background:var(--surface-strong);width:min(560px,100%);max-height:min(720px,100vh - 36px);box-shadow:var(--shadow);transform-origin:50% 45%;padding:22px;animation:.2s cubic-bezier(.16,1,.3,1) both bug-modal-in;overflow:auto}.bug-modal.closing{animation:.18s ease-in both bug-modal-out}.bug-modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:16px;display:flex}.bug-modal-header h2{letter-spacing:0;margin:6px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,5vw,2.4rem);line-height:1}.bug-modal-header .icon-action{flex:0 0 44px;width:44px}.bug-form,.bug-success{gap:14px;margin-top:18px;display:grid}.bug-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.bug-tab{border:1px solid var(--line);min-height:38px;color:var(--muted);cursor:pointer;text-transform:uppercase;background:#fffdf8c7;justify-content:center;align-items:center;padding:0 10px;font-size:.78rem;font-weight:900;display:inline-flex}.bug-tab.active{border-color:var(--ink);background:var(--ink);color:#fff}.bug-tab:hover{border-color:var(--red)}.bug-field{gap:7px;display:grid}.bug-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.bug-field>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:800}.bug-field input,.bug-field textarea{border:1px solid var(--ink);background:var(--surface);width:100%;color:var(--ink);outline:0;padding:12px}.bug-field textarea{resize:vertical;min-height:150px;line-height:1.4}.bug-field input:focus,.bug-field textarea:focus{box-shadow:0 0 0 3px #b7253029}.bug-context{border-left:4px solid var(--green);color:#26534b;background:#08745b14;gap:4px;padding:10px 12px;font-size:.84rem;line-height:1.35;display:grid}.bug-error{color:var(--red-dark);margin:0;font-size:.9rem;font-weight:700}.bug-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.bug-success{color:var(--muted);line-height:1.4}.bug-success strong{color:var(--green);font-size:1.05rem}.preview-header{justify-content:space-between;align-items:baseline;gap:18px;margin-top:30px;display:flex}.preview-header h3{margin:0;font-size:1.05rem}.preview-header span{color:var(--muted);font-size:.9rem}.calendar-preview{margin-top:12px}.week-grid{border:1px solid var(--line);background:#ffffff9e;grid-template-columns:repeat(5,minmax(116px,1fr));display:grid}.day-column{border-right:1px solid var(--line);min-width:0}.day-column:last-child{border-right:0}.day-heading{border-bottom:1px solid var(--line);background:#08745b14;justify-content:space-between;align-items:baseline;gap:8px;min-height:42px;padding:10px;display:flex}.day-heading strong{color:var(--ink);text-transform:uppercase;font-size:.86rem;font-weight:900}.day-heading span{color:var(--muted);white-space:nowrap;font-size:.78rem;font-weight:800}.day-events{align-content:start;gap:8px;min-height:280px;padding:10px;display:grid}.calendar-event{border-left:4px solid var(--red);background:var(--surface);gap:5px;min-width:0;padding:9px 9px 10px;display:grid;box-shadow:0 8px 18px #15161612}.calendar-event time,.calendar-event strong,.calendar-event span{min-width:0;display:block}.calendar-event time{color:var(--red-dark);font-size:.76rem;font-weight:900}.calendar-event strong{color:var(--ink);overflow-wrap:anywhere;font-size:.82rem;line-height:1.22}.calendar-event span{color:var(--muted);overflow-wrap:anywhere;font-size:.76rem;line-height:1.3}.quiet-day{min-height:92px;color:var(--muted);text-align:center;border:1px dashed #1516162e;place-items:center;font-size:.78rem;display:grid}.empty-panel,.empty-state{text-align:center;place-items:center;min-height:360px;display:grid}.empty-panel{max-width:620px;color:var(--muted);align-content:center;margin:0 auto}.empty-state{min-height:180px;color:var(--muted)}.empty-panel svg{color:var(--green)}.course-list-help .results-report-button svg{color:currentColor}.empty-panel h2{color:var(--ink)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-220% 0}}@keyframes bug-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes bug-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes bug-modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes bug-modal-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.98)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:860px){.app-shell{width:min(100% - 22px,720px);padding:18px 0}.workspace{grid-template-columns:1fr}.search-pane{border-right:0;border-bottom:1px solid var(--line)}.step-strip{grid-template-columns:repeat(3,minmax(82px,1fr));padding-bottom:2px;overflow-x:auto}.calendar-pane{padding:22px}.week-grid{scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.day-column{border-right:1px solid var(--line);scroll-snap-align:start;flex:0 0 min(290px,82vw)}.day-events{min-height:220px}}@media (max-width:560px){body{background-size:100% 100%,100% 100%,36px 36px,36px 36px,auto}.app-shell{width:100%;padding:20px 10px 14px}.masthead{padding:8px 0 18px}.masthead-copy h1{max-width:360px;font-size:clamp(2.3rem,11vw,3.25rem);line-height:.94}.workspace{min-height:0}.search-pane,.calendar-pane{padding:18px}.step-strip{margin-bottom:12px}.step-pill{min-height:28px;font-size:.68rem}.finder-controls{gap:10px}.select-wrap,.search-box{min-height:48px}.search-box{grid-template-columns:20px minmax(0,1fr) 20px;padding:0 12px}.course-list{gap:8px;max-height:390px;padding-right:0}.course-list-help{min-height:108px;margin-top:12px;padding:14px}.course-row{gap:10px;min-height:68px;padding:12px}.selected-header{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding-bottom:18px;display:grid}.selected-header svg{width:30px;height:30px}.selected-header h2,.empty-panel h2{font-size:clamp(1.75rem,8.5vw,2.25rem)}.actions{grid-template-columns:1fr;gap:9px;margin-top:18px;display:grid}.action,.icon-action{width:100%;min-height:44px;padding:0 10px}.module-selector{padding:12px}.module-selector-header{align-items:flex-start}.module-list{grid-template-columns:1fr;max-height:250px}.feed-url{grid-template-columns:minmax(0,1fr);padding:10px;font-size:.78rem;line-height:1.35}.feed-copy{width:100%}.preview-header{gap:4px;margin-top:26px;display:grid}.week-grid{margin-right:-18px;padding-right:18px}.day-column{flex-basis:275px}.day-events{min-height:190px}.calendar-event{padding:9px}.calendar-event strong{font-size:.86rem}.empty-panel,.empty-state{min-height:250px}.site-footer{padding:14px 14px 0}}
