@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f7f8fb;--panel:#fff;--text:#242833;--muted:#8b8e9c;--line:#eeeff4;--accent:#7862d5;--soft:#f1eefb;--banner:#efecfa;--input:#fafafd;color-scheme:light}html[data-theme=dark]{--bg:#15161d;--panel:#1e2029;--text:#eeeeF6;--muted:#999aac;--line:#30313e;--accent:#b09af8;--soft:#302a43;--banner:#2a2540;--input:#242630;color-scheme:dark}@media(prefers-color-scheme:dark){html[data-theme=auto]{--bg:#15161d;--panel:#1e2029;--text:#eeeef6;--muted:#999aac;--line:#30313e;--accent:#b09af8;--soft:#302a43;--banner:#2a2540;--input:#242630;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:calc(14px * var(--font-scale, 1.18)) Manrope,Arial,sans-serif}button,input,select{font:inherit;color:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button,select{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}aside{width:244px;background:var(--panel);border-right:1px solid var(--line);padding:36px 23px;position:fixed;height:100vh;display:flex;flex-direction:column}.brand{display:flex;gap:13px;align-items:center;font-weight:800;font-size:calc(24px * var(--font-scale, 1.18));letter-spacing:1px}.brand-icon{font-size:calc(24px * var(--font-scale, 1.18));color:white;background:#7a64d8;width:43px;height:43px;border-radius:13px;display:grid;place-content:center;letter-spacing:-3px;display:flex;align-items:center}.brand-icon span{font-weight:400}.brand-sub{display:block;font-size:calc(8px * var(--font-scale, 1.18));color:var(--muted);letter-spacing:1.8px;margin-top:2px}.aside-label{font-size:calc(9px * var(--font-scale, 1.18));color:var(--muted);letter-spacing:1.2px;margin:65px 10px 18px}.nav-active{display:flex;align-items:center;gap:13px;background:var(--soft);padding:15px;border-radius:9px;color:var(--accent);font-weight:700;font-size:calc(13px * var(--font-scale, 1.18))}.nav-active>span:first-child{font-size:calc(20px * var(--font-scale, 1.18))}.nav-dot{margin-left:auto;width:6px;height:6px;background:var(--accent);border-radius:50%}.sidebar-bottom{margin-top:auto;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:20px 15px 25px;position:relative;overflow:hidden}.mini-logo{font-size:calc(28px * var(--font-scale, 1.18));color:var(--accent);margin-bottom:20px}.sidebar-bottom strong{font-size:calc(12px * var(--font-scale, 1.18))}.sidebar-bottom p{font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted);line-height:1.9}.aside-foot{font-size:calc(9px * var(--font-scale, 1.18));color:var(--muted);margin-top:23px;text-align:center}main{margin-left:244px;width:calc(100% - 244px)}header{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:var(--panel)}.breadcrumb{font-size:calc(12px * var(--font-scale, 1.18));color:var(--muted)}.breadcrumb span{margin:0 14px;color:#c1c2ca}.header-right{display:flex;align-items:center;gap:13px}.device-label{font-size:calc(11px * var(--font-scale, 1.18));color:var(--muted)}select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:9px 12px;font-size:calc(11px * var(--font-scale, 1.18))}.avatar{margin-left:9px;width:33px;height:33px;border-radius:50%;background:var(--soft);color:var(--accent);display:grid;place-items:center;font-size:calc(11px * var(--font-scale, 1.18));font-weight:800}.content{max-width:1350px;margin:auto;padding:41px 48px 20px}.page-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:31px}.eyebrow{font-size:calc(9px * var(--font-scale, 1.18));letter-spacing:1.8px;font-weight:700;color:var(--muted)}h1{font-size:calc(30px * var(--font-scale, 1.18));letter-spacing:-1.1px;margin:11px 0 8px;font-weight:800}h1 span{color:var(--accent)}.subtitle{font-size:calc(12px * var(--font-scale, 1.18));color:var(--muted);margin:0}.icon-button{background:var(--panel);border:1px solid var(--line);padding:10px 15px;border-radius:8px;font-size:calc(12px * var(--font-scale, 1.18))}.icon-button span{margin-left:7px}.week-banner{border:1px solid #c9bdec55;border-radius:14px;background:var(--banner);min-height:172px;padding:28px 30px;display:flex;align-items:center;position:relative;overflow:hidden;margin-bottom:34px}.banner-kicker{font-size:calc(9px * var(--font-scale, 1.18));color:var(--accent);letter-spacing:1.5px;font-weight:800;display:flex;gap:7px;align-items:center}.banner-kicker>span{height:5px;width:5px;background:var(--accent);border-radius:50%}.week-banner h2{font-size:calc(26px * var(--font-scale, 1.18));letter-spacing:-.7px;margin:13px 0 9px}.week-banner p{font-size:calc(11px * var(--font-scale, 1.18));color:var(--muted);margin:0}.week-badge{margin-left:auto;font-size:calc(37px * var(--font-scale, 1.18));font-weight:800;color:var(--accent);text-align:center;position:relative;z-index:1;line-height:1}.week-badge small{font-size:calc(8px * var(--font-scale, 1.18));letter-spacing:1.3px}.banner-art{position:absolute;right:75px;top:0;width:290px;height:180px;color:#b7a7e4}.banner-art>span{position:absolute;left:100px;top:-45px;font-size:calc(220px * var(--font-scale, 1.18));font-weight:400;opacity:.24}.art-ring{border:1px solid #baa9e44a;border-radius:50%;height:230px;width:230px;position:absolute;left:25px;top:-25px}.art-ring.second{width:295px;height:295px;left:-7px;top:-57px}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-title{display:flex;gap:10px;align-items:center}.section-title h2{font-size:calc(17px * var(--font-scale, 1.18));letter-spacing:-.4px;margin:0}.count{font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:3px 7px}.sync{display:flex;align-items:center;gap:6px;font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted)}.sync i{background:#63ae8b;width:5px;height:5px;border-radius:50%}.sync button{border:none;background:transparent;color:var(--muted);font-size:calc(19px * var(--font-scale, 1.18))}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;margin-bottom:21px}.day{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 6px;text-align:center;position:relative;min-height:99px}.day .weekday{display:block;font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted)}.day .date{font-size:calc(21px * var(--font-scale, 1.18));display:block;font-weight:750;margin:4px 0}.day .day-count{font-size:calc(9px * var(--font-scale, 1.18));color:var(--muted)}.day.active{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 5px 12px #7862d522}.day.active .weekday,.day.active .day-count{color:#ffffffba}.day.today:after{content:'';position:absolute;top:9px;right:9px;background:#64bb96;border-radius:50%;width:5px;height:5px}.toolbar{display:flex;justify-content:space-between;gap:15px;margin-bottom:20px}.view-tabs{background:var(--line);padding:4px;border-radius:8px;display:flex;gap:2px}.view-tabs button{border:0;background:transparent;padding:7px 16px;border-radius:6px;font-size:calc(11px * var(--font-scale, 1.18));color:var(--muted)}.view-tabs button.selected{background:var(--panel);color:var(--text);box-shadow:0 1px 3px #00000008}.filters{display:flex;gap:10px}.search{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--muted)}.search>span{font-size:calc(20px * var(--font-scale, 1.18))}.search input{width:145px;font-size:calc(11px * var(--font-scale, 1.18));background:transparent;border:0;outline:none;padding:10px 0}.search input::placeholder{color:var(--muted)}.day-heading{font-size:calc(13px * var(--font-scale, 1.18));font-weight:700;margin:22px 0 13px;display:flex;gap:10px;align-items:center}.day-heading span{font-weight:400;font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted)}.event{display:flex;align-items:center;gap:20px;background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:9px;padding:17px 22px;position:relative;overflow:hidden;min-height:86px}.event:before{content:'';position:absolute;left:0;top:20px;bottom:20px;width:3px;border-radius:0 3px 3px 0;background:var(--event-color)}.event-time{width:67px;flex-shrink:0}.event-time strong{font-size:calc(16px * var(--font-scale, 1.18));font-weight:800;letter-spacing:-.5px}.event-time small{display:block;font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted);margin-top:4px}.event-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--event-bg);color:var(--event-color);font-size:calc(21px * var(--font-scale, 1.18));flex-shrink:0}.event-name{font-size:calc(13px * var(--font-scale, 1.18));font-weight:750}.event-note{font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted);margin-top:5px}.duration{margin-left:auto;white-space:nowrap;font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted);background:var(--bg);padding:6px 10px;border-radius:6px}.event-number{font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted);margin-left:5px}.empty{border:1px dashed var(--line);border-radius:12px;text-align:center;padding:45px 18px;color:var(--muted);font-size:calc(13px * var(--font-scale, 1.18));background:var(--panel);line-height:1.9}.empty strong{display:block;color:var(--text);font-size:calc(17px * var(--font-scale, 1.18))}.info-note{display:flex;gap:12px;align-items:center;padding:20px 0 24px;margin-top:23px;border-top:1px solid var(--line)}.info-icon{border:1px solid var(--muted);font-size:calc(11px * var(--font-scale, 1.18));border-radius:50%;height:17px;width:17px;display:grid;place-items:center;color:var(--muted);flex-shrink:0}.info-note strong{font-size:calc(11px * var(--font-scale, 1.18));font-weight:650}.info-note p{font-size:calc(10px * var(--font-scale, 1.18));color:var(--muted);margin:5px 0 0;line-height:1.7}.info-note a{margin-left:auto;white-space:nowrap;font-size:calc(10px * var(--font-scale, 1.18));color:var(--accent)}footer{display:flex;justify-content:space-between;font-size:calc(9px * var(--font-scale, 1.18));color:var(--muted);padding:18px 0;border-top:1px solid var(--line)}footer b{margin:0 7px;font-weight:400}@media(min-width:1500px){.content{padding-top:50px}.event{min-height:93px}}@media(max-width:1150px){aside{width:200px;padding:28px 17px}main{margin-left:200px;width:calc(100% - 200px)}header{padding:0 28px}.content{padding:30px 28px}.device-label{display:none}h1{font-size:calc(26px * var(--font-scale, 1.18))}.banner-art{right:30px}.sync{font-size:calc(9px * var(--font-scale, 1.18))}.info-note{align-items:flex-start}.info-note a{margin-top:2px}}@media(max-width:850px){aside{width:76px;align-items:center;padding:25px 12px}.brand>span:last-child,.aside-label,.nav-active,.sidebar-bottom,.aside-foot{display:none}main{margin-left:76px;width:calc(100% - 76px)}.page-top .print{display:none}.sync #sync-text{max-width:150px}.toolbar{flex-wrap:wrap}.filters{flex:1;justify-content:flex-end}.search input{width:120px}.event{gap:14px;padding:15px}.week-banner h2{font-size:calc(23px * var(--font-scale, 1.18))}.banner-art{opacity:.55}.info-note{flex-wrap:wrap}.info-note a{margin-left:29px}.week-banner{padding:25px}.week-badge{font-size:calc(31px * var(--font-scale, 1.18))}}@media(max-width:600px){aside{display:none}main{margin:0;width:100%}header{height:66px;padding:0 20px}.avatar{display:none}.breadcrumb{font-size:calc(10px * var(--font-scale, 1.18))}.header-right select{font-size:calc(10px * var(--font-scale, 1.18));padding:8px}.content{padding:28px 18px 12px}.eyebrow{font-size:calc(8px * var(--font-scale, 1.18))}h1{font-size:calc(25px * var(--font-scale, 1.18));letter-spacing:-1px}.subtitle{font-size:calc(11px * var(--font-scale, 1.18));line-height:1.7;max-width:275px}.page-top{margin-bottom:23px}.week-banner{min-height:150px;padding:22px 20px;margin-bottom:27px}.banner-kicker{font-size:calc(8px * var(--font-scale, 1.18));letter-spacing:1px}.week-banner h2{font-size:calc(20px * var(--font-scale, 1.18));max-width:240px}.week-banner p{font-size:calc(10px * var(--font-scale, 1.18))}.week-badge{font-size:calc(28px * var(--font-scale, 1.18));margin-left:12px}.week-badge small{font-size:calc(6px * var(--font-scale, 1.18))}.banner-art{right:-55px;opacity:.5}.section-title h2{font-size:calc(15px * var(--font-scale, 1.18))}.count{font-size:calc(9px * var(--font-scale, 1.18))}.sync #sync-text{display:none}.days{gap:5px;margin-bottom:17px}.day{min-height:87px;padding:10px 3px;border-radius:8px}.day .date{font-size:calc(19px * var(--font-scale, 1.18))}.day .weekday{font-size:calc(9px * var(--font-scale, 1.18))}.day .day-count{font-size:calc(8px * var(--font-scale, 1.18))}.day.today:after{right:5px;top:5px;width:4px;height:4px}.toolbar{gap:12px}.filters{width:100%;flex:auto;justify-content:space-between}.search{flex:1;min-width:0}.search input{width:100%;min-width:0}.filters select{max-width:150px;font-size:calc(10px * var(--font-scale, 1.18))}.event{gap:11px;min-height:85px;padding:14px 13px}.event-time{width:51px}.event-time strong{font-size:calc(15px * var(--font-scale, 1.18))}.event-icon{width:33px;height:36px;font-size:calc(18px * var(--font-scale, 1.18));border-radius:8px}.event-name{font-size:calc(11px * var(--font-scale, 1.18))}.event-note{font-size:calc(9px * var(--font-scale, 1.18));line-height:1.6}.duration{font-size:calc(9px * var(--font-scale, 1.18));padding:5px 6px}.event-number{display:none}.info-note p{font-size:calc(9px * var(--font-scale, 1.18))}.info-note a{font-size:calc(10px * var(--font-scale, 1.18))}footer{font-size:calc(8px * var(--font-scale, 1.18));gap:15px}.section-top{margin-bottom:15px}}@media print{aside,header,.page-top,.toolbar,.days,.sync,.info-note,footer{display:none!important}main{width:100%;margin:0}.content{padding:0}.event{break-inside:avoid}.week-banner{min-height:100px}.event{padding:8px;min-height:55px}body{background:white;color:black}}

