:root{--bg:#e8f1fc;--panel:#fff;--side:#f3f8fe;--ink:#0f1b4c;--muted:#566083;--blue:#0b63f6;--line:#d7dfee;--active:#e6f0fd;--bubble:#eef4fd;--err:#b3261e}*{box-sizing:border-box}html,body,#main{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Segoe UI Variable,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}a{color:var(--blue);text-decoration:none}button,input,textarea{font:inherit;color:inherit}.window{background:var(--panel);flex-direction:column;height:100%;display:flex}.titlebar{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:14px 32px;font-size:22px;font-weight:600;display:flex}.titlebar img{width:36px;height:30px}.body{flex:1;min-height:0;display:flex}.side{background:var(--side);flex-direction:column;gap:12px;width:136px;padding:24px 12px;display:flex}.side .spacer{flex:1}.nav{color:var(--muted);cursor:pointer;background:0 0;border:0;border-left:3px solid transparent;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:14px 4px;display:flex}.nav:hover{background:var(--active)}.nav.on{background:var(--active);color:var(--blue);border-left-color:var(--blue)}.nav svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:28px;height:28px}.main{flex-direction:column;flex:1;min-width:0;padding:32px 8%;display:flex}.hero{text-align:center;margin-bottom:24px}.hero img{width:64px;height:54px}.hero h1{margin:14px 0 8px;font-size:40px;line-height:1.15}.hero p{color:var(--muted);margin:0;font-size:20px}.log{flex-direction:column;flex:1;gap:14px;padding:4px 0 16px;display:flex;overflow-y:auto}.msg{align-items:flex-start;gap:16px;display:flex}.msg.user{justify-content:flex-end}.avatar{background:var(--bubble);border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid}.avatar img{width:30px;height:25px}.bubble{background:var(--bubble);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px;max-width:80%;padding:14px 24px;font-size:18px}.msg.user .bubble{background:var(--blue);color:#fff}.composer{border:1px solid var(--line);border-radius:20px;align-items:center;gap:12px;padding:10px 12px 10px 20px;display:flex}.composer input{background:0 0;border:0;outline:0;flex:1;min-width:0;padding:10px 0;font-size:18px}.send{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:14px;width:70px;height:54px;font-size:20px}.send:disabled{opacity:.5;cursor:default}.foot{color:var(--muted);flex-wrap:wrap;gap:8px 16px;padding-top:16px;display:flex}.foot a{font-weight:600}.error{color:var(--err);margin:8px 0 0}.card p.error,.error{color:var(--err)}.login{place-items:center;min-height:100%;padding:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:14px;width:100%;max-width:420px;padding:32px;display:flex}.card .brand{align-items:center;gap:12px;font-size:22px;font-weight:600;display:flex}.card .brand img{width:36px;height:30px}.card h1{margin:8px 0 0;font-size:24px}.card p{color:var(--muted);margin:0}.card label{flex-direction:column;gap:6px;font-weight:600;display:flex}.card input{border:1px solid var(--line);border-radius:10px;padding:12px;font-weight:400}.primary{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:12px;font-weight:600}.primary:disabled{opacity:.6;cursor:default}.ghost{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:10px;align-self:flex-start;padding:10px 18px}.page h2{margin:0 0 12px;font-size:28px}.page p{color:var(--muted)}.admin{background:var(--bg);min-height:100%;padding:24px 16px}.admin-wrap{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;display:flex}.admin-head{align-items:center;gap:12px;font-size:22px;font-weight:600;display:flex}.admin-head img{width:36px;height:30px}.admin-head button{margin-left:auto}.admin .card{max-width:none;padding:24px}.admin .card h2{margin:0;font-size:20px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.status{margin:0;font-size:15px}.status.ok{color:#14692f}.status.bad{color:var(--err)}.hint{color:var(--muted);font-size:14px;font-weight:400}@media (width<=640px){.titlebar{padding:12px 16px}.body{flex-direction:column}.side{flex-direction:row;order:2;width:auto;padding:8px 16px}.side .spacer{display:none}.nav{flex:1;padding:8px}.main{padding:16px}.hero h1{font-size:28px}.hero p{font-size:16px}.bubble{max-width:100%}}