*{box-sizing:border-box}html,body{margin:0;padding:0;background:#f5f7fb;font-family:Arial,Helvetica,sans-serif;color:#1f2937}.admin-layout{min-height:100vh;display:flex;flex-direction:column;background:#f5f7fb}.admin-header{background:#fff;border-bottom:1px solid #e5e7eb}.admin-content{flex:1;padding:24px}.dashboard-page{width:100%}.description-field{min-width:0;color:#314d72;font-weight:700}.description-field>label{display:block}.tutorial-description-toolbar{display:flex;gap:6px;margin-top:8px;padding:6px;border:1px solid #cfd8e3;border-bottom:0;border-radius:10px 10px 0 0;background:#f5f8fc}.tutorial-description-toolbar button{width:32px;height:30px;border:1px solid #cfd8e3;border-radius:6px;background:#fff;color:#183153;cursor:pointer}.description-editor{min-height:140px;padding:12px 14px;border:1px solid #cfd8e3;border-radius:0 0 10px 10px;color:#1f2937;font-weight:400;line-height:1.6;overflow-wrap:anywhere;outline-color:#4779bd}.description-editor:empty:before{color:#8794a5;content:"Write a description...";pointer-events:none}app-tutorial .tutorial-code{background:#fff;color:#000}app-tutorial .tutorial-code code.language-java{padding:0;background:transparent;color:inherit;text-shadow:none}app-tutorial .tutorial-code .token.comment,app-tutorial .tutorial-code .token.prolog,app-tutorial .tutorial-code .token.doctype{color:#8c8c8c;font-style:italic}app-tutorial .tutorial-code .token.keyword,app-tutorial .tutorial-code .token.class-name,app-tutorial .tutorial-code .token.builtin{color:#0033b3}app-tutorial .tutorial-code .token.string,app-tutorial .tutorial-code .token.char{color:#067d17}app-tutorial .tutorial-code .token.number,app-tutorial .tutorial-code .token.boolean{color:#1750eb}app-tutorial .tutorial-code .token.function{color:#7a7a43}app-tutorial .tutorial-code .token.annotation{color:#9e880d}app-tutorial .tutorial-code .token.operator,app-tutorial .tutorial-code .token.punctuation{color:#000}app-admin-tutorial-step .tutorial-step-text-preview{color:#334155;line-height:1.6}app-admin-tutorial-step .tutorial-step-code-preview{overflow-x:auto;padding:14px;border-radius:8px;background:#17212f;color:#e2e8f0;font:13px/1.6 Consolas,Courier New,monospace;white-space:pre}app-admin-tutorial-step .tutorial-step-image-preview{display:block;max-width:100%;max-height:320px;margin-top:14px;border-radius:8px;object-fit:contain;object-position:left center}.page-header{margin-bottom:24px}.page-header h2{margin:0 0 8px;font-size:32px;font-weight:700;color:#0f172a}.page-header p{margin:0;font-size:15px;color:#64748b}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:22px;box-shadow:0 8px 24px #0f172a0f}.stat-card h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#475569}.stat-card p{margin:0;font-size:34px;font-weight:700;color:#0f172a}.stat-card.pending{border-left:5px solid #f59e0b}.stat-card.approved{border-left:5px solid #22c55e}.stat-card.rejected{border-left:5px solid #ef4444}.toolbar{display:flex;gap:14px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.toolbar input,.toolbar select{height:46px;padding:0 14px;border:1px solid #d1d5db;border-radius:12px;background:#fff;font-size:15px;outline:none}.toolbar input{flex:1;min-width:260px}.toolbar select{min-width:180px}.table-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 8px 24px #0f172a0f;overflow:hidden}.table-header{padding:20px 24px;border-bottom:1px solid #e5e7eb}.table-header h3{margin:0;font-size:24px;font-weight:700;color:#0f172a}.table-wrapper{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse}thead{background:#f8fafc}thead th{text-align:left;padding:16px 20px;font-size:15px;font-weight:700;color:#334155;border-bottom:1px solid #e5e7eb;white-space:nowrap}tbody td{padding:18px 20px;font-size:15px;color:#1f2937;border-bottom:1px solid #eef2f7;vertical-align:middle}tbody tr:hover{background:#f8fafc}.status-badge{display:inline-block;padding:7px 14px;border-radius:999px;font-size:12px;font-weight:700;text-transform:uppercase}.status-badge.pending{background:#fff7ed;color:#c2410c}.status-badge.approved{background:#f0fdf4;color:#15803d}.status-badge.rejected{background:#fef2f2;color:#b91c1c}.action-cell{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.approve-btn,.reject-btn,.update-btn,.delete-btn{border:none;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:.2s ease}.approve-btn{background:#dcfce7;color:#166534}.approve-btn:hover{background:#bbf7d0}.reject-btn{background:#fee2e2;color:#991b1b}.reject-btn:hover{background:#fecaca}.update-btn{background:#dbeafe;color:#1d4ed8}.update-btn:hover{background:#bfdbfe}.delete-btn{background:#e5e7eb;color:#111827}.delete-btn:hover{background:#d1d5db}.table-input,.table-select{width:100%;min-width:120px;height:42px;padding:0 12px;border:1px solid #d1d5db;border-radius:10px;background:#fff;font-size:14px;outline:none}.empty-row{text-align:center;padding:24px;color:#64748b}@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.admin-content{padding:16px}.stats-grid{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch}.toolbar input,.toolbar select{width:100%}.page-header h2{font-size:26px}}
