:root{--bg:#fff;--text:#24272c;--hint:#858992;--accent:#476d96;--secondary:#f5f6f8;--line:#e9ebee;--selected:#edf2f8;color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none;border-radius:7px;padding:9px 12px}button:hover{background:var(--selected)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{color:inherit;background:transparent;border:0;outline:none;width:100%;padding:12px 0}input:focus,textarea:focus,select:focus{box-shadow:0 1px var(--accent)}textarea{resize:vertical;min-height:180px;line-height:1.7}a{color:var(--accent);text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:23px;letter-spacing:-.6px;font-weight:600}h2{font-size:20px;font-weight:600}h3{font-size:15px;font-weight:600}.muted{color:var(--hint)}.small{font-size:12px}.primary{background:var(--accent);color:#fff}.primary:hover{filter:brightness(1.08);background:var(--accent)}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:14px}.grow{flex:1;min-width:0}.divider{border-bottom:1px solid var(--line)}#app{height:100dvh;display:flex}#sidebar{width:224px;flex-shrink:0;background:var(--secondary);padding:30px 16px;overflow:auto;border-right:1px solid var(--line)}.brand{padding:0 12px 27px;letter-spacing:-.7px;font-size:23px;font-weight:600}.brand span{color:var(--accent);margin-right:10px}.compose-button{width:100%;margin-bottom:27px;padding:12px}.account{width:100%;text-align:left;margin:4px 0 12px}.account small{display:block;margin-top:5px;overflow:hidden;text-overflow:ellipsis}.folder{display:flex;width:100%;align-items:center;text-align:left;gap:12px;margin:3px 0;padding:10px 12px}.folder .count{margin-left:auto;font-size:12px;color:var(--hint)}.active{background:var(--selected);color:var(--accent)}.side-label{padding:23px 12px 8px;text-transform:uppercase;font-size:10px;letter-spacing:1.2px;color:var(--hint)}#workspace{flex:1;display:flex;min-width:0}#list{width:350px;flex-shrink:0;border-right:1px solid var(--line);overflow:auto}.list-head{padding:29px 23px 16px;position:sticky;top:0;background:var(--bg);z-index:1}.search{background:var(--secondary);margin-top:20px;border-radius:8px;padding:0 12px}.search input{padding:10px 0;font-size:13px}.list-caption{font-size:11px;color:var(--hint);margin-top:16px;letter-spacing:.3px}.message{width:100%;border-radius:0;padding:19px 23px;text-align:left;border-bottom:1px solid var(--line);position:relative}.message.selected{background:var(--selected)}.message .sender{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message time{font-size:11px;color:var(--hint);white-space:nowrap}.message .subject{font-size:13px;margin:7px 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message .preview{font-size:12px;color:var(--hint);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.message.unread .sender,.message.unread .subject{font-weight:650}.dot{position:absolute;left:9px;top:24px;width:5px;height:5px;border-radius:50%;background:var(--accent)}#reader{min-width:0;flex:1;display:flex;flex-direction:column;overflow:auto}.toolbar{padding:19px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:3px;flex-wrap:wrap;min-height:70px}.toolbar button{font-size:12px;color:var(--hint)}.reader-head{padding:32px 36px 25px}.reader-head h1{line-height:1.4;margin-bottom:26px}.avatar{border-radius:50%;background:var(--selected);color:var(--accent);width:38px;height:38px;display:grid;place-items:center;font-weight:600;flex-shrink:0}.metadata{font-size:12px;line-height:1.8;overflow-wrap:anywhere}.mail-body{flex:1;min-height:240px;padding:0 36px 24px;display:flex;flex-direction:column}.mail-body iframe,.event-frame{border:0;width:100%;flex:1;min-height:360px;background:white}.plain{white-space:pre-wrap;line-height:1.8;font-size:14px}.attachments{padding:15px 36px;display:flex;gap:10px;flex-wrap:wrap}.attachment{padding:10px 13px;background:var(--secondary);border-radius:7px;font-size:12px}.empty{margin:auto;text-align:center;padding:55px 25px;color:var(--hint);line-height:1.8}.empty-symbol{font-size:35px;margin-bottom:13px;color:var(--accent);opacity:.5}.mobile-only,#bottom{display:none}#notice{padding:10px 20px;background:var(--selected);color:var(--accent);font-size:12px}body:has(#notice:not([hidden])) #app{height:calc(100dvh - 36px)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:9px;z-index:30;max-width:90vw;font-size:13px}#toast button{color:inherit;text-decoration:underline}#overlay{position:fixed;inset:0;background:#0005;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px}#overlay[hidden]{display:none}.sheet{background:var(--bg);width:620px;max-height:90dvh;overflow:auto;border-radius:12px;padding:25px 30px}.sheet label{display:block;border-bottom:1px solid var(--line);font-size:12px;color:var(--hint);padding-top:10px}.sheet label input,.sheet label textarea,.sheet label select{font-size:14px;color:var(--text)}.sheet blockquote{margin:12px 0;padding:8px 15px;border-left:2px solid var(--line);white-space:pre-wrap;line-height:1.6;color:var(--hint);font-size:12px}.error{color:#b65c57;font-size:13px;padding:12px 0}.wide{width:100%!important;border:0!important}.page{padding:32px;max-width:900px;width:100%;margin:0 auto}.settings-block{margin-top:30px}.settings-row{padding:18px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center}.day{padding:22px 0;border-bottom:1px solid var(--line)}.day h3{margin-bottom:15px}.event{display:flex;gap:20px;text-align:left;width:100%;padding:13px 10px}.event-time{width:95px;flex-shrink:0;font-size:12px;color:var(--hint)}.cancelled{text-decoration:line-through;opacity:.5}.skeleton{height:90px;margin:20px;background:linear-gradient(100deg,var(--secondary),var(--line),var(--secondary));background-size:200%;animation:pulse 1.5s infinite;border-radius:6px}@keyframes pulse{to{background-position:-200%}}@media(prefers-color-scheme:dark){:root{--bg:#1b1d21;--text:#e2e4e8;--hint:#92969f;--secondary:#22252a;--line:#303339;--selected:#293543;--accent:#8daed3}}@media(min-width:761px) and (max-width:1100px){#sidebar{width:190px;padding:25px 10px}#list{width:300px}.reader-head{padding:27px 25px}.mail-body{padding:0 25px 20px}.toolbar{padding:16px 12px}}@media(max-width:760px){#app{height:calc(100dvh - 62px - env(safe-area-inset-bottom))}#sidebar{display:none;position:fixed;inset:0 auto 0 0;width:280px;z-index:15;box-shadow:0 0 0 100vmax #0005}body.menu-open #sidebar{display:block}#list{width:100%;border:0}#reader{display:none}body.reading #list{display:none}body.reading #reader{display:flex}#bottom{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(62px + env(safe-area-inset-bottom));padding:6px 12px env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--bg);justify-content:space-around;z-index:10}#bottom button{font-size:11px;min-width:90px}#bottom button span{display:block;font-size:20px;margin-bottom:3px}.mobile-only{display:inline-block}.list-head{padding:20px 22px 14px}.message{padding:19px 23px}.reader-head{padding:24px}.reader-head h1{font-size:22px}.mail-body{padding:0 20px 20px}.toolbar{padding:10px 12px;min-height:54px}.attachments{padding:12px 20px}.page{padding:24px 20px}#overlay{padding:0}.sheet{width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:23px 22px;padding-bottom:calc(23px + env(safe-area-inset-bottom))}#toast{bottom:85px}.event{gap:10px}.event-time{width:82px}body:has(#notice:not([hidden])) #app{height:calc(100dvh - 98px - env(safe-area-inset-bottom))}}
/* Календарь: один пиксель на минуту, прокрутка на полные сутки. */
.calendar-page{height:100%;display:flex;flex-direction:column;min-height:0}.calendar-head{padding:24px 24px 18px;flex-shrink:0;border-bottom:1px solid var(--line)}.calendar-title{margin-bottom:20px}.calendar-controls{flex-wrap:wrap;gap:14px}.period-title{font-size:17px;min-width:180px}.calendar-views{display:flex;background:var(--secondary);padding:3px;border-radius:8px}.calendar-views button{font-size:12px;padding:8px 10px}.calendar-views .active{background:var(--selected)}.calendar-agenda{overflow:auto;padding:0 28px}.calendar-error{padding:12px 24px}.time-shell{--gutter:56px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}.time-headers,.all-day-row,.time-grid{display:grid;grid-template-columns:var(--gutter) repeat(var(--days),minmax(0,1fr))}.time-headers,.all-day-row{padding-right:10px;flex-shrink:0;border-bottom:1px solid var(--line)}.time-gutter{padding:12px 3px;font-size:10px;text-align:center}.time-day-heading{text-align:center;padding:12px 2px;display:flex;flex-direction:column;gap:6px;border-left:1px solid var(--line)}.time-day-heading strong{font-size:22px;font-weight:500}.today{background:color-mix(in srgb,var(--accent) 5%,var(--bg))}.time-day-heading.today strong,.month-day.today .month-date{color:var(--accent);font-weight:700}.all-day-row{max-height:140px;overflow:auto}.all-day-cell{min-height:38px;border-left:1px solid var(--line);padding:3px;min-width:0}.all-day-event{display:block;width:100%;font-size:11px;padding:4px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:2px 0;text-align:left}.time-scroll{overflow-y:scroll;flex:1;min-height:0;scrollbar-gutter:stable;max-height:740px}.time-grid{height:1440px;position:relative}.hour-labels{position:relative}.hour-label{position:absolute;right:9px;font-size:10px;color:var(--hint);transform:translateY(-50%)}.hour-label:first-child{transform:none}.time-column{position:relative;min-width:0;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,var(--line) 0,var(--line) 1px,transparent 1px,transparent 30px,color-mix(in srgb,var(--line) 55%,transparent) 30px,color-mix(in srgb,var(--line) 55%,transparent) 31px,transparent 31px,transparent 60px)}.time-event{position:absolute;overflow:hidden;text-align:left;border-radius:5px;padding:4px 6px;font-size:11px;z-index:1;line-height:1.35;display:flex;flex-direction:column;gap:2px}.event-clock{font-size:10px;white-space:nowrap}.event-subject{font-weight:600;overflow-wrap:anywhere}.event-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.75}.short-event{flex-direction:row;align-items:center;gap:5px;padding:2px 4px;white-space:nowrap}.short-event .event-subject{overflow:hidden;text-overflow:ellipsis}.short-event .event-clock{flex-shrink:1}.response-accepted,.response-organizer{background:var(--selected);border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent)}.response-tentative{background:repeating-linear-gradient(135deg,var(--selected),var(--selected) 4px,color-mix(in srgb,var(--accent) 20%,var(--bg)) 4px,color-mix(in srgb,var(--accent) 20%,var(--bg)) 6px);border:1px solid var(--accent)}.response-none{border:1px solid var(--accent);background:var(--bg);color:var(--accent)}.response-declined,.cancelled{opacity:.45;text-decoration:line-through;background:var(--secondary);border:1px solid var(--line)}.now-line{position:absolute;left:0;right:0;border-top:2px solid #d65b56;z-index:3;pointer-events:none}.now-line:before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#d65b56;top:-4px;left:-4px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:30px repeat(6,minmax(95px,1fr));overflow:auto;flex:1}.month-weekday{text-align:center;font-size:11px;color:var(--hint);padding:8px}.month-day{border-top:1px solid var(--line);border-left:1px solid var(--line);padding:4px;min-width:0;cursor:pointer}.month-day:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.month-date{font-size:12px;padding:5px 8px}.other-month .month-date{color:var(--hint)}.month-event{display:block;width:100%;text-align:left;font-size:11px;padding:3px 4px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px}.month-more{display:block;padding:4px}.password-block{max-width:480px;display:flex;flex-direction:column;gap:12px}.password-block label,.login-page label{display:block;border-bottom:1px solid var(--line);font-size:12px;color:var(--hint);padding-top:12px}.password-block input,.login-page input{color:var(--text);font-size:14px}.login-page{max-width:380px;margin:12vh auto;padding:24px;display:flex;flex-direction:column;gap:24px}.login-page .primary{margin-top:22px;width:100%}.login-page p{line-height:1.7}body.auth #bottom{display:none}body.auth #app{height:100dvh}.event-sheet{margin-left:auto;width:480px;height:100%;max-height:100%;border-radius:0;display:flex;flex-direction:column;gap:18px}#overlay:has(.event-sheet){padding:0;align-items:stretch}.event-sheet .event-frame{min-height:220px}
@media(max-width:760px){.calendar-head{padding:18px 12px 12px}.calendar-title{margin-bottom:12px}.calendar-title h1{font-size:21px}.calendar-controls{gap:8px}.calendar-controls>div:first-child{gap:0}.calendar-controls button{padding:8px}.period-title{font-size:14px;min-width:130px}.calendar-views{width:100%;justify-content:space-between}.calendar-views button{flex:1}.time-shell{--gutter:43px}.time-day-heading{padding:8px 1px}.time-event{padding:3px;font-size:10px}.calendar-agenda{padding:0 16px}.month-grid{grid-template-rows:28px repeat(6,minmax(90px,1fr))}.month-day{padding:2px}.month-event{font-size:9px;padding:2px}.month-date{padding:4px}.month-more{font-size:10px;padding:3px 0}.event-sheet{width:100%;height:85dvh;max-height:85dvh;border-radius:16px 16px 0 0;padding-bottom:calc(23px + env(safe-area-inset-bottom))}#overlay:has(.event-sheet){align-items:flex-end}.time-scroll{max-height:none}}

/* Месяц: «ещё N» не должно залезать на номер дня в следующей строке (правка 02.11.2026). */
.month-day{overflow:hidden;display:flex;flex-direction:column}
.month-more{margin-top:auto}
@media (min-width:761px){.month-grid{grid-template-rows:30px repeat(6,minmax(118px,1fr))}}
@media (max-width:760px){.month-grid{grid-template-rows:28px repeat(6,minmax(98px,1fr))}}
