/* ==========================================================================
   Sanalşehrim, hedef uygulama (sızma poligonu).
   NIHAI YON: "Sıcak operasyon konsolu" (kazanan, YON 1) + graftlar.
   ==========================================================================
   Konsept: brifingteki gece terminalinin gunduz vardiyasi. Ust komuta seridi
   gece konsolu siyahi (#0A0F0B), govde sicak defter/milimetrik kagit. Makine
   katmani JetBrains Mono, insan katmani Fraunces, okuma metni Source Sans 3.
   Enjeksiyon hatalari (.sr-err) krem alert degil, masaya birakilmis KOYU bir
   terminal ciktisi (amber "hedef-konsolu" etiketi + stderr): gorevin imzasi.

   Graftlar:
   - YON 3: (a) Turkce icerikte text-transform uppercase HIC yok; "label"
     hissi mono + letter-spacing + agirlik/renk ile. (b) Brifingin tarama
     cizgisi yalniz KOYU katmanlarda (komuta seridi + hata konsolu). (c) Koyu
     ogelerde derinlik hairline + ic parlama ile, golge degil. (d) sr-err
     terakota gutter + "// stderr" akis etiketi.
   - YON 0: (a) kartlara ust murekkep kurali (kayit fisi). (b) sr-h1 oncesi
     altin "bolum tiki". (c) komuta seridinde mono dateline kunye. (d) kagit
     uzerinde okunur altin (#A9741F) kicker rengi.
   - YON 2 (kisitli, renksiz): sr-catcard'lara CSS counter ile sessiz mono
     register kodu (01, 02...) + mono chevron. Tek yesil korunur, 6 renk YOK.

   Turkce kopya kurali: tire/cizgi yok, uppercase transform yok, Turkce
   karakterler content stringlerinde birebir dogru yazildi. "hedef-konsolu"
   ve "stderr" teknik konsol token'lari (brifingle sureklilik) oldugu icin
   birebir korunmustur (kod/token istisnasi).

   Yazi tipleri app.php <link>'inde yuklu olmali: Fraunces, Source Sans 3 ve
   (eklenmesi gereken) JetBrains Mono:wght@400;500;700.
   ========================================================================== */

:root{
  /* sicak kagit yuzeyler (govde dunyasi) */
  --paper:#F1EBDC; --paper2:#E9E1CC; --card:#FBF7EE; --card2:#F5EFE1;
  /* murekkep */
  --ink:#20301D; --ink2:#132110; --muted:#556A4A; --faint:#8C977E;
  /* ince cizgiler */
  --line:#DED4BE; --line2:#CDC0A2; --hair:rgba(19,33,16,.12);
  /* sistem yesili (AA kontrast icin markanin koyu yesili) */
  --sys:#1B5E20; --sys2:#2E7D32; --acc:#66BB6A;
  /* kagit uzerinde okunur altin (editoryal kicker, YON 0 graft) + uyari */
  --gold:#A9741F; --gold-soft:#8A5E17;
  --amber:#C98A2E; --terra:#C05B3B;
  /* gece konsolu katmani (brifingle birebir sureklilik) */
  --con:#0A0F0B; --con-grad:#0C130D; --con-sunk:#120C0B;
  --con-line:#24382B; --con-ink:#EDE8DB; --con-dim:#9FB2A4;
  --con-green:#66BB6A; --con-amber:#E0A458; --con-red:#F0A893; --con-terra:#C97B5B;
  /* olcu */
  --r:11px; --r-s:8px;
  --sh:inset 0 1px 0 rgba(255,255,255,.55), 0 10px 24px -18px rgba(28,40,20,.5);
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --serif:Fraunces,Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
  /* cok hafif defter/milimetrik doku, gorevi golgede birakmayacak dozda */
  background-image:
    linear-gradient(rgba(120,110,80,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(120,110,80,.04) 1px,transparent 1px);
  background-size:30px 30px;
}
img{max-width:100%;}
a{color:var(--sys); text-decoration:none;}
a:hover{color:var(--sys2);}

/* gorunur klavye odagi, her yerde */
:focus-visible{outline:2px solid var(--sys2); outline-offset:2px; border-radius:3px;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--sys2); outline-offset:2px; border-radius:4px;
}

.sr-wrap{max-width:1140px; margin:0 auto; padding:0 24px;}

/* --------------------------------------------------------------------------
   Kapsam damgasi, koyu ince serit (gece konsolu katmani)
   -------------------------------------------------------------------------- */
