/* Grundlayout */
body {
    margin: 0;
    font-family: Arial, sans-serif;
    background-color: #f0f0f5;
}

.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: 240px;
    height: 100%;
    background-color: #ff66a3;
    padding: 20px;
    box-sizing: border-box;
    overflow-y: auto;
}

.logo img {
    max-width: 100%;
    height: auto;
    margin-bottom: 20px;
}

.language-switcher {
    margin-bottom: 20px;
}

.language-switcher select {
    width: 100%;
    padding: 5px;
    border-radius: 5px;
    border: 1px solid #ccc;
}

nav ul {
    list-style: none;
    padding: 0;
}

nav ul li {
    margin: 10px 0;
}

nav ul li a {
    text-decoration: none;
    color: white;
    font-weight: bold;
}

nav ul li a:hover {
    text-decoration: underline;
}

.main-wrapper {
    margin-left: 240px;
    padding: 20px;
}

.main-content {
    background-color: #ffffff;
    padding: 20px;
    box-sizing: border-box;
    min-height: calc(100vh - 60px);
}

/* Loginbox */
.login-box {
    background-color: white;
    padding: 15px;
    border-radius: 10px;
    text-align: center;
}

.login-box h2 {
    font-size: 18px;
    margin-bottom: 10px;
}

.login-box input[type="email"],
.login-box input[type="password"] {
    width: 90%;
    padding: 8px;
    margin: 8px 0;
    box-sizing: border-box;
}

.login-box button {
    background-color: #ff66a3;
    color: white;
    padding: 8px 16px;
    border: none;
    cursor: pointer;
    width: 90%;
    margin-top: 10px;
}

.login-box button:hover {
    background-color: #e05590;
}

