/* Calendar page only. The production shell, breadcrumb and editor retain their own layout. */
[data-web-calendar="true"] { --calendar-line:#dce8f1; --calendar-ink:#142b4b; --calendar-muted:#637e9f; min-width:0; color:var(--calendar-ink); }
[data-web-calendar="true"] { max-width:none !important; padding:0 !important; }
[data-web-calendar="true"] .web-calendar-heading { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-bottom:14px; }
[data-web-calendar="true"] .web-calendar-intro { display:flex; align-items:center; gap:12px; flex:1 1 280px; min-width:0; }
[data-web-calendar="true"] .web-calendar-title-icon { display:grid; place-items:center; width:50px; height:50px; flex-shrink:0; border-radius:13px; background:#deedff; color:#1675eb; font-size:25px; }
[data-web-calendar="true"] .web-calendar-intro h1 { color:var(--calendar-ink); font-size:26px; font-weight:750; line-height:1.25; }
[data-web-calendar="true"] .web-calendar-intro p { margin-top:4px; color:var(--calendar-muted); font-size:11px; line-height:1.5; }
[data-web-calendar="true"] .web-calendar-summary { display:flex; flex:1 1 370px; flex-wrap:wrap; gap:8px; }
[data-web-calendar="true"] .web-calendar-stat { display:flex; align-items:center; gap:10px; flex:1 1 110px; min-width:0; padding:12px; border:1px solid var(--calendar-line); border-radius:9px; background:#ffffffed; box-shadow:0 3px 9px #173e5805; }
[data-web-calendar="true"] .web-calendar-stat > span { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; background:#e8f3ff; color:#1478d4; border-radius:8px; font-size:17px; }
[data-web-calendar="true"] .web-calendar-stat-green > span { background:#e3f7ef; color:#00a37b; }
[data-web-calendar="true"] .web-calendar-stat-purple > span { background:#eee8ff; color:#9360e9; }
[data-web-calendar="true"] .web-calendar-stat strong { display:block; font-size:16px; line-height:1.25; color:var(--calendar-ink); font-variant-numeric:tabular-nums; }
[data-web-calendar="true"] .web-calendar-stat small { display:block; margin-top:2px; color:var(--calendar-muted); font-size:10px; line-height:1.35; }
[data-web-calendar="true"] .web-calendar-tip { display:flex; align-items:center; gap:12px; flex:0 1 210px; padding:12px; border:1px solid #dcecf8; border-radius:9px; background:#eff8ff; }
[data-web-calendar="true"] .web-calendar-tip > i { color:#f4a013; background:#fff6e6; border-radius:10px; padding:10px; font-size:22px; }
[data-web-calendar="true"] .web-calendar-tip strong { color:#287bc2; font-size:11px; }
[data-web-calendar="true"] .web-calendar-tip p { color:var(--calendar-muted); font-size:10px; line-height:1.5; margin-top:2px; }
[data-web-calendar="true"] .web-calendar-board { border:1px solid var(--calendar-line) !important; border-radius:12px !important; box-shadow:0 3px 12px #173e5808 !important; }
[data-web-calendar="true"] .web-calendar-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; padding:12px 14px; background:linear-gradient(180deg,#fff,#fbfdff); border-color:var(--calendar-line); }
[data-web-calendar="true"] .web-calendar-period { flex:0 1 auto; min-width:0; }
[data-web-calendar="true"] .web-calendar-period > div { min-width:0; }
[data-web-calendar="true"] .web-calendar-period button { width:30px; height:32px; flex-shrink:0; border:1px solid #e2edf6; border-radius:7px; background:#f5faff; color:#287bc2; }
[data-web-calendar="true"] .web-calendar-period > div > div { min-width:0; width:150px; font-size:13px; font-weight:750; color:var(--calendar-ink); overflow-wrap:anywhere; }
[data-web-calendar="true"] .web-calendar-controls { display:contents; }
[data-web-calendar="true"] .web-calendar-modes { width:auto; flex:0 0 auto; gap:0; padding:2px; border:1px solid var(--calendar-line); border-radius:8px; background:#fff; }
[data-web-calendar="true"] .web-calendar-modes button { min-width:54px; height:30px; padding:0 10px; border:0; border-radius:6px; font-weight:650; }
[data-web-calendar="true"] .web-calendar-modes button[aria-pressed="true"] { background:#187bce; box-shadow:0 2px 6px #187bce30; }
[data-web-calendar="true"] .web-calendar-actions { flex:1 1 520px; justify-content:flex-end; gap:7px; }
[data-web-calendar="true"] .web-calendar-actions button,
[data-web-calendar="true"] .web-calendar-tools button { min-height:34px; height:auto; padding:8px 10px; border-radius:7px; font-size:10px; line-height:1.35; font-weight:650; white-space:normal; }
[data-web-calendar="true"] .web-calendar-tools { flex:0 0 100%; margin:0; padding:0; border:0; gap:3px; }
[data-web-calendar="true"] .web-calendar-tools > div:last-child { padding:5px 0 0; font-weight:500; font-size:10px; }
[data-web-calendar="true"] .web-calendar-scroll { background:#f7fafc; overscroll-behavior-x:contain; }
/* Seven usable drop targets at narrow widths; horizontal scrolling stays inside the board. */
[data-web-calendar="true"] .web-calendar-grid { min-width:980px; }
[data-web-calendar="true"][data-calendar-view="day"] .web-calendar-grid { min-width:0; }
.app-view-shell [data-web-calendar="true"] .calendar-weekday-header { min-height:32px !important; background:#f4f9fc !important; box-shadow:none !important; }
.app-view-shell [data-web-calendar="true"] .calendar-weekday-header > div { min-height:32px; padding:6px; font-size:9px; color:#5076a0 !important; border-color:var(--calendar-line) !important; }
[data-web-calendar="true"][data-calendar-view="week"] .calendar-weekday-header > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px; min-height:48px; }
[data-web-calendar="true"][data-calendar-view="week"] .calendar-weekday-header > div > span { position:static; }
[data-web-calendar="true"] .web-calendar-day,
[data-web-calendar="true"] .web-calendar-empty-day { min-height:0; border-color:var(--calendar-line); }
[data-web-calendar="true"] .web-calendar-empty-day { background:#edf4f8; }
[data-web-calendar="true"] .web-calendar-day-heading { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:5px; height:auto; min-height:38px; padding:6px; border-bottom:0; }
[data-web-calendar="true"] .web-calendar-day-heading > div { position:static; gap:3px; }
[data-web-calendar="true"] .web-calendar-day-heading > div:first-child > span:first-child { height:26px; min-width:25px; font-size:11px; border-radius:7px; }
[data-web-calendar="true"] .web-calendar-day-heading > span { text-align:center; font-size:8px; letter-spacing:0; overflow-wrap:anywhere; }
[data-web-calendar="true"] .web-calendar-day-heading > div:last-child > span { min-width:0; white-space:nowrap; }
[data-web-calendar="true"] .web-calendar-rows { padding:0 6px 6px; }
[data-web-calendar="true"] .web-calendar-rows > * + * { margin-top:4px; }
[data-web-calendar="true"] .web-calendar-row { height:34px; border-radius:6px; }
[data-web-calendar="true"] .web-calendar-row[data-has-job="false"] > .h-px { opacity:0; }
[data-web-calendar="true"] .web-calendar-row:hover { box-shadow:0 2px 5px #254d6414; }
[data-web-calendar="true"] .web-calendar-job { padding:2px 6px; gap:4px; }
[data-web-calendar="true"] .web-calendar-job > div:first-child > div:first-child { gap:4px; }
[data-web-calendar="true"] .web-calendar-job .truncate { line-height:13px; }
[data-web-calendar="true"] .web-calendar-job .tabular-nums { margin-top:0; font-size:9px; font-weight:500; }
[data-web-calendar="true"] .web-calendar-add-row { height:26px; border-radius:6px; font-size:9px; font-weight:600; color:#5e7fa4; }
[data-web-calendar="true"] button:focus-visible,
[data-web-calendar="true"] .web-calendar-scroll:focus-visible { outline:2px solid #1675eb; outline-offset:2px; }
@media (max-width:1399px) {
    [data-web-calendar="true"] .web-calendar-tip { flex:1 1 100%; padding:8px 12px; gap:8px; }
    [data-web-calendar="true"] .web-calendar-tip > i { padding:6px; font-size:16px; }
    [data-web-calendar="true"] .web-calendar-tip > div { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 9px; }
}
@media (max-width:599px) {
    [data-web-calendar="true"] .web-calendar-intro h1 { font-size:23px; }
    [data-web-calendar="true"] .web-calendar-stat { flex-basis:90px; gap:6px; padding:10px 8px; }
    [data-web-calendar="true"] .web-calendar-stat > span { width:26px; height:30px; font-size:14px; }
    [data-web-calendar="true"] .web-calendar-toolbar { padding:10px; gap:10px; }
    [data-web-calendar="true"] .web-calendar-actions { justify-content:flex-start; }
    [data-web-calendar="true"] .web-calendar-actions button,
    [data-web-calendar="true"] .web-calendar-tools button { min-height:40px; }
}