.sr-scope{
  position:relative; background:var(--con); color:var(--con-amber);
  border-bottom:1px solid #06100a;
  font-family:var(--mono); font-size:11px; letter-spacing:.06em;
  text-align:center; padding:7px 16px;
  display:flex; gap:10px; justify-content:center; align-items:center;
}
.sr-scope::before{
  content:""; width:7px; height:7px; border-radius:50%; flex:0 0 auto;
  background:var(--con-amber); box-shadow:0 0 8px var(--con-amber);
  animation:sr-blink 1.9s infinite;
}

/* --------------------------------------------------------------------------
   Komuta bari, koyu konsol kasasi + brifing tarama cizgisi + mono dateline
   -------------------------------------------------------------------------- */
.sr-top{
  position:sticky; top:0; z-index:30;
  background:linear-gradient(180deg,var(--con-grad),var(--con));
  border-bottom:1px solid var(--con-line);
  box-shadow:0 1px 0 rgba(224,164,88,.16) inset, 0 10px 26px -20px rgba(0,0,0,.9);
}
/* koyu katmana paylasilan yesil tarama dokusu (YON 3 graft), cok hafif */
.sr-top::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:repeating-linear-gradient(0deg, rgba(102,187,106,.028) 0 1px, transparent 1px 3px);
  opacity:.6;
}
.sr-topin{position:relative; z-index:1; display:flex; align-items:center; gap:18px; height:64px;}

