@import"https://fonts.googleapis.com/css2?family=VT323&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--green: #00ff41;--green-mid: #00cc33;--green-dim: #007a1f;--green-dark: #003a0d;--green-glow: rgba(0, 255, 65, .5);--green-glow-sm: rgba(0, 255, 65, .15);--cyan-green: #00ff9c;--red: #ff4444;--red-dark: #ff0033;--bg: #0b1a0a;--bg-panel: rgba(0, 0, 0, .8);--bg-input: #000000;--font: "VT323", monospace}body:before{content:" ";position:fixed;display:block;inset:0;background:linear-gradient(#12101000 75%,#00000040 75%),linear-gradient(90deg,#ff000008,#00ff0003,#00007608);background-size:100% 2px,3px 100%;pointer-events:none;z-index:9999}body{background-color:var(--bg);color:var(--green);font-family:var(--font);font-size:1.15em;min-height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#001a00}::-webkit-scrollbar-thumb{background:var(--green-dim)}.page{padding:24px 20px;max-width:1040px;margin:0 auto}.page-center{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:24px;min-height:100vh}.dashboard-container{width:95%;max-width:100%}.terminal-container{align-self:stretch;max-width:95%;min-height:max(800px,50vh);margin:0 auto;padding:24px;border:2px solid var(--green-dim);border-radius:40px;background-color:var(--bg-panel);box-shadow:0 0 10px var(--green-glow),inset 0 0 15px var(--green-glow-sm);box-sizing:border-box;overflow-y:auto;overflow-wrap:break-word;word-break:break-word}.header{padding-bottom:12px;margin-bottom:16px;border-bottom:2px dashed var(--green-dim)}.header-title{display:flex;align-items:center;gap:12px;color:var(--green);font-size:1.8em;font-weight:700;text-shadow:0 0 10px rgba(0,255,65,.7)}.header-title:hover{background-color:var(--green);color:#000;cursor:pointer}.header-badge{padding:2px 8px;border:1px solid rgba(0,255,156,.35);color:var(--cyan-green);font-size:.55em;letter-spacing:.1em}.header-sub{margin-top:4px;color:var(--green-dim);font-size:.9em;letter-spacing:.06em}.header-meta{display:flex;align-items:center;gap:8px;margin-top:4px}.header-status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);flex-shrink:0;animation:blink 2s infinite}.header-username,.header-status-offline{font-size:.85em;letter-spacing:.06em}.header-username{color:var(--cyan-green);text-shadow:0 0 6px rgba(0,255,156,.4)}.header-status-offline{color:var(--red)}.logout-btn{margin-left:auto;padding:2px 10px;border-color:var(--green-dim);color:var(--green-dim);font-size:.55em;letter-spacing:.1em;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none;transition:color .15s,border-color .15s}.logout-btn:hover{background:transparent;border-color:var(--red);color:var(--red)}.header-line{display:flex;align-items:center;margin-bottom:8px;color:var(--green);font-size:1.8em;text-shadow:0 0 10px rgba(0,255,65,.7)}.sub-header{margin-bottom:16px;color:var(--cyan-green);font-size:1.1em}.prompt-symbol{margin-right:8px;color:var(--green)}.welcome-underline{display:block;width:100%;margin:10px 0;border-bottom:1px dashed var(--green-dim)}.status-line{margin-top:16px;color:var(--green-dim);font-size:.9em;letter-spacing:.08em}.enter-container{display:flex;justify-content:center;margin-top:24px;margin-bottom:24px}.enter-button{width:40%;padding:8px 32px;border:2px solid var(--green);background:transparent;color:var(--green);font-family:var(--font);font-size:1.4em;letter-spacing:.15em;text-align:center;text-decoration:none;text-shadow:0 0 10px var(--green);box-shadow:0 0 12px #00ff414d;cursor:pointer;-webkit-appearance:none;appearance:none;transition:background .15s,color .15s}.enter-button:hover{background:var(--green);color:#060606;text-shadow:none}.credits-menu{margin-top:32px;color:var(--green-dim);font-size:.85em}.credits-menu a,.terminal-menu a{display:inline-block;color:var(--green);text-decoration:none;transition:color .1s,background .1s}.credits-menu a:hover,.terminal-menu a:hover{background:var(--green);color:#000}.login-container{width:100%;max-width:480px}.field-group{margin-top:16px}.login-error{margin-top:12px;color:var(--red);font-size:.95em}input{flex:1;padding:6px 12px;border:2px solid var(--green);background:var(--bg-input);color:var(--green);font-family:var(--font);font-size:1.05em;outline:none;transition:background .15s}input::placeholder{color:var(--green-dim)}input:focus{background-color:#001a00}input[type=checkbox]{width:16px;height:16px;border:none;flex-shrink:0;cursor:pointer;accent-color:var(--green)}.search-label{margin-bottom:4px;color:var(--green-dim);font-size:.85em;letter-spacing:.08em}.search-row{display:flex;align-items:center}.search-prompt{padding:6px 10px;border:2px solid var(--green);border-right:none;background:var(--bg-input);color:var(--green);font-size:1.2em}.search-clear{padding:6px 12px;border:2px solid var(--green);border-left:none;background:var(--bg-input);color:var(--green-dim);font-family:var(--font);font-size:1em;cursor:pointer;transition:color .1s}.search-clear:hover{color:var(--green)}.table-wrap{margin-top:14px;border:2px solid var(--green-dim);background:#000000b3;box-shadow:0 0 10px #00ff4133,inset 0 0 15px #00ff410a;overflow:hidden}.table-body{max-height:58vh;overflow-y:auto}.col-header{display:grid;grid-template-columns:32px 1.5fr 1.2fr 1.3fr 1.1fr 100px;padding:5px 12px;border-bottom:1px solid var(--green-dim);background:#0006;color:var(--green-dim);font-size:.8em;letter-spacing:.1em}.person-row{display:grid;grid-template-columns:32px 1.5fr 1.2fr 1.3fr 1.1fr 100px;align-items:center;padding:4px 12px;border-bottom:1px solid rgba(0,77,10,.27);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.person-row:hover{background:#00ff410a}.person-row.selected{background:#00ff4114}.person-row .col-name{overflow:hidden;color:var(--green-mid);font-size:1.05em;white-space:nowrap;text-overflow:ellipsis;transition:color .1s,text-shadow .1s}.person-row:hover .col-name,.person-row.selected .col-name{color:var(--green);text-shadow:0 0 8px rgba(0,255,65,.5)}.person-row.selected .col-name:before{content:"▶ ";color:var(--green)}.col-dept,.col-role{overflow:hidden;font-size:.9em;white-space:nowrap;text-overflow:ellipsis;padding-right:6px}.col-dept{color:var(--green-dim)}.col-role{color:#005c1a}.col-netid{color:var(--cyan-green);font-size:1em;letter-spacing:.05em;text-shadow:0 0 6px rgba(0,255,156,.4)}.col-actions{display:flex;gap:6px;justify-content:flex-end;opacity:0;transition:opacity .15s}.person-row:hover .col-actions,.person-row.selected .col-actions{opacity:1}.btn{padding:1px 8px;border:1px solid var(--green-dim);background:transparent;color:var(--green-mid);font-family:var(--font);font-size:.95em;letter-spacing:.05em;cursor:pointer;transition:background .1s,color .1s}.btn:hover,.btn-danger:hover,.btn-primary:hover,.btn-ghost:hover{color:#000}.btn:hover{background:var(--green-mid)}.btn-danger:hover{background:var(--red-dark)}.btn-primary:hover{background:var(--green);text-shadow:none}.btn-ghost:hover{background:var(--green-dim)}.btn-danger{border-color:#ff003345;color:var(--red)}.btn-primary{border-color:var(--green);color:var(--green);text-shadow:0 0 8px var(--green)}.btn-ghost{border-color:var(--green-dim);color:var(--green-dim)}.btn-lg{padding:8px 20px;font-size:1.15em;letter-spacing:.06em}.btn-sm{font-size:.8em;padding:1px 6px}.btn-full{width:100%;text-align:left}.ml-auto{margin-left:auto}.fab{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:10px;padding:10px 22px;border:2px solid var(--green);background:#000;color:var(--green);font-family:var(--font);font-size:1.3em;letter-spacing:.06em;cursor:pointer;box-shadow:0 0 16px #00ff4166;text-shadow:0 0 10px var(--green);z-index:200;animation:fadeUp .2s ease;transition:background .1s,color .1s,text-shadow .1s}.fab:hover{background:var(--green);color:#000;text-shadow:none}.fab-count{padding:0 6px;background:var(--green-dim);color:#000;font-size:.9em}.toast{position:fixed;bottom:80px;right:24px;padding:8px 16px;border:1px solid var(--green);background:#000;color:var(--green);font-family:var(--font);font-size:1.1em;letter-spacing:.05em;box-shadow:0 0 12px #00ff4145;z-index:200;animation:fadeUp .2s ease}.status-bar{display:flex;justify-content:space-between;margin-top:8px;color:var(--green-dim);font-size:.9em;letter-spacing:.05em}.status-selected{color:var(--cyan-green);text-shadow:0 0 8px rgba(0,255,156,.4)}.empty-state{padding:40px;color:var(--green-dim);font-size:1.2em;letter-spacing:.1em;text-align:center}.empty-state-error{color:var(--red)}.loader-row{padding:12px;color:var(--green-dim);font-size:.9em;letter-spacing:.06em;text-align:center}.loader-cursor{display:inline-block;width:7px;height:.85em;margin-left:5px;background:var(--green-dim);vertical-align:middle;animation:blink .7s infinite}.eof-row{padding:10px;border-top:1px dashed #002a08;color:var(--green-dark);font-size:.9em;text-align:center}.divider{display:block;width:100%;margin:16px 0;border:none;border-bottom:2px dashed var(--green-dim)}.terminal-menu p{margin:5px 0}.prompt{margin-right:10px;color:var(--green)}.cursor{display:inline-block;width:8px;height:1em;margin-left:6px;background-color:var(--green);vertical-align:middle;animation:blink .7s infinite}.inverted-logo{height:1.4em;margin-right:8px;vertical-align:middle;filter:invert(1)}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#000000d9;z-index:1000}.modal{width:580px;max-width:92vw;max-height:90vh;display:flex;flex-direction:column;border:2px solid var(--green);background:var(--bg);font-family:var(--font);box-shadow:0 0 20px #00ff4145,inset 0 0 20px #00ff410a}.modal-danger{border-color:var(--red-dark);box-shadow:0 0 20px #ff003345,inset 0 0 20px #ff00330a}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 28px 10px;border-bottom:1px dashed var(--green-dim);flex-shrink:0}.modal-title{color:var(--green);font-size:1.6em;text-shadow:0 0 12px rgba(0,255,65,.5)}.modal-title-danger{color:var(--red);text-shadow:0 0 10px rgba(255,68,68,.5)}.modal-netid{margin-top:2px;color:var(--cyan-green);font-size:1.1em}.modal-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;padding:16px 28px 20px;overflow-y:auto;flex:1}.field-label{color:var(--green-dim);font-size:.8em;letter-spacing:.08em}.field-value{color:var(--green-mid);font-size:1.05em}.field-input{width:100%;padding:2px 6px;border:1px solid var(--green-dim);background:transparent;color:var(--green);font-family:var(--font);font-size:inherit}.field-input:focus{outline:1px solid var(--green);background:#001a00}select.field-input{cursor:pointer}.modal-body{padding:0 28px 20px;color:var(--green-mid);font-size:1.05em;line-height:1.6}.modal-body strong{color:var(--green)}.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 28px;border-top:1px dashed var(--green-dim);flex-shrink:0}.modal-success{padding:8px 28px;color:var(--green);border-top:1px dashed var(--green-dim);flex-shrink:0;letter-spacing:.06em}.modal-error{padding:8px 28px;color:var(--red);border-top:1px dashed rgba(255,68,68,.4);flex-shrink:0}.section-head{grid-column:1 / -1;margin-top:8px;margin-bottom:2px;border-bottom:1px dashed var(--green-dim);padding-bottom:3px}.section-head-label{font-size:.8em;color:var(--green-dim);letter-spacing:.12em}.names-section{grid-column:1 / -1;margin-top:8px}.names-list{border-left:1px dashed var(--green-dim);padding-left:12px;margin-top:8px}.name-row{display:flex;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--green-dim)}.name-row-text{flex:1;font-size:.9em}.name-source{color:var(--green-dim);font-size:.85em}.name-primary-badge{color:var(--green-dim);font-size:.8em}.add-name-form{margin-top:10px}.add-name-label{color:var(--green-dim);font-size:.8em;margin-bottom:4px}.add-name-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.add-name-actions{margin-top:6px;display:flex;align-items:center;gap:8px}.add-name-checkbox-label{font-size:.9em;display:flex;align-items:center;gap:4px}.form-error{margin-top:4px;color:var(--red);font-size:.9em}.boot-line{color:var(--green);letter-spacing:.08em;margin-bottom:4px}.boot-line.dim{color:var(--green-dim);font-size:.85em;margin-bottom:20px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:8px}.dash-tile{border:1px solid var(--green-dim);padding:16px 18px;cursor:pointer;position:relative;transition:border-color .15s,background .15s}.dash-tile:hover{border-color:var(--green);background:var(--green-glow-sm)}.dash-tile-disabled{opacity:.4;cursor:default}.dash-tile-label{font-size:1rem;color:var(--green);letter-spacing:.08em}.dash-tile-sub{font-size:.75rem;color:var(--green-dim);margin-top:4px}.dash-tile-wip{font-size:.7rem;color:var(--green-dim);margin-top:8px}@keyframes blink{50%{opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%,to{text-shadow:0 0 8px var(--green)}50%{text-shadow:0 0 18px var(--green),0 0 30px rgba(0,255,65,.4)}}.pub-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:4px}.pub-col-header,.pub-row{display:grid;grid-template-columns:32px 100px 1.5fr 1fr;align-items:center;gap:0 8px;padding:5px}.pub-col-header{border-bottom:1px solid var(--green-dim);background:#0006;color:var(--green-dim);font-size:.8em;letter-spacing:.1em}.pub-row{border-bottom:1px solid rgba(0,77,10,.27);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.pub-row:hover{background:#da09090a}.pub-row.selected{background:#efeae414}.pub-col-pmid{color:var(--cyan-green);font-size:1.2em;letter-spacing:.04em;text-shadow:0 0 6px rgba(0,255,156,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pub-col-title{color:var(--green-mid);font-size:1em;overflow:hidden;transition:color .1s,text-shadow .1s}.pub-row:hover .pub-col-title,.pub-row.selected .pub-col-title{color:var(--green);text-shadow:0 0 8px rgba(0,255,65,.5)}.pub-col-journal{color:var(--green-dim);font-size:.9em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pub-col-year{color:var(--green-dim);font-size:.9em;text-align:center}.pub-col-citations{color:#005c1a;font-size:.9em;text-align:center}.pub-col-source{color:var(--green-dim);font-size:.85em;letter-spacing:.06em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
