/* JumpServer · 登录页 + 控制台（sygrp-jump） */
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;color:#1f2d3d;background:#f4f6f8}

/* ── 登录页：左 42% 深色 + 右白 ── */
.login-body{display:flex}
.login-left{flex:0 0 42%;background:#1f2d3d;display:flex;align-items:center;justify-content:center}
.login-left-inner{color:#fff;max-width:380px;padding:24px}
.brand{font-size:30px;font-weight:700;letter-spacing:.5px}
.tagline{font-size:13px;color:#8492a6;margin-top:6px}
.feat{list-style:none;margin:34px 0 0;padding:0}
.feat li{font-size:13px;color:#a8b6c4;padding:5px 0 5px 18px;position:relative}
.feat li:before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;background:#fa8c16;border-radius:1px}
.login-right{flex:1;display:flex;align-items:center;justify-content:center;background:#fff}
.login-box{width:340px}
.login-box h2{font-size:18px;font-weight:600;margin:0 0 26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;color:#5a6978;margin-bottom:5px}
.field .opt{color:#98a2ad;font-weight:400}
.field input{width:100%;height:36px;border:1px solid #cfd7e0;border-radius:4px;padding:0 10px;font-size:14px;outline:none;color:#1f2d3d}
.field input:focus{border-color:#fa8c16;box-shadow:0 0 0 2px rgba(250,140,24,.14)}
.msg{min-height:20px;font-size:12px;color:#e6532e;margin:-6px 0 8px}
.btn{width:100%;height:38px;background:#fa8c16;color:#fff;border:0;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer}
.btn:hover{background:#e07f0f}
.btn[disabled]{background:#f3c389;cursor:default}
.hint{font-size:12px;color:#98a2ad;margin-top:14px;text-align:center}

/* ── 控制台：顶部黑条 + 左树 + 主区 ── */
.top{height:46px;background:#1f2d3d;display:flex;align-items:center;padding:0 20px}
.top .lg{color:#fff;font-weight:700;font-size:15px;margin-right:28px}
.top a{color:#8492a6;margin-right:18px;text-decoration:none;font-size:13px}
.top a:hover{color:#cfd7e0}
.top a.on{color:#fff}
.top .me{margin-left:auto;color:#8492a6;font-size:12px}
.top .me b{color:#fa8c16;font-weight:400}
.top .me a{margin:0 0 0 12px}
.layout{display:flex;min-height:calc(100vh - 46px)}
.tree{width:212px;background:#fff;border-right:1px solid #e8ebef;padding-top:12px;flex:none}
.tree .g{padding:9px 18px;color:#5a6978;font-size:12px;cursor:pointer}
.tree .g:hover{background:#f7f9fb}
.tree .g.on{background:#fff5e8;color:#e07f0f;border-left:2px solid #fa8c16}
.tree .g i{font-style:normal;color:#98a2ad;float:right}
.main{flex:1;padding:18px 24px}
.main h3{font-size:14px;margin:0 0 4px;font-weight:600}
.main .sub{font-size:12px;color:#98a2ad;margin-bottom:14px}
.card{background:#fff;border:1px solid #e8ebef;border-radius:2px}
table{width:100%;border-collapse:collapse;background:#fff}
th{background:#f0f3f6;color:#5a6978;font-size:12px;text-align:left;padding:9px 12px;border-bottom:1px solid #e8ebef;white-space:nowrap}
td{padding:9px 12px;border-bottom:1px solid #f2f4f7;color:#333;font-size:13px}
tr:hover td{background:#fafbfc}
td.ip{font-family:Consolas,Menlo,monospace;color:#3b6ea5}
.pg{margin-top:12px;color:#98a2ad;font-size:12px}
.os{display:inline-block;width:14px;height:14px;border-radius:2px;vertical-align:-2px;margin-right:6px;background:#3b6ea5}
.os.win{background:#00adef}
.tag{display:inline-block;font-size:11px;border-radius:2px;padding:0 6px;line-height:17px}
.tag.ssh{background:#e8f4ec;color:#1a7f4b}
.tag.rdp{background:#e5f2fb;color:#24699e}
.tag.web{background:#f3eefe;color:#6e49cb}
.mono{font-family:Consolas,Menlo,monospace}
.cmd{font-family:Consolas,Menlo,monospace;font-size:12.5px;color:#333}
.cmd .dollar{color:#98a2ad;margin-right:6px}
.danger-cmd{color:#c0392b}