/* gercek beyaz SVG wordmark + mono dateline kunye (YON 0 graft) */
.sr-logo-link{display:inline-flex; align-items:center; gap:15px; text-decoration:none; min-width:0;}
.sr-logo{height:24px; width:auto; max-width:60vw; display:block; object-fit:contain;}
img.sr-logo{height:24px; width:auto;}
.sr-logo-link::after{
  content:"kırklareli · esnaf paneli";
  font-family:var(--mono); font-size:10.5px; letter-spacing:.16em;
  color:var(--con-dim); white-space:nowrap;
  border-left:1px solid rgba(157,176,162,.32); padding-left:15px;
}
/* savunmaci fallback: eski 'S' rozetli markup kalirsa rozeti gizle, wordmark ayakta kalsin */
.sr-mark{display:none !important;}
.sr-brand{display:inline-flex; align-items:baseline; gap:9px; text-decoration:none;
  color:#fff; font-family:var(--serif); font-weight:600; font-size:20px; letter-spacing:.2px;}
.sr-brand em{font-style:normal; opacity:.6; font-size:13px; font-family:var(--mono);
  letter-spacing:.02em; margin-left:2px;}

/* nav */
.sr-nav{margin-left:auto; display:flex; align-items:center; gap:4px; flex-wrap:wrap;}
.sr-nav a{
  color:#CFE0D3; font-size:14px; padding:8px 12px; border-radius:8px; line-height:1;
  transition:color .12s, background .12s;
}
.sr-nav a:hover{color:#fff; background:rgba(102,187,106,.12);}
.sr-nav .sr-user{color:#fff; font-weight:600; display:inline-flex; align-items:center; gap:8px;}
.sr-nav .sr-user::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--acc);
  box-shadow:0 0 8px var(--acc);
}
.sr-nav .sr-btn{
  background:var(--acc); color:#08120A; font-family:var(--mono); font-weight:700;
  font-size:12.5px; letter-spacing:.04em; padding:9px 15px;
}
.sr-nav .sr-btn:hover{background:#7FCE84; color:#08120A;}
.sr-nav .sr-mission{
  border:1px solid rgba(224,164,88,.42); color:var(--con-amber);
  font-family:var(--mono); font-size:11.5px; letter-spacing:.05em;
}
.sr-nav .sr-mission:hover{border-color:var(--con-amber); background:rgba(224,164,88,.1); color:#F0C07F;}

/* --------------------------------------------------------------------------
   Ana yerlesim, sicak kagit govde
   -------------------------------------------------------------------------- */
.sr-main{
  max-width:1140px; margin:0 auto; padding:28px 24px 12px;
  display:flex; gap:28px; align-items:flex-start;
}
.sr-side{width:250px; flex:0 0 250px; position:sticky; top:80px;}
.sr-content{flex:1; min-width:0;}
/* gazete kolonu hissi: kenar cubugu ile icerik arasi dikey kural (YON 0 graft) */
@media (min-width:821px){
  .sr-content{border-left:1px solid var(--line); padding-left:28px; margin-left:-2px;}
}

.sr-side h4{
  margin:0 0 10px; font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  color:var(--gold); font-weight:500; display:flex; align-items:center; gap:8px;
  padding-bottom:8px; border-bottom:1px solid var(--line);
}
.sr-side h4::before{content:""; width:14px; height:1px; background:var(--gold); flex:0 0 auto;}
.sr-search,.sr-catbox{
  background:var(--card); border:1px solid var(--line); border-top:2px solid var(--ink);
  border-radius:var(--r); padding:16px; margin-bottom:14px; box-shadow:var(--sh);
}
.sr-search form{display:flex; gap:8px;}
.sr-search input{
  flex:1; min-width:0; padding:9px 11px; border:1px solid var(--line2);
  border-radius:var(--r-s); font-family:var(--mono); font-size:13px;
  background:var(--card2); color:var(--ink);
}
.sr-search input::placeholder{color:var(--faint);}
.sr-search button{
  padding:9px 14px; border:0; border-radius:var(--r-s); background:var(--sys); color:#fff;
  font-family:var(--mono); font-weight:600; font-size:12.5px; letter-spacing:.03em; cursor:pointer;
}
.sr-search button:hover{background:var(--sys2);}

.sr-cats{list-style:none; margin:0; padding:0;}
.sr-cats li{margin:1px 0;}
.sr-cats a{
  display:block; padding:8px 10px; border-radius:8px; color:var(--ink); font-size:14.5px;
  position:relative; transition:padding .12s, color .12s, background .12s;
}
.sr-cats a::before{
  content:""; position:absolute; left:6px; top:50%; width:0; height:2px;
  background:var(--acc); transform:translateY(-50%); transition:width .12s;
}
.sr-cats a:hover{background:var(--card2); color:var(--sys); padding-left:18px;}
.sr-cats a:hover::before{width:8px;}

/* --------------------------------------------------------------------------
   Sayfa basligi, altin "bolum tiki" (YON 0 graft) + Fraunces manset
   -------------------------------------------------------------------------- */
.sr-h1{
  font-family:var(--serif); font-weight:600; font-size:clamp(24px,3.2vw,32px);
  margin:2px 0 8px; color:var(--ink2); letter-spacing:-.01em; line-height:1.13;
}
.sr-h1::before{
  content:""; display:block; width:38px; height:3px; background:var(--gold);
  margin:0 0 14px; border-radius:1px;
}
.sr-lead{color:var(--muted); margin:0 0 22px; max-width:64ch; font-size:16.5px;}
.sr-empty{
  color:var(--muted); font-family:var(--mono); font-size:14px;
  background:var(--card); border:1px dashed var(--line2); padding:16px; border-radius:var(--r);
}

/* --------------------------------------------------------------------------
   Isletme kartlari, kayit fisi (ust murekkep kurali, YON 0 graft)
   -------------------------------------------------------------------------- */
.sr-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(244px,1fr)); gap:14px;
  counter-reset:ik;
}
.sr-card{
  position:relative; background:var(--card);
  border:1px solid var(--line); border-top:2px solid var(--ink);
  border-radius:var(--r); padding:16px 17px 15px; box-shadow:var(--sh);
  transition:transform .13s ease, box-shadow .13s ease, border-top-color .13s ease;
}
.sr-card:hover{
  transform:translateY(-2px); border-top-color:var(--sys);
  box-shadow:0 14px 30px -18px rgba(28,40,20,.5);
}
.sr-card h3{margin:0 0 6px; font-family:var(--serif); font-weight:600; font-size:18.5px; line-height:1.2;}
.sr-card h3 a{color:var(--ink2);}
.sr-card h3 a:hover{color:var(--sys);}
.sr-desc{margin:0 0 12px; color:#43503C; font-size:14.5px;}
.sr-region{
  margin:0; padding-top:11px; border-top:1px solid var(--hair);
  font-size:12px; color:var(--muted); display:flex; align-items:center; gap:7px;
}
.sr-region span{
  font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.08em;
  color:var(--sys); background:rgba(27,94,32,.08); border:1px solid rgba(27,94,32,.22);
  padding:2px 7px; border-radius:5px;
}

/* --------------------------------------------------------------------------
   Is kolu kartlari, sessiz register kodu (YON 2 graft, renksiz) + chevron
   -------------------------------------------------------------------------- */
.sr-catcard{
  counter-increment:ik;
  display:flex; align-items:center; gap:14px; min-height:74px; padding:16px 18px;
  text-decoration:none; background:var(--card);
  border:1px solid var(--line); border-top:2px solid var(--ink);
  border-radius:var(--r); color:var(--ink2); box-shadow:var(--sh);
  transition:transform .13s ease, box-shadow .13s ease, border-top-color .13s ease;
}
.sr-catcard::before{
  content:counter(ik,decimal-leading-zero);
  font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.06em;
  color:var(--sys); opacity:.7; flex:0 0 auto;
}
.sr-catcard span{flex:1; min-width:0; font-family:var(--serif); font-size:18.5px; font-weight:600;}
.sr-catcard::after{
  content:"\203A"; font-family:var(--mono); color:var(--gold); font-size:19px; line-height:1;
  flex:0 0 auto; transition:transform .13s ease, color .13s ease;
}
.sr-catcard:hover{
  transform:translateY(-2px); border-top-color:var(--sys);
  box-shadow:0 14px 30px -18px rgba(28,40,20,.5);
}
.sr-catcard:hover::after{transform:translateX(4px); color:var(--sys);}

/* --------------------------------------------------------------------------
   IMZA: enjeksiyon hata konsolu (koyu stderr terminali)
   Amber "hedef-konsolu" etiketi + terakota gutter + tarama cizgisi.
   Sinir kontrasti icin govde sayfadan bir tik daha koyu, ic halka + hairline.
   Tasmasiz: pre-wrap + overflow-wrap:anywhere.
   -------------------------------------------------------------------------- */
.sr-err{
  position:relative; margin:6px 0 18px; overflow:hidden;
  background:linear-gradient(180deg,#150E0C,var(--con-sunk));
  color:var(--con-red);
  border:1px solid #45241E; border-left:3px solid var(--con-terra);
  border-radius:10px; padding:32px 16px 15px;
  font-family:var(--mono); font-size:13.5px; line-height:1.7;
  white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word;
  box-shadow:inset 0 0 0 1px rgba(224,164,88,.06),
             inset 0 0 40px rgba(201,123,91,.06),
             0 18px 40px -22px rgba(0,0,0,.7);
}
.sr-err::before{
  content:"hedef-konsolu  //  stderr";
  position:absolute; top:0; left:0; right:0; padding:7px 14px;
  font-size:10.5px; letter-spacing:.14em; color:var(--con-amber);
  background:rgba(255,255,255,.03); border-bottom:1px solid rgba(224,164,88,.2);
}
.sr-err::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(102,187,106,.045) 0 1px, transparent 1px 3px);
}

.sr-ok{
  background:rgba(27,94,32,.08); border:1px solid rgba(27,94,32,.28);
  border-left:3px solid var(--sys2); color:#1E5C2C;
  padding:12px 14px; margin:0 0 18px; border-radius:10px; font-size:14.5px;
}
.sr-info{
  background:var(--card2); border:1px solid var(--line2); border-left:3px solid var(--gold);
  color:#4A4230; padding:12px 14px; margin:8px 0 16px; border-radius:10px; font-size:14.5px;
}

/* --------------------------------------------------------------------------
   Esnaf girisi, erisim terminali
   -------------------------------------------------------------------------- */
.sr-login{
  max-width:380px; background:var(--card);
  border:1px solid var(--line); border-top:2px solid var(--ink);
  border-radius:14px; padding:22px 22px 24px; box-shadow:var(--sh);
}
.sr-login label{
  display:block; margin:14px 0 5px; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.11em; color:var(--muted);
}
.sr-login label:first-child{margin-top:0;}
.sr-login input{
  width:100%; padding:11px 12px; border:1px solid var(--line2); border-radius:10px;
  font-family:var(--mono); font-size:14px; background:var(--card2); color:var(--ink);
}
.sr-login input:focus{outline:2px solid var(--sys2); outline-offset:2px; border-color:var(--sys2); background:#fff;}
.sr-login button{
  margin-top:20px; width:100%; padding:12px; border:0; border-radius:10px;
  background:var(--sys); color:#fff; font-family:var(--mono); font-weight:700; font-size:14px;
  letter-spacing:.03em; cursor:pointer;
}
.sr-login button:hover{background:var(--sys2);}

/* --------------------------------------------------------------------------
   Esnaf paneli
   -------------------------------------------------------------------------- */
.sr-panelhead{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:10px; flex-wrap:wrap;}
.sr-eyebrow{
  margin:0 0 4px; font-family:var(--mono); font-size:11.5px; letter-spacing:.14em;
  color:var(--gold); font-weight:500; display:flex; align-items:center; gap:8px;
}
.sr-eyebrow::before{content:""; width:14px; height:1px; background:var(--gold);}
.sr-panelhead .sr-h1{margin-top:2px;}
.sr-live{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--mono);
  font-size:11.5px; letter-spacing:.05em; color:var(--sys);
  background:rgba(27,94,32,.08); border:1px solid rgba(27,94,32,.28);
  padding:7px 12px; border-radius:20px; white-space:nowrap;
}
.sr-live::before{
  content:""; width:8px; height:8px; border-radius:50%; background:var(--acc);
  box-shadow:0 0 0 0 rgba(102,187,106,.5); animation:sr-pulse 2s infinite;
}

.sr-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:20px 0;}
.sr-stat{
  position:relative; overflow:hidden; background:var(--card);
  border:1px solid var(--line); border-radius:var(--r);
  padding:16px 16px 15px 18px; box-shadow:var(--sh);
}
.sr-stat::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(var(--acc),var(--sys2));}
.sr-statnum{
  display:block; font-family:var(--mono); font-size:27px; font-weight:700; color:var(--ink2);
  letter-spacing:-.01em; font-variant-numeric:tabular-nums lining-nums; line-height:1.1;
}
.sr-statlbl{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.07em; color:var(--muted);}

