/* PROFAJ ERP TASARIM DİLİ (docs/tasarim-dili.md; Tepe 2026-10-16: "Profaj'da köşeliyiz, yazı karakterimiz Montserrat").
   Temel Frappe v16 bileşenleri; marka katmanı: Montserrat, köşeli (radius 0), #FF2400 yalnız vurgu, #302E2D metin. */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap");
:root {
	--font-stack: "Montserrat", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--border-radius-sm: 0; --border-radius: 0; --border-radius-md: 0; --border-radius-lg: 0; --border-radius-xl: 0; --border-radius-2xl: 0;
	--pj-kirmizi: #ff2400; --pj-gri: #302e2d; --pj-kenar: 1px solid var(--border-color); --pj-bosluk: 12px 16px;
}
body, .page-container, input, select, textarea, button, .btn, .form-control, .indicator-pill, h1, h2, h3, h4, h5, h6 { font-family: var(--font-stack); }
/* ProfajNext marka renkleri (kılavuz: kırmızı #FF2400, koyu gri #302E2D). Frappe değişkenlerinin üstüne yazar. */
:root {
	--profaj-red: #ff2400;
	--profaj-red-dark: #c41c00;
	--profaj-gray: #302e2d;
	--primary: var(--profaj-red);
	--primary-color: var(--profaj-red);
	--btn-primary: var(--profaj-red);
	--focus-default: 0 0 0 2px color-mix(in srgb, var(--profaj-red) 35%, transparent);
	--sidebar-select-color: color-mix(in srgb, var(--profaj-red) 12%, transparent);
	--heading-color: var(--profaj-gray);
}
[data-theme="dark"] {
	--heading-color: #f4f4f3;
}
.btn-primary,
.btn-primary:hover,
.btn-primary:focus {
	background-color: var(--profaj-red);
	border-color: var(--profaj-red);
	color: #fff;
	font-weight: 600;
}
.btn-primary:hover {
	background-color: var(--profaj-red-dark);
}

/* Zaman kayıtları (görev formu) */
.profaj-zaman-bar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.profaj-zaman-bar .flex-1 { flex: 1; }
.profaj-zaman-clock { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--profaj-red); }
.profaj-zaman-tablo td, .profaj-zaman-tablo th { vertical-align: middle; font-size: 13px; }
.profaj-zaman-toplam { display: flex; justify-content: space-between; font-size: 13px; margin-top: 6px; }
.profaj-zaman-toplam.profaj-over { color: var(--profaj-red-dark); font-weight: 600; }
.profaj-meter { height: 6px; border-radius: 3px; background: var(--control-bg); overflow: hidden; margin-top: 6px; }
.profaj-meter i { display: block; height: 100%; background: var(--profaj-red); }
.profaj-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 4px; }
.profaj-chip.active, .profaj-yorum-sure .btn.active { border-color: var(--profaj-red); color: var(--profaj-red-dark); font-weight: 600; }
.profaj-yorum-sure { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 8px; font-size: 12px; }
.profaj-sure-rozet { display: inline-block; border-radius: 9px; padding: 0 7px; font-size: 11px; font-weight: 600;
	background: color-mix(in srgb, var(--profaj-red) 10%, transparent); color: var(--profaj-red-dark); }

