:root{
  --paper:#F2F0E6;--paper-raised:#FBFAF4;--ink:#211E19;--ink-soft:#58544A;--ink-faint:#736D5F;
  --rule:rgba(33,30,25,0.14);--accent:#7A2530;--accent-strong:#5C1B24;--accent-soft:rgba(122,37,48,0.08);
  --ok:#2F6E49;--ok-soft:rgba(47,110,73,0.10);--warn:#7D5F19;--warn-soft:rgba(138,106,30,0.12);
  --disc-filosofia:#5C6B49;--disc-teologia:#A2792C;--disc-economia:#3C5E78;--disc-psicologia:#7A4F72;--disc-sociologia:#2F6E63;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme='light']){
    --paper:#17150F;--paper-raised:#1F1C15;--ink:#EDE8DA;--ink-soft:#B9B2A0;--ink-faint:#93897A;
    --rule:rgba(237,232,218,0.15);--accent:#DE9296;--accent-strong:#F0B4B7;--accent-soft:rgba(222,146,150,0.14);
    --ok:#7FCB9B;--ok-soft:rgba(127,203,155,0.12);--warn:#E0BB63;--warn-soft:rgba(224,187,99,0.14);
    --disc-filosofia:#9CB07F;--disc-teologia:#D9AE57;--disc-economia:#84AECD;--disc-psicologia:#CB93C2;--disc-sociologia:#68C0AD;
  }
}
:root[data-theme='dark']{
  --paper:#17150F;--paper-raised:#1F1C15;--ink:#EDE8DA;--ink-soft:#B9B2A0;--ink-faint:#93897A;
  --rule:rgba(237,232,218,0.15);--accent:#DE9296;--accent-strong:#F0B4B7;--accent-soft:rgba(222,146,150,0.14);
  --ok:#7FCB9B;--ok-soft:rgba(127,203,155,0.12);--warn:#E0BB63;--warn-soft:rgba(224,187,99,0.14);
  --disc-filosofia:#9CB07F;--disc-teologia:#D9AE57;--disc-economia:#84AECD;--disc-psicologia:#CB93C2;--disc-sociologia:#68C0AD;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Newsreader',Georgia,serif;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .2s ease,color .2s ease}
@media(prefers-reduced-motion:reduce){body{transition:none}}
::selection{background:var(--accent-soft);color:var(--accent-strong)}
.container{width:100%;max-width:840px;margin:0 auto;padding:0 24px}
@media(max-width:640px){.container{padding:0 18px}}
a{color:inherit}
button,input,select,textarea{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.view-enter{animation:fadeIn .4s ease both}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.view-enter{animation:none}}

.masthead{position:relative;padding:40px 0 20px;text-align:center;border-bottom:1px solid var(--rule)}
.masthead__mark{font-family:'Fraunces',serif;font-weight:600;font-style:italic;font-size:clamp(2rem,5vw,3rem);letter-spacing:-0.01em;margin:0}
.masthead__mark a{text-decoration:none;color:var(--ink)}
.masthead__tag{font-family:'Archivo',sans-serif;font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px}
.masthead__corner{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:10px}
.masthead__eu{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--rule);border-radius:999px;background:var(--paper-raised);color:var(--ink-soft);font-size:1.05rem;line-height:1;text-decoration:none;transition:border-color .15s,color .15s;flex:none}
.masthead__eu:hover{border-color:var(--accent);color:var(--accent)}
.theme-toggle{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--rule);border-radius:999px;background:var(--paper-raised);color:var(--ink-soft);font-size:1.05rem;line-height:1;cursor:pointer;transition:border-color .15s,color .15s;flex:none}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:640px){.masthead{padding-top:48px}.masthead__corner{top:10px;right:10px;gap:7px}.theme-toggle,.masthead__eu{width:34px;height:34px;font-size:0.95rem}}
@media(max-width:340px){.theme-toggle,.masthead__eu{width:30px;height:30px;font-size:0.85rem}.masthead__corner{gap:5px;right:8px}}

.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 16px;padding:14px 0;font-family:'Archivo',sans-serif;font-size:0.82rem}
.nav a,.nav button.linklike{color:var(--ink-soft);text-decoration:none;background:none;border:none;padding:2px 0;cursor:pointer;font:inherit}
.nav a:hover,.nav button.linklike:hover{color:var(--accent)}
.nav__sep{color:var(--rule)}
.nav__user{color:var(--ink-faint)}

