:root{
    --kyvia-bg:#050505;
    --kyvia-panel:#0e0e10;
    --kyvia-surface:#171719;
    --kyvia-surface-raised:#1d1d20;
    --kyvia-border:#2b2b2f;
    --kyvia-border-soft:#202024;
    --kyvia-text:#f6f6f7;
    --kyvia-muted:#9a9aa1;
    --kyvia-danger:#ef6a78;
    --kyvia-radius-sm:14px;
    --kyvia-radius:22px;
    --kyvia-radius-lg:30px;
    --kyvia-shadow:0 24px 80px rgba(0,0,0,.48);
    --kyvia-safe-top:env(safe-area-inset-top,0px);
    --kyvia-safe-bottom:env(safe-area-inset-bottom,0px);
}

html.kyvia-premium{
    background:var(--kyvia-bg);
    color-scheme:dark;
    -webkit-tap-highlight-color:transparent;
}

html.kyvia-premium body{
    background:var(--kyvia-bg);
    color:var(--kyvia-text);
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
}

html.kyvia-premium button,
html.kyvia-premium a,
html.kyvia-premium input,
html.kyvia-premium select,
html.kyvia-premium textarea{
    font:inherit;
}

html.kyvia-premium button,
html.kyvia-premium [role="button"],
html.kyvia-premium a{
    touch-action:manipulation;
}

html.kyvia-premium :where(button,a,input,select,textarea,[tabindex]):focus-visible{
    outline:2px solid rgba(255,255,255,.92)!important;
    outline-offset:3px!important;
}

html.kyvia-premium :where(button,input,select,textarea):disabled{
    cursor:not-allowed;
    opacity:.55;
}

/* Um único sistema de superfícies e bordas em toda a experiência. */
html.kyvia-premium :where(
    .settings-hub-modal,
    .profile-settings-modal,
    .regional-settings-modal,
    .social-modal,
    .create-post-modal,
    .post-preview-modal,
    .instant-modal
){
    background:var(--kyvia-panel)!important;
    border-color:var(--kyvia-border)!important;
    box-shadow:var(--kyvia-shadow)!important;
}

html.kyvia-premium :where(
    .settings-hub-row,
    .regional-auto-row,
    .regional-current-card,
    .regional-field select,
    .regional-picker-trigger,
    .social-feed-filter-shell,
    .social-feed-card,
    .profile-settings-card
){
    border-color:var(--kyvia-border-soft)!important;
}

html.kyvia-premium :where(.profile-settings-head,.social-modal-head,.regional-settings-head){
    padding-top:max(18px,var(--kyvia-safe-top));
}

html.kyvia-premium :where(
    .profile-settings-close,
    .settings-hub-back,
    .regional-settings-close,
    .regional-settings-back,
    .social-modal-close
){
    min-width:44px;
    min-height:44px;
    border-radius:50%!important;
}

/* Feed: carregamento sem flash branco e paginação progressiva. */
.social-feed-loading{
    width:min(100%,900px);
    margin:0 auto;
    padding:12px 0 calc(96px + var(--kyvia-safe-bottom));
    color:var(--kyvia-muted);
    text-align:center;
}

.social-feed-loading:has(.kyvia-feed-skeleton){
    display:grid;
    gap:18px;
}

