
  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  :root{
    --bg:#070b16; --card:rgba(255,255,255,.055); --card2:rgba(255,255,255,.09);
    --line:rgba(255,255,255,.13); --txt:#eef2ff; --dim:#9aa7c7;
    --acc:#22d3ee; --acc2:#a78bfa; --ok:#34d399; --bad:#fb7185; --warn:#fbbf24;
  }
  body{
    font-family:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    background:
      radial-gradient(700px 420px at 12% -8%, rgba(34,211,238,.20), transparent 60%),
      radial-gradient(760px 480px at 95% 0%, rgba(167,139,250,.18), transparent 60%),
      radial-gradient(600px 500px at 50% 115%, rgba(52,211,153,.10), transparent 60%),
      var(--bg);
    color:var(--txt); min-height:100vh; padding:18px 14px 60px;
  }
  .wrap{ max-width:760px; margin:0 auto; }
  .logo{ display:flex; align-items:center; gap:10px; min-width:0; }
  .logo-badge{
    width:44px; height:44px; flex:none; border-radius:14px; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,#22d3ee,#818cf8 55%,#c084fc);
    box-shadow:0 8px 26px rgba(99,102,241,.45), inset 0 1px 0 rgba(255,255,255,.5), inset 0 0 0 1px rgba(255,255,255,.14);
  }
  .logo h1{ font-size:20px; font-weight:800; letter-spacing:.2px; white-space:nowrap; }
  .logo p{ font-size:11.5px; color:var(--dim); margin-top:1px; white-space:nowrap; }
  .topbar{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:16px; }
  .topbtns{ display:flex; gap:6px; flex:none; }
  .topbtns .topbtn{ display:flex; align-items:center; justify-content:center; width:36px; height:36px; padding:0; border-radius:11px; }
  .topbtns .topbtn svg{ width:18px; height:18px; flex:none; }
  .card{
    background:var(--card); border:1px solid var(--line); border-radius:20px;
    padding:18px; margin-bottom:14px; box-shadow:0 14px 34px rgba(0,0,0,.35);
  }
  .card h2{ font-size:16px; font-weight:700; margin-bottom:6px; }
  .card .sub{ font-size:13px; color:var(--dim); line-height:1.55; }
  label{ display:block; font-size:12px; font-weight:600; color:var(--dim); margin:14px 0 6px; letter-spacing:.3px; text-transform:uppercase; }
  input[type=text], input[type=password], select, textarea{
    width:100%; background:rgba(0,0,0,.32); border:1px solid var(--line); border-radius:12px;
    color:var(--txt); padding:12px 13px; font-size:15px; outline:none;
  }
  input:focus, select:focus, textarea:focus{ border-color:var(--acc); box-shadow:0 0 0 3px rgba(34,211,238,.18); }
  /* glass selects — native dropdown popups are never used in this panel */
  .gsel{ position:relative; }
  .gsel > select{ display:none !important; }
  .gsel-btn{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px; background:rgba(0,0,0,.32); border:1px solid var(--line); border-radius:12px; color:var(--txt); padding:10px 11px; font-size:13.5px; cursor:pointer; box-sizing:border-box; white-space:nowrap; }
  .gsel-label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .gsel.open .gsel-btn{ border-color:var(--acc); box-shadow:0 0 0 3px rgba(34,211,238,.18); }
  .gsel-list{ display:none; position:absolute; right:0; top:calc(100% + 6px); width:max-content; min-width:100%; max-width:92vw; background:#0c1322; border:1px solid var(--line); border-radius:14px; padding:6px; box-shadow:0 18px 40px rgba(0,0,0,.55); z-index:80; max-height:260px; overflow:auto; }
  .gsel.open .gsel-list{ display:block; }
  .gsel-opt{ padding:10px 12px; border-radius:9px; font-size:14px; color:var(--txt); cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; white-space:nowrap; }
  .gsel-opt > span:first-child{ overflow:hidden; text-overflow:ellipsis; }
  .gsel-opt.sel{ background:linear-gradient(135deg,rgba(34,211,238,.18),rgba(167,139,250,.18)); font-weight:700; }
  textarea{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:13px; line-height:1.5; min-height:220px; resize:vertical; }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    border:none; cursor:pointer; border-radius:13px; padding:12px 18px; font-size:15px; font-weight:700;
    color:#06121f; background:linear-gradient(135deg,var(--acc),var(--acc2));
    box-shadow:0 8px 22px rgba(34,211,238,.28); transition:transform .08s ease, opacity .2s;
  }
  .btn:active{ transform:scale(.97); }
  .btn[disabled]{ opacity:.5; pointer-events:none; }
  .btn.block{ width:100%; margin-top:16px; }
  .btn.ghost{ background:var(--card2); color:var(--txt); box-shadow:none; border:1px solid var(--line); }
  .btn.small{ padding:8px 12px; font-size:13px; border-radius:10px; }
  .btn.danger{ background:rgba(251,113,133,.14); color:#fda4af; border:1px solid rgba(251,113,133,.4); box-shadow:none; }
  .hint{ font-size:12.5px; margin-top:7px; min-height:16px; }
  .hint.ok{ color:var(--ok); } .hint.bad{ color:var(--bad); } .hint.dim{ color:var(--dim); }
  .err{ display:none; background:rgba(251,113,133,.12); border:1px solid rgba(251,113,133,.45); color:#fecdd3;
    border-radius:12px; padding:10px 12px; font-size:13.5px; margin-top:12px; line-height:1.5; }
  .okbox{ display:none; background:rgba(52,211,153,.10); border:1px solid rgba(52,211,153,.4); color:#bbf7d0;
    border-radius:12px; padding:12px; font-size:14px; margin-top:12px; line-height:1.6; word-break:break-all; }
  .okbox a{ color:#67e8f9; font-weight:700; }
  .steps{ font-size:13.5px; color:var(--dim); line-height:1.75; margin-top:8px; }
  .steps b{ color:var(--txt); }
  .steps code{ background:rgba(255,255,255,.1); padding:1px 6px; border-radius:6px; font-size:12.5px; }
  .tabs{ display:flex; gap:8px; margin-bottom:14px; }
  .tab{ flex:1; text-align:center; padding:11px; border-radius:13px; background:var(--card); border:1px solid var(--line);
    font-weight:700; font-size:14.5px; cursor:pointer; color:var(--dim); }
  .tab.on{ color:#06121f; background:linear-gradient(135deg,var(--acc),var(--acc2)); border-color:transparent; }
  .stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-bottom:14px; }
  .stat{ display:flex; align-items:baseline; justify-content:center; gap:3px; background:var(--card); border:1px solid var(--line); border-radius:11px; padding:8px 2px; text-align:center; white-space:nowrap; overflow:hidden; }
  .stat b{ font-size:13px; font-weight:800; }
  .stat span{ font-size:8px; color:var(--dim); text-transform:uppercase; letter-spacing:0; }
  .modebar{ display:flex; gap:8px; margin-top:14px; }
  .modebar .tab{ padding:9px; font-size:13.5px; }
  .filelist{ margin-top:10px; font-size:13px; color:var(--dim); line-height:1.7; word-break:break-all; }
  .pickrow{ display:block; background:var(--card2); border:1px solid var(--line); border-radius:10px; padding:7px 10px; margin-top:6px; }
  .pickmain{ display:flex; align-items:center; gap:8px; }
  .pickfolder{ margin-top:6px; width:100%; box-sizing:border-box; background:rgba(0,0,0,.28); border:1px solid var(--line); border-radius:8px; color:var(--txt); padding:6px 9px; font-size:12.5px; outline:none; }
  .pickfolder::placeholder{ color:var(--dim); }
  .pickpath{ flex:1; min-width:0; color:var(--txt); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .picksize{ color:var(--dim); font-size:12px; flex:none; }
  .pickfold{ flex:none; width:26px; height:26px; border-radius:8px; border:1px solid var(--line); background:rgba(245,166,35,.10); color:#f5a623; cursor:pointer; padding:0; display:inline-flex; align-items:center; justify-content:center; }
  .pickfold svg{ width:16px; height:16px; }
  .pickfold.on{ border-color:rgba(245,166,35,.65); color:#fbbf24; background:rgba(245,166,35,.22); }
  .pickfolder2{ flex:1; min-width:0; box-sizing:border-box; background:rgba(0,0,0,.28); border:1px solid var(--acc,#38bdf8); border-radius:8px; color:var(--txt); padding:6px 9px; font-size:12.5px; outline:none; }
  .pickrow.foldopen .pickpath, .pickrow.foldopen .picksize, .pickrow.foldopen .pickfold{ display:none; }
  .pickprev{ display:none; margin-top:6px; font-size:12px; color:var(--dim); }
  .pickprev b{ color:#7dd3fc; font-weight:600; }
  .pickrow.foldopen .pickprev{ display:block; }
  .pickx{ flex:none; width:24px; height:24px; border-radius:8px; border:1px solid var(--line); background:rgba(251,113,133,.12); color:#fda4af; font-size:14px; line-height:1; cursor:pointer; padding:0; }
  .fmicon{ flex:none; width:34px; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; }
  .fmicon svg{ width:20px; height:20px; }
  .fmtiny{ font-size:8px; font-weight:700; letter-spacing:.3px; color:var(--dim); margin-top:1.5px; line-height:1; text-transform:uppercase; }
  .fmsel{ flex:none; width:18px; height:18px; accent-color:#7c5cff; margin:0; cursor:pointer; }
  .fmdots{ flex:none; width:28px; height:28px; border-radius:8px; border:1px solid var(--line); background:rgba(255,255,255,.04); color:var(--txt); font-size:15px; line-height:1; cursor:pointer; padding:0; }
  .fmtools{ display:grid; grid-template-columns:repeat(6, 1fr); gap:6px; margin-top:10px; position:relative; border:1px solid var(--line); border-radius:14px; padding:8px; background:rgba(255,255,255,.03); }
  .fmtool2{ height:46px; width:100%; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:10px; padding:4px 2px; box-sizing:border-box; }
  .fmtool2 svg{ width:16px; height:16px; flex:none; }
  .fmtool2.fmtooloff{ opacity:.35; filter:grayscale(1); }
  #fmNewMenu{ position:absolute; top:66px; left:8px; z-index:30; min-width:180px; background:#1a1f33; border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:0 14px 34px rgba(0,0,0,.5); }
  #fmSortMenu{ position:absolute; top:66px; right:8px; z-index:30; min-width:190px; background:#1a1f33; border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:0 14px 34px rgba(0,0,0,.5); }
  .fmmenuitem{ display:block; width:100%; text-align:left; padding:11px 13px; background:none; border:none; border-bottom:1px solid var(--line); color:var(--txt); font-size:13.5px; cursor:pointer; font-family:inherit; }
  .fmmenuitem:last-child{ border-bottom:none; }
  .fmactitem{ display:block; width:100%; text-align:left; padding:11px 12px; background:var(--card2); border:1px solid var(--line); border-radius:10px; color:var(--txt); font-size:13.5px; cursor:pointer; margin-top:6px; font-family:inherit; }
  .fmactitem.danger{ color:#fda4af; border-color:rgba(251,113,133,.35); }
  #fmSearch{ margin-top:8px; }
  #fmBulkBar .btn:disabled{ opacity:.45; }
  .fmtool{ height:34px; min-width:40px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center; font-size:12.5px; flex:none; box-sizing:border-box; }
  .fmbtn{ width:100%; margin-top:8px; justify-content:center; }
  .fmfolder{ display:flex; align-items:center; gap:5px; margin-top:12px; padding:7px 10px; background:rgba(255,255,255,.05); border:1px solid var(--line); border-radius:10px; font-weight:700; font-size:13.5px; }
  .fmfile{ display:flex; align-items:center; gap:5px; padding:7px 10px; margin-top:6px; background:var(--card2); border:1px solid var(--line); border-radius:10px; }
  .fmfile .fn{ flex:1; min-width:0; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .fmfile .fs{ color:var(--dim); font-size:11.5px; flex:none; }
  .fmmini{ flex:none; padding:3px 7px; font-size:10.5px; border-radius:7px; }
  .fmtag{ flex:none; font-size:10px; padding:2px 7px; border-radius:99px; border:1px solid var(--line); color:var(--dim); }
  .fmpath{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:2px 0 6px; }
  .fmsep{ color:var(--dim); font-size:12px; }
  .fmclick{ cursor:pointer; }
  .fmclick:active{ opacity:.65; }
  .fmmove-row{ padding:11px 12px; margin-top:7px; background:var(--card2); border:1px solid var(--line); border-radius:10px; font-size:13.5px; cursor:pointer; text-align:left; word-break:break-all; }
  .fmmove-row:active{ opacity:.65; }
  .site{ background:var(--card); border:1px solid var(--line); border-radius:18px; padding:15px; margin-bottom:11px; }
  .site .nm{ font-size:16.5px; font-weight:800; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .dot{ width:9px; height:9px; border-radius:50%; display:inline-block; }
  .dot.READY{ background:var(--ok); box-shadow:0 0 9px var(--ok); }
  .dot.ERROR{ background:var(--bad); box-shadow:0 0 9px var(--bad); }
  .dot.BUILDING,.dot.QUEUED{ background:var(--warn); box-shadow:0 0 9px var(--warn); }
  .site .url{ font-size:13px; margin-top:3px; }
  .site .url a{ color:#67e8f9; text-decoration:none; word-break:break-all; }
  .site .meta{ font-size:12px; color:var(--dim); margin-top:5px; }
  .site .acts{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; padding:10px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.03); }
  .site .acts .btn{ width:100%; padding:7px 1px; font-size:11.5px; white-space:nowrap; box-sizing:border-box; display:flex; align-items:center; justify-content:center; gap:4px; }
  .site .acts .btn svg{ flex:none; }
  .badge{ font-size:11px; font-weight:700; padding:2.5px 8px; border-radius:20px; border:1px solid var(--line); color:var(--dim); }
  .badge.READY{ color:#6ee7b7; border-color:rgba(52,211,153,.5); }
  .badge.ERROR{ color:#fda4af; border-color:rgba(251,113,133,.5); }
  .badge.BUILDING,.badge.QUEUED{ color:#fcd34d; border-color:rgba(251,191,36,.5); }
  .logrow{ border-top:1px solid var(--line); padding:11px 2px; font-size:13.5px; }
  .logrow:first-of-type{ border-top:none; }
  .logrow .t{ color:var(--dim); font-size:12px; margin-top:2px; }
  pre.log{ background:rgba(0,0,0,.4); border:1px solid var(--line); border-radius:12px; padding:11px;
    font-size:11.5px; line-height:1.55; overflow:auto; max-height:320px; white-space:pre-wrap; word-break:break-all; margin-top:9px; display:none; }
  .modal{ position:fixed; inset:0; background:rgba(2,6,17,.78); display:none; align-items:center; justify-content:center; z-index:50; padding:20px; }
  .modal .box{ background:#0d1526; border:1px solid var(--line); border-radius:20px; padding:20px; text-align:center; max-width:320px; width:100%; }
  .modal img{ width:210px; height:210px; border-radius:12px; background:#fff; padding:8px; }
  .toast{ position:fixed; left:50%; bottom:22px; transform:translateX(-50%) translateY(80px); background:#0d1526;
    border:1px solid var(--acc); color:var(--txt); padding:11px 17px; border-radius:13px; font-size:14px; font-weight:600;
    transition:transform .3s ease; z-index:60; max-width:92vw; text-align:center; box-shadow:0 12px 30px rgba(0,0,0,.5); }
  .toast.show{ transform:translateX(-50%) translateY(0); }
  .spin{ width:17px; height:17px; border-radius:50%; border:2.5px solid rgba(6,18,31,.3); border-top-color:#06121f; animation:sp 0.7s linear infinite; display:none; }
  .btn.busy .spin{ display:inline-block; }
  @keyframes sp{ to{ transform:rotate(360deg); } }
  .backrow{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
  .backrow h2{ font-size:17px; font-weight:800; word-break:break-all; }
  .hidden{ display:none !important; }
  .center{ text-align:center; padding:34px 10px; color:var(--dim); font-size:14px; }
