*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f8fafc;color:#0f172a;-webkit-font-smoothing:antialiased}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.3px;color:#0f172a}h2{font-size:22px;font-weight:700}h3{font-size:16px;font-weight:600}.layout{max-width:1200px;margin:0 auto;padding:24px 32px}.header{display:flex;justify-content:space-between;align-items:center;padding:14px 32px;background:#fff;color:#0f172a;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:10}.header h1{font-size:20px;margin:0;font-weight:700;letter-spacing:-.5px}.header h1 a{color:#0f172a}.header h1 a span{color:#2563eb}.header h1 a:hover{text-decoration:none}.header nav{display:flex;gap:4px}.header nav a{color:#475569;font-weight:500;font-size:14px;padding:7px 12px;border-radius:7px;transition:background .12s,color .12s}.header nav a:hover{text-decoration:none;background:#f1f5f9;color:#0f172a}.header nav a.active{background:#eff6ff;color:#2563eb}.header .user-menu{display:flex;align-items:center;gap:12px}.header .user-menu a{color:#475569;font-size:13px;padding:6px 10px;border-radius:6px}.header .user-menu a:hover{background:#f1f5f9;color:#0f172a;text-decoration:none}.card{background:#fff;border-radius:12px;padding:24px;margin-bottom:16px;box-shadow:0 1px 3px #0f172a0a,0 1px 2px #0f172a0f;border:1px solid #f1f5f9}.card>h2:first-child,.card>h3:first-child{margin-top:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #f1f5f9}th{font-size:11px;text-transform:uppercase;color:#64748b;letter-spacing:.5px;font-weight:600;padding-top:8px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:none}button,.btn{background:#2563eb;color:#fff;border:none;padding:9px 16px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .12s,transform .06s}button:hover{background:#1d4ed8}button:active{transform:translateY(1px)}button:disabled{background:#cbd5e1;cursor:not-allowed;transform:none}button.secondary{background:#f1f5f9;color:#0f172a}button.secondary:hover{background:#e2e8f0}button.danger{background:#dc2626}button.danger:hover{background:#b91c1c}input,select,textarea{width:100%;padding:9px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:inherit;color:#0f172a;background:#fff;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}label{display:block;font-size:13px;color:#475569;margin-bottom:5px;margin-top:12px;font-weight:500}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.stat{background:#fff;border-radius:12px;padding:16px 20px;border:1px solid #f1f5f9;box-shadow:0 1px 3px #0f172a0a}.stat .label{font-size:11px;text-transform:uppercase;color:#64748b;letter-spacing:.5px;font-weight:600;margin-bottom:6px}.stat .value{font-size:28px;font-weight:700;color:#0f172a;line-height:1;letter-spacing:-.5px}.stat .sub{font-size:12px;color:#64748b;margin-top:4px}.stat.warn .value{color:#d97706}.stat.danger .value{color:#dc2626}.stat.ok .value{color:#059669}.stat.clickable{cursor:pointer;transition:border-color .12s,transform .06s}.stat.clickable:hover{border-color:#93c5fd;transform:translateY(-1px)}.badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.3px}.badge.online{background:#d1fae5;color:#065f46}.badge.offline,.badge.danger{background:#fee2e2;color:#991b1b}.badge.warn{background:#fef3c7;color:#92400e}.badge.muted{background:#f1f5f9;color:#475569}.badge.cam-recording{background:#d1fae5;color:#065f46}.badge.cam-online{background:#fef3c7;color:#92400e}.badge.cam-offline{background:#fee2e2;color:#991b1b}.badge.cam-unauth{background:#ede9fe;color:#5b21b6}.error{color:#dc2626;font-size:14px;margin-top:8px}.muted{color:#64748b;font-size:13px}.login-box{max-width:400px;margin:80px auto;padding:0 20px}.public-nav{display:flex;justify-content:space-between;align-items:center;padding:18px 32px;max-width:1200px;margin:0 auto}.public-nav .brand{font-size:22px;font-weight:700;letter-spacing:-.5px;color:#0f172a;text-decoration:none}.public-nav .brand span{color:#2563eb}.public-nav .links{display:flex;gap:24px;align-items:center}.public-nav .links a{color:#475569;font-weight:500}.public-nav .links a:hover{color:#0f172a;text-decoration:none}.btn-primary{background:#2563eb;color:#fff;padding:10px 20px;border-radius:8px;font-weight:600;text-decoration:none;display:inline-block;border:none;cursor:pointer;font-size:15px}.btn-primary:hover{background:#1d4ed8;text-decoration:none}.btn-ghost{background:transparent;color:#2563eb;padding:10px 20px;border-radius:8px;font-weight:600;text-decoration:none;display:inline-block;border:1.5px solid #2563eb;cursor:pointer;font-size:15px}.btn-ghost:hover{background:#eff6ff;text-decoration:none}.hero{max-width:1200px;margin:0 auto;padding:80px 32px 100px;display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}.hero h1{font-size:54px;line-height:1.1;margin:0 0 24px;letter-spacing:-1.5px;color:#0f172a;font-weight:800}.hero h1 .accent{background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p.lede{font-size:20px;line-height:1.5;color:#475569;margin:0 0 32px}.hero .cta-row{display:flex;gap:12px}.hero-visual{background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:16px;padding:32px;aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 20px 60px #2563eb26;position:relative;overflow:hidden}.hero-visual:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(124,58,237,.1),transparent 70%)}.hero-visual .tile{background:#fff;border-radius:10px;padding:14px 16px;box-shadow:0 2px 8px #0000000a;position:relative}.hero-visual .tile-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.hero-visual .tile-name{font-weight:600;color:#0f172a;font-size:14px}.hero-visual .tile-status{font-size:11px;color:#059669;font-weight:600;text-transform:uppercase}.hero-visual .tile-status.offline{color:#6b7280}.hero-visual .tile-row{display:flex;gap:20px;font-size:12px;color:#64748b}.hero-visual .tile-row strong{color:#0f172a;font-weight:600}.section{max-width:1200px;margin:0 auto;padding:80px 32px}.section h2{font-size:36px;text-align:center;margin:0 0 12px;color:#0f172a;letter-spacing:-.8px;font-weight:700}.section p.subtitle{font-size:18px;text-align:center;color:#64748b;margin:0 auto 48px;max-width:640px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:28px;transition:border-color .15s,transform .15s}.feature:hover{border-color:#93c5fd;transform:translateY(-2px)}.feature .icon{width:44px;height:44px;background:#dbeafe;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:#2563eb}.feature h3{margin:0 0 8px;font-size:18px;color:#0f172a}.feature p{margin:0;color:#64748b;font-size:15px;line-height:1.5}.pricing-card{max-width:420px;margin:0 auto;background:#fff;border-radius:16px;padding:40px;box-shadow:0 10px 40px #00000014;text-align:center;border:1px solid #e2e8f0}.pricing-card .price{font-size:56px;font-weight:800;color:#0f172a;letter-spacing:-2px}.pricing-card .price .unit{font-size:20px;color:#64748b;font-weight:500}.pricing-card .term{color:#64748b;margin:8px 0 24px}.pricing-card ul{text-align:left;padding:0;list-style:none;margin:24px 0}.pricing-card li{padding:8px 0;color:#334155;display:flex;align-items:center;gap:10px}.pricing-card li:before{content:"✓";color:#059669;font-weight:700}.public-footer{border-top:1px solid #e2e8f0;padding:32px;text-align:center;color:#94a3b8;font-size:14px;max-width:1200px;margin:40px auto 0}.bg-surface{background:#f8fafc}@media (max-width: 900px){.hero{grid-template-columns:1fr;padding:40px 20px 60px;gap:32px}.hero h1{font-size:38px}.hero-visual{aspect-ratio:auto}.feature-grid{grid-template-columns:1fr}.section{padding:40px 20px}.section h2{font-size:28px}}.signup-wrap{max-width:560px;margin:40px auto;padding:0 20px}.signup-steps{display:flex;justify-content:space-between;margin-bottom:24px}.signup-step{flex:1;text-align:center;padding:12px;position:relative;font-size:13px;color:#94a3b8;font-weight:500}.signup-step.active{color:#2563eb}.signup-step.done{color:#059669}.signup-step:after{content:"";position:absolute;top:20px;right:0;width:100%;height:2px;background:#e2e8f0;z-index:-1}.signup-step:last-child:after{display:none}.signup-step .num{display:inline-flex;width:28px;height:28px;border-radius:50%;background:#e2e8f0;color:#64748b;align-items:center;justify-content:center;font-weight:600;margin-bottom:4px}.signup-step.active .num{background:#2563eb;color:#fff}.signup-step.done .num{background:#059669;color:#fff}.quote-card{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:20px;margin:16px 0;display:flex;justify-content:space-between;align-items:center}.quote-card .left{font-size:14px;color:#075985}.quote-card .amount{font-size:32px;font-weight:700;color:#0369a1}.row{display:flex;gap:12px;align-items:flex-end}.row>*{flex:1}
