:root{--ink:#192f39;--muted:#697871;--paper:#f6f7f1;--line:#dfe5da;--lime:#d9f493;--moss:#385842;--red:#9e403d;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:4px;outline:3px solid #708f4c}a{color:inherit;text-decoration:none}button{background:0 0;border:0}p,h1,h2,h3{margin:0}button svg,a svg{flex-shrink:0}button{touch-action:manipulation}.app{max-width:980px;margin:0 auto;padding:0 36px}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:28px 0 22px;display:flex}.brand{letter-spacing:-.8px;align-items:center;gap:11px;font-size:23px;font-weight:750;line-height:1.1;display:flex}.brand small{letter-spacing:2.2px;margin-top:7px;font-size:8px;font-weight:650;display:block}.brand-dot{color:#6c8d48}.brand-mark{background:var(--ink);width:44px;height:44px;color:var(--lime);border-radius:14px;place-items:center;display:grid}.header-actions{align-items:center;gap:20px;display:flex}.icon-button{border:1px solid var(--line);background:#fff8;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.icon-button:hover{background:#fff}.is-loading svg,.spin{animation:1.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sync-line{color:var(--muted);align-items:center;gap:7px;margin-top:20px;font-size:11px;display:flex}.status-dot{background:#668450;border-radius:50%;width:6px;height:6px}.warning-text .status-dot{background:#b87633}.warning-text{color:#915b24}.intro{justify-content:space-between;align-items:center;gap:20px;margin:34px 0 30px;display:flex}.eyebrow{letter-spacing:1.7px;color:var(--moss);font-size:10px;font-weight:700;line-height:1.5}h1{letter-spacing:-2px;margin:12px 0;font-size:45px;font-weight:730;line-height:1.13}h1 span{color:#648849}.subtext{color:var(--muted);font-size:15px;line-height:1.6}.mobile-break{display:none}.date-stamp{text-align:right;border-left:1px solid var(--line);min-width:150px;padding-left:35px}.date-stamp strong{letter-spacing:-4px;font-size:64px;font-weight:350;line-height:1;display:block}.date-stamp span{color:var(--muted);margin-top:8px;font-size:12px;display:block}.next-course{text-align:left;background:var(--ink);color:#fff;border-radius:22px;align-items:center;gap:18px;width:100%;padding:24px;display:flex}.next-symbol{background:var(--lime);width:47px;height:47px;color:var(--ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.next-course>span:nth-child(2){flex-direction:column;gap:7px;min-width:0;display:flex}.next-course small{letter-spacing:1.6px;color:var(--lime);font-size:9px;font-weight:650}.next-course strong{font-size:18px;line-height:1.3}.next-course>span>span{color:#c5d1cc;font-size:12px;line-height:1.5}.next-arrow{color:var(--lime);flex-shrink:0;margin-left:auto}.install-strip{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:15px 2px;font-size:11px;display:flex}.text-button{color:var(--moss);white-space:nowrap;align-items:center;gap:7px;padding:7px 0;font-size:12px;font-weight:650;display:inline-flex}.text-button:hover{text-decoration:underline}.section-heading{justify-content:space-between;align-items:center;margin:24px 0 18px;display:flex}.section-heading h2{letter-spacing:-.6px;font-size:22px;font-weight:650}.segment{border:1px solid var(--line);border-radius:13px;gap:3px;padding:4px;display:flex}.segment button{color:var(--muted);border-radius:9px;padding:9px 18px;font-size:12px;font-weight:650}.segment .active{background:var(--ink);color:#fff}.agenda{border:1px solid var(--line);background:#fff;border-radius:22px;padding:20px 26px 25px}.week-nav{justify-content:space-between;align-items:center;margin-bottom:17px;display:flex}.week-nav strong{font-size:13px;font-weight:650}.week-nav .icon-button{background:var(--paper);border:0;width:35px;height:35px}.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.day{color:var(--muted);border-radius:15px;flex-direction:column;align-items:center;gap:7px;padding:12px 5px 10px;display:flex}.day:hover{background:var(--paper)}.day span{text-transform:capitalize;font-size:11px}.day strong{color:var(--ink);font-size:20px;font-weight:650}.day i{background:0 0;border-radius:50%;width:4px;height:4px}.day .has-course{background:#9dab90}.day.selected{background:var(--ink);color:#cbd8d0}.day.selected strong{color:#fff}.day.selected i.has-course{background:var(--lime)}.search-row{align-items:center;gap:12px;margin:20px 0 24px;display:flex}.search{border:1px solid var(--line);background:var(--paper);min-width:0;color:var(--muted);border-radius:12px;flex:1;align-items:center;gap:9px;padding:12px;display:flex}.search input{width:100%;color:var(--ink);background:0 0;border:0;outline:none;min-width:0;font-size:12px}.search input:focus-visible{outline:none}.search:focus-within{box-shadow:0 0 0 2px #708f4c}.today{color:var(--moss);padding:10px 0;font-size:11px;font-weight:650}.day-group+.day-group{margin-top:28px}.day-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px;display:flex}.day-heading h3{text-transform:capitalize;font-size:12px;font-weight:650}.day-heading>span{color:var(--muted);font-size:10px}.course-row{text-align:left;border-radius:15px;align-items:stretch;gap:16px;width:100%;margin-top:12px;padding:0;display:flex}.hours{flex-direction:column;flex-shrink:0;gap:5px;width:50px;padding-top:17px;display:flex}.hours strong{font-size:13px;font-weight:650}.hours>span{color:var(--muted);font-size:11px}.course{border-left:3px solid #8499b9;border-radius:16px;flex-direction:column;flex:1;gap:10px;min-width:0;padding:17px 19px;transition:transform .15s;display:flex}.course-row:hover .course{transform:translate(3px)}.course-top{letter-spacing:1.3px;opacity:.7;justify-content:space-between;align-items:center;font-size:8px;font-weight:700;display:flex}.course-title{font-size:15px;font-weight:650;line-height:1.45}.location{color:#566960;align-items:center;gap:6px;font-size:11px;line-height:1.4;display:flex}.blue{background:#eaf0ff;border-color:#8b9bca}.violet{background:#f3eaf7;border-color:#b192bd}.green{background:#e6f2e9;border-color:#8aa793}.peach{background:#fff0d9;border-color:#cfac77}.slate{background:#e9eef0;border-color:#8c9da4}.cancelled{background:#fff0ed;border-color:#cc9086}.cancelled .course-title{text-decoration:line-through}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:13px;padding:50px 12px 58px;display:flex}.empty>svg{color:#65844e;margin:5px}.empty h3{color:var(--ink);letter-spacing:-.4px;font-size:19px;font-weight:650}.empty p{max-width:320px;font-size:13px;line-height:1.7}.empty button{margin-top:10px}.alert{color:#8b5824;background:#fff0dd;border-radius:16px;align-items:flex-start;gap:13px;margin-top:20px;padding:18px;font-size:12px;display:flex}.alert>svg{flex-shrink:0;margin-top:2px}.alert strong{font-size:12px}.alert p{margin-top:5px;line-height:1.6}.alert .text-button{color:#8b5824;margin-left:auto}.page-eyebrow{margin-top:36px}.notice{background:#e9efdf;border-radius:14px;margin:26px 0;padding:18px;font-size:12px;line-height:1.7}.change-card{border:1px solid var(--line);background:#fff;border-radius:16px;margin-bottom:12px;padding:21px}.change-card>div{justify-content:space-between;gap:12px;font-size:10px;display:flex}.change-tag{color:var(--moss);font-weight:700}.change-card time{color:var(--muted)}.change-card h3{margin:12px 0 7px;font-size:15px;line-height:1.5}.change-card p{color:var(--muted);white-space:pre-wrap;font-size:12px;line-height:1.7}.settings-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:28px;display:grid}.settings-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:24px}.settings-card h2{letter-spacing:-.4px;margin-bottom:12px;font-size:18px;font-weight:650}.settings-card h3{margin-bottom:9px;font-size:14px;font-weight:650}.settings-card>p{color:var(--muted);margin-bottom:15px;font-size:13px;line-height:1.8}.field-label{letter-spacing:1.3px;color:var(--muted);margin-bottom:9px;font-size:9px;font-weight:700;display:block}.settings-card textarea{background:var(--paper);border:1px solid var(--line);resize:vertical;width:100%;color:var(--ink);overflow-wrap:anywhere;border-radius:11px;margin-bottom:15px;padding:12px;font-size:12px;line-height:1.8}.primary{background:var(--ink);color:#fff;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:12px 20px;font-size:12px;font-weight:650;display:inline-flex}.secondary{background:var(--lime);color:var(--ink)}.hint,.settings-card .hint{color:var(--muted);margin-top:13px;font-size:11px;line-height:1.8}.success{color:var(--moss);margin-top:10px;font-size:12px;line-height:1.7}.danger{color:var(--red)!important}.settings-card hr{border:0;border-top:1px solid var(--line);margin:22px 0}.status-box{background:var(--paper);border-radius:12px;align-items:center;gap:12px;margin:18px 0;padding:15px;display:flex}.status-box small{letter-spacing:1px;color:var(--muted);margin-bottom:7px;font-size:8px;font-weight:650;display:block}.status-box strong{font-size:12px}.text-link{color:var(--moss);align-items:center;gap:5px;font-size:12px;font-weight:650;display:inline-flex}footer{text-align:center;color:var(--muted);padding:26px 0 135px;font-size:10px;line-height:1.9}footer span{opacity:.75;font-size:9px}.tab-bar{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);background:#fffefbf2;border-radius:22px;grid-template-columns:repeat(3,1fr);width:min(500px,100% - 40px);padding:9px 15px;display:grid;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #192f3914}.tab-bar button{color:var(--muted);flex-direction:column;align-items:center;gap:5px;font-size:10px;font-weight:550;display:flex}.tab-bar button>span{border-radius:12px;place-items:center;width:52px;height:31px;display:grid}.tab-bar .active{color:var(--ink);font-weight:700}.tab-bar .active>span{background:var(--lime)}.detail-dialog{color:var(--ink);background:var(--paper);overscroll-behavior:contain;border:0;border-radius:24px;width:min(540px,100% - 28px);max-height:88dvh;padding:26px 30px 30px;overflow:auto}.detail-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d252e77}.dialog-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.dialog-head .icon-button{width:34px;height:34px}.detail-dialog h2{letter-spacing:-.8px;font-size:27px;font-weight:700;line-height:1.3}.detail-date{color:var(--muted);text-transform:capitalize;margin-top:20px;font-size:13px}.detail-time{letter-spacing:-.5px;margin-top:7px;font-size:26px;font-weight:550}.detail-section{border-top:1px solid var(--line);margin-top:24px;padding-top:22px;font-size:14px;line-height:1.8}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.detail-dialog .primary{width:100%;margin-top:20px}.install-overlay{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d252e77;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.install-dialog{background:var(--paper);border-radius:23px;width:100%;max-width:490px;max-height:90dvh;padding:28px;overflow:auto}.install-dialog h2{letter-spacing:-.9px;margin-bottom:25px;font-size:27px;font-weight:700}.install-dialog h3{margin:20px 0 10px;font-size:15px;font-weight:650}.install-dialog p{color:var(--muted);font-size:13px;line-height:1.8}.install-dialog .primary{width:100%;margin-top:20px}@media (width>=760px){.course-row{max-width:720px}.agenda{padding:23px 35px 32px}.days{gap:20px}.day{padding-top:14px;padding-bottom:13px}.day strong{font-size:23px}.day span{font-size:12px}.course-title{font-size:16px}.hours{width:60px}.course{padding:18px 24px}.next-course{padding:26px 30px}.intro{margin-top:40px;margin-bottom:36px}}@media (width<=600px){.app{padding:0 21px}.header{padding:21px 0 20px;padding-top:max(21px,env(safe-area-inset-top))}.brand{font-size:21px}.brand-mark{border-radius:12px;width:40px;height:40px}.intro{margin:28px 0 25px}.intro h1{letter-spacing:-1.5px;font-size:36px}.mobile-break{display:block}.date-stamp{display:none}.eyebrow{letter-spacing:1.35px;font-size:8px}.subtext{font-size:13px}.next-course{border-radius:19px;gap:13px;padding:20px 17px}.next-symbol{width:38px;height:38px}.next-course strong{font-size:15px}.next-course small{letter-spacing:1.2px;font-size:8px}.next-course>span>span{font-size:10px}.next-arrow{display:none}.install-strip{gap:8px;font-size:10px}.install-strip .text-button{gap:4px;font-size:10px}.section-heading{margin-top:24px}.section-heading h2{font-size:21px}.segment button{padding:7px 13px;font-size:10px}.agenda{background:0 0;border:0;padding:14px 0 7px}.week-nav{margin-bottom:13px}.week-nav strong{font-size:12px}.week-nav .icon-button{border:1px solid var(--line);background:#fff}.days{gap:3px}.day{border-radius:13px;padding:11px 4px}.day strong{font-size:18px}.day span{font-size:10px}.search-row{gap:10px;margin-top:18px;margin-bottom:25px}.search{background:#fff;padding:12px 10px}.search input{font-size:11px}.today{font-size:10px}.course-row{gap:10px}.hours{width:46px;padding-top:16px}.hours strong{font-size:12px}.hours>span{font-size:10px}.course{border-radius:14px;gap:9px;padding:14px 15px}.course-title{font-size:14px}.course-top{font-size:7px}.location{font-size:10px}.day-heading{margin-bottom:13px}.day-heading h3{font-size:11px}.alert{flex-wrap:wrap;gap:9px;padding:15px}.alert>div{flex:1;min-width:190px}.alert .text-button{margin:0 0 0 28px;padding:0}.settings-grid{grid-template-columns:1fr;gap:15px}.settings-card{padding:22px}.settings-card textarea{font-size:16px;line-height:1.6}.search input{font-size:16px;transform:none}.search input::placeholder{font-size:11px}h1{letter-spacing:-1.4px;font-size:33px}.page-eyebrow{margin-top:28px}.tab-bar{width:100%;padding:10px 25px max(13px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0;bottom:0;box-shadow:0 -4px 20px #192f3907}.tab-bar button{font-size:9px}.tab-bar button>span{height:30px}.detail-dialog{width:100%;max-height:90dvh;padding:23px;padding-bottom:max(25px,env(safe-area-inset-bottom));border-radius:25px 25px 0 0;margin:auto auto 0}.detail-dialog h2{font-size:25px}.install-dialog{padding:23px}.install-dialog h2{font-size:25px}.empty{padding-top:38px;padding-bottom:44px}.change-card{padding:19px}.change-card>div{font-size:9px}.change-card h3{font-size:14px}.course-top svg{width:15px}.status-box strong{font-size:12px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.install-dialog{color:var(--ink);border:0;width:min(490px,100% - 32px);margin:auto}.install-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d252e77}.feed-summary{color:var(--muted);flex-wrap:wrap;gap:4px 9px;margin-top:7px;font-size:11px;line-height:1.6;display:flex}.feed-summary strong{color:var(--moss);font-weight:650}.refresh-button{min-width:126px;padding:12px 16px}.refresh-button.is-loading svg{animation:1.5s linear infinite spin}@media (width<=600px){.header-actions{gap:0}.refresh-button{min-width:115px;padding:11px 12px;font-size:11px}}
