.assignment-calendar{margin:32px 0 48px}
.assignment-calendar .calendar-section-heading{align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.calendar-section-heading h2{font-size:clamp(28px,3vw,40px);margin:8px 0 12px;line-height:1.15}.calendar-section-heading h2>span{color:#64eddf}.calendar-section-heading p{max-width:630px;color:#aebfd5;line-height:1.7;font-size:13px}
.calendar-content{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:28px;align-items:start}
.calendar-month{min-width:0;border:1px solid #3c526e;border-radius:18px;padding:24px;background:linear-gradient(145deg,#17283a,#111a2d);box-shadow:0 14px 35px #0002}
.calendar-overview{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:24px;margin-bottom:20px;border-bottom:1px solid #33455f}.calendar-overview>div{display:flex;flex-direction:column;gap:7px}.calendar-overview>div+div{border-left:1px solid #3a4d67;padding-left:22px}.calendar-overview strong{font-size:38px;line-height:1;color:#7bf2df;font-weight:800}.calendar-overview .has-urgent strong{color:#ffda9a}.calendar-overview span{font-size:11px;color:#b7c9e1}
.calendar-nav,.calendar-agenda-heading,.calendar-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-nav h3{font-size:16px;text-transform:capitalize;margin:0}.calendar-nav .btn{min-width:34px;min-height:36px;padding:7px;justify-content:center}
.task-calendar-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:4px;margin:22px 0 18px}.task-calendar-table th{font-size:10px;color:#829bb8;padding-bottom:9px;font-weight:500;text-transform:uppercase}.task-calendar-table td{height:42px;text-align:center;padding:0;vertical-align:middle}.task-calendar-table td>span{font-size:12px;color:#93a7c2}.task-calendar-table button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:42px;border:1px solid #45b8c1;border-radius:9px;background:#193d4c;color:#e1fcff;padding:4px;cursor:pointer;transition:background .15s,border-color .15s}.task-calendar-table button:hover{background:#245369;border-color:#79e7f2}.task-calendar-table button[aria-pressed=true]{background:#c8ff6a;color:#152215;border-color:#c8ff6a;box-shadow:0 0 14px #c8ff6a20}.task-calendar-table button small{font-size:9px;margin-top:3px}.calendar-today{box-shadow:inset 0 0 0 1px #869dbc;border-radius:9px}
.calendar-actions{flex-wrap:wrap;padding-top:5px}.calendar-actions .text-button{font-size:10px;min-height:32px}.calendar-note{font-size:11px;line-height:1.7;color:#93a9c5;margin-top:18px}.calendar-month>.calendar-note{border-top:1px solid #30425a;padding-top:17px;margin-bottom:0}
.calendar-agenda{min-width:0}.calendar-agenda-heading{padding:0 2px 18px;min-height:66px}.calendar-agenda-heading h3{font-size:21px;line-height:1.3;margin:5px 0 0;color:#e8f1ff}.calendar-agenda-kicker,.calendar-task-kicker{font-size:9px;letter-spacing:1.8px;font-weight:700;color:#83dfe8;text-transform:uppercase}.calendar-agenda-count{padding:6px 11px;border:1px solid #354e6b;border-radius:8px;background:#16253a;color:#a9c7e2;font-size:11px;white-space:nowrap}.calendar-agenda-list{display:grid;gap:16px;max-height:760px;overflow-y:auto;padding:3px 6px 6px 3px;margin:-3px -6px -6px -3px;scrollbar-width:thin;scrollbar-color:#536d8c #111b2c}
.calendar-task{min-width:0;border:1px solid #3c5271;border-radius:16px;overflow:hidden;background:linear-gradient(125deg,#1b293f,#121c30);box-shadow:0 10px 25px #0002;position:relative;transition:border-color .2s,box-shadow .2s}.calendar-task:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#5b9dd1}.calendar-task.calendar-featured{border-color:#517c78;background:radial-gradient(ellipse at top right,#22504b77,transparent 65%),linear-gradient(125deg,#193136,#152338)}.calendar-task.calendar-featured:before{background:#79efcf}.calendar-task:hover{border-color:#7ce6eb;box-shadow:0 10px 28px #0003}
.calendar-task-link{display:block;padding:22px 24px;color:inherit;text-decoration:none!important;overflow-wrap:anywhere}.calendar-task-link:focus-visible{outline:2px solid #85f3e3;outline-offset:-4px;border-radius:15px}.calendar-task-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.calendar-featured .calendar-task-kicker{color:#9ef2d4}.calendar-countdown{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:#c8d5e6;background:#25354b;border:1px solid #435773;border-radius:20px;padding:5px 10px;line-height:1.5}.calendar-urgent .calendar-countdown{color:#ffe0a5;background:#3c3427;border-color:#8d7147}.calendar-urgent .calendar-countdown:before{content:'';width:5px;height:5px;border-radius:50%;background:#ffda92;flex-shrink:0}
.calendar-task-main{display:flex;align-items:center;gap:18px;min-width:0}.calendar-date-tile{width:58px;min-width:58px;display:flex;align-items:center;flex-direction:column;gap:2px;padding:11px 8px;background:#233c45;border:1px solid #4e6f76;border-radius:10px}.calendar-date-tile strong{font-size:30px;font-weight:800;line-height:1.1;color:#e5fbf4}.calendar-date-tile span{text-transform:uppercase;letter-spacing:1px;font-size:10px;color:#b5d9da}.calendar-task-title{min-width:0}.calendar-task time{display:block;color:#a9bfd5;font-size:11px;line-height:1.6}.calendar-task h4{font-size:clamp(19px,2vw,24px);line-height:1.25;margin:7px 0 6px;color:#f0f7ff}.calendar-task .calendar-task-group{font-size:11px;color:#97b3cc;line-height:1.5;margin:0}
.calendar-task-goal{display:flex;gap:24px;align-items:center;justify-content:space-between;margin:20px 0;padding:16px 18px;border:1px solid #38525e;background:#0b1b273d;border-radius:10px}.calendar-task-goal>div{min-width:0}.calendar-task-goal>div>span{font-size:8px;letter-spacing:1.5px;font-weight:700;color:#80b9bf}.calendar-task-goal p{margin:7px 0 0;font-size:13px;line-height:1.65;color:#cfdfec}.calendar-goal-value{display:flex;flex-direction:column;gap:4px;text-align:right;font-size:9px;color:#aac6cd;flex:0 0 auto;max-width:150px}.calendar-goal-value strong{font-size:22px;line-height:1.15;color:#c8ff6a;font-weight:700}
.calendar-task-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}.calendar-task-tags{display:flex;flex-wrap:wrap;align-items:center;gap:9px 12px;min-width:0}.calendar-task-status{display:inline-flex;align-items:center;gap:6px;border:1px solid #59728c;border-radius:6px;background:#24364a;padding:5px 8px;font-size:10px;line-height:1.5;color:#d6e6fa}.calendar-status-running{background:#263b53;border-color:#5c8dc0;color:#bce0ff}.calendar-status-retry{background:#3c2b36;border-color:#875566;color:#ffc5d7}.calendar-status-needs_check{background:#31374a;border-color:#6d7398;color:#d4d4ff}.calendar-task-config{color:#99b7cd;font-size:10px;line-height:1.6}.calendar-task-cta{display:flex;align-items:center;justify-content:center;gap:14px;flex-shrink:0;color:#86f1db;font-size:11px;font-weight:700;min-height:40px;white-space:nowrap}.calendar-task-cta>span{display:grid;place-items:center;width:32px;height:32px;border:1px solid #528379;background:#20423f;border-radius:8px;font-size:18px}.calendar-task-link:hover .calendar-task-cta>span{background:#376758;color:#fff}.calendar-agenda-note{margin:18px 2px 0;max-width:700px}
.calendar-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 26px;border:1px dashed #465e77;border-radius:16px;background:linear-gradient(145deg,#142a33,#131c2f);min-height:230px;justify-content:center}.calendar-empty-mark{display:grid;place-items:center;width:48px;height:48px;border:1px solid #548377;background:#24433d;border-radius:50%;font-size:24px;color:#8ef4cc;margin-bottom:16px}.calendar-empty h4{font-size:22px;margin:0 0 10px;color:#e1f5ed;line-height:1.3}.calendar-empty p{font-size:12px;line-height:1.8;color:#a6bdd3;max-width:420px;margin:0}.calendar-message{padding:16px 0;line-height:1.6;color:#bdc8df;font-size:13px}.calendar-message[hidden]{display:none}
@media(max-width:1050px){.calendar-content{grid-template-columns:290px minmax(0,1fr);gap:20px}.calendar-month{padding:18px}.calendar-task-link{padding:20px}.calendar-task-goal{gap:14px;padding:14px}.calendar-goal-value{max-width:105px}.calendar-goal-value strong{font-size:20px}.calendar-task-bottom{flex-wrap:wrap}.calendar-task-cta{margin-left:auto}}
@media(max-width:750px){.assignment-calendar{margin-top:28px}.calendar-content{grid-template-columns:1fr;gap:24px}.calendar-month{padding:20px}.calendar-overview{padding-bottom:18px;margin-bottom:18px}.calendar-overview strong{font-size:34px}.calendar-agenda-heading{padding-bottom:16px}.calendar-agenda-list{max-height:none;overflow:visible}.calendar-task-link{padding:20px}.calendar-task-top{margin-bottom:18px;gap:9px}.calendar-task-main{gap:13px}.calendar-date-tile{width:48px;min-width:48px;padding:10px 5px}.calendar-date-tile strong{font-size:26px}.calendar-task h4{font-size:22px}.calendar-task-goal{align-items:flex-start;flex-direction:column;gap:12px;margin:18px 0}.calendar-goal-value{max-width:none;flex-direction:row;align-items:baseline;gap:7px;text-align:left}.calendar-goal-value strong{font-size:20px}.calendar-task-bottom{align-items:stretch;gap:12px}.calendar-task-tags{flex-basis:100%}.calendar-task-cta{width:100%;justify-content:space-between;border-top:1px solid #36505b;padding-top:12px;margin-left:0}.calendar-task-cta>span{width:34px;height:34px}.calendar-agenda-heading{flex-wrap:wrap}.task-calendar-table{border-spacing:3px}.calendar-section-heading .btn{min-height:40px}.calendar-actions .text-button{min-height:36px}}
@media(prefers-reduced-motion:reduce){.calendar-task,.task-calendar-table button{transition:none}}

.calendar-history{margin-top:24px}.calendar-history h3{font-size:18px}.calendar-reference{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:10px;padding:16px;border:1px solid #3c5271;border-radius:12px;color:#cfdfec;text-decoration:none;overflow-wrap:anywhere}.calendar-reference strong{flex:1 1 180px;min-width:0}.calendar-reference>span:not(.calendar-task-status){font-size:12px}.calendar-reference:hover{border-color:#7ce6eb}.calendar-reference:focus-visible{outline:2px solid #85f3e3;outline-offset:2px}
