@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400;500&display=swap";:root{--red: #CC2200;--red-dk: #A01A00;--red-bg: #FFF0ED;--black: #0D0D0D;--black-2: #1A1A1A;--white: #FFFFFF;--gray-1: #F5F5F5;--gray-2: #E8E8E8;--gray-3: #9CA3AF;--gray-4: #6B7280;--gray-5: #374151;--font: "Roboto", sans-serif;--font-title: "Bebas Neue", sans-serif;--mono: "Roboto Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:#f2f2f2;color:var(--black);font-size:14px;line-height:1.5}.app-shell{display:flex;flex-direction:column;min-height:100vh}.body-wrap{display:flex;flex:1;overflow:hidden}.topbar{height:56px;background:var(--black);border-bottom:2px solid var(--red);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:40}.sidebar{width:220px;min-width:220px;background:var(--black-2);padding:16px 0 0;display:flex;flex-direction:column;overflow-y:auto;border-right:1px solid #2A2A2A}.sidebar-item{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:12px;font-weight:500;color:#9ca3af;cursor:pointer;border-left:3px solid transparent;transition:all .15s;text-decoration:none;letter-spacing:.3px}.sidebar-item:hover{background:#ffffff0d;color:#fff}.sidebar-item.active{color:var(--white);border-left-color:var(--red);background:#cc22001f}.sidebar-divider{height:1px;background:#2a2a2a;margin:8px 0}.sidebar-label{font-size:9px;color:#4b5563;padding:4px 16px 2px;letter-spacing:1.2px;font-family:var(--mono);text-transform:uppercase}.sidebar-footer{margin-top:auto;padding:16px;border-top:1px solid #2A2A2A}.sidebar-social{display:flex;gap:8px;margin-bottom:10px}.sidebar-social a{width:32px;height:32px;border-radius:6px;background:#2a2a2a;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:15px;transition:background .15s}.sidebar-social a:hover{background:var(--red)}.sidebar-copy{font-size:9px;color:#4b5563;font-family:var(--mono);letter-spacing:.5px;line-height:1.4}.main{flex:1;padding:28px 32px;overflow-y:auto}.btn{padding:8px 16px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--gray-2);background:var(--white);color:var(--gray-5);font-family:var(--font);transition:all .15s;display:inline-flex;align-items:center;gap:6px;letter-spacing:.2px}.btn:hover{background:var(--gray-1);border-color:var(--gray-3)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--red);color:#fff;border-color:var(--red)}.btn-primary:hover{background:var(--red-dk);border-color:var(--red-dk)}.btn-success{background:#16a34a;color:#fff;border-color:#16a34a}.btn-success:hover{background:#15803d}.btn-danger{background:#dc2626;color:#fff;border-color:#dc2626}.btn-danger:hover{background:#b91c1c}.btn-ghost{background:transparent;border-color:transparent;color:var(--gray-3)}.btn-ghost:hover{background:#ffffff14;color:#fff}.btn-dark{background:var(--black);color:#fff;border-color:var(--black)}.btn-dark:hover{background:var(--black-2)}.card{background:var(--white);border:1px solid var(--gray-2);border-radius:6px}.card-pad{padding:22px 26px}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:3px;font-size:10px;font-weight:700;font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase}.badge-pending{background:#fef3c7;color:#92400e}.badge-ok{background:#dcfce7;color:#166534}.badge-ko{background:#fee2e2;color:#991b1b}.badge-arch{background:var(--gray-1);color:var(--gray-3)}.form-label{font-size:11px;color:var(--gray-4);margin-bottom:4px;display:block;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.form-req{color:var(--red)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-full{grid-column:1 / -1}input,select,textarea{width:100%;padding:9px 12px;border-radius:4px;border:1px solid var(--gray-2);background:var(--gray-1);font-family:var(--font);font-size:13px;color:var(--black);transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red);background:#fff;box-shadow:0 0 0 3px #cc22001a}input[type=file]{background:#fff;padding:7px;cursor:pointer}.alert-success{background:#f0fdf4;border:1px solid #86efac;border-left:3px solid #16a34a;border-radius:4px;padding:14px 18px;display:flex;gap:12px;align-items:flex-start}.alert-success-icon{width:22px;height:22px;background:#16a34a;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;flex-shrink:0}.alert-success-txt{font-size:13px;color:#166534;line-height:1.6}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:6px;border-top:3px solid var(--red);padding:28px;width:460px;max-width:92vw}.modal-title{font-family:var(--font-title);font-size:20px;letter-spacing:.5px;margin-bottom:6px}.modal-sub{font-size:13px;color:var(--gray-4);margin-bottom:20px;line-height:1.5}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--gray-2)}.page-title{font-family:var(--font-title);font-size:26px;letter-spacing:1px;color:var(--black);line-height:1}.page-sub{font-size:11px;color:var(--gray-3);font-family:var(--mono);margin-top:5px;letter-spacing:.3px}.stat-grid{display:grid;gap:10px;margin-bottom:20px}.stat-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{background:var(--white);border-radius:4px;padding:14px 16px;border:1px solid var(--gray-2);border-top:2px solid transparent;transition:border-color .15s}.stat-card:hover{border-top-color:var(--red)}.stat-label{font-size:9px;color:var(--gray-3);font-family:var(--mono);margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}.stat-val{font-family:var(--font-title);font-size:28px;letter-spacing:.5px;color:var(--black);line-height:1}.table-card{background:var(--white);border:1px solid var(--gray-2);border-radius:6px;overflow:hidden}.table-head{display:grid;padding:8px 16px;background:var(--black);border-bottom:1px solid var(--black-2)}.th{font-size:9px;color:#6b7280;font-weight:700;font-family:var(--mono);text-transform:uppercase;letter-spacing:1px}.table-row{display:grid;padding:12px 16px;border-bottom:1px solid var(--gray-1);align-items:center;transition:background .1s}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--gray-1)}.td{font-size:12px;color:var(--gray-4)}.toggle{width:36px;height:20px;background:var(--gray-2);border-radius:10px;position:relative;cursor:pointer;border:none;transition:background .15s;flex-shrink:0}.toggle.on{background:#16a34a}.toggle:after{content:"";position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:2px;left:2px;transition:left .15s;box-shadow:0 1px 3px #0003}.toggle.on:after{left:18px}.empty-state{padding:52px 20px;text-align:center;color:var(--gray-3);font-size:13px}.empty-state-icon{font-size:32px;margin-bottom:10px;opacity:.4}.section-title{font-family:var(--font-title);font-size:16px;letter-spacing:.8px;color:var(--gray-5);margin-bottom:12px}.db-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.db-dot.online{background:#16a34a;box-shadow:0 0 0 2px #16a34a33}.db-dot.offline{background:#dc2626;box-shadow:0 0 0 2px #dc262633}.db-dot.checking{background:#6b7280}.hero-banner{border-radius:6px;background:linear-gradient(135deg,var(--black) 0%,#1A1A1A 40%,#CC2200 100%);margin-bottom:24px;padding:0 36px;display:flex;align-items:center;position:relative;overflow:hidden}.hero-banner:before{content:"";position:absolute;top:-20px;right:-20px;width:200px;height:200px;background:#cc220026;border-radius:50%}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--red)}
