.tt-module .tt-grid-scroll{overflow:auto;max-height:72vh}.tt-module .tt-grid{min-width:950px;table-layout:fixed}.tt-module .tt-grid th,.tt-module .tt-grid td{width:180px;vertical-align:top}.tt-module .tt-grid thead th{position:sticky;top:0;z-index:2;background:var(--exam-red-dark,#7e2636);color:white}.tt-module .tt-grid .tt-class{position:sticky;left:0;background:#f8f9fa;z-index:1;width:155px}.tt-module .tt-grid thead .tt-class{z-index:3;background:var(--exam-red-dark,#7e2636)}.tt-module .tt-cell{min-height:110px;cursor:pointer;padding:8px}.tt-module .tt-cell:focus,.tt-module .tt-cell:hover{background:#fff8f8;outline:2px solid var(--exam-red,#a23747);outline-offset:-2px}.tt-module .tt-entry{border:1px solid #ddd;border-left:3px solid var(--exam-red,#a23747);border-radius:4px;padding:8px;background:white;margin-bottom:7px;font-size:.88rem;cursor:pointer}.tt-module .tt-entry:hover{box-shadow:0 2px 6px #0002}.tt-module .tt-entry .tt-days{font-size:.7rem;font-weight:700;color:var(--exam-red-dark,#7e2636);letter-spacing:.04em}.tt-module .tt-entry small{display:block;color:#666}.tt-module .tt-entry.tt-dim{opacity:.35}.tt-module .tt-entry.tt-conflict{border-color:#dc3545;background:#fff0f0}.tt-module .tt-add-entry{border:1px dashed #bbb;width:100%;font-size:.8rem;color:#777;background:transparent;border-radius:4px;padding:8px}.tt-module .tt-tool-list{max-height:42vh;overflow:auto}.tt-module .tt-resource{padding:8px;border:1px solid #ddd;border-radius:4px;margin-bottom:6px;background:#fafafa;cursor:grab;text-align:left;width:100%}.tt-module .tt-resource:hover{background:#fff0f0}.tt-module .tt-master-list{max-height:55vh;overflow:auto}.tt-module .tt-master-row{border-bottom:1px solid #eee;padding:8px;display:flex;gap:8px;align-items:center}.tt-module .tt-master-row>span{flex:1}.tt-module .tt-order-row{display:flex;align-items:center;gap:4px;border:1px solid #ddd;padding:8px;margin-bottom:4px;cursor:grab}.tt-module .tt-order-row>span{flex:1}.tt-module .tt-period-time{display:block;font-size:.7rem;font-weight:400;white-space:normal}.tt-module .tt-drop{outline:2px dashed var(--exam-red,#a23747)}.tt-module .select2-container{width:100%!important}.tt-module .select2-selection--single{height:38px!important;padding-top:4px}.tt-module .tt-issue-link{text-align:left}.tt-module .tt-focus{box-shadow:inset 0 0 0 3px #ffb700}
.tt-report .tt-report-scroll{overflow:auto}.tt-report table{font-size:.88rem}.tt-report td{vertical-align:top;min-width:130px}.tt-report .tt-report-entry{padding:5px;margin:3px 0;border-bottom:1px solid #ddd;break-inside:avoid}.tt-report .tt-report-entry small{display:block}.tt-report .tt-report-heading{text-align:center;border-bottom:2px solid var(--exam-red,#a23747);padding:15px}.tt-report th{background:#f3e8eb}.tt-report .tt-report-time{font-size:.72rem;display:block;font-weight:400}
@media print{@page{size:A3 landscape;margin:9mm}#sidebar,.sidebar-overlay,.navbar,footer,.tt-no-print{display:none!important}.wrapper,#content{display:block!important;width:100%!important;margin:0!important;padding:0!important}.tt-report .tt-report-scroll{overflow:visible}.tt-report table{width:100%;font-size:9pt;border-collapse:collapse}.tt-report td{min-width:0}.tt-report th,.tt-report td{border:1px solid #666!important;padding:4px}.tt-report thead{display:table-header-group}.tt-report tr,.tt-report-entry{break-inside:avoid}.tt-report .card{border:0!important;box-shadow:none!important}}

.tt-module .tt-entry.tt-drop-before{border-top:3px solid var(--exam-red,#a23747)}.tt-module .tt-entry.tt-drop-after{border-bottom:3px solid var(--exam-red,#a23747)}

.tt-module .tt-entry-group{border:1px solid #ddd;border-left:3px solid var(--exam-red,#a23747);border-radius:4px;padding:8px;background:white;margin-bottom:7px;font-size:.88rem;cursor:pointer}.tt-module .tt-entry-group .tt-days{font-size:.7rem;font-weight:700;color:var(--exam-red-dark,#7e2636);letter-spacing:.04em}.tt-module .tt-entry-group small{display:block;color:#666}.tt-module .tt-entry-group.tt-dim{opacity:.35}.tt-module .tt-entry.tt-entry-line{border:0;border-left:0;border-radius:3px;padding:2px 4px;margin:2px 0 0;background:transparent;font-size:.85rem}.tt-module .tt-entry.tt-entry-line:hover{background:#fff0f0;box-shadow:none}.tt-module .tt-entry.tt-entry-line.tt-conflict{background:#fff0f0;outline:1px solid #dc3545}.tt-module .tt-line-remarks{font-style:italic}.tt-module .tt-line-credit{color:#555}
.tt-module .tt-section-editor{border:1px solid #e3d3d7;border-radius:6px;padding:12px;background:#fdf9fa}.tt-module .tt-section-table th{font-size:.8rem;font-weight:600;white-space:nowrap}.tt-module .tt-section-table td:nth-child(-n+2) input[data-field=section_name]{min-width:90px}.tt-module .tt-section-table select{min-width:170px}.tt-module .tt-cs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 16px;max-height:50vh;overflow:auto;border:1px solid #eee;border-radius:6px;padding:10px}.tt-module .tt-cs-item{margin:0}.tt-module.tt-toolbox-collapsed .tt-grid-scroll{max-height:82vh}
.tt-report .tt-line{display:block}.tt-report .tt-line-days,.tt-report .tt-line-class{font-weight:700;font-size:.8rem}.tt-report .tt-line-teacher,.tt-report .tt-line-meta,.tt-report .tt-line-credit,.tt-report .tt-line-section{font-size:.85rem}.tt-report .tt-line-remarks{font-style:italic;font-size:.85rem}.tt-report .tt-report-entry:last-child{border-bottom:0}
@media print{.tt-report,.tt-report *{font-size:9pt!important;line-height:1.25}.tt-report h1{font-size:16pt!important}.tt-report h2{font-size:13pt!important}.tt-report h5{font-size:11pt!important}.tt-report .tt-report-heading p{font-size:10pt!important}}
.tt-module .tt-combine{border:1px solid #cfe3e8;border-radius:6px;padding:10px 12px;background:#f5fafb}.tt-module .tt-combine legend{float:none;width:auto;padding:0 6px;margin-bottom:4px}.tt-module .tt-combine-row{padding:5px 0 5px 1.6em;border-bottom:1px solid #e3eef1;margin:0}.tt-module .tt-combine-row:last-child{border-bottom:0}.tt-module .tt-line-combined{color:#0b7285;font-weight:600}.tt-report .tt-line-combined{color:#0b7285;font-size:.85rem}@media print{.tt-report .tt-line-combined{color:#000}}
.tt-module .tt-class-badges{display:flex;flex-wrap:wrap;gap:3px;margin:3px 0}.tt-module .tt-class-badges:empty{display:none}.tt-module .tt-stage-badge{background:#e7f1ec;color:#1d5e40;font-weight:600}.tt-module .tt-inactive-badge{white-space:normal;text-align:left}.tt-module .tt-class-settings{font-size:.75rem;color:#6c757d;text-decoration:none;display:block;text-align:left}.tt-module .tt-class-settings:hover{color:var(--exam-red,#a23747)}.tt-module .tt-order-row .badge{font-weight:600}
.tt-module .tt-row-inactive .tt-cell{background:repeating-linear-gradient(135deg,#f4f4f4 0 10px,#ebebeb 10px 20px)}.tt-module .tt-row-inactive .tt-entry,.tt-module .tt-row-inactive .tt-entry-group{opacity:.5}.tt-module .tt-row-inactive th.tt-class{background:#ececec;color:#555}
.tt-module .tt-entry.tt-done,.tt-module .tt-entry-group.tt-done{border-left-color:#198754;background:#f6faf7;color:#6c757d}.tt-module .tt-done strong{text-decoration:line-through;color:#6c757d}.tt-module .tt-entry .tt-line-status,.tt-module .tt-entry-group .tt-line-status{color:#198754;font-weight:600}.tt-module .tt-syllabus-check{border:1px solid #cfe5d8;background:#f4faf6;border-radius:6px;padding:8px 12px 8px 2.2em}
.tt-report .tt-stage{display:block;font-weight:400;font-size:.78rem;color:#1d5e40}.tt-report h5 .tt-stage{display:inline}.tt-report .tt-inactive-badge{display:inline-block;margin-top:3px;padding:0 6px;border-radius:3px;background:#6c757d;color:#fff;font-size:.72rem;font-weight:600}.tt-report .tt-inactive-cell{text-align:center;vertical-align:middle;background:repeating-linear-gradient(135deg,#f6f6f6 0 10px,#ededed 10px 20px);color:#555;font-style:italic}.tt-report .tt-inactive-note{display:block;font-weight:400}.tt-report .tt-report-entry-done{color:#777}.tt-report .tt-report-entry-done .tt-line-title strong{text-decoration:line-through}.tt-report .tt-line-status{font-weight:700;font-style:italic;color:#198754;font-size:.8rem}
@media print{.tt-report .tt-inactive-cell{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tt-report .tt-line-status,.tt-report .tt-stage{color:#000}.tt-report .tt-inactive-badge{background:#fff!important;color:#000;border:1px solid #555}}