/* Compact schedule layout and footer controls. */
.toolbar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px}
.toolbar .view-tabs{flex-shrink:0}
.toolbar .filters{width:auto;flex:0 1 auto;min-width:0;justify-content:flex-end}
.toolbar .filters select{width:auto;max-width:100%;min-width:0}
footer{display:block}
.footer-settings{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:0 0 18px}
.footer-meta{display:flex;justify-content:space-between;gap:15px}
.footer-settings .avatar{display:grid}
.footer-settings .device-label{display:inline}
@media(max-width:600px){
 .toolbar{gap:8px}
 .toolbar .view-tabs button{padding:8px 10px;font-size:calc(10px * var(--font-scale, 1.18))}
 .toolbar .filters select{font-size:calc(10px * var(--font-scale, 1.18));padding:9px 7px}
 .footer-settings{gap:14px}
 .footer-settings .header-right{gap:8px;flex-wrap:wrap}
 .footer-settings .breadcrumb{font-size:calc(10px * var(--font-scale, 1.18))}
 .footer-settings .device-label{font-size:calc(10px * var(--font-scale, 1.18))}
 .footer-meta{flex-wrap:wrap}
}
@media print{footer{display:none!important}}

/* User-selected text sizes, including mobile layouts. */
html[data-font-size="small"]{--font-scale:1}
html[data-font-size="medium"]{--font-scale:1.18}
html[data-font-size="large"]{--font-scale:1.4}
.font-setting{display:flex;align-items:center;gap:10px;font-size:calc(11px * var(--font-scale, 1.18));color:var(--muted)}
.footer-settings{margin-top:24px}
.event>div:nth-child(3){min-width:0;overflow-wrap:anywhere}
.event-time{width:calc(67px * var(--font-scale, 1.18))}
.day-heading{flex-wrap:wrap}
@media(max-width:600px){
 .footer-settings{align-items:flex-start;flex-direction:column}
 .event{flex-wrap:wrap}
 .event-time{width:calc(51px * var(--font-scale, 1.18))}
 .event>div:nth-child(3){flex:1;min-width:90px}
 .duration{white-space:normal}
 .days{gap:4px}
 .day .day-count{overflow-wrap:anywhere}
 .font-setting{flex-wrap:wrap}
}

/* Compact footer controls: a single row at every screen size. */
.footer-settings{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:10px;padding:0;margin-top:0}
.footer-settings .font-setting{flex:0 1 auto;min-width:0;flex-wrap:nowrap}
.footer-settings .header-right{display:flex;align-items:center;flex:0 1 auto;min-width:0;flex-wrap:nowrap;gap:10px}
.footer-settings select{min-width:0;max-width:100%;padding-left:8px;padding-right:8px}
.footer-settings .avatar{flex-shrink:0}
@media(max-width:600px){
 .footer-settings{gap:6px}
 .footer-settings .header-right{gap:6px}
 .footer-settings select{font-size:12px;padding-left:5px;padding-right:5px}
}
