*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#0f1115;color:#e6e6e6}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.auth-form{display:flex;flex-direction:column;gap:10px;width:320px}.auth-form input,.auth-form select{padding:10px;border-radius:6px;border:1px solid #333;background:#1a1d24;color:#eee}.auth-form button{padding:10px;border-radius:6px;border:none;background:#4f7cff;color:#fff;cursor:pointer}.error{color:#ff6b6b}.success{color:#51cf66}.note{color:#999;font-size:.85em}.app-shell{display:flex;flex-direction:column;height:100vh}.navbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#1a1d24;border-bottom:1px solid #2a2d34}.navbar a{color:#ccc;text-decoration:none}.navbar a:hover{color:#fff}.navbar .spacer{flex:1}.navbar button{background:transparent;border:1px solid #444;color:#ccc;border-radius:4px;padding:4px 10px;cursor:pointer}main{flex:1;overflow:auto}.page{padding:24px;max-width:900px;margin:0 auto}.page section{margin-bottom:32px}.page table{width:100%;border-collapse:collapse}.page th,.page td{text-align:left;padding:6px 8px;border-bottom:1px solid #2a2d34}.chat-page{display:flex;flex-direction:column;height:100%;max-width:800px;margin:0 auto}.chat-messages{flex:1;overflow:auto;padding:16px}.bubble{max-width:70%;margin-bottom:12px;padding:10px 14px;border-radius:10px}.bubble.user{margin-left:auto;background:#4f7cff}.bubble.assistant{background:#1e2129}.bubble-meta{font-size:.75em;color:#999;margin-top:4px}.chat-input-bar{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #2a2d34}.chat-input-bar textarea{flex:1;resize:none;padding:10px;border-radius:6px;border:1px solid #333;background:#1a1d24;color:#eee}.chat-input-bar button{padding:0 20px;border-radius:6px;border:none;background:#4f7cff;color:#fff;cursor:pointer}.chat-note{text-align:center;color:#777;font-size:.8em;padding:4px 16px 12px}.profile-form{display:flex;flex-direction:column;gap:12px;max-width:400px}.profile-form label{display:flex;flex-direction:column;gap:4px}
