/* ============================================================
   Źródło — wspólny system projektowy (jedyne źródło prawdy tokenów + komponentów)
   Linkowany przez landing/czat/admin/studio/weryfikator; layout per-powierzchnia osobno.
   Zielony = WYŁĄCZNIE „zweryfikowane". Glina = marka Źródło + Petra. Akcent = skórka kancelarii.
   Fonty SELF-HOSTED (woff2, OFL, latin + latin-ext = polskie znaki) — zero Google Fonts (CSP + RODO).
   ============================================================ */

/* ---- @font-face: Source Serif 4 / Source Sans 3 / IBM Plex Mono ---- */
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/source-serif-4-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/source-serif-4-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/source-serif-4-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/source-serif-4-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/source-serif-4-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/source-serif-4-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/source-sans-3-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/source-sans-3-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:500;font-display:swap;src:url('/static/fonts/source-sans-3-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:500;font-display:swap;src:url('/static/fonts/source-sans-3-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/source-sans-3-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/source-sans-3-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/ibm-plex-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/ibm-plex-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/static/fonts/ibm-plex-mono-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/static/fonts/ibm-plex-mono-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---- tokeny (wartości z README / prototypu — nie zgadywać na oko) ---- */
:root{
  --paper:#f5efe4; --paper-2:#efe7d8; --card:#fffdf8; --card-2:#fbf6ec; --card-3:#f3ecdd;
  --ink:#211d17; --ink-2:#5c554a; --muted:#978d7d;
  --hair:rgba(33,29,23,.13); --hair-2:rgba(33,29,23,.07); --hair-3:rgba(33,29,23,.20);
  --green:#1f5641; --green-tint:rgba(31,86,65,.10);
  --amber:#9a6a1c; --amber-tint:rgba(154,106,28,.12);
  --clay:#b5512f; --clay-tint:rgba(181,81,47,.10);
  /* SKÓRKA KANCELARII — nadpisywana per kancelaria serwerowo. Domyślnie granat. */
  --accent:#2b3a59; --accent-deep:#1f2c44; --accent-tint:rgba(43,58,89,.09); --accent-tint-2:rgba(43,58,89,.05);
  --serif:'Source Serif 4',Georgia,serif; --sans:'Source Sans 3',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
  --radius:10px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.01em}
.mono{font-family:var(--mono);font-feature-settings:"ss01"}
.muted{color:var(--muted)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:14px;
  border-radius:8px;padding:10px 16px;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:.15s;white-space:nowrap}
.btn:disabled{opacity:.5;cursor:default}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent-deep)}
.btn-primary:hover{background:var(--accent-deep)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--hair)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(33,29,23,.03)}
.btn-sm{padding:7px 12px;font-size:13px;border-radius:7px}
.icon-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--ink-2);transition:.15s}
.icon-btn:hover{background:rgba(33,29,23,.05);color:var(--ink)}

/* ---- chip cytowania + odznaka weryfikacji na żywo (komponent rdzeniowy) ---- */
.sig{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink);letter-spacing:.01em;white-space:nowrap}
.cite{display:inline-flex;align-items:center;gap:9px;padding:6px 11px;border-radius:999px;background:var(--card);border:1px solid var(--hair);vertical-align:middle}
.cite .src{font-size:12.5px;color:var(--ink-2);position:relative;min-width:0}
.cite.is-verified{border-color:rgba(31,86,65,.35);background:var(--green-tint)}
.cite.is-unverified{border-style:dashed;border-color:var(--hair-3);background:transparent}
.cite.is-unverified .sig{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(151,141,125,.55)}

.vbadge{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;position:relative}
.vbadge .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--hair);border-top-color:var(--accent);animation:spin .7s linear infinite;opacity:0;transition:opacity .2s}
.vbadge .ck{position:absolute;top:0;left:0;width:20px;height:20px;opacity:0;transition:opacity .25s}
.vbadge .ck circle{fill:var(--green-tint)}
.vbadge .ck path{fill:none;stroke:var(--green);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18;stroke-dashoffset:18}
.vbadge .xmark{position:absolute;top:0;left:0;width:20px;height:20px;opacity:0;transition:opacity .25s}
.vbadge .xmark circle{fill:rgba(151,141,125,.12)}
.vbadge .xmark path{fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round}
.is-pending .vbadge .ring{opacity:1}
.is-verified .vbadge .ck{opacity:1}
.is-verified .vbadge .ck path{animation:draw .5s ease-out forwards}
.is-unverified .vbadge .xmark{opacity:1}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes draw{to{stroke-dashoffset:0}}

/* ---- stempel aktualności (trzy zegary) + flaga [NIEZWERYFIKOWANE] ---- */
.stamp{font-family:var(--mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;white-space:nowrap}
.stamp.s{color:var(--green);background:var(--green-tint)}
.stamp.e{color:var(--amber);background:var(--amber-tint)}
.stamp.h{color:var(--muted);background:rgba(151,141,125,.12)}
.clockglyph{width:11px;height:11px}
.uflag{font-family:var(--mono);font-size:10px;letter-spacing:.05em;color:var(--muted);border:1px solid var(--hair-3);border-radius:5px;padding:2px 7px}

/* ---- app shell (czat/admin/studio) ---- */
.app{display:grid;grid-template-rows:auto 1fr;height:100vh;overflow:hidden}
.firmbar{display:flex;align-items:center;justify-content:space-between;padding:0 18px;height:56px;
  background:var(--card);border-bottom:1px solid var(--hair);position:relative;z-index:5}
.firmbar .left{display:flex;align-items:center;gap:14px}
.firmlogo{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:600;font-size:17px;color:var(--accent)}
.firmlogo .crest{width:30px;height:30px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:600;letter-spacing:.02em}
.firmbar .divider{width:1px;height:22px;background:var(--hair)}
.poweredby{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.02em;display:flex;align-items:center;gap:6px}
.poweredby b{color:var(--clay);font-family:var(--serif);font-weight:600;letter-spacing:0}
.firmbar .right{display:flex;align-items:center;gap:8px}
.useravatar{width:32px;height:32px;border-radius:50%;background:var(--accent-tint);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:13px;border:1px solid var(--hair)}

/* ---- powierzchnie pomocnicze ---- */
.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.scroll{overflow-y:auto;scrollbar-width:thin}
.scroll::-webkit-scrollbar{width:9px}
.scroll::-webkit-scrollbar-thumb{background:rgba(33,29,23,.16);border-radius:5px;border:2px solid transparent;background-clip:padding-box}
