.calendar-toolbar{display:flex;align-items:center;gap:12px;padding:14px 18px;margin-bottom:18px;color:#dbe4f1}.calendar-toolbar>div{min-width:210px;text-align:center}.calendar-toolbar strong{font-size:22px}.calendar-toolbar small{color:#79e7d0}.calendar-toolbar .ghost{margin-right:auto}.calendar-span-picker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;white-space:nowrap}.calendar-span-picker select{background:#101d31;color:var(--text);border:1px solid #32415a;border-radius:9px;padding:8px 10px;font:inherit}.gantt-panel{padding:20px;overflow:hidden}.gantt-scroll{overflow-x:auto;padding-bottom:8px}.gantt-month{margin-bottom:28px}.gantt-month:last-child{margin-bottom:0}.gantt-month-title{display:flex;align-items:center;justify-content:space-between;padding:4px 10px 12px;color:#dbe4f1}.gantt-month-title strong{font-size:20px}.gantt-month-title span{font-size:13px;color:var(--mint)}.gantt-header,.gantt-row{display:grid;grid-template-columns:220px minmax(900px,1fr);min-width:1120px}.gantt-header{border-bottom:1px solid #32415a;padding-bottom:12px}.gantt-label{background:none;border:0;color:var(--text);text-align:right;padding:8px 12px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.gantt-label strong{font-size:16px}.gantt-label small,.gantt-label span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.gantt-days,.gantt-track{display:grid;position:relative;direction:ltr}.gantt-days{grid-template-columns:repeat(31,minmax(24px,1fr));align-items:end}.gantt-days span{font-size:12px;color:#8194b4;text-align:center}.gantt-row{border-bottom:1px solid #24334a;min-height:72px}.gantt-row:last-child{border-bottom:0}.gantt-row .gantt-label{cursor:pointer}.gantt-row .gantt-label:hover strong{color:var(--mint)}.gantt-track{align-items:center;isolation:isolate}.gantt-track i{height:100%;border-left:1px solid #1f2c41;grid-row:1;pointer-events:none}.gantt-bar{grid-row:1;z-index:2;min-height:34px;border:1px solid #f2a33c;border-radius:10px;background:linear-gradient(135deg,#703d1d,#2e2530);box-shadow:0 0 18px #ff8b2433;color:#fff3d5;font-size:13px;font-weight:700;padding:5px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;margin:0 3px}.gantt-bar.completed{border-color:#5ad8ca;background:linear-gradient(135deg,#155a5a,#15313d);box-shadow:0 0 18px #56e4d633;color:#d7fff8}.gantt-bar.purple{border-color:#ad98ff;background:linear-gradient(135deg,#433674,#22213e)}.calendar-empty{margin-top:12px}.calendar-form{display:flex;flex-direction:column;gap:16px}.calendar-form .button{align-self:flex-start}.usage-table{display:flex;flex-direction:column;gap:0}.usage-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);align-items:start;font-size:15px}.usage-row:last-child{border-bottom:0}.usage-row span{color:var(--muted)}.usage-report{grid-template-columns:1.2fr 1fr 1.4fr 1fr}.usage-report small{display:block;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:5px}.usage-report em{font-style:normal;color:var(--muted);font-size:13px}
@media(max-width:760px){.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar>div{order:2;flex:1;min-width:170px}.calendar-toolbar .ghost{margin-right:0;width:100%;order:4}.calendar-span-picker{order:3}.gantt-panel{padding:12px}.gantt-header,.gantt-row{grid-template-columns:170px minmax(900px,1fr);min-width:1070px}.gantt-label{padding:8px 9px}.gantt-bar{font-size:12px}.usage-row,.usage-report{grid-template-columns:1fr 1fr}.usage-report em{grid-column:1/-1}}

/* Compact arcade calendar states */
.gantt-month{margin-bottom:28px;border:1px solid #273e62;border-radius:18px;padding:10px 10px 8px;background:linear-gradient(180deg,#0b1830cc,#071123e8);box-shadow:inset 0 0 35px #00152f66}.gantt-month:last-child{margin-bottom:0}.gantt-month-title{padding:4px 10px 12px}.gantt-month-title span{color:#68ebcf}.compact-event small{display:flex;align-items:center;gap:6px}.compact-event span{color:#8398bb}.event-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#6aeacb;box-shadow:0 0 8px currentColor}.event-dot.overdue{background:#f5bd3d;color:#f5bd3d}.event-dot.completed{background:#55d4ff;color:#55d4ff}.gantt-row{min-height:58px}.gantt-bar{min-height:30px;border-color:#68ebcf;background:linear-gradient(135deg,#165a51,#102f35);box-shadow:0 0 18px #4be0bf3d;color:#dcfff7;font-size:12px}.gantt-bar.planned{border-color:#64e8b3;background:linear-gradient(135deg,#155e4f,#17352d);box-shadow:0 0 20px #47e1a444;color:#d8fff1}.gantt-bar.overdue{border-color:#f4bd3b;background:linear-gradient(135deg,#63431a,#332a1d);box-shadow:0 0 18px #f4bd3b44;color:#fff1c3}.gantt-bar.completed{border-color:#59d8ff;background:linear-gradient(135deg,#164f69,#172d45);box-shadow:0 0 18px #56dfff44;color:#d9f8ff}.calendar-detail{padding:14px;border:1px solid #293f61;border-radius:14px;background:#0b1830}.event-status{display:inline-block;padding:4px 10px;border-radius:99px;font-size:12px;color:#071123;background:#68ebcf}.event-status.overdue{background:#f4bd3b}.event-status.completed{background:#59d8ff}.event-status.planned{background:#68ebcf}.linked-plan-note{margin:0 0 18px;padding:10px 14px;border:1px solid #64e8b3;border-radius:12px;background:#113a32;color:#d8fff1}


/* V11 — Monthly day-board; retains existing reporting and Academy styles. */
.gantt-panel{padding:18px}.gantt-scroll{overflow:visible}.gantt-month{margin-bottom:22px;padding:14px}.gantt-month-title{gap:12px;flex-wrap:wrap}.gantt-month-title span{font-size:12px;color:#8fdccf}
.calendar-month-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:8px}.calendar-month-board{min-width:805px;direction:rtl}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:6px}.calendar-weekdays span{text-align:center;color:#b8d5e7;font-size:13px;font-weight:800;background:#152843;padding:9px 0;border-radius:8px;border:1px solid #2d4968}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(158px,auto);gap:6px;direction:rtl}
.calendar-day{border:1px solid #344966;border-radius:11px;min-width:0;min-height:158px;background:linear-gradient(150deg,#142139,#0b1729);padding:8px;display:flex;flex-direction:column;gap:6px;position:relative;outline-offset:3px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.calendar-day:hover,.calendar-day:focus-visible{border-color:#69ecd0;background:linear-gradient(145deg,#173448,#0c1b2b)}.calendar-day.is-today{border:2px solid #69ecd0;box-shadow:inset 0 0 14px #54dfbf19}.calendar-day.is-outside{opacity:.23;pointer-events:none;background:repeating-linear-gradient(135deg,#0c172b,#0c172b 8px,#101d30 8px,#101d30 16px);border-style:dashed}.calendar-day-head{display:flex;justify-content:space-between;align-items:center;gap:4px;font-size:12px;color:#93aaca;min-height:24px}.calendar-day-head strong{font-size:18px;color:#e0f5f5}.calendar-day.is-today .calendar-day-head strong{color:#69ecd0}.calendar-day-events{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.calendar-event{display:flex;flex-direction:column;align-items:flex-start;text-align:right;gap:3px;width:100%;border:1px solid #4e947f;background:#123c38;border-radius:8px;padding:6px 7px;color:#e5fff8;cursor:pointer;min-width:0;white-space:normal;overflow-wrap:anywhere}.calendar-event:hover,.calendar-event:focus-visible{filter:brightness(1.23);outline:1px solid #7dedc8}.calendar-event-time{font-weight:900;font-size:12px;color:#b9f6df;direction:ltr;unicode-bidi:isolate;align-self:flex-end}.calendar-event-title{font-size:12px;line-height:1.35;max-width:100%;font-weight:700}.calendar-event small{font-size:10px;color:#b1cfc8;max-width:100%;overflow-wrap:anywhere}.calendar-event.completed{border-color:#67cbe7;background:#16334d}.calendar-event.completed .calendar-event-time{color:#9deaff}.calendar-event.overdue{border-color:#e1b454;background:#49351f}.calendar-event.overdue .calendar-event-time{color:#ffdc84}.calendar-slot-add{border:1px dashed #355976;border-radius:8px;min-height:32px;width:100%;background:#0b1c30;color:#9bdacf;font-size:11px;font-family:inherit;font-weight:750;cursor:pointer}.calendar-slot-add:hover,.calendar-slot-add:focus-visible{background:#164136;color:#eafff4;border-color:#5be3c3}.calendar-slot-add span{font-size:14px}.calendar-form input[type=time]{direction:ltr;text-align:left;max-width:220px;color-scheme:dark}.calendar-form .hint{font-size:12px;line-height:1.5}
@media(max-width:760px){.gantt-panel{padding:9px}.gantt-month{padding:9px}.calendar-month-board{min-width:805px}.calendar-days-grid{grid-auto-rows:minmax(144px,auto)}.calendar-day{padding:6px;min-height:144px}.gantt-month-title span{font-size:11px}}
@media(prefers-reduced-motion:reduce){.calendar-day{transition:none}}

.calendar-google-options{background:#0f2530;border:1px solid #4db59f;border-radius:12px;padding:16px;display:grid;gap:12px}
.calendar-sync-control{display:flex;gap:10px;align-items:center;font-size:17px;font-weight:800;color:#d9fff1}
.calendar-sync-control input{width:22px;height:22px;accent-color:#5be0ac}

.calendar-google-connection{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:12px 16px;background:#0d2831;border:1px solid #2f6d66;border-radius:10px;color:#cbf7ef;font-size:13px}

/* V16 - on-demand Google Calendar import */
.calendar-manual-pull{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.calendar-manual-pull .button{min-height:42px}.calendar-manual-pull .hint{font-size:12px;color:#9bcbcc;flex:1;min-width:190px}.calendar-manual-pull button:disabled{opacity:.6;cursor:wait}@media(max-width:760px){.calendar-manual-pull .button{width:100%;justify-content:center}.calendar-manual-pull .hint{width:100%}}

/* V17: local-only hide and upcoming personal-calendar filter */
.calendar-hide-action,.profile-hide-calendar{border-color:#84635c;color:#ffd5ca}
.profile-calendar-range{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:10px 2px 15px;color:#c8f6eb;font-size:14px}
.profile-calendar-range select{background:#101d31;color:#ecf8f5;border:1px solid #476b77;border-radius:9px;padding:9px 11px;font:inherit}
.profile-hide-calendar{align-self:flex-start;margin-top:8px;font-size:12px}

/* V19 - discoverable, separate hide control. Never nested in an event button. */
.calendar-event-wrapper{position:relative;min-width:0;width:100%}
.calendar-event-wrapper>.calendar-event{width:100%;padding-inline-start:37px;min-height:66px}
.calendar-event-hide-quick{position:absolute;left:5px;top:5px;z-index:2;
 width:30px;height:30px;display:grid;place-items:center;
 border:1px solid #b1c8d8;border-radius:8px;background:#182439;
 color:#f5f8ff;font-size:24px;line-height:1;cursor:pointer;
 box-shadow:0 1px 4px #0004}
.calendar-event-hide-quick:hover,.calendar-event-hide-quick:focus-visible{
 background:#873c37;border-color:#ffb8ad;outline:2px solid #ffc0b8;outline-offset:1px}
@media (max-width:760px){.calendar-event-hide-quick{width:32px;height:32px;left:4px;top:4px}}
