*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f4f5f7;color:#1a1a1a}code{background:#eee;padding:1px 4px;border-radius:3px;font-size:.85em}a{cursor:pointer;color:#2563eb}.auth-page{max-width:360px;margin:80px auto;text-align:center}.auth-page .card{text-align:left}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;gap:24px;padding:12px 20px;background:#1a1a2e;color:#fff}.app-title{font-weight:700;font-size:1.1em}.app-nav{display:flex;gap:14px;flex:1}.nav-link{color:#cbd5e1;text-decoration:none}.nav-link.active,.nav-link:hover{color:#fff;font-weight:600}.app-user{display:flex;align-items:center;gap:10px;font-size:.85em}.app-main{padding:20px;max-width:900px;margin:0 auto;width:100%}.card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:16px;margin-bottom:16px}.card h3{margin-top:0}.card label{display:block;margin-bottom:10px}.card input,.card select,.card textarea{display:block;width:100%;padding:6px 8px;margin-top:4px;border:1px solid #ccc;border-radius:4px;font-family:inherit}.card button{margin-right:8px;margin-top:6px;padding:6px 14px;border:none;border-radius:4px;background:#2563eb;color:#fff;cursor:pointer}.card button:disabled{background:#94a3b8;cursor:not-allowed}.card.actions button{background:#334155}.stage-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.stage-row input{width:auto;flex:1}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:6px 10px;border-bottom:1px solid #eee}.state{padding:10px;border-radius:6px}.state-loading{color:#64748b}.state-empty{color:#94a3b8;font-style:italic}.state-error{background:#fee2e2;color:#991b1b}.recent-list{list-style:none;padding:0}.recent-list li{padding:6px 0;border-bottom:1px solid #eee}.json-block{background:#0f172a;color:#e2e8f0;padding:10px;border-radius:6px;overflow-x:auto;font-size:.85em}.hint{color:#64748b;font-size:.9em}.message-list{list-style:none;padding:0;max-height:400px;overflow-y:auto}.message-list li{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid #f0f0f0}.msg-sender{font-weight:600;color:#475569}.msg-time{margin-left:auto;color:#94a3b8;font-size:.8em}.notification-list{list-style:none;padding:0}.notification-list li{padding:10px;border:1px solid #eee;border-radius:6px;margin-bottom:8px}.notification-list li.unread{border-left:4px solid #2563eb}.notification-list li.read{opacity:.6}.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:12px}
