/* Maintenance Schedule tool. Uses public.css tokens; category colours below. */
.mnt-app { margin-top: 8px; }
.mnt-loading { color: var(--muted); padding: 40px 0; text-align: center; }

/* Category colours (token-ok: brand-adjacent accents for the 7 task groups) */
.c-water    { --cc: #58a6ff; } /* token-ok */
.c-dosing   { --cc: #a371f7; } /* token-ok */
.c-plants   { --cc: #3fb950; } /* token-ok */
.c-filter   { --cc: #2dd4bf; } /* token-ok */
.c-equip    { --cc: #d29922; } /* token-ok */
.c-live     { --cc: #f778ba; } /* token-ok */
.c-periodic { --cc: #8b949e; } /* token-ok */
.mnt-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--cc, #8b949e); display: inline-block; flex: 0 0 auto; } /* token-ok */

/* Tank bar */
.mnt-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.mnt-bar-label { font-size: .72rem; font-weight: 700; letter-spacing: .08em; color: var(--muted); }
.mnt-select { background: var(--bg2); color: var(--text); border: 1px solid var(--border2); border-radius: 8px; padding: 9px 12px; font: inherit; font-size: .95rem; min-width: 160px; }
.mnt-btn { background: transparent; color: var(--blue); border: 1px solid var(--border2); border-radius: 8px; padding: 8px 14px; font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; transition: border-color .15s, color .15s; }
.mnt-btn:hover { border-color: var(--blue); }
.mnt-btn-danger { color: #f85149; } /* token-ok */
.mnt-btn-danger:hover { border-color: #f85149; } /* token-ok */
.mnt-btn-primary { background: var(--blue); color: #06131f; border-color: var(--blue); } /* token-ok */
.mnt-save { margin-left: auto; font-size: .78rem; color: var(--muted); }
.mnt-save-saving { color: #7ee787; } /* token-ok */
.mnt-save-error { color: #f85149; } /* token-ok */

/* Empty state */
.mnt-empty { background: var(--bg2); border: 1px solid var(--border); border-radius: 14px; padding: 40px 28px; text-align: center; }
.mnt-empty h2 { margin: 0 0 8px; font-size: 1.15rem; }
.mnt-empty p { margin: 0 auto 18px; max-width: 460px; color: var(--muted); line-height: 1.6; }

/* Tabs */
.mnt-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--border); margin-bottom: 18px; }
.mnt-tab { background: none; border: none; border-bottom: 2px solid transparent; color: var(--muted); font: inherit; font-size: .95rem; font-weight: 600; padding: 10px 14px; cursor: pointer; margin-bottom: -1px; }
.mnt-tab.active { color: var(--blue); border-bottom-color: var(--blue); }
.mnt-tab:hover { color: var(--text); }

/* Schedule layout */
.mnt-schedule { display: grid; grid-template-columns: 320px 1fr; gap: 20px; align-items: start; }
@media (max-width: 900px) { .mnt-schedule { grid-template-columns: 1fr; } }

/* Agenda */
.mnt-agenda { background: var(--bg2); border: 1px solid var(--border); border-radius: 14px; padding: 16px 18px; }
.mnt-agenda-h { margin: 0 0 10px; font-size: 1rem; }
.mnt-agenda-empty { color: var(--muted); font-size: .88rem; line-height: 1.55; margin: 0; }
.mnt-ag-sub { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 14px 0 6px; }
.mnt-ag-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--border); }
.mnt-ag-row:last-child { border-bottom: 0; }
.mnt-ag-mid { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; }
.mnt-ag-name { font-size: .9rem; font-weight: 600; color: var(--text); }
.mnt-ag-when { font-size: .76rem; color: var(--muted); }
.mnt-ag-row.is-over .mnt-ag-when { color: #f85149; font-weight: 600; } /* token-ok */
.mnt-ag-row.is-today .mnt-ag-when { color: #d29922; font-weight: 600; } /* token-ok */
.mnt-done { flex: 0 0 auto; background: transparent; border: 1px solid var(--border2); border-radius: 7px; color: var(--text2); font: inherit; font-size: .76rem; font-weight: 600; padding: 5px 10px; cursor: pointer; transition: all .15s; }
.mnt-done:hover { border-color: var(--green); color: var(--green); }

/* Calendar */
.mnt-cal { background: var(--bg2); border: 1px solid var(--border); border-radius: 14px; padding: 16px 18px; }
.mnt-cal-head { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 12px; }
.mnt-cal-title { font-size: 1rem; font-weight: 700; min-width: 160px; text-align: center; }
.mnt-cal-nav { background: transparent; border: 1px solid var(--border2); border-radius: 8px; color: var(--text); width: 32px; height: 32px; font-size: 1.1rem; cursor: pointer; line-height: 1; }
.mnt-cal-nav:hover { border-color: var(--blue); color: var(--blue); }
.mnt-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.mnt-cal-wd { text-align: center; font-size: .68rem; font-weight: 700; letter-spacing: .04em; color: var(--muted); padding-bottom: 4px; }
.mnt-cal-cell { min-height: 78px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 5px 6px; overflow: hidden; }
.mnt-cal-cell.is-out { opacity: .4; }
.mnt-cal-cell.is-today { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.mnt-cal-num { font-size: .78rem; font-weight: 600; color: var(--text2); }
.mnt-cal-chips { display: flex; flex-direction: column; gap: 2px; margin-top: 3px; }
.mnt-chip { display: flex; align-items: center; gap: 4px; font-size: .68rem; color: var(--text2); line-height: 1.25; }
.mnt-chip-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cc); flex: 0 0 auto; }
.mnt-chip-txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mnt-chip.is-past { opacity: .5; }
.mnt-chip-more { font-size: .66rem; color: var(--muted); font-weight: 600; }
.mnt-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 14px; font-size: .72rem; color: var(--muted); }
.mnt-leg { display: inline-flex; align-items: center; gap: 5px; }

/* Tasks view */
.mnt-tasks-intro { color: var(--muted); font-size: .9rem; line-height: 1.6; margin: 0 0 18px; max-width: 640px; }
.mnt-tg { margin-bottom: 20px; }
.mnt-tg-h { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.mnt-tg-title { font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text2); }
.mnt-tr { display: flex; align-items: center; gap: 14px; padding: 12px 14px; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.mnt-tr.is-off { opacity: .55; }
.mnt-tr-mid { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 140px; }
.mnt-tr-name { font-size: .92rem; font-weight: 600; color: var(--text); }
.mnt-tr-meta { font-size: .74rem; color: var(--muted); }
.mnt-tr-ctrl { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mnt-num { width: 56px; background: var(--bg); color: var(--text); border: 1px solid var(--border2); border-radius: 7px; padding: 6px 8px; font: inherit; font-size: .85rem; }
.mnt-unit, .mnt-last { background: var(--bg); color: var(--text); border: 1px solid var(--border2); border-radius: 7px; padding: 6px 8px; font: inherit; font-size: .85rem; }
.mnt-wd { display: flex; gap: 3px; }
.mnt-wd-b { width: 26px; height: 26px; border-radius: 6px; border: 1px solid var(--border2); background: var(--bg); color: var(--muted); font: inherit; font-size: .72rem; font-weight: 700; cursor: pointer; padding: 0; }
.mnt-wd-b.on { background: var(--blue); color: #06131f; border-color: var(--blue); } /* token-ok */
.mnt-tr-del { background: transparent; border: 1px solid var(--border2); border-radius: 7px; color: var(--muted); width: 30px; height: 30px; cursor: pointer; font-size: .9rem; }
.mnt-tr-del:hover { border-color: #f85149; color: #f85149; } /* token-ok */

/* iOS toggle (matches account switches) */
.mnt-switch { position: relative; display: inline-block; width: 42px; height: 24px; flex: 0 0 auto; }
.mnt-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.mnt-knob { position: absolute; inset: 0; background: var(--border2); border-radius: 24px; transition: background .15s; }
.mnt-knob::before { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform .15s; } /* token-ok */
.mnt-switch input:checked + .mnt-knob { background: var(--green); }
.mnt-switch input:checked + .mnt-knob::before { transform: translateX(18px); }

/* Storage notice */
.mnt-storage-notice { display: flex; align-items: flex-start; gap: 10px; margin-top: 24px; padding: 14px 16px; background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; }
.mnt-storage-notice p { margin: 0; font-size: .84rem; color: var(--muted); line-height: 1.6; }
.mnt-storage-notice a { color: var(--blue); text-decoration: none; }
.mnt-storage-notice a:hover { text-decoration: underline; }

@media (max-width: 640px) {
  .mnt-cal-cell { min-height: 62px; }
  .mnt-chip-txt { display: none; }
  .mnt-cal-chips { flex-direction: row; flex-wrap: wrap; gap: 3px; }
  .mnt-tr-ctrl { width: 100%; }
}
