/* ============================================================
   米线山设备管理 · 奶龙主题全站覆盖样式
   通过 CSS 变量 token + 分页覆盖规则，把原蓝灰配色统一为
   「奶黄 + 奶油白 + 暖棕」的治愈系奶龙视觉。
   各页面以 <body class="pg-xxx"> 作作用域隔离，互不干扰。
   ============================================================ */

:root{
  /* —— 浅色 token —— */
  --nl-yellow:#FFD43B;          /* 主色 · 奶黄 */
  --nl-orange:#FF9F1C;          /* 强调 · 奶橘 */
  --nl-orange-deep:#E88F0F;     /* 奶橘深（hover） */
  --nl-cream:#FFFBEA;           /* 背景 · 奶白 */
  --nl-card:#FFFDF4;            /* 卡片 · 奶油白 */
  --nl-belly:#FFF1B8;           /* 奶油 · 肚皮 */
  --nl-brown:#5B4636;           /* 文字 · 暖棕 */
  --nl-brown-soft:#8A7560;      /* 次级文字 */
  --nl-brown-faint:#A0896F;     /* 弱文字 */
  --nl-line:#F0E3B8;            /* 边框 · 奶油线 */
  --nl-line-soft:#F5ECD2;       /* 更浅边框 */
  --nl-th:#FFF6E0;              /* 表头 / 浅底 */
  --nl-hover:#FFF7E4;           /* hover 背景 */
  --nl-hover-strong:#FFF1C9;    /* 强调 hover 背景 */
  --nl-green:#8FC46A;           /* 成功 · 草绿 */
  --nl-green-deep:#6AA84F;      /* 成功深 */
  --nl-red:#E05A52;             /* 危险 · 暖红 */
  --nl-red-deep:#CE4A44;        /* 危险深 */
  --nl-blush:#FFA8A0;           /* 点缀 · 腮红 */
  --nl-shadow:0 24px 60px rgba(255,159,28,.16),0 4px 14px rgba(255,159,28,.08);

  /* —— 深色 token（投屏 / 解锁 / 后台头部）—— */
  --nl-dark-bg:#241B14;         /* 暖黑背景 */
  --nl-dark-bg2:#1A130D;
  --nl-dark-card:#2C2117;       /* 暖深卡片 */
  --nl-dark-card2:#33271B;
  --nl-dark-line:#4A3A2C;       /* 暖深边框 */
  --nl-dark-line2:#5A4734;
  --nl-dark-text:#F3E8D8;       /* 暖白文字 */
  --nl-dark-text2:#B7A48C;      /* 暖次级 */
  --nl-dark-text3:#8F7E68;      /* 暖弱 */
}

/* ============================================================
   1. 登录页 index.php  (body.pg-login)
   ============================================================ */