.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:16px 0}
.toolbar.simple{justify-content:space-between}
.pills{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:200px}
.pill{font-family:'Archivo',sans-serif;font-size:0.76rem;letter-spacing:0.02em;padding:6px 13px;border-radius:999px;border:1px solid var(--rule);background:transparent;color:var(--ink-soft);cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}
.pill[data-active='true']{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pill:not([data-active='true']):hover{border-color:var(--accent);color:var(--accent)}
.toolbar__right{display:flex;align-items:center;gap:10px}
.search{font-family:'Archivo',sans-serif;font-size:0.82rem;padding:7px 12px;border-radius:8px;border:1px solid var(--rule);background:var(--paper-raised);color:var(--ink);width:170px;max-width:40vw}
.search::placeholder{color:var(--ink-faint)}
.btn{display:inline-block;font-family:'Archivo',sans-serif;font-size:0.78rem;font-weight:600;letter-spacing:0.02em;padding:8px 16px;border-radius:8px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap;text-decoration:none;transition:opacity .15s}
.btn:hover{opacity:0.72}
.btn:disabled{opacity:0.45;cursor:not-allowed}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#FBF3F1}
.btn-danger{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn-sm{padding:5px 11px;font-size:0.72rem}
.link{font-family:'Archivo',sans-serif;font-size:0.8rem;color:var(--ink-soft);text-decoration:none;background:none;border:none;cursor:pointer}
.link:hover{color:var(--accent)}

.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:7px;flex:none}
.dot--filosofia{background:var(--disc-filosofia)}
.dot--teologia{background:var(--disc-teologia)}
.dot--economia{background:var(--disc-economia)}
.dot--psicologia{background:var(--disc-psicologia)}
.dot--sociologia{background:var(--disc-sociologia)}
.tagrow{font-family:'Archivo',sans-serif;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.11em;color:var(--ink-soft);display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px}

.badge{font-family:'Archivo',sans-serif;font-size:0.66rem;letter-spacing:0.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-weight:600}
.badge--draft{background:var(--rule);color:var(--ink-soft)}
.badge--pending{background:var(--warn-soft);color:var(--warn)}
.badge--published{background:var(--ok-soft);color:var(--ok)}
.badge--rejected{background:var(--accent-soft);color:var(--accent)}

.section-heading{font-family:'Archivo',sans-serif;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.14em;color:var(--ink-faint);margin:34px 0 4px;padding-top:18px;border-top:1px solid var(--rule)}
.section-heading:first-child{border-top:none;padding-top:0;margin-top:26px}

.lead{padding:30px 0 8px}
.lead__title{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.9rem,4.6vw,3rem);line-height:1.08;margin:12px 0 16px;text-wrap:balance}
.lead__title a{text-decoration:none}
.lead__title a:hover{color:var(--accent)}
.lead__abstract{font-size:1.1rem;color:var(--ink-soft);max-width:60ch;margin:0 0 16px}
.lead__byline{font-family:'Archivo',sans-serif;font-size:0.8rem;color:var(--ink-faint)}
.lead__link{font-family:'Archivo',sans-serif;font-size:0.82rem;font-weight:600;color:var(--accent);text-decoration:none;display:inline-block;margin-top:14px}
.lead__link:hover{text-decoration:underline}

