:root{--bg:#fff;--surface:#fff;--text:#202124;--muted:#5f6368;--line:#dadce0;--hover:#f1f3f4;--blue:#1a73e8;--today:#1a73e8;--shadow:0 8px 24px #3c404329;font-family:Arial,"Helvetica Neue",sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}.topbar{height:64px;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--surface)}.icon{border:0;background:transparent;border-radius:50%;width:40px;height:40px;font-size:25px;cursor:pointer}.icon:hover,.rail button:hover{background:var(--hover)}.identity{display:flex;align-items:center;gap:10px;font-size:22px;min-width:180px}.calicon,.brandmark{width:36px;height:36px;border-radius:6px;background:linear-gradient(135deg,#4285f4 55%,#34a853 56%);color:#fff;display:grid;place-items:center;font-weight:700}.today{padding:9px 16px;background:transparent;border:1px solid var(--line);border-radius:4px;cursor:pointer}.topbar h1{font-size:22px;font-weight:400;min-width:220px;margin:0 0 0 10px}.toolbar-spacer{flex:1}.topbar select{padding:9px 34px 9px 12px;border:1px solid var(--line);background:var(--surface);border-radius:4px}.avatar{width:34px;height:34px;border:0;border-radius:50%;background:#7b1fa2;color:white;font-weight:700}.layout{display:grid;grid-template-columns:256px minmax(0,1fr) 52px;height:calc(100vh - 64px)}.sidebar{padding:16px 14px;border-right:1px solid var(--line);overflow:auto}.sidebar.closed{display:none}.layout:has(.sidebar.closed){grid-template-columns:minmax(0,1fr) 52px}.create{height:48px;padding:0 22px;border:0;border-radius:16px;background:var(--surface);box-shadow:var(--shadow);font-weight:600;font-size:15px;cursor:pointer}.create span{font-size:24px;margin-right:10px}.mini{margin:24px 0}.mini header{display:flex;justify-content:space-between;align-items:center;font-weight:600}.mini table{width:100%;border-collapse:collapse;text-align:center;font-size:12px;margin-top:10px}.mini td,.mini th{height:28px}.mini button{border:0;background:transparent;width:26px;height:26px;border-radius:50%;font-size:12px}.mini button:hover{background:var(--hover)}.mini .active{background:var(--blue);color:#fff}.sidebar h2{font-size:15px;margin:18px 8px 8px}.calendar-item{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:4px;font-size:14px}.calendar-item:hover{background:var(--hover)}.calendar-item i{width:14px;height:14px;border-radius:3px}.textbtn{border:0;background:none;color:var(--blue);padding:8px;cursor:pointer}.rail{border-left:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:18px}.rail button{border:0;background:transparent;border-radius:50%;width:38px;height:38px;font-size:18px}#calendarSurface{overflow:auto;position:relative;background:var(--surface)}.loading{padding:40px;text-align:center;color:var(--muted)}.week-head{position:sticky;top:0;z-index:5;background:var(--surface);display:grid;border-bottom:1px solid var(--line)}.week-head div{text-align:center;padding:8px;border-left:1px solid var(--line);font-size:12px;color:var(--muted)}.week-head b{display:block;font-size:24px;color:var(--text);font-weight:400;margin-top:4px}.week-head .today-head b{background:var(--today);color:white;width:38px;height:38px;line-height:38px;border-radius:50%;margin:3px auto}.time-grid{display:grid;position:relative;min-height:1440px}.time-labels{position:relative;border-right:1px solid var(--line)}.time-label{position:absolute;right:8px;transform:translateY(-7px);font-size:10px;color:var(--muted)}.day-column{position:relative;border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,var(--line) 60px)}.day-column:hover{background-color:#fafafa}.event{position:absolute;left:4px;right:4px;min-height:22px;border-radius:4px;padding:3px 6px;color:#fff;font-size:12px;overflow:hidden;cursor:pointer;border-left:3px solid #fff8}.current-line{position:absolute;left:0;right:0;height:2px;background:#ea4335;z-index:3}.current-line:before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#ea4335;left:-4px;top:-3px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));grid-auto-rows:minmax(115px,1fr);min-height:100%}.month-weekday{padding:8px;text-align:center;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.month-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px;min-width:0}.month-day.other{color:#9aa0a6;background:#fafafa}.day-number{width:28px;height:28px;display:grid;place-items:center;margin:auto;font-size:12px;border-radius:50%}.day-number.today{background:var(--blue);color:#fff}.month-event{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px;padding:3px 5px;margin:2px 0;color:#fff;cursor:pointer}.schedule{max-width:820px;margin:auto;padding:28px}.schedule-day{display:grid;grid-template-columns:100px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:18px 0}.schedule-event{border-left:5px solid;padding:8px 14px;margin:4px 0}.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:28px}.year-month h3{font-size:14px;color:var(--blue)}.year-month table{width:100%;font-size:11px;text-align:center}.searchbar{position:fixed;z-index:20;top:8px;left:30%;right:25%;height:48px;background:var(--surface);box-shadow:var(--shadow);border-radius:8px;display:flex;align-items:center;padding-left:15px}.searchbar[hidden]{display:none}.searchbar input{flex:1;border:0;outline:0;background:transparent}.account-menu{position:fixed;z-index:20;right:16px;top:58px;width:280px;background:var(--surface);box-shadow:var(--shadow);border-radius:12px;padding:20px}.account-menu span{display:block;color:var(--muted);font-size:13px;margin:6px 0 18px}.account-menu button{width:100%;padding:9px;background:transparent;border:1px solid var(--line);border-radius:4px}dialog{width:min(620px,calc(100vw - 24px));border:0;border-radius:12px;box-shadow:var(--shadow);background:var(--surface);color:var(--text);padding:0}dialog::backdrop{background:#20212466}dialog form{padding:20px 24px}dialog header,dialog footer{display:flex;align-items:center;gap:12px}dialog header h2{flex:1;font-weight:500}dialog label{display:block;font-size:12px;color:var(--muted);margin:14px 0}dialog input:not([type=checkbox]),dialog select,dialog textarea{display:block;width:100%;padding:10px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;outline:none;color:var(--text)}dialog .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}dialog footer{margin-top:22px}dialog footer span{flex:1}dialog footer button{padding:9px 18px;border:0;border-radius:4px;background:transparent}.primary{background:var(--blue)!important;color:#fff}.danger{color:#d93025}.toast{position:fixed;z-index:30;bottom:24px;left:50%;transform:translateX(-50%);background:#323232;color:#fff;padding:12px 20px;border-radius:4px}.signin{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px;background:linear-gradient(145deg,#f8fbff,#eef4ff)}.signin .brandmark{width:72px;height:72px;font-size:30px}.signin h1{font-size:34px;margin-bottom:5px}.signin p{color:#5f6368;margin-bottom:30px}.workspace-login{background:#1a73e8;color:white;text-decoration:none;padding:13px 24px;border-radius:5px}.signin small{color:#5f6368;margin-top:16px}[data-theme=dark]{--bg:#202124;--surface:#202124;--text:#e8eaed;--muted:#9aa0a6;--line:#3c4043;--hover:#303134}.no-events{text-align:center;color:var(--muted);padding:50px}
@media(max-width:900px){.identity span:last-child,.topbar h1,.rail{display:none}.layout{grid-template-columns:220px minmax(0,1fr)}.topbar{padding:0 6px}.identity{min-width:auto}.month-grid{grid-template-columns:repeat(7,minmax(70px,1fr))}.year-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.sidebar{display:none}.layout{grid-template-columns:1fr}.topbar .icon:nth-of-type(2),.topbar .icon:nth-of-type(3){display:none}.topbar select{max-width:100px}.month-grid{grid-template-columns:repeat(7,minmax(42px,1fr));font-size:10px}.month-day{padding:2px}.month-event{padding:2px;font-size:10px}.year-grid{grid-template-columns:1fr}.schedule{padding:12px}.searchbar{left:8px;right:8px}}
