*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#151A28;
  --bg2:#161c2d;
  --acc:#577db7;
  --acc2:#2C64BA;
  --green:#5fd87a;
  --red:#f07878;
  --yellow:#e8c84a;
  --cyan:#6ab8ea;
  --txt:#e6edf3;
  --txt2:#8b949e;
  --border:rgba(87,125,183,.18);
  --mono:'JetBrains Mono',monospace;
}
html,body{
  width:100%;height:100%;overflow:hidden;
  font-family:var(--mono);
  background:var(--bg);
  color:var(--txt);
}

/* ── BOOT SCREEN ── */
#boot{
  position:fixed;inset:0;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:9999;
}
#boot-logo{
  font-size:11px;line-height:1.35;color:var(--acc);white-space:pre;
  text-shadow:0 0 30px rgba(87,125,183,.5);margin-bottom:28px;
  opacity:0;animation:fadein .5s .1s forwards;
}
#boot-lines{font-size:12px;color:var(--txt2);width:540px;max-width:90vw;}
.boot-line{display:block;opacity:0;animation:fadein .12s forwards;line-height:1.9;white-space:pre;}
.boot-line .ok{color:var(--green)}.boot-line .acc{color:var(--acc)}
@keyframes fadein{to{opacity:1}}

/* ── TERMINAL ── */
#terminal{
  display:none;position:fixed;inset:0;flex-direction:column;background:var(--bg);
}
#titlebar{
  height:32px;min-height:32px;background:var(--bg2);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 16px;gap:8px;flex-shrink:0;user-select:none;
}
#tb-title{flex:1;text-align:center;font-size:11px;color:var(--txt2);letter-spacing:.3px}
#tb-right{font-size:10px;color:var(--txt2)}
#output{
  flex:1;overflow-y:auto;padding:16px 22px 4px;
  font-size:13.5px;line-height:1.85;scroll-behavior:smooth;
}
#output::-webkit-scrollbar{width:4px}
#output::-webkit-scrollbar-thumb{background:rgba(87,125,183,.3);border-radius:2px}
#output::-webkit-scrollbar-thumb:hover{background:rgba(87,125,183,.55)}
.line{display:block;white-space:pre-wrap;word-break:break-word;animation:li .05s ease forwards}
@keyframes li{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}
.line.out{color:var(--txt)}
.line.ok{color:var(--green)}
.line.err{color:var(--red)}
.line.inf{color:var(--cyan)}
.line.warn{color:var(--yellow)}
.line.dim{color:var(--txt2)}
.line.acc{color:var(--acc)}
.line.blank{height:5px;display:block}
.prompt-line{display:flex;flex-wrap:wrap;align-items:baseline;white-space:pre;font-size:13.5px;line-height:1.85}
.p-user{color:var(--green);font-weight:600}
.p-at,.p-sep,.p-dollar{color:var(--txt2)}
.p-host{color:var(--acc);font-weight:600}
.p-path{color:var(--cyan)}
.p-cmd{color:var(--txt)}
#inputrow{
  display:flex;align-items:center;padding:8px 22px 14px;flex-shrink:0;
}
#input-prompt{white-space:nowrap;flex-shrink:0;font-size:13.5px;line-height:1}
#cmd{
  flex:1;background:transparent;border:none;outline:none;
  color:var(--txt);font-family:var(--mono);font-size:13.5px;
  caret-color:var(--green);padding-left:6px;
}

/* ── BROWSER OVERLAY ── */
#browser-overlay{
  display:none;position:fixed;inset:0;background:var(--bg);flex-direction:column;z-index:1000;
}
#browser-overlay.open{display:flex}

/* CRT outer glow */
#browser-overlay::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:9999;
  box-shadow:inset 0 0 80px rgba(87,125,183,.07);
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.04) 3px,rgba(0,0,0,.04) 4px);
}