.row{display:block;padding:22px 0;border-bottom:1px solid var(--rule)}
.row__title{font-family:'Fraunces',serif;font-weight:500;font-size:1.28rem;margin:8px 0 6px;line-height:1.25;text-wrap:balance}
.row__title a{text-decoration:none}
.row__title a:hover{color:var(--accent)}
.row__sub{font-family:'Archivo',sans-serif;font-size:0.79rem;color:var(--ink-faint);display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.row__abstract{color:var(--ink-soft);font-size:0.98rem;margin:2px 0 0;max-width:62ch}
.row__actions{margin-top:10px;display:flex;gap:10px;flex-wrap:wrap}

.empty{padding:50px 0;color:var(--ink-soft);font-family:'Archivo',sans-serif;font-size:0.92rem;text-align:center}

.article{padding:36px 0 60px;max-width:680px;margin:0 auto}
.article__title{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(2rem,5.2vw,3rem);line-height:1.08;margin:16px 0 20px;text-wrap:balance}
.article__byline{display:flex;align-items:center;gap:10px;font-family:'Archivo',sans-serif;font-size:0.85rem;color:var(--ink-faint);padding-bottom:26px;border-bottom:1px solid var(--rule);margin-bottom:30px}
.article__byline .byline-avatar{width:40px;height:40px;margin-right:0;flex:none}
.article__abstract{font-style:italic;color:var(--ink-soft);font-size:1.16rem;margin-bottom:30px;max-width:60ch}
.article__body p{font-size:1.14rem;line-height:1.78;margin:0 0 22px;text-align:justify;text-align-last:left;-webkit-hyphens:auto;hyphens:auto}
.article__body p:first-of-type::first-letter{font-family:'Fraunces',serif;font-weight:600;font-size:3.3em;float:left;line-height:0.82;padding:6px 9px 0 0;color:var(--accent)}

.comments{max-width:680px;margin:0 auto 60px;padding-top:36px;border-top:1px solid var(--rule)}
.comments__title{font-family:'Fraunces',serif;font-weight:600;font-size:1.4rem;margin:0 0 20px}
.comment-form{margin-bottom:32px}
.comment-form__input{font-family:'Newsreader',Georgia,serif;font-size:1rem;line-height:1.6;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;background:var(--paper-raised);color:var(--ink);width:100%;min-height:88px;resize:vertical;display:block}
.comment-form .form__actions{margin-top:10px}
.comment-list{display:flex;flex-direction:column;gap:22px}
.comment{padding-bottom:22px;border-bottom:1px solid var(--rule)}
.comment:last-child{border-bottom:none;padding-bottom:0}
.comment__head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.comment__head .byline-avatar{width:28px;height:28px;margin-right:0}
.comment__author{font-family:'Archivo',sans-serif;font-size:0.85rem;font-weight:600;color:var(--ink)}
.comment__date{font-family:'Archivo',sans-serif;font-size:0.78rem;color:var(--ink-faint)}
.comment__text{margin:0 0 6px;line-height:1.65;white-space:pre-wrap;overflow-wrap:break-word}
.comment__actions{display:flex;gap:16px}
.comment__actions .link{font-size:0.76rem}
.comment-replies{display:flex;flex-direction:column;gap:18px;margin:18px 0 0 26px;padding-left:20px;border-left:2px solid var(--rule)}
.comment-form--reply{margin:14px 0 0 26px;padding-left:20px;border-left:2px solid var(--rule)}
.comment-form--reply .comment-form__input{min-height:64px}
/* Em conversas muito profundas, cada nível indenta menos do que o anterior
   — evita que a coluna de texto fique demasiado estreita em ecrãs pequenos. */
.comment-replies .comment-replies{margin-left:18px;padding-left:14px}
.comment-replies .comment-replies .comment-replies{margin-left:12px;padding-left:10px}
.comment-replies .comment-replies .comment-form--reply,
.comment-replies .comment-form--reply{margin-left:18px;padding-left:14px}

.banner{font-family:'Archivo',sans-serif;font-size:0.83rem;padding:12px 16px;border-radius:8px;background:var(--accent-soft);color:var(--accent-strong);margin:20px 0 6px;max-width:680px;margin-left:auto;margin-right:auto}
.banner.top{margin-top:24px}

.pwa-banner{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));z-index:1000;display:flex;align-items:center;gap:12px;max-width:520px;margin:0 auto;padding:14px 16px;border-radius:12px;background:var(--paper-raised);border:1px solid var(--rule);box-shadow:0 8px 28px rgba(0,0,0,0.22);font-family:'Archivo',sans-serif;animation:pwa-banner-in .25s ease-out}
@keyframes pwa-banner-in{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
.pwa-banner__icon{font-size:1.4rem;line-height:1;flex:none}
.pwa-banner__text{flex:1;font-size:0.86rem;line-height:1.45;color:var(--ink)}
.pwa-banner__btn{flex:none;font-size:0.82rem;padding:8px 14px;white-space:nowrap}
.pwa-banner__close{flex:none;width:26px;height:26px;border:none;background:transparent;color:var(--ink-faint);font-size:0.95rem;cursor:pointer;border-radius:50%;line-height:1}
.pwa-banner__close:hover{color:var(--accent);background:var(--accent-soft)}
@media(prefers-reduced-motion:reduce){.pwa-banner{animation:none}}
@media(max-width:480px){.pwa-banner{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom, 0px));padding:12px;gap:8px}.pwa-banner__text{font-size:0.8rem}}
.banner.ok{background:var(--ok-soft);color:var(--ok)}
.banner.warn{background:var(--warn-soft);color:var(--warn)}

.form{max-width:640px;margin:0 auto;padding:38px 0 64px}
.form h2{font-family:'Fraunces',serif;font-weight:600;font-size:2rem;margin:14px 0 6px}
.form__hint{font-family:'Archivo',sans-serif;font-size:0.85rem;color:var(--ink-soft);margin-bottom:30px;line-height:1.6}
.field{margin-bottom:20px;display:flex;flex-direction:column;gap:6px}
.field label{font-family:'Archivo',sans-serif;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--ink-soft)}
.field input,.field select,.field textarea{font-family:'Newsreader',Georgia,serif;font-size:1rem;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;background:var(--paper-raised);color:var(--ink);width:100%}
.field select{font-family:'Archivo',sans-serif;font-size:0.92rem}
.field textarea{min-height:96px;resize:vertical;line-height:1.6}
.field textarea#f-content{min-height:200px}
.field-row{display:flex;gap:16px;flex-wrap:wrap}
.field-row>.field{flex:1;min-width:180px}
.form__actions{display:flex;align-items:center;gap:16px;margin-top:28px;flex-wrap:wrap}
.form__error{font-family:'Archivo',sans-serif;font-size:0.82rem;color:var(--accent);margin-bottom:16px;display:none}
.form__error.show{display:block}
.field input[type=file]{font-family:'Archivo',sans-serif;font-size:0.84rem;color:var(--ink-soft)}
.password-field{position:relative;display:flex}
.password-field input{padding-right:42px}
.password-toggle{position:absolute;right:2px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.05rem;line-height:1;padding:8px 10px;color:var(--ink-soft)}
.password-toggle:hover{color:var(--accent)}

