*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:#f4f7fb;color:#1f2937;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}a{color:inherit}svg{width:18px;height:18px}:root{--reka-red: #ed1c24;--reka-red-dark: #c71219;--reka-red-soft: #fff1f2;--reka-blue: #343796;--reka-blue-dark: #1f2457;--reka-blue-soft: #eef1ff;--reka-ink: #101828;--muted: #64748b;--border: #e2e8f0;--surface: #ffffff;--surface-soft: #f8fafc;--shadow: 0 20px 60px rgba(15, 23, 42, .12)}.btn{border:0;border-radius:14px;padding:11px 15px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.18s ease;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--reka-red),var(--reka-red-dark));color:#fff;box-shadow:0 10px 24px #ed1c2438}.btn-primary:hover{filter:brightness(.98);transform:translateY(-1px)}.btn-secondary{background:#fff;color:#334155;border:1px solid #cbd5e1}.btn-secondary:hover{border-color:#94a3b8;background:#f8fafc}.btn-danger{background:var(--reka-red-soft);color:#be123c;border:1px solid #fecdd3}.btn-danger:hover{background:#ffe4e6}.full{width:100%}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;border:1px solid}.badge-green{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.badge-red{background:#fff1f2;color:#be123c;border-color:#fecdd3}.badge-blue{background:var(--reka-blue-soft);color:var(--reka-blue);border-color:#c7d2fe}.badge-amber{background:#fffbeb;color:#a16207;border-color:#fde68a}.badge-slate{background:#f1f5f9;color:#334155;border-color:#cbd5e1}.alert{border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:14px;line-height:1.55}.alert.error{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.alert.success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.alert.warn{background:#fff7ed;color:#9a3412;border:1px solid #fdba74}.soft-space{margin:24px 24px 0}.pad-x{padding:0 24px 24px}.login-page{min-height:100vh;display:grid;grid-template-columns:60% 40%;background:#f4f7fb}.login-hero{color:#fff;padding:42px 48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;background:radial-gradient(circle at 14% 22%,rgba(69,76,190,.35),transparent 26%),radial-gradient(circle at 72% 72%,rgba(237,28,36,.22),transparent 20%),linear-gradient(135deg,#101523,#182040 58%,#1d2348)}.login-hero:after{content:"";position:absolute;inset:auto -80px -100px auto;width:320px;height:320px;border-radius:999px;background:radial-gradient(circle,rgba(237,28,36,.18),transparent 65%);pointer-events:none}.hero-brand-strip{position:relative;z-index:1;display:flex;align-items:center;gap:16px}.brand-logo-full{width:clamp(160px,18vw,210px);height:auto;flex:none;object-fit:contain}.brand-copy h1{margin:0;font-size:clamp(22px,2vw,28px);line-height:1.1}.brand-copy p{margin:8px 0 0;color:#dce4ff}.hero-copy{max-width:640px;position:relative;z-index:1;display:grid;gap:18px}.hero-copy h2{margin:0;font-size:clamp(42px,5vw,60px);line-height:1.02;letter-spacing:-.04em}.hero-copy p{margin:0;color:#dbe4ff;font-size:18px;line-height:1.8;max-width:640px}.hero-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hero-feature{border:1px solid rgba(255,255,255,.12);background:#ffffff12;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:16px}.hero-feature strong{display:block;margin-bottom:8px;color:#fff;font-size:15px}.hero-feature span{color:#dbe4ff;font-size:14px;line-height:1.6}.login-panel{display:flex;align-items:center;justify-content:center;padding:36px}.login-card{width:100%;max-width:470px;background:#fff;border:1px solid var(--border);border-radius:30px;padding:34px;box-shadow:0 24px 60px #0f172a1c}.login-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.lock{display:inline-flex;background:var(--reka-ink);color:#fff;padding:12px;border-radius:16px}.login-card h2{margin:0 0 6px;font-size:32px;line-height:1.1;color:#0f172a;letter-spacing:-.03em}.login-card p{margin:0 0 24px;color:var(--muted);line-height:1.7}.login-card label,.form-grid label{display:block;font-weight:700;color:#334155;font-size:14px;margin-bottom:14px}.login-card input,.form-grid input,.form-grid select,.filter{width:100%;margin-top:8px;border:1px solid #cbd5e1;border-radius:14px;padding:12px 13px;outline:none;background:#fff}.login-card input:focus,.form-grid input:focus,.form-grid select:focus,.filter:focus,.search input:focus{border-color:var(--reka-blue);box-shadow:0 0 0 4px #3437961f}.plan-field-wrap{display:grid;gap:10px}.plan-help-card{margin-top:-2px;border:1px solid #dbe2f0;background:linear-gradient(180deg,#f8fbff,#fff);border-radius:18px;padding:14px 16px}.plan-help-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.plan-help-top strong{font-size:15px;color:#0f172a}.plan-help-top span{font-size:12px;color:var(--reka-blue);font-weight:700}.plan-help-card p{margin:8px 0 6px;color:#334155;line-height:1.6;font-size:13px}.plan-help-card small{display:block;color:var(--muted);line-height:1.5}.plan-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.plan-mini-card{border:1px solid #dbe2f0;border-radius:14px;padding:10px 12px;background:#fff;display:grid;gap:3px}.plan-mini-card strong{font-size:13px;color:#0f172a}.plan-mini-card span{font-size:12px;color:#64748b}.plan-mini-card.active{border-color:#34379659;background:linear-gradient(180deg,#eef1ff,#fff);box-shadow:inset 0 0 0 1px #34379614}.app-shell{min-height:100vh;display:flex}.sidebar{width:292px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.side-brand{padding:22px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.sidebar-logo{width:105px;height:auto;object-fit:contain;flex:none}.side-brand strong{display:block;font-size:17px;color:#111827}.sidebar nav{padding:16px;display:grid;gap:6px;flex:1}.sidebar nav button,.logout,.mobile-nav button{border:0;background:transparent;color:#475569;padding:12px 14px;border-radius:14px;text-align:left;font-weight:800;display:flex;align-items:center;gap:10px;cursor:pointer}.sidebar nav button.active,.sidebar nav button:hover,.mobile-nav button.active{background:linear-gradient(135deg,var(--reka-blue),var(--reka-blue-dark));color:#fff}.logout{margin:16px}.logout:hover{background:#fff1f2;color:#991b1b}main{flex:1;min-width:0}.topbar{background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:18px 28px;display:flex;justify-content:space-between;gap:20px;align-items:center;position:sticky;top:0;z-index:20}.topbar h1{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.03em}.topbar p{margin:6px 0 0;color:var(--muted);line-height:1.6}.topbar-brand-mobile{display:none}.top-actions,.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.content{padding:28px}.page-stack{display:grid;gap:22px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.panel-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:18px}.stat-card,.panel{background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:0 1px 3px #0f172a0d}.stat-card{padding:22px;display:flex;gap:16px}.stat-icon{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,var(--reka-blue),var(--reka-blue-dark));color:#fff;display:grid;place-items:center;flex:none}.stat-label{color:var(--muted);font-weight:700}.stat-value{font-size:30px;font-weight:850;margin-top:6px}.stat-helper{font-size:13px;color:var(--muted);margin-top:4px}.panel{padding:24px}.inner-panel{padding:0;border:0;box-shadow:none}.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.compact-bottom{margin-bottom:14px}.panel-head h2,.panel h2{margin:0;font-size:22px;letter-spacing:-.02em}.panel-head p{color:var(--muted);margin:5px 0 0;line-height:1.6}.hero-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:18px;padding:28px;background:radial-gradient(circle at 90% 20%,rgba(237,28,36,.12),transparent 24%),radial-gradient(circle at 10% 90%,rgba(52,55,150,.1),transparent 20%),linear-gradient(180deg,#fff,#fbfcff)}.hero-panel-copy h2{margin:14px 0 10px;font-size:34px;line-height:1.1;letter-spacing:-.04em}.hero-panel-copy p{margin:0;color:var(--muted);line-height:1.75;max-width:700px}.hero-panel-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.hero-panel-side{display:flex;align-items:stretch}.server-mini-card{width:100%;border-radius:22px;padding:22px;border:1px solid #dbe2f0;background:linear-gradient(135deg,#101828,#20265e 70%,#343796);color:#fff}.server-mini-title{font-size:14px;color:#cfd7ff;margin-bottom:12px}.server-mini-state{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;background:#ffffff1f;font-weight:800}.server-mini-meta{margin-top:18px;display:grid;gap:12px}.server-mini-meta span{display:block;color:#cfd7ff;font-size:12px;margin-bottom:4px}.server-mini-meta strong{font-size:15px;word-break:break-all}.server-card{background:#fafcff;border:1px solid var(--border);border-radius:18px;padding:18px}.info-grid,.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.info{background:#fafcff;border:1px solid var(--border);border-radius:16px;padding:14px}.info span{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}.info strong{font-size:15px;word-break:break-word}.span-two{grid-column:span 2}.timeline-list{display:grid;gap:14px}.timeline-list>div{display:flex;gap:14px;align-items:flex-start;padding:14px;border:1px solid var(--border);background:#fafcff;border-radius:16px}.timeline-list span{width:30px;height:30px;flex:none;border-radius:999px;background:linear-gradient(135deg,var(--reka-red),var(--reka-red-dark));color:#fff;display:grid;place-items:center;font-weight:800}.timeline-list small{display:block;color:var(--muted);margin-top:4px;line-height:1.5}.search{min-width:360px;height:46px;border:1px solid #cbd5e1;background:#fff;border-radius:14px;display:flex;align-items:center;gap:8px;padding:0 12px}.search input{border:0;outline:0;min-width:180px;width:100%;background:transparent}.filter{min-width:180px;height:46px;margin-top:0}.licenses-head{align-items:flex-end}.controls-row{width:100%;justify-content:flex-end}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:18px}.compact-wrap{max-height:380px}.table-wrap table{width:100%;border-collapse:collapse;font-size:14px}th{background:#fafcff;color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.04em;text-align:left;padding:13px 14px}td{border-top:1px solid var(--border);padding:14px;color:#334155;vertical-align:top}tr:hover td{background:#fafcff}.row-selected td{background:#f7f9ff}td strong{display:block;color:#111827}td small{display:block;color:var(--muted);margin-top:4px;line-height:1.5}.action-stack{display:flex;gap:8px;flex-wrap:wrap}.mobile-license-list{display:none}.mobile-license-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px;display:grid;gap:14px}.mobile-license-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.mobile-license-top strong{display:block;font-size:16px;color:#111827}.mobile-license-top small{display:block;margin-top:4px;color:var(--muted)}.mobile-license-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-license-meta span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.mobile-license-meta strong{display:block;font-size:14px;word-break:break-word}.mobile-actions .btn{flex:1 1 calc(50% - 4px)}.loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:180px;color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:46px 20px;color:var(--muted);border:1px dashed #cbd5e1;border-radius:18px;background:#fafcff}.empty h3{color:#111827;margin:0 0 8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0206178c;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:24px;box-shadow:0 30px 80px #02061766;width:min(760px,100%);max-height:90vh;overflow:auto}.modal-head{padding:22px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.icon-btn{border:0;background:#f1f5f9;border-radius:10px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer}.form-grid{padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.span-2{grid-column:span 2}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;flex-wrap:wrap}.copy-box{margin:22px 24px;padding:14px;background:#fafcff;border:1px solid var(--border);border-radius:16px;display:flex;justify-content:space-between;gap:12px;align-items:center}.copy-box code,.mono{font-weight:800;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.link{border:0;background:transparent;color:var(--reka-blue);font-weight:800;cursor:pointer;padding:0;width:fit-content}.detail-head{align-items:center}.detail-actions{justify-content:flex-end}.confirm-box{padding:24px;display:grid;gap:16px}.confirm-icon{width:52px;height:52px;border-radius:16px;background:#fff7ed;color:#c2410c;display:grid;place-items:center}.toast{position:fixed;right:24px;bottom:24px;z-index:80;min-width:280px;max-width:420px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--border);background:#fff}.toast strong{display:block;margin-bottom:4px}.toast button{border:0;background:transparent;cursor:pointer;color:inherit}.toast-success{border-color:#a7f3d0;background:#ecfdf5;color:#065f46}.toast-error{border-color:#fecdd3;background:#fff1f2;color:#9f1239}.toast-info{border-color:#c7d2fe;background:#eef2ff;color:#3730a3}.mobile-nav,.mobile-only-inline,.mobile-only-block{display:none}.desktop-only{display:block}@media (max-width: 1280px){.hero-copy h2{font-size:clamp(38px,4.6vw,52px)}.hero-grid{grid-template-columns:1fr;max-width:520px}}@media (max-width: 1180px){.panel-grid,.hero-panel{grid-template-columns:1fr}.stats,.info-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span-two{grid-column:span 2}.search{min-width:280px}}@media (max-width: 980px){.login-page{grid-template-columns:1fr}.login-hero{min-height:auto;padding:28px 22px 20px;gap:24px}.hero-copy h2{font-size:34px}.hero-copy p{font-size:16px}.login-panel{padding:18px 18px 26px}.login-card{max-width:100%;padding:24px;border-radius:24px}.sidebar{display:none}.topbar{padding:16px 16px 14px;display:block}.topbar-brand-mobile{display:flex;align-items:center;gap:10px;margin-bottom:12px}.topbar-brand-mobile img{width:72px;height:auto}.topbar-brand-mobile strong{display:block;font-size:15px}.topbar-brand-mobile span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.topbar h1{font-size:24px}.topbar p{margin-top:5px}.top-actions{margin-top:12px}.mobile-only-inline{display:inline-flex}.content{padding:16px 16px 92px}.panel,.stat-card,.hero-panel,.mobile-license-card{border-radius:20px}.panel-head,.detail-head,.licenses-head{display:block}.controls-row,.detail-actions{width:100%;justify-content:flex-start;margin-top:14px}.row{margin-top:12px}.search,.filter,.controls-row>.btn{width:100%;min-width:100%}.desktop-only{display:none}.mobile-only-block{display:grid;gap:14px}.mobile-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:fixed;left:12px;right:12px;bottom:12px;z-index:35;padding:8px;background:#fffffff0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:20px;box-shadow:0 18px 40px #0f172a24}.mobile-nav button{justify-content:center;flex-direction:column;gap:6px;padding:10px 8px;border-radius:14px;text-align:center;font-size:12px}.mobile-nav button span{line-height:1.1}}@media (max-width: 720px){.stats,.hero-grid{grid-template-columns:1fr}.brand-logo-full{width:140px}.hero-brand-strip{align-items:flex-start}.brand-copy h1{font-size:22px}.hero-copy h2{font-size:30px}.hero-copy p{font-size:15px;line-height:1.7}.info-grid,.detail-grid,.mobile-license-meta,.form-grid{grid-template-columns:1fr}.span-two,.span-2{grid-column:auto}.copy-box{flex-direction:column;align-items:flex-start}.mobile-actions .btn{flex:1 1 100%}.detail-actions .btn{width:100%}.modal{width:100%;max-height:calc(100vh - 24px);border-radius:20px}.modal-head,.form-grid{padding:18px}.toast{left:16px;right:16px;bottom:88px;min-width:auto;max-width:none}}.cyber-login-page{grid-template-columns:58% 42%;background:#f7f9fd}.cyber-hero{min-height:100vh;padding:46px 56px 42px;justify-content:space-between;isolation:isolate;background:radial-gradient(circle at 88% 86%,rgba(237,28,36,.26),transparent 19%),radial-gradient(circle at 73% 26%,rgba(33,150,243,.2),transparent 18%),linear-gradient(135deg,#051226,#071c3a 45%,#111a3a)}.cyber-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;opacity:.42;background-image:linear-gradient(30deg,rgba(35,124,255,.13) 12%,transparent 12.5%,transparent 87%,rgba(35,124,255,.13) 87.5%,rgba(35,124,255,.13)),linear-gradient(150deg,rgba(35,124,255,.13) 12%,transparent 12.5%,transparent 87%,rgba(35,124,255,.13) 87.5%,rgba(35,124,255,.13)),linear-gradient(30deg,rgba(35,124,255,.13) 12%,transparent 12.5%,transparent 87%,rgba(35,124,255,.13) 87.5%,rgba(35,124,255,.13)),linear-gradient(150deg,rgba(35,124,255,.13) 12%,transparent 12.5%,transparent 87%,rgba(35,124,255,.13) 87.5%,rgba(35,124,255,.13));background-size:76px 132px;background-position:0 0,0 0,38px 66px,38px 66px}.cyber-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:155px;z-index:-1;opacity:.78;background:linear-gradient(90deg,rgba(25,119,255,.42) 1px,transparent 1px) 0 74px / 44px 1px repeat-x,radial-gradient(circle at 23% 88%,rgba(0,153,255,.75) 0 2px,transparent 3px),radial-gradient(circle at 63% 70%,rgba(237,28,36,.7) 0 2px,transparent 3px),linear-gradient(0deg,rgba(0,120,255,.16),transparent 80%)}.cyber-brand-strip{align-items:center;gap:22px}.cyber-logo{width:clamp(150px,16vw,190px);filter:drop-shadow(0 10px 20px rgba(0,0,0,.2))}.brand-divider{width:1px;height:56px;background:#ffffff8c;flex:none}.cyber-brand-strip .brand-copy h1{font-size:clamp(22px,1.8vw,28px);color:#fff}.cyber-brand-strip .brand-copy p{color:#d8e1ff;font-size:16px}.cyber-copy{max-width:650px;gap:18px}.cyber-copy h2{font-size:clamp(46px,4.7vw,66px);max-width:650px;text-wrap:balance;text-shadow:0 12px 26px rgba(0,0,0,.2)}.red-line{width:92px;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--reka-red),#ff4d55);box-shadow:0 0 16px #ed1c2473}.cyber-copy p{max-width:570px;color:#e8f0ffeb}.cyber-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:12px;max-width:880px}.cyber-feature-card{min-height:172px;border:1px solid rgba(145,177,255,.32);border-radius:18px;background:linear-gradient(180deg,#ffffff13,#ffffff06);box-shadow:inset 0 1px #ffffff1f,0 20px 44px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;display:grid;gap:10px;position:relative;overflow:hidden}.cyber-feature-card:after{content:"";position:absolute;inset:auto -40px -45px auto;width:110px;height:110px;background:radial-gradient(circle,rgba(237,28,36,.18),transparent 66%)}.feature-icon{width:54px;height:54px;border-radius:999px;display:grid;place-items:center;color:#ff2b36;background:radial-gradient(circle,#132345f2,#050d1feb);border:1px solid rgba(0,166,255,.55);box-shadow:0 0 0 1px #ed1c2461,0 0 22px #0099ff1f}.feature-icon svg{width:25px;height:25px}.feature-signal{position:absolute;top:42px;left:105px;width:110px;height:10px;background:radial-gradient(circle,#28aaff 1.7px,transparent 2px) 0 50% / 10px 10px repeat-x;opacity:.9}.cyber-feature-card strong{color:#fff;font-size:18px;margin-top:4px}.cyber-feature-card span{color:#e8f0ffd9;line-height:1.55}.cyber-mesh{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.cyber-mesh:before{content:"";position:absolute;right:-70px;top:100px;width:510px;height:510px;border-radius:999px;border:1px solid rgba(255,57,66,.42);box-shadow:inset 0 0 80px #0077ff29,0 0 46px #ed1c2414;background:radial-gradient(circle,rgba(26,126,255,.25) 1px,transparent 2px) 0 0 / 8px 8px,radial-gradient(circle at center,rgba(0,141,255,.16),transparent 65%)}.node{position:absolute;width:8px;height:8px;border-radius:999px;background:#1fb6ff;box-shadow:0 0 14px #1fb6ff,0 0 32px #1fb6ff73}.node-a{right:15%;top:18%;background:#ff2b36;box-shadow:0 0 18px #ff2b36}.node-b{right:25%;top:34%}.node-c{right:36%;top:52%}.node-d{right:8%;bottom:12%;background:#ff2b36;box-shadow:0 0 18px #ff2b36}.cyber-shield-orbit{position:absolute;right:6%;top:25%;width:min(330px,32vw);aspect-ratio:1;display:grid;place-items:center;opacity:.86;pointer-events:none}.orbit{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border-radius:50%;border:1px solid rgba(56,189,248,.28)}.orbit-red{top:0;right:0;bottom:0;left:0;transform:rotate(-18deg) scaleX(1.2);border-color:#ed1c245c;border-left-color:transparent}.orbit-blue{transform:rotate(23deg) scaleX(1.08)}.shield-holo{width:150px;height:174px;display:grid;place-items:center;color:#38bdf8;background:linear-gradient(180deg,#0ea5e914,#0ea5e906);border:2px solid rgba(56,189,248,.54);clip-path:polygon(50% 0,92% 16%,86% 72%,50% 100%,14% 72%,8% 16%);box-shadow:inset 0 0 28px #38bdf833,0 0 30px #38bdf833}.shield-holo svg{width:54px;height:54px}.cyber-panel{position:relative;background:radial-gradient(circle at 55% 45%,rgba(52,55,150,.07),transparent 28%),linear-gradient(180deg,#fbfcff,#f4f7fb);overflow:hidden;display:flex;align-items:center;justify-content:center}.cyber-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.38;background:radial-gradient(circle,rgba(52,55,150,.18) 1px,transparent 1.5px) 86% 9% / 14px 14px,linear-gradient(30deg,rgba(52,55,150,.08) 12%,transparent 12.5%,transparent 87%,rgba(52,55,150,.08) 87.5%,rgba(52,55,150,.08)) 94% 55% / 82px 142px}.panel-circuit{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(52,55,150,.1),transparent 22%) 0 82px / 100% 1px no-repeat,linear-gradient(90deg,transparent,rgba(52,55,150,.1) 60%,transparent) 0 23% / 100% 1px no-repeat;pointer-events:none}.panel-orbit{position:absolute;right:-10%;top:10%;width:min(640px,54vw);aspect-ratio:1;border-radius:50%;border:1px solid rgba(100,116,139,.14);opacity:.6;pointer-events:none}.panel-orbit:before,.panel-orbit:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(148,163,184,.16)}.panel-orbit:before{top:15%;right:15%;bottom:15%;left:15%}.panel-orbit:after{top:32%;right:32%;bottom:32%;left:32%}.cyber-login-card{position:relative;z-index:1;max-width:535px;padding:48px 50px;border-radius:30px;border:1px solid rgba(203,213,225,.88);box-shadow:0 30px 80px #0f172a1f,0 0 0 1px #ffffffa6 inset}.secure-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}.secure-emblem{width:72px;height:72px;border-radius:18px 18px 26px 26px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0f172a,#1f2a55 70%,#062f63);border:2px solid rgba(255,255,255,.75);box-shadow:0 14px 34px #0f172a33,0 0 0 2px #ed1c2440,0 0 24px #0ea5e933;clip-path:polygon(50% 0,92% 14%,86% 72%,50% 100%,14% 72%,8% 14%)}.secure-emblem svg{width:32px;height:32px}.secure-badge{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:16px;color:#dc2626;background:#fff5f5;border:1px solid #fecaca}.secure-badge svg{flex:none}.secure-badge strong{display:block;font-size:15px}.secure-badge span{display:block;color:#9f1239;font-size:12px;margin-top:2px}.cyber-login-card h2{font-size:clamp(34px,3vw,42px);margin-bottom:10px}.cyber-login-card p{max-width:370px;font-size:16px}.secure-input{margin-top:8px;min-height:64px;border:1px solid #cbd5e1;border-radius:14px;display:flex;align-items:center;gap:12px;padding:0 16px;background:#fff;transition:.18s ease}.secure-input:focus-within{border-color:var(--reka-blue);box-shadow:0 0 0 4px #3437961f}.secure-input input{flex:1;border:0!important;box-shadow:none!important;margin:0!important;padding:0!important;min-width:0;font-weight:750;font-size:18px;line-height:1.25;color:#0f172a}.secure-input svg{color:#526582;flex:none;width:19px;height:19px}.secure-input .valid-icon{color:#22c55e}.secure-input .eye-btn{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#0f172a;flex:none}.secure-input .eye-btn:hover{color:var(--reka-blue)}.secure-input .eye-btn:focus-visible{outline:0;box-shadow:0 0 0 3px #34379629;border-radius:999px}.secure-input .eye-icon{color:currentColor}.secure-note{display:flex;align-items:center;gap:9px;margin:8px 0 22px;color:#2563eb;font-weight:700}.cyber-signin{height:64px;font-size:22px;border-radius:16px;box-shadow:0 18px 32px #dc262647}@media (max-width: 1280px){.cyber-copy h2{font-size:clamp(40px,4.3vw,56px)}.cyber-shield-orbit{opacity:.42;right:0}.cyber-feature-grid{grid-template-columns:1fr;max-width:520px}.cyber-feature-card{min-height:auto}}@media (max-width: 980px){.panel-orbit{display:none}.cyber-login-page{grid-template-columns:1fr}.cyber-hero{min-height:auto;padding:26px 20px 22px;gap:26px}.brand-divider{height:42px}.cyber-logo{width:132px}.cyber-brand-strip .brand-copy h1{font-size:18px}.cyber-brand-strip .brand-copy p{font-size:13px}.cyber-copy h2{font-size:32px}.cyber-copy p{font-size:15px}.cyber-shield-orbit,.cyber-feature-grid{display:none}.cyber-login-card{max-width:100%;padding:26px 22px;border-radius:24px}.secure-card-top{margin-bottom:20px}.secure-emblem{width:58px;height:58px}.secure-badge{padding:9px 12px}.secure-badge span{display:none}.cyber-login-card h2{font-size:30px}.secure-input{height:54px}.cyber-signin{height:56px;font-size:18px}}@media (max-width: 540px){.cyber-brand-strip{gap:12px}.brand-divider{display:none}.cyber-copy h2{font-size:28px}.secure-card-top{align-items:center}.secure-badge{font-size:12px}}.secure-emblem img{width:44px;height:44px;object-fit:contain;display:block}.feature-icon img{width:100%;height:100%;object-fit:contain;display:block}.server-mini-state.offline{background:#ef44441f;color:#b91c1c}.server-status-meta{display:grid;grid-template-columns:1fr;gap:12px}.visual-summary-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.chart-panel{overflow:hidden}.chart-area{width:100%;height:320px}.chart-area .empty-state{height:100%;min-height:unset}.chart-legend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.chart-stat{display:flex;align-items:center;gap:10px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;border-radius:16px;padding:12px}.chart-stat>span{width:12px;height:12px;border-radius:999px;flex:0 0 auto}.chart-stat small{display:block;color:#64748b;font-size:12px}.chart-stat strong{color:#0f172a;font-size:18px}@media (max-width: 900px){.visual-summary-grid{grid-template-columns:1fr}.chart-area{height:260px}.chart-legend-grid{grid-template-columns:1fr}}@media (max-width: 768px){.plan-mini-grid{grid-template-columns:1fr}.plan-help-top{flex-direction:column}.secure-input{min-height:62px}.secure-input input{font-size:17px}}.desktop-spacer{display:block}@media (max-width: 768px){.desktop-spacer{display:none}}.sidebar{width:268px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.side-brand{padding:18px 18px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.sidebar-logo{width:96px;height:auto;object-fit:contain;flex:none}.side-brand strong{display:block;font-size:16px;line-height:1.2;color:#0f172a;letter-spacing:-.02em}.side-brand span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.sidebar nav{padding:14px;display:grid;gap:8px;flex:1;align-content:start}.sidebar nav button,.logout{position:relative;min-height:48px;width:100%;border:0;border-radius:14px;background:transparent;color:#334155;display:flex;align-items:center;gap:12px;padding:0 15px;text-align:left;font-size:14px;font-weight:800;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .22s ease,transform .22s ease,box-shadow .22s ease}.sidebar nav button:before,.logout:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,var(--reka-blue),var(--reka-blue-dark));transform:translate(-104%);transition:transform .28s cubic-bezier(.2,.8,.2,1);z-index:-1}.sidebar nav button:after,.logout:after{content:"";position:absolute;left:7px;top:50%;width:4px;height:0;border-radius:999px;background:#ed1c24;transform:translateY(-50%);transition:height .22s ease}.sidebar nav button svg,.logout svg{width:19px;height:19px;flex:none;transition:transform .22s ease,color .22s ease,opacity .22s ease}.sidebar nav button:hover,.sidebar nav button.active{color:#fff;transform:translate(3px);box-shadow:0 12px 28px #2d31922e}.sidebar nav button:hover:before,.sidebar nav button.active:before{transform:translate(0)}.sidebar nav button.active:after{height:24px}.sidebar nav button:hover svg,.sidebar nav button.active svg{transform:translate(3px) scale(1.04);color:#fff}.logout{margin:14px;width:calc(100% - 28px)}.logout:before{background:linear-gradient(135deg,#ed1c24,#b91c1c)}.logout:hover{color:#fff;transform:translate(3px);box-shadow:0 12px 28px #ed1c242e;background:transparent}.logout:hover:before{transform:translate(0)}.logout:hover:after{height:22px;background:#fff}.logout:hover svg{transform:translate(3px) scale(1.04);color:#fff}.mobile-nav button{position:relative;overflow:hidden;transition:transform .18s ease,color .18s ease,background .18s ease}.mobile-nav button:hover{transform:translateY(-2px)}@media (prefers-reduced-motion: reduce){.sidebar nav button,.sidebar nav button:before,.sidebar nav button:after,.sidebar nav button svg,.logout,.logout:before,.logout:after,.logout svg,.mobile-nav button{transition:none}}@media (max-width: 960px){.sidebar{display:none}}.software-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px;padding:0 22px 22px}.software-column{display:grid;gap:14px;align-content:start}.software-column h3{margin:0;color:#0f172a}.software-card{background:#f8fafc;border:1px solid var(--border);border-radius:18px;padding:16px}.compact-form{gap:12px}.software-card-list{display:grid;gap:10px}.product-select-card{text-align:left;display:grid;gap:6px;border:1px solid var(--border);background:#fff;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.product-select-card:hover,.product-select-card.active{transform:translateY(-2px);border-color:#34379659;box-shadow:0 14px 28px #0f172a14}.product-select-card span{color:var(--muted);font-size:13px}.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;color:#334155;font-weight:800}.check-row input{width:auto}.form-grid textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:11px 12px;font:inherit;resize:vertical;background:#fff}.badge-stack{display:flex;gap:6px;flex-wrap:wrap}.json-preview{margin:18px 22px 22px;padding:16px;background:#0f172a;color:#e2e8f0;border-radius:16px;overflow:auto;font-size:12px;line-height:1.6}.software-check-form{padding:0 22px 22px}@media (max-width: 1100px){.software-layout{grid-template-columns:1fr}}.software-card-title-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.software-card-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.table-actions{justify-content:flex-start;gap:8px}.table-actions .btn{white-space:nowrap}.product-select-card:focus-visible{outline:3px solid rgba(52,55,150,.25);outline-offset:2px}.software-updates-page .modal{max-width:920px}.software-updates-page .modal .form-grid{max-height:min(72vh,720px);overflow:auto;padding-right:6px}



