.tcal-overview{display:grid;grid-template-columns:1fr 1fr 1fr 1.5fr;gap:20px;margin:0 0 23px;padding:18px 22px;border:1px solid #e5e9df;border-radius:14px;background:#f1f4eb}.tcal-overview>div{display:flex;align-items:center;gap:12px}.tcal-overview>div+div{border-left:1px solid #dce4d8;padding-left:24px}.tcal-overview-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e2e8f3;color:#536782}.tcal-overview-icon.open{background:#dfecd9;color:#43714b}.tcal-overview-icon.trial{background:#f5e9d2;color:#9c722f}.tcal-overview strong{font:650 25px/1.2 var(--display);letter-spacing:-1px}.tcal-overview small{display:block;font-size:11px;color:#6c7d70;margin-top:3px}.tcal-overview .tcal-overview-note{font-size:11px;line-height:1.6;color:#697a70;gap:9px}.tcal-overview-note>.icon{width:18px;color:#6d8263}.tcal-panel{border:1px solid #e0e6dc;border-radius:17px;background:#fff;overflow:clip;margin-bottom:24px;box-shadow:0 4px 18px #18392a03}.tcal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid #e7ebe2}.tcal-week-nav{display:flex;align-items:center;gap:12px}.tcal-week-nav>div{min-width:205px}.tcal-week-nav strong{font:650 15px/1.4 var(--display);letter-spacing:-.25px}.tcal-week-nav small{display:block;color:#89938a;font-size:10px;margin-top:3px}.tcal-prev>.icon{transform:rotate(180deg)}.tcal-zone{display:flex;align-items:center;gap:8px;color:#6c7e73;font-size:11px}.tcal-zone .icon{width:16px}.tcal-zone select{border:0;background:#f6f8f3;border-radius:7px;color:#4c6355;padding:8px 28px 8px 10px;max-width:215px;font-size:11px}.tcal-editor{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 22px;border-bottom:1px solid #e8ece5}.tcal-mode{display:flex;align-items:center;background:#f1f4ee;padding:4px;gap:3px;border-radius:10px}.tcal-mode-btn{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:7px;font-size:11px;color:#738173;white-space:nowrap}.tcal-mode-btn>.icon{width:14px;height:14px}.tcal-mode-btn.active{background:#234e41;color:white;box-shadow:0 2px 4px #214d3818}.tcal-mode-btn:hover:not(.active){background:#e7ede2;color:#345441}.tcal-options{display:flex;align-items:center;gap:13px}.tcal-options label{font-size:9px;line-height:1.1;color:#7a8a79;display:flex;flex-direction:column;gap:5px}.tcal-options select{border:1px solid #e3e9dd;border-radius:7px;padding:7px 25px 7px 9px;font-size:11px;background:#fff;color:#3e5d49;max-width:180px;line-height:1.3}.tcal-mode-help{font-size:11px;color:#6e7e70;max-width:430px;line-height:1.5}.tcal-group-options{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:13px 22px;background:#f7f9f5;border-bottom:1px solid #e4eade}.tcal-group-options label{font-size:10px;display:flex;align-items:center;gap:12px;color:#6b7c69}.tcal-group-options select{flex:1;min-width:0;max-width:320px;padding:7px 26px 7px 9px;font-size:11px;border:1px solid #dce5d6;border-radius:7px;background:#fff;color:#425a45}.tcal-instructions{display:flex;align-items:center;gap:10px;background:#fcfdf9;padding:12px 23px;border-bottom:1px solid #e6eade}.tcal-drag-icon{display:grid;place-items:center;background:#edf3e4;color:#6a8952;width:33px;height:33px;border-radius:9px;flex-shrink:0}.tcal-drag-icon>.icon{width:16px}.tcal-instructions p{flex:1}.tcal-instructions strong{font-size:11px;font-weight:600;display:block;color:#576d4c}.tcal-instructions p>span{display:block;font-size:10px;color:#94a088;margin-top:2px}.tcal-draft-label{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#879878;font-size:9px}.tcal-draft-label>.icon{width:12px;height:12px}.tcal-scroll{height:585px;overflow:auto;scrollbar-width:thin;scrollbar-color:#bdcbb5 #f4f6ef;overscroll-behavior:contain;position:relative;background:#fff}.tcal-grid{display:grid;grid-template-columns:64px repeat(7,minmax(105px,1fr));grid-template-rows:80px repeat(48,42px);min-width:805px;isolation:isolate;position:relative}.tcal-corner{grid-column:1;grid-row:1;position:sticky;top:0;left:0;z-index:12;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:9px;font-weight:600;letter-spacing:.8px;background:#f8faf4;color:#7e8d73;border-bottom:1px solid #dee5d7;border-right:1px solid #e7ebdf;line-height:1.1}.tcal-corner>span{font-size:8px;color:#a0ab98;font-weight:400}.tcal-day{position:sticky;top:0;z-index:10;background:#f8faf5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-bottom:1px solid #dce4d5;border-right:1px solid #e7ebdf;min-width:0}.tcal-day>span{font-size:9px;letter-spacing:1px;color:#86937b;font-weight:650}.tcal-day>strong{font:600 21px/1.4 var(--display);color:#506247}.tcal-day>small{font-size:9px;color:#9ca590}.tcal-day.is-today{background:#edf4df}.tcal-day.is-today>strong{color:#315c2a}.tcal-day.is-today>small{color:#718a57}.tcal-time{position:sticky;left:0;z-index:5;display:flex;justify-content:center;padding-top:5px;font:500 10px var(--display);color:#7c8c78;border-right:1px solid #e2e8db;border-bottom:1px solid #e5eadd;background:#fafbf7}.tcal-time.half{color:#a3ad9c;font-size:9px;border-bottom-color:#dbe4d3}.tcal-cell{position:relative;min-width:0;padding:0;border-radius:0;border-right:1px solid #e6ecdf;border-bottom:1px dashed #e6ebdf;background:#fff;text-align:left;user-select:none;touch-action:none;outline-offset:-3px!important;transition:background .08s;cursor:default}.tcal-cell.half{border-bottom-style:solid;border-bottom-color:#dfe7d6}.tcal-cell.can-select{cursor:crosshair}.tcal-cell.can-select:hover{background:#eef5df;box-shadow:inset 0 0 0 1px #a6bf82}.tcal-cell.tcal-past,.tcal-cell.tcal-missing{background:repeating-linear-gradient(135deg,#f5f6f2 0,#f5f6f2 5px,#f1f3ed 5px,#f1f3ed 6px);color:#b6bfad}.tcal-cell.tcal-open{background:#f0f7e6}.tcal-open-copy{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:0 10px;color:#93aa74;font-size:9px;font-weight:600}.tcal-open-copy>.icon{width:12px;height:12px}.tcal-cell.tcal-booked{background:#f0f3f8}.tcal-cell.tcal-trial{background:#fcf5e9}.tcal-cell.tcal-completed{background:#f2f4ef}.tcal-cell.tcal-pending{background:repeating-linear-gradient(135deg,#fbf2de 0,#fbf2de 5px,#f7edd6 5px,#f7edd6 7px)}.tcal-cell.tcal-leave{background:repeating-linear-gradient(135deg,#ebedf2 0,#ebedf2 5px,#e6e9ef 5px,#e6e9ef 7px)}.tcal-leave-copy{font-size:9px;display:flex;align-items:center;justify-content:center;gap:5px;color:#9b8556}.tcal-leave-copy>.icon{width:12px;height:12px}.tcal-cell.tcal-leave .tcal-leave-copy{color:#7a8398}.tcal-cell.is-selected{background:#dceebd!important;box-shadow:inset 0 0 0 1.5px #789f4b!important;z-index:3}.tcal-cell.is-selected:after{content:'';position:absolute;inset:0;background:#bbdc8930;pointer-events:none}.tcal-selection-mark{display:none;position:absolute;top:3px;right:4px;width:15px;height:15px;background:#678e40;color:white;border-radius:4px;place-items:center;z-index:3}.tcal-selection-mark>.icon{width:11px;height:11px;stroke-width:2.5}.tcal-cell.is-selected>.tcal-selection-mark{display:grid}.tcal-event{align-self:stretch;margin:3px 4px;min-width:0;pointer-events:none;z-index:2;padding:3px 6px;border-radius:6px;border:1px solid #d9e3ee;border-left:3px solid #889eb8;background:#e8eff7;display:flex;flex-direction:column;justify-content:center;color:#4f647e;overflow:hidden}.tcal-event-top{display:flex;align-items:center;justify-content:space-between;gap:4px;line-height:1.25}.tcal-event-top>b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.tcal-event-top>em{font:600 8px/1.2 var(--display);border-radius:3px;padding:2px 3px;background:#d7e2f0;color:#67809d;font-style:normal}.tcal-event-time{font-size:8px;font-variant-numeric:tabular-nums;display:block;line-height:1.4;color:#7c8ca0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.tcal-event-title{font-size:9px;margin:6px 0 3px;line-height:1.4;color:#7a8ba2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tcal-event-trial{background:#fbefd9;border-color:#e9d8b8;border-left-color:#cfab65;color:#8b6a31}.tcal-event-trial .tcal-event-top>em{background:#efdeb8;color:#a38146}.tcal-event-trial .tcal-event-time,.tcal-event-trial .tcal-event-title{color:#a88e60}.tcal-event-completed{background:#e9ede5;border-color:#dce3d5;border-left-color:#a7b69a;color:#849078}.tcal-event-completed .tcal-event-top>em{background:#dfe5d9;color:#93a186}.tcal-event-completed .tcal-event-time,.tcal-event-completed .tcal-event-title{color:#a0aa96}.tcal-event.has-conflict{border-left-color:#d49e57;border-style:dashed}.tcal-cell.is-selected+.tcal-event{opacity:.72}.tcal-now{z-index:4;align-self:start;height:1px;background:#c1835b;pointer-events:none;position:relative;grid-column:auto}.tcal-now>span{width:5px;height:5px;position:absolute;left:0;top:-2px;border-radius:50%;background:#c1835b}.tcal-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:13px 22px;border-top:1px solid #e5ebdd;font-size:9px;color:#819077}.tcal-legend>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.tcal-legend i{width:9px;height:9px;display:inline-block;border-radius:3px;border:1px solid #0000000b}.tcal-key-open{background:#e2efcc}.tcal-key-booked{background:#dfe9f4}.tcal-key-trial{background:#f0dfb9}.tcal-key-past{background:#e4e8de}.tcal-key-pending{background:#f6e9c7}.tcal-key-leave{background:#dfe3ec}.tcal-legend .tcal-legend-note{margin-left:auto;font-size:9px;color:#a0a995}.tcal-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 22px;background:#f4f8ec;border-top:1px solid #dce7cf}.tcal-selection-total{display:flex;align-items:center;gap:11px}.tcal-selection-total>b{font:650 28px/1.1 var(--display);letter-spacing:-1px;color:#43652c;min-width:22px}.tcal-selection-total>span{font-size:11px;color:#526e40;font-weight:600;line-height:1.5}.tcal-selection-total small{font-size:9px;font-weight:400;color:#8d9d7f;display:block}.tcal-selection-actions{display:flex;align-items:center;gap:8px}.tcal-selection-actions .btn.primary{background:#365c30;border-color:#365c30}.tcal-selection-actions .btn{height:36px}.tcal-request-panel{padding:22px;margin-bottom:24px}.tcal-request-panel .eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:4px;color:#9baa90}.tcal-request-panel h2{font-size:17px}.tcal-request-panel select{font-size:11px;border:1px solid #e0e7d9;background:#fff;border-radius:7px;padding:7px 28px 7px 10px;color:#73846a}.tcal-request-row{display:flex;align-items:center;gap:13px;width:100%;padding:15px 0;text-align:left;border-top:1px solid #edf0e8}.tcal-request-icon{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:#f8eed7;color:#b19560;flex-shrink:0}.tcal-request-icon>.icon{width:15px}.tcal-request-icon.approved{background:#e9f1e1;color:#7a9a61}.tcal-request-icon.rejected{background:#f0e9e4;color:#b09788}.tcal-request-copy{flex:1;min-width:0}.tcal-request-copy strong{display:block;font-size:12px;font-weight:600}.tcal-request-copy small{display:block;font-size:10px;color:#9ba38f;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:500px;margin-top:3px}.tcal-request-impact{font-size:10px;color:#8f9d86}.tcal-request-row>.icon{width:13px;color:#a9b39f}.tcal-request-panel .tcal-empty{padding:28px 0;font-size:12px;color:#93a089;text-align:center;border-top:1px solid #eef1e9}.tcal-review-hero{padding:6px 0 22px;border-bottom:1px solid #e7ebdf;margin-bottom:20px}.tcal-review-hero .eyebrow{font-size:10px;color:#88a471}.tcal-review-hero h2{font:600 25px/1.4 var(--display);letter-spacing:-.6px;margin:10px 0 6px;color:#3c5932}.tcal-review-hero p{font-size:11px;color:#8d9d80}.tcal-review-note{display:flex;align-items:flex-start;gap:8px;padding:13px 14px;border-radius:9px;background:#f3f7ec;font-size:11px;line-height:1.6;color:#82946f;margin:15px 0}.tcal-review-note>.icon{width:15px;height:15px;margin-top:2px}.tcal-review-section{margin:21px 0 11px;font-size:12px;color:#5d7350}.tcal-range-list{border:1px solid #e3e9db;border-radius:10px;overflow:hidden;max-height:260px;overflow-y:auto}.tcal-range-list>div{display:grid;grid-template-columns:105px minmax(100px,1fr) 75px;gap:10px;align-items:center;padding:12px 14px;font-size:11px;border-bottom:1px solid #edf0e6}.tcal-range-list>div:last-child{border:0}.tcal-range-list strong{font-weight:500;color:#577246}.tcal-range-list span{font-size:10px;color:#8b9c7e;word-break:normal}.tcal-range-list small{font-size:9px;text-align:right;color:#a0ad94}.tcal-conflicts{padding:13px 14px;margin:14px 0;border:1px solid #e8d8b6;background:#fcf7e9;border-radius:9px;font-size:11px;color:#aa8d54}.tcal-conflicts summary{cursor:pointer}.tcal-conflicts>div{padding:8px 0;border-top:1px solid #efe5d0;margin-top:8px}.tcal-conflicts small{display:block;color:#b09c77}.tcal-affected{border:1px solid #e5e9dd;border-radius:10px;overflow:hidden}.tcal-affected>div{display:flex;gap:15px;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #ecefe5;font-size:11px}.tcal-affected>div:last-child{border-bottom:0}.tcal-affected strong{font-weight:500}.tcal-affected small{font-size:10px;color:#99a38c;display:block;margin-top:3px}.tcal-affected b{font-size:10px;font-weight:400;text-align:right;color:#839271;white-space:nowrap}.tcal-reason{display:block;margin:20px 0 4px;font-size:12px;color:#5b724c;font-weight:500}.tcal-reason>span{font-size:10px;color:#a5b296;margin-left:6px;font-weight:400}.tcal-reason textarea{display:block;width:100%;resize:vertical;margin-top:8px;border:1px solid #dbe5d2;border-radius:9px;padding:12px;color:#547044;font-size:12px;background:#fcfdf9}.tcal-reason textarea::placeholder{color:#a7b39a}.tcal-admin-note{font-size:11px;color:#8b9a7e;padding:12px 20px;background:#f7faf2;display:flex;gap:8px;align-items:center}.tcal-admin-note>.icon{width:15px}.tcal-admin .tcal-scroll{height:510px}.tcal-admin .tcal-cell{touch-action:auto}.tcal-admin .tcal-cell[data-tcal-course]{cursor:pointer}.tcal-dragging,.tcal-dragging *{user-select:none!important;cursor:crosshair!important}.tcal-request-row:hover{background:#fafcf6}.tcal-panel [aria-disabled=true]{opacity:1}.tcal-cell:focus-visible{z-index:6;outline:2px solid #4f772e!important;outline-offset:-3px!important}.tcal-cell[data-tcal-course]:not(.can-select){cursor:pointer}
@media(min-width:1450px){.tcal-grid{grid-template-columns:64px repeat(7,minmax(125px,1fr))}.tcal-event{padding:4px 9px}.tcal-event-top>b{font-size:11px}.tcal-event-time{font-size:9px}.tcal-event-title{font-size:10px}.tcal-scroll{height:620px}}
@media(max-width:1200px){.tcal-overview{gap:12px;padding:16px}.tcal-overview>div+div{padding-left:14px}.tcal-overview-icon{width:32px;height:32px}.tcal-overview .tcal-overview-note{font-size:10px}.tcal-editor{gap:12px;flex-wrap:wrap}.tcal-mode-btn{padding:8px 10px}.tcal-options{margin-left:auto}.tcal-instructions{padding:12px 18px}.tcal-draft-label{display:none}.tcal-group-options{gap:12px}.tcal-group-options label{display:block}.tcal-group-options select{display:block;width:100%;max-width:none;margin-top:5px}.tcal-legend{gap:11px}.tcal-legend .tcal-legend-note{margin-left:0}.tcal-scroll{height:540px}}
@media(max-width:800px){.tcal-overview{grid-template-columns:repeat(3,1fr);gap:10px}.tcal-overview .tcal-overview-note{grid-column:1/-1;border:0;border-top:1px solid #dfe6d6;padding:10px 0 0;margin-top:3px}.tcal-overview-note br{display:none}.tcal-overview strong{font-size:23px}.tcal-toolbar{padding:16px;gap:12px;flex-wrap:wrap}.tcal-week-nav{gap:7px}.tcal-week-nav>div{min-width:195px}.tcal-week-nav strong{font-size:13px}.tcal-toolbar>.tcal-zone{margin-left:auto}.tcal-editor{padding:13px 16px}.tcal-options{margin-left:0;flex:1;justify-content:flex-end}.tcal-instructions p>span{max-width:440px}.tcal-selection-bar{padding:15px 16px}.tcal-selection-actions{gap:3px}.tcal-selection-actions .btn{font-size:10px;padding:0 10px}.tcal-selection-total>b{font-size:25px}.tcal-selection-total>span{font-size:10px}.tcal-request-impact{display:none}.tcal-request-panel{padding:18px}.tcal-request-copy strong{font-size:11px}.tcal-mode-help{font-size:10px;max-width:100%}}
@media(max-width:520px){.tcal-overview{padding:14px 12px;gap:8px}.tcal-overview>div{gap:7px}.tcal-overview>div+div{padding-left:9px}.tcal-overview-icon{display:none}.tcal-overview strong{font-size:24px}.tcal-overview small{font-size:9px}.tcal-week-nav{width:100%;justify-content:space-between;gap:4px}.tcal-week-nav>div{min-width:170px;text-align:center}.tcal-week-nav strong{font-size:12px}.tcal-week-nav .btn{font-size:10px;padding:0 8px}.tcal-week-nav .icon-btn{width:27px}.tcal-zone select{max-width:230px}.tcal-toolbar>.tcal-zone{margin-left:0;width:100%;justify-content:center}.tcal-editor{display:block}.tcal-mode{width:100%;justify-content:space-between}.tcal-mode-btn{padding:8px;font-size:10px;gap:5px}.tcal-options{margin-top:13px;justify-content:flex-start;gap:10px;flex-wrap:wrap}.tcal-options label{flex:1;min-width:90px}.tcal-options select{max-width:none;width:100%;font-size:10px}.tcal-instructions{padding:12px}.tcal-instructions p>span{font-size:9px}.tcal-instructions strong{font-size:10px}.tcal-drag-icon{display:none}.tcal-selection-bar{flex-wrap:wrap;gap:12px}.tcal-selection-actions{width:100%;justify-content:flex-end}.tcal-selection-actions .btn{height:37px;font-size:11px;padding:0 12px}.tcal-selection-actions .btn.primary{flex:1;margin-left:5px}.tcal-selection-total>b{font-size:26px}.tcal-selection-total>span{font-size:11px}.tcal-selection-total small{display:inline;margin-left:7px;font-size:8px}.tcal-group-options{grid-template-columns:1fr;padding:12px 16px}.tcal-legend{gap:8px;padding:12px;font-size:8px}.tcal-legend .tcal-legend-note{width:100%;font-size:8px}.tcal-request-panel .panel-header{flex-wrap:wrap;gap:10px}.tcal-request-panel h2{font-size:16px}.tcal-request-row{gap:8px}.tcal-request-icon{width:28px;height:28px}.tcal-request-copy strong{font-size:10px}.tcal-request-copy small{font-size:9px;max-width:160px}.tcal-request-row>.pill{font-size:8px;padding:3px 6px}.tcal-request-row>.icon{display:none}.tcal-range-list>div{grid-template-columns:90px 1fr;gap:6px;padding:11px;font-size:10px}.tcal-range-list small{grid-column:2;text-align:left;font-size:8px}.tcal-scroll{height:490px}.tcal-review-hero h2{font-size:22px}}
.tcal-panel .sr-only,.tcal-request-panel .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tcal-selection-bar{position:sticky;bottom:0;z-index:15;box-shadow:0 -5px 16px #37552908}
.tcal-overview{padding-top:13px;padding-bottom:13px;margin-bottom:18px}.tcal-toolbar{padding-top:14px;padding-bottom:14px}.tcal-editor{padding-top:12px;padding-bottom:12px}.tcal-instructions{padding-top:10px;padding-bottom:10px}
/* The weekly timetable is the primary surface, including on laptop screens. */
.tcal-page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;height:36px;margin-bottom:9px}.tcal-page-heading h1{font-size:25px;line-height:32px;letter-spacing:-.7px}.tcal-summary{display:flex;align-items:center;gap:20px;min-height:24px;margin-bottom:11px;font-size:11px;color:#7f8e74}.tcal-summary>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.tcal-summary b{color:#49623c;font:650 14px var(--display)}.tcal-summary i{display:inline-block;width:7px;height:7px;border-radius:2px}.tcal-summary small{font-size:10px;margin-left:auto;color:#9aa58f}.tcal-toolbar-actions{display:flex;align-items:center;gap:12px}.tcal-page .tcal-toolbar{min-height:50px;padding:7px 16px;gap:12px}.tcal-page .tcal-week-nav{gap:5px}.tcal-page .tcal-week-nav>div{min-width:200px}.tcal-page .tcal-week-nav strong{font-size:13px}.tcal-page .tcal-week-nav .icon-btn{height:31px;width:28px}.tcal-page .tcal-zone select{font-size:10px;padding-top:6px;padding-bottom:6px;max-width:185px;height:31px}.tcal-page .tcal-editor{min-height:50px;padding:6px 16px;gap:12px;flex-wrap:nowrap}.tcal-page .tcal-mode{padding:3px}.tcal-page .tcal-mode-btn{padding:6px 10px;font-size:10px;gap:5px}.tcal-page .tcal-options{gap:11px}.tcal-page .tcal-options label{flex-direction:row;align-items:center;gap:6px;font-size:9px;white-space:nowrap}.tcal-page .tcal-options select{height:30px;padding:4px 22px 4px 8px;font-size:10px;max-width:145px}.tcal-page .tcal-instructions{height:25px;min-height:25px;padding:3px 17px;gap:7px;white-space:nowrap;overflow:hidden}.tcal-page .tcal-instructions>.icon{width:11px;height:11px;color:#92a878}.tcal-page .tcal-instructions>strong{font-size:9px;line-height:18px;font-weight:500}.tcal-page .tcal-instructions>span{margin-left:auto;font-size:9px;color:#9ba78d}.tcal-page .tcal-grid{grid-template-rows:54px repeat(48,42px)}.tcal-page .tcal-day{gap:0}.tcal-page .tcal-day>span{font-size:8px;line-height:12px}.tcal-page .tcal-day>strong{font-size:18px;line-height:22px}.tcal-page .tcal-day>small{font-size:8px;line-height:12px}.tcal-page .tcal-scroll{height:clamp(300px,calc(100vh - 400px),700px)}.tcal-page .tcal-legend{padding:7px 16px;min-height:29px;gap:11px;font-size:8px}.tcal-page .tcal-legend-note{font-size:8px}.tcal-page .tcal-selection-bar{padding:10px 16px;min-height:56px}.tcal-page .tcal-selection-total>b{font-size:25px}.tcal-page .tcal-selection-actions .btn{height:34px}.tcal-page .tcal-panel{margin-bottom:20px}.tcal-page.is-focused>.tcal-page-heading,.tcal-page.is-focused>.tcal-summary,.tcal-page.is-focused .tcal-instructions,.tcal-page.is-focused .tcal-legend{display:none}.tcal-page.is-focused .tcal-scroll{height:clamp(340px,calc(100vh - 265px),900px)}.tcal-page.is-focused .tcal-focus-toggle{background:#e8f2dc;color:#54713e;border-color:#d3e4bf}
@media(max-width:1100px){.tcal-summary{gap:14px}.tcal-summary small{font-size:9px}.tcal-page .tcal-week-nav>div{min-width:180px}.tcal-page .tcal-options label{flex-direction:column;align-items:flex-start;gap:3px}.tcal-page .tcal-editor{min-height:57px}.tcal-page .tcal-options select{height:27px}.tcal-page .tcal-toolbar-actions{gap:6px}.tcal-page .tcal-focus-toggle{font-size:10px;padding:0 8px}.tcal-page .tcal-instructions>span{font-size:8px}.tcal-page .tcal-scroll{height:clamp(300px,calc(100vh - 410px),700px)}}
@media(max-width:780px){.tcal-page-heading{height:auto;min-height:34px}.tcal-page-heading h1{font-size:22px}.tcal-summary{gap:14px;flex-wrap:wrap;font-size:10px;line-height:1.3;margin-bottom:12px}.tcal-summary small{display:none}.tcal-page .tcal-toolbar{flex-wrap:wrap;gap:8px;padding:10px 14px}.tcal-page .tcal-toolbar-actions{margin-left:auto}.tcal-page .tcal-editor{flex-wrap:wrap;gap:8px;padding:9px 14px}.tcal-page .tcal-options{margin-left:auto;justify-content:flex-end}.tcal-page .tcal-options label{flex-direction:row;gap:5px}.tcal-page .tcal-instructions>span{display:none}.tcal-page .tcal-scroll{height:420px}.tcal-page.is-focused .tcal-scroll{height:calc(100vh - 320px);min-height:320px}.tcal-page .tcal-selection-bar{padding:10px 14px}.tcal-page .tcal-legend{padding:8px 14px}}
@media(max-width:520px){.tcal-page-heading{gap:9px}.tcal-page-heading h1{font-size:20px;line-height:25px;max-width:210px}.tcal-page-heading>.btn{font-size:9px;padding:0 8px;height:30px}.tcal-page-heading>.btn>.icon{display:none}.tcal-summary{gap:10px;font-size:9px}.tcal-summary b{font-size:12px}.tcal-page .tcal-toolbar-actions{width:100%;justify-content:space-between}.tcal-page .tcal-toolbar-actions>.tcal-zone{width:auto;justify-content:flex-start}.tcal-page .tcal-zone select{max-width:185px}.tcal-page .tcal-focus-toggle{white-space:nowrap}.tcal-page .tcal-options{margin-top:8px;gap:8px;justify-content:flex-start}.tcal-page .tcal-options label{min-width:85px;flex-direction:column;align-items:flex-start;gap:4px}.tcal-page .tcal-options select{max-width:none}.tcal-page .tcal-instructions{padding:3px 12px}.tcal-page .tcal-instructions>strong{font-size:8px}.tcal-page .tcal-legend{gap:7px}.tcal-page .tcal-selection-bar{gap:9px}.tcal-page .tcal-selection-total small{display:none}.tcal-page.is-focused .tcal-scroll{height:calc(100vh - 335px)}}

/* Smart-fit timetable. Each selectable cell is strictly contained in its track. */
.tcal-panel .tcal-cell{min-height:0;height:100%;max-height:100%;padding:0;overflow:hidden;box-sizing:border-box;border-top:0}
.tcal-panel .tcal-cell.is-selected{outline:0;box-shadow:inset 0 0 0 2px #547e31!important}
.tcal-cell.is-selected[data-tcal-course]{z-index:1}
.tcal-cell.is-selected+.tcal-event{opacity:1;outline:2px solid #547e31;outline-offset:-2px;background:#deedca}
.tcal-page .tcal-smart-scroll{overflow-y:hidden;overflow-x:auto;min-height:280px;max-height:none;height:calc(100dvh - 380px);scrollbar-gutter:auto}
.tcal-page .tcal-smart-grid{height:100%;min-height:0;grid-template-columns:72px repeat(7,minmax(86px,1fr));grid-template-rows:44px repeat(var(--tcal-rows),minmax(0,1fr));min-width:674px;isolation:isolate}
.tcal-smart-grid .tcal-corner,.tcal-smart-grid .tcal-day{position:relative;min-height:0;padding:0}
.tcal-smart-grid .tcal-day>span{font-size:10px;line-height:12px}
.tcal-smart-grid .tcal-day>strong{font-size:18px;line-height:19px}
.tcal-smart-grid .tcal-day>small{font-size:10px;line-height:12px;color:#657459}
.tcal-smart-grid .tcal-time{padding:0;align-items:center;font-size:12px;color:#677761;min-height:0}
.tcal-smart-grid .tcal-event{min-height:0;margin:1px 3px;padding:2px 6px;border-radius:4px}
.tcal-smart-grid .tcal-event-top>b{font-size:12px;line-height:16px;color:#344f6b}
.tcal-smart-grid .tcal-event-top>em{font-size:10px;padding:1px 3px}
.tcal-smart-grid .tcal-event-title{display:none}
.tcal-smart-grid .tcal-event-time{font-size:11px;line-height:14px;margin-top:0}
.tcal-smart-grid .tcal-event-trial .tcal-event-top>b{color:#886015}
.tcal-smart-grid .tcal-event-completed .tcal-event-top>b{color:#718169}
.tcal-smart-scroll.is-dense .tcal-event:not(.is-long) .tcal-event-time{display:none}
.tcal-smart-grid .tcal-open-copy{font-size:11px;padding:0 7px}
.tcal-smart-grid .tcal-selection-mark{width:12px;height:12px;top:2px;right:2px}
.tcal-fold-time,.tcal-fold-cell{height:100%;max-height:100%;min-height:0;min-width:0;padding:0 7px;border:0;border-right:1px solid #e1e8dc;border-bottom:1px solid #dce6d4;background:#f4f7f0;box-sizing:border-box;overflow:hidden;color:#778670;cursor:pointer}
.tcal-fold-time{display:flex;flex-direction:column;justify-content:center;font-size:10px;line-height:11px;font-variant-numeric:tabular-nums}
.tcal-fold-cell{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;line-height:14px}
.tcal-fold-cell span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcal-fold-cell>.icon{width:11px;height:11px;flex-shrink:0}
.tcal-fold-cell.has-open{background:#eaf3dc;color:#4b6c34;font-weight:600}
.tcal-fold-cell.has-leave{color:#8b6a31;background:#faf0d9}
.tcal-fold-cell.has-selection{box-shadow:inset 0 0 0 2px #547e31}
.tcal-fold-cell:hover,.tcal-fold-time:hover{background:#deebce;color:#365e2c}
.tcal-range-controls{display:flex;align-items:center;gap:10px;padding:7px 16px;border-bottom:1px solid #e0e7d9;background:#f9fbf6;min-height:40px;color:#466039;font-size:12px}
.tcal-range-controls>span{display:flex;align-items:center;gap:7px;font-weight:600}
.tcal-range-controls>span>.icon{width:14px;height:14px}
.tcal-range-controls small{color:#7a8971;font-size:11px;font-weight:400}
.tcal-range-controls label{margin-left:auto;display:flex;gap:7px;align-items:center;font-size:11px;white-space:nowrap}
.tcal-range-controls select{height:28px;border:1px solid #dce5d3;border-radius:5px;background:#fff;padding:3px 7px;font-size:11px;color:#435d35;max-width:175px}
.tcal-range-controls .btn{height:28px;font-size:11px}
.tcal-page .tcal-selection-bar{position:relative;bottom:auto;min-height:50px;padding-top:7px;padding-bottom:7px}
.tcal-page .tcal-legend{font-size:10px;min-height:27px;padding-top:5px;padding-bottom:5px}
.tcal-page .tcal-instructions{height:24px;min-height:24px}
.tcal-page .tcal-instructions>strong{font-size:11px}
.tcal-page .tcal-mode-btn{font-size:12px}
.tcal-page .tcal-mode-help{font-size:12px;line-height:18px}
.tcal-page.is-focused .tcal-range-controls small{display:none}
@media(min-width:1500px){.tcal-smart-grid .tcal-event-top>b{font-size:13px}.tcal-fold-cell{font-size:12px}.tcal-range-controls,.tcal-range-controls label{font-size:12px}}
@media(max-height:780px) and (min-width:801px){.tcal-page-heading{margin-bottom:4px;height:28px}.tcal-page-heading h1{font-size:22px}.tcal-summary{margin-bottom:5px;min-height:20px}.tcal-page .tcal-toolbar{min-height:42px;padding-top:4px;padding-bottom:4px}.tcal-page .tcal-editor{min-height:43px;padding-top:3px;padding-bottom:3px}.tcal-range-controls{min-height:34px;padding-top:3px;padding-bottom:3px}.tcal-page .tcal-instructions{display:none}.tcal-page .tcal-panel{margin-bottom:0}}
@media(max-width:1100px){.tcal-range-controls small{display:none}.tcal-page .tcal-instructions>span{display:none}.tcal-smart-grid .tcal-event{padding-left:4px;padding-right:4px}}
@media(max-width:780px){.tcal-range-controls{flex-wrap:wrap;padding:6px 12px;gap:6px}.tcal-range-controls>span{font-size:11px}.tcal-range-controls label{font-size:0}.tcal-range-controls select{font-size:11px;max-width:155px}.tcal-page .tcal-legend-note{display:none}.tcal-page .tcal-instructions{white-space:normal;height:auto;min-height:28px}.tcal-page .tcal-instructions>strong{font-size:10px;line-height:14px}.tcal-page .tcal-selection-total small{display:none}.tcal-page .tcal-options label{font-size:10px}.tcal-page .tcal-mode-btn{font-size:11px}.tcal-page .tcal-mode-help{font-size:11px;margin:7px 0 0}}

html[data-workspace-role="teacher"] .workspace:has(.tcal-page)>.topbar{height:50px}
html[data-workspace-role="teacher"] .main:has(.tcal-page){padding-top:12px;padding-bottom:12px}
.main:has(.tcal-page)>.page-footer{display:none}
.tcal-smart-scroll.is-dense .tcal-event{padding:0 4px;margin:0 3px}
.tcal-smart-scroll.is-dense .tcal-event-top>b{font-size:12px;line-height:14px}
.tcal-smart-scroll.is-dense .tcal-event-top>em{font-size:9px;line-height:11px;padding:0 2px}
.tcal-smart-scroll.is-dense .tcal-event-time{font-size:10px;line-height:12px}
.tcal-smart-scroll.is-dense .tcal-fold-time{flex-direction:row;align-items:center;gap:1px;font-size:9px;line-height:12px;padding:0 3px}
.tcal-smart-grid .tcal-time{line-height:14px}
@media(max-height:800px) and (min-width:801px){.tcal-page.has-expanded>.tcal-page-heading,.tcal-page.has-expanded>.tcal-summary{display:none}}
@media(max-height:650px) and (min-width:801px){.tcal-page>.tcal-page-heading,.tcal-page>.tcal-summary,.tcal-page .tcal-instructions{display:none}.tcal-page .tcal-legend-note{display:none}}
