/* Galeri, canlı pano ve yönetim sayfaları. Temel değişkenler style.css içinden gelir. */
.galeri-page,.yonetim-page{padding-block:44px 96px;min-height:calc(100vh - 100px)}
.galeri-heading{margin:28px 0 32px}.galeri-heading h1{font-family:var(--display);font-size:clamp(38px,5vw,56px);line-height:1.1;margin:10px 0 12px;color:var(--navy)}.galeri-heading p{margin:0;color:var(--gray);max-width:620px}
.galeri-auth{margin-bottom:28px}.galeri-login{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end}.galeri-login .field{margin:0}.galeri-login .button{height:48px;padding-inline:26px}
.session-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.session-row strong{font-family:var(--display);color:var(--navy)}
.link-button{background:none;border:1px solid var(--line);border-radius:4px;padding:9px 16px;font-weight:600;color:var(--navy)}.link-button:hover{background:#eef4f2}
.galeri-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.galeri-toolbar .notice{margin:0}.galeri-toolbar .filter{border-color:var(--line);color:var(--gray);font-size:13px;font-weight:600}.galeri-toolbar .filter.active{color:var(--navy)}
.galeri-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.blog-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;display:flex;flex-direction:column;gap:14px;transition:border-color .2s,box-shadow .2s}.blog-card:hover{border-color:#b8cbc6;box-shadow:0 10px 30px #0b273b10}
.blog-card.mine{border-color:var(--navy)}
.blog-card.top{border-color:#0b757d;box-shadow:0 10px 30px #0b757d22}.blog-card.top .blog-rank{color:#0b757d;font-weight:700}
.blog-rank{font-family:var(--display);font-size:12px;letter-spacing:2px;color:var(--gray)}
.blog-name{font-family:var(--display);font-size:22px;line-height:1.2;margin:0;color:var(--navy);overflow-wrap:anywhere}
.blog-link{font-size:14px;color:#1b7f86;overflow-wrap:anywhere}.blog-link:hover{text-decoration:underline}
.blog-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.blog-visits{font-size:13px;color:var(--gray)}
.like-button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:8px 16px;font-weight:600;transition:background .15s,color .15s}
.like-button:hover:not(:disabled){background:#eef4f2}.like-button.liked{background:var(--navy);color:#fff}.like-button:disabled{opacity:.55;cursor:not-allowed}
.like-heart{font-size:15px;line-height:1}
.galeri-empty{color:var(--gray);text-align:center;padding:48px 0}
@media(max-width:760px){.galeri-login{grid-template-columns:1fr}.container{width:calc(100% - 32px)}}

/* Yönetim */
.yonetim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-top:24px}
.yonetim-grid .panel h2{font-family:var(--display);font-size:22px;margin:4px 0 18px;color:var(--navy)}
.control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.control-row:first-of-type{border-top:0}
.control-row span{font-weight:600}.control-row small{display:block;color:var(--gray);font-weight:400}
.toggle{min-width:96px;border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:8px 16px;font-weight:700}.toggle[aria-pressed=true]{background:var(--navy);color:var(--cyan)}
.action{border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:4px;padding:8px 16px;font-weight:600}.action:hover{background:#eef4f2}.action.danger{border-color:#c2410c;color:#c2410c}.action.danger:hover{background:#fff1ea}
.stepper{display:flex;align-items:center;gap:8px}.stepper output{min-width:28px;text-align:center;font-family:var(--display);font-size:20px;font-weight:700}
.pod-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:8px}
.pod-item{border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.pod-item b{font-family:var(--display)}.pod-state{font-size:12px;font-weight:700;letter-spacing:1px}
.pod-state.up{color:#0f8a5f}.pod-state.down{color:#c2410c}.pod-state.starting{color:#b7791f}
.blog-admin{margin-top:20px}.blog-admin-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.blog-admin h2{font-family:var(--display);font-size:22px;margin:4px 0 0;color:var(--navy)}.blog-admin h2 span{color:var(--gray);font-size:16px}
.blog-admin-help{color:var(--gray);font-size:14px;margin:10px 0 16px}
.site-list{display:flex;flex-direction:column}.site-row{display:flex;align-items:center;gap:16px;padding:10px 0;border-top:1px solid var(--line)}
.site-row .who{flex:1;min-width:0}.site-row b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-row a{font-size:13px;color:#1b7f86}
.action.confirm{background:#c2410c;border-color:#c2410c;color:#fff}
.yonetim-login{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.yonetim-login .field{margin:0;flex:1;min-width:240px}

/* Canlı pano: projeksiyon için tam ekran */
.pano{margin:0;min-height:100vh;background:#071b29;color:#eaf2f1;font-family:var(--body);overflow:hidden}
.pano-top{display:flex;align-items:center;gap:20px;padding:22px 40px;border-bottom:1px solid #ffffff14}
.pano-brand{display:flex;align-items:center;gap:14px;font-family:var(--display);font-size:22px;font-weight:700}
.pano-brand .logo-crop{background:#fff;border-radius:8px}
.pano-status{margin-left:auto;display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:999px;font-weight:700;font-size:16px;background:#ffffff12}
.pano-status:before{content:'';width:10px;height:10px;border-radius:50%;background:currentColor}
.pano-status.ok{color:#4ade80}.pano-status.slow{color:#fbbf24}.pano-status.down{color:#f87171}.pano-status.wait{color:#94a3b8}
.pano-url{font-family:var(--display);color:var(--cyan);font-size:18px}
.pano-main{display:grid;grid-template-columns:1fr 400px;gap:28px;padding:28px 40px;height:calc(100vh - 90px)}
.pano-diagram{position:relative;display:grid;grid-template-columns:1fr 1fr 2.2fr 1fr;align-items:center;gap:36px;padding:24px;border:1px solid #ffffff12;border-radius:18px;background:radial-gradient(circle at 50% 40%,#0d2a3d,#071b29 70%)}
.node{position:relative;z-index:1;background:#0d2839;border:1px solid #ffffff22;border-radius:16px;padding:30px 18px;text-align:center;transition:opacity .3s,border-color .3s,box-shadow .3s}
.node b{display:block;font-family:var(--display);font-size:27px;line-height:1.2}.node small{display:block;margin-top:6px;color:#94a9b5;font-size:17px}
.node.off{opacity:.18}.node.flash{border-color:var(--cyan);box-shadow:0 0 24px #72ddda55}
.node-users b{font-size:60px;color:var(--cyan)}
.data-stack{display:flex;flex-direction:column;gap:28px}
.pods-wrap{position:relative;z-index:1;border:1px dashed transparent;border-radius:16px;padding:30px 14px 14px;transition:border-color .3s}
.pods-wrap.k8s{border-color:#72ddda88}
.k8s-label{position:absolute;top:8px;left:16px;font-size:16px;font-weight:700;letter-spacing:2px;color:var(--cyan);opacity:0;transition:opacity .3s}.pods-wrap.k8s .k8s-label{opacity:1}
.pods{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.pod{background:#0d2839;border:3px solid #4ade80;border-radius:14px;padding:20px 14px;text-align:center;transition:border-color .3s,opacity .3s,transform .3s}
.pod b{display:block;font-family:var(--display);font-size:24px}.pod small{display:block;color:#94a9b5;font-size:16px;margin-top:2px}
.pod .pod-count{font-family:var(--display);font-size:36px;font-weight:700;margin-top:6px;color:#eaf2f1}
.pod.down{border-color:#f87171;opacity:.55;transform:scale(.96)}.pod.starting{border-color:#fbbf24;border-style:dashed}
.pod.hit{box-shadow:0 0 18px #4ade8066}
.dot{position:absolute;left:0;top:0;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);z-index:2;pointer-events:none}
.dot.fail{background:#f87171;box-shadow:0 0 12px #f87171}
.pano-side{display:flex;flex-direction:column;gap:16px;min-height:0}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.metric{background:#0d2839;border:1px solid #ffffff14;border-radius:12px;padding:14px 16px}.metric span{display:block;font-size:13px;color:#94a9b5;letter-spacing:.5px}.metric strong{font-family:var(--display);font-size:34px;line-height:1.2}
.metric.warn strong{color:#fbbf24}.metric.bad strong{color:#f87171}
.spark{background:#0d2839;border:1px solid #ffffff14;border-radius:12px;padding:14px 16px}.spark span{font-size:13px;color:#94a9b5}.spark svg{display:block;width:100%;height:90px;margin-top:6px}
.spark polyline{fill:none;stroke:var(--cyan);stroke-width:2.5;vector-effect:non-scaling-stroke}
.leaders{flex:1;min-height:0;background:#0d2839;border:1px solid #ffffff14;border-radius:12px;padding:14px 16px;overflow:hidden}.leaders h2{font-family:var(--display);font-size:18px;margin:0 0 10px}
.leaders ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.leaders li{display:flex;align-items:center;gap:12px;font-size:17px}.leaders li .rank{width:26px;font-family:var(--display);color:#94a9b5}.leaders li .who{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaders li .count{font-family:var(--display);font-weight:700;color:var(--cyan)}
.leaders li:first-child .who{font-weight:700}
.pano-alert{position:fixed;inset:auto 0 40px;margin:auto;width:fit-content;background:#7f1d1d;border:1px solid #f87171;color:#fff;font-family:var(--display);font-size:30px;font-weight:700;padding:16px 36px;border-radius:14px;box-shadow:0 20px 50px #0008;z-index:5}
@media(prefers-reduced-motion:reduce){.pano *,.pano *:before{transition:none!important}}

.edge-admin{padding:16px 0;border-top:1px solid var(--line)}.edge-admin>b,.edge-admin>small{display:block}.edge-admin>small{margin:6px 0;color:var(--gray);font-size:12px}.edge-admin progress{width:100%;height:10px;accent-color:#0b757d}.edge-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.edge-actions button{font-size:11px;padding:8px}.infra-explanation{font-size:12px;color:var(--gray);line-height:1.7;margin-top:18px}
.traffic-panel{margin-top:24px}.traffic-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.traffic-heading h2{font:600 25px var(--display);color:var(--navy);margin:6px 0 10px}.traffic-heading p,.traffic-help{color:var(--gray);font-size:13px;line-height:1.7;margin:0}.traffic-phase{padding:8px 13px;border-radius:30px;background:#e5f3ed;color:#195d4e;white-space:nowrap;font-size:12px;font-weight:600}.traffic-settings{display:grid;grid-template-columns:1.5fr 1fr 1.2fr 1fr;gap:18px}.traffic-settings .field{margin:0;min-width:0}.traffic-settings input,.traffic-settings select{width:100%;min-width:0;border:1px solid #bdcfc9;background:#fff;border-radius:6px;padding:12px;font:inherit;font-size:14px;color:var(--navy)}.traffic-settings label>span{font-size:12px;display:block;margin-bottom:8px}.traffic-waves{display:flex;align-items:center;gap:9px;font-size:13px;margin:20px 0}.traffic-waves input{accent-color:var(--navy);width:16px;height:16px}.traffic-buttons{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.traffic-buttons>span{font-size:12px;color:var(--gray)}.traffic-buttons button:disabled{opacity:.4;cursor:default}.traffic-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0 18px}.traffic-stats>div{background:#f0f6f3;border:1px solid #dbe7e0;border-radius:8px;padding:16px}.traffic-stats span{display:block;font-size:12px;color:var(--gray);margin-bottom:8px}.traffic-stats strong{font:600 25px var(--display);color:var(--navy)}.traffic-help{font-size:12px}
@media(max-width:850px){.traffic-settings{grid-template-columns:1fr 1fr}.traffic-stats{grid-template-columns:1fr 1fr}}@media(max-width:500px){.traffic-settings{grid-template-columns:1fr}.traffic-heading{flex-direction:column}}

.site-row .site-email{display:block;font-size:12px;margin-top:5px;color:#526d76;overflow-wrap:anywhere}.site-row a.site-email{color:#176d79;text-decoration:underline;text-underline-offset:2px}