body.pg-login{
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(255,212,59,.22) 0%, transparent 55%),
    radial-gradient(1000px 500px at 110% 110%, rgba(255,168,160,.16) 0%, transparent 55%),
    linear-gradient(160deg, var(--nl-cream) 0%, #FFF3D6 100%);
  color:var(--nl-brown);
}
body.pg-login .card{
  background:rgba(255,253,244,.94);
  border-color:var(--nl-line);
  box-shadow:var(--nl-shadow);
}
body.pg-login .brand h1{color:var(--nl-brown)}
body.pg-login .brand p{color:var(--nl-brown-soft)}
body.pg-login .tabs{border-color:var(--nl-line)}
body.pg-login .tab{color:var(--nl-brown-soft)}
body.pg-login .tab:hover,
body.pg-login .tab.active{color:var(--nl-orange);border-color:var(--nl-orange)}
body.pg-login .field label{color:var(--nl-brown-soft)}
body.pg-login .req{color:var(--nl-red)}
body.pg-login .ipt{border-color:var(--nl-line)}
body.pg-login .ipt:focus{border-color:var(--nl-orange);box-shadow:0 0 0 3px rgba(255,159,28,.14)}
body.pg-login .captcha-row img{border-color:var(--nl-line);background:var(--nl-belly)}
body.pg-login .btn{
  background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));
  box-shadow:0 6px 16px rgba(255,159,28,.3);
}
body.pg-login .btn:hover{box-shadow:0 10px 22px rgba(255,159,28,.36)}
body.pg-login .msg.err{background:#FFF0EF;color:var(--nl-red);border-color:#FFD3CE}
body.pg-login .msg.ok{background:#F0F7E8;color:var(--nl-green-deep);border-color:#D5E9C0}
body.pg-login .tip{color:var(--nl-brown-soft)}
body.pg-login .tip a{color:var(--nl-orange)}

/* ============================================================
   2. 用户后台 user.php  (body.pg-user)
   ============================================================ */
body.pg-user{background:var(--nl-cream);color:var(--nl-brown)}
body.pg-user a{color:var(--nl-orange)}

/* 顶栏 */
body.pg-user .topbar{background:var(--nl-card);border-bottom-color:var(--nl-line)}
body.pg-user .brand{color:var(--nl-brown)}
body.pg-user .brand i{color:var(--nl-orange)}
body.pg-user .top-actions{color:var(--nl-brown-soft)}
body.pg-user .quota b{color:var(--nl-orange)}

/* 按钮 */
body.pg-user .btn{border-color:var(--nl-line);background:#fff;color:var(--nl-brown-soft)}
body.pg-user .btn:hover{border-color:var(--nl-orange);color:var(--nl-orange)}
body.pg-user .btn-primary{background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));border-color:transparent;color:#fff}
body.pg-user .btn-primary:hover{background:linear-gradient(135deg,#F5C72E,var(--nl-orange-deep));color:#fff}
body.pg-user .btn-success{background:var(--nl-green);border-color:var(--nl-green);color:#fff}
body.pg-user .btn-success:hover{background:var(--nl-green-deep);color:#fff}
body.pg-user .btn-danger{background:var(--nl-red);border-color:var(--nl-red);color:#fff}
body.pg-user .btn-danger:hover{background:var(--nl-red-deep);color:#fff}

/* 页头 / hero / 统计 */
body.pg-user .page-head span{color:var(--nl-brown-faint)}
body.pg-user .hero{background:var(--nl-card);border-color:var(--nl-line)}
body.pg-user .hero h1{color:var(--nl-brown)}
body.pg-user .hero p{color:var(--nl-brown-faint)}
body.pg-user .uid-box{background:var(--nl-cream);border-color:var(--nl-line);color:var(--nl-brown-soft)}
body.pg-user .stat-item{background:var(--nl-cream);border-color:var(--nl-line)}
body.pg-user .stat-v{color:var(--nl-brown)}
body.pg-user .stat-l{color:var(--nl-brown-faint)}

/* 卡片 / 表格 */
body.pg-user .card{background:var(--nl-card);border-color:var(--nl-line)}
body.pg-user th{background:var(--nl-th);color:var(--nl-brown-faint);border-bottom-color:var(--nl-line)}
body.pg-user td{border-bottom-color:var(--nl-line-soft)}
body.pg-user tbody tr:hover{background:var(--nl-hover)}
body.pg-user .device-avatar{background:#FFF3D6;color:var(--nl-orange)}
body.pg-user .device-avatar .spinner{border-color:#F0E3B8;border-top-color:var(--nl-orange)}
body.pg-user .device-id{color:var(--nl-brown-faint)}
body.pg-user .device-note{color:var(--nl-orange-deep)}
body.pg-user .tag-on{background:#F0F7E8;color:var(--nl-green-deep)}
body.pg-user .tag-off{background:#F6F1E4;color:var(--nl-brown-faint)}
body.pg-user .empty{color:var(--nl-brown-faint)}
body.pg-user .empty i{color:var(--nl-line)}

/* 详情 / 面板 / 页签 */
body.pg-user .detail-head{background:var(--nl-card);border-color:var(--nl-line)}
body.pg-user .detail-head .meta{color:var(--nl-brown-faint)}
body.pg-user .tabs{border-bottom-color:var(--nl-line);background:var(--nl-card)}
body.pg-user .tab{color:var(--nl-brown-soft)}
body.pg-user .tab:hover,
body.pg-user .tab.active{color:var(--nl-orange);border-color:var(--nl-orange)}
body.pg-user .panel{background:var(--nl-card);border-color:var(--nl-line)}
body.pg-user .panel-title i{color:var(--nl-orange)}
body.pg-user .hint{color:var(--nl-brown-faint)}

/* 截图 */
body.pg-user .shot{border-color:var(--nl-line);background:var(--nl-card)}
body.pg-user .shot img{background:var(--nl-cream)}
body.pg-user .shot-info{color:var(--nl-brown-faint)}
body.pg-user .shot-info .name{color:var(--nl-brown)}

/* 文件管理 */
body.pg-user .path-input{border-color:var(--nl-line)}
body.pg-user .path-input:focus{border-color:var(--nl-orange)}
body.pg-user .crumb{color:var(--nl-brown-faint)}
body.pg-user .crumb .sep{color:#CBB98F}
body.pg-user .file-table th{background:var(--nl-th);color:var(--nl-brown-faint);border-bottom-color:var(--nl-line)}
body.pg-user .file-table td{border-bottom-color:var(--nl-line-soft)}
body.pg-user .file-table tr:hover td{background:var(--nl-hover)}
body.pg-user .f-dir{color:var(--nl-orange)}
body.pg-user .f-link{color:var(--nl-orange-deep)}
body.pg-user .f-file{color:var(--nl-brown-faint)}
body.pg-user .icon-btn{border-color:var(--nl-line);background:#fff;color:var(--nl-brown-soft)}
body.pg-user .icon-btn:hover{border-color:var(--nl-orange);color:var(--nl-orange)}
body.pg-user .icon-btn.danger:hover{border-color:var(--nl-red);color:var(--nl-red)}
body.pg-user .file-head{background:var(--nl-th);border-bottom-color:var(--nl-line);color:var(--nl-brown-faint)}
body.pg-user .file-row{border-bottom-color:var(--nl-line-soft)}
body.pg-user .file-row:hover{background:var(--nl-hover)}
body.pg-user .file-size{color:var(--nl-brown-faint)}
body.pg-user .raw-pre{background:#FBF3E0;border-color:var(--nl-line)}
body.pg-user .status-line{color:var(--nl-brown-faint)}

/* 命令 */
body.pg-user .cmd-result{border-color:var(--nl-line);background:var(--nl-th)}
body.pg-user .cr-head{background:#F7EDD2;border-bottom-color:var(--nl-line);color:var(--nl-brown-soft)}
body.pg-user .cr-body{color:var(--nl-brown)}
body.pg-user .cmd-input{border-color:var(--nl-line)}
body.pg-user .cmd-input:focus{border-color:var(--nl-orange)}

/* 动作库 / 任务 */
body.pg-user .tpl-cat{border-color:var(--nl-line);color:var(--nl-brown-soft);background:#fff}
body.pg-user .tpl-cat:hover{border-color:var(--nl-orange);color:var(--nl-orange)}
body.pg-user .tpl-cat.active{background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));border-color:transparent;color:#fff}
body.pg-user .tpl-card{border-color:var(--nl-line);background:#FFF9EC}
body.pg-user .tpl-card:hover{border-color:var(--nl-orange);box-shadow:0 2px 8px rgba(255,159,28,.16)}
body.pg-user .tpl-card.active{border-color:var(--nl-orange);background:var(--nl-hover-strong)}
body.pg-user .tpl-card .tpl-name{color:var(--nl-brown)}
body.pg-user .tpl-card .tpl-desc{color:var(--nl-brown-faint)}
body.pg-user .tpl-danger-high{background:#FEF0EF;color:var(--nl-red);border-color:#F9C9C5}
body.pg-user .tpl-danger-medium{background:#FDF6EC;color:var(--nl-orange-deep);border-color:#F5DAB1}
body.pg-user .tpl-field label{color:var(--nl-brown-soft)}
body.pg-user .tpl-field input,
body.pg-user .tpl-field select{border-color:var(--nl-line)}
body.pg-user .tpl-field input:focus,
body.pg-user .tpl-field select:focus{border-color:var(--nl-orange)}
body.pg-user .tpl-preview{border-color:var(--nl-line);background:var(--nl-th)}
body.pg-user .tpl-preview-head{background:var(--nl-cream);border-bottom-color:var(--nl-line);color:var(--nl-brown-faint)}
body.pg-user .tpl-preview pre{color:var(--nl-brown)}
body.pg-user .task-item{border-color:var(--nl-line)}
body.pg-user .task-name{color:var(--nl-brown)}
body.pg-user .task-time{color:var(--nl-brown-faint)}
body.pg-user .st-queued{background:#F6F1E4;color:var(--nl-brown-faint)}
body.pg-user .st-delivered,
body.pg-user .st-running{background:var(--nl-hover-strong);color:var(--nl-orange-deep)}
body.pg-user .st-succeeded{background:#F0F7E8;color:var(--nl-green-deep)}
body.pg-user .st-failed{background:#FEF0EF;color:var(--nl-red)}
body.pg-user .st-timeout{background:#FDF6EC;color:var(--nl-orange-deep)}
body.pg-user .st-canceled{background:#F6F1E4;color:#CBB98F}
body.pg-user .task-cmd{color:var(--nl-brown-soft);background:var(--nl-cream)}
body.pg-user .task-out{color:var(--nl-brown);background:var(--nl-th);border-color:var(--nl-line)}
body.pg-user .chip{background:#F6F1E4;color:var(--nl-brown-soft)}
body.pg-user .chip:hover{background:var(--nl-hover-strong);color:var(--nl-orange-deep)}
body.pg-user .output-item{border-color:var(--nl-line)}
body.pg-user .output-head{background:var(--nl-th);color:var(--nl-brown-faint);border-bottom-color:var(--nl-line)}

/* 投屏入口（保留深色氛围，暖化） */
body.pg-user .mirror-launch{background:linear-gradient(135deg,#241B14,#3A2C1E)}
body.pg-user .mirror-launch .icon{background:rgba(255,159,28,.15);color:var(--nl-orange)}
body.pg-user .mirror-launch h3{color:var(--nl-dark-text)}
body.pg-user .mirror-launch p{color:var(--nl-dark-text2)}

/* 文件浏览器骨架 / 上传 */
body.pg-user .fs-skel{background:linear-gradient(90deg,#F6EBCE 25%,#FFF6E0 37%,#F6EBCE 63%);background-size:400% 100%}
body.pg-user .fs-badge{background:var(--nl-hover-strong);color:var(--nl-orange-deep)}
body.pg-user .fs-badge.slow{background:#FDF6EC;color:var(--nl-orange-deep)}
body.pg-user .up-item{border-color:var(--nl-line)}
body.pg-user .up-item .up-head{color:var(--nl-brown-soft)}
body.pg-user .up-bar{background:#F6EBCE}
body.pg-user .up-bar i{background:var(--nl-orange)}
body.pg-user .up-item.done .up-bar i{background:var(--nl-green)}
body.pg-user .up-item.err .up-bar i{background:var(--nl-red)}

/* 录屏设置 */
body.pg-user .settings-grid label{color:var(--nl-brown-soft)}
body.pg-user .settings-grid input,
body.pg-user .settings-grid select{border-color:var(--nl-line);color:var(--nl-brown)}
body.pg-user .settings-grid input:focus,
body.pg-user .settings-grid select:focus{border-color:var(--nl-orange)}
body.pg-user .switch-row{color:var(--nl-brown)}
body.pg-user .rec-card{border-color:var(--nl-line);background:var(--nl-card)}
body.pg-user .rec-meta{color:var(--nl-brown-faint)}
body.pg-user .rec-ops a{color:var(--nl-orange)}
body.pg-user .rec-ops .del{color:var(--nl-red)}
body.pg-user .rec-empty{color:var(--nl-brown-faint)}
body.pg-user .rec-scope label{border-color:var(--nl-line);color:var(--nl-brown-soft);background:#fff}
body.pg-user .rec-scope label.on{border-color:var(--nl-orange);color:var(--nl-orange);background:var(--nl-hover-strong)}
body.pg-user .rec-scope input{accent-color:var(--nl-orange)}
body.pg-user .rec-scope-box{background:#FFF9EE;border-color:var(--nl-line)}
body.pg-user .rec-scope-box textarea,
body.pg-user .rec-scope-box input[type=text]{border-color:var(--nl-line)}
body.pg-user .rec-scope-box textarea:focus,
body.pg-user .rec-scope-box input[type=text]:focus{border-color:var(--nl-orange)}
body.pg-user .rec-fg{color:var(--nl-brown-soft)}
body.pg-user .rec-fg code{background:#F6EBCE}
body.pg-user .rec-fg .hit{color:var(--nl-green-deep)}
body.pg-user .rec-fg .miss{color:var(--nl-orange-deep)}

/* 分组 / 批量 / 应用 */
body.pg-user .group-label{color:var(--nl-brown-soft)}
body.pg-user .group-bar select{border-color:var(--nl-line);color:var(--nl-brown)}
body.pg-user .dev-group{background:var(--nl-hover-strong);color:var(--nl-orange-deep)}
body.pg-user .app-list{border-color:var(--nl-line);background:var(--nl-card)}
body.pg-user .app-row{border-bottom-color:var(--nl-line-soft)}
body.pg-user .app-name{color:var(--nl-brown)}
body.pg-user .app-pkg{color:var(--nl-brown-faint)}
body.pg-user .tree-empty{color:var(--nl-brown-faint)}

/* 弹窗 */
body.pg-user .modal-box{background:var(--nl-card)}
body.pg-user .modal-head{border-bottom-color:var(--nl-line)}
body.pg-user .modal-close{color:var(--nl-brown-faint)}
body.pg-user .qq-row img{background:#FFF3D6}
body.pg-user .kv{color:var(--nl-brown-soft)}
body.pg-user .kv b{color:var(--nl-brown-faint)}

/* 提示 */
body.pg-user .toast{background:rgba(91,70,54,.95)}
body.pg-user .toast.ok{background:rgba(106,168,79,.95)}
body.pg-user .toast.err{background:rgba(224,90,82,.95)}

/* ============================================================
   3. 管理后台登录页 admin.php  (body.pg-admin-login)
   ============================================================ */
body.pg-admin-login{
  background:
    radial-gradient(700px 420px at 80% -10%, rgba(255,212,59,.14) 0%, transparent 55%),
    linear-gradient(135deg, #2A211A 0%, #4A3A2C 100%);
}
body.pg-admin-login .login-card{
  background:var(--nl-card);
  border-color:var(--nl-line);
  border-radius:18px;
  box-shadow:var(--nl-shadow);
}
body.pg-admin-login .login-header h1{color:var(--nl-brown)}
body.pg-admin-login .login-header p{color:var(--nl-brown-soft)}
body.pg-admin-login .form-group label{color:var(--nl-brown-soft)}
body.pg-admin-login .form-group input{
  border-color:var(--nl-line);
  background:#fff;
  color:var(--nl-brown);
  border-radius:10px;
}
body.pg-admin-login .form-group input:focus{border-color:var(--nl-orange);box-shadow:0 0 0 3px rgba(255,159,28,.14)}
body.pg-admin-login .submit-btn{
  background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));
  border-radius:10px;
  font-weight:600;
}
body.pg-admin-login .submit-btn:hover{filter:brightness(.96)}
body.pg-admin-login .error-msg{background:#FFF0EF;border-color:#FFD3CE;color:var(--nl-red)}
body.pg-admin-login .footer{color:var(--nl-brown-soft)}

/* ============================================================
   4. 管理后台 admin.php  (body.pg-admin)
   ============================================================ */
body.pg-admin{background:var(--nl-cream);color:var(--nl-brown)}
body.pg-admin .admin-header{background:#2A211A;border-bottom-color:#4A3A2C}
body.pg-admin .logo{color:var(--nl-dark-text)}
body.pg-admin .logo i{color:var(--nl-yellow)}
body.pg-admin .user-info{color:var(--nl-dark-text2)}
body.pg-admin .logout-btn{background:var(--nl-red);color:#fff;border-radius:6px}
body.pg-admin .logout-btn:hover{background:var(--nl-red-deep)}
body.pg-admin .sidebar{background:#2E241B;border-right-color:#4A3A2C}
body.pg-admin .menu-item{color:var(--nl-dark-text2);border-bottom-color:#241B14}
body.pg-admin .menu-item:hover{background:#3A2C1E;color:var(--nl-dark-text)}
body.pg-admin .menu-item.active{background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));color:#fff;border-left-color:#fff}
body.pg-admin .mobile-header{background:#2A211A;border-bottom-color:#4A3A2C}
body.pg-admin .mobile-nav{background:#2E241B;border-bottom-color:#4A3A2C}
body.pg-admin .mobile-nav-item{color:var(--nl-dark-text2)}
body.pg-admin .mobile-nav-item:hover{color:var(--nl-dark-text)}
body.pg-admin .mobile-nav-item.active{color:var(--nl-yellow);border-bottom-color:var(--nl-yellow)}
body.pg-admin .main-content{background:var(--nl-cream)}
body.pg-admin .page-title{color:var(--nl-brown);border-bottom-color:var(--nl-orange)}
body.pg-admin .panel{background:var(--nl-card);border-color:var(--nl-line)}
body.pg-admin .panel-header{background:var(--nl-th);border-bottom-color:var(--nl-line);color:var(--nl-brown)}
body.pg-admin .panel-body{background:var(--nl-card)}
body.pg-admin .stat-box{background:var(--nl-card);border-color:var(--nl-line)}
body.pg-admin .stat-title{color:var(--nl-brown-soft)}
body.pg-admin .stat-value{color:var(--nl-orange)}
body.pg-admin .table th{background:var(--nl-th);border-color:var(--nl-line);color:var(--nl-brown-soft)}
body.pg-admin .table td{border-color:var(--nl-line);color:var(--nl-brown)}
body.pg-admin .table tr:hover{background:var(--nl-hover)}
body.pg-admin .btn{background:var(--nl-card);color:var(--nl-brown-soft);border-color:var(--nl-line)}
body.pg-admin .btn-primary{background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));color:#fff;border-color:transparent}
body.pg-admin .btn-primary:hover{filter:brightness(.96)}
body.pg-admin .btn-danger{background:var(--nl-red);color:#fff;border-color:var(--nl-red)}
body.pg-admin .btn-danger:hover{background:var(--nl-red-deep)}
body.pg-admin .btn-success{background:var(--nl-green);color:#fff;border-color:var(--nl-green)}
body.pg-admin .search-input{border-color:var(--nl-line)}
body.pg-admin .search-input:focus{border-color:var(--nl-orange)}
body.pg-admin .tag{border-color:var(--nl-line)}
body.pg-admin .tag-success{background:#F0F7E8;color:var(--nl-green-deep);border-color:#D5E9C0}
body.pg-admin .tag-danger{background:#FEF0EF;color:var(--nl-red);border-color:#F9C9C5}
body.pg-admin .tag-warning{background:#FDF6EC;color:var(--nl-orange-deep);border-color:#F5DAB1}
body.pg-admin .modal{background:var(--nl-card);border-color:var(--nl-line)}
body.pg-admin .modal-header{background:var(--nl-th);border-bottom-color:var(--nl-line)}
body.pg-admin .modal-close{color:var(--nl-brown-faint)}
body.pg-admin .modal-footer{border-top-color:var(--nl-line)}
body.pg-admin .form-label{color:var(--nl-brown-soft)}
body.pg-admin .form-input{border-color:var(--nl-line)}
body.pg-admin .form-input:focus{border-color:var(--nl-orange)}
body.pg-admin input:checked + .slider{background-color:var(--nl-orange)}
body.pg-admin .toggle-btn{background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));color:#fff;border-radius:6px}
body.pg-admin .toggle-btn:hover{filter:brightness(.96)}
/* 终端日志区保持深色（阅读代码需要） */
body.pg-admin .log-area{background:#1A130D;color:var(--nl-dark-text);border-color:#4A3A2C}
body.pg-admin .fullscreen-header{background:#2A211A;border-bottom-color:#4A3A2C}
body.pg-admin .bin-hint{background:var(--nl-cream);border-color:var(--nl-line);color:var(--nl-brown-soft)}
body.pg-admin .bin-hint code{background:#F6EBCE}
body.pg-admin .bin-output{background:#1A130D;color:#E8DAC4}
body.pg-admin .bin-progress{background:#F6EBCE;border-color:var(--nl-line)}
body.pg-admin .bin-progress-bar{background:var(--nl-orange)}
body.pg-admin .bin-tag{border-color:var(--nl-line);background:var(--nl-th)}
body.pg-admin .build-label{color:var(--nl-brown-soft)}
body.pg-admin .build-ctl{border-color:var(--nl-line);color:var(--nl-brown)}
body.pg-admin .build-ctl:focus{border-color:var(--nl-orange);box-shadow:0 0 0 2px rgba(255,159,28,.14)}
body.pg-admin .build-hint{color:var(--nl-brown-faint)}
body.pg-admin .build-hint code{background:#F6EBCE}
body.pg-admin .build-result.ok{background:#F0F7E8;border-color:#D5E9C0;color:var(--nl-green-deep)}
body.pg-admin .build-result.err{background:#FEF0EF;border-color:#F9C9C5;color:var(--nl-red)}

/* ============================================================
   5. 投屏页 mirror.php  (body.pg-mirror)  —— 保留深色，主色暖化
   ============================================================ */
body.pg-mirror #hint .spin{border-top-color:var(--nl-yellow)}
body.pg-mirror #uioverlay i{border-color:rgba(255,159,28,.85);background:rgba(255,159,28,.10)}
body.pg-mirror #tree{background:rgba(26,19,13,.96);border-left-color:rgba(255,255,255,.1)}
body.pg-mirror .tree-title{color:var(--nl-dark-text)}
body.pg-mirror .tree-stat{color:var(--nl-dark-text3)}
body.pg-mirror .tree-x{background:rgba(255,255,255,.08);color:var(--nl-dark-text)}
body.pg-mirror .tree-ops{color:var(--nl-dark-text2)}
body.pg-mirror .tree-ops button{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:var(--nl-dark-text)}
body.pg-mirror .tree-ops button:active{background:rgba(255,159,28,.35)}
body.pg-mirror .tree-empty{color:var(--nl-dark-text3)}
body.pg-mirror .tnode .cls{color:#FFD98A}
body.pg-mirror .tnode .tag{background:rgba(255,159,28,.25);color:#FFD98A}
body.pg-mirror .tbtn:active{background:rgba(255,159,28,.28)}
body.pg-mirror .tbtn.on,
body.pg-mirror .tbtn.primary{border-color:#E89B1C;background:rgba(214,138,20,.5);color:#fff}
body.pg-mirror #hud .dot.on{background:var(--nl-green);box-shadow:0 0 7px rgba(143,196,106,.9)}
body.pg-mirror #menu:active{background:rgba(255,159,28,.3)}
body.pg-mirror #keys button:active{background:rgba(255,159,28,.22)}
body.pg-mirror #boot button{
  border-color:#E89B1C;
  background:linear-gradient(180deg,#FFC83A,#E89B1C);
  color:#5B4636;
  font-weight:600;
}

/* ============================================================
   6. 解锁手势 unlock.php  (body.pg-unlock)  —— 保留深色，主色暖化
   ============================================================ */
body.pg-unlock{background:#1A140E;color:var(--nl-dark-text)}
body.pg-unlock .top{background:#1A140E;border-bottom-color:var(--nl-dark-line)}
body.pg-unlock .top .meta{color:var(--nl-dark-text3)}
body.pg-unlock .btn{border-color:var(--nl-dark-line);background:var(--nl-dark-card);color:var(--nl-dark-text)}
body.pg-unlock .btn:hover{background:var(--nl-dark-card2)}
body.pg-unlock .btn.primary,
body.pg-unlock .btn.primary:hover{
  background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));
  border-color:transparent;color:#5B4636;font-weight:600;
}
body.pg-unlock .card{background:var(--nl-dark-card);border-color:var(--nl-dark-line)}
body.pg-unlock .card:hover{border-color:var(--nl-orange);background:var(--nl-dark-card2)}
body.pg-unlock .card.on{border-color:var(--nl-orange);box-shadow:0 0 0 1px var(--nl-orange) inset}
body.pg-unlock .card .row{color:var(--nl-dark-text3)}
body.pg-unlock .card .row b{color:var(--nl-dark-text)}
body.pg-unlock .empty{color:var(--nl-dark-text3)}
body.pg-unlock .player{background:var(--nl-dark-card);border-color:var(--nl-dark-line)}
body.pg-unlock #stage{background:#0E0A06}
body.pg-unlock .track{background:#3A2C1E}
body.pg-unlock .track .fill{background:var(--nl-orange)}
body.pg-unlock .speed .sp-btn,
body.pg-unlock .uf .uf-btn{border-color:var(--nl-dark-line);background:var(--nl-dark-card);color:var(--nl-dark-text)}
body.pg-unlock .speed .sp-btn:hover,
body.pg-unlock .uf .uf-btn:hover{background:var(--nl-dark-card2)}
body.pg-unlock .speed .sp-btn.on,
body.pg-unlock .uf .uf-btn.on{
  background:linear-gradient(135deg,var(--nl-yellow),var(--nl-orange));
  border-color:transparent;color:#5B4636;
}
body.pg-unlock .speed input[type=range]{accent-color:var(--nl-orange)}
body.pg-unlock .legend{color:var(--nl-dark-text3)}
