:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#fcfdfb;--surface:#fff;--text:#17251e;--muted:#53665b;--line:#d7e1da;--accent:#007b59;--accent-text:#fff;--toolbar:#d8eee5;--selected:#e1f2e8;--notice:#fff5d6;--notice-text:#654c0f;--danger:#a32932;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--bg:#111d17;--surface:#17271e;--text:#eaf2ed;--muted:#b2c4b8;--line:#3b5143;--accent:#a1dfba;--accent-text:#103821;--toolbar:#294534;--selected:#294d38;--notice:#3c321a;--notice-text:#f6dea0;--danger:#ffa4aa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--bg:#111d17;--surface:#17271e;--text:#eaf2ed;--muted:#b2c4b8;--line:#3b5143;--accent:#a1dfba;--accent-text:#103821;--toolbar:#294534;--selected:#294d38;--notice:#3c321a;--notice-text:#f6dea0;--danger:#ffa4aa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button,input,select,textarea{font:inherit}button{min-height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 16px;font-size:14px}button:hover{background:var(--selected)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.primary{background:var(--accent);color:var(--accent-text)}button.primary:hover{box-shadow:inset 0 0 0 2px var(--accent-text)}button.danger{color:var(--danger)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:550}p{line-height:1.5}a{color:var(--accent)}.muted{color:var(--muted);font-size:13px}.icon-button{border-radius:50%;justify-content:center;align-items:center;width:44px;min-width:44px;padding:0;display:inline-flex}.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}.skip-link{z-index:10;background:var(--surface);padding:12px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-toolbar{background:var(--toolbar);border-radius:32px;align-items:center;gap:20px;width:calc(100% - 40px);max-width:1440px;min-height:64px;margin:16px auto 4px;padding:8px 16px;display:flex}.app-name{align-items:center;gap:12px;margin-right:auto;font-size:19px;display:flex}.view-switch{gap:2px;display:flex}.view-switch button{border-radius:22px;padding:8px 16px}.view-switch button[aria-pressed=true]{background:var(--surface)}.toolbar-actions{align-items:center;gap:4px;display:flex}.more-menu{position:relative}.menu-popup{z-index:4;border:1px solid var(--line);background:var(--surface);border-radius:12px;min-width:160px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0002}.menu-popup button{text-align:left;width:100%}.spinning{animation:1.2s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.main{flex:1;width:calc(100% - 40px);min-width:0;max-width:1440px;margin:0 auto;padding-bottom:18px}.month-navigation{justify-content:space-between;align-items:center;min-height:64px;padding:6px 0;display:flex}.month-picker{border-radius:8px;position:relative}.month-picker h1{align-items:center;gap:8px;margin:0;padding:6px 14px;font-size:24px;display:flex}.month-picker h1 svg{width:16px;height:16px}.month-picker:focus-within{outline:3px solid var(--accent);outline-offset:2px}.month-grid{width:100%}.weekday-row,.week-row{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row{color:var(--muted);text-align:center;font-size:13px}.weekday-row>div{padding:8px 0}.day-cell{min-width:0;min-height:max(84px,16.6667dvh - 40px);padding:0 4px 8px}.day-number{border:1px solid #0000;border-radius:50%;width:44px;margin:0 auto 3px;padding:0;font-size:16px;display:block}.day-cell.outside .day-number{color:var(--muted)}.day-cell.selected .day-number{border-color:var(--accent);background:var(--selected)}.day-cell.today .day-number{color:var(--accent-text);background:var(--accent)}.day-events{flex-direction:column;gap:3px;display:flex}.event-chip{width:100%;min-width:0;min-height:28px;color:var(--calendar-text);background:var(--calendar-color);text-align:left;border-radius:4px;align-items:center;gap:4px;padding:4px 7px;font-size:12px;line-height:1.35;display:flex}.event-chip:hover{background:var(--calendar-color);box-shadow:inset 0 0 0 2px}.event-chip>span:first-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.event-chip time{font-size:11px}.repeat-mark{flex-shrink:0;margin-left:auto}.more-events{min-height:28px;color:var(--muted);align-self:center;padding:3px 9px;font-size:12px}.day-dots,.selected-day{display:none}.calendar-strip{z-index:2;background:var(--bg);flex-shrink:0;min-height:56px;margin-top:auto;display:flex;position:sticky;bottom:0;overflow-x:auto}.calendar-strip button{border-bottom:4px solid var(--calendar-color);white-space:nowrap;border-radius:0;flex:1;min-width:100px}.calendar-strip button[aria-pressed=false]{color:var(--muted);border-bottom-color:var(--line);text-decoration:line-through}.add-event{z-index:3;border-radius:16px;justify-content:center;align-items:center;width:56px;min-height:56px;padding:0;display:flex;position:fixed;bottom:78px;right:max(24px,50vw - 720px);box-shadow:0 5px 14px #0003}.add-event svg{width:28px;height:28px}.agenda{max-width:920px;margin:0 auto;padding-bottom:64px}.agenda-day{margin:12px 0 26px}.agenda-day h2,.selected-day h2{margin-bottom:12px;font-size:16px}.today-label{color:var(--accent)}.agenda-event{border:1px solid var(--line);border-left:6px solid var(--calendar-color);background:var(--surface);text-align:left;overflow-wrap:anywhere;border-radius:12px;flex-direction:column;align-items:stretch;gap:5px;width:100%;min-height:80px;margin-bottom:10px;padding:12px 16px;display:flex}.agenda-event strong{font-size:17px;font-weight:500}.event-time,.event-location{color:var(--muted);font-size:14px}.empty-state{color:var(--muted);text-align:center;margin:24px 0;font-size:14px}.calendar-list{flex-direction:column;gap:4px;display:flex}.calendar-toggle{cursor:pointer;border-radius:8px;flex-direction:row;align-items:center;gap:14px;min-height:48px;margin:0;padding:8px;font-size:15px;display:flex}.calendar-toggle:hover{background:var(--selected)}.calendar-toggle input{flex-shrink:0;width:20px;height:20px;min-height:0;margin:0;padding:0}.calendar-toggle>span{overflow-wrap:anywhere}.read-only-badge{color:var(--muted);margin-left:auto;font-size:12px}.notice{background:var(--notice);color:var(--notice-text);overflow-wrap:anywhere;border-radius:8px;margin:0 0 16px;padding:12px 14px;font-size:14px;line-height:1.5}.notice button{min-height:36px;color:inherit;margin-left:8px;font-size:13px}.notice summary{cursor:pointer}.notice ul{padding-left:20px}.conflict{border:1px solid var(--line);border-radius:10px;margin-bottom:20px;padding:14px;font-size:13px;overflow:auto}.conflict h3{margin-bottom:12px;font-size:18px}.conflict table{table-layout:fixed;border-collapse:collapse;width:100%}.conflict td,.conflict th{text-align:left;border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:8px 4px}.conflict th{font-weight:600}.conflict p{margin:12px 0}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}dialog{border:1px solid var(--line);background:var(--surface);width:min(600px,100vw - 32px);max-height:calc(100dvh - 40px);color:var(--text);border-radius:20px;padding:0;overflow:auto;box-shadow:0 16px 56px #0003}dialog::backdrop{background:#0006}.dialog-header{z-index:1;background:var(--toolbar);align-items:center;gap:12px;min-height:64px;padding:8px 12px;display:flex;position:sticky;top:0}.dialog-header h2{flex:1;margin:0;font-size:21px}.dialog-header-actions{gap:4px;display:flex}.dialog-body{padding:20px 24px}label{flex-direction:column;gap:7px;margin-bottom:18px;font-size:13px;display:flex}input,select,textarea{border:1px solid var(--line);background:var(--bg);width:100%;min-width:0;min-height:44px;color:var(--text);border-radius:6px;padding:10px 11px;font-size:15px}textarea{resize:vertical}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}fieldset{border:0;border-top:1px solid var(--line);min-width:0;margin:0;padding:16px 0 0}legend{padding:0}.check-label{flex-direction:row;justify-content:space-between;align-items:center;min-height:44px;font-size:15px}.check-label input,.weekday-options input{width:20px;height:20px;min-height:0;accent-color:var(--accent);margin:0;padding:0}.editor-texts{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.editor-texts input,.editor-texts textarea{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:10px 0}.editor-texts .event-title{font-size:20px}.editor-texts textarea{min-height:44px}.timezone-options{margin:0 0 18px;font-size:14px}.timezone-options>summary{color:var(--muted);cursor:pointer;padding:12px 0}.timezone-options[open]>summary{margin-bottom:10px}.weekday-options{justify-content:space-between;gap:6px;margin:0 0 16px;display:flex}.weekday-options label{align-items:center;min-height:44px;margin:0;font-size:12px}.dialog-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;display:flex}.event-description{white-space:pre-wrap;overflow-wrap:anywhere}.login-page{justify-content:center;align-items:center;min-height:100dvh;padding:32px 24px;display:flex}.login-form{width:100%;max-width:360px}.login-form h1{align-items:center;gap:12px;margin-bottom:32px;font-size:28px;display:flex}.login-form h1 svg{color:var(--accent);width:32px;height:32px}.login-form form>button{width:100%;margin-top:8px}@media (width<=900px){.app-toolbar{gap:12px}.app-name{font-size:17px}.toolbar-actions{gap:0}.event-chip time{display:none}}@media (width<=650px){.app-toolbar{justify-content:space-between;gap:4px;width:calc(100% - 20px);min-height:56px;margin:10px auto 2px;padding:6px}.app-name{display:none}.app-toolbar .icon-button{width:40px;min-width:40px}.view-switch button{padding:8px 12px;font-size:13px}.main{width:calc(100% - 20px);padding-bottom:64px}.month-navigation{min-height:60px}.month-picker h1{font-size:21px}.weekday-row>div{padding:8px 0 4px;font-size:12px}.day-cell{min-height:56px;padding:0}.day-number{margin-bottom:0;font-size:16px}.day-events{display:none}.day-dots{justify-content:center;align-items:center;gap:3px;height:8px;display:flex}.day-dots>span{background:var(--calendar-color);border-radius:50%;width:5px;height:5px}.selected-day{border-top:1px solid var(--line);margin:20px 2px 0;padding-top:18px;display:block}.selected-day .empty-state{text-align:left}.calendar-strip{min-height:52px}.calendar-strip button{font-size:13px}.add-event{bottom:72px;right:18px}.agenda{padding-bottom:20px}.agenda-day{margin-top:10px}.agenda-event{padding:11px 14px}.dialog-body{padding:18px 20px}.dialog-header{gap:8px;padding:8px}.dialog-header h2{font-size:20px}dialog:has(.event-form){border:0;border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}input,select,textarea{font-size:16px}.form-grid{gap:12px}.date-fields{grid-template-columns:1fr;gap:0}}@media (width<=380px){.app-toolbar{flex-wrap:wrap}.view-switch,.toolbar-actions{flex:1;justify-content:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.mobile-view{display:none}.month-picker h1{padding:0;display:block}.month-picker h1 button{font-size:inherit;font-weight:inherit;align-items:center;gap:8px;display:flex}.date-time-field{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;display:grid}.date-fields{grid-template-columns:1fr;display:grid}.form-grid>:only-child{grid-column:1/-1}.dialog-header h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.scope-actions{flex-direction:column;gap:8px;display:flex}.scope-actions button{text-align:left}.search-results{flex-direction:column;gap:12px;margin-top:24px;display:flex}.import-list{padding:0;list-style:none}.import-list li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;flex-direction:column;gap:4px;padding:12px 0;display:flex}.time-grid-scroll{border:1px solid var(--line);border-radius:12px;max-height:calc(100dvh - 230px);overflow:auto}.time-grid{min-width:calc(56px + var(--day-count) * 120px)}.time-grid-header,.time-grid-body{grid-template-columns:56px repeat(var(--day-count), minmax(0, 1fr));display:grid}.time-grid-header{z-index:3;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.time-label{color:var(--muted);padding:18px 4px;font-size:11px}.time-day-head{border-left:1px solid var(--line);padding:4px}.time-day-name{width:100%;padding:8px 4px;font-size:12px}.all-day-add{width:100%;min-height:28px;color:var(--muted);padding:0;display:block}.time-axis,.time-column{position:relative}.time-axis span{color:var(--muted);font-size:11px;position:absolute;right:6px}.time-axis small,.time-slot-label small{font-size:9px;display:block}.time-slot-label{text-align:left;color:var(--muted);pointer-events:none;padding:2px 4px;font-size:11px;display:block}.time-column{border-left:1px solid var(--line)}.time-slot{border-top:1px solid var(--line);border-radius:0;width:100%;height:44px;min-height:44px;padding:0;display:block}.time-slot.half-hour{border-top-style:dashed}.timed-event{z-index:1;border:1px solid var(--bg);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:3px;min-height:24px;position:absolute;overflow:hidden}.timed-event>span:first-child{width:100%}.timed-event time{font-size:11px}@media (width<=900px){.app-name{display:none}}@media (width<=650px){.view-switch{display:none}.mobile-view{background:0 0;border:0;border-radius:22px;width:104px;min-height:44px;padding:8px;font-size:14px;display:block}.time-grid-scroll{max-height:calc(100dvh - 230px)}.month-picker h1 button{padding:8px;font-size:17px}}@media (width<=380px){.mobile-view{margin:0 auto}.app-toolbar .toolbar-actions{flex-basis:100%}.form-grid{grid-template-columns:1fr;gap:0}}.time-axis{z-index:2;background:var(--bg);position:sticky;left:0}.time-label{z-index:4;background:var(--bg);position:sticky;left:0}