.file-preview,.photo-preview{display:none;align-items:center;gap:10px;margin-top:10px;padding:9px 12px;border:1px solid var(--rule);border-radius:8px;background:var(--paper-raised)}
.file-preview__icon{font-size:1.1rem;flex:none}
.photo-preview img{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none}
.file-preview__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Archivo',sans-serif;font-size:0.82rem;color:var(--ink)}
.file-preview__size{font-family:'Archivo',sans-serif;font-size:0.76rem;color:var(--ink-faint);flex:none}
.file-preview__remove{font-family:'Archivo',sans-serif;font-size:0.78rem;font-weight:600;color:var(--accent);text-decoration:none;background:none;border:none;cursor:pointer;flex:none}
.file-preview__remove:hover{text-decoration:underline}

.tag-file{font-family:'Archivo',sans-serif;font-size:0.68rem;letter-spacing:0.02em;text-transform:none}
.attachment{margin:0 0 30px;padding:16px;border:1px solid var(--rule);border-radius:10px;background:var(--paper-raised)}
.attachment__head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.attachment__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Archivo',sans-serif;font-size:0.88rem;color:var(--ink)}
.attachment__size{font-family:'Archivo',sans-serif;font-size:0.76rem;color:var(--ink-faint);flex:none}
.attachment__frame{width:100%;height:70vh;border:1px solid var(--rule);border-radius:8px;background:#fff;display:block}
.attachment__actions{margin-top:12px}
.byline-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;vertical-align:-8px;margin-right:8px}
.article__actions{margin:-12px 0 28px}
.pref-checks{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:18px;font-family:'Archivo',sans-serif;font-size:0.88rem;color:var(--ink-soft)}
.pref-check{display:flex;align-items:center;gap:7px;cursor:pointer}
.pref-check input{width:16px;height:16px;accent-color:var(--accent)}

.panel{padding:30px 0 60px}
.panel h2{font-family:'Fraunces',serif;font-weight:600;font-size:1.7rem;margin:22px 0 4px}
.panel h2:first-child{margin-top:6px}
.panel__hint{font-family:'Archivo',sans-serif;font-size:0.85rem;color:var(--ink-soft);margin-bottom:6px}
.queue-item{padding:16px 0;border-bottom:1px solid var(--rule);display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.queue-item__main{flex:1;min-width:220px}
.queue-item__title{font-family:'Fraunces',serif;font-weight:600;font-size:1.1rem;margin:2px 0 6px}
.queue-item__meta{font-family:'Archivo',sans-serif;font-size:0.78rem;color:var(--ink-faint)}
.queue-item__actions{display:flex;gap:8px;flex-wrap:wrap}
.reject-box{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;width:100%}
.reject-box input{flex:1;min-width:180px;font-family:'Archivo',sans-serif;font-size:0.82rem;padding:7px 10px;border:1px solid var(--rule);border-radius:6px;background:var(--paper-raised);color:var(--ink)}

.account{max-width:520px;margin:0 auto;padding:30px 0 60px}
.account h2{font-family:'Fraunces',serif;font-weight:600;font-size:1.7rem;margin:22px 0 10px}
.account h2:first-child{margin-top:6px}
.account-photo{display:flex;align-items:center;gap:16px;margin-bottom:8px}
.account-photo img,.account-photo__placeholder{width:64px;height:64px;border-radius:50%;object-fit:cover;background:var(--paper-raised);border:1px solid var(--rule)}
.account-photo__placeholder{display:flex;align-items:center;justify-content:center;font-family:'Archivo',sans-serif;font-size:1.4rem;color:var(--ink-faint)}

.footer{padding:34px 0 50px;border-top:1px solid var(--rule);margin-top:10px;font-family:'Archivo',sans-serif;font-size:0.78rem;color:var(--ink-faint);text-align:center}
.footer__sep{margin:0 8px}
.footer__contact{color:var(--ink-faint);text-decoration:none}
.footer__contact:hover{color:var(--accent);text-decoration:underline}