/* Independent content-language controls for the forum */
.forum-home__hero-actions { display:grid; justify-items:end; gap:12px; }
.forum-home__language-switch { display:flex; align-items:center; gap:9px; padding:6px 7px 6px 11px; border:1px solid #e2e7f0; border-radius:13px; background:rgba(255,255,255,.88); box-shadow:0 7px 20px rgba(30,41,59,.05); }
.forum-home__language-switch > span { color:#68758b; font-size:11px; font-weight:800; }
.forum-home__language-switch > div { display:flex; gap:3px; }
.forum-home__language-switch a { display:grid; place-items:center; min-width:35px; height:30px; padding:0 8px; border-radius:9px; color:#64718a; font-size:11px; font-weight:900; text-decoration:none; }
.forum-home__language-switch a:hover { background:#f4f2fb; color:#4338ca; }
.forum-home__language-switch a.is-active { color:#fff; background:linear-gradient(135deg,#e83f8b,#7563df); box-shadow:0 5px 12px rgba(170,53,145,.18); }
.forum-topic-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; padding:13px 15px; border:1px solid #e1e7f0; border-radius:15px; background:#fff; box-shadow:0 7px 22px rgba(15,23,42,.045); }
.forum-topic-sort { display:flex; align-items:center; gap:12px; }
.forum-topic-sort > span { color:#66738b; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.forum-topic-sort nav { display:flex; gap:3px; padding:3px; border-radius:10px; background:#f2f4f8; }
.forum-topic-sort a { padding:7px 10px; border-radius:8px; color:#68748a; font-size:11px; font-weight:800; text-decoration:none; }
.forum-topic-sort a:hover { color:#4438ca; background:#fff; }
.forum-topic-sort a.is-active { color:#172554; background:#fff; box-shadow:0 3px 9px rgba(15,23,42,.09); }
.forum-topic-reply-trigger { display:inline-flex; align-items:center; gap:7px; min-height:42px; }
.forum-topic-bottom-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin:0 0 18px; padding:13px 15px; border:1px solid #e3e7ef; border-radius:14px; background:linear-gradient(100deg,#fff,#fff8fc); }
.forum-topic-bottom-actions > span { color:#66738b; font-size:12px; font-weight:700; }
.forum-reply-panel { overflow:hidden; padding:0 !important; scroll-margin-top:20px; }
.forum-reply-panel > summary { display:flex; align-items:center; gap:12px; padding:17px 19px; list-style:none; cursor:pointer; background:linear-gradient(100deg,#fff,#fff7fb); }
.forum-reply-panel > summary::-webkit-details-marker { display:none; }
.forum-reply-panel__icon { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:11px; color:#fff; background:linear-gradient(135deg,#e83f8b,#7563df); }
.forum-reply-panel > summary div { flex:1; min-width:0; }
.forum-reply-panel > summary strong,.forum-reply-panel > summary small { display:block; }
.forum-reply-panel > summary strong { color:#172554; font-size:15px; }
.forum-reply-panel > summary small { margin-top:3px; color:#6e7990; font-size:11px; }
.forum-reply-panel > summary > i { color:#7c879b; font-style:normal; transition:transform .2s ease; }
.forum-reply-panel[open] > summary > i { transform:rotate(180deg); }
.forum-reply-panel__body { padding:20px; border-top:1px solid #e8ebf2; background:#fafbfe; }
.forum-reply-panel .reply-form fieldset { padding:0 !important; }
.forum-reply-panel .reply-form legend { margin-bottom:12px; color:#172554; font-size:18px; font-weight:800; }
.forum-reply-panel .forum-editor-wrap { overflow:visible; border:1px solid #dce2ed; border-radius:14px; background:#fff; }
.forum-reply-panel .editor-bar { padding:9px; border-bottom:1px solid #e7eaf1; background:#f7f8fb; border-radius:14px 14px 0 0; }
.forum-reply-panel .editor-area { min-height:180px; padding:16px; }
.forum-reply-panel .editor-foot { padding:11px 13px; border-top:1px solid #e7eaf1; background:#fff; border-radius:0 0 14px 14px; }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.forum-home__search { display:grid; grid-template-columns:minmax(230px,.72fr) minmax(360px,1.28fr); align-items:center; gap:22px; padding:18px 20px; }
.forum-home__search-copy { display:flex; align-items:center; gap:12px; }
.forum-home__search-copy > span { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; border-radius:12px; background:#fff0f7; color:#d63384; font-size:20px; font-weight:900; }
.forum-home__search-copy h2 { margin:0; color:#172554; font-size:16px; }
.forum-home__search-copy p { margin:3px 0 0; color:#6d7890; font-size:11px; line-height:1.4; }
.forum-home__search form { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:8px; }
.forum-home__search label { min-width:0; }
.forum-home__search input[type="search"] { width:100%; min-height:43px; padding:10px 13px; border:1px solid #d6ddea; border-radius:11px; background:#fafbfe; color:#172554; font:inherit; }
.forum-home__search input[type="search"]:focus { border-color:#7563df; outline:3px solid rgba(117,99,223,.12); background:#fff; }
.forum-home__search .btn { min-height:43px; }
.forum-home__search-reset { color:#6b7280; font-size:11px; font-weight:800; }
.forum-home__search-results { padding:20px; }
.forum-home__search-results-head { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:13px; }
.forum-home__search-results-head > div { display:flex; align-items:center; gap:9px; }
.forum-home__search-results-head span { padding:5px 8px; border-radius:8px; background:#f6edf8; color:#bd3477; font-size:10px; font-weight:900; }
.forum-home__search-results-head h2 { margin:0; color:#172554; font-size:18px; }
.forum-home__search-results-head > strong { display:grid; place-items:center; min-width:34px; height:34px; border-radius:10px; background:#f0efff; color:#5546cc; }
.forum-home__search-list { display:grid; gap:7px; }
.forum-home__search-list > a { display:grid; grid-template-columns:34px minmax(0,1fr) auto 22px; align-items:center; gap:11px; padding:11px 12px; border:1px solid #e5e9f1; border-radius:12px; color:inherit; text-decoration:none; transition:.18s ease; }
.forum-home__search-list > a:hover { transform:translateY(-1px); border-color:#cfd7e6; background:#fcfcff; box-shadow:0 7px 18px rgba(30,41,59,.05); }
.forum-home__search-result-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#fff0f7; color:#d33382; font-weight:900; }
.forum-home__search-list strong,.forum-home__search-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.forum-home__search-list strong { color:#172554; font-size:13px; }
.forum-home__search-list small { margin-top:3px; color:#768198; font-size:10px; }
.forum-home__search-list b { color:#69758c; font-size:10px; white-space:nowrap; }
.forum-home__search-list i { color:#8c96aa; font-style:normal; }
.forum-home__search-notice { margin:0; padding:18px; border:1px dashed #dbe1eb; border-radius:12px; background:#fafbfd; color:#68758c; text-align:center; }
.forum-admin-language-form { display:flex; align-items:end; justify-content:flex-end; gap:9px; margin:0 0 12px; padding:10px 12px; border:1px solid #e1dcf3; border-radius:11px; background:#faf8ff; }
.forum-admin-language-form label { display:grid; gap:5px; min-width:min(100%,280px); }
.forum-admin-language-form label > span { color:#5a4e83; font-size:.7rem; font-weight:800; }
.forum-admin-language-form select { min-height:36px; padding:7px 30px 7px 10px; border:1px solid #cfc7e8; border-radius:9px; background:#fff; color:var(--forum-ink); font:inherit; }
.forum-admin-language-form .btn { min-height:36px; padding:7px 12px; font-size:.73rem; }
.forum-admin-language-form--board { margin:7px 0; background:#fcfbff; }

@media (max-width:720px) {
    .forum-home__hero-actions { width:100%; justify-items:stretch; }
    .forum-home__language-switch { justify-content:space-between; }
    .forum-topic-controls,.forum-topic-sort { align-items:stretch; flex-direction:column; }
    .forum-topic-sort nav,.forum-topic-reply-trigger { width:100%; }
    .forum-topic-sort a { flex:1; text-align:center; }
    .forum-topic-reply-trigger { justify-content:center; }
    .forum-topic-bottom-actions { align-items:stretch; flex-direction:column; text-align:center; }
    .forum-reply-panel__body { padding:13px; }
    .forum-home__search { grid-template-columns:1fr; }
    .forum-home__search form { grid-template-columns:1fr auto; }
    .forum-home__search-reset { grid-column:1 / -1; text-align:center; }
    .forum-home__search-list > a { grid-template-columns:34px minmax(0,1fr) 20px; }
    .forum-home__search-list b { display:none; }
    .forum-admin-language-form { align-items:stretch; flex-direction:column; }
    .forum-admin-language-form label,
    .forum-admin-language-form .btn { width:100%; }
}
.diary-encryption-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:750;line-height:1.2;background:#edf9f1;color:#187847}.diary-encryption-badge>span{width:9px;height:9px;border-radius:50%;background:#28a866;box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.diary-private-status{cursor:help;transition:transform .16s ease,box-shadow .16s ease;background:#edf9f1!important;color:#187847!important}.diary-private-status:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(30,40,65,.09)}.diary-private-status .diary-entry-row__mood-icon{color:#28a866}
.e2ee-unlock-notice{position:fixed;right:22px;bottom:22px;z-index:2000;padding:13px 17px;border:1px solid #b7e4c7;border-radius:13px;background:#edf9f1;color:#176c42;font-weight:750;box-shadow:0 14px 34px rgba(20,60,40,.16);animation:e2eeNoticeIn .2s ease-out}@keyframes e2eeNoticeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.diary-view-actions{display:flex;gap:10px;flex-wrap:wrap}.diary-view-details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px;padding-top:22px;border-top:1px solid var(--ui-line)}.diary-view-detail,.diary-view-measurements article{display:grid;gap:5px;padding:15px;border-radius:14px;background:var(--ui-surface-soft)}.diary-view-detail span,.diary-view-tags>span,.diary-view-measurements span{color:var(--ui-muted);font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.diary-view-tags{display:grid;gap:9px;margin-top:18px}.diary-view-tags div{display:flex;gap:8px;flex-wrap:wrap}.diary-view-tags i{padding:6px 10px;border-radius:999px;background:rgba(232,70,145,.1);color:var(--ui-brand-strong);font-style:normal;font-size:13px;font-weight:700}.diary-view-measurements{margin-top:22px}.diary-view-measurements h2{font-size:19px}.diary-view-measurements>div{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media(max-width:700px){.diary-view-details,.diary-view-measurements>div{grid-template-columns:1fr 1fr}}

.e2ee-dialog{width:min(520px,calc(100% - 32px));padding:0;border:0;border-radius:22px;box-shadow:0 28px 80px rgba(20,25,48,.28)}
.e2ee-dialog::backdrop{background:rgba(20,25,48,.58);backdrop-filter:blur(5px)}
.e2ee-dialog form{display:grid;gap:16px;padding:30px}.e2ee-dialog h2,.e2ee-dialog p{margin:0}.e2ee-dialog label{display:grid;gap:7px;color:var(--ui-ink);font-weight:700}.e2ee-dialog input{width:100%;padding:10px 12px}.e2ee-dialog button{width:100%}

/* --------------------------------------------------------------------------
   EncDiary UI foundation
   A final, shared layer for typography, surfaces, controls and spacing.
   Page-specific rules above remain responsible only for their layouts.
   -------------------------------------------------------------------------- */
:root {
    --ui-brand: #e84691;
    --ui-brand-strong: #cc327b;
    --ui-accent: #6267d9;
    --ui-ink: #202a44;
    --ui-muted: #68758d;
    --ui-line: #e2e6ef;
    --ui-surface: #ffffff;
    --ui-surface-soft: #f8f7fb;
    --ui-danger: #c93655;
    --ui-radius-sm: 10px;
    --ui-radius-md: 16px;
    --ui-radius-lg: 24px;
    --ui-shadow-sm: 0 8px 24px rgba(32, 42, 68, .07);
    --ui-shadow-md: 0 18px 48px rgba(32, 42, 68, .10);
    --ui-focus: 0 0 0 4px rgba(232, 70, 145, .14);
    --ui-chrome-color: #d572d9;
}

html {
    color-scheme: light;
    scroll-behavior: smooth;
}

body {
    color: var(--ui-ink);
    background:
        radial-gradient(circle at 92% 4%, rgba(98, 103, 217, .10), transparent 28rem),
        linear-gradient(135deg, #f8f4f8 0%, #f3f5fb 100%);
    font-family: "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

*, *::before, *::after { box-sizing: border-box; }

::selection { background: rgba(232, 70, 145, .20); color: var(--ui-ink); }

:where(h1, h2, h3, h4) {
    color: var(--ui-ink);
    font-family: inherit;
    letter-spacing: -.025em;
    text-wrap: balance;
}

:where(p, li) { text-wrap: pretty; }

:where(a) { color: var(--ui-brand-strong); }

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid rgba(232, 70, 145, .42);
    outline-offset: 3px;
}

:where(button, input, select, textarea) { font: inherit; }

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    min-height: 44px;
    border: 1px solid var(--ui-line);
    border-radius: var(--ui-radius-sm);
    background: var(--ui-surface);
    color: var(--ui-ink);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
    border-color: var(--ui-brand);
    box-shadow: var(--ui-focus);
    outline: 0;
}

:where(input, textarea)::placeholder { color: #929caf; opacity: 1; }

.main-content {
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(226, 230, 239, .82);
}

:where(.home-container, .dashboard-shell, .entry-compose, .diary-list-shell,
       .diary-view-shell, .profile-page, .forum-page, .about-summary,
       .home-summary, .roadmap-page, .news-page) {
    width: min(1180px, 100%);
    margin-inline: auto;
}

/* Shared surface language */
:where(.card, [class$="-card"], [class$="__card"], [class$="__panel"]) {
    border-color: var(--ui-line);
}

.card {
    border: 1px solid var(--ui-line);
    border-radius: var(--ui-radius-md);
    background: var(--ui-surface);
    box-shadow: var(--ui-shadow-sm);
    padding: clamp(18px, 2.4vw, 28px);
}

/* One button shape and interaction model everywhere */
.btn,
:where(.login-submit, .register-submit, .home-summary__btn, .about-summary__btn) {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.btn:hover,
:where(.login-submit, .register-submit, .home-summary__btn, .about-summary__btn):hover {
    transform: translateY(-1px);
}

.btn-primary,
:where(.login-submit, .register-submit, .home-summary__btn--primary, .about-summary__btn) {
    border-color: transparent;
    background: linear-gradient(135deg, var(--ui-brand), #ef599e 48%, var(--ui-accent));
    color: #fff;
    box-shadow: 0 10px 24px rgba(232, 70, 145, .20);
}

.btn-secondary,
.home-summary__btn--secondary {
    border-color: var(--ui-line);
    background: var(--ui-surface);
    color: var(--ui-ink);
    box-shadow: 0 5px 14px rgba(32, 42, 68, .05);
}

.btn-danger { background: var(--ui-danger); color: #fff; }

.muted { color: var(--ui-muted); }

.admin-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 auto 20px;
    padding: 12px 14px;
    border: 1px solid var(--ui-line);
    border-radius: var(--ui-radius-md);
    background: var(--ui-surface-soft);
}

.admin-nav a {
    padding: 7px 10px;
    border-radius: 9px;
    color: var(--ui-ink);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.admin-nav a:hover { background: #fff; color: var(--ui-brand-strong); }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media (max-width: 680px) {
    body { font-size: 15px; }
    .main-content { padding: 16px; border-radius: 20px; }
    .card { padding: 18px; }
    .btn { width: auto; }
}

.forgot-password {
    display: block;
    margin-top: 10px;
    color: #333;
    font-size: 14px;
}

/* Register */
.register-shell{
    min-height: calc(100vh - 150px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px 0 40px;
}

.register-layout{
    width:min(1080px,100%);
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:22px;
    align-items:start;
}

.register-card,
.register-trust{
    background:#fff;
    border:1px solid rgba(226,232,240,.92);
    border-radius:26px;
    box-shadow:0 18px 42px rgba(15,23,42,.08);
}

.register-card{
    max-width:520px;
    width:100%;
    justify-self:center;
    padding:32px;
    display:grid;
    gap:20px;
}

.register-card__head{
    display:grid;
    gap:10px;
    text-align:center;
}

.register-card__icon{
    width:64px;
    height:64px;
    margin:0 auto 4px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:20px;
    background:linear-gradient(135deg, rgba(255,102,163,.16), rgba(91,110,225,.12));
    font-size:28px;
}

.register-card__head h1{
    margin:0;
    color:#1f2544;
    font-size:40px;
    line-height:1.08;
}

.register-card__head p{
    margin:0;
    color:#697893;
    font-size:18px;
    line-height:1.55;
}

.register-alert{
    padding:12px 14px;
    border-radius:14px;
    border:1px solid #fecaca;
    background:#fef2f2;
    color:#991b1b;
    font-size:14px;
}

.register-form{
    display:grid;
    gap:16px;
}

.register-field{
    display:grid;
    gap:8px;
}

.register-field label{
    color:#22314f;
    font-weight:700;
    font-size:15px;
}

.register-input{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:58px;
    padding:0 16px;
    border:1px solid rgba(203,213,225,.98);
    border-radius:16px;
    background:#fff;
    transition:border-color .18s ease, box-shadow .18s ease;
}

.register-input:focus-within{
    border-color:#ff66a3;
    box-shadow:0 0 0 4px rgba(255,102,163,.12);
}

.register-input__icon{
    color:#ff66a3;
    font-size:16px;
    line-height:1;
}

.register-input input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:#24314f;
    font-size:16px;
}

.register-input input::placeholder{
    color:#8a97ad;
}

.register-help{
    margin:0;
    color:#72809a;
    font-size:13px;
    line-height:1.55;
}

.register-error{
    min-height:18px;
    margin:0;
    color:#c6285d;
    font-size:13px;
}

.register-strength{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    color:#72809a;
    font-size:13px;
}

.register-strength__bars{
    display:flex;
    gap:6px;
}

.register-strength__bars i{
    width:42px;
    height:6px;
    border-radius:999px;
    background:#e5e7eb;
    display:block;
}

.register-strength__bars[data-strength="1"] i:nth-child(1){background:#f97316}
.register-strength__bars[data-strength="2"] i:nth-child(-n+2){background:#f59e0b}
.register-strength__bars[data-strength="3"] i:nth-child(-n+3){background:#60a5fa}
.register-strength__bars[data-strength="4"] i:nth-child(-n+4){background:#22c55e}

.register-check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:2px;
    color:#4c5a75;
    font-size:14px;
    line-height:1.6;
}

.register-check input{
    margin-top:3px;
    width:18px;
    height:18px;
    accent-color:#ff66a3;
}

.register-check a{
    color:#ff4f9b;
    text-decoration:none;
    font-weight:700;
}

.register-check a:hover{
    text-decoration:underline;
}

.register-submit{
    width:100%;
    min-height:54px;
    margin:0;
    border-radius:16px;
    background:linear-gradient(135deg,#ff5da5,#ff4f9b 45%, #5b6ee1);
    color:#fff;
    font-size:17px;
    font-weight:800;
    box-shadow:0 14px 28px rgba(255,93,165,.22);
}

.register-submit:hover{
    background:linear-gradient(135deg,#f15099,#ef438f 45%, #4c61d8);
}

.register-login-link{
    text-align:center;
    text-decoration:none;
    color:#ff4f9b;
    font-weight:700;
}

.register-login-link:hover{
    text-decoration:underline;
}

.register-trust{
    padding:26px 24px;
    display:grid;
    gap:14px;
    align-content:start;
    background:linear-gradient(180deg, #fff9fc, #ffffff);
}

.register-trust h2{
    margin:0;
    color:#1f2544;
    font-size:28px;
    line-height:1.15;
}

.register-trust ul{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:12px;
}

.register-trust li{
    position:relative;
    padding-left:22px;
    color:#5b6985;
    line-height:1.7;
}

.register-trust li::before{
    content:"";
    position:absolute;
    top:10px;
    left:0;
    width:10px;
    height:10px;
    border-radius:999px;
    background:linear-gradient(135deg,#ff5da5,#5b6ee1);
}

@media (max-width: 980px){
    .register-layout{
        grid-template-columns:1fr;
    }

    .register-card{
        max-width:560px;
    }

    .register-trust{
        max-width:560px;
        width:100%;
        justify-self:center;
    }
}

@media (max-width: 680px){
    .register-shell{
        padding:10px 0 24px;
        align-items:flex-start;
    }

    .register-card,
    .register-trust{
        border-radius:20px;
    }

    .register-card{
        padding:22px 18px;
    }

    .register-card__head h1{
        font-size:32px;
    }

    .register-card__head p{
        font-size:16px;
    }

    .register-strength{
        flex-direction:column;
        align-items:flex-start;
    }

    .register-strength__bars{
        width:100%;
    }

    .register-strength__bars i{
        flex:1;
    }
}

/* Login */
.login-shell{
    min-height: calc(100vh - 150px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px 0 40px;
}

.login-layout{
    width:min(1160px,100%);
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
    gap:24px;
    align-items:start;
}

.login-card,
.login-trust{
    background:#fff;
    border:1px solid rgba(226,232,240,.92);
    border-radius:26px;
    box-shadow:0 18px 42px rgba(15,23,42,.08);
}

.login-card{
    padding:32px;
    display:grid;
    gap:20px;
}

.login-card__head{
    display:grid;
    gap:10px;
    text-align:center;
}

.login-card__icon{
    width:64px;
    height:64px;
    margin:0 auto 4px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:20px;
    background:linear-gradient(135deg, rgba(255,102,163,.16), rgba(91,110,225,.12));
    font-size:28px;
}

.login-card__head h1{
    margin:0;
    color:#1f2544;
    font-size:42px;
    line-height:1.08;
}

.login-card__head p{
    margin:0 auto;
    max-width:620px;
    color:#697893;
    font-size:18px;
    line-height:1.6;
}

.login-alert{
    padding:12px 14px;
    border-radius:14px;
    font-size:14px;
}

.login-alert--error{
    border:1px solid #fecaca;
    background:#fef2f2;
    color:#991b1b;
}

.login-alert--success{
    border:1px solid #bbf7d0;
    background:#ecfdf5;
    color:#166534;
}

.login-form{
    display:grid;
    gap:16px;
}

.login-field{
    display:grid;
    gap:8px;
}

.login-field label{
    color:#22314f;
    font-weight:700;
    font-size:15px;
}

.login-input{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:58px;
    padding:0 16px;
    border:1px solid rgba(203,213,225,.98);
    border-radius:16px;
    background:#fff;
    transition:border-color .18s ease, box-shadow .18s ease;
}

.login-input:focus-within{
    border-color:#ff66a3;
    box-shadow:0 0 0 4px rgba(255,102,163,.12);
}

.login-input__icon{
    color:#ff66a3;
    font-size:16px;
    line-height:1;
}

.login-input input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:#24314f;
    font-size:16px;
}

.login-input input::placeholder{
    color:#8a97ad;
}

.login-input__toggle{
    all:unset;
    cursor:pointer;
    color:#7c879c;
    font-size:18px;
    line-height:1;
}

.login-error{
    min-height:18px;
    margin:0;
    color:#c6285d;
    font-size:13px;
}

.login-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}

.login-check{
    display:flex;
    align-items:center;
    gap:10px;
    color:#4c5a75;
    font-size:14px;
}

.login-check input{
    width:18px;
    height:18px;
    accent-color:#ff66a3;
}

.login-forgot{
    color:#ff4f9b;
    text-decoration:none;
    font-weight:700;
    font-size:14px;
}

.login-forgot:hover{
    text-decoration:underline;
}

.login-submit{
    width:100%;
    min-height:56px;
    margin:0;
    border-radius:16px;
    background:linear-gradient(135deg,#ff5da5,#ff4f9b 45%, #5b6ee1);
    color:#fff;
    font-size:18px;
    font-weight:800;
    box-shadow:0 14px 28px rgba(255,93,165,.22);
}

.login-submit:hover{
    background:linear-gradient(135deg,#f15099,#ef438f 45%, #4c61d8);
}

.login-divider{
    display:flex;
    align-items:center;
    gap:14px;
    color:#7a879d;
    font-size:14px;
}

.login-divider::before,
.login-divider::after{
    content:"";
    flex:1;
    height:1px;
    background:rgba(203,213,225,.95);
}

.login-secure-pill{
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    border:1px solid rgba(203,213,225,.95);
    background:#fff;
    color:#4f5f7d;
    font-weight:700;
}

.login-register-box{
    display:grid;
    gap:10px;
    padding:18px 20px;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(255,102,163,.07), rgba(91,110,225,.05));
    border:1px solid rgba(250,198,223,.92);
}

.login-register-box strong{
    color:#1f2544;
    font-size:18px;
}

.login-register-box a{
    color:#ff4f9b;
    text-decoration:none;
    font-weight:800;
}

.login-register-box a:hover{
    text-decoration:underline;
}

.login-register-box p{
    margin:0;
    color:#66758f;
    line-height:1.6;
}

.login-trust{
    padding:28px 26px;
    display:grid;
    gap:18px;
    align-content:start;
    background:linear-gradient(180deg, #fff9fc, #ffffff);
}

.login-trust__hero{
    display:grid;
    grid-template-columns:64px minmax(0,1fr);
    gap:16px;
    align-items:start;
}

.login-trust__icon,
.login-trust__item-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:20px;
    background:rgba(255,102,163,.12);
    color:#ff4f9b;
}

.login-trust__icon{
    width:64px;
    height:64px;
    font-size:30px;
}

.login-trust__hero h2,
.login-trust__item h3{
    margin:0;
    color:#1f2544;
}

.login-trust__hero p,
.login-trust__item p,
.login-trust__notice p{
    margin:0;
    color:#66758f;
    line-height:1.7;
}

.login-trust__list{
    display:grid;
}

.login-trust__item{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:14px;
    padding:18px 0;
    border-top:1px solid rgba(250,198,223,.7);
}

.login-trust__item:first-child{
    border-top:0;
    padding-top:6px;
}

.login-trust__item-icon{
    width:48px;
    height:48px;
    font-size:18px;
}

.login-trust__notice{
    display:grid;
    gap:8px;
    padding:16px 18px;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(91,110,225,.08), rgba(255,102,163,.06));
    border:1px solid rgba(203,213,225,.9);
}

.login-trust__notice strong{
    color:#22314f;
}

@media (max-width: 980px){
    .login-layout{
        grid-template-columns:1fr;
    }
}

@media (max-width: 680px){
    .login-shell{
        padding:10px 0 24px;
        align-items:flex-start;
    }

    .login-card,
    .login-trust{
        border-radius:20px;
    }

    .login-card,
    .login-trust{
        padding:22px 18px;
    }

    .login-card__head h1{
        font-size:32px;
    }

    .login-card__head p{
        font-size:16px;
    }

    .login-trust__hero{
        grid-template-columns:1fr;
    }
}

/* Footer fixieren */
footer {
    position: fixed;
    bottom: 0;
    left: 240px;
    width: calc(100% - 240px);
    background-color: #ff66a3;
    color: white;
    text-align: center;
    padding: 10px;
}

/* Buttons */
button, .cancel-button {
    background-color: #ff66a3;
    color: white;
    border: none;
    padding: 8px 12px;
    margin: 5px;
    cursor: pointer;
    text-decoration: none;
    border-radius: 4px;
}

button:hover, .cancel-button:hover {
    background-color: #e05590;
}

/* Dashboard Buttons */
.dashboard-buttons {
    margin-bottom: 20px;
}

.big-action-button {
    display: inline-flex;
    align-items: center;
    background-color: #ff66a3;
    color: white;
    border: none;
    padding: 10px 20px;
    margin: 10px;
    cursor: pointer;
    text-decoration: none;
    border-radius: 5px;
    font-size: 16px;
}

.big-action-button:hover {
    background-color: #e05590;
}

.big-action-icon img {
    width: 20px;
    height: 20px;
    margin-right: 8px;
}

/* Kalender */
.calendar-navigation {
    text-align: center;
    margin-bottom: 10px;
}

.calendar-nav-button {
    background-color: #ff66a3;
    color: white;
    padding: 5px 10px;
    text-decoration: none;
    border-radius: 4px;
    margin: 0 10px;
}

.calendar-nav-button:hover {
    background-color: #e05590;
}

.calendar-title {
    font-weight: bold;
    font-size: 18px;
}

.calendar-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
}

.calendar-table th, .calendar-table td {
    border: 1px solid #ccc;
    width: 14.28%;
    height: 100px;
    vertical-align: top;
    text-align: left;
    padding: 5px;
    box-sizing: border-box;
}

.calendar-table td.today {
    background-color: #ffe6f0;
}

/* Dashboard calendar enhancements */
.calendar .day.today,
table.calendar .day.today {
    background: #eef2ff;
    border-color: #c7d2fe;
}
.calendar .day.weekend,
table.calendar .day.weekend {
    background: #fafafa;
}

/* Heat levels for calendar cells (by entry count) */
table.calendar .day.level-1 { background: #f0f7ff; }
table.calendar .day.level-2 { background: #e6f0ff; }
table.calendar .day.level-3 { background: #dbeafe; }

/* Legend helpers */
.legend { margin-top:8px; font-size:12px; color:#666; display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.legend .swatch { display:inline-block; width:12px; height:12px; border:1px solid #ddd; border-radius:3px; margin-right:4px; }

.day-icon img {
    width: 16px;
    height: 16px;
    vertical-align: middle;
}

.day-icon a {
    text-decoration: none;
    color: #333;
    font-size: 12px;
}

.day-icon a:hover {
    text-decoration: underline;
}

/* Diary */
.entry-list {
    margin-top: 20px;
}

.entry-item {
    background-color: #fafafa;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.entry-meta-small {
    font-size: 12px;
    color: #555;
    margin-bottom: 5px;
}

.entry-title a {
    text-decoration: none;
    font-weight: bold;
    color: #333;
}

.entry-title a:hover {
    text-decoration: underline;
}

.entry-detail-title {
    font-size: 24px;
    margin-bottom: 10px;
}

.entry-content {
    margin: 15px 0;
}

.entry-buttons .btn {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 4px;
    text-decoration: none;
    margin-right: 5px;
}

.btn-primary {
    background-color: #1d4ed8; /* Blau */
    color: #fff;
    border: 1px solid #1e3a8a;
}
.btn-primary:hover {
    background-color: #1e40af;
}

.btn-secondary {
    background-color: #f3f4f6; /* Hellgrau */
    color: #111827;
    border: 1px solid #d1d5db;
}
.btn-secondary:hover {
    background-color: #e5e7eb;
    border-color: #cbd5e1;
}

.btn-danger {
    background-color: #cc0000;
    color: white;
}

/* Paginierung */
.pagination {
    margin-top: 20px;
    text-align: center;
}

.pagination a {
    display: inline-block;
    padding: 5px 10px;
    margin: 0 2px;
    text-decoration: none;
    background-color: #1d4ed8;
    color: #fff;
    border: 1px solid #1e3a8a;
    border-radius: 4px;
}

.pagination a.active {
    background-color: #1e40af;
    border-color: #1e3a8a;
    font-weight: bold;
}

/* Admin Navigation */
.admin-nav {
    background: #444;
    color: #fff;
    padding: 10px;
    margin-bottom: 20px;
    font-size: 14px;
}
.admin-nav a {
    color: #fff;
    margin-left: 15px;
    text-decoration: none;
}
.admin-nav a:hover {
    text-decoration: underline;
}

/* ===== Dashboard styles (moved from inline) ===== */
.actions{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.card{background:#ffffff;border:1px solid #dddddd;border-radius:16px;padding:14px;margin:12px 0}
.muted{color:#666666}
table.calendar{width:100%;border-collapse:collapse;color:#333333}
table.calendar th, table.calendar td{padding:8px;border:1px solid #dddddd;text-align:center;vertical-align:middle}
table.calendar th{background:#f9fafb}
.day{height:70px}
.count{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;background:#eef2ff;border:1px solid #c7d2fe;color:#1d4ed8;font-size:12px}
.debug{margin:8px 0 0 0; font-size:12px; color:#6b7280}

/* Session Timeout Modal */
#session-warning.session-warning {
    display: none; /* toggled to flex via JS */
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}
.session-modal {
    background: #fff;
    color: #111;
    border-radius: 12px;
    padding: 16px;
    max-width: 420px;
    width: 92%;
    box-shadow: 0 10px 30px rgba(0,0,0,.2);
}
.session-modal h3 { margin: 0 0 8px; font-size: 18px; }
.session-modal p { margin: 0 0 12px; color: #444; }
.session-actions { display: flex; gap: 8px; justify-content: flex-end; }

/* Base btn (used by modal) */
.btn { display: inline-block; padding: 8px 12px; border-radius: 8px; text-decoration: none; border: 1px solid transparent; cursor: pointer; font: inherit; }

.profile-avatar-frame{width:128px;height:128px;border-radius:50%;overflow:hidden;background:#e5e7eb;display:flex;align-items:center;justify-content:center;}
.profile-avatar-img{width:100%;height:100%;object-fit:cover;}
.profile-avatar-placeholder{font-size:12px;color:#4b5563;text-align:center;padding:0 8px;}

.profile-page{max-width:960px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:20px;}
.profile-page .card{box-shadow:0 8px 24px rgba(15,23,42,.08);}
.profile-hero{display:flex;gap:28px;flex-wrap:wrap;align-items:flex-start;}
.profile-hero-avatar{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:200px;}
.profile-avatar-frame.profile-avatar-xl{width:160px;height:160px;}
.profile-avatar-form{display:grid;gap:8px;width:100%;}
.profile-hero-content{flex:1;min-width:260px;display:flex;flex-direction:column;gap:16px;}
.profile-hero-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.profile-hero-heading h1{margin:0;font-size:32px;font-weight:700;}
.profile-id{font-size:13px;color:#6b7280;border:1px solid #e5e7eb;border-radius:999px;padding:4px 10px;}
.profile-hero-tags{display:flex;gap:10px;flex-wrap:wrap;}
.profile-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#eef2ff;color:#1d4ed8;font-size:12px;font-weight:600;}
.profile-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;}
.profile-status--active{background:#dcfce7;color:#166534;}
.profile-status--blocked{background:#fee2e2;color:#7f1d1d;}
.profile-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.profile-info-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px;}
.profile-info-item dt{margin:0 0 4px;font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;}
.profile-info-item dd{margin:0;font-size:15px;color:#1f2937;}
.profile-quick-actions{display:flex;gap:10px;flex-wrap:wrap;}
.profile-alert{padding:12px 14px;border-radius:12px;border:1px solid transparent;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.profile-alert--ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46;}
.profile-alert--err{background:#fef2f2;border-color:#fecaca;color:#991b1b;}
.profile-alert--warn{background:#fff7ed;border-color:#fb923c;color:#9a3412;}
.profile-alert-actions{display:flex;gap:8px;}
.profile-migration-form{display:grid;grid-template-columns:minmax(190px,1fr) minmax(170px,1fr) auto;gap:10px;align-items:end;flex:1 1 100%;}
.profile-migration-form label{display:grid;gap:5px;font-weight:600;}
.profile-migration-form input{width:100%;min-height:42px;padding:9px 11px;border:1px solid #fdba74;border-radius:10px;background:#fff;color:#172554;}
@media (max-width:760px){.profile-migration-form{grid-template-columns:1fr;}}

/* Public security and encryption transparency page */
.security-page{max-width:1120px;margin:0 auto;padding:28px 24px 48px;color:#172554;display:grid;gap:24px;}
.security-hero{position:relative;overflow:hidden;padding:42px;border:1px solid #dbe4f2;border-radius:28px;background:linear-gradient(135deg,#fff 0%,#f7f5ff 55%,#fff1f7 100%);box-shadow:0 18px 45px rgba(30,41,59,.08);}
.security-hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-90px;top:-100px;background:linear-gradient(135deg,rgba(255,78,157,.2),rgba(99,102,241,.18));}
.security-eyebrow,.security-heading>span{font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#db2777;}
.security-hero h1{position:relative;z-index:1;margin:10px 0 12px;max-width:760px;font-size:clamp(2rem,4vw,3.35rem);line-height:1.08;}
.security-hero>p{position:relative;z-index:1;max-width:760px;margin:0;color:#52627c;font-size:1.06rem;line-height:1.7;}
.security-status{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:8px 12px;border:1px solid #bbf7d0;border-radius:999px;background:#f0fdf4;color:#166534;font-weight:700;font-size:.86rem;}
.security-status i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14);}
.security-status--review{border-color:#dbe5f3;background:#f5f8fc;color:#52627a}.security-status--review i{background:#7183a1;box-shadow:0 0 0 4px rgba(113,131,161,.12)}
.security-section{padding:30px;border:1px solid #dbe4f2;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(30,41,59,.05);}
.security-heading{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px;}.security-heading>span{padding-top:5px;}.security-heading h2,.security-card h2{margin:0 0 6px;font-size:1.35rem;}.security-heading p,.security-card p{margin:0;color:#60708a;line-height:1.65;}
.security-flow{display:grid;grid-template-columns:1fr 170px 1fr;gap:18px;align-items:stretch;}.security-flow article{padding:22px;border-radius:18px;background:#f8fafc;border:1px solid #e2e8f0;}.security-flow article>span,.security-spec-grid article>span{display:block;margin-bottom:8px;color:#db2777;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}.security-flow article strong{font-size:1.1rem;}.security-flow article p,.security-spec-grid article p{margin:9px 0 0;color:#60708a;line-height:1.55;}.security-flow__arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#4f46e5;}.security-flow__arrow span{font-size:2rem;line-height:1.1}.security-flow__arrow small{color:#64748b;}
.security-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;background:transparent;border:0;padding:0;box-shadow:none;}.security-card{padding:26px;border:1px solid #dbe4f2;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(30,41,59,.05);}.security-card ul,.security-limits ul{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:11px;}.security-card li,.security-limits li{position:relative;padding-left:25px;color:#42526b;line-height:1.55;}.security-card li:before,.security-limits li:before{content:"✓";position:absolute;left:0;color:#16a34a;font-weight:900;}.security-card--visible li:before{content:"◉";color:#6366f1;}.security-card--positive{border-color:#bbf7d0;background:linear-gradient(145deg,#fff,#f0fdf4);}.security-card--visible{border-color:#c7d2fe;background:linear-gradient(145deg,#fff,#eef2ff);}.security-card--warning{border-color:#fed7aa;background:linear-gradient(145deg,#fff,#fff7ed);}.security-card p+p{margin-top:14px;}
.security-spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}.security-spec-grid article{padding:22px;border:1px solid #e7ebf2;border-radius:16px;background:#fbfcfe;}.security-spec-grid strong{display:block;line-height:1.4;font-size:.92rem}.security-spec-grid article p{font-size:.82rem;line-height:1.55}.security-limits{border-color:#e3e8f1;background:#fbfcfe;}.security-limits li:before{content:"•";color:#7183a1;}
.security-threat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.security-threat-grid article{padding:20px;border:1px solid #e7ebf2;border-radius:16px;background:#fbfcfe}.security-threat-grid h3{margin:10px 0 7px;color:#172554;font-size:1rem}.security-threat-grid p{margin:0;color:#60708a;font-size:.86rem;line-height:1.6}.security-threat-status{display:inline-flex;padding:4px 8px;border:1px solid #dce4ef;border-radius:999px;background:#f2f5f9;color:#5e6e86;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.security-threat-status--yes,.security-threat-status--partial,.security-threat-status--no{background:#f2f5f9;color:#5e6e86;border-color:#dce4ef}
.home-overview__security-link{margin:20px 0 0;text-align:center}.home-overview__security-link a,.legal-note-card a{color:#db2777;font-weight:800;text-decoration:none}.home-overview__security-link a:hover,.legal-note-card a:hover{text-decoration:underline}
@media(max-width:820px){.security-flow{grid-template-columns:1fr}.security-flow__arrow span{transform:rotate(90deg)}.security-two-columns,.security-spec-grid{grid-template-columns:1fr 1fr}.security-hero{padding:30px}.security-page{padding:20px 14px 36px}}
@media(max-width:560px){.security-two-columns,.security-spec-grid,.security-threat-grid{grid-template-columns:1fr}.security-section{padding:22px}.security-hero{padding:25px 22px}}
.profile-settings-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.profile-settings-grid form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px;display:grid;gap:12px;}
.profile-settings-grid h3{margin:0 0 6px;font-size:18px;}
.profile-settings-grid label span.muted{margin-bottom:4px;display:block;}
.profile-danger{border:1px solid #fecaca;background:#fef2f2;}
.profile-danger h2{margin:0 0 8px;}
.profile-danger p{margin:0 0 12px;color:#7f1d1d;}

.forum-topic-container{max-width:960px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:20px;}
.forum-topic-header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;}
.forum-topic-header h1{margin:0;font-size:28px;}
.forum-topic-meta{color:#6b7280;font-size:13px;display:flex;gap:12px;flex-wrap:wrap;}
.forum-post{display:flex;gap:18px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 8px 24px rgba(15,23,42,.06);}
.forum-post-user{width:220px;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;border-right:1px solid #e5e7eb;padding-right:16px;}
.forum-post-user h3{margin:0;font-size:16px;}
.forum-post-user dl{margin:0;display:grid;gap:6px;font-size:12px;color:#6b7280;}
.forum-post-user dl div{display:flex;justify-content:space-between;gap:8px;}
.forum-post-user dl span{color:#1f2937;font-weight:600;}
.forum-post-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px;}
.forum-post-content time{color:#6b7280;font-size:12px;}
.forum-post-content .content{font-size:15px;color:#1f2937;line-height:1.6;}
.forum-post-content .content img{max-width:100%;border-radius:8px;}
.forum-reply-form{background:#f9fafb;border:1px solid #e2e8f0;border-radius:12px;padding:16px;}
.forum-reply-form h2{margin:0 0 10px;font-size:20px;}
.forum-editor-wrap{display:grid;gap:10px;}
.forum-editor-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.forum-posts{display:grid;gap:16px;}
.forum-topic-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.forum-topic-actions .btn{padding:6px 12px;font-size:13px;border-radius:999px;}

.forum-card{
    background:#fff;
    border-radius:18px;
    padding:20px;
    box-shadow:0 10px 30px rgba(15,23,42,.08);
    border:1px solid rgba(226,232,240,.9);
}

.forum-breadcrumbs{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    font-size:13px;
    margin-bottom:12px;
    align-items:center;
    color:#6b7280;
}

.forum-breadcrumbs a{
    color:#1d4ed8;
    text-decoration:none;
}

.forum-breadcrumbs a:hover{
    text-decoration:underline;
}

.forum-breadcrumbs span{
    color:#9ca3af;
}

.topic-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.topic-item{
    border:1px solid #e2e8f0;
    border-radius:14px;
    padding:14px 16px;
    background:#f8fafc;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.topic-item:hover{
    transform:translateY(-1px);
    border-color:#cbd5e1;
    box-shadow:0 10px 20px rgba(15,23,42,.06);
}

.topic-title{
    margin:0;
    font-size:16px;
    font-weight:600;
    line-height:1.45;
}

.topic-meta{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    color:#4b5563;
    font-size:12px;
    margin-top:8px;
}

.forum-board-page{
    max-width:1080px;
    margin:0 auto;
}

.forum-board-card{
    margin-bottom:18px;
}

.forum-board-header{
    display:flex;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
    align-items:flex-start;
}

.forum-board-title{
    margin:4px 0;
    color:#24314f;
}

.forum-board-subline{
    margin:0;
}

.forum-board-description{
    margin:8px 0 0;
}

.forum-board-actions{
    display:flex;
    align-items:center;
}

/* Professional board/topic overview */
.forum-board-page { width:min(1180px,100%); max-width:none; }
.forum-board-card { border:1px solid #e1e7f0; border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(15,23,42,.055); }
.forum-board-hero { position:relative; overflow:hidden; padding:25px 27px; background:linear-gradient(125deg,#fff 0%,#fff 68%,#fff2f8 100%); }
.forum-board-hero:after { content:""; position:absolute; right:-80px; top:-105px; width:230px; height:230px; border-radius:50%; background:linear-gradient(145deg,rgba(236,72,153,.11),rgba(99,102,241,.1)); pointer-events:none; }
.forum-board-hero .forum-breadcrumbs,.forum-board-header { position:relative; z-index:1; }
.forum-board-eyebrow { display:block; margin:4px 0 7px; color:#ca3479; font-size:10px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.forum-board-title { margin:0; color:#14213d; font-size:clamp(1.8rem,3vw,2.45rem); letter-spacing:-.025em; }
.forum-board-description { max-width:690px; margin:7px 0 0; color:#65728a; line-height:1.55; }
.forum-board-header { align-items:center; }
.forum-board-actions .btn { min-height:46px; padding:11px 18px; border-radius:12px; box-shadow:0 10px 24px rgba(214,47,127,.16); }
.forum-board-stats { display:flex; flex-wrap:wrap; gap:8px; margin-top:17px; }
.forum-board-stats span { display:flex; align-items:baseline; gap:5px; padding:6px 9px; border:1px solid #e5e9f1; border-radius:9px; background:rgba(255,255,255,.78); color:#718096; font-size:10px; font-weight:700; }
.forum-board-stats strong { color:#273550; font-size:12px; }
.forum-board-topics { padding:22px; }
.forum-board-topics__head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:15px; padding:0 2px; }
.forum-board-topics__head > div > span { display:block; margin-bottom:4px; color:#c93478; font-size:9px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.forum-board-topics__head h2 { margin:0; color:#172554; font-size:19px; }
.forum-board-topics__head > strong { display:grid; place-items:center; min-width:38px; height:38px; border-radius:11px; background:#f0efff; color:#5546ca; font-size:13px; }
.forum-board-read-actions { display:flex; align-items:center; gap:10px; }
.forum-board-read-actions form { margin:0; }
.forum-board-read-actions button { padding:7px 10px; border:1px solid #e1ddec; border-radius:9px; background:#fff; color:#5d6477; font:inherit; font-size:10px; font-weight:800; cursor:pointer; }
.forum-board-read-actions button:hover { border-color:#c9c2e4; background:#faf9ff; color:#4f46c9; }
.forum-board-read-actions > strong { display:grid; place-items:center; min-width:38px; height:38px; border-radius:11px; background:#f0efff; color:#5546ca; font-size:13px; }
.forum-home__mark-read { margin:0; }
.forum-home__mark-read button { border:0; background:transparent; color:#68637a; font:inherit; font-size:10px; font-weight:800; cursor:pointer; text-decoration:underline; text-decoration-color:#d7d1e5; text-underline-offset:3px; }
.forum-home__mark-read button:hover { color:#4f46c9; text-decoration-color:#8d84db; }
.forum-board-topics .topic-list { gap:9px; }
.forum-board-topics .topic-item { overflow:hidden; padding:0; border:1px solid #e3e8f1; border-radius:15px; background:#fff; }
.forum-board-topics .topic-item:hover { transform:translateY(-1px); border-color:#cfd7e5; box-shadow:0 10px 24px rgba(15,23,42,.065); }
.topic-row { display:grid; grid-template-columns:38px minmax(230px,1.5fr) minmax(145px,.7fr) 72px minmax(145px,.75fr) 24px; align-items:center; gap:14px; min-height:92px; padding:15px 16px; color:inherit; text-decoration:none; }
.topic-row__icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#fff0f7; color:#cc347c; font-size:17px; }
.topic-row__main { min-width:0; }
.topic-row__main h3 { overflow:hidden; margin:3px 0 4px; color:#172554; font-size:15px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.topic-row:hover .topic-row__main h3 { color:#4f46d5; }
.topic-row__main > small { color:#7b879b; font-size:10px; }
.topic-row__badges { display:flex; gap:5px; min-height:16px; }
.topic-row__badges span { padding:3px 6px; border-radius:6px; font-size:8px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.topic-row__badges .is-pinned { color:#a45a0a; background:#fff4d8; }
.topic-row__badges .is-locked { color:#a62a43; background:#ffe9ed; }
.topic-row__badges .is-new { color:#086848; background:#dff9ed; }
.topic-row__badges .is-resolved { color:#17603f; background:#dff7e9; }
.topic-row__badges .is-closed { color:#9f2945; background:#ffe5eb; }

/* Public roadmap */
.roadmap-page{max-width:1120px;margin:0 auto;padding:18px 16px 42px;color:#172554;}
.roadmap-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;overflow:hidden;margin-bottom:18px;padding:28px 30px;border:1px solid #ead9e5;border-radius:22px;background:linear-gradient(125deg,#fff 0%,#fff9fc 65%,#f5efff 100%);box-shadow:0 18px 42px rgba(55,37,69,.07);}
.roadmap-hero::after{content:"";position:absolute;right:-70px;top:-100px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,#f6d8ea 0%,rgba(246,216,234,0) 69%);}
.roadmap-hero__copy,.roadmap-summary{position:relative;z-index:1;}
.roadmap-eyebrow{display:block;margin-bottom:8px;color:#ca3478;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;}
.roadmap-hero h1{margin:0;color:#15244a;font-size:clamp(29px,4vw,42px);line-height:1.05;letter-spacing:-.035em;}
.roadmap-hero p{max-width:620px;margin:10px 0 0;color:#64708a;font-size:14px;line-height:1.65;}
.roadmap-summary{display:grid;grid-template-columns:repeat(3,minmax(85px,1fr));min-width:330px;overflow:hidden;border:1px solid rgba(218,208,226,.9);border-radius:15px;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);}
.roadmap-summary div{padding:14px 16px;text-align:center;}
.roadmap-summary div+div{border-left:1px solid #ebe5ee;}
.roadmap-summary span,.roadmap-summary small{display:block;}
.roadmap-summary span{color:#322e76;font-size:20px;font-weight:900;}
.roadmap-summary small{margin-top:3px;color:#858095;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
.roadmap-filter{margin-bottom:14px;padding:18px 20px;border:1px solid #e4e5ed;border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(34,45,72,.045);}
.roadmap-filter__head{display:flex;justify-content:space-between;margin-bottom:13px;}
.roadmap-filter__head strong,.roadmap-filter__head small{display:block;}
.roadmap-filter__head strong{font-size:14px;}.roadmap-filter__head small{margin-top:3px;color:#8590a2;font-size:10px;}
.roadmap-filter__fields{display:grid;grid-template-columns:155px 175px minmax(220px,1fr) auto;align-items:end;gap:10px;}
.roadmap-filter label{display:grid;gap:5px;}.roadmap-filter label>span{color:#67738a;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;}
.roadmap-filter select,.roadmap-filter input{width:100%;min-height:41px;padding:9px 11px;border:1px solid #d9deea;border-radius:10px;background:#fbfcfe;color:#293750;font:inherit;font-size:11px;outline:none;}
.roadmap-filter select:focus,.roadmap-filter input:focus{border-color:#9e91e6;box-shadow:0 0 0 3px rgba(123,104,220,.1);}
.roadmap-filter__actions{display:flex;gap:7px;}.roadmap-filter__actions .btn{min-height:41px;padding:9px 13px;border-radius:10px;font-size:10px;white-space:nowrap;}
.roadmap-hint{display:flex;align-items:center;gap:9px;margin:0 0 20px;padding:10px 13px;border:1px solid #eee0e9;border-radius:12px;background:#fffafd;color:#6f6170;font-size:10px;}
.roadmap-hint span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#ffe8f2;color:#c93177;font-size:14px;}.roadmap-hint p{margin:0;}
.roadmap-lane{margin-bottom:22px;padding:18px;border:1px solid #e2e5ee;border-radius:20px;background:#f9fafc;box-shadow:0 13px 32px rgba(36,46,70,.045);}
.roadmap-lane__head{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:0 2px;}
.roadmap-lane__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;font-size:17px;font-weight:900;}
.roadmap-lane--planning .roadmap-lane__icon{background:#f2efff;color:#594bc9;}.roadmap-lane--progress .roadmap-lane__icon{background:#e8f2ff;color:#2760c2;}.roadmap-lane--done .roadmap-lane__icon{background:#e4f8ed;color:#19734b;}
.roadmap-lane__head div{flex:1}.roadmap-lane__head div>span{display:block;margin-bottom:2px;color:#8a94a6;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;}.roadmap-lane__head h2{margin:0;font-size:18px;letter-spacing:-.01em;}
.roadmap-lane__head>strong{display:grid;place-items:center;min-width:35px;height:35px;border-radius:10px;background:#fff;color:#59647a;font-size:12px;box-shadow:inset 0 0 0 1px #e1e4eb;}
.roadmap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.roadmap-empty{padding:24px;border:1px dashed #d8dce7;border-radius:13px;background:#fff;color:#7b8597;text-align:center;font-size:11px;}
.roadmap-item{display:flex;flex-direction:column;overflow:hidden;border:1px solid #dfe3ec;border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(35,45,68,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.roadmap-item:hover{transform:translateY(-2px);border-color:#d4cce8;box-shadow:0 13px 28px rgba(56,42,75,.08);}
.roadmap-item__head{display:flex;justify-content:space-between;gap:14px;padding:16px 16px 12px;}.roadmap-item__copy{min-width:0;}.roadmap-item__tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px;}.roadmap-item__tags span{padding:4px 7px;border-radius:7px;background:#f5f3f7;color:var(--tag-color,#8b5070);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.035em;}
.roadmap-item h3{margin:0;color:#172554;font-size:15px;line-height:1.35;}.roadmap-item__meta{display:flex;gap:5px 12px;flex-wrap:wrap;margin-top:8px;color:#8490a3;font-size:9px;}.roadmap-item__meta strong{color:#5b667b;}
.roadmap-votes{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:7px;}.roadmap-votes>div{text-align:right}.roadmap-votes strong,.roadmap-votes small{display:block;}.roadmap-votes strong{color:#29266d;font-size:19px;}.roadmap-votes small{color:#8b94a4;font-size:8px;}.roadmap-votes .btn{min-height:31px;padding:6px 10px;border:0;border-radius:9px;background:linear-gradient(120deg,#f03f92,#7964dc);color:#fff;font-size:9px;font-weight:900;}.roadmap-votes .btn.voted{background:#e8f7ef;color:#16734a;box-shadow:inset 0 0 0 1px #bee7d1;}.roadmap-vote-login{max-width:100px;color:#9aa2b0;text-align:right;font-size:8px;}
.roadmap-progress{padding:0 16px 13px;}.roadmap-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:6px;color:#7d8798;font-size:8px;font-weight:800;text-transform:uppercase;}.roadmap-progress>div:first-child strong{color:#4d5870;}.roadmap-progress__track{height:6px;overflow:hidden;border-radius:99px;background:#e8ebf1;}.roadmap-progress__track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5d65df,#d94c9b);}
.roadmap-lane--done .roadmap-progress__track i{background:linear-gradient(90deg,#35a873,#69c993);}
.roadmap-details{margin-top:auto;border-top:1px solid #eceef3;}.roadmap-details summary{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;color:#667186;font-size:9px;font-weight:900;text-transform:uppercase;cursor:pointer;list-style:none;}.roadmap-details summary::-webkit-details-marker{display:none}.roadmap-details summary i{font-style:normal;transition:transform .18s}.roadmap-details[open] summary i{transform:rotate(180deg)}.roadmap-details>div{padding:0 16px 15px;color:#59667d;font-size:11px;line-height:1.65;}
@media(max-width:900px){.roadmap-hero{align-items:stretch;flex-direction:column}.roadmap-summary{min-width:0}.roadmap-filter__fields{grid-template-columns:repeat(2,minmax(0,1fr))}.roadmap-filter__search{grid-column:1/-1}.roadmap-filter__actions{grid-column:1/-1}.roadmap-grid{grid-template-columns:1fr}}
@media(max-width:560px){.roadmap-page{padding-inline:10px}.roadmap-hero{padding:23px 20px}.roadmap-summary{grid-template-columns:1fr}.roadmap-summary div+div{border-top:1px solid #ebe5ee;border-left:0}.roadmap-filter__fields{grid-template-columns:1fr}.roadmap-filter__search,.roadmap-filter__actions{grid-column:auto}.roadmap-filter__actions{flex-direction:column}.roadmap-filter__actions .btn{justify-content:center}.roadmap-lane{padding:13px}.roadmap-item__head{flex-direction:column}.roadmap-votes{align-items:flex-start;flex-direction:row;justify-content:space-between}.roadmap-votes>div{text-align:left}}

/* E2EE appointments calendar */
.appointments-page{max-width:1280px;margin:0 auto;padding:20px 16px 44px;color:#172554}.appointments-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding:26px 28px;border:1px solid #eadce7;border-radius:20px;background:linear-gradient(125deg,#fff,#fff9fc 70%,#f5efff);box-shadow:0 16px 38px rgba(48,39,62,.06)}.appointments-hero>div>span{color:#cd397c;font-size:9px;font-weight:900;letter-spacing:.11em}.appointments-hero h1{margin:6px 0 5px;font-size:35px;letter-spacing:-.035em}.appointments-hero p{margin:0;color:#68748b;font-size:13px}.appointments-new{min-height:45px;padding:10px 16px;border-radius:12px;white-space:nowrap}.appointments-workspace{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:16px}.appointments-main{min-width:0}.appointments-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;border:1px solid #e4e6ee;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(41,49,69,.04)}.appointments-views{display:flex;overflow:hidden;border:1px solid #e2ddea;border-radius:10px}.appointments-views button{padding:8px 12px;border:0;border-right:1px solid #ece8ef;background:#fff;color:#697388;font-size:10px;font-weight:800;cursor:pointer}.appointments-views button:last-child{border-right:0}.appointments-views button.is-active{background:#fff0fa;color:#bd3075;box-shadow:inset 0 0 0 1px #efb9da}.appointments-month-nav{display:flex;align-items:center;justify-content:center;gap:14px}.appointments-month-nav a{display:grid;place-items:center;width:31px;height:31px;border:1px solid #e1e5ed;border-radius:9px;color:#566177;text-decoration:none;font-size:18px}.appointments-month-nav strong{min-width:130px;text-align:center;font-size:13px}.appointments-today{padding:8px 11px;border:1px solid #e1e5ed;border-radius:9px;color:#58637a;text-decoration:none;font-size:10px;font-weight:800}.appointments-calendar{overflow:hidden;border:1px solid #dfe3ec;border-radius:17px;background:#fff;box-shadow:0 13px 34px rgba(40,50,73,.055)}.appointments-weekdays,.appointments-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.appointments-weekdays{padding:0 7px;border-bottom:1px solid #e8eaf0}.appointments-weekdays span{padding:12px 5px;color:#606b80;text-align:center;font-size:9px;font-weight:900}.appointments-grid{background:#e8eaf0;gap:1px}.appointments-day{position:relative;display:flex;flex-direction:column;min-width:0;min-height:118px;padding:9px;border:0;background:#fff;color:#27354f;text-align:left;cursor:pointer}.appointments-day:hover{z-index:1;background:#fffafd;box-shadow:inset 0 0 0 1px #ebbed8}.appointments-day.is-outside{background:#fafbfc;color:#a5adbb}.appointments-day__number{display:grid;place-items:center;width:25px;height:25px;margin-bottom:4px;border-radius:50%;font-size:10px;font-weight:800}.appointments-day.is-today .appointments-day__number{background:linear-gradient(135deg,#ef3f91,#9367dd);color:#fff;box-shadow:0 5px 12px rgba(223,57,139,.25)}.appointments-day__events{display:grid;gap:4px;min-width:0}.appointment-chip{display:flex;align-items:center;gap:4px;min-width:0;padding:5px 6px;border:0;border-radius:7px;text-align:left;cursor:pointer}.appointment-chip span{font-size:7px;font-weight:900}.appointment-chip strong{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.appointment-chip.is-medical{background:#e9f3ff;color:#255a9d}.appointment-chip.is-therapy{background:#ffedf6;color:#ae2f6b}.appointment-chip.is-personal{background:#f3eaff;color:#7443ad}.appointment-chip.is-other{background:#fff5dc;color:#95600b}.appointments-legend{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.appointments-legend span{display:flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid #e3e6ed;border-radius:9px;background:#fff;color:#657087;font-size:8px;font-weight:700}.appointments-legend i,.appointments-categories i{width:7px;height:7px;border-radius:50%}.is-medical{--appointment-color:#4799f5}.is-therapy{--appointment-color:#ed4c9d}.is-personal{--appointment-color:#a455df}.is-other{--appointment-color:#f2ad20}.appointments-legend i,.appointments-categories i{background:var(--appointment-color)}.appointments-side{display:flex;flex-direction:column;gap:12px}.appointments-side-card{padding:16px;border:1px solid #e4e5ec;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(42,49,68,.055)}.appointments-side-card header h2{margin:0 0 11px;font-size:13px}.appointments-upcoming{display:grid}.appointments-agenda-row{display:grid;grid-template-columns:35px minmax(0,1fr) 14px;align-items:center;gap:8px;width:100%;padding:9px 0;border:0;border-bottom:1px solid #eef0f4;background:transparent;color:#25334e;text-align:left;cursor:pointer}.appointments-agenda-row>i{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:color-mix(in srgb,var(--appointment-color) 13%,white);font-style:normal}.appointments-agenda-row span{min-width:0}.appointments-agenda-row strong,.appointments-agenda-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointments-agenda-row strong{font-size:10px}.appointments-agenda-row small{margin-top:3px;color:#7c879a;font-size:8px}.appointments-agenda-row b{color:#9da5b2}.appointments-all{margin-top:10px;padding:0;border:0;background:transparent;color:#bd3377;font-size:9px;font-weight:900;cursor:pointer}.appointments-categories{display:grid;gap:10px}.appointments-categories>div{display:grid;grid-template-columns:8px 1fr 23px;align-items:center;gap:8px;color:#5c677c;font-size:9px}.appointments-categories strong{display:grid;place-items:center;height:23px;border-radius:8px;background:#f4f2f7;color:#626077}.appointments-sync{display:flex;align-items:center;gap:10px}.appointments-sync>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#fff3e2;color:#a76814}.appointments-sync.is-ready>span{background:#e7f8ef;color:#1b7a4f}.appointments-sync strong,.appointments-sync small{display:block}.appointments-sync strong{font-size:9px}.appointments-sync small{margin-top:3px;color:#9199a7;font-size:8px}.appointments-agenda{border:1px solid #e1e4eb;border-radius:16px;background:#fff;padding:17px}.appointments-agenda>header{display:flex;justify-content:space-between;align-items:center}.appointments-agenda h2{margin:0;font-size:16px}.appointments-agenda>header span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#f1efff;color:#5547c5;font-size:10px;font-weight:900}.appointments-empty{padding:15px;color:#8b94a4;font-size:9px;text-align:center}.appointment-dialog{width:min(760px,calc(100vw - 24px));max-height:90vh;padding:0;border:0;border-radius:20px;background:#fff;box-shadow:0 30px 90px rgba(29,22,39,.25)}.appointment-dialog::backdrop{background:rgba(23,26,38,.42);backdrop-filter:blur(4px)}.appointment-form>header{display:flex;justify-content:space-between;padding:21px 23px;border-bottom:1px solid #ebe7ee;background:linear-gradient(120deg,#fff,#fff7fb)}.appointment-form>header span{color:#cd397c;font-size:8px;font-weight:900;letter-spacing:.1em}.appointment-form>header h2{margin:4px 0;font-size:22px}.appointment-form>header p{margin:0;color:#7c8596;font-size:9px}.appointment-form>header button{align-self:flex-start;width:31px;height:31px;border:1px solid #e1e3e9;border-radius:9px;background:#fff;color:#70798a;font-size:18px;cursor:pointer}.appointment-form__body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:20px 23px;overflow:auto}.appointment-form label{display:grid;gap:5px}.appointment-form label>span{color:#687389;font-size:9px;font-weight:800}.appointment-form input,.appointment-form select,.appointment-form textarea{width:100%;padding:9px 10px;border:1px solid #dce0e9;border-radius:9px;background:#fbfcfe;color:#27344d;font:inherit;font-size:10px;outline:none}.appointment-form input:focus,.appointment-form select:focus,.appointment-form textarea:focus{border-color:#ae91df;box-shadow:0 0 0 3px rgba(151,107,215,.1)}.appointment-form .is-wide{grid-column:1/-1}.appointment-check{display:flex!important;align-items:center;grid-template-columns:auto 1fr!important}.appointment-check input{width:auto}.appointment-medical{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid #dde9f5;border-radius:11px;background:#f7fbff}.appointment-form>footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 23px;border-top:1px solid #ebeef3}.appointment-form>footer .btn{min-height:39px;border-radius:10px;font-size:10px}
@media(max-width:980px){.appointments-workspace{grid-template-columns:1fr}.appointments-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.appointments-day{min-height:105px}}
@media(max-width:720px){.appointments-page{padding-inline:9px}.appointments-hero{align-items:flex-start;flex-direction:column;padding:21px}.appointments-new{width:100%;justify-content:center}.appointments-toolbar{grid-template-columns:1fr auto}.appointments-views{grid-column:1/-1}.appointments-views button{flex:1}.appointments-month-nav{justify-content:flex-start}.appointments-calendar{display:none}.appointments-agenda[hidden]{display:block}.appointments-legend{display:none}.appointments-side{grid-template-columns:1fr}.appointments-side-card:nth-child(2){display:none}.appointment-form__body{grid-template-columns:1fr}.appointment-form .is-wide{grid-column:auto}.appointment-medical{grid-template-columns:1fr}.appointments-hero h1{font-size:29px}}

/* Calendar: use the available desktop canvas and keep controls comfortably readable. */
@media (min-width:1100px) {
    .appointments-page {
        width:calc(100% - 48px);
        max-width:none;
        margin-inline:24px;
        padding:28px 0 52px;
    }

    .appointments-hero {
        margin-bottom:22px;
        padding:32px 36px;
    }

    .appointments-hero h1 { font-size:40px; }
    .appointments-hero p { font-size:15px; }
    .appointments-new { min-height:48px; padding-inline:20px; }

    .appointments-workspace {
        grid-template-columns:minmax(0,1fr) clamp(320px,22vw,360px);
        gap:24px;
    }

    .appointments-toolbar {
        gap:16px;
        margin-bottom:15px;
        padding:12px 14px;
    }

    .appointments-views button { padding:10px 15px; font-size:11px; }
    .appointments-month-nav a { width:35px; height:35px; }
    .appointments-month-nav strong { min-width:150px; font-size:14px; }
    .appointments-today { padding:10px 14px; font-size:11px; }
    .appointments-weekdays span { padding:14px 6px; font-size:10px; }

    .appointments-day {
        min-height:142px;
        padding:12px;
    }

    .appointments-day__number {
        width:29px;
        height:29px;
        margin-bottom:6px;
        font-size:11px;
    }

    .appointments-day__events { gap:6px; }
    .appointment-chip { gap:5px; padding:7px 8px; }
    .appointment-chip span { font-size:8px; }
    .appointment-chip strong { font-size:9px; }
    .appointments-legend { gap:9px; margin-top:13px; }
    .appointments-legend span { padding:8px 11px; font-size:9px; }

    .appointments-side { gap:15px; }
    .appointments-side-card { padding:20px; }
    .appointments-side-card header h2 { margin-bottom:14px; font-size:15px; }
    .appointments-agenda-row { grid-template-columns:40px minmax(0,1fr) 16px; gap:10px; padding:11px 0; }
    .appointments-agenda-row>i { width:38px; height:38px; }
    .appointments-agenda-row strong { font-size:11px; }
    .appointments-agenda-row small { font-size:9px; }
    .appointments-all { margin-top:13px; font-size:10px; }
    .appointments-categories { gap:13px; }
    .appointments-categories>div { grid-template-columns:9px 1fr 27px; gap:9px; font-size:10px; }
    .appointments-categories strong { height:27px; }
    .appointments-sync>span { width:36px; height:36px; }
    .appointments-sync strong { font-size:10px; }
    .appointments-sync small { font-size:9px; }
}
.appointment-form>footer{display:grid;grid-template-columns:auto 1fr auto auto}.appointment-delete{background:#fff1f3!important;color:#ad2948!important;border:1px solid #ffd0da!important}
.sidebar-vault-card{display:grid;gap:6px;margin:0 14px 14px;padding:12px;border:1px solid rgba(255,255,255,.35);border-radius:13px;background:rgba(255,255,255,.14);color:#fff}.sidebar-vault-card strong{font-size:11px}.sidebar-vault-card small{font-size:8px;line-height:1.45;opacity:.85}.sidebar-vault-card button{margin-top:3px;padding:7px 9px;border:1px solid rgba(255,255,255,.4);border-radius:8px;background:rgba(255,255,255,.18);color:#fff;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.sidebar-vault-card button:hover{background:rgba(255,255,255,.27)}
.login-box .sidebar-vault-card--member{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin:0;padding:9px 10px;border:1px solid #d8eee2;border-radius:11px;background:#f2fbf6;color:#24583f;box-shadow:none;transition:border-color .18s ease,background .18s ease}.login-box .sidebar-vault-card--member>span{display:grid;gap:2px;min-width:0}.login-box .sidebar-vault-card--member strong{display:flex;align-items:center;font-size:10px;line-height:1.25}.login-box .sidebar-vault-card--member strong::before{content:'✓';display:inline-grid;place-items:center;flex:0 0 auto;width:17px;height:17px;margin-right:6px;border-radius:6px;background:#d9f5e5;color:#178352}.login-box .sidebar-vault-card--member small{overflow:hidden;color:#668175;font-size:7px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;opacity:1}.login-box .sidebar-vault-card--member button{width:auto;min-height:29px;margin:0;padding:5px 9px;border:1px solid #cfe8da;border-radius:8px;background:#fff;color:#32654c;font-size:8px;box-shadow:none}.login-box .sidebar-vault-card--member button:hover{background:#e7f7ee;color:#1d6945}.login-box .sidebar-vault-card--member.is-locked{border-color:#f0d9e5;background:#fff7fb;color:#7e3157}.login-box .sidebar-vault-card--member.is-locked strong::before{content:'🔒';background:#fde7f2;color:#c43378;font-size:9px}.login-box .sidebar-vault-card--member.is-locked small{color:#8c687b}.login-box .sidebar-vault-card--member.is-locked button{border-color:#f0cada;color:#c43378}.login-box .sidebar-vault-card--member.is-locked button:hover{background:#fdebf4;color:#a82664}.login-box .sidebar-vault-card--member.is-unavailable{border-color:#eadfc8;background:#fffaf0;color:#765c2e}.login-box .sidebar-vault-card--member.is-unavailable strong::before{content:'!';background:#f9edce;color:#9b6b12}.login-box .sidebar-vault-card--member.is-unavailable small{color:#8a7959}.login-box .sidebar-vault-card--member.is-unavailable button{border-color:#eadbb9;color:#84631e}.login-box .sidebar-vault-card--member.is-checking{opacity:.72}.login-box .sidebar-vault-card--member.is-checking strong::before{content:'…';background:#edf0f5;color:#68758a}.login-box .sidebar-vault-card--member button:disabled{cursor:wait;opacity:.65}
.sidebar-vault-dialog{width:min(460px,calc(100vw - 28px));padding:0;border:0;border-radius:20px;background:#fff;box-shadow:0 28px 80px rgba(31,24,43,.26)}.sidebar-vault-dialog::backdrop{background:rgba(26,29,40,.45);backdrop-filter:blur(4px)}.sidebar-vault-dialog__form{position:relative;display:grid;gap:14px;padding:28px}.sidebar-vault-dialog__form>.entry-compose__eyebrow{color:#d6337f;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.sidebar-vault-dialog__form h2{margin:0;color:#172554;font-size:25px}.sidebar-vault-dialog__form>p:not(.register-error){margin:0;color:#68758a;font-size:14px;line-height:1.55}.sidebar-vault-dialog__form label{display:grid;gap:7px;color:#273753;font-size:12px;font-weight:800}.sidebar-vault-dialog__form input[type=password],.sidebar-vault-dialog__form input[type=file]{width:100%;padding:11px 12px;border:1px solid #d8dfea;border-radius:10px;background:#fbfcfe;color:#273753;font:inherit;box-sizing:border-box}.sidebar-vault-dialog__form input:focus{border-color:#d86aa0;outline:0;box-shadow:0 0 0 3px rgba(216,74,143,.11)}.sidebar-vault-dialog__or{color:#7d8799;font-size:11px}.sidebar-vault-dialog__close{position:absolute;top:16px;right:16px;width:32px!important;min-height:32px!important;margin:0!important;padding:0!important;border:1px solid #e1e5ec!important;border-radius:9px!important;background:#fff!important;color:#657086!important;font-size:20px!important;box-shadow:none!important}.sidebar-vault-dialog__form>.btn{width:100%;min-height:43px}.sidebar-vault-dialog__form .register-error{min-height:18px;margin:0;color:#bb274e;font-size:12px}
.topic-item.is-unread { border-color:#c9c3f5; box-shadow:0 7px 22px rgba(79,70,201,.08); }
.topic-item.is-unread .topic-row__icon { background:#eceaff; color:#5146d0; }
.topic-item.is-unread .topic-row__main h3 { font-weight:900; }
.forum-unread-divider { display:flex; align-items:center; gap:10px; margin:3px 0; color:#4f46c9; font-size:10px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.forum-unread-divider::before,.forum-unread-divider::after { content:""; flex:1; height:1px; background:#d8d4f7; }
.post-item.is-first-unread { border-color:#c8c2f3; box-shadow:0 5px 18px rgba(79,70,201,.08); }
.topic-row__starter { display:flex; align-items:center; gap:8px; min-width:0; }
.topic-row__starter > span { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border-radius:10px; background:#eef1ff; color:#4f46c9; font-size:11px; font-weight:900; }
.topic-row__starter div { min-width:0; }
.topic-row__starter small,.topic-row__starter strong,.topic-row__activity small,.topic-row__activity strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.topic-row__starter small,.topic-row__activity small,.topic-row__count small { color:#8691a4; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.035em; }
.topic-row__starter strong,.topic-row__activity strong { margin-top:3px; color:#4c5970; font-size:10px; }
.topic-row__count { display:grid; justify-items:center; gap:3px; padding:9px 7px; border-radius:10px; background:#f6f7fb; }
.topic-row__count strong { color:#172554; font-size:17px; }
.topic-row__activity { min-width:0; }
.topic-row > i { color:#8994a8; font-style:normal; font-size:17px; transition:transform .18s ease; }
.topic-row:hover > i { color:#5146d0; transform:translateX(3px); }
.forum-board-empty { display:grid; justify-items:center; padding:48px 20px; border:1px dashed #d9e0eb; border-radius:15px; background:#fafbfd; text-align:center; }
.forum-board-empty > span { display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:#fff0f7; color:#ce347d; font-size:23px; }
.forum-board-empty h3 { margin:12px 0 4px; color:#172554; }
.forum-board-empty p { margin:0 0 15px; color:#738097; }
.forum-board-pagination { justify-content:center; margin-top:18px; }

@media(max-width:900px) {
    .topic-row { grid-template-columns:38px minmax(0,1fr) 62px 22px; }
    .topic-row__starter,.topic-row__activity { display:none; }
}
@media(max-width:620px) {
    .forum-board-hero,.forum-board-topics { padding:17px; }
    .forum-board-header { align-items:stretch; flex-direction:column; }
    .forum-board-actions,.forum-board-actions .btn { width:100%; }
    .forum-board-actions .btn { justify-content:center; }
    .forum-board-stats span:last-child { display:none; }
    .topic-row { grid-template-columns:34px minmax(0,1fr) 20px; gap:10px; min-height:78px; padding:12px; }
    .topic-row__icon { width:34px; height:34px; }
    .topic-row__count { display:none; }
}

/* ===== Forum Topic Compose ===== */
.forum-compose{
    max-width: 1080px;
    margin: 0 auto;
    padding: 10px 8px 88px;
    display: grid;
    gap: 16px;
}

.forum-compose__hero,
.forum-compose__card{
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,248,251,0.96));
    border: 1px solid rgba(255,102,163,0.14);
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(31,41,55,0.06);
    padding: 16px 18px;
}

.forum-compose__hero-copy{
    display: grid;
    gap: 8px;
}

.forum-compose__hero-copy--single{
    margin-top: 6px;
}

.forum-compose__title{
    margin: 0;
    color: #24314f;
    font-size: clamp(1.7rem, 2.3vw, 2.45rem);
    line-height: 1.12;
}

.forum-compose__lead{
    margin: 0;
    max-width: 56ch;
    color: #6f7d99;
    font-size: 14px;
    line-height: 1.55;
}

.forum-compose__meta{
    margin-top: 0;
}

.forum-compose__notice{
    margin-top: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(255,102,163,0.18);
    background: linear-gradient(180deg, rgba(255,250,252,0.96), rgba(255,244,248,0.92));
    color: #6f7d99;
}

.forum-compose__notice p{
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
}

.forum-compose__notice-icon{
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ff5fa2;
    font-size: 17px;
}

.forum-compose__form{
    display: grid;
    gap: 18px;
}

.forum-compose__layout{
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.78fr);
    gap: 18px;
    align-items: start;
}

.forum-compose__main,
.forum-compose__sidebar{
    display: grid;
    gap: 18px;
}

.forum-compose__title-box{
    display: grid;
    gap: 8px;
    padding: 14px 14px 12px;
    border-radius: 16px;
    background: rgba(255,248,251,0.72);
    border: 1px solid rgba(255,102,163,0.1);
}

.forum-topic-suggestions[hidden] { display:none !important; }
.forum-topic-suggestions { margin-top:14px; overflow:hidden; border:1px solid #e5cfe0; border-radius:14px; background:#fffafd; box-shadow:0 9px 25px rgba(119,49,94,.06); }
.forum-topic-suggestions__head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 13px; border-bottom:1px solid #f0dfe9; background:linear-gradient(90deg,#fff5fa,#faf8ff); }
.forum-topic-suggestions__head > div { display:flex; align-items:center; gap:8px; }
.forum-topic-suggestions__head > div > span { display:grid; place-items:center; width:27px; height:27px; border-radius:8px; background:#ffe5f1; color:#ca3478; font-size:15px; font-weight:900; }
.forum-topic-suggestions__head strong { color:#6e2850; font-size:12px; }
.forum-topic-suggestions__head small { color:#826f7b; font-size:9px; }
.forum-topic-suggestions__list { display:grid; gap:1px; }
.forum-topic-suggestions__list > a { display:grid; grid-template-columns:31px minmax(0,1fr) auto 18px; align-items:center; gap:10px; padding:10px 12px; color:inherit; background:#fff; text-decoration:none; transition:.16s ease; }
.forum-topic-suggestions__list > a + a { border-top:1px solid #f0edf1; }
.forum-topic-suggestions__list > a:hover { background:#fdf9ff; }
.forum-topic-suggestions__icon { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; background:#f2efff; color:#5a4ad1; font-size:12px; font-weight:900; }
.forum-topic-suggestions__list > a > div { min-width:0; }
.forum-topic-suggestions__list strong,.forum-topic-suggestions__list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.forum-topic-suggestions__list strong { color:#172554; font-size:12px; }
.forum-topic-suggestions__list small { margin-top:3px; color:#7c8799; font-size:9px; }
.forum-topic-suggestions__list b { color:#69758a; font-size:9px; white-space:nowrap; }
.forum-topic-suggestions__list i { color:#8b95a8; font-style:normal; }

@media(max-width:650px) {
    .forum-topic-suggestions__head { align-items:flex-start; flex-direction:column; }
    .forum-topic-suggestions__list > a { grid-template-columns:31px minmax(0,1fr) 18px; }
    .forum-topic-suggestions__list b { display:none; }
}

.forum-compose__title-head{
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.forum-compose__title-label{
    margin: 0;
    color: #24314f;
    font-size: 18px;
    line-height: 1.2;
}

.forum-compose__title-limit{
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid rgba(255,102,163,0.12);
    color: #8b5f74;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.forum-compose__field-group{
    display: grid;
    gap: 6px;
}

.forum-compose__field{
    display: grid;
    gap: 8px;
}

.forum-compose__field--title{
    width: 100%;
}

.forum-compose__field span{
    color: #24314f;
    font-size: 13px;
    font-weight: 700;
}

.forum-compose__input,
.forum-compose__field input.forum-compose__input{
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    box-sizing: border-box;
    border-radius: 12px;
    border: 1px solid rgba(191,219,254,0.95);
    background: #ffffff;
    color: #1f2937;
    font-size: 15px;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.forum-compose__input--title{
    min-height: 52px;
    padding: 0 16px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 600;
    background: #ffffff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.85);
}

.forum-compose__input--title::placeholder{
    color: #97a0b5;
    font-weight: 400;
}

.forum-compose__input:focus{
    outline: none;
    border-color: rgba(37,99,235,0.45);
    box-shadow: 0 0 0 4px rgba(37,99,235,0.08);
}

.forum-compose__hint{
    margin: 0;
    color: #6f7d99;
    line-height: 1.45;
    font-size: 13px;
}

.forum-compose__hint--head{
    max-width: 34ch;
    text-align: right;
}

.forum-compose__editor-shell{
    display: grid;
    gap: 10px;
}

.forum-compose__editor-head{
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.forum-compose__section-kicker{
    display: inline-block;
    margin-bottom: 4px;
    color: #c1377d;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.forum-compose__section-title{
    margin: 0;
    color: #24314f;
    font-size: 20px;
    line-height: 1.18;
}

.forum-compose__editor{
    border-radius: 16px;
    border: 1px solid rgba(255,102,163,0.14);
    box-shadow: 0 8px 18px rgba(31,41,55,0.04);
    overflow: hidden;
}

.forum-compose__toolbar{
    padding: 10px 12px;
    background: linear-gradient(180deg, #fff9fc, #fff1f6);
}

.forum-compose__editor-area{
    min-height: 250px;
    border-top: 1px solid rgba(255,102,163,0.12);
    border-bottom: 1px solid rgba(255,102,163,0.12);
    padding: 16px 16px;
    font-size: 15px;
    line-height: 1.6;
}

.forum-compose__editor-foot{
    padding: 10px 12px;
    background: rgba(255,250,252,0.9);
}

.forum-compose__status{
    font-size: 12px;
}

.forum-compose__editor-actions{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
}

.forum-compose__word-count{
    white-space: nowrap;
}

.forum-compose__editor-tip{
    margin: 0;
    color: #6f7d99;
    line-height: 1.6;
    font-size: 14px;
}

.forum-compose__sidebar{
    align-content: start;
}

.forum-compose__side-card{
    padding: 16px;
    border-radius: 18px;
    background: rgba(255,255,255,0.94);
    border: 1px solid rgba(226,232,240,0.92);
    box-shadow: 0 10px 22px rgba(15,23,42,0.04);
    display: grid;
    gap: 10px;
}

.forum-compose__side-card h3{
    margin: 0;
    color: #24314f;
    font-size: 20px;
    line-height: 1.2;
}

.forum-compose__side-card h3 small{
    color: #6f7d99;
    font-size: 15px;
    font-weight: 500;
}

.forum-compose__side-card p{
    margin: 0;
    color: #6f7d99;
    line-height: 1.55;
    font-size: 14px;
}

.forum-compose__side-label{
    display: inline-block;
    color: #24314f;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.forum-compose__readonly{
    min-height: 46px;
    padding: 0 14px;
    display: flex;
    align-items: center;
    border-radius: 14px;
    border: 1px solid rgba(226,232,240,0.92);
    background: #ffffff;
    color: #24314f;
    font-size: 15px;
}

.forum-compose__readonly--muted{
    color: #9aa3b5;
}

.forum-compose__checks{
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
}

.forum-compose__checks li{
    position: relative;
    padding-left: 28px;
    color: #24314f;
    line-height: 1.45;
}

.forum-compose__checks li::before{
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    width: 16px;
    height: 16px;
    border-radius: 5px;
    border: 1px solid rgba(203,213,225,0.95);
    background: #f8fafc;
}

.forum-compose__security-note{
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 14px;
    border-radius: 16px;
    border: 1px solid rgba(255,102,163,0.18);
    background: linear-gradient(180deg, rgba(255,250,252,0.96), rgba(255,244,248,0.92));
}

.forum-compose__security-note span{
    color: #ff5fa2;
    font-size: 18px;
    line-height: 1;
}

.forum-compose__security-note p{
    margin: 0;
}

.forum-compose__actions{
    display: flex;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.forum-compose__actions .btn{
    min-height: 42px;
    padding: 0 16px;
    border-radius: 12px;
    font-weight: 600;
}

@media (max-width: 860px){
    .forum-compose__layout{
        grid-template-columns: 1fr;
    }

    .forum-compose__hint--head{
        text-align: left;
        max-width: none;
    }

    .forum-compose__editor-head{
        flex-direction: column;
    }

    .forum-compose__title-head{
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 760px){
    .forum-compose{
        padding: 8px 0 88px;
    }

    .forum-compose__hero,
    .forum-compose__card{
        padding: 14px;
        border-radius: 16px;
    }

    .forum-compose__notice{
        padding: 12px;
    }

    .forum-compose__editor-area{
        min-height: 220px;
        padding: 14px;
    }

    .forum-compose__editor-foot,
    .forum-compose__actions{
        flex-direction: column;
        align-items: stretch;
    }

    .forum-compose__editor-actions{
        width: 100%;
        justify-content: space-between;
    }

    .forum-compose__actions .btn{
        width: 100%;
        justify-content: center;
    }
}

/* ===== Dashboard Pro UI ===== */
:root{
    --dashboard-bg: #f4f1ec;
    --dashboard-surface: #ffffff;
    --dashboard-surface-soft: #faf8f4;
    --dashboard-text: #1f2937;
    --dashboard-text-soft: #667085;
    --dashboard-border: rgba(148, 163, 184, 0.18);
    --dashboard-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
    --dashboard-shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.05);
    --dashboard-radius: 24px;
    --dashboard-radius-sm: 18px;
    --dashboard-accent: #5b6ee1;
    --dashboard-accent-soft: rgba(91, 110, 225, 0.12);
    --dashboard-accent-green: #37946c;
    --dashboard-accent-blue: #3c82d6;
    --dashboard-accent-sand: #a7794a;
    --dashboard-accent-violet: #6d5ccf;
}

.dashboard-shell{
    width:calc(100% - 32px);
    max-width:1480px;
    margin: 0 auto;
    padding:32px 0 96px;
    display: grid;
    gap: 24px;
}

.dashboard-shell .card{
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(250,248,244,0.95));
    border: 1px solid var(--dashboard-border);
    border-radius: var(--dashboard-radius);
    box-shadow: var(--dashboard-shadow-soft);
    margin: 0;
    padding: 24px;
}

.dashboard-hero{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 32px;
}

.dashboard-eyebrow,
.dashboard-panel__eyebrow{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dashboard-text-soft);
}

.dashboard-title{
    margin: 0;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
    color: #111827;
}

.dashboard-lead{
    margin: 12px 0 0;
    max-width: 56ch;
    font-size: 16px;
    line-height: 1.7;
    color: var(--dashboard-text-soft);
}

.dashboard-trust{
    margin-top: 18px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(148,163,184,0.18);
    color: #334155;
    font-size: 14px;
}

.dashboard-trust__dot{
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4ade80, #10b981);
    box-shadow: 0 0 0 6px rgba(16,185,129,0.12);
}

.dashboard-hero__actions{
    display: grid;
    justify-content: flex-end;
    align-items: center;
    justify-items:end;
    gap:10px;
    min-width: 240px;
}

.dashboard-hero__shortcut{
    color:var(--dashboard-accent);
    font-size:12px;
    font-weight:800;
    text-decoration:none;
}

.dashboard-hero__shortcut:hover{ text-decoration:underline; }

.dashboard-compose-btn{
    min-height: 56px;
    padding: 0 22px;
    border-radius: 18px;
    border: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 14px 32px rgba(91,110,225,0.28);
}

.dashboard-stats{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.dashboard-stat-card{
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.dashboard-stat-card__marker{
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    margin-top: 8px;
    border-radius: 999px;
    background: var(--dashboard-accent);
    box-shadow: 0 0 0 8px var(--dashboard-accent-soft);
}

.dashboard-stat-card__marker--violet{ background: var(--dashboard-accent-violet); box-shadow: 0 0 0 8px rgba(109, 92, 207, 0.12); }
.dashboard-stat-card__marker--blue{ background: var(--dashboard-accent-blue); box-shadow: 0 0 0 8px rgba(60, 130, 214, 0.12); }
.dashboard-stat-card__marker--green{ background: var(--dashboard-accent-green); box-shadow: 0 0 0 8px rgba(55, 148, 108, 0.12); }
.dashboard-stat-card__marker--sand{ background: var(--dashboard-accent-sand); box-shadow: 0 0 0 8px rgba(167, 121, 74, 0.12); }

.dashboard-stat-card__body{
    display: grid;
    gap: 6px;
}

.dashboard-stat-card__label{
    font-size: 13px;
    color: var(--dashboard-text-soft);
}

.dashboard-stat-card__value{
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    color: #111827;
}

.dashboard-stat-card__value--small{
    font-size: 24px;
    line-height: 1.2;
}

.dashboard-stat-card__meta{
    font-size: 12px;
    color: var(--dashboard-text-soft);
}

.dashboard-panels{
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.95fr);
    grid-template-areas:"diary news";
    gap: 24px;
    align-items:start;
}

.dashboard-panels.has-forum{ grid-template-areas:"diary forum" "diary news"; }
.dashboard-panel--diary{ grid-area:diary; }
.dashboard-panel--forum{ grid-area:forum; }
.dashboard-panel--news{ grid-area:news; }

.dashboard-panel{
    display: grid;
    gap: 18px;
}

.dashboard-panel__header{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.dashboard-panel__header h2,
.dashboard-calendar h2{
    margin: 0;
    font-size: 24px;
    color: #111827;
}

.dashboard-panel__link{
    align-self: center;
    color: var(--dashboard-accent);
    font-weight: 600;
    text-decoration: none;
}

.dashboard-panel__link:hover{
    text-decoration: underline;
}

.dashboard-panel__link--footer{
    margin-top: 2px;
}

.dashboard-entry-list{
    display: grid;
    gap: 14px;
}

.dashboard-entry-card{
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 14px;
    padding: 14px 0 0;
    text-decoration: none;
    color: inherit;
}

.dashboard-entry-card:not(:last-child)::after{
    content: "";
    position: absolute;
    left: 10px;
    top: 44px;
    bottom: -14px;
    width: 1px;
    background: rgba(148,163,184,0.28);
}

.dashboard-entry-card__line{
    margin-top: 6px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(91,110,225,0.18), rgba(91,110,225,0.34));
    border: 1px solid rgba(91,110,225,0.22);
    box-shadow: 0 0 0 6px rgba(91,110,225,0.06);
}

.dashboard-entry-card__body{
    padding: 0 18px 18px 0;
    border-bottom: 1px solid rgba(148,163,184,0.16);
    transition: transform .22s ease, background-color .22s ease, box-shadow .22s ease;
    border-radius: 18px;
}

.dashboard-entry-card:hover .dashboard-entry-card__body{
    transform: translateY(-2px);
    background: rgba(255,255,255,0.76);
    box-shadow: inset 0 0 0 1px rgba(148,163,184,0.1);
}

.dashboard-entry-card__meta{
    display: flex;
    gap: 10px;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--dashboard-text-soft);
}

.dashboard-entry-card__excerpt{
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--dashboard-text);
}

.dashboard-entry-card__title{
    display: block;
    margin: 0 0 5px;
    color: #172554;
    font-size: 15px;
    line-height: 1.4;
}

.dashboard-entry-card__title[hidden]{
    display: none;
}

.dashboard-entry-card--decrypted .dashboard-entry-card__excerpt{
    color: var(--dashboard-text-soft);
    font-size: 13px;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.dashboard-appointments{
    position:relative;
    overflow:hidden;
}

.dashboard-appointments::after{
    content:"";
    position:absolute;
    top:-90px;
    right:-70px;
    width:220px;
    height:220px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(232,70,145,.09),rgba(118,99,223,.035) 55%,transparent 72%);
    pointer-events:none;
}

.dashboard-appointments>.dashboard-panel__header,
.dashboard-appointment-list{
    position:relative;
    z-index:1;
}

.dashboard-appointment-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.dashboard-appointment-card{
    --appointment-color:#8b74dc;
    display:grid;
    grid-template-columns:minmax(145px,.78fr) minmax(0,1.3fr) 28px;
    align-items:center;
    gap:16px;
    min-width:0;
    padding:15px 16px;
    border:1px solid rgba(148,163,184,.18);
    border-left:3px solid var(--appointment-color);
    border-radius:16px;
    background:rgba(255,255,255,.82);
    color:#24314f;
    text-decoration:none;
    box-shadow:0 7px 20px rgba(31,41,55,.035);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.dashboard-appointment-card:hover{
    transform:translateY(-2px);
    border-color:color-mix(in srgb,var(--appointment-color) 35%,#dfe4ec);
    box-shadow:0 12px 28px rgba(31,41,55,.08);
}

.dashboard-appointment-card__date{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    align-items:center;
    gap:10px;
    min-width:0;
}

.dashboard-appointment-card__date>i{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:12px;
    background:color-mix(in srgb,var(--appointment-color) 12%,white);
    font-style:normal;
    font-size:17px;
}

.dashboard-appointment-card__date strong,
.dashboard-appointment-card__date small,
.dashboard-appointment-card__body small,
.dashboard-appointment-card__body strong,
.dashboard-appointment-card__body>span{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.dashboard-appointment-card__date strong{font-size:11px;color:#44516a}.dashboard-appointment-card__date small{margin-top:3px;color:#7a869a;font-size:10px;font-weight:700}.dashboard-appointment-card__body{min-width:0}.dashboard-appointment-card__body small{margin-bottom:4px;color:var(--appointment-color);font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.dashboard-appointment-card__body strong{color:#172554;font-size:14px}.dashboard-appointment-card__body>span{margin-top:4px;color:#748096;font-size:11px}.dashboard-appointment-card>b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f5f6fa;color:#778198;font-size:18px}.dashboard-appointment-status{grid-column:1/-1;padding:24px!important}.dashboard-appointment-status h3{margin:0 0 6px}.dashboard-appointment-status p{margin:0}

.dashboard-news-stack{
    display: grid;
    gap: 12px;
}

.dashboard-forum-list{
    display:grid;
    gap:9px;
}

.dashboard-forum-topic{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    min-width:0;
    padding:11px 12px;
    border:1px solid rgba(148,163,184,.16);
    border-radius:13px;
    background:rgba(255,255,255,.76);
    color:#27344e;
    text-decoration:none;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.dashboard-forum-topic:hover{
    transform:translateY(-1px);
    border-color:rgba(213,67,144,.25);
    box-shadow:0 8px 20px rgba(31,41,55,.055);
}

.dashboard-forum-topic__icon{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:11px;
    background:linear-gradient(135deg,rgba(232,70,145,.13),rgba(116,99,218,.11));
    color:#d43f87;
    font-size:13px;
}

.dashboard-forum-topic__body{min-width:0}.dashboard-forum-topic__body strong,.dashboard-forum-topic__body small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-forum-topic__body strong{color:#172554;font-size:12px}.dashboard-forum-topic__body small{margin-top:4px;color:#778399;font-size:9px}.dashboard-forum-topic time{color:#8791a3;font-size:8px;white-space:nowrap}.dashboard-empty-state--compact{padding:18px!important}.dashboard-empty-state--compact h3{margin:0 0 6px;font-size:15px}.dashboard-empty-state--compact p{margin:0;font-size:12px}

.dashboard-news-card{
    display: grid;
    gap: 6px;
    padding: 16px 18px;
    border-radius: var(--dashboard-radius-sm);
    text-decoration: none;
    color: inherit;
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(148,163,184,0.14);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.dashboard-news-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--dashboard-shadow-soft);
    border-color: rgba(91,110,225,0.22);
}

.dashboard-news-card__date{
    font-size: 12px;
    color: var(--dashboard-text-soft);
    font-weight: 600;
}

.dashboard-news-card__title{
    font-size: 16px;
    line-height: 1.45;
    color: #111827;
}

.dashboard-empty-state{
    padding: 10px 0 4px;
}

.dashboard-empty-state h3{
    margin: 0 0 8px;
    font-size: 18px;
    color: #111827;
}

.dashboard-empty-state p{
    margin: 0;
    max-width: 44ch;
    color: var(--dashboard-text-soft);
    line-height: 1.65;
}

.dashboard-calendar{
    display: grid;
    gap: 18px;
}

.dashboard-calendar__header{
    align-items: center;
}

.dashboard-calendar__nav{
    display: flex;
    align-items: center;
    gap: 12px;
}

.dashboard-calendar__nav-btn{
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    text-decoration: none;
    color: #111827;
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(148,163,184,0.14);
    transition: background-color .2s ease, transform .2s ease;
}

.dashboard-calendar__nav-btn:hover{
    transform: translateY(-1px);
    background: rgba(91,110,225,0.08);
}

.dashboard-calendar__month{
    font-size: 16px;
    color: #111827;
}

.dashboard-calendar__table-wrap{
    overflow-x: auto;
    border-radius: 20px;
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(148,163,184,0.14);
}

.dashboard-calendar__table{
    min-width: 700px;
}

.dashboard-calendar__table th,
.dashboard-calendar__table td{
    border: 1px solid rgba(226,232,240,0.85);
}

.dashboard-calendar__table th{
    padding: 14px 10px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--dashboard-text-soft);
    background: rgba(248,250,252,0.9);
}

.dashboard-calendar__table .day{
    position: relative;
    height: 132px;
    padding: 10px;
    text-align: left;
    vertical-align: top;
    background: rgba(255,255,255,0.72);
}

.dashboard-calendar__table .day.weekend{
    background: rgba(248,250,252,0.96);
}

.dashboard-calendar__table .day.today{
    background: rgba(91,110,225,0.12);
    box-shadow: inset 0 0 0 1px rgba(91,110,225,0.18);
}

.dashboard-calendar__table .day.level-1{ background: rgba(191, 219, 254, 0.22); }
.dashboard-calendar__table .day.level-2{ background: rgba(191, 219, 254, 0.34); }
.dashboard-calendar__table .day.level-3{ background: rgba(165, 180, 252, 0.34); }

.dashboard-calendar__day-link{
    text-decoration: none;
    color: inherit;
}

.dashboard-calendar__day-number{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    border-radius: 10px;
    font-weight: 700;
    color: #111827;
}

.dashboard-calendar__table .day.today .dashboard-calendar__day-number{
    background: rgba(255,255,255,0.82);
}

.dashboard-calendar__table .count{
    position: absolute;
    left: 10px;
    bottom: 10px;
    margin: 0;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1;
    color: #2548c2;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(91,110,225,0.18);
}

.dashboard-calendar__appointments{
    position:absolute;
    top:47px;
    left:8px;
    right:8px;
    display:grid;
    gap:4px;
    min-width:0;
}

.dashboard-calendar__appointment{
    --appointment-color:#8d72dc;
    display:grid;
    grid-template-columns:18px minmax(0,1fr);
    align-items:center;
    gap:4px;
    min-width:0;
    height:22px;
    padding:2px 5px;
    border:1px solid color-mix(in srgb,var(--appointment-color) 18%,white);
    border-radius:7px;
    background:color-mix(in srgb,var(--appointment-color) 10%,white);
    color:#34415b;
    font-size:8px;
    font-weight:750;
    line-height:1;
    text-decoration:none;
    box-sizing:border-box;
}

.dashboard-calendar__appointment:hover{
    border-color:color-mix(in srgb,var(--appointment-color) 38%,white);
    background:color-mix(in srgb,var(--appointment-color) 15%,white);
}

.dashboard-calendar__appointment i{
    display:grid;
    place-items:center;
    font-style:normal;
    font-size:10px;
}

.dashboard-calendar__appointment span{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.dashboard-calendar__appointment-more{
    position:absolute;
    right:1px;
    bottom:-18px;
    display:grid;
    place-items:center;
    min-width:24px;
    height:17px;
    padding:0 5px;
    border-radius:7px;
    background:#f1eff9;
    color:#6553b5;
    font-size:8px;
    font-weight:900;
    text-decoration:none;
}

.dashboard-calendar__table .day.has-appointments{
    box-shadow:inset 0 3px 0 color-mix(in srgb,#d9438d 55%,#806bdc);
}

.dashboard-calendar__legend{
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    color: var(--dashboard-text-soft);
    font-size: 12px;
}

.dashboard-calendar__legend span{
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.dashboard-calendar__swatch{
    width: 14px;
    height: 14px;
    border-radius: 5px;
    border: 1px solid rgba(148,163,184,0.18);
}

.dashboard-calendar__swatch--today{ background: rgba(91,110,225,0.18); }
.dashboard-calendar__swatch--weekend{ background: rgba(248,250,252,1); }
.dashboard-calendar__swatch--level1{ background: rgba(191, 219, 254, 0.22); }
.dashboard-calendar__swatch--level2{ background: rgba(191, 219, 254, 0.34); }
.dashboard-calendar__swatch--level3{ background: rgba(165, 180, 252, 0.34); }
.dashboard-calendar__swatch--appointment{ background:linear-gradient(135deg,#ed4c9d,#8f70dc); }

@media (max-width: 1100px){
    .dashboard-stats{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-panels{
        grid-template-columns: 1fr;
        grid-template-areas:"diary" "news";
    }

    .dashboard-panels.has-forum{ grid-template-areas:"diary" "forum" "news"; }

    .dashboard-appointment-list{ grid-template-columns:1fr; }
}

@media (max-width: 760px){
    .dashboard-shell{
        width:100%;
        padding: 20px 12px 88px;
        gap: 18px;
    }

    .dashboard-shell .card{
        padding: 20px;
        border-radius: 20px;
    }

    .dashboard-hero{
        padding: 24px 20px;
        flex-direction: column;
        align-items: flex-start;
    }

    .dashboard-hero__actions{
        width: 100%;
        min-width: 0;
        justify-items:stretch;
    }

    .dashboard-hero__shortcut{ text-align:center; }

    .dashboard-compose-btn{
        width: 100%;
        justify-content: center;
    }

    .dashboard-stats{
        grid-template-columns: 1fr;
    }

    .dashboard-panel__header,
    .dashboard-calendar__header{
        flex-direction: column;
        align-items: flex-start;
    }

    .dashboard-panel__link{
        align-self: flex-start;
    }

    .dashboard-calendar__nav{
        width: 100%;
        justify-content: space-between;
    }

    .dashboard-entry-card{
        grid-template-columns: 16px minmax(0, 1fr);
        gap: 12px;
    }

    .dashboard-entry-card:not(:last-child)::after{
        left: 7px;
    }

    .dashboard-forum-topic{ grid-template-columns:32px minmax(0,1fr); }
    .dashboard-forum-topic time{ grid-column:2; }

    .dashboard-appointment-card{
        grid-template-columns:1fr 26px;
        gap:12px;
        padding:14px;
    }

    .dashboard-appointment-card__date{ grid-column:1/-1; }
}

/* ===== Diary Entry Compose ===== */
:root{
    --compose-bg: #fff8fb;
    --compose-surface: #ffffff;
    --compose-surface-soft: #fff4f8;
    --compose-text: #24314f;
    --compose-text-soft: #6f7d99;
    --compose-border: rgba(255, 102, 163, 0.18);
    --compose-shadow: 0 16px 36px rgba(224, 85, 144, 0.12);
    --compose-shadow-soft: 0 10px 24px rgba(31, 41, 55, 0.06);
    --compose-radius: 22px;
    --compose-radius-sm: 16px;
}

.entry-compose{
    max-width: 1320px;
    margin: 0 auto;
    padding: 12px 8px 96px;
    display: grid;
    gap: 20px;
}

.entry-compose .card{
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,248,251,0.96));
    border: 1px solid var(--compose-border);
    border-radius: var(--compose-radius);
    box-shadow: var(--compose-shadow);
    padding: 24px;
    margin: 0;
}

.entry-compose__hero{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.entry-compose__hero h1{
    margin: 0 0 8px;
    color: var(--compose-text);
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.06;
}

.entry-compose__hero p{
    margin: 0;
    max-width: 60ch;
    color: var(--compose-text-soft);
    font-size: 16px;
    line-height: 1.7;
}

.entry-compose__eyebrow{
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    margin-bottom: 14px;
    border-radius: 999px;
    background: rgba(255,102,163,0.1);
    color: #c1377d;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.entry-compose__hero-lock{
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: rgba(255,102,163,0.12);
    box-shadow: inset 0 0 0 1px rgba(255,102,163,0.12);
}

.entry-compose__lock-icon{
    font-size: 28px;
}

.entry-compose__alert{
    padding: 14px 16px;
    border-radius: var(--compose-radius-sm);
    font-size: 14px;
    border: 1px solid transparent;
}

.entry-compose__alert--error{
    background: #fff1f4;
    border-color: #f7bfd4;
    color: #a53b67;
}

.entry-compose__form{
    display: grid;
    gap: 20px;
}

.entry-compose__grid{
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, 0.95fr);
    gap: 24px;
}

.entry-compose__editor,
.entry-compose__sidebar,
.entry-compose__panel{
    display: grid;
    gap: 16px;
}

.entry-compose__section-header{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
}

.entry-compose__section-kicker{
    display: inline-block;
    margin-bottom: 6px;
    color: #c1377d;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.entry-compose__section-header p{
    margin: 0;
    color: var(--compose-text-soft);
    line-height: 1.6;
}

.entry-editor-card{
    background: var(--compose-surface);
    border: 1px solid rgba(255,102,163,0.16);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--compose-shadow-soft);
}

.entry-editor-bar{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 14px 16px;
    background: linear-gradient(180deg, #fffafc, #fff2f7);
    border-bottom: 1px solid rgba(255,102,163,0.14);
}

.entry-editor-bar .editor-grp{
    display: flex;
    gap: 8px;
    padding-right: 12px;
    margin-right: 2px;
    border-right: 1px solid rgba(255,102,163,0.16);
}

.entry-editor-bar .editor-grp:last-child{
    border-right: none;
    padding-right: 0;
}

.entry-editor-bar .editor-btn{
    min-width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid rgba(255,102,163,0.16);
    background: rgba(255,255,255,0.92);
    color: var(--compose-text);
    font: 600 14px/1 system-ui, sans-serif;
    box-shadow: 0 4px 12px rgba(224,85,144,0.08);
}

.entry-editor-bar .editor-btn:hover{
    background: #fff0f7;
    border-color: rgba(255,102,163,0.28);
}

.entry-editor-bar .editor-btn[aria-pressed="true"]{
    background: #ff66a3;
    color: #fff;
    border-color: #e05590;
}

.entry-editor-area{
    min-height: 460px;
    max-height: none;
    padding: 24px;
    border: 0;
    color: var(--compose-text);
    font-size: 17px;
    line-height: 1.75;
    background: #fff;
}

.entry-editor-area:focus{
    box-shadow: inset 0 0 0 1px rgba(255,102,163,0.26);
}

.entry-editor-area:empty::before{
    content: attr(data-placeholder);
    color: #97a0b5;
}

.entry-editor-meta{
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    border-top: 1px solid rgba(255,102,163,0.12);
    background: rgba(255,250,252,0.9);
    color: var(--compose-text-soft);
    font-size: 13px;
}

.entry-editor-meta__status{
    font-weight: 600;
}

.entry-editor-help,
.entry-compose__privacy-note,
.entry-compose__draft-note{
    margin: 0;
    color: var(--compose-text-soft);
    line-height: 1.6;
    font-size: 14px;
}

.entry-compose__privacy-note{
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(255,102,163,0.06);
}

.entry-compose__measure-grid{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.entry-compose__field{
    display: grid;
    gap: 8px;
}

.entry-compose__field span,
.entry-compose__mood-group legend{
    color: var(--compose-text);
    font-size: 14px;
    font-weight: 700;
}

.entry-compose__field input{
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border-radius: 14px;
    border: 1px solid rgba(255,102,163,0.16);
    background: rgba(255,255,255,0.96);
    color: var(--compose-text);
    box-sizing: border-box;
    font: inherit;
}

.entry-compose__field input:focus{
    outline: none;
    border-color: rgba(255,102,163,0.4);
    box-shadow: 0 0 0 4px rgba(255,102,163,0.08);
}

.entry-compose__field small{
    color: var(--compose-text-soft);
    font-size: 12px;
}

.entry-compose__bra-card{
    display: grid;
    gap: 10px;
    padding: 18px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,246,250,0.96));
    border: 1px solid rgba(255,102,163,0.18);
}

.entry-compose__bra-label{
    color: #b63a76;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .03em;
}

.entry-compose__bra-size{
    color: var(--compose-text);
    font-size: 36px;
    line-height: 1;
}

.entry-compose__bra-help{
    margin: 0;
    color: var(--compose-text-soft);
    line-height: 1.6;
}

.entry-compose__details{
    display: grid;
    gap: 18px;
}

.entry-compose__detail-grid{
    display: grid;
    grid-template-columns: 1fr 1fr 1.35fr 1.35fr;
    gap: 16px;
    align-items: start;
}

.entry-compose__field--wide{
    grid-column: span 1;
}

.entry-compose__mood-group{
    margin: 0;
    padding: 0;
    border: none;
    display: grid;
    gap: 10px;
}

.entry-compose__mood-group legend{
    margin-bottom: 2px;
}

.entry-compose__mood-group{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.entry-compose__mood-option{
    position: relative;
    min-width: 64px;
}

.entry-compose__mood-option input{
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.entry-compose__mood-option span{
    min-height: 54px;
    padding: 8px 10px;
    border-radius: 16px;
    border: 1px solid rgba(255,102,163,0.16);
    background: rgba(255,255,255,0.92);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    color: var(--compose-text);
    text-align: center;
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.entry-compose__mood-option span small{
    color: var(--compose-text-soft);
    font-size: 11px;
}

.entry-compose__mood-option input:checked + span{
    border-color: rgba(255,102,163,0.42);
    background: rgba(255,102,163,0.1);
    transform: translateY(-1px);
}

.entry-compose__footer{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.entry-compose__actions{
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.entry-compose__actions .btn{
    min-height: 48px;
    padding: 0 20px;
    border-radius: 14px;
    font-weight: 600;
}

@media (max-width: 1140px){
    .entry-compose__grid{
        grid-template-columns: 1fr;
    }

    .entry-compose__detail-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px){
    .entry-compose{
        padding: 8px 0 88px;
    }

    .entry-compose .card{
        padding: 18px;
        border-radius: 18px;
    }

    .entry-compose__hero{
        flex-direction: column;
        align-items: flex-start;
    }

    .entry-editor-area{
        min-height: 320px;
        padding: 18px;
    }

    .entry-compose__measure-grid,
    .entry-compose__detail-grid{
        grid-template-columns: 1fr;
    }

    .entry-editor-meta,
    .entry-compose__footer{
        flex-direction: column;
        align-items: flex-start;
    }

    .entry-compose__actions{
        width: 100%;
    }

    .entry-compose__actions .btn{
        flex: 1 1 100%;
        justify-content: center;
    }
}

/* ===== Forum Home ===== */
.forum-home{
    max-width: 1320px;
    margin: 0 auto;
    padding: 12px 8px 96px;
    display: grid;
    gap: 22px;
}

.forum-home-card{
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,248,251,0.96));
    border: 1px solid rgba(255,102,163,0.14);
    border-radius: 22px;
    box-shadow: 0 14px 34px rgba(31,41,55,0.07);
    padding: 24px;
}

.forum-home__hero{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.forum-home__eyebrow{
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    margin-bottom: 14px;
    border-radius: 999px;
    background: rgba(255,102,163,0.1);
    color: #c1377d;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.forum-home__hero h1{
    margin: 0 0 10px;
    color: #24314f;
    font-size: clamp(2rem, 3vw, 2.85rem);
    line-height: 1.08;
}

.forum-home__hero p{
    margin: 0;
    max-width: 62ch;
    color: #6f7d99;
    font-size: 16px;
    line-height: 1.7;
}

.forum-home__hero-actions{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    min-width: 240px;
}

.forum-home__cta{
    min-height: 52px;
    padding: 0 22px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 14px 28px rgba(224,85,144,0.24);
}

.forum-home__flash{
    padding: 14px 16px;
    border-radius: 18px;
    font-size: 14px;
    border: 1px solid transparent;
}

.forum-home__flash--ok{
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #166534;
}

.forum-home__flash--error{
    background: #fff1f4;
    border-color: #f7bfd4;
    color: #a53b67;
}

.forum-home__layout{
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, 0.95fr);
    gap: 24px;
    align-items: start;
}

.forum-home__main,
.forum-home__sidebar{
    display: grid;
    gap: 20px;
}

.forum-home__section{
    display: grid;
    gap: 18px;
}

.forum-home__section-header{
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.forum-home__section-header--compact{
    margin-bottom: 2px;
}

.forum-home__section-header h2{
    margin: 0 0 8px;
    color: #24314f;
    font-size: 26px;
}

.forum-home__section-header p{
    margin: 0;
    color: #6f7d99;
    line-height: 1.65;
}

.forum-home__section-kicker{
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 14px;
    background: rgba(255,102,163,0.1);
    color: #c1377d;
    font-size: 18px;
}

.forum-home__section-title {
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:7px;
}
.forum-home__section-title .forum-home__section-kicker {
    float:none;
    flex:0 0 42px;
    margin:0;
}
.forum-home__section-title > div { min-width:0; }
.forum-home__section-title h2 { margin:2px 0 0; }
.forum-home__section-parent {
    display:block;
    overflow:hidden;
    color:#c1377d;
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.07em;
    line-height:1.25;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
}

.forum-home__board-list{
    display: grid;
    gap: 14px;
}

.forum-home__board-card{
    background: rgba(255,255,255,0.86);
    border: 1px solid rgba(255,102,163,0.12);
    border-radius: 20px;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.forum-home__board-card:hover{
    transform: translateY(-3px);
    box-shadow: 0 16px 32px rgba(31,41,55,0.08);
    border-color: rgba(255,102,163,0.24);
}

.forum-home__board-link{
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(240px, .75fr);
    gap: 18px;
    padding: 20px;
    color: inherit;
    text-decoration: none;
}

.forum-home__board-main,
.forum-home__board-side{
    display: grid;
    gap: 16px;
}

.forum-home__board-top{
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.forum-home__board-icon{
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255,102,163,0.1);
    color: #c1377d;
    font-size: 18px;
}

.forum-home__board-copy h3{
    margin: 0 0 8px;
    color: #24314f;
    font-size: 20px;
    line-height: 1.25;
}

.forum-home__board-copy p{
    margin: 0;
    color: #6f7d99;
    line-height: 1.65;
}

.forum-home__board-tags{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.forum-home__board-tags span{
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255,102,163,0.08);
    color: #a53b67;
    font-size: 12px;
    font-weight: 600;
}

.forum-home__board-stats{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.forum-home__board-stats div{
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255,248,251,0.9);
    border: 1px solid rgba(255,102,163,0.1);
    display: grid;
    gap: 4px;
}

.forum-home__board-stats strong{
    color: #24314f;
    font-size: 24px;
    line-height: 1;
}

.forum-home__board-stats span{
    color: #6f7d99;
    font-size: 13px;
}

.forum-home__board-last{
    display: grid;
    gap: 6px;
    padding-top: 4px;
}

.forum-home__board-last-label{
    color: #a53b67;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.forum-home__board-last strong{
    color: #24314f;
    font-size: 15px;
    line-height: 1.45;
}

.forum-home__board-last small,
.forum-home__section-empty{
    color: #6f7d99;
    line-height: 1.6;
}

.forum-home__activity{
    display: grid;
    gap: 14px;
}

.forum-home__activity-list{
    display: grid;
    gap: 12px;
}

.forum-home__activity-item{
    display: grid;
    gap: 8px;
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255,255,255,0.88);
    border: 1px solid rgba(255,102,163,0.12);
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.forum-home__activity-item:hover{
    transform: translateY(-2px);
    border-color: rgba(255,102,163,0.22);
    box-shadow: 0 12px 28px rgba(31,41,55,0.07);
}

.forum-home__activity-item-top{
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.forum-home__activity-item-top strong{
    color: #24314f;
    font-size: 16px;
    line-height: 1.4;
}

.forum-home__activity-item span{
    color: #6f7d99;
    line-height: 1.55;
}

.forum-home__activity-item small{
    color: #8a94ab;
    font-size: 12px;
}

.forum-home__activity-badge{
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255,102,163,0.1);
    color: #a53b67;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.forum-home__empty h2{
    margin: 0 0 8px;
    color: #24314f;
}

.forum-home__empty p{
    margin: 0;
    color: #6f7d99;
    line-height: 1.7;
}

@media (max-width: 1180px){
    .forum-home__layout{
        grid-template-columns: 1fr;
    }
}

@media (max-width: 880px){
    .forum-home__board-link{
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px){
    .forum-home{
        padding: 8px 0 88px;
    }

    .forum-home-card{
        padding: 18px;
        border-radius: 18px;
    }

    .forum-home__hero{
        flex-direction: column;
        align-items: flex-start;
    }

    .forum-home__hero-actions{
        width: 100%;
        min-width: 0;
    }

    .forum-home__cta{
        width: 100%;
    }

    .forum-home__board-stats{
        grid-template-columns: 1fr 1fr;
    }

    .forum-home__board-top{
        grid-template-columns: 44px minmax(0, 1fr);
    }

.forum-home__activity-item-top{
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Forum overview refinement */
.forum-home{max-width:1420px;gap:18px;}
.forum-home-card{border-color:#e3e8f1;background:#fff;box-shadow:0 10px 30px rgba(30,41,59,.055);}
.forum-home__hero{position:relative;overflow:hidden;padding:34px 36px;border-radius:26px;background:linear-gradient(125deg,#fff 0%,#fff 62%,#fff1f7 100%);}
.forum-home__hero:after{content:"";position:absolute;right:-95px;top:-120px;width:280px;height:280px;border-radius:50%;background:linear-gradient(145deg,rgba(244,63,143,.16),rgba(99,102,241,.14));}
.forum-home__hero-copy,.forum-home__hero-actions{position:relative;z-index:1;}.forum-home__hero-copy{max-width:790px;}
.forum-home__eyebrow{gap:9px;padding:0;margin-bottom:12px;background:transparent;color:#596780;}.forum-home__eyebrow i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.11);}
.forum-home__hero h1{font-size:clamp(2.05rem,3.3vw,3.25rem);letter-spacing:-.035em;color:#14213d;}.forum-home__hero p{color:#62718a;}
.forum-home__hero-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}.forum-home__hero-stats span{display:inline-flex;align-items:baseline;gap:6px;padding:7px 11px;border:1px solid #e3e8f1;border-radius:999px;background:rgba(255,255,255,.78);color:#68758b;font-size:12px;font-weight:700;}.forum-home__hero-stats strong{color:#172554;font-size:15px;}
.forum-home__cta{gap:8px;min-height:50px;border-radius:14px;box-shadow:0 14px 28px rgba(219,39,119,.2);}.forum-home__cta span{font-size:18px;line-height:1;}
.forum-home__layout{grid-template-columns:minmax(0,1.75fr) minmax(300px,.7fr);gap:20px;}.forum-home__main,.forum-home__sidebar{gap:16px;}.forum-home__sidebar{position:sticky;top:18px;}
.forum-home__section{padding:24px;gap:16px;}.forum-home__section-header{align-items:center;padding-bottom:17px;border-bottom:1px solid #edf0f5;}.forum-home__section-header>div{min-width:0;}.forum-home__section-header h2{font-size:22px;margin-bottom:5px;color:#172554;}.forum-home__section-header p{font-size:14px;line-height:1.55;}.forum-home__section-kicker{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#fff0f7,#f3f1ff);color:#d72f7f;}
.forum-home__board-list{gap:10px;}.forum-home__board-card{border-color:#e5e9f1;border-radius:16px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.025);}.forum-home__board-card:hover{transform:translateY(-2px);border-color:#cfd8e8;box-shadow:0 12px 26px rgba(15,23,42,.07);}.forum-home__board-link{grid-template-columns:minmax(0,1.45fr) minmax(255px,.65fr);padding:18px 19px;gap:20px;}.forum-home__board-top{grid-template-columns:40px minmax(0,1fr);gap:13px;}.forum-home__board-icon{width:40px;height:40px;border-radius:12px;background:#f7eef9;color:#c62e77;}.forum-home__board-copy h3{font-size:17px;margin-bottom:5px;color:#172554;}.forum-home__board-copy p{font-size:13px;line-height:1.55;}.forum-home__board-tags{gap:6px;margin-bottom:7px;}.forum-home__board-tags span{padding:3px 8px;background:#f8f4f8;color:#9f4770;font-size:10px;letter-spacing:.02em;}
.forum-home__board-side{position:relative;grid-template-columns:145px minmax(0,1fr);align-items:center;gap:14px;padding-left:18px;border-left:1px solid #edf0f5;}.forum-home__board-stats{gap:7px;}.forum-home__board-stats div{padding:9px 10px;border:0;border-radius:12px;background:#f7f8fc;}.forum-home__board-stats strong{font-size:18px;}.forum-home__board-stats span{font-size:10px;}.forum-home__board-last{padding:0 28px 0 0;gap:4px;}.forum-home__board-last-label{font-size:9px;color:#be3474;}.forum-home__board-last strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.forum-home__board-last small{font-size:10px;}.forum-home__board-open{position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#f1f3f9;color:#596780;transition:.18s ease;}.forum-home__board-card:hover .forum-home__board-open{background:#eef2ff;color:#4f46e5;transform:translate(2px,-50%);}
.forum-home__activity{padding:20px;border-radius:18px;gap:12px;}.forum-home__activity .forum-home__section-header{justify-content:flex-start;gap:12px;margin:0;padding-bottom:14px;}.forum-home__activity .forum-home__section-header h2{font-size:17px;margin:0 0 2px;}.forum-home__activity .forum-home__section-header p{font-size:11px;}.forum-home__sidebar-icon{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,#fff0f7,#f2f1ff);color:#c62e77;font-weight:800;}
.forum-home__sidebar-empty{min-height:100px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;border:1px dashed #dbe2ed;border-radius:14px;background:#fafbfc;color:#7a879b;}.forum-home__sidebar-empty>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f0f2f7;color:#9aa5b6;}.forum-home__sidebar-empty p{margin:0;max-width:220px;font-size:12px;line-height:1.5;}
.forum-home__activity-list{gap:8px;}.forum-home__activity-item{padding:12px 13px;border-color:#e8ebf1;border-radius:13px;background:#fbfcfe;gap:5px;}.forum-home__activity-item:hover{transform:translateX(2px);border-color:#d7deea;box-shadow:none;background:#fff;}.forum-home__activity-item-top strong{font-size:13px;}.forum-home__activity-item span{font-size:12px;line-height:1.45;}.forum-home__activity-item small{font-size:10px;}
@media(max-width:1180px){.forum-home__layout{grid-template-columns:1fr}.forum-home__sidebar{position:static;grid-template-columns:1fr 1fr}}
@media(max-width:880px){.forum-home__board-link{grid-template-columns:1fr}.forum-home__board-side{border-left:0;border-top:1px solid #edf0f5;padding:14px 0 0}.forum-home__sidebar{grid-template-columns:1fr}}
@media(max-width:760px){.forum-home__hero{padding:26px 22px}.forum-home__hero-actions{width:100%}.forum-home__hero-stats{margin-top:16px}.forum-home__section{padding:18px}.forum-home__section-title .forum-home__section-kicker{margin:0}.forum-home__board-side{grid-template-columns:1fr}.forum-home__board-last{padding-right:34px}.forum-home__activity{padding:17px}}

/* ===== Diary List Pro ===== */
.diary-list-shell,
.diary-view-shell{
    max-width: 1480px;
    margin: 0 auto;
    padding: 14px 10px 96px;
    display: grid;
    gap: 20px;
}

.diary-list-hero{
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
}

.diary-list-hero__copy{
    display: grid;
    gap: 8px;
}

.diary-list-hero__title{
    margin: 0;
    color: #13213f;
    font-size: clamp(2.2rem, 2.8vw, 3.2rem);
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.diary-list-hero__lead{
    margin: 0;
    color: #667085;
    font-size: 17px;
    line-height: 1.55;
}

.diary-alert,
.diary-stats-card,
.diary-filter-card,
.diary-list-card,
.diary-view-card{
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,248,251,0.96));
    border: 1px solid rgba(226,232,240,0.92);
    border-radius: 20px;
    box-shadow: 0 14px 34px rgba(31,41,55,0.06);
}

.diary-alert{
    padding: 12px 14px;
}

.diary-alert--error{
    border-color: #fecaca;
    background: #fff3f4;
    color: #991b1b;
}

.diary-stats-card{
    padding: 22px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

.diary-stats-grid{
    flex: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.diary-stat{
    display: flex;
    align-items: center;
    gap: 16px;
}

.diary-stat__icon{
    width: 56px;
    height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(91,110,225,0.12), rgba(91,110,225,0.04));
}

.diary-stat__icon span{
    color: #3556e8;
    font-size: 21px;
    font-weight: 700;
}

.diary-stat__body{
    display: grid;
    gap: 4px;
}

.diary-stat__label{
    color: #4b5563;
    font-size: 14px;
}

.diary-stat__value{
    color: #111827;
    font-size: 21px;
    line-height: 1.05;
}

.diary-stats-card__cta{
    min-height: 56px;
    padding: 0 26px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    box-shadow: 0 16px 28px rgba(53,86,232,0.18);
}

.diary-filter-card,
.diary-list-card,
.diary-view-card{
    padding: 18px;
}

.diary-filter-grid{
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.05fr) minmax(220px, 0.9fr) 200px;
    gap: 16px 18px;
    align-items: end;
}

.diary-filter-field{
    display: grid;
    gap: 8px;
}

.diary-filter-field label,
.diary-sort-row label{
    color: #5a6478;
    font-size: 14px;
    font-weight: 700;
}

.diary-filter-field input,
.diary-sort-row select{
    width: 100%;
    min-height: 46px;
    padding: 0 15px;
    border-radius: 14px;
    border: 1px solid rgba(203,213,225,0.95);
    background: #ffffff;
    color: #1f2937;
    box-sizing: border-box;
    font: inherit;
}

.diary-filter-field input:focus,
.diary-sort-row select:focus{
    outline: none;
    border-color: rgba(37,99,235,0.4);
    box-shadow: 0 0 0 4px rgba(37,99,235,0.08);
}

.diary-filter-actions{
    display: flex;
    align-items: end;
}

.diary-filter-actions .btn{
    width: 100%;
    min-height: 46px;
    justify-content: center;
}

.diary-list-card__toolbar{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 16px;
}

.diary-sort-row{
    display: flex;
    align-items: center;
    gap: 12px;
}

.diary-sort-row select{
    width: auto;
    min-width: 160px;
}

.diary-entry-list{
    display: grid;
    gap: 16px;
}

.diary-entry-row{
    display: grid;
    grid-template-columns: 172px minmax(0, 1fr) 126px;
    align-items: stretch;
    border: 1px solid rgba(226,232,240,0.92);
    border-radius: 20px;
    background: #ffffff;
    overflow: hidden;
    box-shadow: 0 10px 26px rgba(15,23,42,0.05);
}

.diary-entry-row__aside{
    padding: 22px 16px;
    border-right: 1px solid rgba(226,232,240,0.92);
    display: grid;
    align-content: start;
    gap: 18px;
    background: linear-gradient(180deg, rgba(250,251,255,0.92), rgba(255,255,255,0.98));
}

.diary-entry-row__date-block{
    display: grid;
    gap: 6px;
    color: #24314f;
}

.diary-entry-row__date-icon{
    color: #475569;
    font-size: 14px;
}

.diary-entry-row__date-block strong{
    font-size: 17px;
}

.diary-entry-row__date-block span{
    color: #4b5563;
    font-size: 16px;
}

.diary-entry-row__mood{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    padding: 8px 10px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 14px;
}

.diary-entry-row__mood-icon{
    font-size: 15px;
    line-height: 1;
}

.diary-mood--very-low{ background: rgba(248,113,113,0.12); color: #b91c1c; }
.diary-mood--low{ background: rgba(251,146,60,0.14); color: #c2410c; }
.diary-mood--neutral{ background: rgba(250,204,21,0.16); color: #a16207; }
.diary-mood--good{ background: rgba(163,230,53,0.18); color: #3f6212; }
.diary-mood--great{ background: rgba(134,239,172,0.18); color: #166534; }
.diary-mood--default{ background: rgba(226,232,240,0.5); color: #475569; }

.diary-entry-row__content{
    padding: 22px 20px;
    display: grid;
    gap: 12px;
    align-content: center;
}

.diary-entry-row__title{
    margin: 0;
    font-size: 19px;
    line-height: 1.35;
}

.diary-entry-row__title a{
    color: #2346cb;
    text-decoration: none;
}

.diary-entry-row__title a:hover{
    text-decoration: underline;
}

.diary-entry-row__preview{
    margin: 0;
    color: #4b5563;
    line-height: 1.68;
    font-size: 15px;
}

.diary-entry-row__tags{
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.diary-entry-row__tag{
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(91,110,225,0.12);
    color: #4a53d1;
    font-size: 13px;
    font-weight: 600;
}

.diary-entry-row__actions{
    padding: 16px 14px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.diary-icon-btn{
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    border: 1px solid rgba(226,232,240,0.92);
    background: #ffffff;
    color: #64748b;
    text-decoration: none;
    font-size: 17px;
    box-shadow: 0 4px 10px rgba(15,23,42,0.03);
}

.diary-icon-btn:hover{
    border-color: rgba(148,163,184,0.75);
    background: #f8fafc;
}

.diary-icon-btn--danger{
    color: #ef4444;
}

.diary-empty-state{
    padding: 24px 6px;
    text-align: center;
}

.diary-empty-state h2{
    margin: 0 0 8px;
    color: #24314f;
}

.diary-empty-state p{
    margin: 0;
    color: #6f7d99;
}

.diary-pagination{
    margin-top: 14px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.diary-pagination a{
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid rgba(203,213,225,0.95);
    color: #334155;
    text-decoration: none;
}

.diary-pagination a.active{
    background: #3556e8;
    border-color: #3556e8;
    color: #ffffff;
}

.diary-pagination__arrow{
    font-size: 20px;
}

.diary-view-card{
    padding: 24px;
}

.diary-view-card__top{
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 18px;
}

.diary-view-card__eyebrow{
    display: inline-block;
    margin-bottom: 8px;
    color: #5b6ee1;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.diary-view-card__title{
    margin: 0 0 6px;
    color: #24314f;
    font-size: 32px;
    line-height: 1.08;
}

.diary-view-card__meta{
    margin: 0;
    color: #6f7d99;
}

.diary-migration-note{
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(250,204,21,0.14);
    color: #854d0e;
    border: 1px solid rgba(250,204,21,0.26);
}

.diary-view-card--error{
    padding: 22px;
}

.diary-view-card--error h1{
    margin: 0 0 8px;
}

.diary-view-card--error p{
    margin: 0 0 16px;
    color: #6f7d99;
}

@media (max-width: 1180px){
    .diary-stats-card{
        flex-direction: column;
        align-items: stretch;
    }

    .diary-stats-card__cta{
        width: 100%;
    }

    .diary-filter-grid{
        grid-template-columns: 1fr 1fr;
    }

    .diary-filter-actions{
        grid-column: span 2;
    }

    .diary-entry-row{
        grid-template-columns: 170px minmax(0, 1fr);
    }

    .diary-entry-row__actions{
        grid-column: 1 / -1;
        justify-content: flex-end;
        border-top: 1px solid rgba(226,232,240,0.92);
    }
}

@media (max-width: 760px){
    .diary-list-shell,
    .diary-view-shell{
        padding: 8px 0 88px;
        gap: 14px;
    }

    .diary-stats-card,
    .diary-filter-card,
    .diary-list-card,
    .diary-view-card{
        padding: 14px;
        border-radius: 16px;
    }

    .diary-stats-grid{
        grid-template-columns: 1fr;
    }

    .diary-filter-grid{
        grid-template-columns: 1fr;
    }

    .diary-filter-actions,
    .diary-sort-row{
        grid-column: auto;
    }

    .diary-sort-row{
        flex-direction: column;
        align-items: stretch;
    }

    .diary-sort-row select{
        width: 100%;
    }

    .diary-entry-row{
        grid-template-columns: 1fr;
    }

    .diary-entry-row__aside{
        border-right: 0;
        border-bottom: 1px solid rgba(226,232,240,0.92);
    }

    .diary-entry-row__actions{
        justify-content: flex-end;
    }

    .diary-view-card__top{
        flex-direction: column;
    }

    .diary-view-card__title{
        font-size: 28px;
    }
}

/* Diary overview refinement */
.diary-list-shell{max-width:1440px;gap:18px;}
.diary-list-hero{padding:14px 4px 4px;}
.diary-list-hero__eyebrow{display:inline-flex;align-items:center;gap:9px;width:max-content;color:#596780;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;}
.diary-list-hero__eyebrow i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.11);}
.diary-stats-card{position:relative;overflow:hidden;border-color:#e5e9f2;background:linear-gradient(120deg,#fff 0%,#fff 68%,#fff5fa 100%);box-shadow:0 12px 36px rgba(30,41,59,.07);}
.diary-stats-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(#f43f8f,#6965df);}
.diary-stat:not(:last-child){position:relative;}
.diary-stat:not(:last-child):after{content:"";position:absolute;right:-13px;width:1px;height:36px;background:#e8ebf2;}
.diary-stat__icon{width:50px;height:50px;border-radius:15px;background:#f2f2ff;}
.diary-stat__label{font-size:12px;font-weight:700;letter-spacing:.02em;color:#69758b;}
.diary-stat__value{font-size:20px;color:#101b36;}
.diary-filter-card{padding:16px 18px;background:#fff;border-color:#e5e9f2;box-shadow:0 8px 24px rgba(30,41,59,.045);}
.diary-filter-grid{grid-template-columns:minmax(210px,280px) minmax(190px,240px) minmax(220px,auto);gap:14px;justify-content:start;}
.diary-filter-field select{width:100%;min-height:46px;padding:0 40px 0 15px;border-radius:14px;border:1px solid rgba(203,213,225,.95);background:#fff;color:#1f2937;font:inherit;}
.diary-filter-field select:focus{outline:none;border-color:rgba(37,99,235,.4);box-shadow:0 0 0 4px rgba(37,99,235,.08);}
.diary-filter-actions{gap:12px;align-items:center;}.diary-filter-actions .btn{width:auto;min-width:150px;padding-inline:20px;}
.diary-filter-reset{color:#64748b;font-size:13px;font-weight:700;text-decoration:none;}.diary-filter-reset:hover{color:#db2777;text-decoration:underline;}
.diary-list-card{padding:20px;background:#f8fafc;border-color:#e2e8f0;box-shadow:0 12px 32px rgba(30,41,59,.055);}
.diary-list-card__header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 2px 18px;padding-bottom:15px;border-bottom:1px solid #e2e8f0;}
.diary-list-card__header span{display:block;margin-bottom:3px;color:#db2777;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;}
.diary-list-card__header h2{margin:0;color:#172554;font-size:21px;}.diary-list-card__header>strong{padding:7px 11px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:12px;}
.diary-entry-list{gap:12px;}
.diary-entry-row{grid-template-columns:158px minmax(0,1fr) 138px;border-color:#e1e7f0;border-radius:17px;box-shadow:0 4px 14px rgba(15,23,42,.035);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;}
.diary-entry-row:hover{transform:translateY(-2px);border-color:#cfd8e8;box-shadow:0 12px 26px rgba(15,23,42,.075);}
.diary-entry-row__aside{padding:19px 15px;background:linear-gradient(145deg,#f8faff,#fff);gap:14px;}
.diary-entry-row__date-icon{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:9px;background:#eef2ff;color:#4f46e5;}
.diary-entry-row__date-block strong{font-size:15px;color:#13213f;}.diary-entry-row__date-block span{font-size:13px;color:#69758b;}
.diary-entry-row__content{padding:20px 22px;gap:8px;}.diary-entry-row__title{font-size:17px;}.diary-entry-row__title a{color:#172554;}.diary-entry-row__title a:hover{color:#db2777;text-decoration:none;}.diary-entry-row__preview{font-size:14px;line-height:1.55;color:#667085;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.diary-entry-row__actions{padding:14px;border-left:1px solid #edf0f5;background:#fbfcfe;}
.diary-icon-btn{position:relative;width:38px;height:38px;border-radius:11px;font-size:15px;box-shadow:none;transition:transform .15s ease,border-color .15s ease,background .15s ease;}
.diary-icon-btn:hover{transform:translateY(-1px);border-color:#c7d2fe;background:#eef2ff;}.diary-icon-btn--danger:hover{border-color:#fecdd3;background:#fff1f2;}
.diary-icon-btn:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 8px);z-index:5;transform:translate(-50%,4px);padding:5px 8px;border-radius:7px;background:#172554;color:#fff;font-size:11px;font-weight:700;white-space:nowrap;opacity:0;pointer-events:none;transition:.15s ease;}
.diary-icon-btn:hover:after,.diary-icon-btn:focus-visible:after{opacity:1;transform:translate(-50%,0);}
@media(max-width:1180px){.diary-filter-grid{grid-template-columns:1fr 1fr}.diary-filter-actions{grid-column:1/-1}.diary-stat:not(:last-child):after{display:none}.diary-entry-row{grid-template-columns:150px minmax(0,1fr)}.diary-entry-row__actions{border-left:0}}
@media(max-width:760px){.diary-list-hero{padding-inline:4px}.diary-list-hero__title{font-size:clamp(2rem,10vw,2.55rem)}.diary-filter-grid{grid-template-columns:1fr}.diary-filter-actions{grid-column:auto;align-items:stretch;flex-direction:column}.diary-filter-actions .btn{width:100%}.diary-entry-row{grid-template-columns:1fr}.diary-entry-row__aside{display:flex;justify-content:space-between;align-items:center}.diary-entry-row__date-block{grid-template-columns:auto auto;align-items:center}.diary-entry-row__date-icon{grid-row:1/3}.diary-entry-row__actions{border-top:1px solid #edf0f5}.diary-list-card__header{align-items:center}}

/* Home landing */
.home-landing{
    display:grid;
    gap:28px;
    padding:10px 0 34px;
}

.home-landing__hero,
.home-landing__section,
.home-landing__closing{
    background:#ffffff;
    border:1px solid rgba(226,232,240,0.9);
    border-radius:26px;
    box-shadow:0 14px 36px rgba(15,23,42,0.06);
}

.home-landing__hero{
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);
    gap:24px;
    padding:34px;
    background:
        radial-gradient(circle at top right, rgba(83,140,255,0.12), transparent 34%),
        radial-gradient(circle at left center, rgba(255,102,163,0.12), transparent 38%),
        #ffffff;
}

.home-landing__hero-copy{
    display:grid;
    gap:16px;
    align-content:start;
}

.home-landing__eyebrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(255,102,163,0.10);
    color:#be2f78;
    font-size:12px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.home-landing__hero h1{
    margin:0;
    max-width:760px;
    font-size:48px;
    line-height:1.05;
    color:#202b49;
}

.home-landing__lead{
    margin:0;
    max-width:720px;
    font-size:20px;
    line-height:1.6;
    color:#5c6c8b;
}

.home-landing__cta{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.home-landing__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 18px;
    border-radius:14px;
    font-weight:700;
    text-decoration:none;
    transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.home-landing__btn:hover{
    transform:translateY(-1px);
}

.home-landing__btn--primary{
    background:linear-gradient(135deg,#3556e8,#5b6ee1);
    color:#ffffff;
    box-shadow:0 12px 24px rgba(53,86,232,0.24);
}

.home-landing__btn--secondary{
    background:#f8fafc;
    color:#31415f;
    border:1px solid rgba(203,213,225,0.94);
}

.home-landing__hint{
    margin:0;
    color:#5f6f8d;
    font-size:14px;
}

.home-landing__hero-panel{
    display:flex;
    align-items:stretch;
}

.home-landing__hero-card{
    width:100%;
    display:grid;
    gap:14px;
    padding:24px;
    border-radius:22px;
    background:linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,255,0.98));
    border:1px solid rgba(226,232,240,0.9);
}

.home-landing__icon-badge{
    width:48px;
    height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:rgba(91,110,225,0.12);
    color:#4f5ed7;
    font-size:21px;
    font-weight:700;
}

.home-landing__hero-card h2,
.home-landing__section-head h2,
.home-landing__closing h2{
    margin:0;
    color:#202b49;
}

.home-landing__hero-card p,
.home-landing__section-head p,
.home-landing__feature-card p,
.home-landing__trust-card p,
.home-landing__tech-item p,
.home-landing__closing p{
    margin:0;
    color:#657493;
    line-height:1.7;
}

.home-landing__section{
    display:grid;
    gap:20px;
    padding:28px;
}

.home-landing__section-head{
    display:grid;
    gap:10px;
    max-width:880px;
}

.home-landing__trust-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.home-landing__trust-card,
.home-landing__feature-card,
.home-landing__panel{
    background:#fbfcff;
    border:1px solid rgba(226,232,240,0.88);
    border-radius:20px;
    padding:20px;
}

.home-landing__trust-card{
    display:grid;
    gap:12px;
}

.home-landing__mini-icon{
    width:30px;
    height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:rgba(255,102,163,0.12);
    color:#be2f78;
    font-size:18px;
    line-height:1;
}

.home-landing__trust-card h3,
.home-landing__feature-card h3{
    margin:0;
    color:#22314f;
    font-size:19px;
}

.home-landing__feature-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:16px;
}

.home-landing__feature-card{
    display:grid;
    gap:12px;
    align-content:start;
}

.home-landing__feature-dot{
    width:16px;
    height:16px;
    border-radius:999px;
    background:linear-gradient(135deg,#ff66a3,#5b6ee1);
    box-shadow:0 0 0 6px rgba(255,102,163,0.10);
}

.home-landing__section--split{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.home-landing__list{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:12px;
}

.home-landing__list li{
    position:relative;
    padding-left:20px;
    color:#334155;
    line-height:1.7;
}

.home-landing__list li::before{
    content:"";
    position:absolute;
    top:11px;
    left:0;
    width:8px;
    height:8px;
    border-radius:999px;
    background:#5b6ee1;
}

.home-landing__tech-box{
    display:grid;
    gap:18px;
    padding:0;
}

.home-landing__tech-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.home-landing__tech-item{
    padding:18px 20px;
    border-radius:18px;
    background:#fbfcff;
    border:1px solid rgba(226,232,240,0.9);
}

.home-landing__tech-item strong{
    display:block;
    margin-bottom:8px;
    color:#24314f;
}

.home-landing__closing{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:28px;
}

@media (max-width: 1220px){
    .home-landing__hero{
        grid-template-columns:1fr;
    }

    .home-landing__trust-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .home-landing__feature-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width: 860px){
    .home-landing{
        gap:20px;
        padding:2px 0 22px;
    }

    .home-landing__hero,
    .home-landing__section,
    .home-landing__closing{
        padding:20px;
        border-radius:20px;
    }

    .home-landing__hero h1{
        font-size:38px;
    }

    .home-landing__lead{
        font-size:18px;
    }

    .home-landing__trust-grid,
    .home-landing__feature-grid,
    .home-landing__section--split,
    .home-landing__tech-grid{
        grid-template-columns:1fr;
    }

    .home-landing__closing{
        flex-direction:column;
        align-items:flex-start;
    }
}

@media (max-width: 560px){
    .home-landing__hero h1{
        font-size:31px;
    }

    .home-landing__cta{
        flex-direction:column;
    }

    .home-landing__btn{
        width:100%;
    }
}

/* Home summary / about summary */
.home-summary,
.about-summary{
    display:grid;
    gap:22px;
    padding:8px 0 30px;
}

.home-summary__hero,
.home-summary__block,
.about-summary__hero,
.about-summary__section{
    background:#ffffff;
    border:1px solid rgba(226,232,240,0.92);
    border-radius:22px;
    box-shadow:0 12px 30px rgba(15,23,42,0.05);
}

.home-summary__hero,
.about-summary__hero{
    padding:28px;
    display:grid;
    gap:14px;
}

.home-summary__copy,
.about-summary__hero{
    max-width:920px;
}

.home-summary__eyebrow,
.about-summary__eyebrow{
    display:inline-flex;
    width:max-content;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(255,102,163,0.10);
    color:#bc2f78;
    font-size:12px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.home-summary__hero h1,
.about-summary__hero h1{
    margin:0;
    color:#202b49;
    font-size:42px;
    line-height:1.08;
}

.home-summary__hero p,
.about-summary__hero p,
.home-summary__block-head p,
.home-summary__card p,
.home-summary__trust-card p,
.home-summary__panel p,
.about-summary__panel p{
    margin:0;
    color:#66758f;
    line-height:1.7;
}

.home-summary__actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.home-summary__btn,
.about-summary__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:0 18px;
    border-radius:14px;
    text-decoration:none;
    font-weight:700;
}

.home-summary__btn--primary,
.about-summary__btn{
    background:linear-gradient(135deg,#3556e8,#5b6ee1);
    color:#fff;
    box-shadow:0 12px 24px rgba(53,86,232,0.22);
}

.home-summary__btn--secondary{
    background:#f8fafc;
    color:#31415f;
    border:1px solid rgba(203,213,225,0.95);
}

.home-summary__hero small{
    color:#5f6f8d;
    font-size:14px;
}

.home-summary__block,
.about-summary__section{
    display:grid;
    gap:18px;
    padding:24px;
}

.home-summary__block-head{
    display:grid;
    gap:8px;
    max-width:860px;
}

.home-summary__block-head h2,
.home-summary__panel h2,
.about-summary__panel h2{
    margin:0;
    color:#22314f;
    font-size:28px;
    line-height:1.15;
}

.home-summary__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.home-summary__card,
.home-summary__trust-card,
.home-summary__panel,
.about-summary__panel{
    background:#fbfcff;
    border:1px solid rgba(226,232,240,0.9);
    border-radius:18px;
    padding:18px 20px;
}

.home-summary__card{
    display:grid;
    gap:10px;
}

.home-summary__dot{
    width:12px;
    height:12px;
    border-radius:999px;
    background:linear-gradient(135deg,#ff66a3,#5b6ee1);
    box-shadow:0 0 0 5px rgba(255,102,163,0.09);
}

.home-summary__trust-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.home-summary__trust-card{
    display:grid;
    gap:10px;
}

.home-summary__trust-card h3{
    margin:0;
    color:#22314f;
    font-size:20px;
}

.home-summary__block--split,
.about-summary__section{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.home-summary__list,
.about-summary__list{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:12px;
}

.home-summary__list li,
.about-summary__list li{
    position:relative;
    padding-left:20px;
    color:#334155;
    line-height:1.7;
}

.home-summary__list li::before,
.about-summary__list li::before{
    content:"";
    position:absolute;
    top:11px;
    left:0;
    width:8px;
    height:8px;
    border-radius:999px;
    background:#5b6ee1;
}

.about-summary__panel{
    display:grid;
    gap:12px;
}

.about-summary__panel--list{
    align-content:start;
}

@media (max-width: 900px){
    .home-summary__grid,
    .home-summary__trust-grid,
    .home-summary__block--split,
    .about-summary__section{
        grid-template-columns:1fr;
    }
}

@media (max-width: 680px){
    .home-summary,
    .about-summary{
        gap:18px;
        padding:4px 0 22px;
    }

    .home-summary__hero,
    .home-summary__block,
    .about-summary__hero,
    .about-summary__section{
        padding:18px;
        border-radius:18px;
    }

    .home-summary__hero h1,
    .about-summary__hero h1{
        font-size:32px;
    }

    .home-summary__actions{
        flex-direction:column;
    }

    .home-summary__btn,
    .about-summary__btn{
        width:100%;
    }

    .home-summary__block-head h2,
    .home-summary__panel h2,
    .about-summary__panel h2{
        font-size:24px;
    }
}

/* News hub */
.news-hub{
    display:grid;
    grid-template-columns:minmax(0,1.75fr) minmax(280px,.65fr);
    gap:28px;
    padding:8px 0 28px;
}

.news-hub__main{
    display:grid;
    gap:18px;
}

.news-hub__hero{
    display:flex;
    align-items:flex-start;
    gap:16px;
}

.news-hub__hero-mark{
    width:54px;
    height:54px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:rgba(255,102,163,0.14);
    font-size:28px;
    line-height:1;
}

.news-hub__hero-copy{
    display:grid;
    gap:8px;
}

.news-hub__hero-copy h1{
    margin:0;
    color:#1f2a4a;
    font-size:48px;
    line-height:1.05;
}

.news-hub__hero-copy p{
    margin:0;
    color:#66758f;
    font-size:20px;
    line-height:1.5;
}

.news-hub__notice{
    padding:16px 18px;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(255,102,163,0.08), rgba(91,110,225,0.08));
    border:1px solid rgba(250,198,223,0.95);
    color:#55647f;
    line-height:1.6;
}

.news-hub__error,
.news-hub__empty,
.news-hub__featured,
.news-hub__feed,
.news-hub__sidebar-card{
    background:#ffffff;
    border:1px solid rgba(226,232,240,0.92);
    border-radius:22px;
    box-shadow:0 14px 34px rgba(15,23,42,0.05);
}

.news-hub__error{
    padding:16px 18px;
    color:#991b1b;
    border-color:#fecaca;
    background:#fef2f2;
}

.news-hub__empty{
    padding:26px;
}

.news-hub__empty h2,
.news-hub__feed-head h2,
.news-hub__sidebar-card h3{
    margin:0;
    color:#1f2a4a;
}

.news-hub__empty p,
.news-hub__sidebar-card p,
.news-hub__sidebar-card small{
    color:#66758f;
}

.news-hub__featured{
    display:grid;
    grid-template-columns:minmax(0,1.3fr) 180px;
    gap:18px;
    padding:24px 26px;
    background:
        radial-gradient(circle at right center, rgba(255,102,163,0.10), transparent 28%),
        linear-gradient(180deg,#fff9fc,#ffffff);
    border-color:rgba(250,198,223,0.95);
}

.news-hub__featured-copy{
    display:grid;
    gap:14px;
}

.news-hub__new-badge{
    display:inline-flex;
    width:max-content;
    padding:6px 11px;
    border-radius:999px;
    background:#ff4f9b;
    color:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.03em;
}

.news-hub__featured h2{
    margin:0;
    color:#1f2a4a;
    font-size:24px;
    line-height:1.2;
}

.news-hub__meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px 14px;
    align-items:center;
    color:#6b7280;
    font-size:14px;
}

.news-hub__featured-text{
    margin:0;
    color:#53627e;
    line-height:1.8;
}

.news-hub__featured-visual{
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:92px;
    line-height:1;
    opacity:.85;
}

.news-hub__badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:0 12px;
    border-radius:999px;
    font-size:13px;
    font-weight:700;
}

.news-hub__badge--important{background:#ffe6f1;color:#d62f7f}
.news-hub__badge--update{background:#efe6ff;color:#8355e8}
.news-hub__badge--feature{background:#e8f0ff;color:#3d68f5}
.news-hub__badge--change{background:#e7f8ef;color:#1e9c5d}
.news-hub__badge--security{background:#fff4df;color:#de8a00}
.news-hub__badge--maintenance{background:#f4ebff;color:#9257e9}

.news-hub__details{
    display:grid;
    gap:12px;
}

.news-hub__details summary{
    list-style:none;
    cursor:pointer;
    color:#3556e8;
    font-weight:700;
}

.news-hub__details summary::-webkit-details-marker{
    display:none;
}

.news-hub__details-body{
    color:#42516e;
    line-height:1.75;
}

.news-hub__details-body p:first-child{
    margin-top:0;
}

.news-hub__feed{
    padding:20px 22px;
    display:grid;
    gap:18px;
}

.news-hub__feed-head{
    display:flex;
    align-items:center;
    gap:10px;
}

.news-hub__feed-count{
    width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#ffe6f1;
    color:#d62f7f;
    font-size:13px;
    font-weight:800;
}

.news-hub__feed-list{
    display:grid;
}

.news-hub__card{
    display:grid;
    grid-template-columns:72px minmax(0,1fr) auto;
    gap:18px;
    padding:18px 6px;
    border-top:1px solid rgba(226,232,240,0.9);
    transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.news-hub__card:first-child{
    border-top:0;
    padding-top:4px;
}

.news-hub__card:hover{
    transform:translateY(-1px);
    background:#fcfdff;
}

.news-hub__date-box{
    width:58px;
    min-height:62px;
    display:grid;
    align-content:center;
    justify-items:center;
    padding:10px 0;
    border-radius:16px;
    background:#fff5fa;
    color:#d62f7f;
    font-weight:800;
}

.news-hub__date-box strong{
    font-size:29px;
    line-height:1;
}

.news-hub__date-box span{
    font-size:13px;
    letter-spacing:.05em;
}

.news-hub__card-copy{
    display:grid;
    gap:8px;
    min-width:0;
}

.news-hub__card-meta{
    color:#7b879d;
    font-size:13px;
}

.news-hub__card-copy h3{
    margin:0;
    font-size:18px;
    line-height:1.3;
    color:#1f2a4a;
}

.news-hub__card-copy p{
    margin:0;
    color:#57657f;
    line-height:1.65;
}

.news-hub__card-side{
    display:grid;
    justify-items:end;
    align-content:center;
    gap:14px;
    min-width:130px;
}

.news-hub__details--compact summary{
    color:#51627f;
    font-weight:700;
}

.news-hub__pagination{
    display:flex;
    justify-content:center;
    gap:10px;
    padding-top:4px;
}

.news-hub__pagination a{
    min-width:42px;
    height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    border-radius:12px;
    background:#fff;
    border:1px solid rgba(203,213,225,0.96);
    color:#42516e;
    text-decoration:none;
    font-weight:700;
}

.news-hub__pagination a.is-active,
.news-hub__pagination a:hover{
    background:#3556e8;
    border-color:#3556e8;
    color:#fff;
}

.news-hub__sidebar{
    display:grid;
    gap:18px;
    align-content:start;
}

.news-hub__sidebar-card{
    padding:20px;
    display:grid;
    gap:14px;
}

.news-hub__sidebar-card h3{
    font-size:18px;
}

.news-hub__trust-box{
    display:grid;
    gap:8px;
    padding:14px 16px;
    border-radius:16px;
    background:linear-gradient(135deg, rgba(255,102,163,0.08), rgba(91,110,225,0.06));
    border:1px solid rgba(250,198,223,0.94);
    color:#5b687f;
}

.news-hub__trust-box strong{
    color:#d62f7f;
}

.news-hub__sidebar-list{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:10px;
}

.news-hub__sidebar-list li{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    border-radius:14px;
    background:#fbfcff;
    border:1px solid rgba(226,232,240,0.88);
}

.news-hub__sidebar-label{
    color:#42516e;
}

@media (max-width: 1180px){
    .news-hub{
        grid-template-columns:minmax(0,1fr) 320px;
    }

    .news-hub__featured{
        grid-template-columns:1fr;
    }

    .news-hub__featured-visual{
        display:none;
    }
}

@media (max-width: 920px){
    .news-hub{
        grid-template-columns:1fr;
    }

    .news-hub__sidebar{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 680px){
    .news-hub{
        gap:20px;
        padding:4px 0 22px;
    }

    .news-hub__hero-copy h1{
        font-size:36px;
    }

    .news-hub__hero-copy p{
        font-size:18px;
    }

    .news-hub__featured,
    .news-hub__feed,
    .news-hub__sidebar-card{
        border-radius:18px;
    }

    .news-hub__card{
        grid-template-columns:58px minmax(0,1fr);
    }

    .news-hub__card-side{
        grid-column:1 / -1;
        justify-items:start;
        min-width:0;
        padding-left:76px;
    }

    .news-hub__sidebar{
        grid-template-columns:1fr;
    }
}

/* Sidebar refresh */
body{
    font-family:"Segoe UI", Arial, sans-serif;
    background:
        radial-gradient(circle at top right, rgba(91,110,225,0.08), transparent 24%),
        radial-gradient(circle at left bottom, rgba(255,102,163,0.08), transparent 32%),
        #f4f5fb;
    color:#22314f;
}

.sidebar-mobile-toggle{
    display:none;
    position:fixed;
    top:16px;
    left:16px;
    z-index:1001;
    width:46px;
    height:46px;
    border-radius:14px;
    border:1px solid rgba(203,213,225,.9);
    background:#ffffff;
    color:#24314f;
    box-shadow:0 14px 32px rgba(15,23,42,.12);
    font-size:22px;
}

.sidebar-backdrop{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.35);
    opacity:0;
    visibility:hidden;
    transition:opacity .2s ease, visibility .2s ease;
    z-index:998;
}

.sidebar{
    width:280px;
    padding:12px 14px 16px;
    background:
        linear-gradient(160deg, rgba(255,145,194,.95), rgba(213,114,223,.92) 52%, rgba(155,124,234,.88)),
        #ff66a3;
    box-shadow:22px 0 50px rgba(117,59,138,.16);
    border-right:1px solid rgba(255,255,255,.2);
    display:flex;
    flex-direction:column;
    gap:18px;
}

.sidebar__brand{
    padding:4px 8px 0;
}

.sidebar__brand-link{
    display:block;
    text-decoration:none;
}

.sidebar__brand-logo{
    display:block;
    width:126px;
}

.sidebar__brand-logo img{
    display:block;
    width:100%;
    height:auto;
    margin:0;
}

.sidebar__section{
    display:grid;
    gap:8px;
    padding:0 8px;
}

.sidebar__label,
.sidebar__eyebrow{
    color:rgba(255,255,255,.94);
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.language-switcher{
    margin:0;
}

.language-switcher form{
    margin:0;
}

.language-switcher select{
    width:100%;
    min-height:46px;
    padding:0 14px;
    border-radius:14px;
    border:1px solid rgba(255,255,255,.28);
    background:rgba(255,255,255,.92);
    color:#22314f;
    font-size:14px;
    box-shadow:0 12px 24px rgba(117,59,138,.12);
}

.sidebar__nav ul{
    display:grid;
    gap:4px;
}

.sidebar__nav li{
    margin:0;
}

.sidebar__nav a{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:42px;
    padding:0 14px;
    border-radius:14px;
    color:rgba(255,255,255,.96);
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    transition:background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.sidebar__nav a:hover{
    background:rgba(255,255,255,.12);
    text-decoration:none;
    transform:translateX(2px);
}

.sidebar__nav a.is-active{
    background:#ffffff;
    color:#ff4f9b;
    box-shadow:0 14px 30px rgba(84,43,108,.14);
}

.sidebar__nav-icon{
    width:22px;
    display:inline-flex;
    justify-content:center;
    font-size:14px;
    line-height:1;
}

.login-box{
    margin:0 10px;
    padding:14px 14px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.45);
    background:rgba(255,255,255,.96);
    box-shadow:0 20px 38px rgba(84,43,108,.15);
    text-align:left;
    display:grid;
    gap:16px;
}

.login-box__head{
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    gap:10px;
    align-items:start;
}

.login-box__head--guest{
    text-align:left;
}

.login-box__icon{
    width:40px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(255,102,163,.16), rgba(91,110,225,.10));
    font-size:18px;
}

.login-box h2{
    margin:0 0 6px;
    font-size:15px;
    color:#1f2544;
}

.login-box h2 a{
    color:inherit;
    text-decoration:underline;
}

.login-box p{
    margin:0;
    color:#66758f;
    line-height:1.5;
    font-size:12px;
}

.login-box__links{
    display:grid;
    gap:4px;
}

.login-box__links p a{
    color:#31415f;
    font-weight:700;
    text-decoration:none;
}

.login-box__links p a:hover,
.forgot-password:hover{
    text-decoration:underline;
}

.sidebar-login-form{
    display:grid;
    gap:8px;
}

.sidebar-login-form label{
    color:#22314f;
    font-size:12px;
    font-weight:700;
}

.sidebar-login-form__input{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:40px;
    padding:0 10px;
    border:1px solid rgba(203,213,225,.98);
    border-radius:12px;
    background:#fff;
    transition:border-color .18s ease, box-shadow .18s ease;
}

.sidebar-login-form__input:focus-within{
    border-color:#ff66a3;
    box-shadow:0 0 0 4px rgba(255,102,163,.12);
}

.sidebar-login-form__input span{
    color:#ff4f9b;
    font-size:14px;
}

.sidebar-login-form__input input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:#24314f;
    font-size:14px;
}

.sidebar-login-form__input input::placeholder{
    color:#8a97ad;
}

.login-box button{
    width:100%;
    min-height:40px;
    margin:2px 0 0;
    border-radius:12px;
    background:linear-gradient(135deg,#ff5da5,#ff4f9b 46%, #5b6ee1);
    color:#fff;
    font-weight:800;
    font-size:15px;
    box-shadow:0 14px 28px rgba(255,93,165,.2);
}

.login-box button:hover{
    background:linear-gradient(135deg,#f15099,#ef438f 46%, #4c61d8);
}

.login-box__footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.forgot-password{
    display:inline-block;
    margin-top:0;
    color:#ff4f9b;
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}

.sidebar .login-box .logout-link-btn{
    color:#ff4f9b !important;
    font-weight:800 !important;
}

.sidebar__trust-note{
    margin:0 10px;
    padding:12px 14px;
    border-radius:16px;
    background:linear-gradient(135deg, rgba(255,255,255,.24), rgba(255,255,255,.14));
    border:1px solid rgba(255,255,255,.28);
    color:#fff;
    display:grid;
    gap:6px;
}

.sidebar__trust-note strong{
    font-size:14px;
}

.sidebar__trust-note span{
    font-size:12px;
    line-height:1.5;
}

.main-wrapper{
    margin-left:280px;
    padding:20px 20px 110px;
}

.main-content{
    border-radius:32px;
    box-shadow:0 24px 56px rgba(15,23,42,.08);
    padding:28px;
    min-height:calc(100vh - 104px);
}

.app-footer{
    position:fixed;
    left:280px;
    bottom:0;
    width:calc(100% - 280px);
    padding:0 18px 16px;
    z-index:950;
    pointer-events:none;
}

.app-footer__inner{
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
    padding:14px 22px;
    border-radius:20px;
    background:linear-gradient(135deg, rgba(255,244,250,.96), rgba(250,245,255,.96));
    border:1px solid rgba(250,198,223,.9);
    box-shadow:0 12px 30px rgba(117,59,138,.10);
    pointer-events:auto;
}

.app-footer__meta{
    margin:0;
    color:#5f6f8d;
    font-size:15px;
    font-weight:500;
}

.app-footer__nav{
    display:flex;
    align-items:center;
    gap:14px;
}

.app-footer__nav a{
    color:#e0418d;
    text-decoration:none;
    font-size:15px;
    font-weight:700;
}

.app-footer__nav a:hover{
    text-decoration:underline;
}

@media (max-width: 1080px){
    .sidebar{
        width:260px;
    }

    .main-wrapper{
        margin-left:260px;
        padding-bottom:110px;
    }

    .app-footer{
        left:260px;
        width:calc(100% - 260px);
    }
}

@media (max-width: 860px){
    .sidebar-mobile-toggle{
        display:inline-flex;
        align-items:center;
        justify-content:center;
    }

    .sidebar{
        transform:translateX(-100%);
        transition:transform .22s ease;
        z-index:999;
        width:min(340px, calc(100vw - 24px));
    }

    body.sidebar-open .sidebar{
        transform:translateX(0);
    }

    body.sidebar-open .sidebar-backdrop{
        opacity:1;
        visibility:visible;
    }

    .main-wrapper{
        margin-left:0;
        padding:76px 14px 104px;
    }

    .main-content{
        border-radius:22px;
        padding:18px;
    }

    .app-footer{
        left:0;
        width:100%;
        padding:0 12px 12px;
    }

    .app-footer__inner{
        min-height:54px;
        gap:8px 14px;
        padding:12px 16px;
        border-radius:18px;
    }

    .app-footer__meta,
    .app-footer__nav a{
        font-size:14px;
    }
}

/* Final normalization: keep shared components consistent after legacy page CSS. */
body {
    color: var(--ui-ink);
    background: radial-gradient(circle at 92% 4%, rgba(98,103,217,.10), transparent 28rem), linear-gradient(135deg,#f8f4f8,#f3f5fb);
    font-family:"Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size:16px;
    line-height:1.55;
}

.main-content {
    background:rgba(255,255,255,.94);
    border:1px solid rgba(226,230,239,.82);
}

.card {
    border:1px solid var(--ui-line);
    border-radius:var(--ui-radius-md);
    background:var(--ui-surface);
    box-shadow:var(--ui-shadow-sm);
    padding:clamp(18px,2.4vw,28px);
}

.btn {
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 18px;
    border-radius:12px;
    font-weight:750;
    line-height:1.2;
}

.btn-primary {
    border-color:transparent;
    background:linear-gradient(135deg,var(--ui-brand),#ef599e 48%,var(--ui-accent));
    color:#fff;
    box-shadow:0 10px 24px rgba(232,70,145,.20);
}

.btn-secondary {
    border-color:var(--ui-line);
    background:var(--ui-surface);
    color:var(--ui-ink);
    box-shadow:0 5px 14px rgba(32,42,68,.05);
}

.btn-danger { background:var(--ui-danger); color:#fff; }
.muted { color:var(--ui-muted); }

@media (max-width:680px) {
    body { font-size:15px; }
    .main-content { padding:16px; border-radius:20px; }
    .card { padding:18px; }
}

/* Navigation and footer form one continuous application frame. */
.sidebar,
.app-footer {
    background:var(--ui-chrome-color);
}

.app-footer {
    padding:0 18px 16px;
}

.app-footer__inner {
    background:transparent;
    border-color:transparent;
    box-shadow:none;
    backdrop-filter:none;
}

.app-footer__meta,
.app-footer__nav a {
    color:#fff;
    text-shadow:0 1px 2px rgba(73,35,91,.18);
}

.app-footer__nav a:hover {
    color:#fff;
    text-decoration-thickness:2px;
}

@media (max-width:860px) {
    .app-footer { padding:0 12px 12px; }
}

/* Appointment editor: isolated modal layout, unaffected by legacy footer rules. */
.appointment-dialog {
    position:fixed;
    inset:50% auto auto 50%;
    width:min(920px,calc(100vw - 48px));
    max-width:none;
    max-height:calc(100dvh - 48px);
    margin:0;
    padding:0;
    overflow:hidden;
    border:1px solid rgba(218,221,231,.9);
    border-radius:24px;
    background:#fff;
    box-shadow:0 30px 100px rgba(25,24,37,.28);
    transform:translate(-50%,-50%);
}

.appointment-dialog[open] { display:block; }

.appointment-form {
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    width:100%;
    max-height:calc(100dvh - 50px);
    margin:0;
    background:#fff;
}

.appointment-form>header {
    position:relative;
    z-index:2;
    align-items:flex-start;
    padding:25px 30px 22px;
    border-bottom:1px solid #e9e7ee;
    background:linear-gradient(125deg,#fff 0%,#fff9fc 72%,#f7f2ff 100%);
}

.appointment-form>header span { font-size:10px; }
.appointment-form>header h2 { margin:6px 0 5px; font-size:28px; line-height:1.15; }
.appointment-form>header p { font-size:12px; line-height:1.5; }
.appointment-form>header button {
    width:36px;
    height:36px;
    min-height:36px;
    margin:0;
    padding:0;
    border:1px solid #dfe3ea;
    border-radius:11px;
    background:#fff;
    color:#657086;
    box-shadow:0 5px 14px rgba(39,46,66,.06);
}

.appointment-form>header button:hover { background:#f7f8fb; color:#24334f; }

.appointment-form__body {
    align-content:start;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 20px;
    min-height:0;
    padding:26px 30px 30px;
    overflow-x:hidden;
    overflow-y:auto;
    background:#fff;
    scrollbar-gutter:stable;
}

.appointment-form label { gap:7px; min-width:0; }
.appointment-form label>span { color:#3e4c65; font-size:11px; font-weight:800; }
.appointment-form input,
.appointment-form select,
.appointment-form textarea {
    min-height:44px;
    margin:0;
    padding:10px 12px;
    border:1px solid #d8dee9;
    border-radius:11px;
    background:#fbfcfe;
    color:#24334e;
    font-size:13px;
    line-height:1.35;
    box-sizing:border-box;
    transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}

.appointment-form textarea {
    min-height:110px;
    resize:vertical;
}

.appointment-form input:hover,
.appointment-form select:hover,
.appointment-form textarea:hover { border-color:#c5ccda; background:#fff; }

.appointment-form input:focus,
.appointment-form select:focus,
.appointment-form textarea:focus {
    border-color:#cc5a9a;
    background:#fff;
    box-shadow:0 0 0 4px rgba(213,67,144,.10);
}

.appointment-check {
    grid-column:1/-1;
    display:inline-flex!important;
    width:max-content;
    min-height:30px;
    padding:0 2px;
    gap:9px!important;
    cursor:pointer;
}

.appointment-check input {
    width:17px;
    min-height:17px;
    height:17px;
    accent-color:#d43f88;
}

.appointment-check span { font-size:12px!important; }

.appointment-medical {
    position:relative;
    gap:14px;
    padding:20px;
    border:1px solid #dce8f4;
    border-radius:15px;
    background:linear-gradient(135deg,#f8fbff,#f5f9fe);
}

.appointment-medical[hidden] { display:none!important; }

.appointment-medical::before {
    content:'Medizinische Angaben';
    position:absolute;
    top:-8px;
    left:15px;
    padding:1px 7px;
    background:#fff;
    color:#527197;
    font-size:9px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

html[lang="en"] .appointment-medical::before { content:'Medical details'; }

.appointment-form>footer {
    position:static!important;
    inset:auto!important;
    z-index:2;
    display:grid;
    grid-template-columns:auto 1fr auto auto;
    align-items:center;
    gap:10px;
    width:auto!important;
    margin:0!important;
    padding:16px 30px!important;
    border-top:1px solid #e8eaf0;
    background:#fff!important;
    color:inherit!important;
    text-align:initial;
    box-shadow:0 -8px 24px rgba(37,43,59,.035);
}

.appointment-form>footer .btn {
    width:auto;
    min-width:112px;
    min-height:42px;
    margin:0;
    padding:9px 16px;
    border-radius:11px;
    font-size:12px;
    line-height:1;
}

.appointment-form>footer .btn-primary { min-width:145px; }
.appointment-delete { justify-self:start; }

@media (max-width:720px) {
    .appointment-dialog {
        inset:12px auto auto 50%;
        width:calc(100vw - 24px);
        max-height:calc(100dvh - 24px);
        border-radius:18px;
        transform:translateX(-50%);
    }

    .appointment-form { max-height:calc(100dvh - 26px); }
    .appointment-form>header { padding:20px 19px 17px; }
    .appointment-form>header h2 { font-size:23px; }
    .appointment-form__body { grid-template-columns:1fr; gap:15px; padding:20px 18px 24px; }
    .appointment-form .is-wide,.appointment-check { grid-column:auto; }
    .appointment-medical { grid-template-columns:1fr; padding:18px 15px; }
    .appointment-form>footer { grid-template-columns:1fr 1fr!important; padding:13px 18px!important; }
    .appointment-form>footer>span { display:none; }
    .appointment-form>footer .appointment-delete { grid-column:1/-1; width:100%; }
    .appointment-form>footer .btn { width:100%; min-width:0; }
}

/* Keep the sidebar logout action identical on every page. */
.sidebar .login-box .logout-inline {
    display:block !important;
    width:100% !important;
    margin:2px 0 0 !important;
    padding:0 !important;
    line-height:1 !important;
}

.sidebar .login-box .logout-link-btn,
.sidebar .login-box .logout-link-btn:hover,
.sidebar .login-box .logout-link-btn:focus-visible {
    all:unset !important;
    display:inline !important;
    width:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:#ff4f9b !important;
    font-family:Arial,sans-serif !important;
    font-size:16px !important;
    font-style:normal !important;
    font-weight:400 !important;
    letter-spacing:normal !important;
    line-height:1.35 !important;
    text-align:left !important;
    text-decoration:underline !important;
    text-underline-offset:2px !important;
    cursor:pointer !important;
}

.sidebar .login-box .logout-link-btn:hover {
    color:#d92f78 !important;
}

.sidebar .login-box .logout-link-btn:focus-visible {
    border-radius:3px !important;
    outline:2px solid #d6337f !important;
    outline-offset:3px !important;
}

/* Admin forum management */
.forum-admin-page {
    --forum-border:#e2e8f2;
    --forum-muted:#61708c;
    --forum-ink:#10264a;
    --forum-soft:#f7f9fd;
    width:min(1240px,100%);
    margin:0 auto;
    display:grid;
    gap:18px;
    color:var(--forum-ink);
}

.forum-admin-hero,
.forum-admin-create,
.forum-admin-structure {
    background:#fff;
    border:1px solid var(--forum-border);
    border-radius:22px;
    box-shadow:0 14px 38px rgba(25,43,82,.06);
}

.forum-admin-hero {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:30px 32px;
    background:linear-gradient(135deg,#fff 0%,#fff 64%,#fff4fa 100%);
}

.forum-admin-eyebrow,
.forum-admin-section-heading span {
    display:block;
    margin-bottom:6px;
    color:#dc3f86;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.forum-admin-hero h1,
.forum-admin-section-heading h2 {
    margin:0;
    color:var(--forum-ink);
}

.forum-admin-hero h1 { font-size:clamp(1.75rem,3vw,2.45rem); }
.forum-admin-hero p { max-width:700px; margin:8px 0 0; color:var(--forum-muted); line-height:1.55; }
.forum-admin-hero .btn { flex:0 0 auto; }

.forum-admin-flash {
    padding:14px 18px;
    border:1px solid;
    border-radius:14px;
    font-weight:700;
}
.forum-admin-flash--ok { color:#14724b; background:#effbf5; border-color:#bdebd4; }
.forum-admin-flash--error { color:#a5273d; background:#fff3f5; border-color:#ffcbd4; }

.forum-admin-stats {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.forum-admin-stats article {
    display:flex;
    align-items:center;
    gap:13px;
    min-height:82px;
    padding:16px 18px;
    background:#fff;
    border:1px solid var(--forum-border);
    border-radius:17px;
    box-shadow:0 8px 24px rgba(25,43,82,.045);
}

.forum-admin-stats article > span,
.forum-admin-category__icon {
    display:grid;
    place-items:center;
    width:40px;
    height:40px;
    flex:0 0 40px;
    color:#d93882;
    background:#fff0f7;
    border-radius:12px;
    font-weight:900;
}

.forum-admin-stats strong { display:block; font-size:1.35rem; line-height:1; }
.forum-admin-stats small { display:block; margin-top:5px; color:var(--forum-muted); }

.forum-admin-hierarchy {
    display:grid;
    grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
    align-items:center;
    gap:12px;
    padding:15px;
    background:#f8f9fd;
    border:1px solid var(--forum-border);
    border-radius:17px;
}
.forum-admin-hierarchy > div {
    display:grid;
    grid-template-columns:30px 1fr;
    column-gap:10px;
    align-items:center;
    min-height:56px;
    padding:10px 12px;
    background:#fff;
    border:1px solid #e4e8f1;
    border-radius:12px;
}
.forum-admin-hierarchy > div > span {
    grid-row:1 / 3;
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    color:#fff;
    background:linear-gradient(135deg,#e9408b,#7463df);
    border-radius:9px;
    font-size:.75rem;
    font-weight:900;
}
.forum-admin-hierarchy strong { font-size:.8rem; }
.forum-admin-hierarchy small { color:var(--forum-muted); font-size:.68rem; line-height:1.25; }
.forum-admin-hierarchy > i { color:#a3acc0; font-style:normal; }
.forum-admin-hierarchy__content { opacity:.75; }

.forum-admin-page details > summary { list-style:none; cursor:pointer; }
.forum-admin-page details > summary::-webkit-details-marker { display:none; }
.forum-admin-create > summary,
.forum-admin-category > summary,
.forum-admin-subcategory > summary,
.forum-admin-board > summary {
    display:flex;
    align-items:center;
    gap:14px;
}

.forum-admin-create > summary { padding:20px 24px; }
.forum-admin-create > summary > span {
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    color:#fff;
    background:linear-gradient(135deg,#ef3f8f,#7764e7);
    border-radius:12px;
    font-size:1.25rem;
}
.forum-admin-create > summary div { flex:1; }
.forum-admin-create > summary strong,
.forum-admin-create > summary small { display:block; }
.forum-admin-create > summary small { margin-top:3px; color:var(--forum-muted); }
.forum-admin-create summary > i,
.forum-admin-category summary > i,
.forum-admin-subcategory summary > i,
.forum-admin-board summary > i { margin-left:auto; font-style:normal; transition:transform .2s ease; }
.forum-admin-page details[open] > summary > i { transform:rotate(180deg); }

.forum-admin-form {
    display:grid;
    grid-template-columns:minmax(180px,1fr) minmax(260px,1.5fr) 100px auto;
    align-items:end;
    gap:14px;
}
.forum-admin-create .forum-admin-form { padding:0 24px 24px; border-top:1px solid #edf0f6; padding-top:20px; }
.forum-admin-field { display:grid; gap:7px; min-width:0; }
.forum-admin-field > span { color:#43516c; font-size:.77rem; font-weight:800; }
.forum-admin-field input,
.forum-admin-field textarea {
    width:100%;
    min-height:43px;
    padding:10px 12px;
    color:var(--forum-ink);
    background:#fff;
    border:1px solid #cfd8e8;
    border-radius:11px;
    font:inherit;
    resize:vertical;
}
.forum-admin-field input:focus,
.forum-admin-field textarea:focus { border-color:#7764e7; outline:3px solid rgba(119,100,231,.12); }
.forum-admin-toggle { display:flex; align-items:center; gap:8px; min-height:43px; font-weight:700; white-space:nowrap; }
.forum-admin-toggle input { width:17px; height:17px; accent-color:#e53f8b; }
.forum-admin-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.forum-admin-form > .forum-admin-actions { grid-column:1 / -1; justify-content:flex-end; }
.forum-admin-form .btn { min-height:42px; }

.forum-admin-structure { padding:24px; }
.forum-admin-section-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.forum-admin-section-heading h2 { font-size:1.35rem; }
.forum-admin-section-heading > strong { display:grid; place-items:center; width:38px; height:38px; background:#f0efff; color:#6554dc; border-radius:12px; }
.forum-admin-empty { padding:48px 20px; text-align:center; color:var(--forum-muted); }
.forum-admin-empty > span { font-size:2rem; color:#d63d85; }
.forum-admin-empty h3 { margin:10px 0 4px; color:var(--forum-ink); }
.forum-admin-empty p { margin:0; }

.forum-admin-category {
    overflow:hidden;
    margin-top:13px;
    border:1px solid var(--forum-border);
    border-radius:17px;
    background:#fff;
}
.forum-admin-category > summary { min-height:84px; padding:16px 18px; background:linear-gradient(90deg,#fff,#fbfaff); }
.forum-admin-category__copy { flex:1; min-width:0; }
.forum-admin-category__copy strong { display:block; font-size:1.02rem; }
.forum-admin-category__copy small { display:block; overflow:hidden; margin-top:4px; color:var(--forum-muted); text-overflow:ellipsis; white-space:nowrap; }
.forum-admin-category__meta { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.forum-admin-category__meta > span { padding:6px 9px; color:#56647e; background:#f4f6fa; border-radius:8px; font-size:.75rem; font-weight:700; }
.forum-admin-status { padding:6px 9px; border-radius:999px; font-size:.7rem; }
.forum-admin-status--active { color:#14734c; background:#ddf8e9; }
.forum-admin-status--inactive { color:#6b7280; background:#eceff3; }
.forum-admin-category__body { padding:20px; border-top:1px solid var(--forum-border); background:var(--forum-soft); }
.forum-admin-category__body > .forum-admin-form { padding:17px; background:#fff; border:1px solid var(--forum-border); border-radius:14px; }

.forum-admin-nested { display:grid; gap:11px; margin:16px 0 0 28px; }
.forum-admin-add-panel { border:1px dashed #c9bde8; border-radius:13px; background:#fcfaff; }
.forum-admin-add-panel > summary { padding:13px 15px; color:#624fcf; font-size:.84rem; font-weight:800; }
.forum-admin-add-panel > .forum-admin-form { padding:15px; border-top:1px dashed #dcd3f1; }
.forum-admin-add-panel--board { margin-bottom:12px; background:#fff; }

.forum-admin-subcategory { overflow:hidden; border:1px solid #dfe5ef; border-radius:14px; background:#fff; }
.forum-admin-subcategory > summary { padding:14px 16px; }
.forum-admin-subcategory > summary > span,
.forum-admin-board > summary > span { color:#d63d85; font-weight:900; }
.forum-admin-subcategory > summary div,
.forum-admin-board > summary div { flex:1; }
.forum-admin-subcategory > summary strong,
.forum-admin-subcategory > summary small,
.forum-admin-board > summary strong,
.forum-admin-board > summary small { display:block; }
.forum-admin-subcategory > summary small,
.forum-admin-board > summary small { margin-top:3px; color:var(--forum-muted); font-size:.73rem; }
.forum-admin-subcategory__body { padding:16px; border-top:1px solid var(--forum-border); background:#f9fafc; }
.forum-admin-subcategory__body > .forum-admin-form { margin-bottom:13px; }
.forum-admin-board-list { display:grid; gap:8px; margin-left:22px; }
.forum-admin-board { overflow:hidden; border:1px solid var(--forum-border); border-radius:12px; background:#fff; }
.forum-admin-board > summary { padding:12px 14px; }
.forum-admin-board > .forum-admin-form { padding:15px; border-top:1px solid var(--forum-border); background:#fbfcfe; }
.forum-admin-move {
    display:flex;
    align-items:center;
    gap:9px;
    margin:7px 0;
    padding:8px 10px;
    color:#53617a;
    background:#f8f9fc;
    border:1px solid #e4e8f0;
    border-radius:11px;
    font-size:.72rem;
}
.forum-admin-move > span { min-width:0; margin-right:auto; font-weight:800; }
.forum-admin-move > span small { color:var(--forum-muted); font-weight:600; }
.forum-admin-move select,
.forum-admin-field select {
    min-height:36px;
    padding:7px 28px 7px 10px;
    color:var(--forum-ink);
    background:#fff;
    border:1px solid #cfd8e8;
    border-radius:9px;
    font:inherit;
}
.forum-admin-move .btn { min-height:34px; padding:7px 11px; font-size:.72rem; }

@media (max-width:1050px) {
    .forum-admin-hierarchy { grid-template-columns:1fr 1fr; }
    .forum-admin-hierarchy > i { display:none; }
    .forum-admin-form { grid-template-columns:1fr 1fr 100px; }
    .forum-admin-form .forum-admin-field--wide { grid-column:span 2; }
    .forum-admin-form > .btn { justify-self:start; }
    .forum-admin-category__meta > span { display:none; }
}

@media (max-width:720px) {
    .forum-admin-page { gap:13px; }
    .forum-admin-hero { align-items:flex-start; padding:22px 20px; flex-direction:column; }
    .forum-admin-hero .btn { width:100%; }
    .forum-admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .forum-admin-hierarchy { grid-template-columns:1fr; }
    .forum-admin-stats article { min-height:72px; padding:13px; }
    .forum-admin-create > summary,
    .forum-admin-structure { padding:17px; }
    .forum-admin-form,
    .forum-admin-form .forum-admin-field--wide { grid-template-columns:1fr; grid-column:auto; }
    .forum-admin-form > .forum-admin-actions { grid-column:auto; justify-content:flex-start; }
    .forum-admin-form .btn,
    .forum-admin-actions { width:100%; }
    .forum-admin-actions .btn { flex:1; }
    .forum-admin-category > summary { align-items:flex-start; }
    .forum-admin-category__meta { align-self:center; }
    .forum-admin-category__meta .forum-admin-status { display:none; }
    .forum-admin-category__copy small { white-space:normal; }
    .forum-admin-category__body { padding:12px; }
    .forum-admin-nested,
    .forum-admin-board-list { margin-left:0; }
    .forum-admin-move { align-items:stretch; flex-direction:column; }
    .forum-admin-move select,
    .forum-admin-move .btn { width:100%; }
}

/* Terms of service */
.legal-page {
    width:min(1160px,100%);
    margin:0 auto;
    display:grid;
    gap:24px;
}

.legal-hero {
    min-height:220px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    padding:clamp(28px,5vw,56px);
    border:1px solid rgba(226,230,239,.9);
    border-radius:28px;
    background:linear-gradient(135deg,#fff 0%,#fff7fb 55%,#f3f1ff 100%);
    box-shadow:var(--ui-shadow-md);
    overflow:hidden;
}

.legal-hero__copy { max-width:720px; }
.legal-eyebrow {
    display:inline-flex;
    margin-bottom:12px;
    color:var(--ui-brand-strong);
    font-size:13px;
    font-weight:800;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.legal-hero h1 { margin:0; font-size:clamp(34px,5vw,54px); line-height:1.08; }
.legal-hero p { max-width:640px; margin:16px 0 0; color:var(--ui-muted); font-size:18px; }
.legal-hero__icon {
    width:112px;
    height:112px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    border-radius:34px;
    background:linear-gradient(135deg,var(--ui-brand),var(--ui-accent));
    color:#fff;
    box-shadow:0 20px 38px rgba(160,73,165,.22);
    font-family:Georgia,serif;
    font-size:58px;
}

.legal-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; align-items:start; }
.legal-document,
.legal-meta-card,
.legal-note-card,
.legal-empty {
    border:1px solid var(--ui-line);
    border-radius:22px;
    background:#fff;
    box-shadow:var(--ui-shadow-sm);
}
.legal-document { padding:clamp(24px,4vw,44px); }
.legal-document__head { display:flex; justify-content:space-between; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--ui-line); }
.legal-document__head span { color:var(--ui-muted); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.legal-document__head h2 { margin:5px 0 0; font-size:24px; }
.legal-status { align-self:flex-start; display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border-radius:999px; background:#eefbf4; color:#18794e !important; white-space:nowrap; }
.legal-status i { width:8px; height:8px; border-radius:50%; background:#28a66a; }
.legal-content { padding-top:28px; color:#3e4a62; font-size:16px; line-height:1.65; overflow-wrap:anywhere; }
.legal-content h3 { margin:26px 0 8px; color:var(--ui-ink); font-size:18px; line-height:1.35; letter-spacing:-.01em; }
.legal-content h3:first-child { margin-top:0; }
.legal-content p { margin:0 0 16px; }
.legal-content p:last-child { margin-bottom:0; }
.legal-sidebar { display:grid; gap:18px; position:sticky; top:20px; }
.legal-meta-card,
.legal-note-card { padding:22px; }
.legal-meta-card h2,
.legal-note-card h2 { margin:0; font-size:18px; }
.legal-meta-card dl { margin:18px 0 0; display:grid; gap:0; }
.legal-meta-card dl div { display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-top:1px solid var(--ui-line); }
.legal-meta-card dt { color:var(--ui-muted); }
.legal-meta-card dd { margin:0; color:var(--ui-ink); font-weight:750; text-align:right; }
.legal-note-card { display:flex; gap:14px; background:linear-gradient(135deg,#fff7fb,#f6f4ff); }
.legal-note-card__icon { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; border-radius:14px; background:rgba(232,70,145,.12); color:var(--ui-brand-strong); font-size:22px; }
.legal-note-card p { margin:7px 0 0; color:var(--ui-muted); font-size:14px; line-height:1.6; }
.legal-empty { padding:clamp(36px,7vw,72px); text-align:center; }
.legal-empty > span { width:72px; height:72px; margin:0 auto 18px; display:grid; place-items:center; border-radius:22px; background:linear-gradient(135deg,rgba(232,70,145,.14),rgba(98,103,217,.13)); color:var(--ui-brand-strong); font-size:34px; font-weight:800; }
.legal-empty h1 { margin:0; }
.legal-empty p { margin:12px auto 0; color:var(--ui-muted); }

@media (max-width:900px) {
    .legal-layout { grid-template-columns:1fr; }
    .legal-sidebar { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:620px) {
    .legal-hero { min-height:0; padding:26px 22px; border-radius:22px; }
    .legal-hero__icon { display:none; }
    .legal-hero p { font-size:16px; }
    .legal-sidebar { grid-template-columns:1fr; }
    .legal-document__head { display:grid; }
    .legal-status { justify-self:start; }
}

/* Clear, editorial home overview */
.home-overview { width:min(1180px,100%); margin:0 auto; display:grid; gap:24px; }
.home-overview__hero { min-height:520px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr); align-items:center; gap:clamp(30px,5vw,72px); padding:clamp(34px,6vw,72px); border:1px solid var(--ui-line); border-radius:30px; background:linear-gradient(135deg,#fff 0%,#fff9fc 54%,#f3f1ff 100%); box-shadow:var(--ui-shadow-md); overflow:hidden; }
.home-overview__hero-copy { display:grid; justify-items:start; gap:20px; }
.home-overview__eyebrow { display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border-radius:999px; background:rgba(232,70,145,.09); color:var(--ui-brand-strong); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.home-overview__eyebrow i { width:8px; height:8px; border-radius:50%; background:var(--ui-brand); box-shadow:0 0 0 4px rgba(232,70,145,.12); }
.home-overview__hero h1 { max-width:720px; margin:0; font-size:clamp(42px,5.4vw,68px); line-height:1.02; letter-spacing:-.045em; }
.home-overview__hero-copy > p { max-width:650px; margin:0; color:var(--ui-muted); font-size:18px; line-height:1.65; }
.home-overview__actions { display:flex; gap:12px; flex-wrap:wrap; }
.home-overview__assurances { display:flex; gap:18px; flex-wrap:wrap; color:#526078; font-size:13px; font-weight:650; }
.home-overview__assurances span::first-letter { color:var(--ui-brand); }
.home-overview__preview { position:relative; padding:24px; border:1px solid rgba(255,255,255,.8); border-radius:26px; background:rgba(255,255,255,.78); box-shadow:0 28px 60px rgba(75,51,112,.15); transform:rotate(2deg); backdrop-filter:blur(10px); }
.home-overview__preview::before { content:""; position:absolute; inset:-55px -45px auto auto; width:150px; height:150px; border-radius:50%; background:rgba(232,70,145,.12); z-index:-1; }
.home-overview__preview-top { display:flex; align-items:center; gap:10px; padding-bottom:16px; border-bottom:1px solid var(--ui-line); }
.home-overview__preview-top > span { width:34px; height:34px; border-radius:12px; background:linear-gradient(135deg,var(--ui-brand),var(--ui-accent)); }
.home-overview__preview-top strong { flex:1; font-size:15px; }
.home-overview__preview-top i { color:#9aa3b4; font-style:normal; letter-spacing:2px; }
.home-overview__preview-date { margin-top:24px; color:var(--ui-brand-strong); font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
.home-overview__preview-title { margin-top:8px; font-size:25px; font-weight:800; letter-spacing:-.025em; }
.home-overview__preview-lines { display:grid; gap:10px; margin-top:22px; }
.home-overview__preview-lines i { height:8px; border-radius:10px; background:#e9eaf1; }
.home-overview__preview-lines i:nth-child(2) { width:88%; }.home-overview__preview-lines i:nth-child(3) { width:94%; }.home-overview__preview-lines i:nth-child(4) { width:62%; }
.home-overview__preview-lock { display:flex; align-items:center; gap:8px; margin-top:26px; padding:12px 14px; border-radius:13px; background:#f8f6fc; color:#68758d; font-size:13px; font-weight:700; }
.home-overview__features { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border:1px solid var(--ui-line); border-radius:20px; background:#fff; box-shadow:var(--ui-shadow-sm); overflow:hidden; }
.home-overview__features div { min-height:82px; display:flex; align-items:center; justify-content:center; gap:10px; padding:16px; border-right:1px solid var(--ui-line); color:#435069; font-size:14px; font-weight:700; text-align:center; }
.home-overview__features div:last-child { border-right:0; }
.home-overview__features span { color:var(--ui-brand); font-size:19px; }
.home-overview__section { display:grid; gap:28px; padding:clamp(28px,4vw,48px); border:1px solid var(--ui-line); border-radius:26px; background:#fff; box-shadow:var(--ui-shadow-sm); }
.home-overview__section-head { max-width:740px; display:grid; gap:8px; }
.home-overview__section-head > span,.home-overview__cta span { color:var(--ui-brand-strong); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.home-overview__section-head h2,.home-overview__cta h2 { margin:0; font-size:clamp(29px,3.5vw,42px); line-height:1.12; }
.home-overview__section-head p { margin:4px 0 0; color:var(--ui-muted); font-size:16px; }
.home-overview__summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.home-overview__summary-grid article { min-height:185px; display:flex; flex-direction:column; justify-content:space-between; gap:24px; padding:22px; border:1px solid var(--ui-line); border-radius:18px; background:var(--ui-surface-soft); }
.home-overview__summary-grid span { color:var(--ui-brand); font-size:13px; font-weight:850; }
.home-overview__summary-grid p { margin:0; color:#48556d; font-size:15px; line-height:1.6; }
.home-overview__section--trust { background:linear-gradient(145deg,#fff,#fcf9fd); }
.home-overview__trust-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.home-overview__trust-grid article { display:flex; gap:16px; padding:18px; border-radius:17px; border:1px solid var(--ui-line); background:rgba(255,255,255,.85); }
.home-overview__trust-icon { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; border-radius:13px; background:rgba(232,70,145,.10); color:var(--ui-brand-strong); font-size:18px; }
.home-overview__trust-grid h3 { margin:0; font-size:17px; }
.home-overview__trust-grid p { margin:5px 0 0; color:var(--ui-muted); font-size:14px; line-height:1.55; }
.home-overview__cta { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:clamp(28px,4vw,46px); border-radius:26px; background:linear-gradient(135deg,#292e50,#454677 52%,#7e5594); color:#fff; box-shadow:var(--ui-shadow-md); }
.home-overview__cta h2 { margin-top:5px; color:#fff; }.home-overview__cta span { color:#ffc7e1; }.home-overview__cta .btn { flex:0 0 auto; }

@media (max-width:1050px) { .home-overview__hero { grid-template-columns:1fr; min-height:0; }.home-overview__preview { max-width:560px; transform:none; }.home-overview__features { grid-template-columns:repeat(3,1fr); }.home-overview__features div { border-bottom:1px solid var(--ui-line); }.home-overview__summary-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:700px) { .home-overview { gap:16px; }.home-overview__hero { padding:28px 22px; border-radius:22px; }.home-overview__hero h1 { font-size:40px; }.home-overview__preview { display:none; }.home-overview__actions { width:100%; flex-direction:column; }.home-overview__actions .btn { width:100%; }.home-overview__features { grid-template-columns:1fr 1fr; }.home-overview__features div { min-height:68px; border-right:1px solid var(--ui-line); }.home-overview__summary-grid,.home-overview__trust-grid { grid-template-columns:1fr; }.home-overview__summary-grid article { min-height:0; }.home-overview__cta { align-items:flex-start; flex-direction:column; }.home-overview__cta .btn { width:100%; }.home-overview__section { padding:24px 20px; border-radius:22px; } }

/* Sticky page footer: bottom aligned on short pages, after content on long pages. */
.main-wrapper {
    min-height:100vh;
    display:flex;
    padding-bottom:20px;
}

.main-content {
    width:100%;
    min-height:calc(100vh - 40px);
    display:flex;
    flex-direction:column;
}

.app-footer {
    position:static;
    inset:auto;
    width:100%;
    margin-top:auto;
    padding:32px 0 0;
    pointer-events:auto;
    background:transparent;
}

.app-footer__inner {
    width:100%;
    min-height:58px;
    background:var(--ui-chrome-color);
    border:1px solid rgba(255,255,255,.28);
    border-radius:18px;
}

@media (max-width:860px) {
    .main-wrapper {
        min-height:100vh;
        padding:76px 14px 14px;
    }

    .main-content {
        min-height:calc(100vh - 90px);
    }

    .app-footer {
        width:100%;
        padding:24px 0 0;
    }
}

