.tt-studio{background:var(--bg-base,#f1f5f9);flex-direction:column;height:100%;display:flex;overflow:hidden}.tt-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-flow:row;flex-shrink:0;align-items:center;gap:0;height:54px;padding:0 .5rem;display:flex}.tt-tab-scroll-row{scrollbar-width:none;background:0 0;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:.25rem;padding:0 .5rem;display:flex;overflow:auto hidden}.tt-tab-scroll-row::-webkit-scrollbar{display:none}.tt-controls-row{flex-wrap:nowrap;flex:1;justify-content:flex-end;align-items:center;gap:.75rem;padding:0 .5rem;display:flex}.tt-toolbar-group{align-items:center;gap:.5rem;display:flex}.tt-toolbar-divider{display:none}.tt-view-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:all .2s;display:flex}.tt-view-btn:hover{background:var(--bg-base);color:var(--text-primary)}.tt-view-btn.active{color:var(--brand-primary);background:#7d2ae81a;font-weight:500}.tt-segmented{background:var(--bg-base);border:1px solid var(--border-light);border-radius:999px;gap:.25rem;padding:.25rem;display:flex}.tt-segmented button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:.82rem;font-weight:500;transition:all .2s;display:flex}.tt-segmented button:hover:not(.active){color:var(--text-primary)}.tt-segmented button.active{background:var(--brand-primary);color:#fff;box-shadow:0 2px 8px #7d2ae840}.tt-select{background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;outline:none;min-width:160px;padding:.45rem .75rem;font-size:.82rem;transition:border-color .15s}.tt-select:focus{border-color:var(--primary)}.tt-generate-btn{background:var(--brand-gradient);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.45rem 1.1rem;font-size:.82rem;font-weight:600;transition:opacity .15s,box-shadow .15s;display:flex;box-shadow:0 4px 12px #7d2ae84d}.tt-generate-btn:hover{opacity:.95;box-shadow:0 6px 16px #7d2ae866}.tt-generate-btn:disabled{opacity:.5;cursor:not-allowed}.tt-print-btn{color:#475569;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.8rem;transition:all .12s;display:flex}.tt-print-btn:hover{color:#1e293b;border-color:#94a3b8}.tt-conflict-badge{color:#ef4444;cursor:pointer;white-space:nowrap;background:#ef44441a;border:1px solid #ef444440;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.72rem;font-weight:600;display:flex}.tt-spacer{flex:1;min-width:0}.tt-entity-label{color:#1e293b;white-space:nowrap;padding:0 .25rem;font-size:.88rem;font-weight:700}.tt-body{flex:1;display:flex;overflow:hidden}.tt-panel-scroll{scrollbar-gutter:stable;flex:1;padding:1.5rem;overflow-y:auto}.tt-grid-wrapper{scrollbar-width:auto;scrollbar-color:#c4b5fd #f1f5f9;flex-direction:column;flex:1;padding:1rem 1.5rem;display:flex;overflow:auto}.tt-grid-wrapper::-webkit-scrollbar{width:8px;height:8px}.tt-grid-wrapper::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.tt-grid-wrapper::-webkit-scrollbar-thumb{background:linear-gradient(#7d2ae8,#00c4cc);border:2px solid #f1f5f9;border-radius:4px}.tt-grid-wrapper::-webkit-scrollbar-thumb:hover{background:linear-gradient(#6d22d0,#00a8b0)}.tt-grid-wrapper::-webkit-scrollbar-corner{background:#f1f5f9}.tt-grid{background:#fff;border:1px solid #0000000d;border-radius:12px;min-width:800px;display:grid;overflow:hidden;box-shadow:0 10px 30px -10px #00000014}.tt-grid-header{display:contents}.tt-corner-cell{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8fafc66;border-bottom:1px solid #00000008;border-right:1px solid #00000008;padding:.8rem}.tt-day-header{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:#475569;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8fafc66;border-bottom:1px solid #00000008;border-right:1px solid #00000008;padding:.85rem .5rem;font-size:.75rem;font-weight:700}.tt-period-label{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8fafc66;border-bottom:1px solid #00000008;border-right:1px solid #00000008;flex-direction:column;justify-content:flex-start;min-width:100px;padding:.65rem .85rem;display:flex}.tt-period-label .period-name{color:#1e293b;white-space:nowrap;font-size:.72rem;font-weight:700}.tt-period-label .period-time{color:#3b82f6;margin-top:.15rem;font-size:.65rem;font-weight:500}.tt-break-row{background:repeating-linear-gradient(-45deg,#f1f5f966,#f1f5f966 10px,#f8fafc99 10px 20px);border-bottom:1px solid #00000008;border-right:1px solid #00000008;justify-content:center;align-items:center;display:flex;position:relative;overflow:visible}.tt-break-label{color:#64748b;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;z-index:10;background:#fff;border:1px solid #0000000d;border-radius:999px;padding:4px 16px;font-size:.68rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000000d}.tt-cell{background:#fff;border-bottom:1px solid #00000008;border-right:1px solid #00000008;min-height:85px;padding:6px;transition:background .12s;position:relative}.tt-cell.drag-over{background:#4f46e50f}.tt-cell-empty{cursor:pointer;color:#94a3b8;border:1.5px dashed #cbd5e1;border-radius:6px;justify-content:center;align-items:center;height:100%;min-height:100%;transition:all .15s;display:flex}.tt-cell-empty:hover{color:#4f46e5;background:#4f46e50a;border-color:#4f46e5}.tt-card{cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;justify-content:center;gap:3px;height:100%;min-height:55px;padding:6px 8px;transition:all .2s;display:flex;position:relative}.tt-card:active{cursor:grabbing}.tt-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000000f}.tt-card.dragging{opacity:.6;transform:scale(.97)}.tt-card-subject{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:700;overflow:hidden}.tt-card-teacher{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.7rem;overflow:hidden}.tt-card-room{color:var(--text-secondary);background:#0000000a;border-radius:4px;align-self:flex-start;padding:2px 6px;font-size:.63rem}.tt-card-actions{opacity:1;gap:.2rem;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.tt-card:hover .tt-card-actions,.tt-card.locked .tt-card-actions{opacity:1}.tt-card-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffc;border:1px solid #0000000d;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;transition:all .15s;display:flex}.tt-card-btn svg{margin:auto;display:block}.tt-card-btn:hover{color:var(--text-primary);background:#fff;transform:scale(1.05);box-shadow:0 2px 6px #0000001a}.tt-card-btn.delete:hover{color:#ef4444;background:#ef44441a;border-color:#ef444433}.tt-card.conflict{border:2px solid #ef4444;box-shadow:0 0 8px #ef44444d}.subject-color-0{background:linear-gradient(135deg,#3b82f6,#2563eb)}.subject-color-1{background:linear-gradient(135deg,#10b981,#059669)}.subject-color-2{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.subject-color-3{background:linear-gradient(135deg,#f59e0b,#d97706)}.subject-color-4{background:linear-gradient(135deg,#ef4444,#dc2626)}.subject-color-5{background:linear-gradient(135deg,#06b6d4,#0891b2)}.subject-color-6{background:linear-gradient(135deg,#ec4899,#db2777)}.subject-color-7{background:linear-gradient(135deg,#14b8a6,#0d9488)}.subject-color-8{background:linear-gradient(135deg,#f97316,#ea580c)}.subject-color-9{background:linear-gradient(135deg,#22c55e,#16a34a)}.subject-color-10{background:linear-gradient(135deg,#a855f7,#9333ea)}.subject-color-11{background:linear-gradient(135deg,#6366f1,#4f46e5)}.tt-conflict-panel{border-left:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;flex-shrink:0;width:280px;transition:width .25s;display:flex;overflow:hidden}.tt-conflict-panel.hidden{width:0}.tt-conflict-header{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);justify-content:space-between;align-items:center;padding:.85rem 1rem;font-size:.82rem;font-weight:700;display:flex}.tt-conflict-list{scrollbar-width:none;flex:1;padding:.5rem;overflow-y:auto}.tt-conflict-list::-webkit-scrollbar{display:none}.tt-conflict-item{border-radius:var(--radius-sm);background:#ef444412;border:1px solid #ef444433;margin-bottom:.4rem;padding:.65rem .75rem}.tt-conflict-type{letter-spacing:.06em;text-transform:uppercase;color:#ef4444;margin-bottom:.2rem;font-size:.66rem;font-weight:700}.tt-conflict-desc{color:var(--text-secondary);font-size:.74rem;line-height:1.4}.tt-conflict-meta{color:var(--text-secondary);opacity:.7;margin-top:.2rem;font-size:.67rem}.tt-no-conflicts{text-align:center;color:var(--text-secondary);padding:2rem 1rem;font-size:.8rem}.tt-no-conflicts svg{color:#10b981;margin-bottom:.5rem}.tt-status-bar{background:var(--bg-base);border-top:1px solid var(--border-subtle);color:var(--text-secondary);flex-shrink:0;align-items:center;gap:1.5rem;padding:.35rem 1.25rem;font-size:.72rem;display:flex}.tt-status-item{align-items:center;gap:.3rem;display:flex}.tt-empty{height:100%;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.tt-empty h3{color:var(--text-primary);margin:0;font-size:1.1rem}.tt-empty p{max-width:300px;margin:0;font-size:.85rem}.tt-generating-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#ffffffd9;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:absolute;inset:0}.tt-generating-overlay p{color:var(--text-primary);font-size:.9rem;font-weight:600}@media print{.tt-toolbar,.tt-conflict-panel,.tt-status-bar,.tt-card-delete{display:none!important}.tt-studio{height:auto}.tt-grid-wrapper{overflow:visible}.tt-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (width<=900px){.tt-body{flex-direction:column}.tt-conflict-panel{border-left:none;border-top:1px solid var(--border-subtle);width:100%;max-height:250px}.tt-conflict-panel.hidden{width:100%;max-height:0}.tt-grid-wrapper{padding:.5rem}}.tt-panel-scroll{scrollbar-width:thin;flex:1;padding:1.25rem;overflow-y:auto}.tt-verify-panel{max-width:760px}.tt-verify-header{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.6rem;font-size:.88rem;font-weight:700;display:flex}.tt-verify-list{flex-direction:column;gap:.35rem;display:flex}.tt-verify-item{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);overflow:hidden}.tt-verify-item.ok{border-color:#10b98140}.tt-verify-item.hard{background:#ef44440d;border-color:#ef444459}.tt-verify-item.soft{background:#f59e0b0a;border-color:#f59e0b4d}.tt-verify-row{cursor:pointer;align-items:center;gap:.6rem;padding:.55rem .75rem;transition:background .12s;display:flex}.tt-verify-row:hover{background:#00000008}.tt-verify-icon{font-size:.85rem}.tt-verify-count{min-width:32px;color:var(--text-secondary);font-size:.72rem;font-weight:700}.tt-verify-desc{color:var(--text-primary);flex:1;font-size:.78rem}.tt-verify-details{color:var(--text-secondary);border-top:1px solid var(--border-subtle);flex-direction:column;gap:.15rem;padding:.4rem .75rem .55rem 2.5rem;font-size:.7rem;display:flex}.tt-constraint-panel{max-width:700px}.tt-constraint-form{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:1rem;padding:1rem}.tt-form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;font-size:.72rem;font-weight:600;display:block}.tt-subject-chips{flex-wrap:wrap;gap:.4rem;margin-top:.25rem;display:flex}.tt-chip{border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:.25rem .6rem;font-size:.72rem;transition:all .12s}.tt-chip.selected{color:#fff;background:#6366f133;border-color:#6366f1}.tt-chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.tt-constraint-list{flex-direction:column;gap:.5rem;display:flex}.tt-constraint-item{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.65rem .85rem}.tt-constraint-type{color:var(--text-primary);margin-bottom:.2rem;font-size:.74rem;font-weight:600}.tt-constraint-subjects{color:var(--text-secondary);font-size:.7rem}.tt-importance-badge{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.15rem .45rem;font-size:.64rem;font-weight:700}.tt-sub-panel{flex-direction:column;gap:1rem;max-width:680px;display:flex}.tt-sub-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1rem}.tt-sub-slot{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;margin-top:.4rem;padding:.55rem .75rem;transition:all .12s}.tt-sub-slot:hover{background:#6366f10d;border-color:#6366f1}.tt-sub-slot.selected{background:#6366f11f;border-color:#6366f1}.tt-sub-teacher{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-top:.4rem;padding:.5rem .75rem;display:flex}.tt-sub-teacher.busy{opacity:.5}.tt-sub-log-item{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-top:.4rem;padding:.55rem .75rem}.tt-icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem;transition:color .12s}.tt-icon-btn:hover{color:var(--text-primary)}.tt-badge-dot{color:#fff;background:#ef4444;border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;margin-left:3px;font-size:.58rem;font-weight:700;display:inline-flex}.tt-settings-panel{flex-direction:column;gap:1.25rem;max-width:720px;display:flex}.tt-settings-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.1rem 1.25rem}.tt-settings-section-title{color:var(--text-primary);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.84rem;font-weight:700;display:flex}.tt-settings-hint{color:var(--text-secondary);margin-top:.65rem;font-size:.72rem}.tt-day-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.tt-day-chip{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-base);color:var(--text-secondary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;padding:.55rem .2rem;font-family:inherit;transition:all .15s;display:flex}.tt-day-chip:hover{color:var(--text-primary);background:#6366f10f;border-color:#6366f1}.tt-day-chip.selected{color:#a5b4fc;background:#6366f12e;border-color:#6366f1}.tt-day-chip-name{letter-spacing:.03em;font-size:.65rem;font-weight:700}.tt-day-chip-short{display:none}@media (width<=680px){.tt-day-chip-name{display:none}.tt-day-chip-short{font-size:.7rem;font-weight:700;display:block}.tt-day-grid{grid-template-columns:repeat(4,1fr)}}.tt-period-table{flex-direction:column;gap:.3rem;display:flex}.tt-period-table-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-subtle);grid-template-columns:28px 1fr 90px 90px 90px 28px;gap:.4rem;padding:0 .25rem .35rem;font-size:.67rem;font-weight:700;display:grid}.tt-period-row{border-radius:var(--radius-sm);grid-template-columns:28px 1fr 90px 90px 90px 28px;align-items:center;gap:.4rem;padding:.25rem;transition:background .1s;display:grid}.tt-period-row:hover{background:#ffffff06}.tt-period-row.is-break{opacity:.7}.tt-period-row.is-break .tt-period-input{color:var(--text-secondary)}.tt-period-num{color:var(--text-secondary);text-align:center;font-size:.7rem;font-weight:700}.tt-period-input{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);width:100%;padding:.3rem .5rem;font-family:inherit;font-size:.75rem;transition:border-color .12s}.tt-period-input:focus{border-color:#6366f1;outline:none}.tt-period-input.time{padding:.28rem .3rem;font-size:.72rem}.tt-constraint-panel,.tt-verify-panel,.tt-substitution-panel,.tt-settings-panel{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);max-width:800px;height:auto;margin:1.5rem auto;padding:1.5rem}@media (width<=768px){.tt-constraint-panel,.tt-verify-panel,.tt-substitution-panel,.tt-settings-panel{margin:1rem;padding:1rem}}.tt-constraint-panel h3,.tt-verify-panel h3,.tt-substitution-panel h3,.tt-settings-panel h3{color:var(--text-primary);margin-bottom:1rem;font-size:1.2rem;font-weight:600}.tt-constraints-list,.tt-verify-results{flex-direction:column;gap:.75rem;display:flex}.tt-constraint-item,.tt-verify-item{border:1px solid var(--border-light);border-radius:var(--radius-md);background:#f8fafc;align-items:center;gap:1rem;padding:1rem;display:flex}.tt-constraint-item:hover,.tt-verify-item:hover{background:#f1f5f9}.tt-constraint-icon,.tt-verify-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.tt-constraint-icon.hard,.tt-verify-icon.error{color:#ef4444;background:#ef44441a}.tt-constraint-icon.soft,.tt-verify-icon.warning{color:#f59e0b;background:#f59e0b1a}.tt-verify-icon.success{color:#10b981;background:#10b9811a}.tt-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border-light);padding:.75rem 1.25rem}.tt-grid{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:var(--bg-surface);border:1px solid var(--border-light)}.tt-day-header,.tt-period-label,.tt-corner-cell{color:var(--text-secondary);background:#f8fafc}.tt-card{border-radius:var(--radius-sm);padding:.4rem .5rem;box-shadow:0 1px 3px #0000001a}.tt-card-subject{font-size:.8rem;font-weight:600}.tt-card-teacher{font-size:.7rem}.tt-constraint-panel,.tt-verify-panel,.tt-substitution-panel,.tt-settings-panel{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);max-width:800px;margin:1.5rem auto;padding:1.5rem}.tt-constraint-form{border:1px solid var(--border-light);border-radius:var(--radius-md);background:#f8fafc;margin-bottom:1.5rem;padding:1.25rem}.tt-chip{color:#64748b;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:.35rem .85rem;font-size:.8rem;transition:all .15s}.tt-chip.selected{color:#8b5cf6;background:#ede9fe;border-color:#8b5cf6;font-weight:600}.tt-constraint-item,.tt-verify-item{border:1px solid var(--border-light);border-radius:var(--radius-md);background:#f8fafc;align-items:center;gap:1rem;margin-bottom:.75rem;padding:1rem;display:flex}.tt-constraint-icon,.tt-verify-icon{color:#8b5cf6;background:#f1f5f9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.tt-constraint-details,.tt-verify-details{flex:1}.tt-constraint-name,.tt-verify-message{color:var(--text-primary);margin-bottom:.25rem;font-size:.95rem;font-weight:600}.tt-constraint-desc,.tt-verify-sub{color:var(--text-secondary);font-size:.85rem}.btn-purple{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#8b5cf6;border:none;padding:.6rem 1.2rem;font-size:.85rem;font-weight:600;transition:opacity .15s}.btn-purple:hover{opacity:.9}.btn-white{color:var(--text-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;background:#fff;padding:.6rem 1.2rem;font-size:.85rem;font-weight:500;transition:all .15s}.btn-white:hover{border-color:var(--border-strong);color:var(--text-primary)}.tt-importance-badge{text-transform:uppercase;border-radius:999px;padding:.2rem .5rem;font-size:.65rem;font-weight:700}.tt-importance-badge.normal{color:#4f46e5;background:#e0e7ff}.tt-importance-badge.high{color:#ef4444;background:#fee2e2}.tt-importance-badge.low{color:#64748b;background:#f1f5f9}@media (width<=768px){.tt-toolbar{flex-direction:column;align-items:stretch;gap:.4rem;padding:.4rem .6rem}.tt-toolbar-group{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:.25rem;overflow:auto hidden}.tt-toolbar-group::-webkit-scrollbar{display:none}.tt-view-btn{white-space:nowrap;flex-shrink:0;padding:.3rem .65rem;font-size:.72rem}.tt-toolbar-divider{width:100%;height:1px;margin:.1rem 0}.tt-segmented{justify-content:center;width:100%}.tt-seg-btn{flex:1;justify-content:center;padding:.35rem .5rem;font-size:.78rem}.tt-generate-btn,.tt-print-btn{padding:.35rem .75rem!important;font-size:.75rem!important}.tt-lock-label{font-size:.72rem}.tt-status-bar{flex-wrap:wrap;gap:.4rem .75rem;padding:.3rem .75rem;font-size:.68rem}.tt-hint-text{display:none!important}.tt-grid-wrapper{padding:.4rem .5rem}.tt-period-label{min-width:64px;padding:.35rem .4rem}.tt-studio{height:auto;min-height:calc(100dvh - 56px);overflow-y:auto}}@media (width<=480px){.tt-toolbar{gap:.3rem;padding:.3rem .4rem}.tt-view-btn{padding:.25rem .5rem;font-size:.68rem}.tt-generate-btn,.tt-print-btn{padding:.3rem .6rem!important;font-size:.7rem!important}.tt-status-bar{padding:.25rem .5rem}.tt-status-item{font-size:.65rem}.tt-badge-dot{width:13px;height:13px;font-size:.52rem}}.tt-export-dropdown{display:block}.tt-export-backdrop,.tt-export-sheet{display:none}@media (width<=768px){.tt-toolbar{flex-direction:column}.tt-export-dropdown{display:none!important}.tt-export-backdrop{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;animation:.2s fadeIn;display:block;position:fixed;inset:0}.tt-export-sheet{z-index:201;background:#fff;border-radius:20px 20px 0 0;padding:1rem 1.25rem 2rem;animation:.25s cubic-bezier(.34,1.56,.64,1) slideUpSheet;display:block;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 40px #00000026}.tt-sheet-item{cursor:pointer;color:#1e293b;text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:.75rem;width:100%;margin-bottom:.4rem;padding:.85rem 1rem;font-size:.9rem;font-weight:500;transition:background .15s;display:flex}.tt-sheet-item:hover{background:#f1f5f9}.tt-sheet-cancel{cursor:pointer;color:#64748b;background:0 0;border:1.5px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;width:100%;margin-top:.5rem;padding:.85rem;font-size:.9rem;font-weight:600;transition:background .15s;display:flex}.tt-sheet-cancel:hover{background:#f1f5f9}.tt-tab-scroll-row{background:#f8fafc;border-bottom:1px solid #e2e8f0;gap:.3rem;padding:.2rem .5rem}.tt-view-btn{white-space:nowrap;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:999px;flex-shrink:0;padding:.25rem .6rem;font-size:.72rem;font-weight:600;transition:all .2s;box-shadow:0 1px 3px #0000000a}.tt-view-btn.active{background:linear-gradient(135deg,#7d2ae8,#6366f1);border-color:#0000;box-shadow:0 4px 12px #7d2ae840;color:#fff!important}.tt-view-btn.active svg{color:#fff!important}.tt-controls-row{grid-template-columns:1fr 1fr;grid-auto-flow:dense;background:#fff;gap:.4rem;padding:.5rem;display:grid}.tt-controls-row>.tt-toolbar-divider{display:none}.tt-controls-row>.tt-segmented{background:#f1f5f9;border-radius:12px;grid-column:span 2;padding:4px}.tt-seg-btn{border-radius:8px;padding:.5rem}.tt-seg-btn.active{background:#fff;box-shadow:0 2px 6px #0000000f}.tt-controls-row>div[style*=minWidth]{flex:none!important;min-width:0!important;max-width:none!important}.tt-conflict-badge,.tt-controls-row>span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;grid-column:span 2;justify-content:center;padding:.6rem}.tt-controls-row>div[title="Toggle Master Lock"]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;grid-column:span 2;justify-content:space-between!important;padding:.6rem 1rem!important}.tt-generate-btn{border-radius:12px;grid-column:span 2;justify-content:center;box-shadow:0 4px 12px #7d2ae833;padding:.75rem!important;font-size:.9rem!important}.tt-print-btn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;padding:.6rem;font-weight:600}.tt-controls-row>div[style*="position: relative"],.tt-controls-row>div[style*="position: relative"]>.tt-print-btn{width:100%}}@media (width<=420px){.tt-view-btn{padding:.4rem .75rem;font-size:.75rem}.tt-controls-row{gap:.5rem;padding:.6rem}}@keyframes slideUpSheet{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.hover-lift{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1),border-color .4s cubic-bezier(.16,1,.3,1)!important}.hover-lift:hover{border-color:var(--brand-primary);transform:translateY(-8px)scale(1.01);box-shadow:0 20px 40px -10px #4f46e540}.hover-lift.pro-hover:hover{border-color:var(--brand-secondary);box-shadow:0 20px 40px -10px #0ea5e94d}:root{--bg-base:#f1f5f9;--bg-surface:#fff;--bg-surface-hover:#f8fafc;--border-light:#e2e8f0;--border-strong:#cbd5e1;--text-primary:#0f172a;--text-secondary:#475569;--brand-primary:#7d2ae8;--brand-secondary:#00c4cc;--brand-gradient:linear-gradient(135deg, var(--brand-secondary), var(--brand-primary));--brand-gradient-hover:linear-gradient(135deg, #00b0b8, #6d22d1);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-glow:0 0 20px -5px #7d2ae866}*{box-sizing:border-box;margin:0;padding:0}::-webkit-scrollbar{display:none}html{scrollbar-width:none;-ms-overflow-style:none}body{background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100vh;margin:0;padding:0;font-family:Roboto,Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;overflow:hidden}#root{width:100%;height:100vh;display:flex;overflow:hidden}.app-layout{background:var(--bg-base);width:100%;height:100vh;display:flex;overflow:hidden}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.auth-layout{background:var(--bg-base);position:relative;overflow:hidden}.auth-panel.glass-panel{-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-light);box-shadow:var(--shadow-md);color:var(--text-primary);background:#ffffffd9}.auth-panel .brand-title{-webkit-text-fill-color:var(--text-primary);color:var(--text-primary);text-shadow:none;background:0 0;-webkit-background-clip:border-box;background-clip:border-box}.auth-panel label,.auth-panel p,.auth-panel .text-secondary{text-shadow:none;font-weight:500;color:var(--text-secondary)!important}.primary-btn,.secondary-btn,.nav-link{text-decoration:none!important}.nav-link{color:var(--text-secondary);font-size:.95rem;font-weight:500;transition:color .2s;position:relative}.nav-link:after{content:"";background:var(--brand-gradient);width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.nav-link:hover{color:var(--text-primary)}.nav-link:hover:after{width:100%}.slim-btn{border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.35rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.modern-login-btn{border-radius:var(--radius-full);border:1px solid var(--border-strong);color:var(--text-primary);background:0 0;padding:.45rem 1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .2s}.modern-login-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary);background:#7d2ae80d}.slim-btn.large{padding:.6rem 1.5rem;font-size:.95rem}.slim-btn.block{display:flex}.slim-btn.primary{background:var(--brand-primary);color:#fff}.slim-btn.primary:hover{background:#4338ca;transform:translateY(-2px)}.slim-btn.primary.glow{box-shadow:0 0 20px #4f46e566}.slim-btn.primary.glow:hover{box-shadow:0 0 30px #4f46e599}.slim-btn.secondary{background:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text-primary)}.slim-btn.secondary:hover{background:var(--bg-base);border-color:var(--brand-primary);transform:translateY(-2px)}.auth-panel input:-webkit-autofill{-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff!important}.auth-panel input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff!important}.auth-panel input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff!important}.auth-panel input:-webkit-autofill:active{-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff!important}.auth-panel .secondary-btn{color:var(--text-primary);border-color:var(--border-strong)}.auth-panel .secondary-btn:hover{background:var(--bg-base);border-color:var(--brand-primary)}.data-table-container{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);width:100%;overflow-x:auto}.data-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:2px solid var(--border-subtle);background:var(--bg-surface);padding:1rem;font-size:.75rem;font-weight:600}.data-table td{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding:1rem;font-size:.875rem;transition:background .2s}.data-table tbody tr:last-child td{border-bottom:none}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.modal-content{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);width:100%;max-width:500px;max-height:90vh;padding:2rem;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;position:relative;box-shadow:0 25px 50px -12px #00000080;scrollbar-width:none!important;-ms-overflow-style:none!important;overflow-y:auto!important}.modal-content::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-right:1.5rem;display:flex}.modal-title{font-size:1.25rem;font-weight:600}.close-btn{background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.modal-header .close-btn{position:absolute;top:1rem;right:1rem}.close-btn:hover{color:#ef4444;background:#ef44441a;border-color:#ef444433;transform:rotate(90deg)}.form-group{margin-bottom:1rem}.form-label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;display:block}.form-input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);width:100%;color:var(--text-primary);outline:none;padding:.75rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 2px #7d2ae833}input:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff!important}input:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff!important}input:-webkit-autofill:active{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff!important}input:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:inset 0 0 0 30px #fff,0 0 0 2px #7d2ae833!important}.search-input{border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--bg-surface);width:100%;color:var(--text-primary);outline:none;padding:.75rem 1rem .75rem 2.5rem;transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 2px #7d2ae833}.form-actions{justify-content:flex-end;gap:1rem;margin-top:2rem;display:flex}.toggle-switch{width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--border-strong);border-radius:24px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px;box-shadow:0 2px 4px #0003}input:checked+.toggle-slider{background-color:var(--brand-primary)}input:checked+.toggle-slider:before{transform:translate(20px)}.secondary-btn{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;padding:.5rem 1rem;font-weight:500;transition:all .2s}.secondary-btn:hover{background:var(--bg-base)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.hamburger-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:8px;margin-left:auto;padding:.35rem;transition:background .15s;display:none}.hamburger-btn:hover{background:var(--bg-base)}.mobile-nav-drawer{background:var(--bg-surface);border-bottom:1px solid var(--border-light);z-index:90;flex-direction:column;gap:.15rem;padding:.5rem .75rem;display:none;box-shadow:0 4px 16px -4px #0000001a}.mobile-nav-item{color:var(--text-secondary);border-radius:10px;align-items:center;gap:.75rem;padding:.65rem .85rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.mobile-nav-item:hover,.mobile-nav-item.active{color:var(--brand-primary);background:#7d2ae814}.desktop-nav{display:flex}.username-label{color:var(--text-primary);font-size:.88rem;font-weight:500}.top-nav-btn{color:var(--text-secondary);border-radius:var(--radius-full);white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.top-nav-btn:hover{color:var(--brand-primary);background:var(--bg-surface-hover)}.top-nav-btn.active{color:var(--brand-primary);background:#4f46e51a}.main-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border-light);background:var(--bg-surface);z-index:5;justify-content:flex-end;align-items:center;height:70px;padding:0 2rem;display:flex}.user-profile{align-items:center;gap:.75rem;font-size:.875rem;font-weight:500;display:flex}.avatar{background:var(--brand-gradient);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:600;display:flex}.content-wrapper{scrollbar-gutter:stable;flex:1;padding:1rem 2rem 2rem;overflow-y:auto}.content-wrapper.no-padding{padding:0;overflow:hidden}.page-container{max-width:100%;margin:0 auto;animation:.4s ease-out fadeIn}.page-header{margin-bottom:1rem}.page-title{letter-spacing:-.02em;margin-bottom:.5rem;font-size:1.875rem;font-weight:600}.page-subtitle{color:var(--text-secondary);font-size:.95rem}.glass-panel{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.primary-btn{background:var(--brand-gradient);color:#fff;border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s;display:inline-flex}.primary-btn:hover:not(:disabled){background:var(--brand-gradient-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.primary-btn:disabled{opacity:.7;cursor:not-allowed}.secondary-btn{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s;display:inline-flex}.secondary-btn:hover:not(:disabled){background:var(--bg-base);border-color:var(--text-secondary);transform:translateY(-1px)}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:flex-start;gap:1rem;padding:1.5rem;transition:transform .2s,border-color .2s;display:flex}.stat-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-md);background:var(--bg-base);border:1px solid var(--border-light);width:48px;height:48px;color:var(--brand-primary);justify-content:center;align-items:center;display:flex}.stat-content h3{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:500}.stat-content p{color:var(--text-primary);font-size:1.5rem;font-weight:700}.stat-card.modern{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-light);background:#ffffffb3;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 24px #0000000a}.stat-card.modern:hover{border-color:#7d2ae833;transform:translateY(-5px);box-shadow:0 12px 32px #7d2ae81f}.stat-icon.modern{width:56px;height:56px;color:var(--brand-primary);background:#7d2ae814;border:none;border-radius:16px;justify-content:center;align-items:center;display:flex}.stat-content.modern h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.95rem;font-weight:600}.stat-content.modern p{background:var(--brand-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.25rem;font-weight:800;line-height:1}.quick-actions{flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;display:flex}.step-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-light);border-radius:var(--radius-lg);background:#ffffffb3;align-items:flex-start;gap:1rem;padding:1.5rem;transition:transform .2s;display:flex}.step-card:hover{border-color:#00c4cc4d;transform:translateY(-2px)}.step-icon{width:40px;height:40px;color:var(--brand-secondary);background:#00c4cc1a;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.form-row{gap:1rem;display:flex}@media (width<=768px){.form-row{flex-direction:column;gap:0}.form-row>.form-group{width:100%!important}.stat-card{text-align:center;flex-direction:column;align-items:center}.content-wrapper{padding:1rem}.page-header{flex-direction:column;gap:1rem;align-items:flex-start!important}.page-header>button{justify-content:center;width:100%}.primary-btn{padding:.4rem 1rem!important;font-size:.85rem!important}.slim-btn{padding:.35rem .85rem!important;font-size:.85rem!important}.slim-btn.large{padding:.5rem 1.25rem!important;font-size:.9rem!important}.landing-nav{flex-direction:column!important;padding:.75rem 1rem!important}.landing-nav-header{width:100%;justify-content:space-between!important}.mobile-menu-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:.25rem;display:block!important}.landing-nav img{transform-origin:0!important;transform:scale(1.1)!important}.landing-nav-links{flex-direction:column;width:100%;padding-top:1rem;padding-bottom:.5rem;gap:1rem!important;display:none!important}.landing-nav-links.open{display:flex!important}}.landing-nav-header{align-items:center;gap:.75rem;display:flex}.mobile-menu-btn{display:none}.hero-section{text-align:center;flex-direction:column;align-items:center;width:100%;margin:0 auto;padding:12rem 2rem 8rem;display:flex;position:relative}.hero-section:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#00000009 1px,#0000 1px),linear-gradient(#00000009 1px,#0000 1px);background-position:top;background-size:50px 50px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 15% 85%,#0000);mask-image:linear-gradient(#0000,#000 15% 85%,#0000)}.hero-section>*{z-index:1;position:relative}@media (width<=768px){.hero-section{padding:7rem 1.5rem 4rem!important}}.data-table-container{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:none;margin-top:1.5rem;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{color:#475569;border:1px solid var(--border-light);text-transform:uppercase;letter-spacing:.05em;background:#fff;padding:1rem 1.25rem;font-size:.75rem;font-weight:700}.data-table td{border:1px solid var(--border-light);color:#1e293b;background:#fff;padding:.85rem 1.25rem;font-size:.95rem}.data-table tbody tr:nth-child(odd) td{background:#f8fafc}.data-table tbody tr:hover td{background:#f1f5f9}.action-edit-btn{color:#3b82f6;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;align-items:center;gap:.35rem;padding:.5rem .85rem;font-size:.85rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.action-edit-btn:hover{color:#fff;background:#3b82f6;border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 6px -1px #3b82f633}.action-delete-btn{color:#ef4444;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;align-items:center;gap:.35rem;padding:.5rem .85rem;font-size:.85rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.action-delete-btn:hover{color:#fff;background:#ef4444;border-color:#ef4444;transform:translateY(-1px);box-shadow:0 4px 6px -1px #ef444433}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton-box{background:var(--border-light);background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 20% 60%,#fff0);background-size:2000px 100%;border-radius:4px;animation:2s linear infinite shimmer}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.skeleton-pulse{background-color:var(--border-light);animation:2s cubic-bezier(.4,0,.6,1) infinite skeleton-pulse}@media (width<=1024px){.topbar{height:58px;padding:0 1rem}.top-nav-btn span{display:none}.top-nav-btn{gap:0;min-width:34px;padding:.45rem .6rem}.content-wrapper{padding:1rem 1.25rem}.content-wrapper.no-padding{padding:0}.page-title{font-size:1.5rem}.tt-studio{height:calc(100vh - 58px)}.data-table-container{overflow-x:auto}.form-row{flex-wrap:wrap}.form-row>.form-group{flex:200px;min-width:200px}.modal-content{margin:1rem;max-width:90vw!important}}@media (width<=768px){.hamburger-btn{justify-content:center;align-items:center;display:flex}.desktop-nav{display:none!important}.mobile-nav-drawer{display:flex}.topbar{flex-wrap:nowrap;gap:.5rem;height:auto;min-height:52px;padding:.4rem .75rem}.brand-title img{height:26px!important;transform:none!important}.username-label{display:none}.avatar{font-size:.8rem;width:32px!important;height:32px!important}.content-wrapper{padding:.75rem}.content-wrapper.no-padding{padding:0}.page-title{font-size:1.2rem}.page-header{flex-direction:column;align-items:stretch;gap:.5rem}.page-header>button,.page-header>.primary-btn{width:100%}.stat-card{flex-direction:column;align-items:flex-start;padding:.85rem}.stat-card .stat-icon{width:36px;height:36px}.stat-card .stat-value{font-size:1.3rem}.data-table-container{border-radius:8px;overflow-x:auto}.data-table th,.data-table td{padding:.55rem .6rem;font-size:.78rem}.action-edit-btn,.action-delete-btn{padding:.3rem .5rem;font-size:.75rem}.form-row{flex-direction:column;gap:0}.form-row>.form-group{width:100%!important}.modal-content{margin:.5rem;max-width:95vw!important;padding:1rem!important}.modal-title{font-size:1rem!important}.form-actions{flex-direction:column-reverse;gap:.5rem}.form-actions>button{width:100%}.primary-btn,.secondary-btn{padding:.5rem 1rem!important;font-size:.84rem!important}.user-profile .glass-panel{min-width:calc(100vw - 1.5rem)!important;right:-.5rem!important}}@media (width<=480px){.topbar{padding:.3rem .5rem}.avatar{font-size:.72rem;width:28px!important;height:28px!important}.page-title{font-size:1.05rem}.modal-content{margin:0;border-radius:10px!important;max-width:100vw!important}}
