*{box-sizing:border-box;margin:0;padding:0;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif}body{color:#333;background-color:#f4f7f6}.flex{display:flex}.h-screen{height:100vh}.text-center{text-align:center}.login-wrap{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);justify-content:center;align-items:center;height:100vh;display:flex}.login-box{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:3rem 2rem;box-shadow:0 10px 25px #00000080}.login-title{color:#1e293b;text-align:center;margin-bottom:5px;font-size:24px;font-weight:700}.login-sub{color:#64748b;text-align:center;margin-bottom:25px;font-size:14px}.input-group{margin-bottom:15px}.input-group label{color:#475569;margin-bottom:5px;font-size:13px;font-weight:600;display:block}.input-group input{border:1px solid #cbd5e1;border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:14px;transition:all .3s}.input-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.btn-submit{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:6px;width:100%;margin-top:10px;padding:12px;font-weight:700;transition:all .3s}.btn-submit:hover{background:#2563eb}.error-msg{color:#b91c1c;text-align:center;background:#fee2e2;border-radius:6px;margin-bottom:15px;padding:10px;font-size:13px}.content-body{background:#f8fafc;flex:1;padding:30px;overflow-y:auto}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-bottom:30px;display:grid}.stat-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #e2e8f0cc;border-radius:16px;padding:24px;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000003}.stat-card:hover{transform:translateY(-3px);box-shadow:0 20px 25px -5px #0000001a}.stat-title{color:#64748b;text-transform:uppercase;letter-spacing:.5px;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:800;display:flex}.stat-value{color:#0f172a;letter-spacing:-.5px;font-size:28px;font-weight:900}.stat-sub{color:#475569;word-break:break-all;margin-top:8px;font-size:13px}.status-pill{border-radius:20px;align-items:center;gap:8px;padding:6px 14px;font-size:14px;font-weight:700;display:inline-flex}.status-pill.online{color:#166534;background:#dcfce3;border:1px solid #bbf7d0}.status-pill.offline{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.pulse-dot{width:12px;height:12px;display:flex;position:relative}.pulse-dot:before{content:"";opacity:.75;background-color:#4ade80;border-radius:50%;width:100%;height:100%;animation:1.5s cubic-bezier(0,0,.2,1) infinite pulse-ping;position:absolute}.pulse-dot:after{content:"";background-color:#22c55e;border-radius:50%;width:12px;height:12px;display:inline-flex;position:relative}@keyframes pulse-ping{75%,to{opacity:0;transform:scale(2.5)}}.sidebar{color:#fff;background:#1e293b;flex-direction:column;width:260px;display:flex}.sidebar-logo{letter-spacing:1px;color:#f8fafc;border-bottom:1px solid #334155;padding:20px;font-size:20px;font-weight:700}.sidebar-menu{flex:1;padding:20px 10px}.menu-item{color:#cbd5e1;cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:12px;margin-bottom:5px;padding:12px 15px;font-weight:600;transition:all .2s;display:flex}.menu-item:hover{color:#fff;background:#334155}.sidebar-footer{border-top:1px solid #334155;padding:20px}.btn-logout{color:#f87171;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;width:100%;padding:10px;font-size:15px;font-weight:700;transition:all .3s}.btn-logout:hover{background:#334155}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:15px 30px;display:flex}.user-badge{color:#4338ca;background:#e0e7ff;border-radius:20px;padding:6px 12px;font-size:13px;font-weight:700}.role-badge{color:#854d0e;text-transform:uppercase;background:#fef08a;border-radius:4px;margin-left:10px;padding:4px 8px;font-size:11px;font-weight:700}.terminal{background:#0f172a;border:1px solid #1e293b;border-radius:12px;flex-direction:column;height:450px;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.terminal-header{color:#cbd5e1;background:#1e293b;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:12px 20px;font-size:13px;font-weight:600;display:flex}.terminal-body{flex:1;padding:20px;font-family:JetBrains Mono,Courier New,monospace;font-size:13px;line-height:1.6;overflow-y:auto}.dots span{border-radius:50%;width:10px;height:10px;margin-left:6px;display:inline-block}.log-row{border-bottom:1px dashed #334155;margin-bottom:8px;padding-bottom:4px}.log-time{color:#38bdf8}.log-type{color:#c084fc;margin:0 10px;font-weight:700}.log-route{color:#f8fafc}.log-trunk{color:#fbbf24;margin-left:10px;font-size:11px}.status-ans{color:#4ade80;background:#4ade801a;border-radius:4px;margin-left:10px;padding:2px 6px;font-size:11px}.status-fail{color:#f87171;background:#f871711a;border-radius:4px;margin-left:10px;padding:2px 6px;font-size:11px}.menu-item.active{color:#fff;background:#3b82f6;border-left:none}.section-title{color:#1e293b;margin-bottom:20px;font-size:20px;font-weight:700}.table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:100%;overflow-x:auto;box-shadow:0 1px 3px #0000000d}.table{border-collapse:collapse;text-align:left;width:100%}.table th,.table td{border-bottom:1px solid #e2e8f0;padding:15px;font-size:14px}.table th{color:#475569;text-transform:uppercase;background:#f8fafc;font-size:12px;font-weight:700}.table tr:hover{background:#f1f5f9}.doc-box{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:20px;padding:25px;line-height:1.6}.doc-code{color:#38bdf8;background:#0f172a;border-radius:6px;margin:10px 0;padding:15px;font-family:monospace;font-size:13px;overflow-x:auto}.test-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:flex-start;gap:20px;padding:25px;display:flex}.test-form{flex:1}.test-result{color:#334155;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:6px;flex:1;min-height:150px;padding:15px;font-family:monospace;font-size:13px}.btn-edit{color:#fff;cursor:pointer;background:#eab308;border:none;border-radius:4px;margin-right:8px;padding:6px 12px;font-size:12px;font-weight:700}.btn-edit:hover{background:#ca8a04}.btn-delete{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:700}.btn-delete:hover{background:#dc2626}.badge-get{color:#fff;text-align:center;background:#10b981;border-radius:4px;width:55px;margin-right:10px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.badge-post{color:#fff;text-align:center;background:#3b82f6;border-radius:4px;width:55px;margin-right:10px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.inline-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:flex-end;gap:10px;margin-bottom:20px;padding:15px;display:flex}.inline-form .input-group{flex:1;margin-bottom:0}.modal-overlay{z-index:50;background:#0f172ab3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:500px;padding:30px;box-shadow:0 20px 25px -5px #0000001a}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{color:#1e293b;font-size:1.25rem;font-weight:700}.btn-close{cursor:pointer;color:#64748b;background:0 0;border:none;font-size:1.5rem}.btn-close:hover{color:#ef4444}.btn-secondary{color:#475569;cursor:pointer;background:#e2e8f0;border:none;border-radius:6px;margin-right:10px;padding:10px 15px;font-weight:700}.btn-secondary:hover{background:#cbd5e1}.test-input-group{flex-direction:column;gap:5px;margin-bottom:15px;display:flex}.test-input-group label{color:#475569;text-transform:uppercase;font-size:12px;font-weight:700}.test-input-group input{border:1px solid #cbd5e1;border-radius:6px;outline:none;padding:10px;font-size:14px}.test-input-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}
