@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap";:root{--ink:#172019;--paper:#f5f3ed;--line:#d4d2ca;--acid:#d6f44e;--orange:#ff5b2e;--muted:#71766f;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit;color:inherit}button,a{transition:all .18s}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}.app-shell,.admin-shell{min-height:100vh;padding:0 5vw 80px}.topbar{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;height:88px;display:flex}.brand{letter-spacing:-.03em;align-items:center;gap:12px;font-size:18px;font-weight:700;display:flex}.brand-mark{border:1px solid var(--ink);border-radius:50%;place-items:center;width:36px;height:36px;font:500 11px DM Mono;display:grid;transform:rotate(-8deg)}.nav-links{align-items:center;gap:32px;font-size:14px;display:flex}.nav-links a{padding:8px 0}.nav-links .active{border-bottom:2px solid var(--ink)}.admin-link{border:1px solid var(--ink)!important;padding:10px 16px!important}.hero{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-end;min-height:420px;padding:68px 0 56px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;margin:0 0 20px;font:500 11px/1 DM Mono;display:block}.hero h1,.admin-heading h1,.login-card h1{letter-spacing:-.07em;margin:0;font-size:clamp(58px,8vw,108px);line-height:.86}.hero h1 em{color:var(--orange);font-family:Instrument Serif,serif;font-weight:400}.hero-copy{max-width:500px;color:var(--muted);margin:30px 0 0;font-size:17px;line-height:1.6}.primary-button{border:1px solid var(--ink);background:var(--acid);box-shadow:5px 5px 0 var(--ink);flex:none;padding:16px 22px;font-weight:700}.primary-button:hover:not(:disabled){box-shadow:3px 3px 0 var(--ink);transform:translate(2px,2px)}.task-section,.course-section{padding:54px 0}.section-heading{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.section-heading>div:first-child{align-items:center;gap:14px;display:flex}.section-number{background:var(--ink);color:var(--paper);padding:5px 7px;font:500 10px DM Mono}.section-heading h2,.form h2{letter-spacing:-.04em;margin:0;font-size:29px}.filters{gap:5px;display:flex}.filters button{border:1px solid var(--line);background:0 0;padding:8px 13px;font-size:13px}.filters .selected{background:var(--ink);color:#fff}.task-list{border-top:1px solid var(--ink)}.task-card{border-bottom:1px solid var(--line);grid-template-columns:40px 76px 1fr auto;align-items:center;min-height:128px;display:grid;position:relative}.task-card.completed{opacity:.55}.task-card.completed h3{text-decoration:line-through}.check{border:1px solid var(--ink);background:0 0;width:22px;height:22px;font-weight:700;line-height:18px}.check:hover{background:var(--acid)}.date-box{text-align:center;border-right:1px solid var(--line);width:56px}.date-box b{font:400 31px Instrument Serif;display:block}.date-box span{letter-spacing:.12em;font:500 10px DM Mono}.task-main{padding:22px 12px}.task-main h3{letter-spacing:-.025em;margin:9px 0 5px;font-size:20px}.task-main p,.muted{color:var(--muted);margin:0;font-size:14px}.course-tag{text-transform:uppercase;letter-spacing:.06em;padding:4px 7px;font:500 10px DM Mono;display:inline-block}.status{color:#df4923;text-transform:uppercase;font:500 11px DM Mono}.neutral{color:var(--muted)}.course-section{border-top:1px solid var(--ink)}.course-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.course-card{border:1px solid var(--ink);background:#fffdf8;min-height:205px;padding:23px;position:relative;overflow:hidden}.course-card:before{content:"";background:var(--accent);height:7px;position:absolute;top:0;left:0;right:0}.course-card>span{color:var(--muted);font:500 11px DM Mono}.course-card h3{max-width:250px;margin:45px 0 7px;font-size:22px}.course-card p{color:var(--muted);margin:0;font-size:13px}.course-card>b{font:400 25px Instrument Serif;position:absolute;bottom:20px;right:22px}.course-card b small{text-transform:uppercase;font:500 9px DM Mono}.empty{text-align:center;border:1px dashed #aaa79f;place-items:center;min-height:230px;padding:30px;display:grid}.empty b{font-size:21px}.empty p{color:var(--muted);margin:7px 0 18px}.empty.small{min-height:150px}.inline-link{font-weight:700;text-decoration:underline}.global-alert{margin:25px 0 0}.alert{color:#9a2e14;border-left:3px solid var(--orange);background:#ffe2da;padding:11px 13px;font-size:13px}.modal-backdrop{z-index:20;background:#172019a8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border:1px solid var(--ink);width:min(560px,100%);max-height:calc(100vh - 40px);padding:28px;overflow:auto;box-shadow:10px 10px #00000040}.modal-head{justify-content:space-between;align-items:flex-start;margin-bottom:25px;display:flex}.modal-head .eyebrow{margin-bottom:10px}.modal-head h2{letter-spacing:-.04em;margin:0;font-size:34px}.icon-button{border:1px solid var(--ink);background:0 0;width:36px;height:36px;font-size:24px}.form{gap:17px;display:grid}.form label{gap:7px;font-size:13px;font-weight:600;display:grid}.form label span{color:var(--muted);font-weight:400}.form input,.form select,.form textarea{border:1px solid var(--ink);background:#fffdf8;border-radius:0;outline:none;width:100%;padding:12px}.form input:focus,.form select:focus,.form textarea:focus{box-shadow:3px 3px 0 var(--acid)}.form-actions{justify-content:flex-end;align-items:center;gap:17px;margin-top:7px;display:flex}.text-button{background:0 0;border:0;border-bottom:1px solid;padding:6px}.admin-shell{max-width:1440px;margin:auto}.back-link{margin:36px 0;font-size:13px;display:inline-block}.login-card{border:1px solid var(--ink);width:min(540px,100%);box-shadow:9px 9px 0 var(--ink);background:#fffdf8;margin:6vh auto;padding:48px}.login-card .brand-mark{margin-bottom:50px}.login-card h1{font-size:58px}.login-card>p:not(.eyebrow){color:var(--muted);line-height:1.6}.login-card form{gap:16px;margin-top:32px;display:grid}.login-card label{gap:8px;font-size:13px;font-weight:700;display:grid}.login-card input{letter-spacing:.3em;border:1px solid;padding:14px;font:500 22px DM Mono}.admin-heading{border-bottom:1px solid;justify-content:space-between;align-items:flex-end;padding:65px 0 52px;display:flex}.admin-heading h1{font-size:clamp(48px,7vw,88px)}.admin-heading a{font-size:14px;text-decoration:underline}.admin-grid{grid-template-columns:minmax(280px,400px) 1fr;gap:6vw;padding-top:50px;display:grid}.admin-form{background:#fffdf8;border:1px solid;align-self:start;padding:26px}.color-options{gap:9px;display:flex}.color-options button{border:1px solid #0000;width:31px;height:31px}.color-options button.chosen{outline:2px solid var(--ink);outline-offset:2px}.admin-list .section-heading>span{color:var(--muted);font:500 11px DM Mono}.admin-course{border-bottom:1px solid var(--line);border-left:6px solid;justify-content:space-between;align-items:center;padding:20px 16px;display:flex}.admin-course small{color:var(--muted);font:500 10px DM Mono}.admin-course h3{margin:5px 0;font-size:18px}.admin-course p{color:var(--muted);margin:0;font-size:13px}.danger-button{color:#b53217;background:0 0;border:0;font-size:12px;text-decoration:underline}.center-card{place-items:center;min-height:100vh;display:grid}.admin-form>.primary-button{margin-top:8px}@media (width<=800px){.app-shell,.admin-shell{padding:0 22px 50px}.topbar{height:74px}.nav-links a:not(.admin-link){display:none}.hero{flex-direction:column;align-items:flex-start;gap:34px;min-height:auto;padding:54px 0 42px}.hero-copy{font-size:16px}.filters{max-width:100%;overflow:auto}.task-card{grid-template-columns:34px 60px 1fr}.task-card .status{display:none}.task-main h3{font-size:17px}.course-grid{grid-template-columns:1fr}.course-card{min-height:170px}.course-card h3{margin-top:34px}.admin-heading{flex-direction:column;align-items:flex-start;gap:30px}.admin-grid{grid-template-columns:1fr}.login-card{padding:30px}.modal{padding:22px}}@media (width<=480px){.section-heading{flex-direction:column;align-items:flex-start;gap:18px}.task-card{grid-template-columns:30px 52px 1fr}.date-box{width:45px}.task-main{padding-right:0}.task-main p{display:none}.course-tag{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}}:root{--paper:#f7f8f5;--surface:#fff;--line:#e2e5df;--ink:#1d241f;--acid:#dff46a;--muted:#747c75}body{background:radial-gradient(circle at 85% 5%,#dff46a33,transparent 28rem),var(--paper)}.app-shell,.admin-shell{max-width:1440px;margin-inline:auto}.topbar{border-bottom-color:var(--line);height:80px}.brand-mark{background:var(--ink);color:#fff;border:0;transform:none;box-shadow:0 5px 15px #1d241f1f}.nav-links{gap:10px}.nav-links a{border-radius:999px;padding:9px 14px}.nav-links .active{background:#e9ece7;border:0}.admin-link{background:#fff;box-shadow:0 2px 12px #1d241f12;border:0!important;padding:10px 16px!important}.nav-links a:hover,.admin-link:hover{background:#e4e8e2;transform:translateY(-1px)}.hero{border-bottom-color:var(--line);align-items:center;min-height:330px;padding:64px 0 52px}.hero h1{letter-spacing:-.06em;font-size:clamp(52px,7vw,88px);line-height:1}.hero-copy{margin-top:20px;font-size:16px}.primary-button{background:var(--ink);color:#fff;border:0;border-radius:14px;padding:15px 22px;box-shadow:0 8px 24px #1d241f29}.primary-button:hover:not(:disabled){background:#303a32;transform:translateY(-2px);box-shadow:0 12px 28px #1d241f33}.section-number{border-radius:7px}.filters{background:#e9ece7;border-radius:12px;padding:4px}.filters button{border:0;border-radius:9px;padding:8px 14px}.filters .selected{box-shadow:0 3px 10px #1d241f24}.task-list{border:0;gap:10px;display:grid}.task-card{border:1px solid var(--line);background:#fffc;border-radius:18px;grid-template-columns:40px 76px 1fr auto;min-height:116px;padding:0 22px;transition:transform .25s,box-shadow .25s,border-color .25s;box-shadow:0 2px 10px #1d241f08}.task-card:hover{border-color:#cbd0c9;transform:translateY(-2px);box-shadow:0 12px 30px #1d241f12}.check{border-color:#b5bdb5;border-radius:7px;transition:background .2s,transform .2s}.check:hover{transform:scale(1.08)}.date-box{border-right-color:var(--line)}.course-tag{border-radius:7px}.status{background:#fff3ef;border-radius:999px;padding:7px 10px}.status.neutral{background:#eef0ed}.course-section{border-top-color:var(--line)}.course-grid{gap:16px}.course-card{border-color:var(--line);background:#ffffffdb;border-radius:18px;min-height:190px;transition:transform .25s,box-shadow .25s;box-shadow:0 3px 14px #1d241f0a}.course-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px #1d241f17}.course-card:before{height:6px}.course-card h3{margin-top:40px}.empty{background:#ffffff80;border-color:#cbd0c9;border-radius:18px}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1d241f73}.modal{background:var(--surface);border:0;border-radius:22px;box-shadow:0 24px 80px #1d241f3d}.icon-button{background:#eef0ed;border:0;border-radius:10px}.icon-button:hover{background:#e0e4df}.form input,.form select,.form textarea{border-color:var(--line);background:#fafbf9;border-radius:12px;transition:border-color .2s,box-shadow .2s}.form input:focus,.form select:focus,.form textarea:focus{border-color:#9fac9f;box-shadow:0 0 0 4px #899a8b21}.login-card,.admin-form{border-color:var(--line);background:#fff;border-radius:22px;box-shadow:0 16px 48px #1d241f17}.login-card{box-shadow:0 24px 70px #1d241f1f}.login-card input{border-color:var(--line);border-radius:12px}.admin-heading{border-bottom-color:var(--line)}.admin-course{border:1px solid var(--line);background:#fff;border-left:6px solid;border-radius:14px;margin-bottom:9px;transition:transform .2s,box-shadow .2s}.admin-course:hover{transform:translate(3px);box-shadow:0 8px 20px #1d241f0f}@media (width<=800px){.hero{gap:28px;padding:50px 0 42px}.task-card{grid-template-columns:34px 60px 1fr;padding:0 14px}.course-card{min-height:165px}.nav-links{gap:0}}@media (width<=480px){.hero h1{font-size:46px}.hero{padding-top:42px}.primary-button{width:100%}.task-card{grid-template-columns:30px 52px 1fr}.filters{justify-content:space-between;width:100%}.filters button{flex:1}}.app-shell>.task-section{padding-top:42px}.filters .add-button{background:var(--ink);color:#fff;margin-left:6px;padding-inline:16px}.filters .add-button:hover:not(:disabled){background:#303a32;transform:translateY(-1px)}@media (width<=800px){.app-shell>.task-section{padding-top:32px}.section-heading{align-items:flex-start;gap:18px}.filters{flex-wrap:wrap}.filters .add-button{margin-left:0}}@media (width<=480px){.filters .add-button{flex-basis:100%;margin-top:4px}}.task-url{color:#405844;text-underline-offset:3px;align-items:center;margin-top:10px;font-size:12px;font-weight:700;text-decoration:underline;display:inline-flex}.task-url:hover{color:#172019;transform:translate(2px)}.actionable-tag{color:#405b2b;text-transform:uppercase;background:#e4f5c5;border-radius:7px;margin-left:7px;padding:4px 7px;font:500 9px DM Mono;display:inline-block}.keep-active{color:#405b2b;background:#f5faee;border:1px solid #b9c5ad;border-radius:9px;padding:7px 9px;font-size:10px;font-weight:700}.keep-active.enabled{background:#e4f5c5}.keep-active:hover{background:#d9eebd;transform:translateY(-1px)}.task-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.edit-task{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 10px;font-size:11px;font-weight:700}.edit-task:hover{background:#f0f2ee;border-color:#aeb6ae;transform:translateY(-1px)}.delete-task{color:#b63b27;background:0 0;border:0;border-radius:9px;padding:7px 8px;font-size:11px;font-weight:700}.delete-task:hover{background:#fff0ed;transform:translateY(-1px)}@media (width<=480px){.task-main p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.task-url{margin-top:7px}}.workspace-grid{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:32px;padding-top:38px;display:grid}.workspace-grid .task-section{min-width:0;padding:0}.workspace-grid .section-heading{margin-bottom:14px}.standalone{color:#fff;border:0;border-radius:11px;font-weight:700;background:var(--ink)!important;padding:11px 15px!important;font-size:12px!important}.workspace-grid>.task-section>.filters{margin-bottom:18px;display:inline-flex}.workspace-grid .task-card{grid-template-columns:34px 62px minmax(160px,1fr) auto;padding:0 16px}.workspace-grid .task-main{min-width:0}.workspace-grid .task-actions{flex-wrap:wrap;max-width:128px}.workspace-grid .status{text-align:center;width:100%}.calendar-panel{border:1px solid var(--line);background:#ffffffe0;border-radius:22px;padding:22px;position:sticky;top:24px;overflow:hidden;box-shadow:0 12px 36px #1d241f12}.calendar-head{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.calendar-head .eyebrow{margin-bottom:8px}.calendar-head h2{text-transform:capitalize;letter-spacing:-.035em;margin:0;font-size:24px}.calendar-nav{gap:6px;display:flex}.calendar-nav button{border:1px solid var(--line);background:#f8f9f7;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.calendar-nav button:hover{background:#e9ece7;transform:translateY(-1px)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.weekday{color:var(--muted);text-align:center;text-transform:uppercase;padding-bottom:7px;font:500 9px DM Mono}.calendar-day{aspect-ratio:1;background:0 0;border:0;border-radius:10px;font-size:12px;position:relative}.calendar-day:hover{background:#eef1ec}.calendar-day.outside{color:#b9beb9}.calendar-day.today>span{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.calendar-day.selected{background:var(--ink);color:#fff}.calendar-day i{color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:15px;height:15px;font:500 8px DM Mono;display:grid;position:absolute;bottom:3px;right:3px}.calendar-detail{border-top:1px solid var(--line);background:#fafbf9;margin:20px -22px -22px;padding:18px 22px 22px}.calendar-detail>p{text-transform:capitalize;margin:0 0 12px;font-size:12px;font-weight:700}.calendar-empty{color:var(--muted);font-size:12px}.calendar-task{text-align:left;background:#fff;border:0;border-radius:11px;grid-template-columns:5px 1fr auto;align-items:center;gap:10px;width:100%;margin-top:8px;padding:10px;display:grid;box-shadow:0 2px 8px #1d241f0d}.calendar-task:hover{transform:translate(2px);box-shadow:0 5px 15px #1d241f14}.calendar-task>i{border-radius:999px;width:5px;height:100%;min-height:30px}.calendar-task span{gap:3px;display:grid}.calendar-task small{color:var(--muted);font:500 9px DM Mono}.calendar-task b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.calendar-task em{font-style:normal}@media (width<=1100px){.workspace-grid{grid-template-columns:1fr}.calendar-panel{grid-row:2;position:static}.workspace-grid .task-actions{max-width:none}}@media (width<=800px){.workspace-grid{gap:26px;padding-top:28px}.workspace-grid .task-card{grid-template-columns:34px 60px minmax(0,1fr);padding:0 14px}.workspace-grid .task-actions{grid-column:3;justify-content:flex-start;padding:0 0 14px}.workspace-grid .status{width:auto;display:none}.calendar-panel{padding:18px}.calendar-detail{margin:18px -18px -18px;padding:16px 18px 18px}}@media (width<=480px){.workspace-grid .section-heading{flex-direction:row;align-items:center}.standalone{width:auto}.calendar-day{border-radius:8px}.calendar-panel{border-radius:18px}}.import-shell{padding-bottom:80px}.import-shell .back-link{margin:0}.import-filters{margin:34px 0 20px;display:inline-flex}.import-list{gap:12px;display:grid}.import-card{border:1px solid var(--line);background:#fff;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(230px,330px);gap:30px;padding:24px;display:grid}.import-content{min-width:0}.import-content time{color:var(--muted);margin-left:9px;font:500 11px DM Mono}.import-content h2{margin:13px 0 8px;font-size:20px}.import-content>p{color:var(--muted);white-space:pre-line;margin:0;font-size:13px;line-height:1.55}.import-status{text-transform:uppercase;background:#eef0ed;border-radius:999px;padding:5px 8px;font:500 9px DM Mono}.import-status.pending{background:#fff0c7}.import-status.imported{background:#e4f5c5}.import-actions{flex-wrap:wrap;place-content:flex-start flex-end;align-items:flex-start;gap:10px;display:flex}.import-actions select{border:1px solid var(--line);background:#fafbf9;border-radius:10px;width:100%;padding:11px}.import-actions .primary-button{padding:11px 14px;font-size:12px}.import-actions .text-button{font-size:12px}.import-metadata{background:#f7f8f5;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:20px 0 0;padding:16px;display:grid}.import-metadata div{min-width:0}.import-metadata .wide{grid-column:1/-1}.import-metadata dt,.source-details dt{color:var(--muted);text-transform:uppercase;margin-bottom:4px;font:500 9px DM Mono}.import-metadata dd,.source-details dd{overflow-wrap:anywhere;margin:0;font-size:12px}.source-details{border:1px solid var(--line);border-radius:12px;margin-top:13px}.source-details summary{cursor:pointer;padding:12px 14px;font-size:12px;font-weight:700}.source-details dl{border-top:1px solid var(--line);gap:12px;margin:0;padding:4px 14px 14px;display:grid}.source-details dl div{padding-top:10px}.source-details dd{white-space:pre-wrap}.scraped-course{color:#35477e;background:#e8edff;border-radius:7px;margin-left:9px;padding:5px 8px;font:500 9px DM Mono;display:inline-block}.missing-url{color:var(--muted);margin-top:9px;font-size:11px;font-style:italic;display:block}.scraped-course.mapped{color:#344e20;background:#e4f5c5}.calendar-tabs{border-bottom:1px solid var(--line);gap:6px;margin-top:34px;display:flex}.calendar-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:13px 16px;font-weight:700}.calendar-tabs button.active{border-bottom-color:var(--ink);color:var(--ink)}.import-shell .calendar-tabs+.import-filters{margin-top:20px}.mapping-panel{gap:10px;padding-top:20px;display:grid}.mapping-row{border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:center;gap:30px;padding:20px 22px;display:grid}.mapping-row>div{justify-items:start;gap:7px;min-width:0;display:grid}.mapping-row span{color:var(--muted);text-transform:uppercase;font:500 9px DM Mono}.mapping-row code{overflow-wrap:anywhere;max-width:100%;font:500 13px DM Mono}.mapping-row small{color:#a3482e;font-size:11px}.mapping-row label{gap:7px;display:grid}.mapping-row select{border:1px solid var(--line);background:#fafbf9;border-radius:10px;width:100%;padding:12px}.mapping-hint{color:#58713e;width:100%;font-size:10px}.inbox-filter-row{justify-content:space-between;align-items:flex-end;gap:20px;margin:20px 0;display:flex}.inbox-filter-row>div{gap:7px;display:grid}.filter-label{color:var(--muted);text-transform:uppercase;font:500 9px DM Mono}.inbox-filter-row .import-filters{margin:0}.deadline-filters{display:inline-flex}.deadline-filters button{white-space:nowrap}@media (width<=800px){.mapping-row{grid-template-columns:1fr;gap:16px}.calendar-tabs{overflow:auto}.calendar-tabs button{white-space:nowrap}.inbox-filter-row{flex-direction:column;align-items:stretch}.inbox-filter-row .filters{display:flex;overflow:auto}.inbox-filter-row .filters button{white-space:nowrap}}.copy-deadlines{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:11px;width:100%;margin-top:16px;padding:11px 14px;font-size:12px;font-weight:700}.copy-deadlines:hover:not(:disabled){background:#303a32;transform:translateY(-1px)}@media (width<=800px){.import-heading{flex-direction:column;align-items:flex-start;padding:42px 0 32px}.import-card{grid-template-columns:1fr}.import-actions{justify-content:flex-start}.import-filters{display:flex;overflow:auto}.import-filters button{white-space:nowrap}}