.kyvia-feed-skeleton{
    position:relative;
    display:block;
    width:100%;
    min-height:clamp(290px,48vw,520px);
    overflow:hidden;
    border:1px solid var(--kyvia-border-soft);
    border-radius:var(--kyvia-radius);
    background:
        radial-gradient(circle at 34px 34px,#252529 0 20px,transparent 21px),
        linear-gradient(#252529 0 0) 68px 20px/34% 13px no-repeat,
        linear-gradient(#1b1b1e 0 0) 68px 43px/22% 10px no-repeat,
        linear-gradient(135deg,#111114,#19191c);
}

.kyvia-feed-skeleton::after{
    content:"";
    position:absolute;
    inset:0;
    transform:translateX(-115%);
    background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.07) 48%,transparent 66%);
    animation:kyviaSkeleton 1.35s ease-in-out infinite;
}

@keyframes kyviaSkeleton{to{transform:translateX(115%)}}

.social-feed-load-more{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    width:min(100%,440px);
    min-height:52px;
    margin:14px auto calc(106px + var(--kyvia-safe-bottom));
    padding:0 22px;
    color:var(--kyvia-text);
    background:var(--kyvia-surface)!important;
    border:1px solid var(--kyvia-border)!important;
    border-radius:999px!important;
}

.social-feed-load-more span{
    width:17px;
    height:17px;
    border:2px solid #5d5d64;
    border-top-color:#fff;
    border-radius:50%;
    animation:kyviaSpin .85s linear infinite;
}

@keyframes kyviaSpin{to{transform:rotate(360deg)}}

/* Menus sociais com ações claras e áreas de toque confortáveis. */
.social-feed-post-menu{
    width:min(290px,calc(100vw - 34px))!important;
    max-height:min(420px,70vh);
    overflow:auto;
    padding:8px!important;
    background:rgba(20,20,22,.98)!important;
    border:1px solid var(--kyvia-border)!important;
    border-radius:18px!important;
    box-shadow:0 22px 55px rgba(0,0,0,.5)!important;
    backdrop-filter:blur(18px);
}

.social-feed-post-menu button{
    min-height:46px!important;
    border-radius:12px!important;
}

.social-feed-post-menu button[data-post-action="block"],
.social-feed-post-menu button[data-post-action="delete"]{
    color:var(--kyvia-danger)!important;
}

/* Interesses editáveis e conexão no perfil público. */
.interests-wrap{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.interest-chip{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 13px;
    color:var(--kyvia-text);
    background:var(--kyvia-surface)!important;
    border:1px solid var(--kyvia-border)!important;
    border-radius:999px!important;
}

button.interest-chip{
    cursor:pointer;
}

.interest-chip-remove{
    color:var(--kyvia-muted);
    font-size:17px;
    line-height:1;
}

.interest-chip i{
    color:var(--kyvia-muted);
    font-size:17px;
    font-style:normal;
    line-height:1;
}

.public-profile-friend-action{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin:18px 0 22px;
}

.public-profile-connect-btn{
    min-height:46px;
    padding:0 16px;
    color:var(--kyvia-text)!important;
    background:var(--kyvia-surface)!important;
    border:1px solid var(--kyvia-border)!important;
    border-radius:14px!important;
    font-weight:800;
}

.public-profile-connect-btn.is-primary{
    color:#080808!important;
    background:#f3f3f4!important;
    border-color:#f3f3f4!important;
}

.public-profile-connect-btn.is-connected{
    background:#242427!important;
}

.public-profile-empty{
    color:var(--kyvia-muted);
}

/* Privacidade social. */
.social-privacy-modal{
    width:min(100%,680px)!important;
    max-height:min(820px,calc(100dvh - 24px))!important;
    overflow:hidden;
}

.social-privacy-body{
    overflow:auto;
    overscroll-behavior:contain;
    padding:24px clamp(18px,5vw,34px) calc(30px + var(--kyvia-safe-bottom));
}

.social-privacy-section + .social-privacy-section{
    margin-top:34px;
}

.social-privacy-section .settings-section-title{
    display:grid;
    gap:5px;
    margin-bottom:14px;
}

.social-privacy-section .settings-section-title strong{
    font-size:18px;
}

.social-privacy-section .settings-section-title span{
    color:var(--kyvia-muted);
    line-height:1.45;
}

.social-privacy-list{
    display:grid;
    gap:9px;
}

.social-privacy-row{
    display:grid;
    grid-template-columns:48px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    min-height:72px;
    padding:11px 12px;
    background:var(--kyvia-surface);
    border:1px solid var(--kyvia-border-soft);
    border-radius:17px;
}

.social-privacy-avatar{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:50%;
    background:#26262a;
    font-weight:800;
}

.social-privacy-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.social-privacy-copy{
    min-width:0;
    display:grid;
    gap:3px;
}

.social-privacy-copy strong,
.social-privacy-copy span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.social-privacy-copy span{color:var(--kyvia-muted)}

.social-privacy-restore{
    min-height:40px;
    padding:0 14px;
    color:#080808;
    background:#f4f4f5;
    border:0;
    border-radius:999px;
    font-weight:850;
}

.social-privacy-state{
    padding:22px 12px;
    color:var(--kyvia-muted);
    text-align:center;
    border:1px dashed var(--kyvia-border);
    border-radius:16px;
}

/* Confirmações discretas, sem alertas visuais agressivos. */
#kyviaToastRegion{
    position:fixed;
    left:50%;
    bottom:calc(94px + var(--kyvia-safe-bottom));
    z-index:2147483646;
    width:min(92vw,430px);
    display:grid;
    gap:9px;
    pointer-events:none;
    transform:translateX(-50%);
}

.kyvia-toast{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:50px;
    padding:12px 16px;
    color:var(--kyvia-text);
    background:rgba(29,29,32,.97);
    border:1px solid var(--kyvia-border);
    border-radius:16px;
    box-shadow:0 16px 44px rgba(0,0,0,.46);
    backdrop-filter:blur(18px);
    animation:kyviaToastIn .22s ease both;
}

.kyvia-toast::before{
    content:"";
    width:8px;
    height:8px;
    flex:0 0 auto;
    border-radius:50%;
    background:#f1f1f2;
}

.kyvia-toast[data-tone="error"]::before{background:var(--kyvia-danger)}
.kyvia-toast.is-leaving{animation:kyviaToastOut .2s ease both}

@keyframes kyviaToastIn{from{opacity:0;transform:translateY(10px) scale(.98)}}
@keyframes kyviaToastOut{to{opacity:0;transform:translateY(8px) scale(.98)}}

/* Botões principais seguem a identidade preto e branco da KYVIA. */
html.kyvia-premium :where(
    .regional-submit,
    .post-submit,
    .create-post-submit,
    .auth-submit,
    .profile-moments-save
){
    color:#080808!important;
    background:#f4f4f5!important;
    border-color:#f4f4f5!important;
    box-shadow:none!important;
}

@media(max-width:720px){
    .social-privacy-overlay.open{
        align-items:stretch!important;
        padding:0!important;
    }

    .social-privacy-modal{
        width:100%!important;
        height:100dvh!important;
        max-height:none!important;
        border:0!important;
        border-radius:0!important;
    }

    .social-privacy-row{
        grid-template-columns:44px minmax(0,1fr) auto;
        padding-inline:10px;
    }

    .social-privacy-avatar{
        width:44px;
        height:44px;
    }

    .social-privacy-restore{
        padding-inline:12px;
        font-size:13px;
    }

    .public-profile-friend-action{
        grid-template-columns:1fr;
    }
}

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