:root{font:100%/1.5 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:#243d34;background:#f5f6f2;--ink:#243d34;--muted:#62736c;--green:#284f40;--line:#dfe5dc;--paper:#fffefa;--soft:#eaf0e6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button,a,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{color:inherit}button:active:not(:disabled){transform:scale(.98);background-color:#dde8d9}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #92ad84;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.muted{color:var(--muted);font-size:.8rem}a{color:var(--green)}.app-shell{max-width:1160px;height:100dvh;min-height:640px;margin:auto;padding:14px 32px 12px;display:flex;flex-direction:column;gap:10px}.topbar,.context-bar,.clock-strip,.section-heading,.calendar-toolbar,.action-bar,.dialog-top{display:flex;align-items:center;justify-content:space-between}.topbar{flex-shrink:0;min-height:43px}.wordmark{font-family:Georgia,"Songti SC",serif;font-size:1.2rem;font-weight:650;letter-spacing:.06em}.brand-caption{font-family:system-ui,sans-serif;letter-spacing:0;font-size:.74rem;color:var(--muted);font-weight:400;margin-left:18px}.sync-actions{display:flex;align-items:center;gap:8px}.sync-state{border:0;background:none;font-size:.75rem;color:var(--muted);min-height:44px;padding:8px}.sync-state:before{content:'';display:inline-block;width:6px;height:6px;background:#71916b;border-radius:50%;margin-right:7px}.sync-state.failed:before{background:#b97842}.icon-button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:6px 10px;font-size:.9rem}.context-bar{min-height:36px;flex-shrink:0}.owner-control select{font-size:1.35rem;font-weight:650;border:0;background:transparent;color:var(--ink);padding:0 22px 0 0;min-height:44px;max-width:280px}.timezone-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.75rem}.timezone-control select{border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:7px;min-height:38px;font-size:.8rem;color:var(--ink)}.clock-strip{justify-content:flex-start;gap:26px;flex-shrink:0;font-size:.75rem;color:var(--muted);min-height:24px}.clock-strip>span{display:flex;align-items:baseline;gap:8px}.clock-strip strong{font-variant-numeric:tabular-nums;color:var(--ink);font-size:1rem;font-weight:600}.clock-strip small{font-size:.7rem}.clock-strip .offset-label{margin-left:auto;font-size:.7rem}.notice{background:#fff0d9;color:#875c2f;border-radius:8px;font-size:.75rem;padding:8px 12px;flex-shrink:0}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;flex-shrink:0}.status-card{position:relative;text-align:left;border:1px solid var(--line);border-radius:16px;padding:18px 24px;min-width:0;min-height:178px;display:flex;flex-direction:column;align-items:flex-start;background:var(--paper)}.now-card{background:var(--green);color:#fffef7;border-color:var(--green)}.status-card:disabled{opacity:1}.now-card:active:not(:disabled){background:#355d4c}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:center;width:100%;font-size:.75rem;font-weight:500;margin-bottom:10px}.now-card .card-top{color:#dae7d5}.state-dot{width:6px;height:6px;border-radius:50%;background:#a7c59a}.status-card h2{font-size:1.22rem;font-weight:600;line-height:1.4;margin:0 0 9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;max-width:100%}.card-time{font-size:1.65rem;letter-spacing:-.03em;line-height:1.25;font-weight:600;font-variant-numeric:tabular-nums}.now-card .card-time{margin-top:auto}.card-date{font-size:.75rem;color:var(--muted);margin-top:auto}.card-note{font-size:.75rem;line-height:1.4;margin-top:8px;padding-right:18px;color:var(--muted);max-width:100%}.now-card .card-note{color:#e0ebda}.card-corner{position:absolute;right:17px;bottom:13px;font-size:1rem;opacity:.65}.status-card:disabled .card-corner{display:none}#countdown{color:#6a7c6c;font-size:.7rem}.schedule-section{min-height:150px;flex:1;border:1px solid var(--line);background:var(--paper);border-radius:16px;display:flex;flex-direction:column;overflow:hidden}.section-heading{padding:13px 20px 8px;gap:12px;flex-shrink:0}.section-heading>div:first-child{display:flex;gap:12px;align-items:baseline}.section-heading h2{font-size:1rem;margin:0;font-weight:650}.view-switch{display:flex;gap:3px;background:#eef1ea;padding:3px;border-radius:10px}.view-switch button{min-height:36px;padding:4px 16px;border:0;border-radius:7px;background:transparent;font-size:.8rem;color:var(--muted)}.view-switch .active{background:#fffefa;color:var(--green);box-shadow:0 1px 4px #263b2b15;font-weight:600}.calendar-toolbar{padding:0 20px 7px;flex-shrink:0;font-size:.75rem;color:var(--muted);gap:8px}.date-controls{display:flex;align-items:center;gap:4px}.date-controls button{border:0;background:none;min-height:36px;border-radius:7px;font-size:.8rem}.date-controls .icon-button{min-width:36px;font-size:1.25rem}.date-controls #return-today{padding:4px 10px}.agenda-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bdcbb5 transparent;padding:0 20px 14px;scroll-padding:12px}.agenda-list{display:grid;gap:8px}.event{width:100%;text-align:left;background:#f0f4eb;border:1px solid #e0e8d9;border-left:3px solid #86a171;border-radius:10px;padding:13px 14px;display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:3px 18px;align-items:center}.event.personal-event{background:#edf2f6;border-color:#dae4eb;border-left-color:#7d9bb0}.event.cancelled-event{background:#f5f3ef;border-left-color:#b9b4a9;color:#7b7d75}.event-time{font-size:.94rem;font-weight:650;grid-column:1;grid-row:1;font-variant-numeric:tabular-nums}.event-cn{font-size:.72rem;color:var(--muted);grid-column:1;grid-row:2}.event-title{font-size:.94rem;font-weight:600;grid-column:2;grid-row:1;overflow-wrap:anywhere}.event-room{font-size:.76rem;color:var(--muted);grid-column:2;grid-row:2;overflow-wrap:anywhere}.event-badge{font-size:.68rem;grid-column:3;grid-row:1 / 3;background:#dbe7d2;border-radius:5px;padding:4px 6px}.cancelled-event .event-title{text-decoration:line-through}.ended-list{margin-top:12px;color:var(--muted);font-size:.8rem}.ended-list summary{padding:10px 0;cursor:pointer}.ended-list .event{opacity:.7}.empty-state{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 10px;text-align:center;color:var(--muted)}.empty-state strong{font-size:.95rem;font-weight:500;color:var(--ink)}.empty-state p{font-size:.8rem;margin:0}.text-button{border:0;background:none;color:var(--green);min-height:40px;padding:6px;font-size:.8rem;text-decoration:underline;text-underline-offset:4px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day-heading{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--muted);padding:10px 6px}.day-heading strong{font-size:1rem}.is-today .day-heading{color:var(--green);font-weight:650}.day-events{display:grid;gap:7px}.week-grid .event{display:flex;flex-direction:column;align-items:flex-start;padding:10px 8px;gap:5px}.week-grid .event-time{font-size:.78rem}.week-grid .event-title{font-size:.78rem}.week-grid .event-cn,.week-grid .event-room{font-size:.65rem}.week-grid .event-badge{font-size:.6rem}.free-day{font-size:.7rem;color:#78867a;padding:14px 6px}.week-days{display:none}.mobile-week-agenda{display:none}.action-bar{flex-shrink:0;min-height:55px;padding:0 2px;gap:12px}.footer-context{display:grid;gap:2px}.footer-context strong{font-size:.75rem;font-weight:500}.footer-context small{font-size:.68rem;color:var(--muted)}.primary-button{border:0;border-radius:11px;background:var(--green);color:white;min-height:46px;padding:10px 23px;font-size:.9rem;font-weight:550}.primary-button:active:not(:disabled){background:#41644e}.primary-button:disabled{opacity:.5}.primary-button span{font-size:1.2rem;vertical-align:-1px;margin-right:5px}.toast{position:fixed;z-index:20;bottom:90px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);width:max-content;background:#273f35;color:#fff;padding:12px 18px;border-radius:10px;font-size:.85rem;box-shadow:0 6px 24px #16291c25;pointer-events:none}dialog{width:min(520px,calc(100% - 32px));border:1px solid var(--line);border-radius:18px;padding:0;background:var(--paper);color:var(--ink);max-height:90dvh;box-shadow:0 20px 100px #19281b35}dialog::backdrop{background:#1b302a66}dialog[open]{display:flex;flex-direction:column}.dialog-top{padding:14px 20px 10px;flex-shrink:0;gap:12px}.dialog-top h2{font-size:1.1rem;margin:0;font-weight:650}.dialog-top>span{font-size:.8rem;color:var(--muted)}.dialog-top .icon-button{border:0;background:#eef1e9;font-size:1.3rem}.dialog-body{overflow:auto;padding:0 24px 24px;min-height:0;font-size:.88rem;line-height:1.8}.dialog-body h2{font-size:1.3rem;line-height:1.5;margin-top:6px;overflow-wrap:anywhere}.dialog-body .description{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem;color:var(--muted)}dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;margin:18px 0;font-size:.85rem}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.text-link{display:block;padding-top:14px;font-size:.85rem}summary{cursor:pointer}#plan-form{display:flex;flex-direction:column;overflow:hidden;min-height:0}.form-scroll{overflow:auto;padding:0 24px 10px;min-height:0;overscroll-behavior:contain}.plan-context{font-size:.8rem;color:var(--muted);margin:0 0 14px}.quick-presets{display:flex;gap:8px;margin-bottom:14px}.quick-presets button,.duration-row button{border:1px solid var(--line);border-radius:9px;background:#f5f7f0;min-height:42px;font-size:.8rem;padding:7px 13px}.quick-presets button{flex:1}.quick-presets button.selected,.duration-row button.selected{border-color:#70905d;background:#e4eedb;color:#264d34;font-weight:600}form label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:#465c50;margin:0 0 13px}form input,form select,form textarea{width:100%;min-width:0;border:1px solid #d4decd;border-radius:9px;background:#fffefa;color:var(--ink);font-size:1rem;padding:10px 11px;min-height:44px}form textarea{resize:vertical}.time-label{display:flex;align-items:center;justify-content:space-between}.time-label label{margin:0}.time-label .text-button{min-height:30px}.duration-row{display:flex;align-items:center;gap:7px;margin:10px 0 14px}.duration-row>span{font-size:.8rem;color:var(--muted);margin-right:3px}.duration-row button{flex:1;padding:7px 8px;font-size:.75rem}.conversion-preview{padding:9px 11px;border-radius:8px;background:#eaf0e4;color:#43633b;font-size:.78rem;margin:0 0 10px;line-height:1.6;min-height:38px}.conversion-preview.invalid{background:#fff0df;color:#955d37}.more-options{border-top:1px solid var(--line);font-size:.8rem}.more-options>summary{padding:12px 0;color:var(--muted);min-height:44px}.more-content{padding:6px 0}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkbox-label{display:flex;flex-direction:row;align-items:center;gap:8px}.checkbox-label input{width:17px;height:17px;min-height:0;accent-color:var(--green)}.form-footer{border-top:1px solid var(--line);background:var(--paper);padding:12px 24px 17px;flex-shrink:0}.form-footer .primary-button{width:100%}.form-error{color:#a54a32;font-size:.8rem;margin:0 0 10px;line-height:1.5}.form-error:empty{display:none}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.danger-button{border:1px solid #d7bca8;color:#8b5337;background:#fff7f0;border-radius:10px;padding:10px;min-height:44px}.busy-item{display:block;width:100%;padding:12px;text-align:left;border:1px solid var(--line);background:var(--soft);border-radius:10px;margin:9px 0;font-size:.85rem;line-height:1.6}.failure{background:#fff0df;padding:10px;color:#90592f}.auth-screen{display:none;min-height:100dvh;align-items:center;justify-content:center;padding:24px}.auth-card{max-width:440px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:35px}.auth-card h1{font-size:1.5rem;margin-top:35px;line-height:1.6}.auth-card p{font-size:.9rem;color:var(--muted);line-height:1.9}.auth-required .app-shell{display:none}.auth-required .auth-screen{display:flex}
@media(min-width:1300px){.app-shell{padding-top:20px;padding-bottom:16px;gap:14px}.status-card{min-height:190px}}
@media(max-width:700px){.app-shell{padding:8px 14px max(8px,env(safe-area-inset-bottom));gap:8px;min-height:590px}.brand-caption{display:none}.topbar{min-height:38px}.wordmark{font-size:1.08rem}.sync-actions{gap:1px}.sync-state{font-size:.68rem;padding:4px 6px}.sync-actions .icon-button{font-size:.75rem;min-height:40px;min-width:40px;padding:4px 7px}.context-bar{min-height:38px}.owner-control select{font-size:1.14rem;max-width:180px;min-height:40px}.timezone-control{gap:4px}.timezone-control>span{display:none}.timezone-control select{font-size:.75rem;padding:5px 6px;min-height:36px}.clock-strip{justify-content:space-between;gap:6px;min-height:25px}.clock-strip>span{gap:5px;font-size:.68rem}.clock-strip strong{font-size:.9rem}.clock-strip small{font-size:.62rem}.clock-strip .offset-label{display:none}.status-grid{gap:9px}.status-card{padding:13px 13px 15px;border-radius:13px;min-height:175px}.card-top{font-size:.7rem;margin-bottom:8px;gap:4px}.status-card h2{font-size:1rem;line-height:1.4;margin-bottom:6px}.card-time{font-size:1.3rem}.card-date{font-size:.67rem}.card-note{font-size:.67rem;margin-top:6px;padding-right:9px}.card-corner{right:9px;bottom:9px;font-size:.8rem}#countdown{font-size:.62rem}.schedule-section{border-radius:13px;min-height:150px}.section-heading{padding:9px 12px 5px}.section-heading>div:first-child{gap:7px}.section-heading h2{font-size:.88rem}.section-heading .muted{font-size:.65rem}.view-switch button{min-height:34px;padding:4px 12px;font-size:.73rem}.calendar-toolbar{padding:0 10px 4px;font-size:.68rem}.date-controls{gap:0}.date-controls .icon-button{min-width:32px;min-height:34px}.date-controls #return-today{padding:3px 6px;font-size:.72rem;min-height:34px}.agenda-scroll{padding:0 10px 10px}.event{grid-template-columns:93px minmax(0,1fr);padding:10px 9px;gap:3px 10px}.event-time{font-size:.79rem}.event-cn{font-size:.64rem}.event-title{font-size:.84rem}.event-room{font-size:.68rem}.event-badge{grid-column:2;grid-row:3;justify-self:start;padding:2px 5px;font-size:.6rem}.empty-state{min-height:100px;padding:12px 5px;gap:5px}.empty-state strong{font-size:.86rem}.empty-state p{font-size:.72rem}.empty-state .text-button{font-size:.73rem;min-height:36px}.action-bar{min-height:55px;gap:8px}.footer-context strong{font-size:.68rem}.footer-context small{font-size:.6rem}.action-bar .primary-button{padding:10px 15px;font-size:.85rem;min-height:46px}.action-bar .primary-button span{font-size:1.05rem}.week-grid{display:none}.week-days:not([hidden]){display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:0 8px 6px;flex-shrink:0}.week-days button{display:flex;flex-direction:column;align-items:center;border:0;background:none;border-radius:8px;min-height:48px;padding:3px 0;color:var(--muted);font-size:.6rem;gap:1px}.week-days strong{font-size:.83rem;font-weight:600}.week-days button.selected{background:var(--green);color:white}.week-days .has-event:after{content:'';width:3px;height:3px;border-radius:50%;background:currentColor}.mobile-week-agenda{display:block}.notice{font-size:.68rem;padding:6px 9px}.toast{bottom:82px;font-size:.78rem}dialog{width:100%;max-width:none;margin:auto 0 0;border-radius:20px 20px 0 0;border-bottom:0;max-height:96dvh}.dialog-top{padding:12px 18px 7px}.dialog-top h2{font-size:1.05rem}.dialog-body{padding:0 19px max(20px,env(safe-area-inset-bottom))}.form-scroll{padding:0 18px 6px}.form-footer{padding:10px 18px max(12px,env(safe-area-inset-bottom))}.plan-context{font-size:.74rem;margin-bottom:10px}.quick-presets{gap:7px;margin-bottom:10px}.quick-presets button{min-height:40px;padding:5px 8px;font-size:.77rem}form label{margin-bottom:10px;font-size:.77rem}form input,form select,form textarea{padding:8px 9px}.duration-row{margin:8px 0 10px;gap:5px}.duration-row button{min-height:38px;font-size:.7rem;padding:5px}.conversion-preview{font-size:.73rem;padding:8px}.more-options>summary{padding:10px 0;min-height:40px}.dialog-top .icon-button{min-height:38px;min-width:38px}.form-pair{gap:8px}}
@media(max-height:700px) and (max-width:700px){.app-shell{gap:6px;padding-top:5px}.status-card{min-height:157px;padding-top:10px;padding-bottom:12px}.card-top{margin-bottom:5px}.status-card h2{font-size:.92rem}.card-time{font-size:1.15rem}.section-heading{padding-top:6px}.action-bar{min-height:50px}.clock-strip{min-height:22px}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:appear .16s ease-out}@keyframes appear{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}@media(prefers-contrast:more){:root{--muted:#3b5145;--line:#8d9d87}.card-note{color:#3b5145}.now-card .card-note{color:white}}

/* 首屏语义、滚动提示及一致的 24 小时输入。 */
.schedule-section{position:relative}.scroll-hint{position:absolute;bottom:0;left:0;right:0;padding:14px 8px 5px;background:linear-gradient(transparent,#fffefa 45%);font-size:.72rem;color:#586d5c;text-align:center;pointer-events:none}.card-corner{font-size:.7rem;bottom:9px}.card-note{padding-right:35px}.date-time-pair{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:9px;margin-bottom:12px}.date-picker{position:relative;min-width:0;border:1px solid #d4decd;border-radius:9px;background:#fffefa;min-height:44px;display:flex;align-items:center;padding:8px 11px;font-size:.9rem}.date-picker:after{content:'⌄';margin-left:auto;padding-left:8px;color:var(--muted)}.date-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.date-picker:focus-within{outline:3px solid #92ad84;outline-offset:2px}.time-input{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.03em}.conversion-preview{font-weight:550}.form-scroll>label[for=plan-end-time]{margin-bottom:6px}
@media(max-width:700px){.card-top{font-size:.75rem}.card-note,.card-date{font-size:.75rem;line-height:1.45}.card-note{padding-right:22px}.card-corner{font-size:.65rem;right:7px;bottom:7px}.status-card{min-height:182px}.conversion-preview{font-size:.8rem}.clock-strip small{font-size:.7rem}.calendar-toolbar .icon-button{min-width:40px;min-height:40px}.date-time-pair{margin-bottom:10px}.date-picker{font-size:.88rem}.duration-row{margin-top:2px}.scroll-hint{font-size:.7rem}}
@media(max-height:700px) and (max-width:700px){.status-card{min-height:174px}.card-note,.card-date{font-size:.72rem}.card-time{font-size:1.2rem}}

#next-other{white-space:pre-line}dialog{max-height:min(90dvh,calc(var(--visible-height,100dvh)*.94))}@media(max-width:700px){dialog{position:fixed;top:auto;bottom:var(--keyboard-gap,0px);max-height:calc(var(--visible-height,100dvh)*.96)}}
dialog[open]{animation:none}@media(max-width:700px){dialog{max-height:min(96dvh,calc(var(--visible-height,100dvh)*.96))}}
