html,body,#root{width:100%;min-height:100%;margin:0}.template-loading,.template-error{min-height:100vh;display:grid;place-items:center;font-family:Nunito,sans-serif}.template-error{color:#ff646d}.user-toggle{width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.react-modal{display:block;background:#00000073}.react-circle-chart,.react-donut{width:150px;height:150px;margin:20px auto;border-radius:50%;display:grid;place-items:center;color:#1d62f0;font-size:24px;font-weight:600}.react-circle-chart{background:conic-gradient(#1d62f0 0 70%,#e9ecef 70% 100%)}.react-donut{position:relative;background:conic-gradient(#1d62f0 0 65%,#59d05d 65% 82%,#fbad4c 82% 100%)}.react-circle-chart:after,.react-donut:after{position:absolute;width:105px;height:105px;border-radius:50%;background:#fff;content:""}.react-circle-chart span,.react-donut span{position:relative;z-index:1}.react-world-map{position:relative;min-height:300px;overflow:hidden;border-radius:4px;background:radial-gradient(ellipse at 28% 42%,#d9e1e9 0 10%,transparent 10.5%),radial-gradient(ellipse at 52% 48%,#d9e1e9 0 15%,transparent 15.5%),radial-gradient(ellipse at 73% 43%,#d9e1e9 0 17%,transparent 17.5%),radial-gradient(ellipse at 82% 75%,#d9e1e9 0 7%,transparent 7.5%),#f5f7fa}.map-grid{position:absolute;inset:0;opacity:.35;background-image:linear-gradient(#d6dde6 1px,transparent 1px),linear-gradient(90deg,#d6dde6 1px,transparent 1px);background-size:45px 45px}.map-point{position:absolute;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#1d62f0;box-shadow:0 0 0 5px #1d62f02e}.react-line-chart{width:100%;min-height:240px}.react-line-chart line{stroke:#e8edf3;stroke-width:1}.react-line-chart polyline{fill:none;stroke:#1d62f0;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.react-toast{position:fixed;right:24px;bottom:24px;z-index:1100;min-width:280px;padding:18px 22px;border:0;border-radius:4px;background:#1d62f0;color:#fff;box-shadow:0 8px 30px #0003;text-align:left}.react-toast i{margin-right:10px;font-size:20px}.payment-card .card-header{display:flex;align-items:center;justify-content:space-between}.payment-card .card-header .card-title{margin-bottom:2px}.payment-card label{font-size:12px;font-weight:600}.payment-connection{display:flex;align-items:center;gap:8px}.payment-connection .btn{padding:0}.payment-submit{display:flex;align-items:flex-end}.payment-submit .btn{min-height:40px}.payment-feedback{margin:12px 0 0}.payment-result{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px}@media(max-width:767px){.payment-card .card-header{align-items:flex-start;gap:12px}}.toast-stack{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:10px;max-width:360px}.toast-item{display:flex;align-items:center;gap:10px;box-shadow:0 6px 18px #00000026;margin:0}.toast-item .toast-close{margin-left:auto;background:transparent;border:0;font-size:18px;line-height:1;color:inherit;opacity:.6}.toast-item .toast-close:hover{opacity:1}.app-logo-link{display:inline-flex;align-items:center;height:100%}.app-logo-link img{display:block;width:150px;max-height:44px;object-fit:contain}.login-page{min-height:100vh;display:flex;align-items:stretch;justify-content:center;background:#f7f9fc;color:#1f2937}.login-shell{width:100%;min-height:100vh;display:grid;grid-template-columns:minmax(320px,.95fr) minmax(340px,1.05fr)}.login-intro,.login-form-panel{display:flex;flex-direction:column;justify-content:center}.login-intro{gap:28px;padding:64px clamp(36px,7vw,96px);background:#111827;color:#fff}.login-mark{width:64px;height:64px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:#ffffff14;color:#4da3ff;font-size:34px}.login-kicker{margin:0 0 10px;color:#86efac;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.login-intro h1{margin:0;color:#fff;font-size:44px;font-weight:700;line-height:1.1}.login-intro p:last-child{max-width:520px;margin:18px 0 0;color:#ffffffb8;font-size:16px;line-height:1.7}.login-form-panel{padding:64px clamp(28px,8vw,120px);background:#fff}.login-logo{width:min(260px,72vw);height:auto;margin:0 0 24px;display:block}.login-form-heading{max-width:430px;margin-bottom:28px}.login-form-heading h2{margin:0;color:#111827;font-size:30px;font-weight:700}.login-form-heading p{margin:8px 0 0;color:#6b7280}.login-form{width:100%;max-width:430px}.login-form .form-group{margin-bottom:18px}.login-form label{color:#374151;font-size:13px;font-weight:700}.login-form .form-control{min-height:46px;border-color:#d9e0ea;border-radius:6px;background:#fbfcfe}.login-form .form-control:focus{border-color:#1d62f0;background:#fff}.login-form .btn{min-height:46px;margin-top:4px;border-radius:6px;font-weight:700}@media(max-width:767px){.login-shell{min-height:100vh;grid-template-columns:1fr}.login-intro{min-height:34vh;padding:36px 24px}.login-intro h1{font-size:34px}.login-form-panel{justify-content:flex-start;padding:34px 24px 48px}.login-logo{width:min(220px,78vw);margin-bottom:22px}}.table-actions{display:flex;gap:6px;justify-content:flex-end}.key-plaintext{font-family:monospace;font-size:13px;word-break:break-all;background:#f8f9fa;padding:8px 10px;border-radius:4px;border:1px solid #e9ecef}.badge-role{text-transform:uppercase;font-size:10px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.page-header-actions{display:flex;gap:8px;flex-wrap:wrap}
