body { min-width:0; --font-inter:"Inter","Inter Fallback"; }
[hidden],.mobile-overlay[hidden] { display:none !important; }
h1,h2,h3,h4,p { font-family:inherit; }
.lucide { flex:0 0 auto; }
.login-shell { background:linear-gradient(135deg,#0a2b51,#1669a6 55%,#0f8f6b); }
.login-brand .brand-logo-mark { width:48px; height:48px; }
.login-brand .brand-logo-image,.brand-logo-image { width:100%; height:100%; object-fit:contain; }
.login-brand > span:last-child { min-width:0; }
.login-brand strong { display:block; }
.login-brand small { color:var(--muted); }
.auth-input-wrap input { width:100%; }
.setup-body { min-height:100vh; padding:32px; background:linear-gradient(135deg,#0a2b51,#1669a6 52%,#e9f2f8); }
.setup-shell { min-height:calc(100vh - 64px); display:grid; place-items:center; }
.setup-card { width:min(100%,820px); padding:34px; border:1px solid #d7e1eb; border-radius:24px; background:#fff; box-shadow:0 24px 70px #061b3438; }
.setup-unlock-card { width:min(100%,560px); }
.setup-unlock-card .login-form { display:grid; gap:18px; }
.setup-card h1 { margin:24px 0 7px; font-size:30px; }
.setup-card > p { margin:0 0 24px; color:var(--muted); }
fieldset { margin:0 0 18px; padding:18px; border:1px solid var(--line); border-radius:16px; }
legend { padding:0 8px; color:var(--navy-900); font-weight:800; }
.setup-card label { display:block; color:var(--muted); font-size:12px; font-weight:800; }
.setup-card label > input,.setup-card label > select,.setup-card label > textarea { display:block; width:100%; min-height:42px; margin-top:7px; padding:9px 11px; border:1px solid var(--line); border-radius:10px; outline:none; color:var(--ink); background:var(--surface); transition:border-color 150ms ease,box-shadow 150ms ease; }
.setup-card label > textarea { min-height:100px; resize:vertical; }
.setup-card label > input:focus,.setup-card label > select:focus,.setup-card label > textarea:focus { border-color:var(--blue-600); box-shadow:0 0 0 3px rgba(39,116,196,.12); }
.setup-card label small { display:block; margin-top:6px; font-weight:500; }
.full { grid-column:1/-1; }
.alert { margin:0 0 18px; padding:13px 15px; border-radius:12px; font-size:13px; font-weight:700; transition:opacity 220ms ease,transform 220ms ease; }
.alert.fade { opacity:0; transform:translateY(-5px); }
.alert.success { color:#0b6644; border:1px solid #a9e5cd; background:#ddf7eb; }
.alert.error { color:#9a2634; border:1px solid #ffc5cc; background:#ffeaed; }
.alert.warning { color:#815300; border:1px solid #f1d487; background:#fff3d2; }
.flash-stack { display:grid; gap:8px; margin-bottom:16px; }
.flash-stack .alert { margin:0; }
.button.danger { color:#fff; border-color:var(--danger); background:var(--danger); }
.button.warning { color:#6f4800; border-color:#efd07b; background:#fff0c5; }
.button.icon { width:38px; padding:0; display:inline-grid; place-items:center; }
.button .animate-spin { animation:orlib-spin .75s linear infinite; }
.inline-form { display:inline-flex; margin:0; }
.secure-inline-form { align-items:center; gap:8px; flex-wrap:wrap; }
.actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.card > .actions:last-child,.card > .button-row:last-child { margin-top:22px; justify-content:flex-end; }
.card > h2:first-child { margin:0 0 18px; color:var(--ink); font-size:16px; }
.muted { color:var(--muted); }
.text-danger { color:var(--danger); }
.text-success { color:var(--success); }
.mono { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.detail-item { padding:15px; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); }
.detail-item span,.detail-item strong { display:block; }
.detail-item span { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; }
.detail-item strong { margin-top:5px; color:var(--ink); }
.empty-box { padding:40px 20px; color:var(--muted); text-align:center; }
.empty-box h3 { margin:0 0 7px; color:var(--ink); }
.empty-box p { margin:0; }
.search-row { display:flex; gap:10px; align-items:end; }
.search-row > label { flex:1; }
.member-picker { position:relative; min-width:0; }
.member-picker-input-wrap { position:relative; }
.member-picker-input-wrap > svg { position:absolute; z-index:1; left:13px; top:50%; width:17px; height:17px; color:var(--muted); transform:translateY(-50%); pointer-events:none; }
.member-picker-input-wrap > input { width:100%; padding-left:40px; padding-right:40px; }
.member-picker-loader { position:absolute; top:50%; right:14px; width:16px; height:16px; border:2px solid color-mix(in srgb,var(--blue-600) 22%,transparent); border-top-color:var(--blue-600); border-radius:50%; animation:orlib-spin .75s linear infinite; transform:translateY(-50%); }
.member-picker-results { position:absolute; z-index:35; top:calc(100% - 17px); right:0; left:0; max-height:330px; overflow:auto; padding:7px; border:1px solid var(--line); border-radius:13px; background:var(--surface); box-shadow:0 18px 48px rgba(5,31,55,.18); }
.member-picker-option { width:100%; display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 10px; border:0; border-radius:10px; color:var(--ink); background:transparent; text-align:left; cursor:pointer; transition:background 140ms ease,transform 140ms ease; }
.member-picker-option:hover,.member-picker-option.active { background:var(--surface-soft); transform:translateX(2px); }
.member-picker-avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; color:#1763a2; background:#dfefff; font-size:11px; font-weight:900; }
.member-picker-copy { min-width:0; }
.member-picker-copy strong,.member-picker-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.member-picker-copy strong { font-size:13px; }
.member-picker-copy span { margin-top:3px; color:var(--muted); font-size:11px; }
.member-picker-empty { margin:0; padding:14px; color:var(--muted); text-align:center; font-size:12px; }
.manual-visit-form { display:grid; grid-template-columns:minmax(280px,1fr) auto; align-items:end; gap:14px; }
.manual-visit-actions { display:flex; gap:9px; padding-bottom:22px; }
.code-box { padding:16px; overflow:auto; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); font-family:ui-monospace,monospace; font-size:12px; }
.barcode-image { display:block; max-width:100%; min-height:100px; margin:18px auto; }
.qr-image { display:block; width:min(100%,300px); aspect-ratio:1; margin:15px auto; border:12px solid #fff; border-radius:12px; box-shadow:0 8px 28px #0c2c4d20; }
.status-badge { display:inline-flex; align-items:center; border-radius:999px; padding:5px 9px; font-size:11px; font-weight:900; }
.status-badge.success { color:#08704d; background:#dff7ec; }
.status-badge.warning { color:#8b5c00; background:#fff0c4; }
.status-badge.danger { color:#a12738; background:#ffe2e6; }
.status-badge.info { color:#1763a2; background:#dfefff; }
.login-error { margin-bottom:12px; }
.table-actions { display:flex; justify-content:flex-end; gap:7px; min-width:150px; }
.table-actions select { min-height:32px; padding:4px 28px 4px 8px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:var(--surface); }
.drawer-close { margin-left:auto; color:#fff; border-color:transparent; background:transparent; }
.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-link span,.sidebar.collapsed .sidebar-user-copy { display:none; }
.sidebar.collapsed .nav-link { justify-content:center; padding-inline:0; }
.sidebar.collapsed .sidebar-user { justify-content:center; }
.sidebar.collapsed .brand-logo-mark { width:46px; height:46px; }
.topbar .topbar-branch-label svg { width:15px; height:15px; }
.notification-dropdown form { margin:0; }
.notification-dropdown-header form button { min-height:30px; }
.dashboard-chart-canvas { position:relative; }
.dashboard-chart-canvas svg { display:block; overflow:visible; }
.dashboard-chart-tooltip { position:absolute; z-index:4; top:8px; right:8px; display:grid; gap:3px; min-width:140px; padding:9px 11px; border:1px solid var(--line); border-radius:var(--dashboard-radius-md); color:var(--ink); background:var(--surface); box-shadow:var(--shadow); pointer-events:none; font-size:10.5px; }
.dashboard-chart-tooltip strong { margin-bottom:2px; color:var(--muted); }
.dashboard-chart-tooltip span { display:block; }
.dashboard-range-selector { min-height:38px; padding:4px; }
.dashboard-range-tab { min-height:30px; display:inline-flex; align-items:center; justify-content:center; line-height:1; }
.dashboard-chart-panel .dashboard-section-header { align-items:center; }
.dashboard-queue-badge svg { width:14px; height:14px; }
.dashboard-action-icon svg { width:17px; height:17px; }
.dashboard-action-row > svg:last-child { width:16px; height:16px; color:var(--dashboard-action-color); }
.dashboard-page .metric-icon svg { width:19px; height:19px; }
.dashboard-today-stat svg { width:15px; height:15px; }
.dashboard-today-header a svg { width:13px; height:13px; }
.loan-selection { display:grid; gap:9px; max-height:380px; overflow:auto; }
.selection-row { display:grid; grid-template-columns:24px 1fr auto; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:12px; transition:150ms ease; }
.selection-row:hover { border-color:color-mix(in srgb,var(--blue-600) 35%,var(--line)); background:var(--surface-soft); transform:translateY(-1px); }
.selection-row input { width:18px; height:18px; }
.selection-row span strong,.selection-row span small { display:block; }
.selection-row span small { margin-top:3px; color:var(--muted); }
.report-grid,.gate-qr-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:14px; }
.settings-stack { display:grid; gap:14px; }
.narrow-card { width:min(100%,680px); display:grid; gap:15px; }
.notification-list { display:grid; gap:10px; }
.sms-campaign-grid { display:grid; gap:18px; }
.sms-campaign-form { display:grid; gap:16px; }
.sms-message-preview { max-width:420px; white-space:normal; line-height:1.45; }
.dashboard-gender-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin:36px 0 30px; }
.dashboard-donut-panel { min-width:0; padding:24px; }
.dashboard-donut-content { display:grid; grid-template-columns:minmax(150px,210px) minmax(180px,1fr); align-items:center; gap:34px; padding-top:16px; }
.dashboard-donut { position:relative; width:min(100%,190px); aspect-ratio:1; margin:auto; }
.dashboard-donut svg { width:100%; height:100%; transform:rotate(-90deg); }
.dashboard-donut circle { fill:none; stroke-width:5.5; }
.dashboard-donut-base { stroke:var(--surface-soft); }
.dashboard-donut-segment { transition:stroke-dasharray .25s ease; }
.dashboard-donut-segment.female { stroke:#db4f87; }
.dashboard-donut-segment.male { stroke:#2774c4; }
.dashboard-donut-segment.unknown { stroke:#a7b2c2; }
.dashboard-donut > span { position:absolute; inset:0; display:grid; place-content:center; text-align:center; pointer-events:none; }
.dashboard-donut > span strong,.dashboard-donut > span small { display:block; }
.dashboard-donut > span strong { font-size:25px; color:var(--ink); }
.dashboard-donut > span small { color:var(--muted); font-size:11px; }
.dashboard-donut-legend { display:grid; gap:10px; }
.dashboard-donut-legend li { display:grid; grid-template-columns:10px minmax(0,1fr) auto 52px; align-items:center; gap:9px; padding:9px 10px; border:1px solid var(--line); border-radius:10px; }
.dashboard-donut-legend i { width:10px; height:10px; border-radius:50%; }
.dashboard-donut-legend i.female { background:#db4f87; }
.dashboard-donut-legend i.male { background:#2774c4; }
.dashboard-donut-legend i.unknown { background:#a7b2c2; }
.dashboard-donut-legend strong { font-size:14px; }
.dashboard-donut-legend small { color:var(--muted); text-align:right; }
.notification-list .notification-item { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:14px; border:1px solid var(--line); border-radius:12px; }
.notification-list .notification-item.unread { border-color:#9dc7ed; background:#f0f7ff; }
.notification-list .notification-item p { margin:5px 0; color:var(--muted); }
.notice-copy { min-width:0; }
.metric-card .metric-value,.metric-card .metric-foot { display:block; }
.metric-icon .lucide { width:17px; height:17px; }
body.drawer-open,body.modal-open { overflow:hidden; }

/* CSP-safe layout helpers: PHP şablonlarındaki eski style özniteliklerinin birebir karşılığı. */
[data-layout="filter-end"] { align-self:end; }
[data-layout="actions-end"] { margin-top:22px; justify-content:flex-end; }
[data-layout="margin-bottom-18"] { margin-bottom:18px; }
[data-layout="margin-bottom-14"] { margin-bottom:14px; }
[data-layout="margin-top-13"] { margin-top:13px; }
[data-layout="margin-top-14"] { margin-top:14px; }
[data-layout="margin-top-16"] { margin-top:16px; }
[data-layout="margin-top-17"] { margin-top:17px; }
[data-layout="margin-top-18"] { margin-top:18px; }
[data-layout="margin-top-20"] { margin-top:20px; }
[data-layout="margin-top-24"] { margin-top:24px; }
[data-layout="max-width-320"] { max-width:320px; }
[data-layout="margin-qr"] { margin:8px auto 18px; }
[data-layout="actions-between-20"] { margin-top:20px; justify-content:space-between; }
[data-layout="flex-wrap-8"] { display:flex; gap:8px; flex-wrap:wrap; }
[data-layout="full-button-17"] { width:100%; margin-top:17px; }
[data-layout="uppercase"] { text-transform:uppercase; }
[data-layout="role-select"] { min-width:180px; min-height:36px; padding:4px 8px; }
[data-layout="image-fluid"] { max-width:100%; height:auto; }
[data-layout="image-90"] { max-width:90%; height:auto; }
[data-layout="pagination-row"] { margin-top:16px; justify-content:space-between; }
[data-layout="barcode-member-frame"] { display:grid; min-height:190px; place-items:center; padding:18px; border:1px dashed var(--line); border-radius:14px; background:#fff; }
[data-layout="barcode-copy-frame"] { display:grid; min-height:240px; place-items:center; border:1px dashed var(--line); border-radius:14px; background:#fff; }
[data-layout="full-grid"] { grid-column:1/-1; }
[data-layout="card-header-compact"] { margin-bottom:12px; padding:0; }
[data-layout="empty-upload"] { display:grid; min-height:260px; place-items:center; padding:28px; border:2px dashed var(--line); border-radius:16px; background:var(--surface-soft); text-align:center; }
[data-layout="text-15"] { font-size:15px; }

.import-file-field { width:min(100%,440px); margin:0 auto; text-align:left; }
.import-file-field > label { display:block; margin-bottom:7px; color:var(--ink); font-size:12px; font-weight:800; }
.import-file-field > small { display:block; margin-top:6px; color:var(--muted); font-size:11px; }
.import-file-input { display:block; width:100%; min-height:50px; padding:6px 9px; border:1px solid var(--line); border-radius:12px; color:var(--muted); background:var(--surface); cursor:pointer; }
.import-file-input::file-selector-button { min-height:36px; margin-right:12px; padding:0 15px; border:0; border-radius:9px; color:#fff; background:var(--blue-600); font-weight:800; cursor:pointer; transition:background 150ms ease,transform 150ms ease; }
.import-file-input:hover::file-selector-button { background:var(--blue-700); }
.import-file-input:focus-visible { outline:0; border-color:var(--blue-600); box-shadow:0 0 0 3px rgba(39,116,196,.14); }

.dashboard-meter-track { display:block; width:100%; height:6px; margin-top:7px; overflow:hidden; border:0; border-radius:999px; background:var(--surface-soft); appearance:none; }
.dashboard-meter-track::-webkit-progress-bar { border-radius:999px; background:var(--surface-soft); }
.dashboard-meter-track::-webkit-progress-value { border-radius:999px; background:var(--dashboard-meter-color); }
.dashboard-meter-track::-moz-progress-bar { border-radius:999px; background:var(--dashboard-meter-color); }

.fatal-error-body { min-height:100vh; margin:0; padding:40px; display:grid; place-items:center; color:#172235; background:#edf3f8; font:16px system-ui,sans-serif; }
.fatal-error-box { width:min(100%,700px); padding:28px; border-radius:18px; background:#fff; box-shadow:0 12px 40px #11223322; }
.fatal-error-box h1 { margin-top:0; }
.fatal-error-box a { color:#1768aa; font-weight:700; }
@keyframes orlib-spin { to { transform:rotate(360deg); } }
[data-theme="dark"] .login-card { background:rgba(19,38,59,.95); border-color:rgba(255,255,255,.12); }
[data-theme="dark"] .login-brand strong { color:var(--ink); }
@media(max-width:900px){.detail-grid{grid-template-columns:1fr 1fr}.report-grid,.gate-qr-grid,.dashboard-gender-grid{grid-template-columns:1fr}.dashboard-gender-grid{margin-top:28px}}
@media(max-width:680px){.setup-body{padding:12px}.setup-card{padding:22px 16px}.detail-grid{grid-template-columns:1fr}.search-row{align-items:stretch;flex-direction:column}.search-row .button{width:100%}.table-actions{justify-content:flex-start}.full{grid-column:auto}.login-panel{padding:14px}.login-card{padding:24px 20px}.login-brand{margin-bottom:28px}.manual-visit-form{grid-template-columns:1fr}.manual-visit-actions{padding-bottom:0;flex-direction:column}.manual-visit-actions .button{width:100%}.member-picker-option{grid-template-columns:36px minmax(0,1fr)}.member-picker-option>.badge{display:none}.dashboard-donut-content{grid-template-columns:1fr}.dashboard-donut-legend li{grid-template-columns:10px minmax(0,1fr) auto 44px}}
@media(prefers-reduced-motion:reduce){.button .animate-spin{animation-duration:2.4s}}
