:root{--green-600: #16a34a;--green-700: #15803d;--green-50: #f0fdf4;--bg: #f7faf8;--card: #ffffff;--border: #e2e8e4;--text: #14201a;--muted: #5b6b62;--radius: 10px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Geist,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;width:100%;max-width:380px;box-shadow:0 1px 3px #0000000f}.card h1{font-size:20px;margin:0 0 4px}.card p.subtitle{color:var(--muted);font-size:13px;margin:0 0 20px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;margin-bottom:6px;color:var(--muted)}.field input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);font-size:14px;font-family:inherit}.field input:focus{outline:2px solid var(--green-600);outline-offset:1px}button.btn{background:var(--green-600);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;width:100%;font-family:inherit}button.btn:hover{background:var(--green-700)}button.btn:disabled{opacity:.5;cursor:default}button.btn.secondary{background:transparent;color:var(--green-700);border:1px solid var(--border)}.error-box{background:#fef2f2;color:#b91c1c;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:14px}.app-shell{display:flex;height:100vh}.sidebar{width:280px;border-right:1px solid var(--border);background:var(--card);display:flex;flex-direction:column}.sidebar-header{padding:16px;border-bottom:1px solid var(--border);font-weight:700;color:var(--green-700)}.room-list{flex:1;overflow-y:auto}.room-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border);font-size:14px}.room-item:hover,.room-item.active{background:var(--green-50)}.chat-main{flex:1;display:flex;flex-direction:column}.chat-header{padding:16px;border-bottom:1px solid var(--border);font-weight:600;background:var(--card)}.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.msg{max-width:60%;padding:8px 12px;border-radius:12px;font-size:14px}.msg.mine{align-self:flex-end;background:var(--green-600);color:#fff}.msg.theirs{align-self:flex-start;background:var(--card);border:1px solid var(--border)}.msg img{max-width:240px;border-radius:8px;display:block}.composer{padding:12px;border-top:1px solid var(--border);display:flex;gap:8px;background:var(--card)}.composer input[type=text]{flex:1;padding:10px 12px;border-radius:8px;border:1px solid var(--border);font-family:inherit}.search-box{padding:12px;border-bottom:1px solid var(--border)}.search-box input{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);font-family:inherit}.search-result{padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border);font-size:14px}.search-result:hover{background:var(--green-50)}.admin-shell{padding:24px;max-width:1100px;margin:0 auto}.admin-nav{display:flex;gap:8px;margin-bottom:20px}.admin-nav button{padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--card);cursor:pointer;font-family:inherit}.admin-nav button.active{background:var(--green-600);color:#fff;border-color:var(--green-600)}table{width:100%;border-collapse:collapse;background:var(--card);border-radius:10px;overflow:hidden}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}th{background:var(--green-50);color:var(--green-700)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px}.stat-card .num{font-size:24px;font-weight:700;color:var(--green-700)}.stat-card .label{font-size:12px;color:var(--muted)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px}.badge.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fef3c7;color:#92400e}.qr-box{text-align:center;margin:12px 0}.qr-box img{width:180px;height:180px}.mono{font-family:ui-monospace,monospace;font-size:12px;background:var(--green-50);padding:6px 8px;border-radius:6px;word-break:break-all}
