.app-switch{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin:15px 8px 0;padding:2px;background:#101820;border-radius:5px}.app-switch button{height:34px;border:0;border-radius:3px;background:transparent;color:#9eabb7}.app-switch button.active{background:#33404c;color:#fff;font-weight:700}.calendar-workspace{grid-column:2/4;background:#fff;min-width:0;display:flex;flex-direction:column}.calendar-header{min-height:76px;padding:10px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap}.calendar-header h1{font-size:18px;margin:0}.calendar-header small{display:block;color:var(--muted)}.calendar-nav,.view-tabs{display:flex;align-items:center}.calendar-nav{margin-left:auto}.calendar-nav button,.view-tabs button{height:34px;border:1px solid var(--line);background:#fff;color:#53606c;padding:0 11px}.calendar-nav button:first-child,.view-tabs button:first-child{border-radius:4px 0 0 4px}.calendar-nav button:last-child,.view-tabs button:last-child{border-radius:0 4px 4px 0}.calendar-nav button+button,.view-tabs button+button{border-left:0}.view-tabs button.active{background:#e9f5f0;color:var(--accent);font-weight:700}.calendar-create{height:36px;padding:0 14px}.calendar-layout{display:grid;grid-template-columns:190px minmax(0,1fr);flex:1;min-height:0}.calendar-layout>aside{padding:18px 14px;border-right:1px solid var(--line);overflow:auto}.calendar-layout>aside>strong{display:block;margin:0 5px 12px}.calendar-layout>aside label{display:flex;align-items:center;gap:8px;padding:7px 4px;color:#465462}.calendar-layout>aside label span{width:10px;height:10px;border-radius:2px;background:var(--calendar-color)}.calendar-board{min-width:0;overflow:auto}.month-view{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));grid-template-rows:34px repeat(6,minmax(105px,1fr));min-width:770px}.calendar-weekday{text-align:center;padding:7px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.calendar-day{min-width:0;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.calendar-day:nth-child(7n+1){border-right:0}.calendar-day>time{display:grid;width:25px;height:25px;place-items:center;margin:0 0 4px auto;color:#52606c}.calendar-day.outside{background:#fafbfc}.calendar-day.outside>time{color:#aeb7bf}.calendar-day.today>time{border-radius:50%;background:var(--accent);color:#fff}.calendar-event{width:100%;min-height:25px;margin:2px 0;border:0;border-radius:3px;background:#f0f5f3;padding:3px 5px;display:grid;grid-template-columns:4px auto 1fr;gap:5px;text-align:left;align-items:center;overflow:hidden}.calendar-event i{width:4px;height:17px;border-radius:2px}.calendar-event span{font-size:10px;color:var(--muted)}.calendar-event strong,.calendar-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.calendar-event small{grid-column:3;color:var(--muted)}.agenda-view{padding:18px 24px}.agenda-view section{border-bottom:1px solid var(--line);padding:0 0 16px;margin-bottom:18px}.agenda-view h2{font-size:15px;margin:0 0 8px}.agenda-view .calendar-event{min-height:40px;grid-template-columns:4px 55px minmax(120px,1fr) minmax(100px,1fr)}.agenda-view .calendar-event small{grid-column:auto}.calendar-empty{height:100%;display:grid;place-items:center;color:var(--muted)}.event-dialog{position:fixed;inset:0;background:#17212b66;z-index:40;display:grid;place-items:center;padding:20px}.event-dialog form{width:min(480px,100%);background:#fff;border-radius:7px;box-shadow:0 20px 50px #17212b45}.event-dialog header{height:48px;padding:0 15px;background:var(--nav);color:#fff;border-radius:6px 6px 0 0;display:flex;align-items:center}.event-dialog header button{margin-left:auto;color:#fff}.event-dialog label{display:grid;grid-template-columns:65px 1fr;align-items:center;gap:10px;padding:7px 15px;border-bottom:1px solid var(--line)}.event-dialog input,.event-dialog select,.event-dialog textarea{width:100%;border:1px solid #cfd6dc;border-radius:4px;padding:8px}.event-dialog textarea{height:90px;resize:vertical}.event-dialog .event-notes{align-items:start}.event-dialog footer{height:58px;padding:0 15px;display:flex;align-items:center;gap:12px}.event-dialog footer button{height:36px;padding:0 20px}.event-dialog footer span{color:var(--danger)}
@media(max-width:760px){.calendar-workspace{position:absolute;inset:0;z-index:2}.calendar-header{padding:8px 10px;gap:8px}.calendar-header>div:first-of-type{min-width:120px}.calendar-nav{margin-left:0}.view-tabs{order:5;width:100%}.view-tabs button{flex:1}.calendar-create{margin-left:auto}.calendar-layout{display:block;overflow:auto}.calendar-layout>aside{display:flex;gap:10px;padding:8px 10px;border-right:0;border-bottom:1px solid var(--line)}.calendar-layout>aside>strong{display:none}.calendar-layout>aside label{white-space:nowrap}.calendar-board{height:calc(100vh - 150px)}.month-view{grid-template-rows:30px repeat(6,105px)}.agenda-view{padding:14px}.event-dialog{padding:0;align-items:end}.event-dialog form{border-radius:7px 7px 0 0}.event-dialog label{grid-template-columns:58px 1fr}}
.calendar-source{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:3px 0}.calendar-source label{min-width:0}.calendar-source label>span:first-of-type{width:10px;height:10px;flex:0 0 10px;border-radius:2px;background:var(--calendar-color)}.calendar-source label>span:nth-of-type(2){width:auto;height:auto;min-width:0;flex:1;background:transparent;overflow:hidden;text-overflow:ellipsis}.calendar-source label em{font-size:10px;color:var(--muted);font-style:normal;overflow:hidden;text-overflow:ellipsis}.calendar-source .share-calendar{border:0;background:transparent;color:var(--accent);padding:5px;font-size:12px}.share-list{padding:10px 15px;max-height:190px;overflow:auto;border-bottom:1px solid var(--line)}.share-list:empty::after{content:'尚未共享';color:var(--muted);font-size:12px}.share-entry{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}.share-entry:last-child{border-bottom:0}.share-entry span{overflow:hidden;text-overflow:ellipsis}.share-entry small{color:var(--muted)}.share-entry button{border:0;background:transparent;color:var(--danger);padding:4px}
.calendar-list-heading{display:flex;align-items:center;justify-content:space-between;margin:0 5px 8px}.calendar-list-heading button{width:28px;height:28px;border:1px solid var(--line);background:#fff;color:var(--accent);border-radius:4px;font-size:18px}.shared-heading{display:block;margin:18px 5px 8px!important}.calendar-source label small{font-size:9px;color:var(--accent);background:#e9f5f0;padding:1px 4px;border-radius:3px}.calendar-actions{position:relative}.calendar-actions summary{list-style:none;cursor:pointer;color:var(--muted);padding:2px 7px;font-size:18px}.calendar-actions summary::-webkit-details-marker{display:none}.calendar-actions>div{position:absolute;right:0;top:28px;z-index:5;width:82px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 20px #17212b24;padding:4px}.calendar-actions button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:6px 8px;color:var(--ink)}.calendar-actions button:hover{background:#f1f5f4}.calendar-actions button.danger{color:var(--danger)}.calendar-source-empty{display:block;color:var(--muted);padding:5px}
@media(max-width:760px){.calendar-layout>aside{display:block;max-height:158px;padding:8px 10px;overflow-y:auto;overflow-x:visible}.calendar-list-heading{margin:0 0 4px}.calendar-source{min-height:34px}.calendar-source label>span:nth-of-type(2){white-space:nowrap}.shared-heading{margin:8px 4px 3px!important}.calendar-actions>div{position:fixed;right:10px;top:auto}.calendar-board{height:calc(100vh - 150px)}}
