.portal-body{background:var(--page);min-height:100vh;color:var(--text);font-family:var(--font-body);margin:0}#portal-root{flex-direction:column;min-height:100vh;display:flex}.portal-shell{background:var(--page);flex-direction:column;flex:1;min-height:100vh;display:flex}.portal-topbar{border-bottom:1px solid var(--line);background:#fbf8f2;justify-content:space-between;align-items:center;gap:24px;min-height:74px;padding:0 28px;display:flex}.portal-brand{color:var(--text);flex-direction:column;gap:6px;line-height:1;text-decoration:none;display:flex}.portal-brand__name{font-family:var(--font-display);font-size:1.35rem;font-weight:600}.portal-brand__role{color:var(--text-soft);text-transform:uppercase;letter-spacing:.22em;font-size:.58rem;font-weight:700}.portal-topbar__menu-wrap{position:relative}.portal-user-chip{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--text);align-items:center;gap:9px;padding:3px 13px 3px 3px;font-size:.82rem;font-weight:700;display:flex}.portal-user-chip:hover,.portal-user-chip:focus-visible{border-color:var(--line-strong)}.portal-user-avatar{background:var(--surface-green);color:#fffdf8;width:30px;height:30px;font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1rem;font-weight:600;display:grid}.portal-menu{z-index:30;border:1px solid var(--line);background:var(--surface);min-width:220px;box-shadow:var(--shadow);padding:6px;position:absolute;top:calc(100% + 8px);right:0}.portal-menu-email{border-bottom:1px solid var(--line);color:var(--text-soft);padding:8px 12px;font-size:.72rem}.portal-menu-item{width:100%;color:var(--text);text-align:left;background:0 0;border:0;padding:11px 12px;font-size:.82rem}.portal-menu-item:hover,.portal-menu-item:focus-visible{background:#203b310f}.portal-login{flex:1;place-items:center;padding:56px 24px 72px;display:grid}.portal-login__panel{border:1px solid var(--line);background:var(--surface);grid-template-columns:minmax(0,1fr) minmax(360px,420px);width:min(100%,980px);display:grid}.portal-login-aside{border-right:1px solid var(--line);background:var(--page);flex-direction:column;min-height:620px;padding:48px;display:flex}.portal-login-aside h2{max-width:430px;color:var(--text);font-family:var(--font-display);margin:18px 0 0;font-size:3rem;font-weight:600;line-height:1}.portal-login-aside p{max-width:390px;color:var(--text-soft);margin:22px 0 0;font-size:.96rem;line-height:1.8}.portal-login-photo{background:#d7c7b4;border:12px solid #fffdf8c7;border-radius:999px 999px 0 0;width:min(78%,310px);margin-top:auto;overflow:hidden}.portal-login-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;width:100%}.portal-login-card{background:var(--surface);flex-direction:column;justify-content:center;width:100%;padding:48px 40px;display:flex}.portal-login-badge{border:1px solid var(--line-strong);background:var(--page);width:58px;height:58px;color:var(--accent);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.portal-login-title{color:var(--text);font-family:var(--font-display);margin:24px 0 0;font-size:2.15rem;font-weight:600;line-height:1}.portal-login-sub{color:var(--text-soft);margin:14px 0 28px;font-size:.92rem;line-height:1.7}.portal-field{margin-bottom:16px}.portal-field label{color:#8f7d6b;text-transform:uppercase;letter-spacing:.2em;margin-bottom:8px;font-size:.58rem;font-weight:700;display:block}.portal-field input{border:1px solid var(--line);width:100%;min-height:46px;color:var(--text);background:#faf7f1;outline:none;padding:10px 12px}.portal-field input:focus{border-color:var(--accent);outline-offset:0;outline:2px solid #b58a5d2e}.portal-action-btn{border:1px solid var(--surface-green);background:var(--surface-green);color:#fffdf8;text-transform:uppercase;letter-spacing:.16em;justify-content:center;align-items:center;gap:10px;width:100%;min-height:46px;padding:0 16px;font-size:.62rem;font-weight:800;display:inline-flex}.portal-action-btn:hover,.portal-action-btn:focus-visible{background:var(--surface-green-2);border-color:var(--surface-green-2)}.portal-action-btn[disabled]{opacity:.62;cursor:wait}.portal-error{color:#9b392f;background:#9b392f12;border:1px solid #9b392f42;margin-top:14px;padding:11px 12px;font-size:.78rem;line-height:1.5}.portal-login-switch{text-align:center;margin-top:18px}.linklike{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font:inherit;background:0 0;border:0;padding:4px;font-size:.58rem;font-weight:800}.linklike:hover,.linklike:focus-visible{color:var(--surface-green)}.portal-switch-separator{color:var(--line-strong);margin:0 8px}.portal-fine{color:var(--text-soft);margin:22px 0 0;font-size:.72rem;line-height:1.55}.portal-empty{color:var(--text-soft);flex:1;justify-content:center;align-items:center;padding:56px 24px;font-size:.9rem;display:flex}.portal-spinner{border:2px solid var(--line);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite portal-spin;display:inline-block}@keyframes portal-spin{to{transform:rotate(360deg)}}.chat-bubble{z-index:50;border:1px solid var(--surface-green,var(--green,#203b31));background:var(--surface-green,var(--green,#203b31));color:#fffdf8;text-transform:uppercase;letter-spacing:.16em;border-radius:999px;min-height:54px;padding:0 20px;font-size:.6rem;font-weight:800;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 40px #1b2b2342}.chat-bubble:hover,.chat-bubble:focus-visible{background:var(--surface-green-2,var(--green-soft,#29463a));border-color:var(--surface-green-2,var(--green-soft,#29463a))}.chat-panel{z-index:49;border:1px solid var(--line,#2d241d1f);background:var(--surface,#fffdf8);border-radius:28px;flex-direction:column;width:min(380px,100vw - 32px);max-height:min(620px,100vh - 124px);animation:.16s ease-out chat-popup-in;display:flex;position:fixed;bottom:92px;right:24px;overflow:hidden;box-shadow:0 24px 64px #271b1433}@keyframes chat-popup-in{0%{opacity:.72;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.chat-panel-head{border-bottom:1px solid var(--line,#2d241d1f);background:linear-gradient(#fffaf3fa,#f8f0e5f0);align-items:center;gap:12px;padding:18px 18px 16px;display:flex}.chat-panel-head-avatar{background:var(--surface-green,var(--green,#203b31));color:#fffdf8;width:48px;height:48px;font-family:var(--font-display,Georgia, serif);border:2px solid #fffc;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.05rem;font-weight:600;display:grid;overflow:hidden;box-shadow:0 8px 24px #271b1424}.chat-panel-head-avatar img{object-fit:cover;width:100%;height:100%}.chat-panel-title{color:var(--text,#2d241d);font-family:var(--font-display,Georgia, serif);font-size:1.35rem;font-weight:600;line-height:1.05}.chat-panel-sub{color:var(--text-soft,var(--muted,#6f6458));margin-top:4px;font-size:.74rem;line-height:1.45}.chat-panel-scroll{background:linear-gradient(#f7f2eab8,#fffdf8fa);flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.chat-empty{color:var(--text-soft,var(--muted,#6f6458));text-align:left;padding:6px 2px 4px;font-size:.86rem;line-height:1.65}.chat-empty p{margin:0}.chat-quick-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.chat-quick-action{color:var(--text,#2d241d);background:#fffdf8eb;border:1px solid #203b3124;border-radius:999px;padding:9px 12px;font-size:.72rem;line-height:1.35}.chat-quick-action:hover,.chat-quick-action:focus-visible{border-color:var(--surface-green,var(--green,#203b31));background:#203b310f}.chat-msg{border:1px solid var(--line,#2d241d1f);max-width:84%;color:var(--text,#2d241d);white-space:pre-wrap;word-break:break-word;background:#fffdf8f5;border-radius:18px 18px 18px 6px;padding:12px 14px;font-size:.84rem;line-height:1.58;box-shadow:0 10px 22px #271b140f}.chat-msg-user{border-color:var(--surface-green,var(--green,#203b31));background:var(--surface-green,var(--green,#203b31));color:#fffdf8;border-radius:18px 18px 6px;align-self:flex-end}.chat-msg-agent{align-self:flex-start}.chat-msg-error{color:#9b392f;background:#9b392f12;border-color:#9b392f42}.chat-typing{gap:4px;display:inline-flex}.chat-typing span{background:var(--accent,var(--gold,#b88354));opacity:.35;border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite chat-pulse}.chat-typing span:nth-child(2){animation-delay:.14s}.chat-typing span:nth-child(3){animation-delay:.28s}@keyframes chat-pulse{0%,to{opacity:.35}45%{opacity:1}}.chat-panel-input{border-top:1px solid var(--line,#2d241d1f);background:#fffdf8fa;align-items:flex-end;gap:8px;padding:12px;display:flex}.chat-panel-input textarea{resize:none;border:1px solid var(--line,#2d241d1f);min-height:44px;max-height:104px;color:var(--text,#2d241d);background:#faf7f1;border-radius:16px;outline:none;flex:1;padding:11px 13px;font-size:.84rem;line-height:1.4}.chat-panel-input textarea:focus{border-color:var(--accent,var(--gold,#b88354))}.chat-send{border:1px solid var(--surface-green,var(--green,#203b31));background:var(--surface-green,var(--green,#203b31));color:#fffdf8;text-transform:uppercase;letter-spacing:.12em;border-radius:16px;min-height:44px;padding:0 15px;font-size:.56rem;font-weight:800}.chat-send:disabled{border-color:var(--line,#2d241d1f);background:var(--line,#2d241d1f);color:var(--text-soft,var(--muted,#6f6458));cursor:not-allowed}@media (width<=820px){.portal-login__panel{grid-template-columns:1fr}.portal-login-aside{border-right:0;border-bottom:1px solid var(--line);min-height:auto}.portal-login-photo{display:none}}@media (width<=560px){.portal-topbar{padding:0 18px}.portal-login{padding:28px 16px 52px}.portal-login-aside,.portal-login-card{padding:30px 24px}.portal-login-aside h2{font-size:2.25rem}.portal-user-chip>span:last-child{display:none}.chat-bubble{bottom:16px;right:16px}.chat-panel{border-radius:24px;width:calc(100vw - 32px);max-height:calc(100vh - 108px);bottom:82px;right:16px}}.portal-topbar__right{align-items:center;gap:14px;display:flex}.portal-lang-toggle{border:1px solid var(--line);background:var(--surface);line-height:1;display:inline-flex;overflow:hidden}.portal-lang-toggle__btn{appearance:none;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);cursor:pointer;background:0 0;border:0;padding:6px 10px;font-size:.72rem;font-weight:700}.portal-lang-toggle__btn+.portal-lang-toggle__btn{border-left:1px solid var(--line)}.portal-lang-toggle__btn:hover,.portal-lang-toggle__btn:focus-visible{color:var(--text)}.portal-lang-toggle__btn.is-active{background:var(--surface-green,#2f4b3a);color:#fffdf8}.pv-lang-toggle{margin-right:10px}
