[hidden]{display:none!important}
:root{--bg:#0d1117;--panel:#161b22;--panel2:#1f2630;--border:#2d3540;--text:#e6edf3;--muted:#8b949e;--accent:#d97757;--accent2:#e88b6b;--danger:#f0524f;--ok:#3fb950}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:8px;padding:7px 12px}
button:hover{border-color:var(--muted)}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
button.primary:hover{background:var(--accent2)}
button.danger{color:var(--danger)}
button.danger:hover{border-color:var(--danger)}
input[type=text],input[type=password]{width:100%;font:inherit;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);outline:none}
input:focus{border-color:var(--accent)}
label{display:block;font-size:12px;color:var(--muted);margin:12px 0 6px}
.err{color:var(--danger);min-height:20px;margin-top:10px;font-size:13px}

/* login */
.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}
.card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px}
.card h1{margin:0 0 4px;font-size:20px}
.card p{margin:0 0 8px;color:var(--muted);font-size:13px}
.login-wrap .card button{width:100%;margin-top:18px;padding:10px}

/* app */
.app{display:flex;flex-direction:column;height:100%;height:100dvh}
.top{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--panel);border-bottom:1px solid var(--border);min-height:48px}
.brand{font-weight:700;padding:0 6px;white-space:nowrap}
.brand span{color:var(--accent)}
.tabs{display:flex;gap:4px;overflow-x:auto;flex:1;scrollbar-width:thin}
.tab{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid transparent;color:var(--muted);white-space:nowrap;cursor:pointer;user-select:none}
.tab:hover{background:var(--panel2)}
.tab.active{background:var(--bg);border-color:var(--border);color:var(--text)}
.tab .dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}
.tab.active .dot{background:var(--ok)}
.tab .x{border:0;background:none;padding:0 2px;color:var(--muted);font-size:15px;line-height:1}
.tab .x:hover{color:var(--danger)}
.actions{display:flex;gap:6px}
.main{flex:1;position:relative;min-height:0}
#term{position:absolute;inset:0;padding:6px 0 0 8px;background:var(--bg)}
.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);text-align:center;padding:16px}
.status{position:absolute;top:10px;right:16px;padding:4px 10px;border-radius:20px;font-size:12px;background:var(--panel2);border:1px solid var(--border);color:var(--muted);display:none;z-index:5}
.status.show{display:block}
.status.bad{color:var(--danger)}
.keys{display:none;gap:6px;padding:6px 8px;background:var(--panel);border-top:1px solid var(--border);overflow-x:auto}
.keys button{padding:6px 10px;flex:0 0 auto}
@media (pointer:coarse),(max-width:700px){
  .keys{display:flex;gap:4px;padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .keys button{flex:1 0 auto;min-width:32px;padding:9px 4px;font-size:13px;border-radius:6px}
  .hide-sm{display:none}
}
@media (max-width:700px){
  .top{flex-wrap:wrap;gap:6px;padding:6px 8px}
  .brand{order:1;flex:1;padding:0 2px;font-size:15px}
  .actions{order:2}
  .actions button{padding:6px 11px}
  .tabs{order:3;flex:1 0 100%;padding-bottom:2px}
  .tab{padding:5px 9px;font-size:13px}
}
@media (max-width:380px){
  .keys{gap:3px;padding-left:4px;padding-right:4px}
  .keys button{min-width:0;padding:9px 2px;font-size:12px;flex:1 1 0}
  .keys button[data-k=stab]{flex-grow:1.5}
}

/* modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:16px;z-index:20}
.modal.open{display:flex}
.modal .card{max-width:480px;max-height:calc(100dvh - 32px);overflow-y:auto;padding:22px 22px 18px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.modal h1{font-size:18px;margin:0 0 6px}
.modal label{margin:14px 0 6px}
.row{display:flex;gap:8px;margin-top:16px}
.row button{flex:1;padding:10px}
.check{display:flex!important;align-items:center;gap:8px;margin:14px 0 0!important;color:var(--text)!important;font-size:14px!important;cursor:pointer}
.check input{width:16px;height:16px;flex:0 0 auto;accent-color:var(--accent)}
.hint{font-size:12px;color:var(--muted);margin-top:14px}
.err:empty{min-height:0;margin-top:0}

/* navegador de pastas */
.cwd-row{display:flex;gap:6px}
.cwd-row input{flex:1;min-width:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.cwd-row button{flex:0 0 auto;padding:0 14px}
.fs{margin-top:8px;border:1px solid var(--border);border-radius:10px;background:var(--bg);overflow:hidden}
.fs-bar{display:flex;align-items:center;gap:6px;padding:6px;border-bottom:1px solid var(--border);background:var(--panel2)}
.fs-bar button{flex:0 0 auto;padding:5px 10px;font-size:13px;white-space:nowrap;background:var(--panel)}
.fs-bar button:disabled{opacity:.4;cursor:default}
.fs-hidden{display:flex!important;align-items:center;gap:5px;margin:0 0 0 4px!important;font-size:12px!important;color:var(--muted)!important;cursor:pointer;white-space:nowrap}
.fs-hidden input{width:14px;height:14px;margin:0;accent-color:var(--accent)}
.fs-new{margin-left:auto}
.fs-mk{display:none;gap:6px;padding:6px;border-bottom:1px solid var(--border);background:var(--panel)}
.fs-mk.open{display:flex}
.fs-mk input{flex:1;min-width:0;padding:7px 10px}
.fs-mk button{flex:0 0 auto;padding:0 12px}
.fs-list{height:240px;overflow-y:auto;padding:4px}
.fs-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.fs-item:hover{background:var(--panel2)}
.fs-item .ico{flex:0 0 auto;opacity:.9}
.fs-item .nm{overflow:hidden;text-overflow:ellipsis}
.fs-empty{padding:16px;color:var(--muted);font-size:13px;text-align:center}

@media (max-width:520px){
  .modal{padding:0;align-items:flex-end}
  .modal .card{max-width:none;border-radius:16px 16px 0 0;max-height:92dvh;padding:18px 16px calc(16px + env(safe-area-inset-bottom))}
  .fs-list{height:min(240px,32dvh)}
  .fs-bar .lbl{display:none}
}

/* configurações */
.icon-btn{font-size:16px;line-height:1;padding:7px 10px}
.settings-card{max-width:520px}
.set-head{display:flex;align-items:center;justify-content:space-between}
.set-head h1{margin:0}
.x-btn{border:0;background:none;font-size:22px;line-height:1;padding:2px 6px;color:var(--muted)}
.x-btn:hover{color:var(--text)}
.seg{display:flex;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:3px;margin:14px 0 4px}
.seg button{flex:1;border:0;background:none;padding:7px;border-radius:6px;color:var(--muted)}
.seg button.on{background:var(--panel2);color:var(--text);font-weight:600}
.pane[hidden]{display:none!important}
.preview{margin-top:12px;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:"JetBrains Mono","Fira Code",Menlo,Consolas,"DejaVu Sans Mono",monospace;line-height:1.5;white-space:pre;overflow:hidden}
.pv-cursor{display:inline-block;width:.6em;height:1.1em;vertical-align:text-bottom}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.swatch{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:9px 10px;border-radius:8px;border:2px solid transparent;outline:1px solid var(--border);text-align:left;font-size:13px;font-weight:600}
.swatch.on{border-color:var(--accent);outline-color:transparent}
.swatch:hover{outline-color:var(--muted)}
.sw-sample{display:flex;gap:4px}
.sw-sample i{width:10px;height:10px;border-radius:50%;display:block}
.colors{display:flex;gap:8px;flex-wrap:wrap}
.color{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)!important;font-size:13px!important;cursor:pointer;flex:1;min-width:100px}
.color input{width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer}
.color input::-webkit-color-swatch-wrapper{padding:0}
.color input::-webkit-color-swatch{border:1px solid var(--border);border-radius:6px}
.link{border:0;background:none;padding:0 0 0 6px;color:var(--accent);font-size:12px;text-decoration:underline}
.muted{color:var(--muted);font-weight:400}
#fontSizeVal{color:var(--text);margin-left:4px}
input[type=range]{width:100%;accent-color:var(--accent)}
.hint code{background:var(--bg);padding:1px 5px;border-radius:4px}
.msg{min-height:18px;margin-top:10px;font-size:13px;color:var(--danger)}
.msg.ok{color:var(--ok)}
.set-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}
.set-foot b{color:var(--text)}
.set-foot button{padding:5px 12px}
@media (max-width:520px){.swatches{grid-template-columns:repeat(2,1fr)}}

