:root{--bg:#060e09;--panel:#0a1810;--panel2:#102319;--line:#234633;--green:#61f3a0;--green2:#26bc68;--text:#e5faec;--dim:#8cac99;--muted:#5d826b;--danger:#ff8b80;--amber:#eac084}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font:14px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:2px}button:hover{filter:brightness(1.13)}a{color:var(--green)}.app{display:grid;grid-template-columns:246px minmax(0,1fr);height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 72% -12%,#143824 0,transparent 48%),var(--bg)}.sidebar{display:flex;flex-direction:column;gap:16px;background:linear-gradient(175deg,#0d2014,#09120d 68%);padding:24px 14px 14px;border-right:1px solid var(--line);min-height:0}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 19px;border-bottom:1px solid var(--line)}.brand .mark{width:47px;height:47px;display:grid;place-items:center;color:#baffd4;font:900 20px Consolas,monospace;border:1px solid #54b97c;background:#143822;box-shadow:0 0 22px #1fe97922;border-radius:11px}.mark span{color:var(--green)}.brand b{display:block;color:#7af6ac;letter-spacing:2px;font:800 17px Consolas,monospace}.brand small{font:10px Consolas,monospace;color:#84a98e;letter-spacing:1px}.brand em{color:var(--green);font-style:normal}.scope{display:flex;align-items:center;gap:9px;font:10px Consolas,monospace;letter-spacing:1px;color:#92d9aa;background:#11291a;padding:10px;border:1px solid #244b34;border-radius:9px}.pulse,.status-ring{display:inline-block;width:8px;height:8px;border-radius:50%;background:#65e991;box-shadow:0 0 14px #4ef79570}.scope-chip{margin-left:auto;font-size:9px;color:#5ccc89}.nav-label{color:#669578;font:700 10px Consolas,monospace;letter-spacing:1.3px;margin:7px 10px 0;display:flex;justify-content:space-between;align-items:center}.nav-label button{border:0;background:transparent;color:var(--green);font-size:19px;line-height:1}.nav{display:grid;gap:4px}.navitem{border:1px solid transparent;color:#b5d4c0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;border-radius:9px;padding:11px 12px}.navitem span:first-child{font-size:17px;color:#61c98a}.navitem.active{border-color:#2e7049;background:#163b27;color:#e9fff1}.navitem small,.mini-dot{margin-left:auto}.mini-dot{background:#ab8742;width:6px;height:6px;border-radius:50%}.mini-dot.on{background:#4feb83}.sidebar-sep{border-top:1px solid var(--line)}.projectlist,.chatlist{display:grid;gap:3px;overflow-y:auto;min-height:50px;max-height:20vh}.chatlist{flex:1}.side-row{border:0;background:transparent;color:#a1c8ad;text-align:left;padding:8px 12px;border-radius:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.side-row:hover,.side-row.chosen{background:#193b28;color:#c4f9d6}.sidebar-foot{display:flex;gap:11px;align-items:center;border-top:1px solid var(--line);padding:15px 6px 2px}.sidebar-foot strong{font:11px Consolas,monospace;color:#a7e7bc}.sidebar-foot small{display:block;color:#658a71;font-size:10px}.shell{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{height:68px;flex:none;border-bottom:1px solid #1c3928;display:flex;justify-content:space-between;align-items:center;padding:0 32px;gap:12px;background:#08170ed9}.bread,.head-actions{display:flex;align-items:center;gap:12px}.bread{white-space:nowrap;overflow:hidden}.bread .crumb{font:12px Consolas,monospace;color:#66ad7b}.bread .divider{color:#3e7451}.bread strong{font-size:13px;text-overflow:ellipsis;overflow:hidden}.chip{color:#9be9b5;border:1px solid #2f5b42;border-radius:20px;font:10px Consolas,monospace;padding:6px 11px;white-space:nowrap}.chip i{display:inline-block;width:5px;height:5px;background:#72f3a2;border-radius:50%;vertical-align:middle;margin-right:7px}.outline,.solid{border:1px solid #37734e;border-radius:9px;background:#12301e;color:#a4edbe;padding:11px 15px;font-weight:600}.outline.small{font:11px Consolas,monospace;padding:9px 12px}.solid{background:linear-gradient(130deg,#196439,#277b47);color:#e5ffe9;border-color:#42a76b}.content{min-height:0;flex:1;overflow:auto;padding:28px 33px}.view{display:none;max-width:1360px;margin:0 auto;animation:fade .25s ease}.view.active{display:block}#view-james.active{display:flex;height:100%;max-width:none;min-height:0}.section-head{margin-bottom:26px}.eyebrow{color:#69eaa0;letter-spacing:2.4px;font:11px Consolas,monospace;margin-bottom:9px}.section-head h1{margin:0 0 6px;font-size:clamp(24px,3.4vw,35px);letter-spacing:-1.1px;line-height:1.25}.section-head p{margin:0;color:var(--dim);font-size:14px}.metricgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.metric{background:linear-gradient(142deg,#102c1b,#0c1b12);border:1px solid #264a33;border-radius:14px;padding:20px}.metric .meta{font:10px Consolas,monospace;letter-spacing:1.2px;color:#9abb9f}.metric .value{font:700 24px Consolas,monospace;color:#d9ffdf;margin:11px 0 4px}.metric .explain{color:#6f9f7b;font-size:11px}.good{color:#61f3a0!important}.warn{color:#e5bc74!important}.bad{color:#ff9188!important}.featuregrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin:22px 0}.feature{border:1px solid #2b573b;background:radial-gradient(circle at top right,#16402a,#0c1d13 60%);border-radius:15px;padding:24px;text-align:left;color:var(--text);display:flex;gap:17px;min-height:166px}.feature-icon{font:36px Consolas,monospace;color:#7af5a8}.feature strong{font-size:18px}.feature p{font-size:13px;color:#96b99f;margin:8px 0 15px}.feature span{font-size:11px;color:#71efa1;font-weight:700}.notice{display:flex;gap:16px;padding:17px 19px;border:1px solid #335b40;background:#0f2217;border-radius:12px;color:#b7d9c0}.notice>span{font-size:23px;color:var(--green)}.notice strong{color:#cff2d7}.notice p{font-size:12px;margin:4px 0 0;color:#8fb49d}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:17px}.filterset{display:flex;flex-wrap:wrap;gap:6px}.filter{background:#0d1b12;color:#90b19a;border:1px solid #263e2c;border-radius:9px;padding:8px 11px;font-size:12px}.filter.active{color:#c2ffdd;background:#19462c;border-color:#327b4a}.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.toolcard{border:1px solid #294a34;background:#0c1f14;border-radius:13px;padding:18px;display:flex;flex-direction:column;gap:11px}.toolrow{display:flex;justify-content:space-between;gap:12px;align-items:center}.toolrow strong{font-size:15px}.api-path{font:10px Consolas,monospace;color:#5ead7f}.toolcard p{color:#8bac96;margin:0;font-size:12px}.toolcard select,.toolcard input{background:#07140c;color:#c6f7d5;border:1px solid #2e593f;border-radius:7px;padding:9px;min-width:0}.toolcard input{width:100%}.toolcard label{font:10px Consolas,monospace;color:#81bd98}.toolcard .toolrow button{border:1px solid #378352;background:#174329;color:#baf7d0;border-radius:7px;padding:9px;font:11px Consolas,monospace}.jamespane{display:flex;flex:1;flex-direction:column;min-height:0;max-width:1000px;width:100%;margin:auto}.aihead{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #214632;padding:0 0 16px;gap:8px}.ai-identity{display:flex;align-items:center;gap:13px}.ai-mark{width:44px;height:44px;background:#173f25;display:grid;place-items:center;border:1px solid #4ea76e;color:#9ffbc0;font:800 28px Consolas,monospace;border-radius:12px;box-shadow:0 0 19px #42d67225}.ai-identity strong{font:700 16px Consolas,monospace;color:#bdffd2}.ai-identity strong span{font-size:11px;color:#5eab7c}.ai-identity small{display:block;font-size:10px;color:#8bb19a;margin-top:4px}.pill{border:1px solid #4c5538;border-radius:9px;color:#e1c894;background:#201e10;padding:7px 10px;font:10px Consolas,monospace;white-space:nowrap}.pill.ok{border-color:#2f7247;background:#103f20;color:#91edb1}.messages{flex:1;min-height:120px;overflow:auto;display:flex;flex-direction:column;gap:19px;padding:18px 8px}.empty-chat{text-align:center;margin:auto;max-width:620px;padding:28px}.halo{border-radius:28px;border:1px solid #3f8752;background:radial-gradient(circle,#1e5a36,#102119);height:90px;width:90px;margin:0 auto 20px;display:grid;place-items:center;font:800 55px Consolas,monospace;color:#8affb4;box-shadow:0 0 44px #25b75b25}.empty-chat h2{font-size:30px;letter-spacing:-1px;margin:5px}.empty-chat p{color:#8eb69b}.suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:23px}.suggestions button{background:#132a1c;color:#bdf4cf;border:1px solid #30513d;border-radius:9px;padding:11px 14px;font-size:12px}.bubble{max-width:95%;display:flex;gap:11px}.bubble.user{align-self:flex-end;flex-direction:row-reverse}.bubble .avatar{flex:0 0 32px;height:32px;border-radius:9px;background:#19492b;color:#c3fbd4;display:grid;place-items:center;font:700 17px Consolas,monospace}.bubble.user .avatar{background:#214c38}.bubble .body{background:#0e2116;border:1px solid #244b34;border-radius:12px;padding:13px 16px;min-width:0}.bubble.user .body{background:#193d28}.bubble .who{font:10px Consolas,monospace;letter-spacing:1.2px;color:#63be83;margin-bottom:8px}.answer{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.65}.answer code{font-family:Consolas,monospace}.answer pre{white-space:pre;overflow:auto;background:#06130a;padding:16px;border:1px solid #2b5c3c;border-radius:8px;font:12px/1.6 Consolas,monospace}.codebar{display:flex;justify-content:space-between;align-items:center;font:10px Consolas,monospace;color:#77bd8f}.codebar button{border:1px solid #346b48;background:#102c1b;color:#9effb7;border-radius:5px;padding:4px 9px}.attachments{display:flex;gap:7px;flex-wrap:wrap}.attachment{border-radius:7px;border:1px solid #356747;color:#a8e9bb;padding:5px 9px;font-size:11px;background:#12281b}.attachment button{margin-left:9px;background:none;color:#b5e2c1;border:0}.composer{border:1px solid #386d4b;background:#0e2015;border-radius:13px;box-shadow:0 0 30px #18bd4c0b;overflow:hidden}.composer textarea{background:transparent;border:0;outline:none;color:var(--text);width:100%;padding:14px 17px;resize:none;max-height:180px;min-height:65px}.composer textarea::placeholder{color:#658b70}.composerbar{padding:7px 10px 10px;display:flex;align-items:center;justify-content:space-between}.composerbar>div{display:flex;align-items:center;gap:8px}.iconbtn{border:1px solid #2d5e3e;background:#152c1c;border-radius:8px;color:#8aebb0;min-height:34px;min-width:34px}.hint{color:#739b80;font-size:11px}.send{border:1px solid #4eb66f;background:#246940;color:#e4ffeb;padding:10px 17px;border-radius:9px;font:700 11px Consolas,monospace}.footnote{text-align:center;font-size:10px;color:#5d806a;padding:10px 0}.files-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:16px}.files-head label{display:block;font:11px Consolas,monospace;color:#86b498;margin-bottom:7px}.files-head select{background:#12291a;color:#bff6d0;border:1px solid #2f5f42;border-radius:9px;padding:12px;min-width:210px}.dropzone{border:2px dashed #2d6d49;background:#0c2015;border-radius:16px;padding:48px 12px;display:grid;place-items:center;gap:7px;color:#91b59b}.dropzone.over{border-color:var(--green);background:#18432b}.dropzone div{font-size:40px;color:var(--green)}.dropzone strong{color:#d0f8db}.dropzone span{font-size:12px}.fileslist{margin-top:15px;display:grid;gap:8px}.fileentry{display:flex;align-items:center;justify-content:space-between;border:1px solid #254c36;background:#102418;border-radius:9px;padding:13px 17px;gap:15px}.fileentry span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fileentry small{color:#7da48a}.diag-card{border:1px solid #2d503b;background:#0f2418;padding:19px;border-radius:13px;margin-bottom:15px}.diag-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.diag-title strong{font-size:15px}.diagrow{display:flex;justify-content:space-between;border-top:1px solid #244432;padding:11px 0;color:#aec8b7;gap:10px}.diagrow code{font-size:11px}.toast{display:none;position:fixed;bottom:22px;right:22px;background:#1b4a2b;border:1px solid #4aa66e;color:#ddffe9;border-radius:11px;padding:13px 20px;z-index:20;box-shadow:0 8px 40px #0007}.toast.error{border-color:#dc8072;background:#4d231e}.mobile-menu{display:none;background:none;border:0;color:var(--green);font-size:19px}@keyframes fade{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.metricgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.tools-grid{grid-template-columns:1fr}}@media(max-width:780px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{display:none;position:fixed;z-index:9;inset:0 auto 0 0;width:260px;box-shadow:0 0 80px #000}.sidebar.open{display:flex}.mobile-menu{display:block}.content{padding:18px}.topbar{padding:0 16px}.head-actions .chip{display:none}.head-actions .outline{font-size:9px}.metricgrid,.featuregrid{grid-template-columns:1fr}.ai-identity small{font-size:9px}.scope{margin-top:0}}

/* GridShock V3 password login + image usability */
body.locked #appShell{display:none!important}body:not(.locked) #loginGate{display:none!important}
.login-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 25%,#123722 0,#06140c 47%,#030906 100%);color:#dbffe5}
.login-panel{width:min(460px,100%);padding:40px 38px;display:flex;flex-direction:column;gap:12px;border:1px solid #287f46;border-radius:16px;background:linear-gradient(145deg,#0c2417,#06130d);box-shadow:0 0 80px #1c7a4130}
.login-panel .login-mark{font-weight:900;font-size:26px;display:grid;place-items:center;height:64px;width:64px;border:1px solid #46f18c;border-radius:14px;color:#7bffac;box-shadow:0 0 30px #10d66020}
.login-panel h1{margin:0;font-size:29px;color:#c8ffdd}.login-panel p{line-height:1.6;color:#91b79c;font-size:13px;margin:0 0 12px}.login-panel label{color:#85cd9c;font-size:11px;letter-spacing:1px;font-weight:700}
.login-panel input{width:100%;box-sizing:border-box;min-height:48px;padding:12px 14px;border:1px solid #2e784c;border-radius:9px;background:#07130c;color:#e7fff1;font-size:15px}.login-panel input:focus{outline:2px solid #4be784;outline-offset:1px}
.login-panel .login-submit{width:100%;margin-top:10px;min-height:45px}.login-panel small{color:#78a588;font-size:11px;text-align:center}.login-message{min-height:19px;font-size:12px;color:#ffad94}
.attachment-image{height:48px;width:64px;object-fit:cover;border-radius:6px;border:1px solid #388858;margin-right:7px;vertical-align:middle}
.file-thumbnail{height:44px;width:58px;object-fit:cover;border-radius:7px;margin-right:8px;border:1px solid #317449}
.message-files{display:flex;gap:9px;flex-wrap:wrap;padding-top:10px}.message-image{max-width:min(330px,100%);max-height:220px;object-fit:contain;cursor:zoom-in;border-radius:9px;border:1px solid #32774d}
.composer.drag-over{outline:2px dashed #6efaa3;outline-offset:4px}
@media(max-width:520px){.login-panel{padding:26px 22px}}


/* GRIDSHOCK V3 FULL-SIZE FILE VIEWER */

.v3-viewer[hidden],
.v3-viewer-body [hidden] {
 display: none !important;
}

.v3-viewer {
 position: fixed;
 inset: 0;
 z-index: 9999;
 background: rgba(0,0,0,.88);
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 18px;
 box-sizing: border-box;
}

.v3-viewer-panel {
 display: flex;
 flex-direction: column;
 width: min(1200px,100%);
 max-height: 95vh;
 overflow: hidden;
 background: #0b1d12;
 border: 1px solid #48ac69;
 border-radius: 14px;
 box-shadow: 0 25px 100px #000;
}

.v3-viewer-head {
 padding: 14px 18px;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 10px;
 border-bottom: 1px solid #29533b;
 color: #bafad0;
}

.v3-viewer-head > div {
 display: flex;
 gap: 9px;
}

.v3-viewer-head strong {
 max-width: 60%;
 word-break: break-word;
}

.v3-viewer-body {
 min-height: 150px;
 overflow: auto;
 padding: 16px;
 display: grid;
 place-items: center;
}

.v3-viewer-body img {
 display: block;
 max-width: 100%;
 max-height: 75vh;
 object-fit: contain;
}

.v3-viewer-body pre {
 width: 100%;
 box-sizing: border-box;
 white-space: pre-wrap;
 overflow-wrap: anywhere;
 color: #d9ffe4;
 font: 13px/1.65 Consolas,monospace;
}

.v3-viewer-body p {
 color: #8fb9a2;
}

.fileentry .outline {
 flex-shrink: 0;
 cursor: pointer;
}

.file-thumbnail,
.attachment-image {
 cursor: zoom-in;
}

@media(max-width:650px) {
 .v3-viewer-head {
   flex-wrap: wrap;
 }
 .v3-viewer-head strong {
   max-width: 100%;
 }
 .fileentry {
   flex-wrap: wrap;
 }
}

/* ======================================================
   GRIDSHOCK // COMMAND DECK VISUAL UPGRADE
   Emerald green / retro GridShock control center
   ====================================================== */

:root {
  --bg: #06110b;
  --panel: #0c2015;
  --panel2: #143321;
  --line: #2a573c;
  --green: #76ffae;
  --green2: #32d77a;
  --text: #ebfff1;
  --dim: #a6c8b1;
  --muted: #71967d;
}

html, body {
  font-size: 14px;
}

.app {
  grid-template-columns: 278px minmax(0,1fr);
  background:
    radial-gradient(
      ellipse 55% 38% at 70% 0,
      #14482b50,
      transparent 75%
    ),
    linear-gradient(155deg,#06130c,#050e09 75%);
}

.sidebar {
  padding: 21px 13px 14px;
  gap: 11px;
  background:
    linear-gradient(172deg,#0c2116,#07130e 60%,#081b12);
  border-right: 1px solid #26553b;
  box-shadow: 8px 0 40px #00000022;
  overflow-x: hidden;
}

.brand {
  gap: 14px;
  padding: 4px 9px 17px;
}

.brand .mark {
  width: 54px;
  height: 54px;
  border-color: #57ed97;
  background: linear-gradient(145deg,#185f37,#092115);
  box-shadow:
    inset 0 1px #b0ffd433,
    0 7px 25px #15c36e27;
}

.brand b {
  font-size: 17px;
  letter-spacing: 2.3px;
}

.brand small {
  font-size: 10px;
  display: block;
  margin-top: 5px;
}

.scope {
  margin: 3px 1px 8px;
  border-color: #2c6444;
  background: linear-gradient(90deg,#14452b,#0d291b);
  padding: 12px;
  box-shadow: inset 0 1px #ffffff07;
}

.nav-label {
  margin: 9px 9px 3px;
  color: #83b69a;
  letter-spacing: 1.7px;
}

.nav {
  gap: 5px;
}

.navitem {
  border-radius: 11px;
  padding: 12px 13px;
  color: #b7ddc3;
  font-weight: 550;
  transition:
    background .15s,
    border-color .15s,
    transform .15s;
}

.navitem:hover {
  background: #1b3f2b;
  transform: translateX(2px);
}

.navitem.active {
  background: linear-gradient(105deg,#1a5636,#143722);
  border-color: #398961;
  box-shadow: inset 3px 0 #5ff3a1;
}

.navitem span:first-child {
  color: #8ffcb5;
}

.sidebar-sep {
  margin: 5px 1px 0;
}

.projectlist,
.chatlist {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 78px;
  max-height: none;
  flex: 1 1 116px;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: #3f9361 transparent;
  padding-right: 3px;
}

.chatlist {
  flex: 1 1 125px;
}

.side-row {
  display: block;
  flex: 0 0 auto;
  width: 100%;
  min-height: 35px;
  padding: 9px 11px;
  border: 1px solid transparent;
  line-height: 1.3;
}

.side-row:hover,
.side-row.chosen {
  border-color: #2e6845;
  background: #1a5033;
  color: #e6ffed;
}

.sidebar-foot {
  margin-top: auto;
  flex: none;
  background: #092015;
  border: 1px solid #26543b;
  padding: 12px;
  border-radius: 12px;
}

.sidebar-foot strong {
  font-size: 10px;
}

.sidebar-foot small {
  line-height: 1.5;
}

.topbar {
  height: 74px;
  padding: 0 clamp(18px,3vw,45px);
  background: #091a11ee;
  box-shadow: 0 1px #aaffbb0a;
}

.bread .crumb {
  color: #83e9a6;
}

.bread strong {
  font-size: 14px;
}

.head-actions {
  gap: 9px;
}

.chip {
  padding: 8px 12px;
  background: #123423;
  border-color: #2d724b;
}

.outline.small {
  border-radius: 9px;
}

.content {
  padding: clamp(22px,3.1vw,48px);
  scrollbar-color: #316d4b transparent;
}

.view {
  max-width: 1450px;
}

.section-head {
  position: relative;
  padding: 3px 0 21px;
  border-bottom: 1px solid #254c36;
  margin-bottom: 24px;
}

.section-head h1 {
  font-weight: 780;
  font-size: clamp(27px,3vw,39px);
  letter-spacing: -1.3px;
}

.section-head p {
  font-size: 14px;
  max-width: 790px;
  line-height: 1.6;
}

.eyebrow {
  font-size: 10px;
  color: #76eea3;
}

.metricgrid {
  gap: 16px;
}

.metric {
  min-height: 149px;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(142deg,#143824,#0b1e15 75%);
  border-color: #2b6642;
  border-radius: 16px;
  padding: 23px;
  box-shadow:
    0 10px 26px #0002,
    inset 0 1px #edffe510;
  transition:
    transform .18s,
    border-color .18s;
}

.metric::after {
  content: '';
  position: absolute;
  right: -26px;
  top: -36px;
  width: 105px;
  height: 105px;
  border: 1px solid #63f09e1d;
  border-radius: 50%;
  box-shadow: 0 0 0 24px #63f09e08;
}

.metric:hover {
  transform: translateY(-3px);
  border-color: #45a56d;
}

.metric .meta {
  letter-spacing: 1.7px;
  font-size: 10px;
  color: #9fc8ad;
}

.metric .value {
  font-size: clamp(19px,2vw,26px);
  margin: 18px 0 5px;
}

.metric .explain {
  font-size: 12px;
  color: #90bca0;
}

.featuregrid {
  gap: 18px;
  margin: 22px 0;
}

.feature {
  min-height: 184px;
  border-color: #31714c;
  border-radius: 17px;
  padding: 28px;
  background:
    radial-gradient(
      circle at 95% 6%,
      #206b453b,
      transparent 55%
    ),
    linear-gradient(145deg,#153c27,#0b2117);

  box-shadow: inset 0 1px #ffffff12;
  transition:
    transform .2s,
    border-color .2s,
    box-shadow .2s;
}

.feature:hover {
  transform: translateY(-4px);
  border-color: #66d995;
  box-shadow: 0 14px 35px #0004;
}

.feature-icon {
  color: #8bffb7;
  font-size: 39px;
}

.feature strong {
  font-size: 20px;
}

.feature p {
  color: #a5cbbb;
  font-size: 13px;
  line-height: 1.7;
}

.feature span {
  font-size: 12px;
}

.notice {
  border-radius: 14px;
  padding: 19px 21px;
  background:
    linear-gradient(95deg,#153a25,#0c271a);
  border-color: #31694a;
}

.toolcard,
.diag-card {
  background:
    linear-gradient(160deg,#113120,#0b1d14);
  border-color: #326347;
  box-shadow: inset 0 1px #ffffff08;
}

.toolcard {
  border-radius: 15px;
  padding: 21px;
}

.toolrow {
  flex-wrap: wrap;
}

.api-path {
  overflow-wrap: anywhere;
}

.aihead {
  padding: 8px 0 20px;
}

.ai-mark {
  background: linear-gradient(135deg,#1b6840,#0d2f20);
}

.messages {
  padding: 25px 12px;
}

.bubble .body {
  border-color: #315941;
  border-radius: 15px;
}

.composer {
  border-radius: 16px;
  border-color: #448a60;
  background: #0e2418;
  box-shadow: 0 10px 30px #0002;
}

.files-head,
.toolbar {
  flex-wrap: wrap;
}

.fileentry {
  border-color: #315c40;
  border-radius: 12px;
}

.dropzone {
  background: linear-gradient(135deg,#102e1e,#0a1e14);
}

.login-gate {
  background:
    radial-gradient(
      ellipse at 50% 26%,
      #185032,
      #06140c 56%,
      #030806
    );
}

.login-panel {
  border-color: #37865a;
  box-shadow:
    0 24px 100px #0008,
    0 0 50px #19ad6520;
}

.login-panel h1 {
  font-weight: 800;
}

/* EMAIL CODE SCREEN */

.otp-step {
  display: grid;
  gap: 11px;
  margin: 7px 0 0;
  border-top: 1px solid #2e6546;
  padding-top: 19px;
}

.otp-step[hidden] {
  display: none !important;
}

.otp-awaiting #loginForm label[for="loginUsername"],
.otp-awaiting #loginUsername,
.otp-awaiting #loginForm label[for="loginPassword"],
.otp-awaiting #loginPassword,
.otp-awaiting #loginButton {
  display: none !important;
}

.otp-step p {
  margin: 0 0 5px;
}

.otp-step input {
  font-size: 23px;
  letter-spacing: 8px;
  text-align: center;
  font-family: Consolas, monospace;
}

.otp-step .send {
  min-height: 44px;
}

.otp-step .otp-back {
  background: transparent;
  color: #94d5a9;
  border: 0;
  padding: 8px;
}

/* RESPONSIVE */

@media (max-width:1100px) {
  .app {
    grid-template-columns: 258px minmax(0,1fr);
  }

  .metricgrid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width:780px) {
  .app {
    display: block;
  }

  .sidebar {
    width: min(300px,90vw);
  }

  .content {
    padding: 22px;
  }

  .topbar {
    height: 66px;
  }

  .featuregrid,
  .metricgrid {
    grid-template-columns: 1fr;
  }
}

@media (max-width:500px) {
  .topbar {
    padding: 0 10px;
  }

  .head-actions .outline {
    padding: 7px 8px;
  }

  .feature {
    min-height: 155px;
    padding: 19px;
  }

  .metric {
    min-height: 125px;
    padding: 19px;
  }

  .section-head h1 {
    font-size: 27px;
  }

  .login-panel {
    padding: 25px 20px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .view,
  .feature,
  .metric,
  .navitem {
    animation: none !important;
    transition: none !important;
  }
}

/* GRIDSHOCK // JAMES SECURITY BAR */

.gs-security-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0 0 20px;
    padding: 13px 17px;
    color: #c5efd2;
    background: linear-gradient(
        120deg,
        #113320,
        #081b12
    );
    border: 1px solid #377952;
    border-radius: 14px;
    box-shadow: inset 0 1px #ffffff14;
    font: 12px Consolas, monospace;
}

.gs-security-bar b {
    color: #87ffc0;
    letter-spacing: .7px;
}

.gs-healthy {
    color: #70ffab;
    text-shadow: 0 0 10px #52e990;
}

.gs-security-tools {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    color: #99c8a6;
}

#gsRevokeDevices {
    font: 11px Consolas, monospace;
    background: #123823;
    color: #b2ffcb;
    border: 1px solid #4a9162;
    border-radius: 9px;
    padding: 9px 11px;
    cursor: pointer;
}

#gsRevokeDevices:hover {
    background: #225b3b;
}

.gs-trust-choice {
    display: flex !important;
    align-items: center;
    gap: 10px;
    color: #b5efc7;
    font-size: 12px;
    cursor: pointer;
    padding: 7px 0;
}

.gs-trust-choice input {
    width: 18px;
    height: 18px;
    accent-color: #5cf09b;
}

/* Repair clipped sidebar lists */

.sidebar {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #3d815b transparent;
}

.projectlist,
.chatlist {
    min-height: 90px;
    max-height: 210px;
    flex: 0 1 auto;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #408f62 #0a1b12;
}

.side-row {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
}

@media(max-width:780px) {
    .gs-security-tools {
        margin-left: 0;
        width: 100%;
    }
}
