.dev-admin,.dev-admin *,.dev-admin :before,.dev-admin :after{box-sizing:border-box}.dev-admin{color:#333}.dev-admin .page{max-width:1000px;margin:0 auto;padding:32px 24px}.dev-admin .stats-bar{flex-wrap:wrap;gap:14px;margin-bottom:32px;display:flex}.dev-admin .stat{text-align:center;background:#fff;border:1px solid #dce1e7;border-radius:8px;min-width:120px;padding:14px 22px}.dev-admin .stat .num{color:#232f3e;font-size:1.8rem;font-weight:700}.dev-admin .stat .lbl{color:#888;margin-top:2px;font-size:.73rem}.dev-admin .stat.s-dev .num{color:#6b7280}.dev-admin .stat.s-ready .num{color:#146eb4}.dev-admin .stat.s-prod .num{color:#2d7d32}.dev-admin .section-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.dev-admin .section-header h2{color:#232f3e;font-size:1rem;font-weight:700}.dev-admin .section-header .count{color:#555;background:#e8edf2;border-radius:20px;padding:2px 10px;font-size:.75rem;font-weight:600}.dev-admin .section-header .sp{flex:1}.dev-admin .cat-move{gap:4px;display:flex}.dev-admin .move-btn{color:#666;cursor:pointer;background:#fff;border:1px solid #d5dae1;border-radius:6px;padding:4px 8px;font-size:.78rem;line-height:1}.dev-admin .move-btn:hover:not(:disabled){color:#f90;border-color:#f90}.dev-admin .move-btn:disabled{opacity:.35;cursor:not-allowed}.dev-admin .divider{background:#dce1e7;height:1px;margin-bottom:18px}.dev-admin .section-block{margin-bottom:36px}.dev-admin .app-row{background:#fff;border:1px solid #dce1e7;border-radius:10px;align-items:center;gap:16px;margin-bottom:10px;padding:16px 20px;display:flex}.dev-admin .app-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;display:flex}.dev-admin .app-icon.orange{background:#fff3e0}.dev-admin .app-icon.blue{background:#e3f0ff}.dev-admin .app-icon.green{background:#e6f9ee}.dev-admin .app-icon.purple{background:#f0eaff}.dev-admin .app-icon.red{background:#ffeaea}.dev-admin .app-info{flex:1;min-width:0}.dev-admin .app-name{color:#232f3e;font-size:.95rem;font-weight:700}.dev-admin .app-desc{color:#888;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.78rem;overflow:hidden}.dev-admin .app-open{color:#146eb4;margin-top:3px;font-size:.75rem;text-decoration:none;display:inline-block}.dev-admin .app-open:hover{text-decoration:underline}.dev-admin .status-badge{white-space:nowrap;border-radius:12px;flex-shrink:0;padding:3px 10px;font-size:.72rem;font-weight:700}.dev-admin .badge-dev{color:#666;background:#f0f0f0}.dev-admin .badge-ready{color:#005a8e;background:#d0e8ff}.dev-admin .badge-prod{color:#1a5c32;background:#d4edda}.dev-admin .app-category{flex-shrink:0}.dev-admin .cat-select{color:#444;cursor:pointer;background:#f7f9fc;border:1px solid #d5dae1;border-radius:6px;max-width:140px;padding:4px 8px;font-size:.75rem}.dev-admin .cat-select:hover{border-color:#f90}.dev-admin .cat-select:focus{border-color:#f90;outline:none}.dev-admin .row-move{flex-direction:column;flex-shrink:0;gap:2px;display:flex}.dev-admin .row-move .move-btn{padding:2px 6px;font-size:.7rem}.dev-admin .app-actions{flex-shrink:0;gap:6px;display:flex}.dev-admin .btn-action{cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:5px 12px;font-size:.75rem;font-weight:600;transition:opacity .15s}.dev-admin .btn-action:hover{opacity:.85}.dev-admin .btn-complete{color:#fff;background:#146eb4}.dev-admin .btn-publish{color:#fff;background:#2d7d32}.dev-admin .btn-back{color:#666;background:0 0;border:1px solid #ccc!important}.dev-admin .btn-unpublish{color:#e53e3e;background:0 0;border:1px solid #e53e3e!important}.dev-admin .btn-back:hover,.dev-admin .btn-unpublish:hover{opacity:.75}.dev-admin .consultant-panel{background:#fff;border:1px solid #dce1e7;border-radius:10px;margin-bottom:36px;padding:20px 22px}.dev-admin .consultant-panel h2{color:#232f3e;margin-bottom:6px;font-size:1rem;font-weight:700}.dev-admin .consultant-panel .panel-desc{color:#666;margin-bottom:14px;font-size:.78rem;line-height:1.5}.dev-admin .consultant-cat-list{flex-wrap:wrap;gap:8px 14px;margin-bottom:14px;display:flex}.dev-admin .consultant-cat-list label{color:#333;cursor:pointer;background:#f9fafb;border:1px solid #dce1e7;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:.85rem;display:inline-flex}.dev-admin .consultant-cat-list label:hover{border-color:#f90}.dev-admin .btn-save{color:#fff;cursor:pointer;background:#f90;border:none;border-radius:6px;padding:8px 20px;font-size:.85rem;font-weight:700}.dev-admin .btn-save:hover{background:#e68a00}.dev-admin .btn-save:disabled{cursor:not-allowed;background:#ccc}.dev-admin .um-section-title{color:#555;margin-bottom:10px;font-size:.85rem;font-weight:700}.dev-admin .um-count{color:#555;background:#e8edf2;border-radius:20px;margin-left:4px;padding:1px 9px;font-size:.72rem}.dev-admin .um-empty{color:#aaa;padding:8px 0 16px;font-size:.85rem}.dev-admin .user-row{background:#fafbfc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:8px;padding:10px 14px}.dev-admin .user-row-main{justify-content:space-between;align-items:center;gap:12px;display:flex}.dev-admin .user-info{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.dev-admin .user-row-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.dev-admin .um-emp-select{flex-shrink:0;max-width:160px}.dev-admin .user-name{color:#232f3e;font-size:.9rem;font-weight:700}.dev-admin .user-email{color:#718096;font-size:.8rem}.dev-admin .user-date{color:#a0aec0;font-size:.72rem}.dev-admin .role-badge{border-radius:10px;padding:2px 8px;font-size:.72rem;font-weight:700}.dev-admin .role-admin{color:#7a4f00;background:#fff3cd}.dev-admin .role-editor{color:#1e40af;background:#dbeafe}.dev-admin .role-viewer{color:#4a5568;background:#e2e8f0}.dev-admin .role-consultant{color:#065f46;background:#d1fae5}.dev-admin .um-disabled{color:#c53030;border:1px solid #feb2b2;border-radius:8px;padding:1px 6px;font-size:.7rem}.dev-admin .approve-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.dev-admin .approve-pass{border:1px solid #cbd5e0;border-radius:6px;flex:1;min-width:160px;padding:5px 10px;font-size:.82rem}
.app-header{z-index:100;color:#fff;background:linear-gradient(90deg,#1b2533 0%,#232f3e 35% 65%,#1b2533 100%);flex-shrink:0;justify-content:space-between;align-items:center;height:54px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:inset 0 -1px #ff990059,0 4px 12px #00000059}.app-header .header-left{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.app-header .header-logo{color:#f90;letter-spacing:.6px;white-space:nowrap;flex-shrink:0;font-size:.85rem;font-weight:700;text-decoration:none;transition:color .15s}.app-header .header-logo:hover{color:#ffb84d}.app-header .header-sep{color:#4a5568;flex-shrink:0;font-size:.9rem}.app-header .header-title{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.95rem;font-weight:600;overflow:hidden}.app-header .header-subtitle{color:#aab7c4;font-size:.8rem;font-weight:500}@media (max-width:768px){.app-header{height:50px;padding:0 14px}.app-header .header-left{gap:8px}.app-header .header-logo{letter-spacing:.5px;font-size:.78rem}.app-header .header-sep{font-size:.82rem}.app-header .header-title{font-size:.85rem}.app-header .header-subtitle{display:none}}@media (max-width:480px){.app-header{height:46px;padding:0 10px}.app-header .header-logo{font-size:0;line-height:0}.app-header .header-logo:before{content:"ST";letter-spacing:1px;color:#f90;background:#ff99001f;border:1px solid #ff990073;border-radius:5px;padding:3px 7px;font-size:.72rem;font-weight:800;line-height:1;display:inline-block}.app-header .header-sep{display:none}.app-header .header-title{font-size:.82rem}}
