.telegram-mini { margin: 0; background: #f5f6fa; color: #303a52; }
.telegram-mini .mini-shell { max-width: 1100px; padding: calc(16px + env(safe-area-inset-top)) 12px calc(18px + env(safe-area-inset-bottom)); margin: auto; }
.mini-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.mini-wordmark { color: #7c67b4; font-size: 13px; font-weight: 700; }
.mini-header h1 { margin: 2px 0 0; font-size: 24px; }
#mini-status { color: #7d879b; line-height: 1.6; font-size: 12px; }
#mini-status.error, .mini-error { color: #b84b71; }
.mini-source-sync { margin: 0 0 14px; color: #748093; font-size: 12px; line-height: 1.5; }
.mini-source-sync.error { color: #b84b71; }
.mini-toolbar { display: flex; align-items: center; gap: 7px; margin: 12px 0; }
.mini-toolbar input { flex: 1; padding: 9px; background: white; max-width: 210px; font-size: 14px; }
.mini-toolbar .icon-button { flex: 0 0 32px; }
.mini-toolbar .text-button { margin-left: auto; font-size: 11px; }
.mini-views { display: flex; gap: 5px; background: #eaeaf5; padding: 4px; border-radius: 9px; }
.mini-views button { background: transparent; color: #777b9a; padding: 9px 12px; font-size: 12px; }
.mini-views button.active { background: white; color: #65549a; }
#mini-add { margin-left: auto; color: #5c60a3; }
.mini-total { font-size: 12px; color: #64718b; margin: 13px 0; }
.mini-total.over { color: #bd4f77; }
.telegram-mini .calendar-scroll { max-height: calc(var(--tg-viewport-stable-height, 100vh) - 220px); min-height: 300px; -webkit-overflow-scrolling: touch; }
.telegram-mini .calendar-grid { grid-template-columns: 42px repeat(var(--calendar-days), minmax(0, 1fr)); }
.telegram-mini .calendar-week { min-width: 960px; grid-template-columns: 42px repeat(var(--calendar-days), 130px); }
.telegram-mini .calendar-day-heading, .telegram-mini .calendar-corner { min-height: 54px; }
.telegram-mini .calendar-date { font-size: 11px; }
.telegram-mini .calendar-work { font-size: 10px; }
.telegram-mini .calendar-event { cursor: pointer; }
.telegram-mini .calendar-now, .telegram-mini .calendar-now:before { background: #d14c5c; }
.telegram-mini .calendar-event strong { font-size: 11px; }
.telegram-mini .calendar-event.short strong { font-size: 10px; }
.telegram-mini .mini-help { font-size: 10px; line-height: 1.6; color: #8b93a4; margin: 12px 0 0; }
.telegram-mini dialog { width: min(480px, calc(100vw - 20px)); max-height: calc(var(--tg-viewport-stable-height, 100vh) - 24px); padding: 18px; }
.mini-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.mini-dialog-heading h2 { margin: 0; font-size: 19px; }
.telegram-mini dialog input, .telegram-mini dialog select { font-size: 16px; }
.telegram-mini dialog label { font-size: 12px; }
.telegram-mini .mini-error { font-size: 12px; line-height: 1.6; }
.telegram-mini .info-box { margin: 0 0 15px; }
@media (min-width: 760px) { .telegram-mini .calendar-scroll { max-height: 700px; } }

/* Один календарь для Telegram, браузера и Windows */
.telegram-mini { background: #f7f8fc; color: #29354d; }
.telegram-mini .mini-shell { max-width: 1480px; padding: calc(22px + env(safe-area-inset-top)) 24px calc(18px + env(safe-area-inset-bottom)); }
.mini-workspace { min-width: 0; }
.mini-sidebar { display: none; }
.mini-header { margin-bottom: 20px; }
.mini-wordmark { font-size: 10px; color: #8b95aa; letter-spacing: .5px; }
.mini-header h1 { font-size: 26px; font-weight: 600; text-transform: capitalize; margin-top: 6px; letter-spacing: -.6px; }
.mini-header-actions { display: flex; gap: 10px; align-items: center; }
#mini-refresh { min-width: 36px; padding: 7px 11px; font-size: 21px; line-height: 1; }
#mini-monitor { font-size: 11px; background: white; padding: 9px 12px; }
.mini-toolbar { gap: 8px; margin: 0 0 15px; }
.mini-toolbar input { font-size: 13px; max-width: 165px; background: #fff; padding: 9px 11px; }
.mini-toolbar .icon-button { height: 36px; background: #fff; border: 1px solid #e2e6ef; }
.mini-toolbar .text-button { margin-left: 0; padding: 9px 14px; border: 1px solid #e2e6ef; border-radius: 7px; background: white; color: #5a6883; font-size: 12px; }
.mini-views { padding: 3px; background: #eaeef7; width: fit-content; gap: 3px; border-radius: 8px; }
.mini-views button { color: #7c88a0; font-size: 12px; padding: 8px 16px; border-radius: 6px; font-weight: 500; }
.mini-views button.active { color: #4e60cb; background: #fff; box-shadow: 0 1px 4px #24335b10; }
#mini-add { color: white; background: #5b6fdb; margin-left: 12px; }
.mini-calendar-meta { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 14px 0; }
.mini-total { margin: 0; font-size: 11px; color: #8590a4; }
.mini-search { margin: 0; width: 200px; }
.mini-search input { font-size: 12px; padding: 8px 11px; background: white; }
.telegram-mini .calendar-scroll { max-height: calc(var(--tg-viewport-stable-height, 100dvh) - 275px); border: 1px solid #e1e6ef; border-radius: 12px; }
.telegram-mini .calendar-grid { grid-template-columns: 52px repeat(var(--calendar-days),minmax(0,1fr)); }
.telegram-mini .calendar-week { min-width: 780px; grid-template-columns: 52px repeat(var(--calendar-days), minmax(102px,1fr)); }
.telegram-mini .calendar-day-heading, .telegram-mini .calendar-corner { min-height: 74px; padding-top: 14px; }
.telegram-mini .calendar-date { font-size: 13px; }
.telegram-mini .calendar-work { font-size: 10px; }
.telegram-mini .calendar-event { border-radius: 6px; padding: 5px 7px; gap: 3px; }
.telegram-mini .calendar-event strong { font-size: 12px; }
.telegram-mini .calendar-event-time { font-size: 10px; }
.telegram-mini .calendar-event.short { padding: 2px 5px; gap: 1px; }
.telegram-mini .calendar-event.short strong { font-size: 11px; }
.telegram-mini .mini-help { font-size: 10px; color: #8591a6; margin-top: 13px; }
.telegram-mini dialog { border-radius: 14px; padding: 23px; }
.telegram-mini dialog label { color: #728099; }
.calendar-client-login { margin: 10vh auto; width: min(380px, 100%); padding: 30px; background: white; border: 1px solid #e3e8f2; border-radius: 16px; box-shadow: 0 8px 40px #33426d06; }
.calendar-client-login > .brand-mark { margin-bottom: 24px; }
.calendar-client-login h2 { font-size: 23px; line-height: 1.3; font-weight: 600; margin: 0 0 14px; letter-spacing: -.5px; }
.calendar-client-login > p { font-size: 13px; color: #8a95a9; line-height: 1.7; margin: 0 0 23px; }
.calendar-client-login .form-hint { margin: 20px 0 0; font-size: 11px; }
@media (min-width: 1000px) {
  .calendar-client .mini-shell { max-width: none; display: grid; grid-template-columns: 224px minmax(0,1fr); gap: 0; padding: 0; min-height: 100dvh; }
  .calendar-client .mini-sidebar { display: flex; flex-direction: column; padding: 29px 20px; border-right: 1px solid #e4e8f1; background: #fff; }
  .mini-sidebar .brand { font-size: 29px; }
  .mini-tagline { color: #9aa4b5; font-size: 10px; margin: 10px 0 28px; }
  .mini-sidebar > .primary { padding: 13px; font-size: 12px; margin-bottom: 27px; border-radius: 10px; }
  .mini-sidebar .month-picker-heading { margin-bottom: 15px; text-transform: capitalize; }
  .mini-sidebar .calendar-sources { padding: 25px 0 0; margin-top: 23px; border-top: 1px solid #e9edf4; }
  .mini-server-note { margin-top: auto; padding-top: 25px; color: #929db0; font-size: 11px; line-height: 1.7; }
  .calendar-client .mini-workspace { padding: 26px 28px 20px; }
  .calendar-client .mini-header { margin-bottom: 26px; }
  .calendar-client .mini-header h1 { font-size: 28px; }
  .calendar-client .mini-content { min-height: 0; }
  .calendar-client .calendar-scroll { max-height: calc(100dvh - 265px); min-height: 300px; }
  .mini-monitor-mode.calendar-client .mini-shell { grid-template-columns: minmax(0,1fr); }
  .mini-monitor-mode .mini-sidebar { display: none; }
}
@media (max-width: 760px) {
  .telegram-mini .mini-shell { padding: calc(17px + env(safe-area-inset-top)) 12px calc(15px + env(safe-area-inset-bottom)); }
  .mini-header h1 { font-size: 23px; }
  .mini-header-actions .sync-status, #mini-monitor { display: none; }
  .mini-header { margin-bottom: 18px; }
  .mini-toolbar .text-button { margin-left: auto; padding: 9px 11px; font-size: 11px; }
  .mini-toolbar input { max-width: 160px; }
  .mini-views { width: 100%; }
  #mini-add { margin-left: auto; }
  .mini-views button { padding: 8px 14px; font-size: 11px; }
  .mini-calendar-meta { gap: 10px; margin: 12px 0; }
  .mini-total { font-size: 10px; max-width: 60%; line-height: 1.6; }
  .mini-search { width: 130px; }
  .mini-search input { font-size: 11px; padding: 7px 9px; }
  .telegram-mini .calendar-scroll { min-height: 270px; max-height: calc(var(--tg-viewport-stable-height, 100dvh) - 265px); border-radius: 9px; }
  .telegram-mini .calendar-grid { grid-template-columns: 42px repeat(var(--calendar-days),minmax(0,1fr)); }
  .telegram-mini .calendar-week { min-width: 790px; grid-template-columns: 42px repeat(var(--calendar-days),minmax(105px,1fr)); }
  .telegram-mini .calendar-day-heading, .telegram-mini .calendar-corner { min-height: 60px; padding-top: 10px; }
  .telegram-mini .calendar-date { font-size: 12px; }
  .telegram-mini .calendar-event strong { font-size: 12px; }
  .telegram-mini dialog { padding: 20px; }
}
.telegram-mini .calendar-event.short strong { line-height: 14px; }
.telegram-mini .calendar-event.tiny { padding: 1px 4px; }
.telegram-mini .calendar-event.tiny strong { font-size: 10px; line-height: 13px; }
@media (min-width: 761px) {
  #mini-content { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 0 20px; }
  .mini-toolbar { grid-column: 1; grid-row: 1; margin: 0; }
  .mini-views { grid-column: 2; grid-row: 1; }
  .mini-calendar-meta, #mini-calendar, .mini-help { grid-column: 1 / -1; }
  .mini-calendar-meta { margin: 15px 0; }
  .telegram-mini .calendar-scroll { max-height: calc(var(--tg-viewport-stable-height,100dvh) - 225px); }
  .calendar-client .calendar-scroll { max-height: calc(100dvh - 215px); }
}
