*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #080a0f;--bg-raised: #0d1017;--bg-card: #111520;--bg-card-hover: #161b2a;--border: #1c2333;--border-glow: #00e5c740;--text: #d1d5db;--text-bright: #f0f2f5;--text-muted: #6b7280;--primary: #00e5c7;--primary-dim: #00e5c720;--secondary: #f59e0b;--secondary-dim: #f59e0b20;--green: #34d399;--yellow: #fbbf24;--red: #f87171;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Menlo", monospace}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5;min-height:100vh;position:relative}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 0 var(--primary-dim)}50%{box-shadow:0 0 20px 2px var(--primary-dim)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.anim-item{opacity:0;animation:fadeSlideUp .5s ease-out forwards}.dashboard{max-width:1440px;margin:0 auto;padding:28px 32px}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border)}.dashboard-header h1{font-family:var(--font-mono);font-size:20px;font-weight:600;color:var(--primary);letter-spacing:-.02em}.dashboard-header h1 .header-dot{display:inline-block;width:8px;height:8px;background:var(--primary);border-radius:50%;margin-right:10px;animation:pulseGlow 2.5s ease-in-out infinite;vertical-align:middle;position:relative;top:-1px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-full{grid-column:1 / -1}.grid-half{grid-column:span 1}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:22px;position:relative;overflow:hidden;transition:border-color .3s ease,box-shadow .3s ease}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.3}.card:hover{border-color:var(--border-glow);box-shadow:0 4px 24px -4px #00e5c70f}.card-title{font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:16px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:22px 20px;position:relative;overflow:hidden;transition:border-color .3s ease,transform .2s ease}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--primary),transparent);opacity:.5}.stat-card:hover{border-color:var(--border-glow);transform:translateY(-2px)}.stat-label{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.stat-value{font-family:var(--font-mono);font-size:34px;font-weight:700;color:var(--text-bright);line-height:1;letter-spacing:-.02em}.stat-value.primary{color:var(--primary)}.stat-value.green{color:var(--green)}.btn-logout{font-family:var(--font-mono);background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:7px 18px;border-radius:6px;cursor:pointer;font-size:12px;letter-spacing:.03em;transition:all .2s ease}.btn-logout:hover{border-color:var(--red);color:var(--red);background:#f871710f}.btn-period{font-family:var(--font-mono);background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:4px 14px;border-radius:5px;cursor:pointer;font-size:11px;letter-spacing:.03em;transition:all .2s ease}.btn-period.active,.btn-period:hover{background:var(--primary);color:var(--bg);border-color:var(--primary);font-weight:600}.btn-page{font-family:var(--font-mono);background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:5px 16px;border-radius:5px;cursor:pointer;font-size:12px;transition:all .2s ease}.btn-page:disabled{opacity:.3;cursor:default}.btn-page:not(:disabled):hover{border-color:var(--primary);color:var(--primary)}table{width:100%;border-collapse:collapse}th{text-align:left;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:10px 14px;border-bottom:1px solid var(--border)}td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text);font-size:13px}tr:last-child td{border-bottom:none}tr{transition:background .15s ease}tr:hover td{background:var(--bg-card-hover)}.badge{font-family:var(--font-mono);display:inline-block;padding:3px 10px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-replied{background:#34d3991a;color:var(--green);border:1px solid rgba(52,211,153,.2)}.badge-pending{background:#fbbf241a;color:var(--yellow);border:1px solid rgba(251,191,36,.2)}.badge-failed{background:#f871711a;color:var(--red);border:1px solid rgba(248,113,113,.2)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse at 50% 30%,#0d1a1a 0%,var(--bg) 70%)}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:44px;width:380px;position:relative;overflow:hidden;animation:fadeSlideUp .6s ease-out}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent)}.login-card h2{font-family:var(--font-mono);font-size:18px;font-weight:600;margin-bottom:32px;text-align:center;color:var(--primary);letter-spacing:-.01em}.form-group{margin-bottom:18px}.form-group label{display:block;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-muted);margin-bottom:6px;letter-spacing:.03em;text-transform:uppercase}.form-group input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:var(--text-bright);font-family:var(--font-mono);font-size:14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim)}.btn-submit{width:100%;background:var(--primary);border:none;border-radius:8px;color:var(--bg);padding:12px;font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;margin-top:10px;transition:all .2s ease}.btn-submit:hover{background:#00ccb3;box-shadow:0 0 20px #00e5c733}.btn-submit:disabled{opacity:.4;cursor:default}.form-error{color:var(--red);font-family:var(--font-mono);font-size:12px;margin-top:14px;text-align:center}.loading{color:var(--text-muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.05em}.loading:after{content:"";display:inline-block;width:60px;height:2px;margin-left:8px;vertical-align:middle;background:linear-gradient(90deg,var(--primary),transparent);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:2px}.error{color:var(--red);font-size:13px}.pagination{display:flex;align-items:center;gap:14px;margin-top:18px;font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.period-buttons{display:flex;gap:6px}.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.mini-stat{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px 16px;transition:border-color .2s ease}.mini-stat:hover{border-color:var(--border-glow)}.mini-stat-label{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px}.mini-stat-value{font-family:var(--font-mono);font-size:22px;font-weight:700;letter-spacing:-.02em}@media(max-width:900px){.dashboard{padding:16px}.dashboard-grid{grid-template-columns:1fr}.grid-half{grid-column:1 / -1}.stats-row,.mini-stats{grid-template-columns:1fr 1fr}}