/* menu do botão direito + aviso */
.ctx-menu{position:fixed;z-index:40;display:none;min-width:190px;padding:4px;background:var(--panel);border:1px solid var(--border);border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.ctx-menu.open{display:block}
.ctx-menu button{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;border:0;background:none;padding:8px 10px;border-radius:6px;text-align:left}
.ctx-menu button:hover:not(:disabled){background:var(--panel2)}
.ctx-menu button:disabled{opacity:.4;cursor:default}
.ctx-menu kbd{font:12px ui-monospace,Menlo,Consolas,monospace;color:var(--muted)}
.ctx-menu .sep{height:1px;background:var(--border);margin:4px 2px}
.toast{position:fixed;left:50%;bottom:70px;transform:translateX(-50%) translateY(10px);z-index:45;padding:7px 14px;border-radius:20px;background:var(--panel2);border:1px solid var(--border);color:var(--text);font-size:13px;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* envio de arquivos */
.top button:disabled{opacity:.45;cursor:default}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.up-card{max-width:560px}
.up-drop{margin-top:10px;border:1.5px dashed var(--border);border-radius:10px;background:var(--bg);padding:8px;transition:border-color .15s,background .15s}
.up-drop.over{border-color:var(--accent);background:rgba(217,119,87,.07)}
.up-empty{padding:22px 8px;text-align:center;color:var(--muted);font-size:13px}
.up-list{max-height:260px;overflow-y:auto}
.up-row{position:relative;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:6px 8px;border-radius:6px;font-size:13px;overflow:hidden}
.up-row:nth-child(odd){background:var(--panel)}
.up-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Menlo,Consolas,monospace}
.up-size{color:var(--muted);font-size:12px;white-space:nowrap}
.up-st{font-size:12px;color:var(--muted);white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis;text-align:right}
.up-row.done .up-st{color:var(--ok)}
.up-row.fail .up-st{color:var(--danger)}
.up-row.busy .up-st{color:var(--accent)}
.up-bar{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--accent);transition:width .15s}
.up-row.done .up-bar{background:var(--ok)}
.up-pick{display:flex;gap:6px;align-items:center;padding:6px 2px 2px}
.up-pick button{padding:6px 12px;font-size:13px}
.up-pick .link{margin-left:auto}
.drop-overlay{position:absolute;inset:8px;z-index:6;display:none;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--accent);border-radius:12px;background:rgba(13,17,23,.82);color:var(--text);font-size:16px;line-height:1.6;pointer-events:none}
.drop-overlay.show{display:flex}
.drop-overlay code{font-size:13px;color:var(--accent)}
@media (max-width:520px){.up-row{grid-template-columns:1fr auto}.up-size{display:none}}