/* Her sayfada görünen zamanlayıcı */
.profaj-pill { position: fixed; right: 16px; bottom: 16px; z-index: 1030; display: flex; align-items: center; gap: 8px;
	background: var(--profaj-gray); color: #fff; border-radius: 20px; padding: 6px 8px 6px 12px; box-shadow: 0 6px 20px rgba(0,0,0,.25); font-size: 13px; max-width: calc(100vw - 32px); }
.profaj-pill a { color: #fff; opacity: .85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profaj-clock { font-variant-numeric: tabular-nums; font-weight: 700; }
.profaj-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--profaj-red); animation: profaj-blink 1s infinite; }
.profaj-pill-stop { background: var(--profaj-red); color: #fff; border: 0; border-radius: 12px; }
@keyframes profaj-blink { 50% { opacity: .25; } }
@media (max-width: 767px) {
	.modal-dialog.modal-sm { margin: 0; max-width: none; min-height: 100vh; }
	.modal-dialog.modal-sm .modal-content { min-height: 100vh; border-radius: 0; }
}

/* Seçili şerit simgesi ve seçili menü öğesi Profaj kırmızısı */
.dock .dock-item.active { background: color-mix(in srgb, var(--profaj-red) 14%, transparent); color: var(--profaj-red); }
.dock .dock-logo .header-logo img { border-radius: 8px; }

/* Logo yedeği (JS'ten bağımsız): ERPNext logosu yerine Profaj ikonu */
img[src*="erpnext-logo"] { content: url("/assets/profaj_ajans/images/profaj-ikon.png"); }

/* ---- Profaj renk düzeltmesi (v16 bileşenleri), 2026-10-12 ---- */
:root, [data-theme] {
  --profaj-kirmizi: #FF2400;
  --profaj-kirmizi-koyu: #D91F00;
  --profaj-gri: #302e2d;
}
/* Birincil düğmeler: Kaydet, + Yeni ..., Gönder */
.btn-primary, .es-button.primary-action, .es-button[data-variant="solid"],
.btn.btn-primary.primary-action, .modal .btn-primary {
  background-color: var(--profaj-kirmizi) !important;
  border-color: var(--profaj-kirmizi) !important;
  color: #fff !important;
}
.btn-primary:hover, .es-button.primary-action:hover, .es-button[data-variant="solid"]:hover {
  background-color: var(--profaj-kirmizi-koyu) !important;
  border-color: var(--profaj-kirmizi-koyu) !important;
}
/* Sol menüde seçili öğe */
.standard-sidebar-item.selected, .standard-sidebar-item.active,
.sidebar-item-container.selected > .standard-sidebar-item,
.standard-sidebar-item[aria-current="page"] {
  background-color: color-mix(in srgb, var(--profaj-kirmizi) 12%, transparent) !important;
}
.standard-sidebar-item.selected .item-anchor, .standard-sidebar-item.active .item-anchor,
.standard-sidebar-item.selected .sidebar-item-label, .standard-sidebar-item.selected svg {
  color: var(--profaj-kirmizi) !important;
  stroke: currentColor;
}
/* Sekmeler, bağlantılar, odak, onay kutuları */
.form-tabs-list .nav-link.active, .nav-tabs .nav-link.active {
  color: var(--profaj-gri) !important;
  border-bottom-color: var(--profaj-kirmizi) !important;
}
/* Bağlantı değerleri (Müşteri, Proje …) koyu gri; kırmızı yalnız üzerine gelince/odakta (Tepe: kırmızı değer yazısı okunmuyor) */
.frappe-control a:not(.btn), .timeline-content a { color: var(--profaj-gri); }
.frappe-control a:not(.btn):hover, .frappe-control a:not(.btn):focus,
.timeline-content a:hover, .list-row-col a.ellipsis:hover { color: var(--profaj-kirmizi); }
.indicator-pill.red { color: var(--profaj-kirmizi); }
/* Seçili sol menü satırı (v16 sınıfları) */
.standard-sidebar-item.active-sidebar {
  background-color: color-mix(in srgb, var(--profaj-kirmizi) 12%, transparent) !important;
}
.standard-sidebar-item.active-sidebar .sidebar-item-label, .standard-sidebar-item.active-sidebar svg {
  color: var(--profaj-kirmizi-koyu) !important;
}
/* Uzun düz metin alanları (ör. fatura Açıklamalar = banka/IBAN metni) ana sayfada sınırlı yükseklik */
.frappe-control[data-fieldname="remarks"] .like-disabled-input,
.frappe-control[data-fieldname="remarks"] textarea { max-height: 7.5em; overflow-y: auto; }
input[type="checkbox"]:checked, input[type="radio"]:checked {
  accent-color: var(--profaj-kirmizi);
  background-color: var(--profaj-kirmizi) !important;
  border-color: var(--profaj-kirmizi) !important;
}
.form-control:focus, .es-input:focus, input:focus, textarea:focus, select:focus {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--profaj-kirmizi) 35%, transparent) !important;
  border-color: var(--profaj-kirmizi) !important;
}
.page-head .title-text, .sidebar-header .header-title { color: var(--profaj-gri); }