/* Tab bar */
#br-tabbar{
  height:34px;min-height:34px;
  background:#090d14;
  border-bottom:1px solid var(--border);
  display:flex;align-items:flex-end;
  padding:0 8px 0;
  gap:2px;
  flex-shrink:0;
  overflow-x:auto;
  scrollbar-width:none;
}
#br-tabbar::-webkit-scrollbar{display:none}
.br-tab{
  display:flex;align-items:center;gap:6px;
  padding:5px 12px 6px;
  background:rgba(87,125,183,.06);
  border:1px solid var(--border);border-bottom:none;
  border-radius:5px 5px 0 0;
  cursor:pointer;font-size:11px;color:var(--txt2);
  white-space:nowrap;max-width:160px;min-width:80px;
  position:relative;bottom:-1px;
  transition:background .12s,color .12s;flex-shrink:0;
  font-family:var(--mono);
}
.br-tab.act{
  background:var(--bg2);color:var(--txt);
  border-color:rgba(87,125,183,.3);border-bottom-color:var(--bg2);
  z-index:2;
}
.br-tab-title{flex:1;overflow:hidden;text-overflow:ellipsis;min-width:0}
.br-tab-x{
  width:14px;height:14px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:9px;color:var(--txt2);flex-shrink:0;
  transition:background .1s,color .1s;
}
.br-tab-x:hover{background:rgba(240,120,120,.25);color:#f07878}
#br-newtab{
  width:24px;height:24px;border-radius:5px;margin-bottom:3px;align-self:center;flex-shrink:0;
  background:rgba(87,125,183,.08);border:1px solid var(--border);
  color:var(--txt2);cursor:pointer;font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,color .12s;
}
#br-newtab:hover{background:rgba(87,125,183,.2);color:var(--txt)}

/* Toolbar */
#br-bar{
  height:42px;min-height:42px;background:var(--bg2);
  border-bottom:2px solid rgba(87,125,183,.2);
  display:flex;align-items:center;padding:0 12px;gap:6px;flex-shrink:0;
}
.br-nav{
  width:28px;height:28px;border-radius:6px;
  background:rgba(87,125,183,.08);border:1px solid var(--border);
  color:var(--txt2);cursor:pointer;font-size:13px;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,color .12s;flex-shrink:0;font-family:var(--mono);
}
.br-nav:hover:not(:disabled){background:rgba(87,125,183,.22);color:var(--txt)}
.br-nav:disabled{opacity:.3;cursor:default}
#br-addr-wrap{
  flex:1;display:flex;align-items:center;
  background:rgba(4,6,12,.8);
  border:1px solid rgba(87,125,183,.25);
  border-radius:6px;height:28px;padding:0 10px;gap:6px;font-size:12px;
  transition:border-color .15s;
}
#br-addr-wrap:focus-within{border-color:rgba(87,125,183,.6);box-shadow:0 0 0 2px rgba(87,125,183,.1)}
#br-lock{font-size:11px;flex-shrink:0}
#br-addr{
  flex:1;background:transparent;border:none;outline:none;
  color:var(--txt);font-family:var(--mono);font-size:12px;
}
#br-spinner{
  width:13px;height:13px;border-radius:50%;
  border:2px solid rgba(87,125,183,.15);border-top-color:var(--acc);
  flex-shrink:0;display:none;animation:spin .7s linear infinite;
}
#br-spinner.on{display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.br-btn{
  background:rgba(87,125,183,.1);border:1px solid var(--border);
  border-radius:6px;color:var(--txt2);cursor:pointer;
  padding:3px 10px;font-size:11px;font-family:var(--mono);
  transition:background .12s,color .12s;flex-shrink:0;
}
.br-btn:hover{background:rgba(87,125,183,.25);color:var(--txt)}
.br-btn.danger{background:rgba(240,120,120,.08);border-color:rgba(240,120,120,.2);color:#f07878}
.br-btn.danger:hover{background:rgba(240,120,120,.2)}

/* Viewport area */
#br-viewport{flex:1;position:relative;overflow:hidden;background:var(--bg);}
#br-frame{position:absolute;inset:0;width:100%;height:100%;border:none;background:#fff;display:none;}
#br-frame.show{display:block}

/* Landing page */
#br-landing{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:20px;background:var(--bg);
}
#br-landing-logo{
  font-family:var(--mono);font-size:13px;line-height:1.3;
  color:var(--acc);white-space:pre;text-align:center;
  text-shadow:0 0 24px rgba(87,125,183,.35);
}
#br-landing-search{
  display:flex;align-items:center;gap:8px;
  background:rgba(4,6,12,.8);border:1px solid rgba(87,125,183,.3);
  border-radius:8px;padding:0 14px;height:36px;width:420px;max-width:80vw;
  transition:border-color .15s,box-shadow .15s;
}
#br-landing-search:focus-within{border-color:rgba(87,125,183,.7);box-shadow:0 0 0 3px rgba(87,125,183,.1)}
#br-landing-input{
  flex:1;background:transparent;border:none;outline:none;
  color:var(--txt);font-family:var(--mono);font-size:13px;caret-color:var(--green);
}
#br-landing-input::placeholder{color:var(--txt2)}
#br-landing-go{
  background:none;border:none;color:var(--acc);cursor:pointer;
  font-family:var(--mono);font-size:12px;padding:0;
  transition:color .12s;
}
#br-landing-go:hover{color:var(--txt)}
#br-landing-hint{font-size:11px;color:var(--txt2);font-family:var(--mono)}

