/*
 * Danışan portalı (/client) — uygulama kabuğu. Bileşenler (kart, sayı, durum çipi, gösterge, satır, düğme, form, mesaj balonu)
 * portal-ui.css'tedir; bu dosya yazı tiplerini, sayfa düzenini (üst çubuk, yan menü, sekme çubuğu, giriş ekranı) ve portala özel
 * küçük ekleri içerir. Dış kaynak yok (CSP). Renkler portal-ui.css → :root (--p-*).
 */

/* Yazı tipleri (yerel WOFF2; site.css ile aynı dosyalar) */
@font-face{font-family:"Bricolage";font-style:normal;font-weight:200 800;font-display:swap;src:url(frontend/fonts/bricolage-200-800-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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bricolage";font-style:normal;font-weight:200 800;font-display:swap;src:url(frontend/fonts/bricolage-200-800-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:"Atkinson Next";font-style:normal;font-weight:200 800;font-display:swap;src:url(frontend/fonts/atkinson-next-200-800-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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Next";font-style:normal;font-weight:200 800;font-display:swap;src:url(frontend/fonts/atkinson-next-200-800-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:"Atkinson Mono";font-style:normal;font-weight:200 800;font-display:swap;src:url(frontend/fonts/atkinson-mono-200-800-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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Mono";font-style:normal;font-weight:200 800;font-display:swap;src:url(frontend/fonts/atkinson-mono-200-800-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:"Bricolage Yedek";src:local("Arial"),local("ArialMT");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0%;size-adjust:105.43%}
@font-face{font-family:"Atkinson Yedek";src:local("Arial"),local("ArialMT");ascent-override:98.8%;descent-override:31.73%;line-gap-override:0%;size-adjust:99.6%}
@font-face{font-family:"Atkinson Mono Yedek";src:local("Courier New"),local("CourierNewPSMT");ascent-override:93.43%;descent-override:30%;line-gap-override:0%;size-adjust:105.32%}

/* Temel */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.p-body{margin:0;background:var(--p-bg);color:var(--p-ink);font-family:var(--p-font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--p-brand)}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--p-brand);outline-offset:2px}
.p-skip{position:absolute;top:-100px;left:8px;z-index:20;padding:8px 14px;border-radius:12px;background:#fff;font-weight:700}
.p-skip:focus{top:8px}
.p-avatar{display:inline-grid;flex:none;place-items:center;width:2.4em;height:2.4em;border-radius:50%;background:var(--p-device);color:var(--p-lime);font-family:var(--p-display);font-weight:700}

/* Uygulama kabuğu: telefon */
body.has-tabbar{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
.p-top{position:sticky;top:0;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:60px;padding:8px 14px;padding-top:max(8px,env(safe-area-inset-top));background:rgb(241 245 244/.9);-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px)}
.p-top .p-appbar-btn{width:42px;height:42px;font-size:16px}
.p-top-avatar{width:42px;height:42px}
.p-top-brand{display:flex;align-items:center;justify-content:center;min-width:0;color:var(--p-ink);font-family:var(--p-display);font-weight:700;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-top-brand img{width:auto;height:32px}
.p-main{max-width:760px;margin:0 auto;padding:6px 16px 24px}
.p-title{margin:6px 0 14px;font-family:var(--p-display);font-size:clamp(1.75rem,1.4rem + 1.6vw,2.3rem);font-weight:750;letter-spacing:-.025em;line-height:1.1}
.p-subnav{display:flex;gap:8px;margin:0 -16px 16px;padding:2px 16px 4px;overflow-x:auto;scrollbar-width:none}
.p-subnav::-webkit-scrollbar{display:none}
.p-subnav .p-chip{flex:none;min-height:40px;font-size:.92rem}
.p-subnav .p-chip[aria-current=page]{border-color:var(--p-ink);background:var(--p-ink);color:#fff}
.p-tabbar.is-fixed{position:fixed;right:0;bottom:0;left:0;padding:6px 6px calc(6px + env(safe-area-inset-bottom));font-size:16px;-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px)}
.p-tabbar.is-fixed a{font-size:.74rem}
.p-tabbar.is-fixed .p-icon{width:1.75em;height:1.75em}
.p-side{display:none}
.p-count{margin-left:auto;min-width:1.6em;padding:0 .45em;border-radius:999px;background:var(--p-low);color:#fff;font-family:var(--p-mono);font-size:.75rem;font-weight:700;line-height:1.6em;text-align:center}

/* Geniş ekran: yan menü + ortada içerik */
@media (min-width:64em){
    body.has-tabbar{padding-bottom:0}
    .p-tabbar.is-fixed{display:none}
    .is-app{display:grid;grid-template-columns:280px minmax(0,1fr)}
    .p-side{position:sticky;top:0;display:flex;flex-direction:column;gap:14px;height:100vh;padding:22px 16px;overflow-y:auto;border-right:1px solid var(--p-line);background:var(--p-surface)}
    .p-side-brand{display:flex;padding:4px 8px 10px}
    .p-side-brand img{width:auto;max-width:180px;height:40px}
    .p-side-brand span{color:var(--p-ink);font-family:var(--p-display);font-size:1.2rem;font-weight:750}
    .p-side-user{display:flex;align-items:center;gap:10px;margin:0;padding:12px;border-radius:16px;background:var(--p-bg);font-weight:700;line-height:1.25}
    .p-side-user small{display:block;color:var(--p-muted);font-size:.8rem;font-weight:600}
    .p-side nav ul{margin:0 0 6px;padding:0;list-style:none}
    .p-side-group{margin:8px 10px 2px;color:var(--p-muted);font-family:var(--p-mono);font-size:.74rem;font-weight:600}
    .p-side nav a{display:flex;align-items:center;gap:10px;min-height:38px;padding:6px 10px;border-radius:12px;color:var(--p-ink);font-size:.95rem;font-weight:700;text-decoration:none}
    .p-side nav a:hover{background:var(--p-bg)}
    .p-side nav a[aria-current=page]{background:var(--p-ink);color:#fff}
    .p-side nav a[aria-current=page] .p-icon{color:var(--p-lime)}
    .p-side nav .p-icon{width:1.25em;height:1.25em;color:var(--p-muted)}
    .p-side-logout{margin-top:auto}
    .p-side-logout button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 10px;border:0;border-radius:12px;background:none;color:var(--p-muted);font:inherit;font-weight:700;cursor:pointer}
    .p-side-logout button:hover{background:var(--p-bg);color:var(--p-danger)}
    .p-side-logout .p-icon{width:1.25em;height:1.25em}
    .p-top{justify-content:flex-end;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
    .p-top-brand,.p-top-avatar{display:none}
    .p-main{padding:0 32px 48px}
    .p-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
    .p-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
    .p-today{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;align-items:start}
}

/* Giriş ekranları (oturum yok): koyu marka paneli + form */
.p-guest{min-height:100vh;min-height:100dvh}
.p-guest-brand{display:none}
.p-guest-main{width:100%;max-width:460px;margin:0 auto;padding:28px 18px 40px}
.p-guest-logo{display:inline-flex;margin-bottom:22px;padding:10px 14px;border-radius:18px;background:#fff;box-shadow:var(--p-shadow)}
.p-guest-logo img{width:auto;height:44px}
.p-guest-logo span{color:var(--p-ink);font-family:var(--p-display);font-size:1.3rem;font-weight:750;text-decoration:none}
.p-guest-kicker{display:flex;align-items:center;gap:8px;margin:0;color:var(--p-brand);font-family:var(--p-mono);font-size:.85rem;font-weight:600}
.p-guest-kicker .p-dot{background:var(--p-lime);box-shadow:0 0 0 4px var(--p-band)}
.p-guest .p-card{padding:1.3em}
@media (min-width:56em){
    .p-guest{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .p-guest-brand{position:sticky;top:0;display:flex;flex-direction:column;justify-content:flex-end;gap:14px;height:100vh;padding:48px;overflow:hidden;background:var(--p-device);color:#eef3f5}
    .p-guest-curve{position:absolute;top:18%;left:0;width:100%;height:42%}
    .p-guest-curve .band{fill:rgb(140 198 63/.18)}
    .p-guest-curve .line{fill:none;stroke:var(--p-lime);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}
    .p-guest-claim{position:relative;max-width:16ch;margin:0;font-family:var(--p-display);font-size:clamp(2rem,1.2rem + 2.2vw,3.2rem);font-weight:750;letter-spacing:-.03em;line-height:1.05}
    .p-guest-note{position:relative;margin:0;color:#a5b3bc;font-family:var(--p-mono);font-size:.8rem}
    .p-guest-main{align-self:center;padding:48px 32px}
}

/* Bugün ekranı ve portala özel küçük ekler */
.p-today>*{min-width:0}
.p-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.p-quick .p-chip .p-icon{width:1.1em;height:1.1em;color:var(--p-brand)}
.p-next{display:flex;align-items:center;gap:12px}
.p-next .p-doc-icon{width:3em;height:3em}
.p-meals-today{display:flex;flex-wrap:wrap;gap:6px;margin-top:.6em}
.p-meals-today span{padding:.2em .65em;border-radius:999px;background:#eef1f3;color:var(--p-muted);font-size:.8em;font-weight:700}
.p-meals-today span.is-on{background:var(--p-brand-soft);color:var(--p-brand)}
.p-chart{margin:0}
.p-chart-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:.6em;color:var(--p-muted);font-size:.82em}
.p-chart-legend span{display:inline-flex;align-items:center;gap:6px}
.p-chart-legend .p-band-key{flex-basis:100%}
.p-chart-table{margin-top:.7em;font-size:.9em}
.p-chart-table summary{color:var(--p-brand);font-weight:700;cursor:pointer}
.p-chart-table table{width:100%;margin-top:.5em;border-collapse:collapse}
.p-chart-table th,.p-chart-table td{padding:.4em .5em;border-bottom:1px solid var(--p-line);text-align:left}
.p-msg-meta,.p-msg-body{display:block}
.p-composer-form{position:sticky;bottom:calc(84px + env(safe-area-inset-bottom));z-index:4}
.p-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;color:var(--p-muted);font-family:var(--p-mono);font-size:.9em}
.p-pager a{font-family:var(--p-font);font-weight:700;text-decoration:none}
.p-total{margin:.6em 0 0;font-size:1.1em}
.p-total strong{font-family:var(--p-mono)}
.p-carb-row{display:flex;flex-direction:column;gap:.4em;padding-bottom:.8em;border-bottom:1px dashed var(--p-line)}
.p-prose{line-height:1.6}
.p-prose h1,.p-prose h2,.p-prose h3{margin:1.1em 0 .3em;font-family:var(--p-display);font-size:1.15rem}
.p-prose>:first-child{margin-top:0}
.p-prose table{width:100%;border-collapse:collapse}
.p-prose td,.p-prose th{padding:6px;border:1px solid var(--p-line)}
.p-kvkk-note{margin:.6em 0 0}
.p-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* Ekran ekleri */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
a.p-stat,a.p-card{color:inherit;text-decoration:none}
a.p-stat:hover,a.p-card:hover{box-shadow:inset 0 0 0 2px var(--p-brand),var(--p-shadow)}
a.p-row{color:inherit;text-decoration:none}
a.p-row:hover .p-row-title{color:var(--p-brand)}
.p-rows>a.p-row>.p-icon{color:var(--p-muted)}
.p-center{text-align:center}
.p-lead{margin:-4px 0 16px;font-size:1rem}
.p-ring-lg{width:6.2em;height:6.2em;font-size:1.05em}
.p-water .p-mini{margin-bottom:1em}
.p-water-total{font-size:1.6em!important}
.p-quick .p-glass-btn{flex:1 1 0;min-width:0;flex-direction:column;gap:.1em;min-height:4.6em;padding-inline:.4em}
.p-glass-btn small{color:var(--p-muted);font-family:var(--p-mono);font-size:.8em}
.p-photo-pick{display:flex!important;align-items:center;gap:.8em;margin-top:.8em!important;padding:1em;border:1.5px dashed #b9c5cb;border-radius:1em;background:var(--p-surface);cursor:pointer}
.p-photo-pick>.p-icon{width:2.4em;height:2.4em;padding:.5em;border-radius:.8em;background:var(--p-brand-soft);color:var(--p-brand)}
.p-photo-pick strong,.p-photo-pick .p-muted{display:block}
.p-logout{margin:18px 0 0}
.p-profile-card .p-card-head h2{font-size:1.3em}
.p-thread{margin-bottom:16px}
.p-composer-card{margin-top:8px}
@media (min-width:64em){.p-today .p-stats{grid-template-columns:1fr 1fr}}
.p-chart .p-spark text{font-size:17px}
.p-form input[type=file]::file-selector-button{margin-right:.8em;padding:.5em 1em;border:0;border-radius:999px;background:var(--p-brand-soft);color:var(--p-brand);font:inherit;font-weight:700;cursor:pointer}
.p-guest-kicker .p-dot{margin-left:4px}
@media (max-width:55.99em){
    .p-guest-brand{position:relative;display:block;height:132px;overflow:hidden;background:var(--p-device)}
    .p-guest-curve{position:absolute;inset:16px 0;width:100%;height:calc(100% - 32px)}
    .p-guest-curve .band{fill:rgb(140 198 63/.18)}
    .p-guest-curve .line{fill:none;stroke:var(--p-lime);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}
    .p-guest-claim{display:none}
    .p-guest-note{position:absolute;right:14px;bottom:8px;margin:0;color:#a5b3bc;font-family:var(--p-mono);font-size:.7rem}
    .p-guest-main{margin-top:-46px;padding-top:0}
}

.p-card .p-stat{background:var(--p-bg);box-shadow:none}
.p-day-bar{display:grid;grid-template-columns:6.5em minmax(0,1fr) auto;align-items:center;gap:.8em;padding:.55em 0;border-bottom:1px solid var(--p-line)}
.p-day-bar:last-child{border-bottom:0}
.p-day-bar .p-progress{margin:0;height:.7em}
.p-day-bar strong{font-family:var(--p-mono);font-size:.92em}
.p-photo-pick .p-muted{font-weight:500}

/* Bölüm aç / kapa (App\Support\PortalModulleri): kapalı bölüm çizilmeyince kalan sekmeler, sütunlar ve sayı kutuları eşit bölünür */
.p-tabbar.is-fixed{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
.p-appbar-btn.is-spacer{visibility:hidden}
.p-stats[data-count="1"]{grid-template-columns:minmax(0,1fr)}
@media (min-width:64em){
    .p-today.is-single{grid-template-columns:minmax(0,1fr)}
    .p-stats[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
    .p-stats[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
    .p-today .p-stats[data-count="1"]{grid-template-columns:minmax(0,1fr)}
}
