@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_53cf7e2c-module__qN6QFG__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_53cf7e2c-module__qN6QFG__variable{--font-body:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.0vlx5hthn2t7i.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0fu677rwbv-.g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.p.0zzh68k1~whtc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_fd956a0c-module__JYlfxG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_fd956a0c-module__JYlfxG__variable{--font-display:"Fraunces", "Fraunces Fallback"}
:root{--primary:#6366f1;--primary-hover:#4f46e5;--primary-dark:#4338ca;--primary-light:#818cf8;--primary-bg:#6366f10d;--primary-border:#6366f124;--bg:#f8fafc;--surface:#fff;--surface-alt:#f1f5f9;--surface-raised:#fff;--text:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--success:#10b981;--success-bg:#10b98112;--success-border:#10b98133;--warning:#f59e0b;--warning-bg:#f59e0b12;--warning-border:#f59e0b38;--danger:#ef4444;--danger-bg:#ef44440d;--danger-border:#ef44442e;--border:#0f172a12;--border-hover:#0f172a21;--ring:0 0 0 3px #6366f12e;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000d, 0 1px 2px -1px #0000000d;--shadow:0 4px 6px -1px #0000000f, 0 2px 4px -2px #0000000d;--shadow-md:0 8px 20px -4px #00000014, 0 4px 8px -4px #0000000a;--shadow-lg:0 20px 40px -8px #0000001a, 0 8px 16px -8px #0000000a;--radius-xs:.375rem;--radius-sm:.5rem;--radius:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--ease:cubic-bezier(.4, 0, .2, 1);--duration:.16s;--plan-accent:#4f46e5;--plan-accent-hover:#4338ca;--plan-accent-soft:#818cf8;--sidebar-card-bg:#fff;--sidebar-card-border:#0f172a1a;--sidebar-card-border-soft:#0f172a12;--sidebar-card-inset-line:#0f172a0d;--sidebar-card-edge-glow:#ffffffa6;--plan-selected-bg:#f4f3fb;--plan-accent-bg:#4f46e51a;--plan-accent-bg-hover:#4f46e529;--plan-accent-border:#4f46e566;--plan-accent-border-soft:#4f46e538;--plan-accent-ring:0 0 0 3px #6366f147;--plan-replace:#2563eb;--plan-replace-bg:#2563eb17;--plan-replace-bg-hover:#2563eb26;--plan-replace-border:#2563eb61;--plan-replace-ring:0 0 0 3px #2563eb38;--plan-remove-fg:#dc2626;--plan-remove-bg:#dc26261a;--plan-remove-bg-hover:#dc262629;--plan-remove-border:#dc262657;--plan-remove-ring:0 0 0 3px #dc262633;--tooltip-ease:cubic-bezier(.16, 1, .3, 1);--tooltip-show-delay:.58s;--tooltip-show-dur:.22s;--tooltip-hide-dur:.1s;--tooltip-bg:#0f172af0;--tooltip-fg:#f8fafc;--tooltip-border:#ffffff1a;--tooltip-shadow:0 0 0 1px #ffffff0f inset, 0 10px 38px -10px #0f172a73, 0 4px 16px -4px #0000002e;--tooltip-radius:10px;--tooltip-font:.8125rem;--tooltip-line-height:1.5;--tooltip-pad-y:.52rem;--tooltip-pad-x:.72rem}*{box-sizing:border-box}html,body{font-family:var(--font-body), "Trebuchet MS", sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;margin:0;padding:0}.app-shell{gap:1.1rem;width:min(1380px,100% - 2.5rem);margin:1.75rem auto 3.5rem;display:grid}.hero{border-radius:var(--radius-xl);z-index:0;background:linear-gradient(135deg,#1e1b4b 0%,#3730a3 40%,#6366f1 100%);border:none;padding:2.5rem 2.75rem 2.25rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0f,0 20px 50px -12px #1e1b4b80}.hero:before{content:"";filter:blur(50px);z-index:-1;pointer-events:none;background:radial-gradient(circle,#818cf840,#0000 65%);border-radius:50%;width:500px;height:500px;position:absolute;top:-40%;right:-15%}.hero:after{content:"";filter:blur(50px);z-index:-1;pointer-events:none;background:radial-gradient(circle,#a78bfa33,#0000 65%);border-radius:50%;width:400px;height:400px;position:absolute;bottom:-30%;left:-10%}.hero-topline{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.hero-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;display:inline-flex}.eyebrow{color:#ffffff8c;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.hero-share-wrap{justify-content:flex-end;align-items:center;gap:0;min-height:1.35rem;display:inline-flex;position:relative}.hero-share-btn{color:#ffffffed;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease);background:#ffffff1a;border:1px solid #ffffff57;border-radius:999px;padding:.2rem .58rem;font-size:.72rem;font-weight:680;line-height:1.2}.hero-share-btn:hover{background:#ffffff2e;border-color:#ffffff7a}.hero-share-btn:focus-visible{outline-offset:2px;outline:2px solid #ffffffa6}.hero-share-note{text-align:right;color:#ffffffe0;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:2;width:max-content;max-width:none;transition:opacity .24s var(--ease), visibility .24s var(--ease);padding:.12rem 0;font-size:.69rem;font-weight:560;line-height:1.35;position:absolute;top:50%;right:calc(100% + .42rem);transform:translateY(-50%)}.hero-share-note--wrap{white-space:normal;width:auto;max-width:min(220px,72vw)}.hero-share-note--visible{opacity:1;visibility:visible}.hero-share-wrap.has-tooltip{position:relative}.hero-share-wrap.has-tooltip:after{content:attr(data-tooltip);z-index:100;box-sizing:border-box;width:min(18.5rem,100vw - 2rem);padding:var(--tooltip-pad-y) var(--tooltip-pad-x);border-radius:var(--tooltip-radius);border:1px solid var(--tooltip-border);background:var(--tooltip-bg);color:var(--tooltip-fg);font-size:var(--tooltip-font);font-weight:550;line-height:var(--tooltip-line-height);letter-spacing:.01em;text-align:left;box-shadow:var(--tooltip-shadow);-webkit-backdrop-filter:blur(12px);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--tooltip-hide-dur) var(--tooltip-ease), transform var(--tooltip-hide-dur) var(--tooltip-ease), visibility 0s linear var(--tooltip-hide-dur);position:absolute;top:calc(100% + .52rem);left:auto;right:0;transform:translateY(-6px)}.hero-share-wrap.has-tooltip:hover:after{opacity:1;visibility:visible;transition:opacity var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), transform var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), visibility 0s linear 0s;transform:translate(0,0)}.hero-share-wrap.has-tooltip:has(.hero-share-btn:focus-visible):after{opacity:1;visibility:visible;transition:opacity var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), transform var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), visibility 0s linear 0s;transform:translate(0,0)}.hero h1{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;color:#fff;margin:.6rem 0 .5rem;font-size:clamp(2.1rem,3.5vw,3rem);line-height:1.1}.hero-copy{color:#ffffffc7;max-width:66ch;margin:0;font-size:.98rem;line-height:1.65}.hero-copy-secondary{color:#ffffff80;margin-top:.55rem;font-size:.88rem}.hero-copy-link{color:#ffffffe6;text-underline-offset:.22rem;transition:text-decoration-color var(--duration) var(--ease);font-weight:600;-webkit-text-decoration:underline #ffffff4d;text-decoration:underline #ffffff4d}.hero-copy-link:hover{text-decoration-color:#ffffffb3}.hero-copy-link:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #fff9}.toolbar{gap:.75rem;display:grid}.planner-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:1.1rem;display:grid}.planner-sidebar{align-self:start;gap:.7rem;display:grid;position:sticky;top:1rem}.control-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(440px,100%);box-shadow:var(--shadow-sm);gap:.5rem;padding:.9rem 1rem;display:grid}.control-card--sidebar{border:1px solid var(--sidebar-card-border);box-shadow:0 6px 18px -12px #0f172a38, 0 0 0 1px var(--sidebar-card-edge-glow) inset, inset 0 0 0 1px var(--sidebar-card-inset-line);background:linear-gradient(#fff 0%,#fbfcff 100%);position:relative;overflow:hidden}.control-card--sidebar:before{content:"";pointer-events:none;background:linear-gradient(90deg,#6366f147,#6366f105);width:100%;height:2px;position:absolute;inset:0 auto auto 0}.control-card--sidebar>*{z-index:1;position:relative}.control-card--sidebar .control-head{border-bottom:1px solid var(--sidebar-card-border-soft);margin-bottom:.1rem;padding-bottom:.42rem}.plan-panel.control-card--sidebar{overflow:visible}.plan-panel.control-card--sidebar:before{display:none}.control-head{justify-content:space-between;align-items:center;display:flex}.control-label{color:var(--text);font-size:.88rem;font-weight:640}.control-count{border:1px solid var(--primary-border);background:var(--primary-bg);min-width:5.2rem;color:var(--primary);border-radius:999px;justify-content:center;align-items:center;padding:.2rem .55rem;font-size:.76rem;font-weight:700;display:inline-flex}.select-input{width:100%;color:var(--text);border:1.5px solid var(--border-hover);border-radius:var(--radius-sm);appearance:none;background-color:var(--surface);transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .72rem center;background-repeat:no-repeat;background-size:1rem 1rem;padding:.6rem 2.4rem .6rem .78rem;font-size:.95rem}.select-input:hover{border-color:var(--primary-border)}.select-input:focus-visible{border-color:var(--primary);box-shadow:var(--ring);outline:none}.course-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.status-panel{min-height:0;margin:0}.status-primary{color:var(--primary);margin:0;font-size:.93rem;font-weight:620}.status-secondary{color:var(--text-muted);margin:.12rem 0 0;font-size:.86rem}.empty-state{text-align:center;background:var(--surface);border:2px dashed var(--border-hover);border-radius:var(--radius-lg);padding:3rem 1.5rem}.empty-state h2{color:var(--text-secondary);margin:0;font-size:1.15rem}.empty-state p{max-width:50ch;color:var(--text-muted);margin:.55rem auto 0;font-size:.92rem}.course-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:.75rem;display:grid}.course-list-stack{gap:1rem;display:grid}.course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), border-color var(--duration) var(--ease), background-color var(--duration) var(--ease), opacity .19s ease, filter .19s ease;flex-direction:column;padding:1.15rem 1.2rem;display:flex;position:relative;box-shadow:0 1px 2px #0f172a09}.course-card-minimizing{opacity:0;filter:saturate(.85)blur(.2px);pointer-events:none;transform:translateY(8px)scale(.982)}.course-card-in-plan{background:var(--plan-selected-bg);border:1px solid var(--plan-accent-border);box-shadow:var(--shadow-xs)}.course-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-border);transform:translateY(-3px)}.course-card-in-plan:hover{border-color:var(--plan-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-3px)}.course-card h3{margin:0 2rem .4rem 0;font-size:1.02rem;font-weight:620;line-height:1.32}.course-meta{width:fit-content;color:var(--text-muted);letter-spacing:.01em;background:0 0;border:none;border-radius:0;order:-1;align-items:center;margin:0;padding:0;font-size:.68rem;font-weight:600;display:inline-flex}.course-meta-row{order:-1;align-items:center;margin-bottom:.55rem;display:inline-flex}.course-card ul{color:var(--text-secondary);gap:.3rem;margin:0 0 auto;padding-bottom:.55rem;padding-left:1.1rem;font-size:.9rem;line-height:1.45;display:grid}.course-details{gap:.4rem;margin:0 0 auto;padding:0 0 .45rem;display:grid}.course-detail-row{align-items:flex-start;gap:.5rem;display:flex}.course-detail-row dt{color:var(--text-muted);white-space:nowrap;align-items:flex-start;gap:.3rem;min-width:5.5rem;padding-top:.08rem;font-size:.8rem;font-weight:600;display:inline-flex}.course-detail-row dt svg{opacity:.55;flex-shrink:0;width:.88rem;height:.88rem}.course-detail-row dd{color:var(--text-secondary);min-width:0;margin:0;font-size:.88rem}.course-dates-block{max-width:100%;display:inline}.course-dates-inline{word-break:break-word;line-height:1.45}.course-dates-more-link{border:1px solid var(--primary-border);color:var(--primary);cursor:pointer;transition:color var(--duration) var(--ease), border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);background:0 0;border-radius:999px;margin-left:.2rem;padding:.04rem .26rem;line-height:1}.course-dates-more-link:hover{color:var(--primary-hover);background:#6366f114;border-color:#6366f15c}.course-dates-more-link svg{width:.82rem;height:.82rem;display:block}.course-dates-more-link:focus-visible{box-shadow:var(--ring);border-radius:2px;outline:none}.course-plan-tooltip-wrap{position:relative}.course-card-corner{z-index:1;align-items:center;display:inline-flex;position:absolute;top:.65rem;right:.65rem}.course-card-action-minimize{position:static}.course-plan-tooltip-wrap.has-tooltip:after,.plan-gap-hint-inner.has-tooltip:after{content:attr(data-tooltip);z-index:100;box-sizing:border-box;width:min(17.5rem,100vw - 2rem);padding:var(--tooltip-pad-y) var(--tooltip-pad-x);border-radius:var(--tooltip-radius);border:1px solid var(--tooltip-border);background:var(--tooltip-bg);color:var(--tooltip-fg);font-size:var(--tooltip-font);font-weight:550;line-height:var(--tooltip-line-height);letter-spacing:.01em;text-align:left;box-shadow:var(--tooltip-shadow);-webkit-backdrop-filter:blur(10px);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--tooltip-hide-dur) var(--tooltip-ease), transform var(--tooltip-hide-dur) var(--tooltip-ease), visibility 0s linear var(--tooltip-hide-dur);position:absolute;bottom:calc(100% + .48rem);transform:translateY(8px)}.course-plan-tooltip-wrap.has-tooltip:after{left:auto;right:0}.plan-gap-hint-inner.has-tooltip:after{white-space:pre-line;width:min(19rem,100vw - 2rem);left:0;right:auto}.plan-gap-hint--tooltip.has-tooltip:after{z-index:280}.course-plan-tooltip-wrap.has-tooltip:hover:after{opacity:1;visibility:visible;transition:opacity var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), transform var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), visibility 0s linear 0s;transform:translate(0,0)}.course-plan-tooltip-wrap.has-tooltip:has(button:focus-visible):after{opacity:1;visibility:visible;transition:opacity var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), transform var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), visibility 0s linear 0s;transform:translate(0,0)}.plan-gap-hint-inner.has-tooltip:hover:after{opacity:1;visibility:visible;transition:opacity var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), transform var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), visibility 0s linear 0s;transform:translate(0,0)}.course-plan-icon-btn{border:1px solid var(--plan-accent-border-soft);background:var(--plan-accent-bg);width:2rem;height:2rem;color:var(--plan-accent);border-radius:var(--radius-xs);cursor:pointer;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease), transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);justify-content:center;align-items:center;padding:0;display:inline-flex}.course-minimize-btn{border:1px solid var(--border);background:var(--surface);width:1.2rem;height:1.2rem;color:var(--text-muted);cursor:pointer;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease), transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), opacity var(--duration) var(--ease);opacity:.72;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.course-minimize-btn svg{width:.62rem;height:.62rem}.course-minimize-btn:hover{background:var(--surface-alt);color:var(--text-secondary);border-color:var(--border-hover);opacity:1;transform:scale(1.04)}.course-minimize-btn:focus-visible{box-shadow:var(--ring);outline:none}.minimized-courses-panel{border:0;border-top:1px solid var(--border);background:0 0;gap:.38rem;padding:.45rem 0 0;display:grid}.minimized-courses-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.minimized-courses-head h2{color:var(--text-secondary);margin:0;font-size:.8rem}.minimized-courses-head span{background:var(--surface-alt);border:1px solid var(--border);min-width:1.4rem;height:1.4rem;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.minimized-courses-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.minimized-course-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.65rem;padding:.4rem .1rem;animation:.22s cubic-bezier(.2,.7,.2,1) minimized-item-in;display:flex}.minimized-course-item:last-child{border-bottom:none}.minimized-course-main{min-width:0}.minimized-course-title{color:var(--text-secondary);margin:0;font-size:.77rem;line-height:1.35}.minimized-course-meta{color:var(--text-muted);margin:.08rem 0 0;font-size:.7rem}.minimized-course-actions{align-items:center;gap:0;display:inline-flex}.minimized-restore-btn{color:var(--plan-accent);cursor:pointer;text-underline-offset:.14rem;transition:color var(--duration) var(--ease), text-decoration-color var(--duration) var(--ease);background:0 0;border:none;border-radius:2px;padding:0;font-size:.71rem;font-weight:650;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.minimized-restore-btn:hover{color:var(--plan-accent-hover);-webkit-text-decoration-color:var(--plan-accent-border-soft);text-decoration-color:var(--plan-accent-border-soft)}.course-plan-icon-btn:hover:not(:disabled){background:var(--plan-accent-bg-hover);border-color:var(--plan-accent-border);color:var(--plan-accent-hover);transform:scale(1.04)}.course-plan-icon-btn svg{width:1rem;height:1rem}.course-plan-icon-btn-replace{border-color:var(--plan-replace-border);background:var(--plan-replace-bg);color:var(--plan-replace)}.course-plan-icon-btn-replace:hover:not(:disabled){background:var(--plan-replace-bg-hover);color:#1d4ed8;border-color:#2563eb73}.course-plan-icon-btn-remove{border-color:var(--plan-remove-border);background:var(--plan-remove-bg);color:var(--plan-remove-fg)}.course-plan-icon-btn-remove:hover:not(:disabled){background:var(--plan-remove-bg-hover);color:#b91c1c;border-color:#dc26267a}.course-plan-icon-btn:disabled{border-color:var(--border);background:var(--surface-alt);color:var(--text-muted);cursor:not-allowed;opacity:.6}.course-plan-icon-btn:focus-visible{box-shadow:var(--plan-accent-ring);outline:none}.course-plan-icon-btn-replace:focus-visible{box-shadow:var(--plan-replace-ring)}.course-plan-icon-btn-remove:focus-visible{box-shadow:var(--plan-remove-ring)}.course-card-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.65rem;margin-top:auto;padding-top:.7rem;display:flex}.course-card-footer-actions{flex-shrink:0;position:relative}.course-link{max-width:100%;color:var(--text-secondary);transition:color var(--duration) var(--ease);align-items:center;gap:.4rem;font-size:.86rem;font-weight:600;text-decoration:none;display:inline-flex}.course-link-text{border-bottom:1px solid var(--border-hover);transition:border-color var(--duration) var(--ease), color var(--duration) var(--ease)}.course-link-icon{color:var(--primary-light);opacity:.65;transition:opacity var(--duration) var(--ease), transform var(--duration) var(--ease);display:flex}.course-link:hover{color:var(--primary)}.course-link:hover .course-link-text{border-bottom-color:var(--primary-border);color:var(--primary)}.course-link:hover .course-link-icon{opacity:1;color:var(--primary);transform:translate(1px,-1px)}.course-link:focus-visible .course-link-text{border-bottom-color:#0000}.plan-panel{gap:.5rem;width:100%;margin:0;display:grid}.plan-action-notice{border-radius:var(--radius-xs);color:#92400e;background:var(--warning-bg);border:1px solid var(--warning-border);margin:0;padding:.45rem .55rem;font-size:.76rem;line-height:1.4}.plan-panel-body{gap:.42rem;min-height:auto;max-height:none;display:grid;overflow:visible}.plan-reset-icon-btn{border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);width:1.42rem;height:1.42rem;color:var(--text-muted);cursor:pointer;transition:border-color var(--duration) var(--ease), background-color var(--duration) var(--ease), color var(--duration) var(--ease), transform var(--duration) var(--ease);justify-content:center;align-items:center;padding:0;display:inline-flex}.plan-reset-icon-btn svg{width:.72rem;height:.72rem}.plan-reset-icon-btn:hover{border-color:var(--plan-accent-border-soft);background:var(--plan-accent-bg);color:var(--plan-accent);transform:scale(1.05)}.plan-empty{color:var(--text-secondary);background:0 0;border:none;border-radius:0;margin:0;padding:.45rem 0;font-size:.78rem;line-height:1.5}.plan-stats{background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:.35rem .55rem;padding:0;display:flex}.plan-stats p{color:var(--text-secondary);margin:0;font-size:.76rem;line-height:1.4}.plan-stats-primary{color:var(--text)!important;font-size:.78rem!important}.plan-stats-sep{color:var(--text-muted);font-weight:400}.plan-gap-hint{flex:100%;margin:.15rem 0 0;display:block}.plan-gap-hint-inner{border-radius:var(--radius-sm);color:#9a3412;cursor:help;max-width:100%;transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease), background-color var(--duration) var(--ease);background:linear-gradient(#fffdf8fa 0%,#fffbebeb 100%);border:1px solid #f59e0b38;align-items:center;gap:.42rem;padding:.3rem .5rem .3rem .38rem;display:inline-flex;position:relative;box-shadow:0 1px 2px #b453090f}.plan-gap-hint-inner:hover{border-color:#f59e0b61;box-shadow:0 2px 8px #b4530914}.plan-gap-hint-badge{border-radius:var(--radius-xs);color:#c2410c;background:#f59e0b24;flex-shrink:0;justify-content:center;align-items:center;width:1.42rem;height:1.42rem;display:inline-flex}.plan-gap-hint-icon{opacity:1;width:.78rem;height:.78rem}.plan-gap-hint-label{letter-spacing:.02em;color:#9a3412;font-size:.73rem;font-weight:650;line-height:1.25}.plan-course-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.plan-gap-row{margin:.22rem 0 .18rem;padding:0;list-style:none}.plan-gap-link{border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text);transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease), background-color var(--duration) var(--ease);background:linear-gradient(145deg,#fffdf8fa 0%,#fff7e68c 48%,#fefcf8eb 100%);border:1px solid #f59e0b38;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem .75rem;margin:0;padding:.48rem .62rem;display:flex;box-shadow:0 1px 2px #b453090d}.plan-gap-link:hover{border-color:#f59e0b61;box-shadow:0 3px 12px #b4530912}.plan-gap-link:focus-visible{box-shadow:var(--plan-accent-ring);outline:none}.plan-gap-meta{flex-direction:column;flex:12rem;gap:.14rem;min-width:0;display:flex}.plan-gap-kicker{letter-spacing:.08em;text-transform:uppercase;color:#b45309;font-size:.65rem;font-weight:720;line-height:1.2}.plan-gap-range{color:var(--text-secondary);letter-spacing:.01em;font-size:.78rem;font-weight:620;line-height:1.35}.plan-gap-cta{color:var(--plan-accent);text-decoration:underline;-webkit-text-decoration-color:var(--plan-accent-border-soft);text-decoration-color:var(--plan-accent-border-soft);text-underline-offset:.16rem;flex-shrink:0;font-size:.74rem;font-weight:680;line-height:1.3}.plan-gap-link:hover .plan-gap-cta{color:var(--plan-accent-hover);text-decoration-color:#4f46e573}.plan-course-item{border:none;border-bottom:1px solid var(--border);transition:color var(--duration) var(--ease);background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr);align-items:start;gap:0;padding:.22rem 0;display:grid;position:relative}.plan-course-item--with-gap-after{border-bottom:none;padding-bottom:.14rem}.plan-course-item--before-active{border-bottom-color:#0000}.plan-course-item-add{animation:.36s cubic-bezier(.2,.7,.2,1) plan-item-add}.plan-course-item-replace{animation:.42s cubic-bezier(.2,.7,.2,1) plan-item-replace}.plan-course-item-removing{animation:.22s ease-in forwards plan-item-remove}.plan-course-item:last-child{border-bottom:none;padding-bottom:.15rem}.plan-course-item--active-date{box-shadow:inset 0 1px 0 var(--border), inset 0 -1px 0 var(--border);background:linear-gradient(90deg,#4f46e51a 0%,#4f46e50d 58%,#4f46e505 100%);border-bottom-color:#0000;border-radius:0;margin:0 -1rem;padding:.22rem 1rem}.plan-course-date{color:var(--plan-accent);letter-spacing:.01em;margin:0 0 .04rem;font-size:.74rem;font-weight:700;display:block}.plan-course-entry-link{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;transition:background-color var(--duration) var(--ease), transform var(--duration) var(--ease);background:0 0;border:none;border-radius:.46rem;gap:.06rem;margin:0;padding:.22rem .24rem .26rem;display:grid}.plan-course-entry-link:hover{background:0 0}.plan-course-entry-link:focus-visible{box-shadow:var(--plan-accent-ring);outline:none}.plan-course-item--active-date .plan-course-entry-link{color:#312e81;border-radius:0}.plan-course-item--active-date .plan-course-entry-link:hover{background:0 0}.plan-course-title{color:var(--text);margin:0;font-size:.8rem;font-weight:500;line-height:1.32;display:block}.plan-course-detail{color:var(--text-secondary);margin:0;font-size:.72rem;line-height:1.38;display:block}.plan-course-duration{color:var(--text-muted);margin:.04rem 0 0;font-size:.72rem;display:block}.plan-reset-icon-btn:focus-visible{box-shadow:var(--plan-accent-ring);outline:none}@keyframes plan-item-add{0%{opacity:0;transform:translateY(10px)scale(.988)}65%{opacity:1;transform:translateY(-1px)scale(1.003)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes plan-item-replace{0%{background:#4f46e50a;box-shadow:inset 0 0 0 1px #4f46e500}40%{background:#4f46e51a;box-shadow:inset 0 0 0 1px #4f46e53d}72%{background:#4f46e50d;box-shadow:inset 0 0 0 1px #4f46e51f}to{background:0 0;box-shadow:inset 0 0 0 1px #4f46e500}}@keyframes plan-item-remove{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(9px)scale(.985)}}.plan-confirm-backdrop{z-index:400;-webkit-backdrop-filter:blur(5px);animation:plan-confirm-backdrop-in .22s var(--ease) both;background:#0f172a7a;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}@keyframes plan-confirm-backdrop-in{0%{opacity:0}to{opacity:1}}.plan-confirm-dialog{border-radius:var(--radius-lg);border:1px solid var(--plan-accent-border-soft);background:var(--surface);width:min(26rem,100%);max-height:min(85vh,100%);box-shadow:0 0 0 1px #ffffffd9 inset, var(--shadow-lg);padding:1.35rem 1.4rem 1.25rem;animation:.26s cubic-bezier(.16,1,.3,1) both plan-confirm-dialog-in;overflow:auto}@keyframes plan-confirm-dialog-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.plan-confirm-title{letter-spacing:-.02em;color:var(--text);margin:0 0 .55rem;font-size:1.08rem;font-weight:700;line-height:1.25}.plan-confirm-body{color:var(--text-secondary);margin:0 0 1.35rem;font-size:.9rem;line-height:1.55}.plan-confirm-body strong{color:var(--text);font-weight:650}.plan-confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.plan-confirm-btn{border-radius:var(--radius-sm);cursor:pointer;min-height:2.35rem;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);justify-content:center;align-items:center;padding:.45rem 1rem;font-family:inherit;font-size:.88rem;font-weight:650;display:inline-flex}.plan-confirm-btn--secondary{border:1px solid var(--border-hover);background:var(--surface);color:var(--text-secondary)}.plan-confirm-btn--secondary:hover{background:var(--surface-alt);border-color:var(--text-muted);color:var(--text)}.plan-confirm-btn--secondary:focus-visible{box-shadow:var(--plan-accent-ring);outline:none}.plan-confirm-btn--danger{color:#b91c1c;background:#fef2f2f2;border:1px solid #dc26266b}.plan-confirm-btn--danger:hover{color:#991b1b;background:#fee2e2fa;border-color:#b91c1c8c}.plan-confirm-btn--danger:focus-visible{outline:none;box-shadow:0 0 0 3px #ef444438}@keyframes minimized-item-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.list-footer{border-top:1px solid var(--border);color:var(--text-muted);flex-direction:column;gap:.35rem;margin-top:.2rem;padding-top:.55rem;font-size:.79rem;display:flex}.footer-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem 1.25rem;width:100%;display:flex}.footer-bar-impressum{margin:0;line-height:1.45}.footer-bar-sync{flex-wrap:wrap;align-items:center;gap:.28rem .35rem;margin-left:auto;font-size:.72rem;line-height:1.35;display:inline-flex}.footer-sync-meta{color:var(--text-secondary)}.footer-sync-label{color:var(--text-muted);font-weight:650}.footer-sync-time{color:var(--text-secondary);font-weight:600}.footer-sync-btn-wrap{flex-shrink:0;align-items:center;display:inline-flex}.footer-sync-btn-wrap.has-tooltip-footer-sync-error{position:relative}.footer-sync-btn-wrap.has-tooltip-footer-sync-error:after{content:attr(data-tooltip);z-index:100;box-sizing:border-box;width:min(20rem,100vw - 2rem);max-height:min(220px,42vh);padding:var(--tooltip-pad-y) var(--tooltip-pad-x);border-radius:var(--tooltip-radius);border:1px solid var(--tooltip-border);background:var(--tooltip-bg);color:var(--tooltip-fg);font-size:var(--tooltip-font);font-weight:550;line-height:var(--tooltip-line-height);letter-spacing:.01em;white-space:pre-wrap;word-break:break-word;text-align:left;box-shadow:var(--tooltip-shadow);-webkit-backdrop-filter:blur(10px);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--tooltip-hide-dur) var(--tooltip-ease), transform var(--tooltip-hide-dur) var(--tooltip-ease), visibility 0s linear var(--tooltip-hide-dur);position:absolute;bottom:calc(100% + .48rem);left:auto;right:0;overflow-y:auto;transform:translateY(8px)}.footer-sync-btn-wrap.has-tooltip-footer-sync-error:hover:after{opacity:1;visibility:visible;transition:opacity var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), transform var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), visibility 0s linear 0s;transform:translate(0,0)}.footer-sync-btn-wrap.has-tooltip-footer-sync-error:has(button:focus-visible):after{opacity:1;visibility:visible;transition:opacity var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), transform var(--tooltip-show-dur) var(--tooltip-ease) var(--tooltip-show-delay), visibility 0s linear 0s;transform:translate(0,0)}.footer-manual-notice{color:var(--text-secondary);text-align:right;align-self:stretch;margin:0;font-size:.74rem;line-height:1.45}.manual-refresh-icon-btn{border-radius:var(--radius-xs);border:1px solid var(--primary-border);background:var(--primary-bg);width:1.32rem;height:1.32rem;color:var(--primary);cursor:pointer;transition:background-color var(--duration) var(--ease), transform var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease);justify-content:center;align-items:center;padding:0;display:inline-flex}.manual-refresh-icon-btn--footer{border-radius:2px;width:1.02rem;height:1.02rem}.manual-refresh-icon-btn--footer svg{width:.55rem;height:.55rem}.manual-refresh-icon-btn--error{color:#b91c1c;background:#fee2e2a6;border-color:#dc26266b}.manual-refresh-icon-btn--error:hover:not(:disabled){color:#991b1b;background:#fecacad9;border-color:#b91c1c80}.manual-refresh-icon-btn svg{width:.68rem;height:.68rem}.manual-refresh-icon-btn:hover:not(:disabled){background:#6366f11f;transform:scale(1.08)}.manual-refresh-icon-btn--error:hover:not(:disabled){transform:scale(1.08)}.manual-refresh-icon-btn:disabled{opacity:.45;cursor:progress}.manual-refresh-icon-btn:focus-visible{box-shadow:var(--ring);outline:none}.manual-refresh-icon-btn--error:focus-visible{box-shadow:0 0 0 3px #ef444438}.footer-impressum-link{color:var(--text-muted);text-underline-offset:.22rem;text-decoration:underline;-webkit-text-decoration-color:var(--border-hover);text-decoration-color:var(--border-hover);transition:color var(--duration) var(--ease), text-decoration-color var(--duration) var(--ease);font-weight:600}.footer-impressum-link:hover{color:var(--primary);-webkit-text-decoration-color:var(--primary-border);text-decoration-color:var(--primary-border)}.footer-impressum-link:focus-visible{box-shadow:var(--ring);border-radius:2px;outline:none}.legal-page{margin-bottom:3.5rem}.legal-hero .hero-copy{max-width:68ch}.legal-article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem 1.75rem 1.75rem}.legal-section{margin-bottom:1.75rem}.legal-section:last-of-type{margin-bottom:0}.legal-section h2{font-family:var(--font-display), Georgia, serif;color:var(--text);margin:0 0 .7rem;font-size:1.3rem}.legal-subheading{color:var(--text);margin:1.2rem 0 .5rem;font-size:1rem;font-weight:700}.legal-section>p,.legal-section>address{color:var(--text-secondary);max-width:72ch;margin:0 0 .8rem;font-size:.94rem;line-height:1.65}.legal-section>p:last-child{margin-bottom:0}.legal-address{font-style:normal;color:var(--text)!important;margin-bottom:.85rem!important}.legal-list{color:var(--text-secondary);max-width:72ch;margin:0 0 .8rem;padding-left:1.2rem;font-size:.94rem;line-height:1.6}.legal-list li{margin-bottom:.35rem}.legal-inline-link{color:var(--primary);text-underline-offset:.2rem;transition:color var(--duration) var(--ease);font-weight:600}.legal-inline-link:hover{color:var(--primary-hover)}.legal-back-wrap{border-top:1px solid var(--border);margin:2rem 0 0;padding-top:1.25rem}.legal-back{color:var(--primary);border-bottom:1px solid var(--primary-border);transition:color var(--duration) var(--ease), border-color var(--duration) var(--ease);align-items:center;gap:.28rem;padding-bottom:1px;font-size:.92rem;font-weight:640;text-decoration:none;display:inline-flex}.legal-back:hover{color:var(--primary-hover);border-bottom-color:#6366f173}.legal-back:focus-visible{box-shadow:var(--ring);border-radius:2px;outline:none}@media (max-width:700px){.app-shell{width:calc(100% - 1.5rem);margin-top:1rem}.hero{border-radius:var(--radius-lg);padding:1.75rem 1.35rem 1.5rem}.hero h1{font-size:1.65rem}.hero-topline{flex-direction:column;align-items:flex-start;gap:.5rem}.toolbar{display:block}.hero-actions{justify-content:flex-start;width:100%}.planner-layout{grid-template-columns:1fr}.planner-sidebar{position:static;top:auto}.course-grid{grid-template-columns:1fr}.legal-article{padding:1.15rem 1.15rem 1.25rem}}@media (max-width:420px){.hero{padding:1.35rem 1rem 1.25rem}.course-card{padding:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