/* V25: Mobile layout proportional polish
   Focus: smaller screens, software update page, forms, modals, table cards, bottom nav.
   Backend/API/DB unchanged.
*/
@media (max-width: 980px) {
  html, body, #root {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .app-shell {
    display: block;
    min-width: 0;
  }

  main {
    width: 100%;
    min-width: 0;
  }

  .topbar {
    position: sticky;
    top: 0;
    z-index: 25;
    padding: max(14px, env(safe-area-inset-top)) 14px 12px;
  }

  .topbar h1 {
    font-size: clamp(20px, 5.4vw, 24px);
    line-height: 1.15;
  }

  .topbar p {
    font-size: 13px;
    line-height: 1.55;
  }

  .topbar-brand-mobile {
    margin-bottom: 10px;
  }

  .topbar-brand-mobile img {
    width: 64px;
  }

  .top-actions {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 8px;
    margin-top: 10px;
  }

  .top-actions .badge,
  .top-actions .btn,
  .top-actions button {
    width: 100%;
    justify-content: center;
  }

  .content {
    width: 100%;
    padding: 14px 12px calc(106px + env(safe-area-inset-bottom));
    box-sizing: border-box;
  }

  .page-stack {
    gap: 14px;
  }

  .panel {
    padding: 16px;
    border-radius: 18px;
  }

  .panel-head,
  .detail-head,
  .licenses-head {
    gap: 12px;
    margin-bottom: 14px;
  }

  .panel-head h2,
  .panel h2 {
    font-size: 19px;
    line-height: 1.25;
  }

  .panel-head p,
  .panel p {
    font-size: 13px;
    line-height: 1.55;
  }

  .stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .stat-card {
    min-width: 0;
    padding: 14px;
    gap: 10px;
    border-radius: 18px;
  }

  .stat-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }

  .stat-value {
    font-size: 24px;
  }

  .stat-label,
  .stat-helper {
    font-size: 12px;
  }

  .visual-summary-grid,
  .panel-grid,
  .hero-panel {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .chart-area {
    height: 235px;
  }

  .chart-legend-grid {
    grid-template-columns: 1fr;
  }

  .row,
  .controls-row,
  .detail-actions,
  .modal-actions,
  .action-stack {
    gap: 8px;
  }

  .controls-row,
  .detail-actions,
  .modal-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .btn,
  button.btn {
    min-height: 44px;
    justify-content: center;
  }

  .search,
  .filter,
  .controls-row > .btn,
  .controls-row > button,
  .detail-actions .btn {
    width: 100%;
    min-width: 0;
  }

  .search input,
  input,
  select,
  textarea {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .form-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px;
  }

  .span-2,
  .span-two {
    grid-column: auto;
  }

  .copy-box {
    margin: 14px 0 0;
    width: 100%;
    box-sizing: border-box;
  }

  .copy-box code,
  .mono,
  td small,
  td strong,
  .info strong {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .detail-grid,
  .info-grid,
  .mobile-license-meta {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .info {
    min-width: 0;
    padding: 12px;
    border-radius: 14px;
  }

  .mobile-license-card {
    padding: 14px;
    border-radius: 18px;
  }

  .mobile-license-top {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .mobile-actions,
  .action-stack.mobile-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .modal-backdrop {
    align-items: stretch;
    justify-content: center;
    padding: 10px;
  }

  .modal {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - 20px);
    border-radius: 18px;
  }

  .modal-head {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #fff;
    padding: 14px 16px;
    gap: 10px;
  }

  .modal-head h3 {
    font-size: 18px;
    line-height: 1.25;
  }

  .icon-btn {
    flex: 0 0 38px;
  }

  .toast {
    left: 12px;
    right: 12px;
    bottom: calc(92px + env(safe-area-inset-bottom));
    min-width: auto;
    max-width: none;
  }

  .mobile-nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    left: 8px;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    gap: 4px;
    padding: 6px;
    border-radius: 20px;
  }

  .mobile-nav button {
    min-width: 0;
    padding: 8px 4px;
    border-radius: 15px;
    gap: 4px;
    justify-content: center;
  }

  .mobile-nav button svg {
    width: 18px;
    height: 18px;
  }

  .mobile-nav button span {
    font-size: 10.5px;
    line-height: 1.05;
    white-space: normal;
    text-align: center;
  }

  .mobile-nav button span {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

@media (max-width: 720px) {
  .login-page,
  .cyber-login-page {
    min-height: 100dvh;
  }

  .login-hero,
  .cyber-hero {
    padding: 22px 16px 18px;
  }

  .login-panel {
    padding: 12px;
  }

  .login-card,
  .cyber-login-card {
    padding: 22px 18px;
    border-radius: 22px;
  }

  .cyber-copy h2,
  .hero-copy h2 {
    font-size: clamp(26px, 8vw, 30px);
  }

  .secure-input {
    min-height: 56px;
  }

  .stats {
    grid-template-columns: 1fr;
  }

  .stat-card {
    align-items: center;
  }

  .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 520px) {
  .content {
    padding-left: 10px;
    padding-right: 10px;
  }

  .panel {
    padding: 14px;
    border-radius: 17px;
  }

  .panel-head h2,
  .panel h2 {
    font-size: 18px;
  }

  .topbar-brand-mobile img {
    width: 58px;
  }

  .topbar h1 {
    font-size: 20px;
  }

  .chart-area {
    height: 215px;
  }

  .btn,
  button.btn {
    width: 100%;
  }

  .form-grid {
    padding: 14px;
  }

  .json-preview {
    margin: 12px 0 0;
    padding: 12px;
    border-radius: 14px;
    max-height: 360px;
    font-size: 11px;
    overflow: auto;
  }
}

/* V25: Software Updates mobile layout */
@media (max-width: 980px) {
  .software-updates-page {
    gap: 14px;
  }

  .software-updates-page > .panel {
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
  }

  .software-updates-page > .panel > .panel-head,
  .software-updates-page > .panel > .alert,
  .software-updates-page > .panel > .empty-state {
    margin-left: 14px;
    margin-right: 14px;
  }

  .software-layout {
    grid-template-columns: 1fr;
    padding: 0 14px 14px;
    gap: 14px;
  }

  .software-column {
    gap: 12px;
  }

  .software-column h3 {
    font-size: 16px;
  }

  .software-card {
    padding: 14px;
    border-radius: 16px;
  }

  .product-select-card {
    min-width: 0;
  }

  .software-card-title-row {
    align-items: flex-start;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }

  .software-card-title-row strong {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .software-card-actions {
    justify-content: stretch;
  }

  .software-card-actions .btn {
    width: 100%;
  }

  .software-updates-page .software-card.form-grid {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .software-check-form {
    padding: 0 14px 14px;
    grid-template-columns: 1fr;
  }

  .software-updates-page .compact-wrap {
    max-height: none;
  }

  .software-updates-page .table-wrap {
    border: 0;
    border-radius: 0;
    overflow: visible;
  }

  .software-updates-page table,
  .software-updates-page thead,
  .software-updates-page tbody,
  .software-updates-page tr,
  .software-updates-page td {
    display: block;
    width: 100%;
  }

  .software-updates-page thead {
    display: none;
  }

  .software-updates-page tbody {
    display: grid;
    gap: 12px;
    padding: 0 14px 14px;
  }

  .software-updates-page tr {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .05);
    overflow: hidden;
  }

  .software-updates-page tr:hover td {
    background: transparent;
  }

  .software-updates-page td {
    display: grid;
    grid-template-columns: 94px minmax(0, 1fr);
    gap: 10px;
    padding: 11px 14px;
    border-top: 1px solid var(--border);
    min-width: 0;
  }

  .software-updates-page td:first-child {
    border-top: 0;
  }

  .software-updates-page td::before {
    color: var(--muted);
    font-weight: 800;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .03em;
  }

  .software-updates-page td:nth-child(1)::before { content: "Version"; }
  .software-updates-page td:nth-child(2)::before { content: "Platform"; }
  .software-updates-page td:nth-child(3)::before { content: "Minimum"; }
  .software-updates-page td:nth-child(4)::before { content: "Installer"; }
  .software-updates-page td:nth-child(5)::before { content: "Status"; }
  .software-updates-page td:nth-child(6)::before { content: "Aksi"; }

  .software-updates-page .badge-stack,
  .software-updates-page .table-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .software-updates-page .table-actions .btn {
    width: 100%;
    white-space: normal;
  }

  .software-updates-page .modal {
    max-width: 100%;
  }

  .software-updates-page .modal .form-grid {
    max-height: none;
    overflow: visible;
    padding: 14px;
  }
}

@media (max-width: 390px) {
  .mobile-nav button span {
    font-size: 9.5px;
  }

  .mobile-nav button svg {
    width: 17px;
    height: 17px;
  }

  .software-updates-page td {
    grid-template-columns: 80px minmax(0, 1fr);
    padding: 10px 12px;
  }
}

