/* extra unnecessary infrastructure */
.feature-panel .window-body { min-height: 420px; }
.feature-hub-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.feature-card { position:relative; min-height:118px; padding:14px; cursor:pointer; text-align:left; overflow:hidden; border:1px solid #b9cdf9; background:linear-gradient(145deg,#162547,#0b1328); color:#eef4ff; box-shadow:inset 1px 1px #4267ad; transition:transform .18s,filter .18s,border-color .18s; }
.feature-card:hover { transform:translateY(-3px) rotate(.25deg); filter:brightness(1.17); border-color:#fff; }
.feature-card:active { transform:translateY(1px) scale(.99); }
.feature-card .feature-icon { font-size:27px; display:block; margin-bottom:9px; }
.feature-card b { display:block; font-size:14px; letter-spacing:.5px; }
.feature-card small { display:block; margin-top:5px; color:#9fb2d9; line-height:1.35; }
.feature-card::after { content:"OPEN"; position:absolute; right:8px; bottom:7px; font:700 8px 'Courier New',monospace; color:#62779f; }
.feature-header { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:12px; }
.feature-back,.tiny-btn,.mail-row,.staff-card,.admin-btn,.patch-row { cursor:pointer; border:1px solid #c9dafc; border-right-color:#223b72; border-bottom-color:#223b72; background:linear-gradient(#5479c8,#2b4e98); color:#fff; box-shadow:inset 1px 1px #afc5f5; font-weight:700; }
.feature-back,.tiny-btn { padding:6px 9px; font-size:10px; }
.feature-subtitle { color:#90a5cf; font-size:10px; }

.cctv-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.camera-feed { position:relative; min-height:180px; overflow:hidden; cursor:pointer; border:2px inset #8999ba; background:#050705; color:#d9ffe0; transition:all .25s; }
.camera-feed.selected { grid-column:span 2; min-height:310px; border-color:#ecf4ff; }
.camera-feed::after { content:""; pointer-events:none; position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.035) 4px); animation:cctvFlicker .16s steps(2) infinite; }
@keyframes cctvFlicker { 50% { opacity:.55; } }
.cam-label { position:absolute; top:6px; left:7px; z-index:3; padding:2px 5px; background:#050505b8; font:700 10px 'Courier New'; }
.cam-time { position:absolute; right:7px; bottom:6px; z-index:3; font:700 10px 'Courier New'; text-shadow:1px 1px #000; }
.cam-scene { position:absolute; inset:0; display:grid; place-items:center; font:700 17px 'Courier New'; text-align:center; filter:grayscale(1) contrast(1.35); background:radial-gradient(circle at 55% 54%,#475443 0 2%,transparent 3%),linear-gradient(160deg,#1f261e,#080b08 68%); }
.cam-scene img { width:100%; height:100%; object-fit:cover; opacity:.66; filter:grayscale(1) contrast(1.5) brightness(.65); }
.cam-static { background:repeating-radial-gradient(circle at 30% 40%,#454545 0 1px,#111 1px 3px); animation:staticMove .14s steps(2) infinite; }
@keyframes staticMove { 50% { transform:scale(1.03) translate(2px,-2px); filter:invert(.08); } }
.cam-door::before { content:""; width:74px; height:115px; border:4px solid #778170; border-bottom:0; box-shadow:0 0 25px #000 inset; }
.cctv-controls { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.cctv-blackout .camera-feed .cam-scene { background:#000 !important; }
.cctv-blackout .camera-feed .cam-scene>* { display:none; }
.cctv-blackout .camera-feed::before { content:"SIGNALAS DINGO BRO"; position:absolute; z-index:4; inset:0; display:grid; place-items:center; color:#f33; font:900 15px 'Courier New'; }

.mail-layout { display:grid; grid-template-columns:240px minmax(0,1fr); min-height:380px; border:1px solid #41547b; }
.mail-list { background:#091020; border-right:1px solid #41547b; }
.mail-row { width:100%; display:block; padding:10px; text-align:left; border-width:0 0 1px; background:#111b31; box-shadow:none; }
.mail-row.unread { background:#19315e; }
.mail-row:hover { filter:brightness(1.2); }
.mail-row b,.mail-row span,.mail-row small { display:block; }
.mail-row span { margin:3px 0; font-size:11px; }
.mail-row small { color:#7f94bd; font-size:9px; }
.mail-detail { padding:16px; background:#0b101b; }
.mail-detail h3 { margin:0 0 5px; }
.mail-meta { color:#7f94bd; font:10px 'Courier New'; border-bottom:1px dotted #465777; padding-bottom:10px; }
.mail-body { margin-top:15px; line-height:1.6; white-space:pre-line; }
.unread-badge { display:inline-block; min-width:18px; padding:2px 5px; border-radius:8px; background:#a82424; text-align:center; font-size:9px; }

.staff-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.staff-card { position:relative; padding:11px; text-align:left; background:#121d34; box-shadow:inset 1px 1px #344f84; transition:.18s; }
.staff-card:hover { transform:translateX(3px); background:#19305b; }
.staff-avatar { float:left; width:48px; height:48px; display:grid; place-items:center; margin-right:10px; border:1px inset #9db4e3; background:#050910; font-size:26px; }
.staff-card b { display:block; }
.staff-card small { display:block; color:#8499c4; margin-top:3px; }
.staff-status { position:absolute; right:7px; top:7px; font:700 8px 'Courier New'; color:#77ee89; }
.staff-dossier { margin-top:12px; padding:13px; border:1px dashed #6f82aa; background:#090f1d; min-height:90px; line-height:1.45; }

.achievement-grid { display:grid; gap:8px; }
.achievement { display:grid; grid-template-columns:42px 1fr auto; gap:10px; align-items:center; padding:9px; border:1px solid #3a4c70; background:#0a1120; opacity:.38; filter:grayscale(1); transition:.25s; }
.achievement.unlocked { opacity:1; filter:none; border-color:#8aaaf0; background:#14274b; animation:unlockPulse .7s; }
@keyframes unlockPulse { 0%{transform:scale(.98)} 35%{transform:scale(1.025);filter:brightness(1.5)} 100%{transform:none} }
.achievement-icon { font-size:24px; text-align:center; }
.achievement b,.achievement small { display:block; }
.achievement small { color:#8fa2c8; margin-top:3px; }
.achievement-state { font:700 9px 'Courier New'; color:#7d91bb; }
.achievement.unlocked .achievement-state { color:#78ff90; }
.achievement-toast { position:fixed; right:20px; top:20px; z-index:200; width:min(330px,calc(100vw - 40px)); padding:11px 13px; border:2px outset #d6e4ff; background:linear-gradient(#274b93,#132c5c); box-shadow:5px 5px #0009; transform:translateX(120%); transition:transform .38s cubic-bezier(.18,.9,.25,1.3); font-weight:800; }
.achievement-toast.show { transform:translateX(0); }
.achievement-toast small { display:block; color:#b6c7e8; margin-top:3px; }

.patch-list { display:grid; gap:8px; }
.patch-row { padding:10px; text-align:left; background:#111d36; }
.patch-row:hover { filter:brightness(1.16); }
.patch-row b { display:block; }
.patch-row span { display:block; margin-top:4px; color:#94a6c8; font-size:10px; }
.patch-detail { max-height:0; overflow:hidden; transition:max-height .35s ease,padding .35s; padding:0 10px; background:#080e19; }
.patch-detail.open { max-height:180px; padding:10px; border:1px solid #344668; }
.update-progress { height:18px; margin-top:12px; border:1px inset #a5b7da; background:#05080e; overflow:hidden; }
.update-progress span { display:block; width:0; height:100%; background:repeating-linear-gradient(90deg,#315cb8 0 12px,#6f8ed2 12px 24px); transition:width .18s; }

.admin-login { max-width:420px; margin:35px auto; padding:17px; border:1px solid #8ca5d5; background:#0a1120; }
.admin-login label { display:block; margin:9px 0 4px; font-size:10px; color:#99abd0; }
.admin-login input { width:100%; padding:8px; border:2px inset #cbd4e6; background:#e2e2e2; color:#111; }
.admin-error { min-height:30px; margin-top:10px; color:#ff8b8b; font:700 10px 'Courier New'; }
.admin-console { display:none; }
.admin-console.open { display:block; animation:appear .2s; }
.admin-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.admin-btn { min-height:72px; padding:11px; background:linear-gradient(#4b67a6,#223f7d); }
.admin-btn.red { background:linear-gradient(#a83c3c,#5b1515); border-color:#ffc4c4 #4c1111 #4c1111 #ffc4c4; }
.admin-btn:hover { filter:brightness(1.22); }
.escape-btn { position:relative; transition:transform .12s; }
.admin-log { margin-top:12px; min-height:100px; max-height:180px; overflow:auto; padding:10px; background:#020402; color:#7cff8b; font:11px/1.5 'Courier New'; }
.protocol-overlay { pointer-events:none; position:fixed; inset:0; z-index:80; border:0 solid rgba(255,0,0,.5); opacity:0; }
.protocol-overlay.active { animation:protocol 1s infinite; }
@keyframes protocol { 0%,100%{opacity:.05;border-width:0} 50%{opacity:.65;border-width:18px} }
.site-shell.system-invert { animation:systemSpin .7s ease-in-out; filter:invert(1) hue-rotate(160deg); }
@keyframes systemSpin { 50%{transform:rotate(.5deg) scale(.992)} }
.fake-particle { position:fixed; z-index:170; width:8px; height:14px; background:currentColor; pointer-events:none; animation:particleFall 1.3s ease-out forwards; }
@keyframes particleFall { to { transform:translate(var(--x),var(--y)) rotate(720deg); opacity:0; } }

@media(max-width:700px){
  .feature-hub-grid,.staff-grid,.admin-controls,.cctv-grid { grid-template-columns:1fr; }
  .camera-feed.selected { grid-column:span 1; }
  .mail-layout { grid-template-columns:1fr; }
  .mail-list { border-right:0; border-bottom:1px solid #41547b; }
}