/* Error page */
#br-err{
  position:absolute;inset:0;
  display:none;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;color:var(--txt2);font-size:13px;text-align:center;padding:32px;
  background:var(--bg);
}
#br-err.show{display:flex}
#br-err .eico{font-size:40px;opacity:.35;margin-bottom:6px;font-family:var(--mono)}
#br-err .etitle{font-size:15px;color:var(--txt);font-weight:600;font-family:var(--mono)}
#br-err .eurl{font-size:11px;color:var(--acc);opacity:.6;word-break:break-all;max-width:500px;margin-top:2px;font-family:var(--mono)}
#br-err .ebtn{
  background:rgba(87,125,183,.12);border:1px solid var(--border);
  border-radius:6px;color:var(--txt);cursor:pointer;
  padding:7px 16px;font-size:11px;font-family:var(--mono);
  transition:background .12s;margin-top:4px;
}
#br-err .ebtn:hover{background:rgba(87,125,183,.28)}

/* Status bar */
#br-status{
  height:22px;min-height:22px;
  background:#090d14;
  border-top:1px solid var(--border);
  display:flex;align-items:center;
  padding:0 12px;gap:16px;
  flex-shrink:0;font-family:var(--mono);font-size:10px;color:var(--txt2);
}
#br-status-url{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br-status-sep{color:rgba(87,125,183,.3)}

#br-frames{position:absolute;inset:0;pointer-events:none;}
#br-frames iframe{position:absolute;inset:0;width:100%;height:100%;border:none;background:#fff;display:none;pointer-events:all;}
#br-frames iframe.show{display:block;}