/* ---- Görev ekranları (Perfex düzeni; public/js/gorev_panel.js; tasarım dili: köşeli, Frappe bileşenleri) ---- */
.gp-arka { position: fixed; inset: 0; background: rgba(30, 28, 27, .45); z-index: 1030; display: none; overflow-y: auto; padding: 32px 16px; }
.gp-pencere { max-width: 1240px; margin: 0 auto; background: var(--card-bg, #fff); border: var(--pj-kenar); box-shadow: 0 20px 60px rgba(0,0,0,.25); }
body.gp-acik { overflow: hidden; }
.gp-icerik { color: var(--text-color); font-size: 13px; }
.gp-yukleniyor { padding: 40px; color: var(--text-muted); }
.gp-ust { display: flex; align-items: flex-start; gap: 8px; padding: 16px 20px; border-bottom: var(--pj-kenar); }
.gp-ust-sol { flex: 1; min-width: 0; }
.gp-baslik-satir { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gp-baslik { font-size: 18px; margin: 0; font-weight: 700; color: var(--pj-gri); }
.gp-bag { color: var(--text-muted); margin-top: 4px; }
.gp-bag a, .gp-git { color: var(--pj-gri); font-weight: 600; cursor: pointer; }
.gp-bag a:hover, a.gp-git:hover { color: var(--pj-kirmizi); }
.gp-kolonlar { display: grid; grid-template-columns: minmax(0, 1fr) 340px; }
@media (max-width: 960px) { .gp-kolonlar { grid-template-columns: 1fr; } }
.gp-sol { padding: 16px 20px 28px; border-right: var(--pj-kenar); min-width: 0; }
.gp-sag { padding: 16px; background: var(--subtle-fg, #fafaf9); }
.gp-olusturan { display: flex; align-items: center; gap: 6px; color: var(--text-muted); }
.gp-olusturan .gp-av { margin-right: 2px; }
.gp-dugmeler { display: flex; gap: 6px; flex-wrap: wrap; margin: 12px 0 4px; }
.gp-yesil { background: var(--green-600, #16a34a); color: #fff; border-color: var(--green-600, #16a34a); font-weight: 600; }
.gp-yesil:hover { background: var(--green-700, #15803d); color: #fff; }
.gp-calisiyor { background: var(--pj-kirmizi); color: #fff; font-weight: 600; }
.gp-calisiyor:hover { color: #fff; } .gp-saat { font-variant-numeric: tabular-nums; }
.gp-bolum { border-top: var(--pj-kenar); padding: 14px 0 6px; margin-top: 14px; }
.gp-bolum-bas { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.gp-bolum-bas a, .gp-bilgi a:not(.dropdown-item), .gp-kisiler-bas a { color: var(--pj-kirmizi); cursor: pointer; font-size: 12px; font-weight: 600; }
.gp-bolum h4, .gp-akis summary h4 { font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); margin: 0; font-weight: 700; display: inline; }
.gp-akis summary { cursor: pointer; list-style: none; }
.gp-akis-satir { padding: 4px 0; border-bottom: var(--pj-kenar); }
.gp-aciklama { max-height: 360px; overflow-y: auto; }
.gp-aciklama.gp-duzenleniyor { max-height: none; overflow: visible; }
.gp-aciklama .ql-editor { min-height: 120px; max-height: 50vh; overflow-y: auto; }
.gp-ilerleme { height: 6px; margin-bottom: 8px; background: var(--gray-200, #eee); }
.gp-ilerleme .progress-bar { background: var(--pj-kirmizi); }
.gp-madde { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px dashed var(--border-color); }
.gp-madde label { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-weight: 400; flex: 1; min-width: 0; }
.gp-madde input { accent-color: var(--pj-kirmizi); margin-top: 3px; }
.gp-madde.on label span { text-decoration: line-through; color: var(--text-muted); }
.gp-madde em { font-size: 11px; color: var(--text-muted); font-style: normal; white-space: nowrap; }
.gp-madde .gp-gorevyap, .gp-madde .gp-madde-gorev { font-size: 11px; cursor: pointer; white-space: nowrap; }
.gp-madde .gp-gorevyap { color: var(--text-muted); visibility: hidden; }
.gp-madde .gp-sil { color: var(--text-muted); cursor: pointer; visibility: hidden; }
.gp-madde:hover .gp-gorevyap, .gp-madde:hover .gp-sil { visibility: visible; }
.gp-ekle { display: flex; align-items: center; gap: 6px; margin-top: 6px; } .gp-ekle span { color: var(--text-muted); }
.gp-tablo { margin: 0; } .gp-tablo td { vertical-align: middle; }
.gp-alt { cursor: pointer; } .gp-alt:hover td { background: var(--subtle-accent, #f4f4f3); }
.gp-avs { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.gp-ek { display: inline-flex; align-items: center; gap: 4px; border: var(--pj-kenar); padding: 4px 10px; margin: 0 6px 6px 0; color: var(--pj-gri); }
.gp-yorum { display: flex; gap: 10px; padding: 10px 0; border-bottom: var(--pj-kenar); }
.gp-yorum-govde { flex: 1; min-width: 0; } .gp-yorum-metin { margin-top: 3px; overflow-wrap: anywhere; }
.gp-joseph { background: color-mix(in srgb, var(--blue-500, #3b82f6) 7%, transparent); border-left: 3px solid var(--blue-500, #3b82f6); padding-left: 8px; }
.gp-yorum-yaz { margin-top: 10px; }
.gp-yorum-yaz .ql-editor { min-height: 70px; }
.gp-yorum-alt { display: flex; justify-content: flex-end; gap: 6px; margin-top: 6px; }
.gp-ipucu { font-size: 12px; color: var(--pj-kirmizi); font-weight: 600; margin-bottom: 4px; }
.gp-bilgi { background: var(--card-bg, #fff); border: var(--pj-kenar); padding: 12px 14px; }
.gp-bilgi-bas { display: flex; justify-content: space-between; align-items: center; padding-bottom: 8px; border-bottom: var(--pj-kenar); font-size: 14px; }
.gp-bilgi-satir { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 34px; border-bottom: var(--pj-kenar); }
.gp-bilgi-ad { color: var(--text-muted); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.gp-bilgi-ad svg, .gp-kisiler-bas svg { width: 14px; height: 14px; }
.gp-bilgi-deger { text-align: right; display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; min-width: 0; }
.gp-yerinde { border: 1px solid transparent; background: transparent; padding: 2px 4px; font-size: 13px; color: var(--pj-gri); max-width: 170px; text-align: right; }
.gp-yerinde:hover:not([disabled]) { border-color: var(--border-color); background: var(--control-bg); }
.gp-yerinde:focus { border-color: var(--pj-kirmizi); background: var(--control-bg); outline: 0; }
select.gp-yerinde { text-align-last: right; cursor: pointer; } .gp-tekrar { border: 1px solid transparent; background: transparent; font-size: 13px; }
.gp-sayi { width: 90px; }
input[type=checkbox].gp-yerinde { accent-color: var(--pj-kirmizi); width: 16px; height: 16px; }
.gp-kucuk { font-size: 11px; }
.gp-bag-gorev { display: inline-flex; gap: 3px; } .gp-bag-sil { color: var(--text-muted) !important; }
.gp-atayan { display: flex; align-items: center; gap: 6px; padding: 10px 0; border-bottom: var(--pj-kenar); color: var(--text-muted); }
.gp-kisiler { padding: 10px 0; border-bottom: var(--pj-kenar); }
.gp-kisiler-bas { display: flex; align-items: center; gap: 6px; color: var(--text-muted); margin-bottom: 6px; }
.gp-kisiler-bas span { flex: 1; }
.gp-kisi { position: relative; } .gp-kisi a { position: absolute; top: -6px; right: -4px; font-size: 11px; color: var(--text-muted); cursor: pointer; display: none; }
.gp-kisi:hover a { display: block; }
.gp-kisi-satir { display: flex; justify-content: space-between; padding: 3px 0; border-bottom: 1px dashed var(--border-color); }
.gp-kisi-satir:last-child { border-bottom: 0; } .gp-kisi-satir a { color: var(--text-muted) !important; visibility: hidden; }
.gp-kisi-satir:hover a { visibility: visible; }
.gp-av { display: inline-flex; } .gp-av .avatar { margin: 0; }
.gp-etiket { display: inline-block; font-size: 11px; padding: 1px 8px; margin: 0 4px 4px 0;
  background: color-mix(in srgb, var(--pj-kirmizi) 10%, transparent); color: var(--profaj-red-dark); font-weight: 600; }
.gp-etiket a { cursor: pointer; color: inherit; }
.gp-diger { margin-top: 10px; } .gp-diger summary { cursor: pointer; color: var(--text-muted); }
.gp-sablon { display: block; padding: 8px 10px; border: var(--pj-kenar); margin-bottom: 6px; font-weight: 400; cursor: pointer; }
.gp-sablon-grup { margin: 12px 0 6px; color: var(--text-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.gp-yeni .modal-dialog { max-width: 880px; }
.gp-baslik-input { font-size: 18px; font-weight: 700; color: var(--pj-gri); height: 40px; }
.gp-hata, .gp-bilgi-satir.gp-hata { background: color-mix(in srgb, var(--pj-kirmizi) 10%, transparent); }
input.gp-hata, .gp-bilgi-satir.gp-hata .gp-bilgi-ad { border-color: var(--pj-kirmizi) !important; color: var(--pj-kirmizi); }
.gp-y-aciklama .ql-editor { min-height: 160px; }

/* ---- Görev ekranı sade görünüm (Tepe 2026-10-19: "gri alanlara gerek yok; Frappe'nin alan girişleri daha güzeldi") ---- */
.gp-arka.gp-tam { padding: 0; background: var(--bg-color, #fff); }
.gp-tam .gp-pencere { max-width: none; min-height: 100vh; border: 0; box-shadow: none; }
.gp-pencere, .gp-sag { background: var(--card-bg, #fff); }
.gp-kolonlar { grid-template-columns: minmax(0, 1fr) 360px; }
.gp-sol { border-right: 0; padding: 14px 20px 24px; }
.gp-sag { border-left: 1px solid var(--border-color); padding: 10px 16px 24px; }
.gp-ust { padding: 12px 20px; align-items: center; }
.gp-ikon-btn { padding: 4px 8px; line-height: 1; }
.gp-icerik .btn-default { background: var(--card-bg, #fff); border: 1px solid var(--border-color); box-shadow: none; }
.gp-icerik .btn-default:hover { border-color: var(--gray-500, #a0a0a0); }
.gp-baslik-input { height: 38px !important; font-size: 18px !important; font-weight: 700; }
.gp-bolum { padding: 10px 0 4px; margin-top: 10px; }
.gp-bilgi { border: 0; padding: 0; background: none; }
.gp-bilgi-bas { border-bottom: 0; padding: 4px 0; }
.gp-bilgi-satir { min-height: 34px; border-bottom: 0; }
.gp-bilgi-ad { font-size: 12px; }
.gp-yerinde { max-width: 180px; }
.gp-sayi { width: 90px; }
.gp-renk { width: 44px !important; padding: 1px !important; }
.gp-etiket { background: none; border: 1px solid var(--border-color); color: var(--pj-gri); font-weight: 500; }
.gp-grup { border-top: 1px solid var(--border-color); }
.gp-grup summary { cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); padding: 10px 0 4px; }
.gp-grup[open] summary { padding-bottom: 2px; }
/* Frappe form kenar çubuğu gibi satırlar */
.gp-yan-baslik { display: flex; align-items: center; gap: 6px; padding: 4px 0 10px; font-size: 13px; }
.gp-yan-baslik a { color: var(--text-muted); cursor: pointer; }
.gp-yan-satir { position: relative; padding: 8px 0; border-top: 1px solid var(--border-color); }
.gp-yan-bas { display: flex; align-items: center; gap: 6px; color: var(--text-muted); font-size: 12px; }
.gp-yan-bas svg { width: 14px; height: 14px; }
.gp-yan-bas span { flex: 1; text-align: left; }
.gp-bilgi-deger { flex-wrap: nowrap; }
.gp-ekle-btn { margin-left: auto; color: var(--text-muted) !important; cursor: pointer; display: inline-flex; }
.gp-ekle-btn:hover { color: var(--pj-kirmizi) !important; }
.gp-yan-icerik { margin-top: 6px; }
.gp-kisi-satir { display: flex; align-items: center; gap: 8px; padding: 3px 0; border-bottom: 0; }
.gp-kisi-ad { flex: 1; min-width: 0; }
.gp-kisi-satir a { visibility: hidden; color: var(--text-muted) !important; cursor: pointer; }
.gp-kisi-satir:hover a { visibility: visible; }
.gp-ek-satir { display: flex; align-items: center; gap: 6px; padding: 2px 0; font-size: 12px; color: var(--pj-gri); min-width: 0; }
.gp-ek-satir span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-ek-satir svg { width: 13px; height: 13px; flex-shrink: 0; }
.gp-atayan { padding: 4px 0 0; border-bottom: 0; font-size: 12px; }
/* Görev Bilgisi Frappe form düzeni (Tepe 2026-10-20): etiket üstte, girilebilir = Frappe'nin gri kutusu, hesaplanan = düz yazı */
.gp-izgara { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 12px; padding: 4px 0 8px; }
.gp-alan { min-width: 0; margin: 0; }
.gp-alan-tam { grid-column: 1 / -1; }
.gp-alan-ad { font-size: 12px; color: var(--text-muted); margin-bottom: 4px; }
.gp-alan-alt { font-size: 11px; margin-top: 3px; }
.gp-icerik .gp-alan .form-control { width: 100%; max-width: none; text-align: left; text-align-last: auto; height: 32px; font-size: 13px;
  background: var(--control-bg) !important; border: 1px solid transparent !important; box-shadow: none; color: var(--pj-gri); padding: 4px 10px; }
.gp-icerik .gp-alan .form-control:hover:not([disabled]) { border-color: var(--border-color) !important; }
.gp-icerik .gp-alan .form-control:focus { border-color: var(--pj-kirmizi) !important; background: var(--card-bg, #fff) !important; }
.gp-icerik .gp-alan .form-control[disabled] { background: transparent !important; padding-left: 0; }
.gp-okunur { font-size: 13px; color: var(--pj-gri); padding: 6px 0 0; min-height: 32px; }
.gp-onay { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 400; color: var(--pj-gri); cursor: pointer; }
.gp-onay input { accent-color: var(--pj-kirmizi); width: 16px; height: 16px; margin: 0; }
.gp-tik-kutu { display: flex !important; align-items: center; justify-content: space-between; gap: 8px; height: auto !important; min-height: 32px; cursor: default; }
.gp-tik-kutu[role=button] { cursor: pointer; }
.gp-tik-kutu svg { width: 14px; height: 14px; color: var(--text-muted); flex-shrink: 0; margin-left: auto; }
.gp-tik-icerik { flex: 1; }
.gp-tik-icerik .gp-bag-gorev { display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; }
.gp-tik-icerik .gp-bag-gorev .gp-git { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.gp-tik-icerik { flex-direction: column; align-items: stretch; }
.gp-tik-icerik { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.gp-kutu-yazi { background: var(--card-bg, #fff); border: 1px solid var(--border-color); padding: 10px 12px; min-height: 48px; cursor: text; }
.gp-kutu-yazi:hover { background: var(--control-bg); }
.gp-yorum-alan .ql-editor { background: var(--control-bg); border: 0 !important; }
.gp-grup summary { color: var(--text-color) !important; font-size: 12px !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 600 !important; }
/* Tepe 2026-10-20 "minik çerçeveli beyaz bölüm": görev ekranındaki tüm giriş alanları beyaz + ince çerçeve */
.gp-icerik .gp-alan .form-control, .gp-icerik .gp-tik-kutu, .gp-icerik .gp-satir-tarih, .gp-icerik .gp-yeni-madde,
.gp-icerik .gp-baslik-input, .gp-icerik .gp-y-aciklama .ql-container, .gp-yorum-alan .ql-editor {
  background: var(--card-bg, #fff) !important; border: 1px solid var(--border-color) !important; }
.gp-icerik .gp-alan .form-control:hover:not([disabled]), .gp-icerik .gp-tik-kutu[role=button]:hover, .gp-icerik .gp-satir-tarih:hover:not([disabled]),
.gp-icerik .gp-yeni-madde:hover { border-color: var(--gray-500, #9a9a9a) !important; }
.gp-icerik .gp-alan .form-control:focus, .gp-icerik .gp-satir-tarih:focus, .gp-icerik .gp-yeni-madde:focus, .gp-icerik .gp-baslik-input:focus {
  border-color: var(--pj-kirmizi) !important; box-shadow: 0 0 0 1px var(--pj-kirmizi) !important; }
.gp-icerik .gp-alan .form-control[disabled], .gp-icerik .gp-satir-tarih[disabled] { border-color: transparent !important; }
/* Şablon kataloğu (yeni görevde liste boşken) */
.gp-katalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; margin-bottom: 10px; }
.gp-katalog-kart { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border: 1px solid var(--border-color); background: var(--card-bg, #fff);
  cursor: pointer; color: var(--pj-gri) !important; font-size: 12px; }
.gp-katalog-kart:hover { border-color: var(--pj-kirmizi); }
.gp-katalog-kart b { font-size: 13px; font-weight: 600; }
.gp-katalog-kart span { color: var(--text-muted); font-size: 11px; }
.gp-katalog-kart.gp-uygun { border-color: var(--green-500, #22c55e); }
/* Kontrol listesi (Perfex düzeni): yuvarlak onay, yerinde düzenleme, satır simgeleri, yüzdeli çubuk */
.gp-sablon-satir { display: flex; justify-content: space-between; align-items: center; color: var(--text-muted); margin-bottom: 8px; }
.gp-sablon-satir a { color: var(--text-muted) !important; font-weight: 400 !important; font-size: 13px !important; }
.gp-yuzde { position: relative; height: 22px; background: var(--subtle-fg, #f3f3f3); margin-bottom: 6px; }
.gp-yuzde-dolu { position: absolute; left: 0; top: 0; bottom: 0; background: color-mix(in srgb, var(--green-500, #22c55e) 30%, transparent); }
.gp-yuzde span { position: relative; padding-left: 6px; font-size: 12px; line-height: 22px; }
.gp-icerik .gp-madde { position: relative; display: flex; align-items: flex-start; gap: 10px; padding: 8px 6px; border-bottom: 0; }
.gp-icerik .gp-madde:hover { background: var(--subtle-fg, #f7f7f7); }
.gp-icerik input[type=checkbox].gp-yuvarlak { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; min-width: 20px; border: 1.5px solid var(--gray-400, #c0c0c0);
  border-radius: 50% !important; margin: 1px 0 0 !important; cursor: pointer; background: var(--card-bg, #fff); box-shadow: none; }
.gp-icerik input[type=checkbox].gp-yuvarlak::before, .gp-icerik input[type=checkbox].gp-yuvarlak::after { display: none !important; }
.gp-icerik input[type=checkbox].gp-yuvarlak:checked { background: var(--green-500, #22c55e); border-color: var(--green-500, #22c55e);
  box-shadow: inset 0 0 0 3px var(--card-bg, #fff); }
.gp-madde-govde { flex: 1; min-width: 0; }
.gp-madde-metin { outline: 0; padding: 1px 4px; margin-left: -4px; display: block; color: var(--pj-gri); }
.gp-madde-metin[contenteditable]:focus { background: var(--card-bg, #fff); box-shadow: 0 0 0 1px var(--border-color); }
.gp-madde.on .gp-madde-metin { text-decoration: line-through; color: var(--text-muted); }
.gp-madde-alt { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.gp-madde-alt:empty { display: none; }
.gp-madde-alt em { font-style: normal; }
.gp-madde-tarih { display: inline-flex; align-items: center; gap: 3px; }
.gp-madde-tarih svg { width: 12px; height: 12px; }
.gp-madde-ikonlar { display: inline-flex; gap: 10px; visibility: hidden; }
.gp-madde:hover .gp-madde-ikonlar { visibility: visible; }
.gp-madde-ikonlar a { color: var(--text-muted) !important; cursor: pointer; display: inline-flex; visibility: inherit !important; }
.gp-madde-ikonlar a:hover { color: var(--pj-gri) !important; }
.gp-madde-ikonlar svg { width: 16px; height: 16px; }
.gp-madde-kisi { position: relative; }
.gp-madde .gp-acilir { top: calc(100% + 2px); left: 0; right: auto; width: 290px; cursor: default; }
/* liste düzeni: onay | madde | atanan | bitiş | simgeler */
.gp-icerik .gp-madde { display: grid !important; grid-template-columns: 22px minmax(0, 1fr) 150px 128px 46px; gap: 10px; align-items: start; }
.gp-madde-bas { font-size: 11px; color: var(--text-muted); padding-top: 0 !important; padding-bottom: 2px !important; }
.gp-madde-bas:hover { background: none !important; }
.gp-madde-kisi { display: flex; align-items: center; gap: 6px; min-height: 28px; font-size: 12px; min-width: 0; }
.gp-madde-kisi span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-madde-ata { cursor: pointer; }
.gp-madde-ata:hover span.text-muted { color: var(--pj-kirmizi) !important; }
.gp-icerik .gp-satir-tarih { height: 28px; font-size: 12px; padding: 2px 6px; background: var(--control-bg); border: 1px solid transparent; }
.gp-icerik .gp-satir-tarih:hover:not([disabled]) { border-color: var(--border-color); }
.gp-icerik .gp-satir-tarih[disabled] { background: transparent; }
.gp-madde-ikonlar { gap: 8px !important; padding-top: 4px; }
/* Aramalı kişi listesi (İşi Ata, Takip Edenler, Paylaş) */
.gp-kisiler { position: relative; }
.gp-acilir { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; background: var(--card-bg, #fff); border: 1px solid var(--border-color);
  box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: 6px; }
.gp-acilir-liste { max-height: 300px; overflow-y: auto; margin-top: 4px; }
.gp-acilir-oge { display: flex; align-items: center; gap: 8px; padding: 5px 6px; cursor: pointer; color: var(--pj-gri) !important; }
.gp-acilir-oge:hover { background: var(--subtle-fg, #f4f4f3); }
.gp-acilir-oge small { margin-left: auto; color: var(--text-muted); font-size: 11px; white-space: nowrap; }
/* Yorum: Frappe yorum kontrolü yalnız düzenleyici (kendi başlığı, avatarı ve düğmesi kapalı) */
.gp-yorum-alan .comment-input-header, .gp-yorum-alan .comment-input-container > .avatar, .gp-yorum-alan .btn-comment,
.gp-yorum-alan .comment-input-wrapper > .btn, .gp-yorum-alan button.btn { display: none !important; }
.gp-yorum-alan .ql-editor { min-height: 70px; border: 1px solid var(--border-color); }
.gp-yorum-dosyalar:empty { display: none; }
.gp-yorum-dosyalar { margin-top: 6px; }

/* Proje özeti (proje formunun üstü; public/js/project.js) */
.profaj-proje .pp-sayilar { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.profaj-proje .pp-sayilar div { border: 1px solid var(--border-color); border-radius: 10px; padding: 8px 14px; min-width: 120px; }
.profaj-proje .pp-sayilar b { display: block; font-size: 20px; }
.profaj-proje .pp-sayilar span { font-size: 12px; color: var(--text-muted); }
.profaj-proje .pp-sayilar .pp-kirmizi b { color: #D91F00; }
.profaj-proje .pp-pills { margin-bottom: 10px; }
.profaj-proje .pp-sekme { display: flex; gap: 16px; border-bottom: 1px solid var(--border-color); margin-bottom: 8px; }
.profaj-proje .pp-sekme a { padding: 6px 0; cursor: pointer; color: var(--text-muted); }
.profaj-proje .pp-sekme a.on { color: var(--text-color); border-bottom: 2px solid #FF2400; font-weight: 600; }
.profaj-proje .pp-sekme .pp-tum { margin-left: auto; }
.profaj-proje .pp-gorev { cursor: pointer; }
.profaj-proje .pp-gorev:hover { background: var(--subtle-fg); }
.profaj-proje table { margin-bottom: 6px; }
.profaj-proje-kutu { padding: 16px 0 4px; }
.profaj-proje-kutu .section-body { padding: 0 var(--padding-md, 15px); }
.profaj-proje .pp-kimlik { border: 1px solid var(--border-color); border-radius: 12px; padding: 14px 18px; margin-bottom: 14px; }
.profaj-proje .pp-baslik { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.profaj-proje .pp-baslik h3 { margin: 0; font-size: 18px; }
.profaj-proje .pp-bilgi { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-bottom: 10px; }
.profaj-proje .pp-bilgi div { display: flex; flex-direction: column; }
.profaj-proje .pp-bilgi span, .profaj-proje .pp-ilerleme span, .profaj-proje .pp-uyeler span { font-size: 11px; color: var(--text-muted); }
.profaj-proje .pp-bilgi b { font-weight: 500; }
.profaj-proje .pp-ilerleme { margin-bottom: 8px; }
.profaj-proje .pp-bar { height: 6px; background: var(--subtle-fg, #f3f2f0); border-radius: 3px; overflow: hidden; margin-top: 3px; max-width: 420px; }
.profaj-proje .pp-bar b { display: block; height: 100%; background: #FF2400; }
.profaj-proje .pp-uyeler { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-bottom: 6px; }
.profaj-proje .pp-uyeler span { margin-right: 6px; }
.profaj-proje .pp-not { font-size: 13px; color: var(--text-muted); border-top: 1px dashed var(--border-color); padding-top: 8px; }

/* Proje sayfası Perfex düzeni (public/js/project.js) */
.profaj-proje .pp-sekmeler { display: flex; flex-wrap: wrap; gap: 4px; background: var(--subtle-fg, #f3f2f0); border-radius: 10px; padding: 5px; margin-bottom: 16px; }
.profaj-proje .pp-sekmeler a { padding: 7px 12px; border-radius: 8px; cursor: pointer; color: var(--text-color); display: inline-flex; align-items: center; gap: 6px; font-size: 13px; text-decoration: none; }
.profaj-proje .pp-sekmeler a:hover { background: var(--fg-color, #fff); }
.profaj-proje .pp-sekmeler a.on { background: var(--fg-color, #fff); box-shadow: 0 1px 2px rgba(0,0,0,.08); font-weight: 600; }
.profaj-proje .pp-durum { margin-bottom: 14px; }
.profaj-proje .pp-durum span { font-weight: 600; }
.profaj-proje .pp-bar { height: 6px; background: var(--subtle-fg, #ececec); border-radius: 3px; overflow: hidden; margin-top: 6px; }
.profaj-proje .pp-bar i { display: block; height: 100%; background: #22c55e; }
.profaj-proje .pp-bar-genis { height: 6px; }
.profaj-proje .pp-iki { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border-color); border-radius: 10px; }
.profaj-proje .pp-iki > div { padding: 18px 22px; min-width: 0; }
.profaj-proje .pp-sol { border-right: 1px solid var(--border-color); }
.profaj-proje .pp-iki h4 { font-size: 16px; margin: 0 0 14px; }
.profaj-proje .pp-iki h5 { font-size: 14px; margin: 18px 0 8px; display: flex; align-items: center; gap: 6px; }
.profaj-proje .pp-alanlar { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.profaj-proje .pp-alan span { display: block; font-size: 12px; color: var(--text-muted); margin-bottom: 2px; }
.profaj-proje .pp-alan b { font-weight: 500; }
.profaj-proje .pp-tam { margin-top: 16px; }
.profaj-proje .pp-kartlar { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.profaj-proje .pp-kart { border: 1px solid var(--border-color); border-radius: 8px; padding: 12px 14px; }
.profaj-proje .pp-kart b { display: block; font-weight: 600; }
.profaj-proje .pp-kart span { font-size: 12px; color: var(--text-muted); }
.profaj-proje .pp-kar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; border: 1px solid var(--border-color); border-radius: 8px; padding: 12px 14px; }
.profaj-proje .pp-kar span { display: block; font-size: 12px; color: var(--text-muted); }
.profaj-proje .pp-arti b { color: #16a34a; }
.profaj-proje .pp-eksi, .profaj-proje .pp-eksi b { color: #D91F00; }
.profaj-proje .pp-dipnot { font-size: 11px; color: var(--text-muted); margin: 6px 0 0; }
.profaj-proje .pp-grafik-bas { display: flex; align-items: center; justify-content: space-between; }
.profaj-proje .pp-grafik-bas select { width: auto; }
.profaj-proje .pp-filtre { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; }
.profaj-proje .pp-filtre a { padding: 3px 10px; border: 1px solid var(--border-color); border-radius: 999px; cursor: pointer; font-size: 12px; color: var(--text-muted); }
.profaj-proje .pp-filtre a.on { border-color: #FF2400; color: var(--text-color); font-weight: 600; }
.profaj-proje .pp-filtre .pp-ara { width: 200px; margin-left: auto; }
.profaj-proje .pp-tw { overflow-x: auto; }
.profaj-proje .pp-rozetler { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.profaj-proje .pp-rozet { border: 1px solid var(--border-color); border-radius: 999px; padding: 3px 10px; font-size: 12px; }
.profaj-proje .pp-fazlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.profaj-proje .pp-faz { border: 1px solid var(--border-color); border-radius: 8px; padding: 12px 14px; cursor: pointer; }
.profaj-proje .pp-faz-bas { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.profaj-proje .pp-yeni { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 14px; }
.profaj-proje .pp-yorum { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border-color); }
.profaj-proje .pp-etkinlik div { padding: 5px 0; border-bottom: 1px dashed var(--border-color); font-size: 13px; }
.profaj-proje .pp-bos { padding: 10px 0; }
.profaj-proje .pp-gorev-link { cursor: pointer; }
@media (max-width: 900px) { .profaj-proje .pp-iki { grid-template-columns: 1fr; } .profaj-proje .pp-sol { border-right: 0; border-bottom: 1px solid var(--border-color); } }
.profaj-proje .pp-uyeler { display: flex; flex-wrap: wrap; gap: 4px; }
.profaj-proje .pp-uyeler .avatar { margin: 0; }
.profaj-proje .pp-uye-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px 12px; align-items: center; }
.profaj-proje .pp-uye { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.profaj-proje .pp-uye-liste .pp-uye-ekle { justify-self: start; }
.profaj-proje .pp-gorunum { margin-bottom: 12px; }
.profaj-proje .pp-tur { font-size: 11px; color: var(--text-muted); border: 1px solid var(--border-color); border-radius: 999px; padding: 0 6px; }
.profaj-proje .pp-uye-liste { display: block; }
.profaj-proje .pp-dep { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 4px 0; border-bottom: 1px dashed var(--border-color); }
.profaj-proje .pp-dep-ad { min-width: 110px; font-size: 12px; color: var(--text-muted); }

/* Proje sağ kenar kartı */
.profaj-pkart { border: 1px solid var(--border-color); border-radius: 10px; padding: 4px 14px; margin-bottom: 14px; background: var(--fg-color, #fff); }
.profaj-pkart .pk-bolum { padding: 10px 0; border-bottom: 1px solid var(--border-color); }
.profaj-pkart .pk-bolum:last-child { border-bottom: 0; }
.profaj-pkart .pk-baslik { font-size: 11px; color: var(--text-muted); margin-bottom: 2px; }
.profaj-pkart .pk-alt { font-size: 12px; color: var(--text-muted); }
.profaj-pkart .pk-satir { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 2px 0; }
.profaj-pkart .pk-satir span { color: var(--text-muted); }
.profaj-pkart .pk-satir b { font-weight: 600; text-align: right; }
.profaj-pkart .pk-uyeler { display: flex; flex-wrap: wrap; gap: 2px; }
.profaj-pkart .pp-eksi { color: #D91F00; }

.profaj-proje .pp-sayilar { display: flex; flex-wrap: wrap; gap: 12px; margin: 6px 0 14px; }
.profaj-proje .pp-sayi { border: 1px solid var(--border-color); border-radius: 10px; padding: 10px 16px; min-width: 120px; }
.profaj-proje .pp-sayi b { display: block; font-size: 20px; }
.profaj-proje .pp-sayi span { font-size: 12px; color: var(--text-muted); }
.profaj-proje .pp-sayi.pp-kirmizi b { color: #D91F00; }
.profaj-proje .pp-aciklama-kutu { background: var(--subtle-fg, #f7f7f6); border-radius: 8px; padding: 10px 14px; margin-bottom: 14px; font-size: 13px; }
.profaj-proje .pp-ozet-gorev h5, .profaj-proje .pp-grafik-bas h5 { font-size: 14px; margin: 14px 0 8px; }
.profaj-proje .pp-perfex { margin-top: 14px; border: 1px solid var(--border-color); border-radius: 8px; padding: 8px 14px; }
.profaj-proje .pp-perfex summary { cursor: pointer; color: var(--text-muted); font-size: 13px; }
.profaj-proje .pp-perfex .pp-alanlar { margin-top: 10px; }

.profaj-pkart .pk-ust { font-weight: 600; padding: 10px 0 0; }
.profaj-pkart .pp-bar { height: 6px; background: var(--subtle-fg, #ececec); border-radius: 3px; overflow: hidden; margin: 4px 0 8px; }
.profaj-pkart .pp-bar i { display: block; height: 100%; background: #22c55e; }
.profaj-pkart .pk-sayilar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 4px; }
.profaj-pkart .pk-sayi { border: 1px solid var(--border-color); border-radius: 8px; padding: 4px 6px; text-align: center; }
.profaj-pkart .pk-sayi b { display: block; font-size: 16px; }
.profaj-pkart .pk-sayi span { font-size: 11px; color: var(--text-muted); }
.profaj-pkart .pk-kirmizi b { color: #D91F00; }

.profaj-proje .pp-fkartlar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; }
.profaj-proje .pp-fkart { border: 1px solid var(--border-color); border-radius: 10px; padding: 10px 16px; min-width: 110px; cursor: pointer; text-decoration: none; color: var(--text-color); }
.profaj-proje .pp-fkart b { display: block; font-size: 22px; line-height: 1.2; }
.profaj-proje .pp-fkart span { font-size: 12px; color: var(--text-muted); }
.profaj-proje .pp-fkart:hover { border-color: var(--gray-400, #bbb); }
.profaj-proje .pp-fkart.on { border-color: #FF2400; box-shadow: 0 0 0 1px #FF2400 inset; }
.profaj-proje .pp-fkart.pp-kirmizi b { color: #D91F00; }
.profaj-proje .pp-ara { max-width: 280px; margin-bottom: 10px; }
.profaj-proje .pp-fkartlar { gap: 8px; }
.profaj-proje .pp-fkart { min-width: 0; flex: 1 1 0; padding: 8px 12px; }
.profaj-proje .pp-fkart span { white-space: nowrap; }


/* --- TASARIM DİLİ: köşeli (tüm özel bileşenler ve Frappe kutuları); avatarlar yuvarlak kalır --- */
.btn, .form-control, .indicator-pill, .modal-content, .dropdown-menu, .frappe-card, .widget, .number-widget-box, .form-tabs-list .nav-link,
.grid-heading-row, .form-grid, .awesomplete > ul, .standard-sidebar-item, .layout-side-section .sidebar-item-container,
[class*="profaj-"], [class*=" pp-"], [class^="pp-"], [class*=" pk-"], [class^="pk-"], [class*=" gp-"], [class^="gp-"] { border-radius: 0 !important; }
.avatar, .avatar *, .avatar-frame { border-radius: 50% !important; }
/* Sayı kartı (pj-sayi): proje, görev süzgeci, sağ kart aynı ölçü */
.profaj-proje .pp-fkart, .profaj-proje .pp-sayi, .profaj-pkart .pk-sayi { border: var(--pj-kenar); padding: 8px 12px; }
.profaj-proje .pp-fkart b, .profaj-proje .pp-sayi b { font-size: 22px; font-weight: 700; }
.profaj-proje .pp-fkart.on { box-shadow: inset 0 -3px 0 var(--pj-kirmizi); border-color: var(--border-color); }
.profaj-proje .pp-fkart span { white-space: normal; display: block; line-height: 1.25; }
.profaj-proje .pp-fkartlar { gap: 8px; }
