:root {
  --loria-primary: #5b5bd6;
  --loria-secondary: #0ea5a4;
  --loria-accent: #f59e0b;
}
html, body { margin:0; padding:0; }
.loria-public-body { min-height:100vh; background:
  radial-gradient(circle at top left, rgba(255,255,255,.16), transparent 34%),
  linear-gradient(135deg, var(--loria-primary), var(--loria-secondary)); color:#fff; }
.loria-portal-wrap { min-height:100vh; display:grid; place-items:center; padding:26px; }
.loria-hero-card { width:min(760px, 100%); background:rgba(255,255,255,.12); backdrop-filter: blur(14px); border:1px solid rgba(255,255,255,.18); border-radius:30px; padding:34px; box-shadow:0 20px 60px rgba(0,0,0,.18); text-align:center; position:relative; }
.loria-switcher { display:flex; gap:8px; flex-wrap:wrap; }
.loria-hero-card .loria-switcher { position:absolute; top:16px; inset-inline-end:16px; }
.loria-switcher a { text-decoration:none; color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:8px 12px; font-weight:800; }
.loria-hero-logo { max-width:94px; max-height:94px; object-fit:contain; margin-bottom:12px; }
.loria-badge { display:inline-flex; padding:8px 14px; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); font-weight:800; }
.loria-hero-card h1 { margin:14px 0 8px; font-size:clamp(28px, 4.6vw, 44px); }
.loria-hero-card h2 { margin:0 0 14px; font-size:clamp(18px, 3vw, 28px); }
.loria-hero-card p { margin:0 auto 22px; max-width:50ch; line-height:1.8; opacity:.94; }
.loria-portal-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }
.loria-btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; border-radius:14px; padding:0 18px; text-decoration:none; font-weight:800; border:none; cursor:pointer; }
.loria-btn.primary { background:#fff; color:var(--loria-primary); }
.loria-btn.secondary { background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.18); }
.loria-portal-shell { min-height:100vh; padding:28px; box-sizing:border-box; }
.loria-portal-header { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:24px; }
.loria-portal-brand { display:flex; align-items:center; gap:14px; }
.loria-portal-brand img { width:54px; height:54px; object-fit:contain; border-radius:16px; background:rgba(255,255,255,.12); padding:6px; }
.loria-portal-brand div { display:flex; flex-direction:column; gap:4px; }
.loria-portal-grid { display:grid; grid-template-columns:minmax(260px, .8fr) minmax(0, 1.25fr) minmax(300px, .9fr); gap:18px; }
.loria-panel { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:24px; backdrop-filter:blur(14px); padding:18px; }
.loria-panel h3 { margin:0 0 14px; font-size:18px; }
.loria-profile-card { display:grid; gap:8px; }
.loria-profile-card img { width:70px; height:70px; object-fit:cover; border-radius:20px; border:1px solid rgba(255,255,255,.25); }
.loria-room-list,.loria-note-list { display:grid; gap:10px; }
.loria-room-link,.loria-note-item { text-decoration:none; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:18px; padding:12px 14px; }
.loria-room-link.is-active { box-shadow:0 0 0 3px rgba(255,255,255,.14); }
.loria-chat-box { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:20px; padding:14px; display:grid; gap:10px; min-height:340px; max-height:480px; overflow:auto; }
.loria-msg { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.14); border-radius:18px; padding:12px 14px; max-width:88%; }
.loria-msg.mine { margin-inline-start:auto; background:rgba(255,255,255,.2); }
.loria-msg header { display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; }
.loria-msg p,.loria-note-item p { margin:0; line-height:1.75; }
.loria-file-link { display:inline-flex; color:#fff; font-weight:800; margin-top:8px; }
.loria-compose { margin-top:14px; display:grid; gap:10px; }
.loria-compose textarea,.loria-compose input[type="file"] { width:100%; box-sizing:border-box; }
.loria-compose textarea { min-height:110px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.08); color:#fff; border-radius:18px; padding:12px 14px; }
.loria-compose-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
@media (max-width: 1180px) { .loria-portal-grid { grid-template-columns:1fr; } }
@media (max-width: 720px) { .loria-portal-shell, .loria-portal-wrap { padding:18px; } .loria-portal-header { flex-direction:column; align-items:flex-start; } .loria-hero-card .loria-switcher { position:static; justify-content:center; margin-bottom:16px; } }