/* History panel */
#br-history-panel{
  display:none;position:absolute;top:0;right:0;bottom:0;width:340px;
  background:var(--bg2);border-left:1px solid rgba(87,125,183,.25);
  flex-direction:column;z-index:50;
}
#br-history-panel.show{display:flex;}
#br-hist-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px 10px;border-bottom:1px solid rgba(87,125,183,.12);
  flex-shrink:0;
}
#br-hist-head h2{
  color:var(--acc);font-size:12px;font-weight:600;margin:0;
  letter-spacing:1px;text-transform:uppercase;font-family:var(--mono);
}
.br-hist-actions{display:flex;gap:6px;}
.br-hist-act{
  background:rgba(87,125,183,.08);border:1px solid rgba(87,125,183,.2);
  border-radius:5px;color:var(--txt2);cursor:pointer;
  padding:3px 9px;font-size:10px;font-family:var(--mono);
  transition:background .12s,color .12s;
}
.br-hist-act:hover{background:rgba(87,125,183,.22);color:var(--txt);}
.br-hist-act.danger{border-color:rgba(240,120,120,.2);color:#f07878;}
.br-hist-act.danger:hover{background:rgba(240,120,120,.18);}
#br-hist-search{
  padding:8px 12px;border-bottom:1px solid rgba(87,125,183,.08);flex-shrink:0;
}
#br-hist-search input{
  width:100%;background:rgba(4,6,12,.7);border:1px solid rgba(87,125,183,.2);
  border-radius:5px;padding:5px 10px;color:var(--txt);
  font-family:var(--mono);font-size:11px;outline:none;box-sizing:border-box;
  transition:border-color .12s;
}
#br-hist-search input:focus{border-color:rgba(87,125,183,.5);}
#br-hist-list{flex:1;overflow-y:auto;padding:4px 0;}
#br-hist-list::-webkit-scrollbar{width:4px;}
#br-hist-list::-webkit-scrollbar-track{background:transparent;}
#br-hist-list::-webkit-scrollbar-thumb{background:rgba(87,125,183,.2);border-radius:2px;}
.br-hist-date{
  padding:8px 14px 4px;font-size:10px;color:var(--txt2);
  font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;
  border-top:1px solid rgba(87,125,183,.06);margin-top:2px;
}
.br-hist-date:first-child{border-top:none;margin-top:0;}
.br-hist-item{
  display:flex;align-items:center;gap:10px;
  padding:7px 14px;cursor:pointer;transition:background .1s;
}
.br-hist-item:hover{background:rgba(87,125,183,.08);}
.br-hist-favicon{
  width:14px;height:14px;flex-shrink:0;
  background:rgba(87,125,183,.15);border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  font-size:9px;color:var(--txt2);
}
.br-hist-info{flex:1;min-width:0;}
.br-hist-title{
  font-size:11px;color:var(--txt);font-family:var(--mono);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.br-hist-url{
  font-size:10px;color:var(--txt2);font-family:var(--mono);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;
}
.br-hist-time{font-size:10px;color:var(--txt2);flex-shrink:0;font-family:var(--mono);}
.br-hist-del{
  width:16px;height:16px;border-radius:3px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:9px;color:transparent;cursor:pointer;transition:all .1s;
}
.br-hist-item:hover .br-hist-del{color:var(--txt2);}
.br-hist-del:hover{background:rgba(240,120,120,.2);color:#f07878!important;}
#br-hist-empty{
  display:flex;align-items:center;justify-content:center;
  height:100%;color:var(--txt2);font-size:12px;font-family:var(--mono);
}

/* Shortcuts overlay */
#br-shortcuts{
  display:none;position:absolute;inset:0;z-index:100;
  background:rgba(9,13,20,.92);backdrop-filter:blur(6px);
  align-items:center;justify-content:center;
}
#br-shortcuts.show{display:flex;}
#br-shortcuts-box{
  background:var(--bg2);border:1px solid rgba(87,125,183,.35);
  border-radius:10px;padding:28px 36px;min-width:380px;
  font-family:var(--mono);
}
#br-shortcuts-box h2{
  color:var(--acc);font-size:13px;font-weight:600;margin:0 0 16px;
  letter-spacing:1px;text-transform:uppercase;
}
.br-sc-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:5px 0;border-bottom:1px solid rgba(87,125,183,.07);font-size:12px;
}
.br-sc-row:last-child{border-bottom:none;}
.br-sc-key{
  display:flex;gap:4px;
}
.br-sc-key kbd{
  background:rgba(87,125,183,.12);border:1px solid rgba(87,125,183,.25);
  border-radius:4px;padding:2px 7px;font-size:10px;color:var(--acc);
  font-family:var(--mono);white-space:nowrap;
}
.br-sc-desc{color:var(--txt2);}
#br-shortcuts-close{
  margin-top:18px;width:100%;background:rgba(87,125,183,.1);
  border:1px solid rgba(87,125,183,.25);border-radius:6px;
  color:var(--txt2);cursor:pointer;padding:7px;font-size:11px;
  font-family:var(--mono);transition:background .12s,color .12s;
}
#br-shortcuts-close:hover{background:rgba(87,125,183,.25);color:var(--txt);}

/* scanlines */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:99999;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.025) 2px,rgba(0,0,0,.025) 4px);
}
/* ── CODE EDITOR OVERLAY ── */
#editor-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: #1e1e1e; /* VS Code-like dark */
  flex-direction: column;
  z-index: 1100;
  font-family: var(--mono);
}
#editor-overlay.open { display: flex; }

#ed-bar {
  height: 40px;
  background: #252526;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
  flex-shrink: 0;
}
#ed-title { font-size: 12px; color: var(--txt2); }
#ed-filename { color: var(--txt); font-weight: 600; }
#ed-actions { display: flex; gap: 8px; }

.ed-btn {
  background: rgba(87,125,183,0.1);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--txt);
  cursor: pointer;
  padding: 4px 10px;
  font-size: 11px;
  font-family: var(--mono);
  transition: background 0.12s;
}
.ed-btn:hover { background: rgba(87,125,183,0.25); }
.ed-btn.danger { background: rgba(240,120,120,0.1); border-color: rgba(240,120,120,0.2); color: #f07878; }
.ed-btn.danger:hover { background: rgba(240,120,120,0.2); }

#ed-container {
  flex: 1;
  display: flex;
  overflow: hidden;
  position: relative;
}
#ed-gutter {
  width: 45px;
  background: #1e1e1e;
  border-right: 1px solid rgba(255,255,255,0.05);
  color: #858585;
  font-size: 12px;
  text-align: right;
  padding: 12px 8px;
  user-select: none;
  line-height: 1.5;
}
#ed-textarea {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #d4d4d4;
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.5;
  padding: 12px;
  resize: none;
  white-space: pre;
  overflow: auto;
}

#ed-status {
  height: 22px;
  background: var(--acc2);
  color: white;
  display: flex;
  align-items: center;
  padding: 0 12px;
  justify-content: space-between;
  font-size: 11px;
}
