:root{color-scheme:dark;--bg:#050916;--card:#0c1425;--line:#223453;--cyan:#49d7ff;--violet:#a871ff;--text:#eef5ff;--muted:#8fa2bd}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 25%,#102344 0,transparent 35%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,sans-serif;overflow:hidden}
.shell{height:100vh;display:grid;grid-template-columns:minmax(390px,46vw) 1fr}.avatar-panel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;border-right:1px solid #172743;background:linear-gradient(145deg,#071022,#0b1020)}
.aura{position:absolute;width:min(72vh,44vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#2fbce72c 0,#8958ff18 45%,transparent 70%);filter:blur(8px);transition:.5s}.aura.listening{transform:scale(1.12);filter:blur(3px)}.aura.thinking{animation:spin 3s linear infinite;background:conic-gradient(from 0deg,transparent,#a871ff42,transparent,#49d7ff42,transparent)}.aura.speaking{animation:pulse .7s ease-in-out infinite}
.portrait{position:relative;width:min(68vh,39vw);aspect-ratio:2/3;border-radius:42% 42% 30% 30%/30% 30% 18% 18%;overflow:hidden;box-shadow:0 35px 90px #000b,0 0 0 1px #7fdfff35;transform-style:preserve-3d;transition:filter .4s,transform .18s cubic-bezier(.2,.7,.2,1);z-index:2;will-change:transform}.face-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity 55ms linear;z-index:1;will-change:opacity}.face-frame.active{opacity:1;z-index:2}.portrait.listening{filter:saturate(1.08) brightness(1.05)}.portrait.thinking{filter:hue-rotate(8deg)}.portrait.error{filter:saturate(.7) sepia(.2)}
.gaze-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;z-index:3;pointer-events:none;will-change:opacity;transition:opacity .22s ease-out}
.skin-light{position:absolute;inset:-15%;z-index:3;pointer-events:none;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,38%),#b8eeff12 0,transparent 33%);mix-blend-mode:screen;transition:background-position .18s}
.identity,.status,.level{z-index:3}.identity{display:flex;gap:12px;align-items:baseline;margin-top:22px}.identity strong{letter-spacing:.35em;color:#b9eaff}.identity span{font-size:12px;color:var(--muted)}.status{display:flex;gap:9px;align-items:center;margin-top:12px;color:#cfe8ff}.status i{width:9px;height:9px;background:#61e8ac;border-radius:50%;box-shadow:0 0 14px #61e8ac}.level{width:180px;height:3px;background:#1c2940;margin-top:12px;border-radius:4px;overflow:hidden}.level span{display:block;height:100%;width:3%;background:linear-gradient(90deg,var(--cyan),var(--violet));transition:width .08s}
.conversation{min-width:0;display:flex;flex-direction:column;padding:clamp(22px,4vw,58px)}header{display:flex;justify-content:space-between;align-items:center}h1{font-size:clamp(30px,4vw,58px);margin:.1em 0 .35em;letter-spacing:-.04em}small{color:var(--cyan);letter-spacing:.18em}.icon,.round{border:1px solid var(--line);background:#111d33;color:white;border-radius:50%;width:48px;height:48px;font-size:20px;cursor:pointer}.icon.active{border-color:var(--cyan);box-shadow:0 0 22px #49d7ff55}.privacy{font-size:13px;color:var(--muted);padding:10px 14px;background:#0c1727;border-radius:9px}.messages{flex:1;min-height:0;overflow:auto;padding:24px 4px;scrollbar-color:#274264 transparent}.message{max-width:82%;padding:14px 18px;border:1px solid var(--line);border-radius:18px;margin:12px 0;background:#0d182b}.message.user{margin-left:auto;background:#17365a}.message b{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan)}.message p{margin:6px 0 0;white-space:pre-wrap;line-height:1.55}
form{border:1px solid var(--line);border-radius:20px;background:#0b1527;padding:12px}textarea{display:block;width:100%;resize:none;background:transparent;border:0;outline:0;color:white;font:inherit;padding:10px}.controls{display:flex;gap:9px;align-items:center}.controls #send{margin-left:auto;border:0;border-radius:24px;padding:12px 21px;background:linear-gradient(120deg,#2476a8,#704cc1);color:white;font-weight:700;font-size:15px;cursor:pointer}.round.active{background:#783f75;animation:pulse .8s infinite}
.user-nav,.page-nav{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:14px}.user-nav{justify-content:flex-end;margin-bottom:12px}.user-nav a,.page-nav a{color:#bcecff;text-decoration:none}.user-nav form{border:0;background:none;padding:0}.user-nav button,.page-nav button{border:0;background:none;color:#bcecff;cursor:pointer;padding:0;font:inherit}
.auth-body,.page-body{overflow:auto;min-height:100vh;background:radial-gradient(circle at 25% 15%,#17315a 0,transparent 34%),var(--bg)}.auth-body{display:grid;place-items:center;padding:24px}.auth-card,.admin-card{border:1px solid var(--line);background:#0b1527e8;border-radius:22px;box-shadow:0 24px 80px #0008}.auth-card{width:min(480px,100%);padding:34px}.auth-brand{letter-spacing:.42em;color:var(--cyan);font-weight:800}.auth-card h1,.page h1{font-size:clamp(30px,5vw,48px)}.muted{color:var(--muted);line-height:1.5}.stack-form,.form-grid,.user-card{display:grid;gap:16px}.stack-form{border:0;background:none;padding:10px 0 0}.stack-form label,.form-grid label,.user-card label{display:grid;gap:7px;color:#c5d4e8;font-size:14px}.stack-form input,.form-grid input,.user-card input{width:100%;border:1px solid var(--line);border-radius:10px;background:#071020;color:white;padding:12px;font:inherit}.primary,.admin-card button{border:0;border-radius:10px;padding:12px 18px;background:linear-gradient(120deg,#2476a8,#704cc1);color:#fff;font-weight:700;cursor:pointer}.notice{padding:12px 14px;border-radius:10px;margin:14px 0;background:#17442f}.notice.error{background:#542331}.notice.success{background:#17442f}.page{max-width:1180px;margin:auto;padding:32px}.page-nav{justify-content:space-between}.admin-card{padding:22px;margin:20px 0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));border:0;background:none;padding:0}.check{display:flex!important;align-items:center!important;grid-template-columns:auto 1fr!important}.check input{width:auto!important}.user-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}.user-card{margin:0}.user-title{display:flex;justify-content:space-between;align-items:center}.user-title small{color:var(--muted)}
.codex-actions{display:flex;gap:12px;margin-top:16px}.codex-actions button:disabled{opacity:.4;cursor:not-allowed}.codex-output{min-height:180px;max-height:520px;overflow:auto;white-space:pre-wrap;background:#050b16;border:1px solid var(--line);border-radius:12px;padding:16px;color:#cfe5ff}.danger-card{border-color:#70404a}.notice pre{white-space:pre-wrap;margin:0}.audit-list{display:grid;gap:8px}.audit-list div{border:1px solid var(--line);border-radius:10px;padding:12px}.audit-list time,.audit-list small{color:var(--muted)}.audit-list small{display:block;margin-top:5px;overflow-wrap:anywhere}code{color:#9ce8ff}
.codex-review{display:inline-block;margin:8px 0 2px;color:#9ce8ff;font-weight:700;text-decoration:none}
@keyframes pulse{50%{transform:scale(1.035);opacity:.83}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:800px){body{overflow:auto}.shell{height:auto;min-height:100vh;grid-template-columns:1fr}.avatar-panel{min-height:56vh;border-right:0;border-bottom:1px solid #172743}.portrait{width:min(52vh,72vw)}.conversation{min-height:70vh;padding:22px}.messages{min-height:280px}.user-nav{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition:none!important}}