.sr-cols{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.sr-panelcard{
  background:var(--card); border:1px solid var(--line); border-top:2px solid var(--ink);
  border-radius:var(--r); padding:18px 20px; margin-bottom:16px; box-shadow:var(--sh);
}
.sr-panelcard h3{
  margin:0 0 12px; font-family:var(--serif); font-weight:600; font-size:18px; color:var(--ink2);
  padding-bottom:10px; border-bottom:1px solid var(--line);
}
.sr-kv{border-collapse:collapse; width:100%; font-size:14px;}
.sr-kv td{padding:9px 10px; border-bottom:1px solid var(--hair); vertical-align:top;}
.sr-kv tr:last-child td{border-bottom:0;}
.sr-kv td:first-child{
  font-family:var(--mono); font-size:11px; letter-spacing:.05em; color:var(--muted);
  width:122px; white-space:nowrap; padding-top:11px;
}
.sr-kv td:last-child{color:var(--ink); font-family:var(--mono); font-size:13.5px; overflow-wrap:anywhere;}
.sr-muted{color:var(--muted); font-family:var(--mono); font-size:12.5px; margin:10px 0 0; display:inline-block;}

.sr-editform label{
  display:block; margin:0 0 6px; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.11em; color:var(--muted);
}
.sr-editform textarea{
  width:100%; padding:11px 12px; border:1px solid var(--line2); border-radius:10px;
  font-family:var(--mono); font-size:13.5px; background:var(--card2); color:var(--ink);
  resize:vertical; line-height:1.5;
}
.sr-editform textarea:focus{outline:2px solid var(--sys2); outline-offset:2px; border-color:var(--sys2); background:#fff;}
.sr-btn2{
  margin:12px 12px 0 0; padding:10px 18px; border:0; border-radius:9px; background:var(--sys);
  color:#fff; font-family:var(--mono); font-weight:600; font-size:12.5px; letter-spacing:.03em; cursor:pointer;
}
.sr-btn2:hover{background:var(--sys2);}
.sr-editform .sr-muted{display:inline; margin:0;}

/* --------------------------------------------------------------------------
   Altbilgi (markup: footer.sr-foot > .sr-wrap)
   -------------------------------------------------------------------------- */
.sr-foot{border-top:2px solid var(--ink); margin-top:30px; padding:22px 0 46px;}
.sr-foot .sr-wrap{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.03em; color:var(--muted); text-align:center;
}

/* --------------------------------------------------------------------------
   Hareket
   -------------------------------------------------------------------------- */
@keyframes sr-pulse{
  0%{box-shadow:0 0 0 0 rgba(102,187,106,.5);}
  70%{box-shadow:0 0 0 8px rgba(102,187,106,0);}
  100%{box-shadow:0 0 0 0 rgba(102,187,106,0);}
}
@keyframes sr-blink{0%,100%{opacity:1;}50%{opacity:.4;}}

/* --------------------------------------------------------------------------
   Duyarli
   -------------------------------------------------------------------------- */
@media (max-width:820px){
  .sr-main{flex-direction:column;}
  .sr-side{width:auto; flex:none; position:static; display:flex; gap:14px;}
  .sr-search,.sr-catbox{flex:1; margin-bottom:0;}
  .sr-cols{grid-template-columns:1fr;}
  .sr-stats{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .sr-logo-link::after{display:none;}
}
@media (max-width:520px){
  .sr-side{flex-direction:column;}
  .sr-stats{grid-template-columns:1fr;}
  .sr-topin{height:auto; padding:12px 0; flex-wrap:wrap; gap:12px;}
  .sr-nav{width:100%; gap:4px;}
  .sr-nav a{padding:7px 10px; font-size:13px;}
  .sr-panelhead{flex-direction:column;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none !important; transition:none !important;}
  .sr-card:hover,.sr-catcard:hover{transform:none;}
  .sr-catcard:hover::after{transform:none;}
}
