.tt-controls{background:var(--bg-surface);border:1px solid var(--border-color);flex-wrap:wrap;align-items:flex-end;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;display:flex}.tt-absent-form{flex-wrap:wrap;flex:1;align-items:flex-end;gap:1rem;display:flex}.tt-school-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.tt-class-card{background:var(--bg-surface);border:1px solid var(--border-color);border-top:3px solid var(--accent-primary)}.tt-class-header{border-bottom:1px solid var(--border-color);background:var(--bg-surface-alt);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.tt-class-name{font-weight:700;font-family:var(--font-serif);color:var(--accent-primary);font-size:1rem}.tt-period-list{padding:.5rem 0}.tt-period-row{border-bottom:1px solid var(--border-color);grid-template-columns:32px 1fr 1fr auto;align-items:center;gap:.75rem;padding:.6rem 1.25rem;transition:background .1s;display:grid}.tt-period-row:last-child{border-bottom:none}.tt-period-row:hover{background:var(--bg-surface-alt)}.tt-period-row.tt-period-sub{background:#ffa2000d;border-left:2px solid #f4a825}.tt-period-num{font-family:var(--font-mono);color:var(--text-tertiary);text-align:center;font-size:.75rem;font-weight:700}.tt-period-subj{color:var(--text-primary);font-size:.85rem;font-weight:600}.tt-teacher-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.tt-teacher-sub{color:#b87c14}.tt-strike{color:var(--text-tertiary);margin-right:4px;text-decoration:line-through}.tt-sub-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:2px;justify-content:center;align-items:center;width:28px;height:24px;padding:0;font-size:.85rem;transition:all .15s;display:flex}.tt-sub-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.tt-sub-btn:disabled{opacity:.4;cursor:not-allowed}.tt-sub-summary{background:#fff9f0;border:1px solid #f5d7a3;margin-bottom:1.5rem;padding:1rem 1.5rem}.tt-sub-summary-header{text-transform:uppercase;letter-spacing:.05em;color:#8f6824;margin-bottom:.75rem;font-size:.85rem;font-weight:700}.tt-sub-chips{flex-wrap:wrap;gap:.5rem;display:flex}.tt-sub-chip{background:#fff;border:1px solid #e6c999;border-radius:2px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8rem;display:inline-flex}.tt-sub-chip-class{color:var(--accent-primary);font-weight:700}.tt-sub-chip-strike{color:var(--text-tertiary);text-decoration:line-through}.tt-sub-chip-new{color:var(--accent-success);font-weight:600}.tt-sub-chip-revoke{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:0 0 0 .25rem;font-size:.7rem;line-height:1}.tt-sub-chip-revoke:hover{color:var(--accent-danger)}.tt-generate{grid-template-columns:1fr 1fr;align-items:start;gap:3rem;display:grid}@media (width<=1100px){.tt-generate{grid-template-columns:1fr}}.tt-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:1.25rem;padding-bottom:.5rem;font-family:var(--font-sans)!important;font-size:.8rem!important;font-weight:700!important}.form-row{flex-wrap:wrap;gap:1rem;margin-bottom:0;display:flex}.form-row .form-group{flex:1;min-width:140px}.tt-day-picker{flex-wrap:wrap;gap:.5rem;display:flex}.tt-day-btn{border:1px solid var(--border-color);background:var(--bg-surface);cursor:pointer;color:var(--text-secondary);border-radius:2px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;transition:all .15s}.tt-day-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.tt-subject-row{background:var(--bg-surface-alt);border:1px solid var(--border-color);align-items:flex-start;gap:.75rem;margin-bottom:.75rem;padding:.75rem;display:flex}.tt-remove-btn{border:1px solid var(--border-color);color:var(--text-tertiary);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;width:32px;height:38px;font-size:.8rem;transition:all .15s}.tt-remove-btn:hover{background:var(--accent-danger);color:#fff;border-color:var(--accent-danger)}.tt-slot-counter{font-family:var(--font-mono);font-size:.85rem;font-weight:700}.tt-teacher-form{background:var(--bg-surface);border:1px solid var(--border-color);margin-bottom:1.5rem;padding:1.5rem}.tt-loading{text-align:center;color:var(--text-tertiary);padding:3rem;font-style:italic}.tt-empty{text-align:center;border:1px dashed var(--border-color);color:var(--text-tertiary);padding:4rem}.tt-error{color:var(--accent-danger);background:#ffebee;border:1px solid #ffcdd2;border-radius:2px;margin-top:1rem;padding:1rem;font-size:.9rem}.tt-toast{z-index:9999;border-radius:2px;max-width:400px;padding:1rem 1.5rem;font-size:.9rem;font-weight:500;animation:.2s tt-slide-in;position:fixed;bottom:2rem;right:2rem;box-shadow:0 4px 16px #00000026}.tt-toast-success{background:var(--accent-primary);color:#fff}.tt-toast-error{background:var(--accent-danger);color:#fff}@keyframes tt-slide-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}html,body,#root{height:100%;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{background-color:#f5f5f5}
