:root{--primary: #1d4e89;--primary-soft: #2f63a6;--accent: #6fb3e0;--ink: #1e2a36;--muted: #64748b;--line: #d8e0ea;--bg: #f4f7fb;--drawer: #e9eff6;--panel: #ffffff;--danger: #c0392b;--ok: #1d7a4d;--warn: #b45309;--radius: 12px;--shadow: 0 1px 3px rgba(30, 42, 54, .08)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}button{font:inherit}a{color:var(--primary)}.app{display:flex;height:100%}.drawer{width:230px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:18px 12px 14px;background:var(--drawer);border-right:1px solid var(--line);overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 18px}.brand-mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:700;font-size:16px}.brand-name{font-size:19px;font-weight:700;color:var(--primary);line-height:1.1}.brand-sub{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.4px;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:500;color:#1e2a36b8;background:none;border:none;width:100%;text-align:left;cursor:pointer;transition:background .15s,color .15s}.nav-item:hover{background:#ffffffb3;color:var(--ink)}.nav-item.active{background:var(--panel);color:var(--primary);box-shadow:var(--shadow)}.nav-item svg{flex-shrink:0}.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center;background:var(--primary);color:#fff;border-radius:999px;font-size:11px;font-weight:700}.drawer-spacer{flex:1}.drawer-foot{display:flex;gap:4px;padding:6px 4px 2px}.foot-btn{flex:1;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--muted);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.foot-btn:hover{color:var(--primary);border-color:var(--accent)}.foot-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.profile{display:flex;align-items:center;gap:10px;padding:10px 8px 2px;margin-top:6px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:700}.profile-name{font-size:13px;font-weight:600}.profile-sub{font-size:11px;color:var(--muted)}.content{flex:1;overflow-y:auto;padding:28px 32px 60px}.page-title{font-size:24px;font-weight:700;color:var(--ink);margin:0 0 4px}.page-sub{color:var(--muted);margin:0 0 22px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head .page-title{margin:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-title{font-size:15px;font-weight:700;color:var(--ink)}.panel-sub{font-size:12.5px;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid var(--primary);border-radius:9px;background:var(--primary);color:#fff;font-weight:600;cursor:pointer;transition:background .12s,opacity .12s}.btn:hover{background:var(--primary-soft)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:var(--panel);color:var(--primary)}.btn.ghost:hover{background:#6fb3e01f}.btn.danger{background:var(--panel);color:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:#c0392b14}.btn.sm{padding:6px 11px;font-size:12.5px}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--primary);border-color:var(--accent)}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}label.field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted)}.input,select.input,textarea.input{width:100%;height:40px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font:inherit;line-height:normal;outline:none}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.input:focus{border-color:var(--accent)}.input:disabled{background:#f1f5f9;color:var(--muted)}textarea.input{height:auto;min-height:70px;padding:9px 11px;resize:vertical}.row{display:flex;align-items:center;gap:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.error{color:var(--danger);font-size:13px}.ok-msg{color:var(--ok);font-size:13px}.empty{text-align:center;color:var(--muted);padding:28px 10px}.subtle{color:var(--muted)}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;color:#fff;background:var(--muted)}.badge.active,.badge.ok{background:var(--ok)}.badge.archived,.badge.revoked,.badge.removed{background:var(--danger)}.badge.suspended,.badge.frozen,.badge.draft,.badge.warn{background:var(--warn)}.badge.soft{background:#eef2f7;color:var(--muted)}.badge.aircraft{background:var(--primary)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#cdd6d2}.dot.on{background:var(--ok)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:9px 10px;border-bottom:1px solid #eef2f7;font-size:13px}.tbl tbody tr:hover{background:#f7fafd}.tbl td.num,.tbl th.num{text-align:center;font-variant-numeric:tabular-nums}.tbl-wrap{overflow-x:auto}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.tab{padding:9px 16px;border:none;background:none;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--ink)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:22px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);text-align:left}.stat-card.clickable{cursor:pointer}.stat-card.clickable:hover{border-color:var(--accent)}.stat-num{font-size:28px;font-weight:700;color:var(--primary);line-height:1.1}.stat-label{font-size:12.5px;color:var(--muted);margin-top:4px}.alert{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:9px;border-left:3px solid var(--warn);background:#fff7ec;font-size:13px;margin-bottom:8px}.alert.err{border-left-color:var(--danger);background:#fdeceb}.op-layout{display:grid;grid-template-columns:260px 1fr;gap:22px;align-items:start}.op-list{display:flex;flex-direction:column;gap:6px}.op-item{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;text-align:left;width:100%}.op-item:hover{border-color:var(--accent)}.op-item.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.op-item-name{font-weight:600}.op-item-meta{font-size:11.5px;color:var(--muted)}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#141e2d6b;display:grid;place-items:center;padding:20px}.modal{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--panel);border-radius:16px;box-shadow:0 18px 60px #141e2d4d}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-title{font-size:16px;font-weight:700}.modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.close-x{background:none;border:none;font-size:22px;line-height:1;color:var(--muted);cursor:pointer}.login{min-height:100%;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:30px 28px;display:flex;flex-direction:column;gap:14px;text-align:center}.login-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:4px}.login-card .btn{justify-content:center}.list-row{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eef2f7;flex-wrap:wrap}.list-row:last-child{border-bottom:none}.code-box{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#eef4fb;border:1px dashed var(--accent);border-radius:9px;font-family:ui-monospace,monospace}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);cursor:pointer;font-size:12.5px}.pill:hover{border-color:var(--accent)}.logo-box{width:132px;height:84px;flex-shrink:0;border:1px solid var(--line);border-radius:10px;background:#fbfdff;display:grid;place-items:center;overflow:hidden;padding:8px}.logo-box img{max-width:100%;max-height:100%;object-fit:contain}.code-pill{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;font-weight:700;letter-spacing:1.5px;color:var(--ink);background:#0000000f;padding:3px 9px;border-radius:6px}.tab-section-title{margin:0 0 10px;font-size:13px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--primary)}.act-row{display:grid;grid-template-columns:130px 140px 1fr;gap:12px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink)}.act-row:last-child{border-bottom:none}.act-type{font-weight:800;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}.act-type-login{color:var(--primary)}.act-type-export{color:#2e7d46}.act-time{font-variant-numeric:tabular-nums;color:var(--muted)}.act-user{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.act-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 6px 2px}
