:root{--bg:#08080a;--surface:#111114;--surface2:#18181c;--border:#1e1e24;--text:#f0f0f0;--muted:#52525b;--dim:#3f3f46;--blue:#3b82f6;--blue-soft:#3b82f614;--blue-glow:#3b82f626;--green:#22c55e;--amber:#f59e0b;--rose:#f43f5e;--violet:#8b5cf6;--cyan:#06b6d4;--hover:#ffffff0a;--hover-border:#ffffff14;--separator:#ffffff08;--shadow-modal:#0009;--on-color:#fff;--font:"Sora",system-ui,sans-serif;--mono:"Space Mono",monospace;--radius:12px;--radius-sm:8px;--transition:.15s ease}[data-theme=light]{--bg:#f5f5f7;--surface:#fff;--surface2:#f0f0f2;--border:#e2e2e8;--text:#1a1a1e;--muted:#71717a;--dim:#a1a1aa;--blue:#2563eb;--blue-soft:#2563eb12;--blue-glow:#2563eb1f;--green:#16a34a;--amber:#d97706;--rose:#dc2626;--violet:#7c3aed;--cyan:#0891b2;--hover:#00000008;--hover-border:#0000001a;--separator:#0000000d;--shadow-modal:#00000026;--on-color:#fff}[data-theme=light] .main{background-image:radial-gradient(circle,#e4e4e8 1px,#0000 1px)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#d1d1d6}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#b0b0b8}[data-theme=light] .card:hover{border-color:#ccc;box-shadow:0 2px 12px #0000000f}[data-theme=light] .cell:hover{border-color:#ccc}[data-theme=light] .table td{border-bottom:1px solid #0000000a}[data-theme=light] .table tbody tr:hover td{background:#2563eb0a}[data-theme=light] .table tbody tr:nth-child(2n) td{background:#00000004}[data-theme=light] .table tbody tr:nth-child(2n):hover td{background:#2563eb0a}[data-theme=light] .btn:hover{background:#e8e8ec;border-color:#ccc}[data-theme=light] .btn-ghost:hover{color:var(--rose);background:#dc26260f}[data-theme=light] .nav-item:hover{background:#f0f0f2}[data-theme=light] .nav-item.active{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue)}[data-theme=light] .card-row:hover{background:#00000003;border-color:#0000001a;box-shadow:0 2px 8px #0000000a}[data-theme=light] .log-line:hover{color:var(--text)}[data-theme=light] .history-item:hover{background:#2563eb08}[data-theme=light] .modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000004d}[data-theme=light] .modal-card{box-shadow:0 24px 80px #00000026,0 0 0 1px #0000000d}[data-theme=light] .login-wrap{background:var(--bg);background-image:radial-gradient(at 50% 0,#2563eb0f 0%,#0000 60%)}[data-theme=light] .login-card{box-shadow:0 20px 60px #00000014}[data-theme=light] .btn-discord{box-shadow:0 4px 16px #5865f233}[data-theme=light] .toast{box-shadow:0 8px 32px #0000001a}[data-theme=light] .sidebar-overlay{background:#0003}[data-theme=light] .input::-webkit-calendar-picker-indicator{filter:none}[data-theme=light] .input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=light] .online-dot{border-color:var(--surface)}[data-theme=light] .sb-logo{box-shadow:0 2px 8px #3b82f633}[data-theme=light] .section-count{background:#0000000d}[data-theme=light] .badge-default{background:#2563eb14}[data-theme=light] .badge-success{background:#16a34a14}[data-theme=light] .badge-warning{background:#d9770614}[data-theme=light] .badge-error{background:#dc262614}[data-theme=light] .badge-info{background:#0891b214}[data-theme=light] .rank-1,[data-theme=light] .rank-3{color:#fff}[data-theme=light] .skeleton{background:linear-gradient(90deg,#e8e8ec 25%,#f5f5f7 50%,#e8e8ec 75%) 0 0/200% 100%}[data-theme=light] .total-bar{background:linear-gradient(135deg,var(--surface) 0%,var(--blue-soft) 100%);border-color:#2563eb1a}[data-theme=light] ::selection{color:#000;background:#2563eb33}*,:before,:after{box-sizing:border-box;margin:0;padding:0}::selection{color:#fff;background:#3b82f640}html,body,#app{height:100dvh;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:clamp(13px,.85vw,16px)}.main{background-image:radial-gradient(circle,#1a1a1f 1px,#0000 1px);background-size:24px 24px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--dim)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.96)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}.page-enter-active{animation:.25s both fadeInUp}.page-leave-active{animation:.15s both fadeOut}@keyframes fadeOut{to{opacity:0;transform:translateY(-4px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.layout{height:100dvh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:240px;min-width:240px;display:flex;position:relative;overflow:hidden}.sb-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 8px calc(100% - 8px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 8px calc(100% - 8px),#0000 100%)}.sb-brand{align-items:center;gap:10px;padding:24px 20px 20px;display:flex}.sb-logo{background:linear-gradient(135deg,var(--blue),var(--violet));border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.sb-logo svg{color:#fff;width:16px;height:16px}.sb-name{letter-spacing:-.03em;font-size:15px;font-weight:700}.sb-tag{font-family:var(--mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:1px;font-size:9px}.sb-section{margin-top:14px;padding:6px 12px}.sb-section-label{color:var(--dim);text-transform:uppercase;letter-spacing:.1em;padding:0 8px;font-size:10px;font-weight:600}.sb-nav{padding:4px 12px}.nav-item{border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:all var(--transition);align-items:center;gap:10px;margin-bottom:1px;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:var(--text);background:var(--surface2);transform:translate(2px)}.nav-item.active{color:var(--text);background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue);transform:none}.nav-item svg{opacity:.5;width:16px;height:16px;transition:opacity var(--transition)}.nav-item:hover svg{opacity:.7}.nav-item.active svg{opacity:1;color:var(--blue)}.sb-footer{border-top:1px solid var(--border);margin-top:auto;padding:16px 20px}.sb-user{align-items:center;gap:10px;display:flex}.sb-avatar{background:var(--surface2);width:28px;height:28px;color:var(--muted);border-radius:8px;flex-shrink:0;place-items:center;font-size:11px;font-weight:700;display:grid}.sb-avatar-img{object-fit:cover;border-radius:8px;flex-shrink:0;width:28px;height:28px}.sb-uname{font-size:12px;font-weight:500}.sb-urole{color:var(--muted);font-size:10px}.main{padding:32px 36px;padding-bottom:max(32px, env(safe-area-inset-bottom));flex:1;overflow-y:auto}.login-wrap{background:var(--bg);background-image:radial-gradient(at 50% 0,#3b82f60f 0%,#0000 60%);place-items:center;height:100dvh;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:380px;max-width:90vw;padding:2.5rem;animation:.5s fadeInScale;box-shadow:0 20px 60px #0000004d}.login-brand{text-align:center;margin-bottom:2rem}.login-brand svg{color:var(--blue)}.login-brand h1{letter-spacing:-.03em;margin-top:10px;font-size:20px;font-weight:700}.login-brand p{font-family:var(--mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:4px;font-size:9px}.login-logo{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:12px;place-items:center;width:48px;height:48px;margin:0 auto;display:grid;box-shadow:0 8px 24px #6366f14d}.login-hint{color:var(--dim);text-align:center;margin-top:16px;font-size:11px;line-height:1.4}.login-error{color:var(--rose);text-align:center;border-radius:var(--radius-sm);background:#f43f5e0f;min-height:1.2rem;margin-top:8px;padding:8px 12px;font-size:12px}.login-error:empty{background:0 0;padding:0}.btn-discord{color:#fff;cursor:pointer;background:#5865f2;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;padding:13px 16px;font-size:15px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 16px #5865f24d}.btn-discord:hover{background:#4752c4;transform:translateY(-1px);box-shadow:0 6px 24px #5865f266}.btn-discord:active{transform:translateY(0);box-shadow:0 2px 8px #5865f233}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:20px;transition:border-color .2s,box-shadow .3s,transform .2s;animation:.4s both fadeInUp;overflow:hidden}.card canvas{max-width:100%!important;max-height:100%!important}.card:hover{border-color:var(--hover-border);transform:translateY(-1px);box-shadow:0 4px 16px #0000001f}.card-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-header h3{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.card-header h3 svg{width:14px;height:14px}.bento{grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(160px,auto);gap:10px;display:grid}.cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:20px;transition:border-color .2s,box-shadow .3s,transform .2s;animation:.4s both fadeInUp;overflow:hidden}.cell canvas{max-width:100%!important;max-height:100%!important}.cell:hover{border-color:var(--hover-border);transform:translateY(-1px);box-shadow:0 4px 16px #0000001a}.cell-1x1{grid-column:span 1}.cell-2x1{grid-column:span 2}.cell-3x1{grid-column:span 3}.cell-2x2{grid-area:span 2/span 2}.cell-3x2{grid-area:span 2/span 3}.cell-4x2{grid-area:span 2/span 4}.cell-6x1{grid-column:span 6}.cell-6x2{grid-area:span 2/span 6}.cell:first-child{animation-delay:0s}.cell:nth-child(2){animation-delay:50ms}.cell:nth-child(3){animation-delay:.1s}.cell:nth-child(4){animation-delay:90ms}.cell:nth-child(5){animation-delay:.2s}.cell:nth-child(6){animation-delay:.25s}.cell:nth-child(7){animation-delay:.3s}.cell:nth-child(8){animation-delay:.35s}.cell-head{align-items:center;gap:6px;margin-bottom:14px;display:flex}.cell-head svg{width:14px;height:14px;color:var(--muted)}.cell-head span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.field{margin-bottom:12px}.field label{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;font-size:10px;font-weight:600;display:block}.input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font-family:var(--font);transition:border-color var(--transition), box-shadow var(--transition);outline:none;padding:9px 12px;font-size:13px}.input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.input:hover:not(:focus){border-color:#2a2a30}.input::placeholder{color:var(--dim)}.input::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.input:disabled{opacity:.5;cursor:not-allowed}textarea.input{resize:vertical;min-height:80px;line-height:1.5}select.input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%233f3f46' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);font-family:var(--font);cursor:pointer;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;padding:7px 14px;font-size:12px;font-weight:500;display:inline-flex;position:relative}.btn:hover{background:#1f1f24;border-color:#2a2a30}.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled,.btn.is-loading{opacity:.5;cursor:not-allowed;pointer-events:none}.btn svg{width:14px;height:14px}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 2px 8px #3b82f633}.btn-primary:hover{background:#4b8ef7;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-primary:active{transform:translateY(0)scale(.97);box-shadow:0 1px 4px #3b82f633}.btn-danger{color:var(--rose);background:#f43f5e1a;border-color:#f43f5e33}.btn-danger:hover{background:#f43f5e2e;border-color:#f43f5e59}.btn-success{color:var(--green);background:#22c55e1a;border-color:#22c55e33}.btn-success:hover{background:#22c55e2e;border-color:#22c55e59}.btn-ghost{color:var(--muted);background:0 0;border:none;padding:5px 8px}.btn-ghost:hover{color:var(--rose);background:#f43f5e0f}.btn-sm{padding:5px 10px;font-size:11px}.btn-sm svg{width:12px;height:12px}.btn .spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin}.badge{font-size:12px;font-weight:700;font-family:var(--mono);border-radius:6px;align-items:center;gap:3px;padding:4px 10px;transition:transform .15s,box-shadow .15s;display:inline-flex}.badge:hover{transform:scale(1.05)}.badge-default{background:var(--blue-soft);color:var(--blue)}.badge-success{color:var(--green);background:#22c55e1a}.badge-warning{color:var(--amber);background:#f59e0b1a}.badge-error{color:var(--rose);background:#f43f5e1a}.badge-info{color:var(--cyan);background:#06b6d41a}.table{border-collapse:separate;border-spacing:0;width:100%}.table th,.table td{text-align:left;padding:8px 12px;font-size:13px}.table th{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);background:var(--surface);z-index:1;font-size:10px;font-weight:600;position:sticky;top:0}.table td{border-bottom:1px solid var(--separator)}.table tbody tr{transition:background var(--transition)}.table tbody tr:hover td{background:#3b82f60a}.table tbody tr:nth-child(2n) td{background:var(--hover)}.table tbody tr:nth-child(2n):hover td{background:#3b82f60a}.stat-big{letter-spacing:-.05em;font-size:clamp(28px,2.5vw,48px);font-weight:700;line-height:1}.stat-mid{letter-spacing:-.04em;font-size:clamp(20px,1.8vw,34px);font-weight:700}.stat-value{letter-spacing:-.04em;font-size:clamp(22px,2vw,36px);font-weight:700;line-height:1}.stat-label{color:var(--dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;font-size:11px;font-weight:600}.stat-sub{color:var(--muted);font-size:12px}.stat-accent{color:var(--blue)}.stat-badge{border-radius:6px;align-items:center;gap:3px;margin-top:6px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.stat-badge.up{color:var(--green);background:#22c55e1a}.top-item{align-items:center;gap:10px;padding:8px 0;display:flex}.top-item+.top-item{border-top:1px solid var(--separator)}.rank{width:26px;height:26px;font-family:var(--mono);border-radius:7px;flex-shrink:0;place-items:center;font-size:11px;font-weight:700;transition:transform .2s,box-shadow .2s;display:grid}.rank:hover{transform:scale(1.15)}.rank-1{color:var(--bg);background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 2px 8px #f59e0b4d}.rank-1:hover{box-shadow:0 4px 16px #f59e0b66}.rank-2{color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 2px 8px #3b82f64d}.rank-3{color:var(--bg);background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 2px 8px #22c55e4d}.rank-n{background:var(--surface2);color:var(--muted)}.bar-row{margin-bottom:10px}.bar-row:last-child{margin-bottom:0}.bar-label{justify-content:space-between;margin-bottom:5px;font-size:14px;display:flex}.bar-label .name{font-weight:500}.bar-label .val{font-family:var(--mono);color:var(--blue);font-size:13px;font-weight:700}.progress-track{background:var(--surface2);border-radius:2px;height:4px;overflow:hidden}.progress-fill{border-radius:2px;height:100%;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000 40%,#ffffff26 50%,#0000 60%) 0 0/200% 100%;animation:2s ease-in-out infinite progressShine;position:absolute;inset:0}@keyframes progressShine{0%{background-position:200% 0}to{background-position:-200% 0}}.cat-grid{flex-wrap:wrap;gap:8px;display:flex}.cat-pill{border-radius:var(--radius-sm);background:var(--surface2);border:1px solid var(--border);cursor:default;flex-direction:column;align-items:center;min-width:80px;padding:12px 16px;transition:all .2s;display:flex}.cat-pill:hover{border-color:var(--blue);background:#3b82f60a;box-shadow:0 2px 8px #0000001a}.cat-pill .name{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.cat-pill .val{letter-spacing:-.03em;margin-top:2px;font-size:clamp(16px,1.3vw,22px);font-weight:700}.cat-pill .sub{color:var(--dim);font-size:11px}.total-bar{background:linear-gradient(135deg,var(--surface) 0%,var(--blue-soft) 100%);border-radius:var(--radius);border:1px solid #3b82f61a;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.filters{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:24px;display:flex}.filters .field{margin:0}.log-line{font-family:var(--mono);border-bottom:1px solid var(--separator);color:var(--muted);word-break:break-all;transition:color var(--transition);padding:2px 0;font-size:12px;line-height:1.9}.log-line:hover{color:var(--text)}.history-item{border-bottom:1px solid var(--separator);transition:background var(--transition);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.history-item:hover{background:#3b82f608}.page-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:28px;display:flex}.page-header:has(>:only-child){display:block}.page-header h1{letter-spacing:-.04em;font-size:clamp(20px,1.6vw,28px);font-weight:700}.page-header p{color:var(--muted);margin-top:3px;font-size:12px}.page-header .date{font-family:var(--mono);color:var(--muted);font-size:12px}.page-header-row{justify-content:space-between;align-items:flex-end;margin-bottom:28px;display:flex}.grid{gap:10px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.empty{text-align:center;color:var(--muted);padding:48px 16px;font-size:13px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.dim{color:var(--dim)}.small{font-size:11px}.mt{margin-top:14px}.mb{margin-bottom:14px}.mb-sm{margin-bottom:10px}.gap-sm{gap:6px}.gap-md{gap:10px}.gap-lg{gap:16px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.flex-between{justify-content:space-between;align-items:center;display:flex}.skeleton{background:linear-gradient(90deg, var(--surface2) 25%, #ffffff0a 50%, var(--surface2) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}.skeleton-text{border-radius:4px;height:12px;margin-bottom:8px}.skeleton-text:last-child{width:60%}.skeleton-card{height:120px}.skeleton-avatar{border-radius:50%;width:36px;height:36px}.toast{z-index:200;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);align-items:center;gap:8px;padding:12px 20px;font-size:13px;font-weight:500;animation:.3s slideUp;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 32px #0006}.toast-success{border-color:#22c55e4d}.toast-success:before{content:"";background:var(--green);border-radius:var(--radius-sm) 0 0 var(--radius-sm);width:4px;height:100%;position:absolute;top:0;left:0}.toast-error{border-color:#f43f5e4d}.toast-error:before{content:"";background:var(--rose);border-radius:var(--radius-sm) 0 0 var(--radius-sm);width:4px;height:100%;position:absolute;top:0;left:0}.ava{object-fit:cover;border-radius:50%;flex-shrink:0}.ava-xs{width:24px;height:24px}.ava-sm{width:28px;height:28px}.ava-md{width:36px;height:36px}.ava-lg{width:44px;height:44px}.ava-xl{width:52px;height:52px}.ava-ph{border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.ava-ph.ava-xs{font-size:9px}.ava-ph.ava-sm{font-size:10px}.ava-ph.ava-md{font-size:12px}.ava-ph.ava-lg{font-size:14px}.ava-ph.ava-xl{font-size:16px}.card-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:12px 16px;transition:all .2s;animation:.3s both fadeIn;display:flex;position:relative;overflow:hidden}.card-row:hover{border-color:var(--hover-border);background:var(--hover);transform:translate(2px);box-shadow:0 2px 8px #0000001a}.card-row .actions{opacity:0;flex-shrink:0;gap:2px;transition:opacity .15s;display:flex}.card-row:hover .actions{opacity:1}.card-row--accent{padding-left:20px}.card-row--accent:before{content:"";background:var(--accent-color,var(--border));width:4px;position:absolute;top:0;bottom:0;left:0}.alert-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:10px 14px;display:flex;position:relative;overflow:hidden}.alert-row:before{content:"";background:var(--alert-color,#ef4444);width:4px;position:absolute;top:0;bottom:0;left:0}.alert-row .alert-ic{border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;animation:.4s fadeIn;display:flex}.empty-state svg,.empty-state .empty-icon{color:var(--dim);opacity:.2;margin-bottom:16px}.empty-state .empty-title{color:var(--muted);margin-bottom:6px;font-size:15px;font-weight:600}.empty-state .empty-sub{color:var(--dim);max-width:280px;font-size:12px;line-height:1.5}.section-hdr{color:var(--dim);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.section-dot{border-radius:2px;width:4px;height:16px}.section-count{background:var(--hover);color:var(--muted);font-size:11px;font-weight:700;font-family:var(--mono);border-radius:4px;padding:1px 6px}.search-box{max-width:400px;position:relative}.search-box svg{color:var(--dim);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-box input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font-family:var(--font);transition:border-color var(--transition);outline:none;padding:9px 12px 9px 34px;font-size:13px}.search-box input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.pill{white-space:nowrap;font-size:10px;font-weight:600;font-family:var(--font);border:none;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}button.pill{cursor:pointer;border-radius:6px;padding:5px 12px;transition:all .2s}button.pill:hover{filter:brightness(1.15);transform:translateY(-1px)}button.pill:active{transform:translateY(0)scale(.96)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#000000a6;place-items:center;animation:.2s both overlayIn;display:grid;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;padding-bottom:max(24px, env(safe-area-inset-bottom));width:480px;max-width:90vw;max-height:90dvh;box-shadow:0 24px 80px var(--shadow-modal), 0 0 0 1px var(--separator);animation:.25s cubic-bezier(.34,1.56,.64,1) both modalIn;overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:scale(.92)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-header h3{letter-spacing:-.02em;font-size:15px;font-weight:600}.modal-body{color:var(--muted);white-space:pre-wrap;margin-bottom:8px;font-size:13px;line-height:1.6}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;display:flex}.btn-close{width:28px;height:28px;color:var(--muted);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;place-items:center;display:grid}.btn-close:hover{background:var(--surface2);color:var(--text)}.md-preview{font-size:14px;line-height:1.7}.md-preview h1{letter-spacing:-.03em;margin:16px 0 8px;font-size:22px;font-weight:700}.md-preview h2{letter-spacing:-.02em;margin:14px 0 6px;font-size:18px;font-weight:600}.md-preview h3{margin:12px 0 4px;font-size:15px;font-weight:600}.md-preview p{margin:6px 0}.md-preview ul,.md-preview ol{margin:6px 0;padding-left:20px}.md-preview li{margin:3px 0}.md-preview code{font-family:var(--mono);background:var(--surface2);border-radius:4px;padding:1px 5px;font-size:13px}.md-preview pre{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);margin:8px 0;padding:12px;overflow-x:auto}.md-preview pre code{background:0 0;padding:0}.md-preview blockquote{border-left:3px solid var(--blue);color:var(--dim);margin:8px 0;padding-left:12px}.md-preview a{color:var(--blue);text-decoration:underline}.md-preview hr{border:none;border-top:1px solid var(--border);margin:16px 0}.md-preview strong{font-weight:600}.md-preview img{border-radius:var(--radius-sm);max-width:100%;margin:8px 0}.grafana-frame{border-radius:var(--radius);background:var(--surface);border:none;width:100%;min-height:320px}.grafana-full{border-radius:var(--radius);background:var(--surface);border:none;width:100%;height:calc(100vh - 120px)}@media (width<=1200px){.bento{grid-template-columns:repeat(4,1fr)}.cell-4x2,.cell-3x2,.cell-3x1{grid-column:span 4}.cell-2x2,.cell-2x1{grid-column:span 2}.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.bento{grid-template-columns:repeat(2,1fr)}.cell-4x2,.cell-3x2,.cell-3x1,.cell-2x2,.cell-2x1{grid-column:span 2}.cell-1x1{grid-column:span 1}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.main{padding:20px}}@media (width<=768px){.layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);z-index:50;width:100%;min-width:100%;max-height:100vh;transition:transform .3s;position:fixed;inset:0;overflow:hidden;transform:translateY(-100%)}@supports (height:100dvh){.sidebar{max-height:100dvh}}.sidebar.open{transform:translateY(0)}.main{padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));margin-top:56px}.sb-brand{padding:12px 16px}.sb-scroll{flex:1;min-height:0;max-height:none;overflow-y:auto}.sb-footer{padding:10px 16px;padding-bottom:max(10px, env(safe-area-inset-bottom));flex-shrink:0}.mobile-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:49;align-items:center;gap:12px;height:56px;padding:0 16px;position:fixed;top:0;left:0;right:0;display:flex!important}.page-header{flex-direction:column;gap:8px}.page-header h1{font-size:18px!important}.grid-2,.grid-3,.grid-4,.bento{grid-template-columns:1fr!important}.cell-6x1,.cell-4x2,.cell-3x2,.cell-3x1,.cell-2x2,.cell-2x1,.cell-1x1{grid-column:span 1!important}.grid{gap:6px}.filters{flex-direction:column;gap:6px}.filters .field{width:100%}.filters .input{width:100%!important}.table{font-size:11px}.table th,.table td{padding:6px 4px}.card{padding:12px}.card-header{flex-direction:column;gap:6px}.modal-card{padding:16px;width:95vw!important}.grafana-frame{min-height:200px}.stat-value,.stat-big{font-size:1.5rem!important}.stat-mid{font-size:1.2rem!important}}@media (width<=480px){.main{padding:10px}.page-header h1{font-size:16px!important}.btn{padding:6px 10px;font-size:12px}.btn-sm{padding:4px 8px;font-size:11px}.table{font-size:10px}}.mobile-header,.sidebar-overlay{display:none}@media (width<=768px){.sidebar-overlay{z-index:49;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:block;position:fixed;inset:0}}
