:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#7a8497;--line:#e5e9f0;--primary:#2563eb;--nav:#0f172a;--success:#059669;--danger:#dc2626;--warn:#d97706;--radius:18px;--shadow:0 8px 30px rgba(15,23,42,.06)}*{box-sizing:border-box}html,body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:255px;background:linear-gradient(180deg,#0f172a,#111827);color:#fff;position:fixed;inset:0 auto 0 0;padding:22px 14px;overflow:auto;z-index:30}.brand{display:flex;gap:12px;align-items:center;padding:0 10px 22px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:14px}.brand-mark,.login-logo{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#2563eb;color:#fff;font-weight:800;font-size:22px}.brand strong{display:block}.brand span{display:block;font-size:11px;color:#94a3b8;margin-top:3px}.sidebar nav a{display:block;padding:11px 13px;border-radius:11px;color:#dbe4f0;margin:3px 0;font-size:14px}.sidebar nav a:hover{background:rgba(255,255,255,.08);color:#fff}.nav-title{font-size:10px;letter-spacing:.13em;color:#64748b;padding:18px 12px 7px}.main{margin-left:255px;min-width:0;flex:1}.topbar{height:70px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:20}.menu-btn{display:none;border:0;background:#eef2f7;border-radius:10px;padding:9px 12px;font-size:20px}.top-title{font-weight:700}.userbox{margin-left:auto;display:flex;gap:12px;align-items:center;font-size:13px}.content{padding:26px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:7px 0 0;color:var(--muted)}.head-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--text);padding:10px 15px;border-radius:11px;font-weight:650;cursor:pointer}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.full{width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.panel h2{margin:0 0 15px;font-size:17px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.panel-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px}.stats.compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.stat span,.stat small{display:block;color:var(--muted);font-size:12px}.stat b{display:block;font-size:25px;margin:9px 0}.stat.warn b{color:var(--warn)}.grid-2,.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.responsive-table{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.actions{white-space:nowrap}.actions a{margin-right:10px}.sub{display:block;color:var(--muted);margin-top:3px}.badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:11px;margin-left:5px}.badge.ok{background:#ecfdf5;color:#047857}.badge.bad{background:#fef2f2;color:#b91c1c}.badge.accent{background:#fff7ed;color:#c2410c}.filters{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.filters input,.filters select{max-width:330px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.form-grid input,.form-grid select,.form-grid textarea,.filters input,.filters select{width:100%;padding:11px 12px;border:1px solid #d8dee8;border-radius:10px;background:#fff;color:var(--text);font:inherit}.form-grid textarea{resize:vertical}.span-2{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:16px}.check{display:flex!important;align-items:center;gap:8px;font-weight:500!important}.check input{width:auto!important}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.person-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;align-items:center;gap:13px;position:relative}.person-card h3{margin:0 0 4px}.person-card p{margin:0 0 4px;color:var(--muted)}.avatar{width:46px;height:46px;border-radius:14px;background:#e0e7ff;color:#3730a3;display:grid;place-items:center;font-weight:800}.edit-link{margin-left:auto;font-size:12px}.timeline{padding:12px 0;border-bottom:1px solid var(--line)}.timeline b,.timeline span{display:block}.timeline span{color:var(--muted);font-size:13px;margin-top:4px}dl{display:grid;grid-template-columns:100px 1fr;gap:10px}dt{color:var(--muted);font-size:12px}dd{margin:0}.chart-bars{height:170px;display:flex;align-items:flex-end;gap:18px;padding:8px 6px 0}.chart-col{flex:1;text-align:center}.bars{height:140px;display:flex;align-items:flex-end;justify-content:center;gap:5px}.bar{width:20px;min-height:2px;border-radius:5px 5px 0 0}.income{background:#10b981}.expense{background:#ef4444}.chart-col small{color:var(--muted)}.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);justify-content:flex-end}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px}.alert.success{background:#ecfdf5;color:#047857}.validation{color:#b91c1c;background:#fef2f2;padding:10px;border-radius:9px}.login-bg{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#1e3a8a,#0f172a 65%);padding:20px}.login-card{width:min(420px,100%);background:#fff;padding:34px;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.login-card .login-logo{margin:auto;width:56px;height:56px}.login-card h1{text-align:center;margin:14px 0 4px}.login-card p{text-align:center;color:var(--muted);margin:0 0 25px}.login-card label{display:block;font-size:12px;font-weight:700;margin:12px 0 6px}.login-card input[type=text],.login-card input[type=password]{width:100%;padding:12px;border:1px solid #d8dee8;border-radius:10px}.login-card small{display:block;text-align:center;color:var(--muted);margin-top:18px}.empty{text-align:center;padding:80px 20px}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.grid-2,.detail-grid{grid-template-columns:1fr}}@media(max-width:780px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-btn{display:block}.content{padding:16px}.topbar{padding:0 14px;height:62px}.userbox span{display:none}.page-head{align-items:flex-start;flex-direction:column}.page-head .btn{width:100%}.head-actions{width:100%}.head-actions .btn{flex:1}.stats{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.panel{padding:14px;border-radius:14px}.filters>*{flex:1 1 160px}.cards{grid-template-columns:1fr}table{min-width:720px}}@media(max-width:440px){.stats{grid-template-columns:1fr}.stat b{font-size:23px}.page-head h1{font-size:24px}.chart-bars{gap:7px}.bar{width:12px}}

/* Yeni / Düzenle Müşteri - pano aktarım ekranı */
.customer-entry-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr);gap:20px;align-items:start}.clipboard-panel,.customer-form{margin-bottom:0}.clipboard-head p,.customer-form .panel-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.clipboard-text{width:100%;min-height:280px;padding:14px;border:1px solid #d8dee8;border-radius:12px;background:#fbfcfe;color:var(--text);font:13px/1.55 Consolas,"Courier New",monospace;resize:vertical;outline:none}.clipboard-text:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.1);background:#fff}.clipboard-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.clipboard-message{margin-top:12px;padding:11px 13px;border-radius:10px;font-size:13px;font-weight:650}.clipboard-message.ok{background:#ecfdf5;color:#047857}.clipboard-message.error{background:#fef2f2;color:#b91c1c}.clipboard-tip{margin-top:18px;padding:13px;border:1px dashed #cbd5e1;border-radius:11px;background:#f8fafc;color:#64748b;font-size:13px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.quick-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:86px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);text-align:center;padding:10px}.quick-card:hover{border-color:#bfdbfe;background:#eff6ff}.quick-card span{font-size:23px}.quick-card b{font-size:12px}.customer-fields input:focus,.customer-fields textarea:focus{outline:none;border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.customer-switches{display:flex;gap:24px;align-items:center;padding:6px 0}.switch-check{display:inline-flex!important;align-items:center;gap:9px!important;margin:0!important;cursor:pointer;font-size:13px!important}.switch-check input{position:absolute;opacity:0;pointer-events:none}.switch-ui{position:relative;width:42px;height:23px;border-radius:999px;background:#cbd5e1;transition:.2s}.switch-ui:after{content:"";position:absolute;width:17px;height:17px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.2s}.switch-check input:checked + .switch-ui{background:var(--primary)}.switch-check input:checked + .switch-ui:after{transform:translateX(19px)}.customer-save-actions{margin-top:4px}.save-customer{min-width:130px}
@media(max-width:1050px){.customer-entry-layout{grid-template-columns:1fr}.clipboard-text{min-height:210px}}
@media(max-width:780px){.customer-entry-layout{gap:14px}.clipboard-actions .btn{flex:1 1 140px}.quick-actions{grid-template-columns:1fr 1fr}.customer-switches{flex-wrap:wrap;gap:16px}.customer-save-actions{position:sticky;bottom:8px;background:#fff;padding:12px 0 0;z-index:5}.customer-save-actions .btn{flex:1}.clipboard-text{min-height:180px}}
@media(max-width:440px){.quick-actions{grid-template-columns:1fr}.clipboard-actions .btn{width:100%;flex-basis:100%}}

/* v3 - stok bakiye ve müşteri ekranı iyileştirmeleri */
.stock-balance{display:inline-flex;align-items:center;padding:7px 10px;border-radius:10px;font-weight:800;white-space:nowrap}.stock-balance.ok{background:#ecfdf5;color:#047857}.stock-balance.critical{background:#fff1f2;color:#be123c}.stock-critical-row{background:#fffafb}.stock-stats{max-width:760px}.validation:empty{display:none}.field-validation-error{display:block;color:#b91c1c;font-size:11px;margin-top:5px}
.customer-entry-layout{grid-template-columns:minmax(360px,.86fr) minmax(540px,1.14fr)}.clipboard-panel{position:sticky;top:90px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}.clipboard-panel:before{content:"";display:block;height:4px;margin:-20px -20px 18px;border-radius:16px 16px 0 0;background:linear-gradient(90deg,#2563eb,#0ea5e9)}.customer-form{position:relative;overflow:hidden}.customer-form:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,#0f172a,#334155)}.customer-form .panel-head{padding-top:3px}.customer-fields>div{background:#fbfcfe;border:1px solid #eef2f7;border-radius:13px;padding:12px}.customer-fields>.customer-switches,.customer-fields>.customer-save-actions{background:transparent;border:0;border-radius:0;padding-left:0;padding-right:0}.customer-fields label{color:#475569}.customer-fields input,.customer-fields textarea{background:#fff}.customer-fields input[readonly]{background:#f1f5f9}.save-customer{padding-left:22px;padding-right:22px}.quick-card{box-shadow:0 4px 14px rgba(15,23,42,.04);transition:.18s}.quick-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(37,99,235,.1)}
@media(max-width:1050px){.clipboard-panel{position:static}.customer-entry-layout{grid-template-columns:1fr}}
@media(max-width:780px){.customer-fields>div{padding:10px}.customer-form .panel-head,.clipboard-panel .panel-head{align-items:flex-start}.stock-stats{max-width:none}}

/* v5 - Randevu düzenle ekranından stok çıkışı */
.appointment-edit-layout{display:grid;grid-template-columns:minmax(520px,1.12fr) minmax(380px,.88fr);gap:20px;align-items:start}.appointment-form{margin:0}.appointment-form .panel-head p,.material-exit-panel .panel-head p,.material-history-panel .panel-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.appointment-material-column{display:grid;gap:20px}.material-exit-panel,.material-history-panel{margin:0}.material-exit-panel{border-top:4px solid #dc2626}.material-exit-form{display:grid;gap:14px}.material-exit-form label{display:block;font-size:12px;font-weight:700;margin-bottom:7px;color:#475569}.material-exit-form input,.material-exit-form select,.material-exit-form textarea{width:100%;padding:11px 12px;border:1px solid #d8dee8;border-radius:10px;background:#fff;color:var(--text);font:inherit}.material-exit-form input:focus,.material-exit-form select:focus,.material-exit-form textarea:focus{outline:none;border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.material-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.balance-box{min-height:44px;display:flex;align-items:center;padding:10px 12px;border-radius:10px;background:#ecfdf5;color:#047857;font-weight:800}.material-hint{display:block;margin-top:6px;color:var(--muted);font-size:11px}.material-message{margin-bottom:14px}.material-history-panel{border-top:4px solid #2563eb}.material-list{display:grid;gap:10px}.material-item{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.material-item-icon{width:42px;height:42px;border-radius:12px;background:#eef2ff;display:grid;place-items:center}.material-item-main{min-width:0}.material-item-main strong,.material-item-main span,.material-item-main small{display:block}.material-item-main strong{font-size:13px}.material-item-main span{font-size:11px;color:var(--muted);margin-top:4px}.material-item-main small{font-size:11px;color:#64748b;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-qty{font-weight:800;color:#dc2626;white-space:nowrap}.material-qty small{font-size:10px;font-weight:700;color:#64748b}.material-empty{text-align:center;padding:28px 12px;color:var(--muted);font-size:13px;background:#f8fafc;border-radius:12px;border:1px dashed #cbd5e1}
@media(max-width:1100px){.appointment-edit-layout{grid-template-columns:1fr}.appointment-material-column{grid-template-columns:1fr 1fr}.material-exit-panel,.material-history-panel{min-width:0}}
@media(max-width:780px){.appointment-material-column{grid-template-columns:1fr}.material-row{grid-template-columns:1fr 1fr}.material-item{grid-template-columns:38px 1fr}.material-item-icon{width:38px;height:38px}.material-qty{grid-column:2;text-align:left}.appointment-edit-layout{gap:14px}}
@media(max-width:440px){.material-row{grid-template-columns:1fr}.material-current-stock{order:-1}}


/* v7 - Randevu filtreleme, teknisyen görünümü ve düzenleme tasarımı */
.appointment-filter-panel{padding:16px 18px}.appointment-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;gap:12px;align-items:end}.appointment-filters label{display:block;font-size:11px;font-weight:800;color:#64748b;margin-bottom:6px}.appointment-filters input,.appointment-filters select{width:100%;padding:11px 12px;border:1px solid #d8dee8;border-radius:10px;background:#fff;font:inherit}.filter-actions{display:flex;gap:8px}.appointment-stats{margin-top:0}.technician-strip{display:flex;gap:10px;overflow:auto;padding:2px 2px 14px;margin-bottom:6px}.technician-chip{min-width:190px;display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:13px;color:var(--text);box-shadow:0 4px 14px rgba(15,23,42,.04)}.technician-chip.active{border-color:#2563eb;background:#eff6ff}.tech-avatar{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#e0e7ff;color:#3730a3;font-weight:850;flex:0 0 auto}.tech-avatar.mini{width:28px;height:28px;border-radius:8px;font-size:11px}.technician-chip strong,.technician-chip small{display:block}.technician-chip strong{font-size:12px}.technician-chip small{font-size:10px;color:var(--muted);margin-top:3px}.technician-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}
.appointment-form{overflow:hidden}.appointment-summary{margin:-20px -20px 4px;padding:18px 20px;background:linear-gradient(135deg,#f8fbff,#eef5ff);border-bottom:1px solid #dbeafe}.appointment-summary-title{display:flex;align-items:center;gap:11px;margin-bottom:14px}.appointment-summary-title h2{margin:0;font-size:18px}.appointment-summary-title small{color:var(--muted)}.summary-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#2563eb;color:#fff;font-size:20px}.appointment-summary-grid{display:grid;grid-template-columns:1.15fr .75fr 1.35fr auto;gap:12px;align-items:center}.summary-customer{display:flex;align-items:center;gap:10px;min-width:0}.appointment-customer-avatar{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#2563eb;color:#fff;font-size:18px;font-weight:850;flex:0 0 auto}.summary-customer small,.summary-customer strong,.summary-customer span,.summary-info small,.summary-info strong{display:block}.summary-customer small,.summary-info small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.summary-customer strong{font-size:14px;margin:2px 0}.summary-customer span{font-size:10px;color:#64748b}.summary-info{min-width:0;padding-left:12px;border-left:1px solid #dbeafe}.summary-info strong{font-size:12px;line-height:1.35;margin-top:3px;overflow-wrap:anywhere}.summary-actions{display:flex;gap:7px}.summary-actions .btn{white-space:nowrap}
@media(max-width:1180px){.appointment-filters{grid-template-columns:repeat(2,1fr)}.filter-actions{grid-column:1/-1}.appointment-summary-grid{grid-template-columns:1fr 1fr}.summary-actions{grid-column:1/-1}.summary-info.address{border-left:0;padding-left:0}}
@media(max-width:780px){.appointment-filters{grid-template-columns:1fr}.filter-actions{grid-column:auto}.filter-actions .btn{flex:1}.appointment-summary{margin:-14px -14px 2px;padding:14px}.appointment-summary-grid{grid-template-columns:1fr}.summary-info,.summary-info.address{border-left:0;border-top:1px solid #dbeafe;padding:9px 0 0}.summary-actions{grid-column:auto}.summary-actions .btn{flex:1}.technician-chip{min-width:165px}}

/* v8 - Randevu düzenle üst müşteri kartı */
.appointment-page-header{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(560px,1.2fr);gap:20px;align-items:stretch;margin-bottom:18px}.appointment-title-block{margin:0;min-height:100%;display:flex;align-items:center}.appointment-customer-header{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px;box-shadow:0 8px 24px rgba(15,23,42,.05);display:grid;grid-template-columns:minmax(230px,.75fr) minmax(320px,1.25fr) auto;gap:14px;align-items:center}.appointment-customer-header-top{display:flex;align-items:center;gap:11px;min-width:0}.header-avatar{width:46px;height:46px;border-radius:13px;background:#2563eb;color:#fff;display:grid;place-items:center;font-size:19px;font-weight:850;flex:0 0 auto}.header-customer-main{min-width:0}.header-label,.header-contact-item span{display:block;font-size:9px;font-weight:800;letter-spacing:.08em;color:#64748b;text-transform:uppercase}.header-customer-main strong{display:block;font-size:15px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-customer-main span{display:block;font-size:10px;color:#64748b}.header-contact-row{display:grid;grid-template-columns:minmax(100px,.55fr) minmax(190px,1.45fr);gap:12px;min-width:0}.header-contact-item{padding-left:12px;border-left:1px solid #e2e8f0;min-width:0}.header-contact-item strong{display:block;font-size:12px;line-height:1.35;margin-top:3px;overflow-wrap:anywhere}.header-contact-actions{display:flex;gap:7px;justify-content:flex-end}.header-contact-actions .btn{white-space:nowrap;padding:10px 13px}
@media(max-width:1250px){.appointment-page-header{grid-template-columns:1fr}.appointment-customer-header{grid-template-columns:1fr 1fr auto}.appointment-title-block{min-height:auto}.appointment-title-block .page-head{margin-bottom:0}}
@media(max-width:900px){.appointment-customer-header{grid-template-columns:1fr 1fr}.header-contact-actions{grid-column:1/-1;justify-content:flex-start}.header-contact-actions .btn{flex:1;text-align:center}}
@media(max-width:620px){.appointment-page-header{gap:12px}.appointment-customer-header{grid-template-columns:1fr;padding:13px}.header-contact-row{grid-template-columns:1fr}.header-contact-item{border-left:0;border-top:1px solid #e2e8f0;padding:9px 0 0}.header-contact-actions{grid-column:auto}.header-contact-actions .btn{font-size:12px;padding:10px 9px}}


/* v11 - Teknisyen kullanıcı paneli */
.tech-panel-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 24px;margin-bottom:16px;border-radius:18px;background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;box-shadow:0 12px 30px rgba(15,23,42,.15)}.tech-panel-hero .eyebrow{font-size:10px;font-weight:850;letter-spacing:.12em;opacity:.75}.tech-panel-hero h1{margin:5px 0 4px;font-size:26px}.tech-panel-hero p{margin:0;opacity:.8}.tech-phone{padding:11px 14px;border-radius:12px;background:rgba(255,255,255,.12);font-weight:800;white-space:nowrap}.tech-filter form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}.tech-filter label{display:block;font-size:11px;font-weight:800;color:#64748b;margin-bottom:6px}.tech-filter input,.tech-filter select{width:100%;padding:11px 12px;border:1px solid #d8dee8;border-radius:10px;background:#fff;font:inherit}.tech-appointment-list{display:grid;gap:12px}.tech-appointment-card{display:grid;grid-template-columns:90px 1fr;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 6px 20px rgba(15,23,42,.05)}.tech-appt-time{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#eff6ff;color:#1d4ed8;padding:18px 10px}.tech-appt-time strong{font-size:15px}.tech-appt-time b{font-size:24px;margin-top:4px}.tech-appt-main{padding:15px 16px}.tech-appt-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.tech-appt-head h3{margin:0;font-size:16px}.tech-appt-head span:not(.badge){font-size:10px;color:#64748b}.tech-appt-subject{margin-top:10px;font-weight:750}.tech-appt-address{margin-top:7px;font-size:12px;color:#64748b}.tech-appt-actions{display:flex;gap:7px;margin-top:13px;flex-wrap:wrap}.tech-readonly-line{display:flex;gap:18px;align-items:center;padding:12px 14px;border-radius:11px;background:#eff6ff;color:#1e3a8a}.tech-readonly-line span{font-size:12px;color:#475569}
@media(max-width:780px){.tech-panel-hero{align-items:flex-start;flex-direction:column;padding:18px}.tech-panel-hero h1{font-size:22px}.tech-filter form{grid-template-columns:1fr 1fr}.tech-filter form>button{grid-column:1/-1}.tech-appointment-card{grid-template-columns:68px 1fr}.tech-appt-time b{font-size:20px}.tech-appt-main{padding:13px}.tech-appt-actions .btn{flex:1;text-align:center}.tech-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.tech-filter form{grid-template-columns:1fr}.tech-filter form>button{grid-column:auto}.tech-appt-head{flex-direction:column}.tech-readonly-line{flex-direction:column;align-items:flex-start;gap:4px}}

/* v12 - Teknisyen performans raporu ve günü geçen işler */
.danger-stat{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}.danger-stat b{color:#dc2626}.report-winners{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.winner-card{background:linear-gradient(135deg,#fff,#f8fbff);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.winner-card span,.winner-card strong,.winner-card b{display:block}.winner-card span{font-size:11px;color:var(--muted);font-weight:800}.winner-card strong{font-size:18px;margin:8px 0 5px}.winner-card b{font-size:13px;color:#2563eb}.winner-card.overdue{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff1f2)}.winner-card.overdue b,.winner-card.overdue strong{color:#b91c1c}.report-table td{vertical-align:middle}.rank-badge{width:28px;height:28px;border-radius:9px;background:#eef2ff;color:#3730a3;display:grid;place-items:center;font-weight:850}.metric-ok{font-weight:850;color:#059669}.metric-bad{font-weight:850;color:#dc2626}.rate-bar{width:90px;height:5px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-top:5px}.rate-bar i{display:block;height:100%;background:#2563eb;border-radius:999px}.has-overdue{background:#fffafa}.late-pill{display:inline-block;padding:6px 9px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-weight:800;font-size:11px;white-space:nowrap}.overdue-card{border-color:#fecaca}.overdue-card .tech-appt-time{background:#fff1f2;color:#b91c1c}.overdue-panel .panel-head small{display:block;color:var(--muted);margin-top:4px}.report-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media(max-width:900px){.report-winners{grid-template-columns:1fr}.report-filters{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.report-filters{grid-template-columns:1fr}.report-winners{gap:10px}}
.leadership-panel{margin-bottom:20px}.leadership-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.leader-period-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:linear-gradient(180deg,#fff,#fbfdff)}.leader-period-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--line)}.leader-period-head span{font-weight:850}.leader-period-head b{font-size:12px;color:#2563eb;background:#eff6ff;padding:5px 8px;border-radius:999px}.leader-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px dashed #e5e7eb}.leader-row:last-child{border-bottom:0}.leader-row strong{font-size:13px}.leader-row b{font-size:12px;color:#059669}.leader-rank{width:26px;height:26px;border-radius:9px;background:#eef2ff;color:#3730a3;display:grid;place-items:center;font-weight:900;font-size:12px}.leader-empty{padding:18px 4px;color:var(--muted);font-size:13px;text-align:center}
@media(max-width:900px){.leadership-grid{grid-template-columns:1fr}}

/* v14 - Teknisyen detay ve kapsamlı performans ekranı */
.technician-detail-head{align-items:center}.tech-detail-title{display:flex;align-items:center;gap:14px}.tech-detail-avatar{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#dbeafe,#eef2ff);font-size:27px;box-shadow:inset 0 0 0 1px #bfdbfe}.tech-detail-title .eyebrow{font-size:10px;font-weight:850;letter-spacing:.12em;color:#64748b}.tech-detail-title h1{margin:4px 0 3px}.tech-detail-title p{margin:0;color:var(--muted);font-size:13px}.technician-detail-link{font-weight:800}.tech-detail-filters{grid-template-columns:1fr 1fr 1fr 1fr auto}.technician-detail-stats{grid-template-columns:repeat(6,minmax(145px,1fr))}.tech-period-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.tech-period-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 18px;box-shadow:var(--shadow)}.tech-period-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#2563eb}.tech-period-card.week:before{background:#7c3aed}.tech-period-card.month:before{background:#059669}.tech-period-card.material:before{background:#d97706}.tech-period-card span,.tech-period-card small{display:block;color:var(--muted);font-size:11px}.tech-period-card strong{display:inline-block;font-size:27px;margin:7px 6px 1px 0}.tech-analysis-grid{align-items:stretch}.tech-analysis-grid>.panel{margin-bottom:20px}.panel-head small{display:block;color:var(--muted);margin-top:4px}.tech-daily-chart{height:220px;display:flex;align-items:stretch;gap:5px;overflow-x:auto;padding:14px 4px 24px;border-bottom:1px solid var(--line)}.tech-day-col{min-width:26px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.tech-day-bars{height:160px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.tech-day-bars i{display:block;width:min(11px,42%);min-height:3px;border-radius:5px 5px 1px 1px}.tech-day-bars .assigned,.tech-chart-legend i.assigned{background:#93c5fd}.tech-day-bars .completed,.tech-chart-legend i.completed{background:#10b981}.tech-day-col small{font-size:9px;color:#64748b;transform:rotate(-42deg);white-space:nowrap;margin-bottom:-14px}.tech-chart-legend{display:flex;justify-content:flex-end;gap:14px;padding-top:12px;font-size:11px;color:#64748b}.tech-chart-legend span{display:flex;align-items:center;gap:5px}.tech-chart-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.subject-ranking{display:grid;gap:5px}.subject-row{display:grid;grid-template-columns:30px 1fr 38px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dashed #e5e7eb}.subject-row:last-child{border-bottom:0}.subject-row strong{display:block;font-size:12px;line-height:1.3}.subject-row>b{text-align:right;color:#2563eb}.subject-bar{height:4px;border-radius:999px;background:#eef2f7;margin-top:7px;overflow:hidden}.subject-bar i{display:block;height:100%;border-radius:999px;background:#2563eb}.recent-closed-list{display:grid}.recent-closed-item{display:flex;justify-content:space-between;gap:16px;padding:11px 4px;border-bottom:1px solid var(--line);color:var(--text)}.recent-closed-item:last-child{border-bottom:0}.recent-closed-item:hover{background:#f8fafc}.recent-closed-item strong,.recent-closed-item span,.recent-closed-item b,.recent-closed-item small{display:block}.recent-closed-item span,.recent-closed-item small{font-size:11px;color:var(--muted);margin-top:3px}.recent-closed-item>div:last-child{text-align:right}.material-report-table{min-width:520px}.quick-status-links{display:flex;gap:6px;flex-wrap:wrap}.quick-status-links a{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#475569;font-size:11px;font-weight:750}.quick-status-links a:hover{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.tech-all-jobs-table{min-width:1000px}.winner-card a,.leader-row a{color:inherit}.winner-card a:hover,.leader-row a:hover,.technician-detail-link:hover{text-decoration:underline}

@media(max-width:1250px){
  .technician-detail-stats{grid-template-columns:repeat(3,1fr)}
  .tech-period-cards{grid-template-columns:repeat(2,1fr)}
  .tech-detail-filters{grid-template-columns:repeat(2,1fr)}
  .tech-detail-filters .filter-actions{grid-column:1/-1}
}
@media(max-width:780px){
  .technician-detail-head{align-items:flex-start}
  .tech-detail-title{align-items:flex-start}
  .tech-detail-avatar{width:50px;height:50px;border-radius:15px}
  .technician-detail-stats{grid-template-columns:repeat(2,1fr)}
  .tech-period-cards{grid-template-columns:1fr 1fr}
  .tech-detail-filters{grid-template-columns:1fr}
  .tech-detail-filters .filter-actions{grid-column:auto}
  .recent-closed-item{flex-direction:column;gap:5px}
  .recent-closed-item>div:last-child{text-align:left}
  .quick-status-links{width:100%}
  .quick-status-links a{flex:1;text-align:center}
}
@media(max-width:480px){
  .technician-detail-stats{grid-template-columns:1fr}
  .tech-period-cards{grid-template-columns:1fr}
  .tech-detail-title{gap:10px}
  .tech-detail-title h1{font-size:22px}
}
.technician-person-card{align-items:center}.technician-person-card .person-main{min-width:0;flex:1}.technician-card-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.technician-card-actions .btn{font-size:11px;padding:8px 10px}
@media(max-width:620px){
  .technician-person-card{align-items:flex-start;flex-wrap:wrap}
  .technician-card-actions{width:100%;justify-content:stretch}
  .technician-card-actions .btn{flex:1}
}

/* v16 - Personel giderleri */
.personnel-expense-stats{margin-bottom:16px}.salary-generator{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.salary-generator h3{margin:0 0 6px}.salary-generator p{margin:0;color:var(--muted,#6b7280);max-width:760px}.person-filter{align-items:end}.check-row{display:flex;align-items:center;gap:8px;min-height:42px}.check-row input[type=checkbox]{width:auto}.table-actions{white-space:nowrap}.table-actions .btn{margin:2px}.empty-cell{text-align:center;padding:28px!important;color:#6b7280}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9999;align-items:center;justify-content:center;padding:18px}.modal-box{background:#fff;border-radius:18px;box-shadow:0 25px 60px rgba(0,0,0,.25);width:min(520px,100%);padding:22px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px}.modal-head h3{margin:0}.modal-head button{border:0;background:transparent;font-size:28px;cursor:pointer}.modal-box select{width:100%}.validation,span.field-validation-error{color:#b91c1c;font-size:13px}.span-2{grid-column:span 2}
@media (max-width:760px){.salary-generator{align-items:stretch;flex-direction:column}.salary-generator .btn{width:100%}.span-2{grid-column:span 1}.table-actions{white-space:normal}}

/* v17 - Kasa gelir / gider raporları */
.cash-report-filters{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr)) auto;gap:12px;align-items:end}.cash-report-filters label{display:block;font-size:11px;font-weight:800;color:var(--muted);margin-bottom:6px}.cash-report-filters input,.cash-report-filters select{width:100%;padding:10px 11px;border:1px solid #d8dee8;border-radius:10px;background:#fff;color:var(--text);font:inherit}.cash-report-filters .filter-actions{display:flex;gap:7px}.cash-report-stats{grid-template-columns:repeat(4,minmax(160px,1fr))}.income-stat{border-color:#a7f3d0;background:linear-gradient(180deg,#fff,#f0fdf4)}.income-stat b,.money-income{color:#059669}.expense-stat{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}.expense-stat b,.money-expense{color:#dc2626}.net-stat{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#eff6ff)}.net-stat b{color:#2563eb}.cash-chart-legend{display:flex;gap:13px;font-size:11px;color:var(--muted)}.cash-chart-legend span{display:flex;gap:5px;align-items:center}.cash-chart-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.income-dot{background:#10b981}.expense-dot{background:#ef4444}.cash-daily-chart{height:245px;display:flex;align-items:stretch;gap:5px;overflow-x:auto;padding:15px 4px 28px;border-bottom:1px solid var(--line)}.cash-day-col{min-width:28px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.cash-day-bars{height:175px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.cash-day-bars i{display:block;width:min(12px,43%);min-height:2px;border-radius:5px 5px 1px 1px}.cash-income-bar{background:#10b981}.cash-expense-bar{background:#ef4444}.cash-day-col small{font-size:9px;color:#64748b;transform:rotate(-42deg);white-space:nowrap;margin-bottom:-17px}.cash-analysis-grid>.panel{height:calc(100% - 20px)}.cash-account-table{min-width:720px}.cash-category-list{display:grid;gap:3px}.cash-category-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:10px 2px;border-bottom:1px dashed #e5e7eb}.cash-category-row:last-child{border-bottom:0}.cash-category-row strong,.cash-category-row small{display:block}.cash-category-row strong{font-size:13px}.cash-category-row small{font-size:10px;color:var(--muted);margin-top:3px}.cash-category-row>b{font-size:13px;white-space:nowrap}.cash-category-bar{height:4px;background:#eef2f7;border-radius:999px;overflow:hidden;margin-top:7px}.cash-category-bar i{display:block;height:100%;border-radius:999px}.income-fill{background:#10b981}.expense-fill{background:#ef4444}.cash-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}.cash-top-list{display:grid}.cash-top-row{display:flex;justify-content:space-between;gap:15px;padding:10px 2px;border-bottom:1px solid var(--line)}.cash-top-row:last-child{border-bottom:0}.cash-top-row strong,.cash-top-row span,.cash-top-row small{display:block}.cash-top-row span,.cash-top-row small{font-size:10px;color:var(--muted);margin-top:3px}.cash-top-row>b{white-space:nowrap}.cash-detail-table{min-width:1050px}
@media(max-width:1200px){.cash-report-filters{grid-template-columns:repeat(3,1fr)}.cash-report-filters .filter-actions{grid-column:1/-1}.cash-report-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.cash-report-filters{grid-template-columns:1fr 1fr}.cash-report-filters .filter-actions{grid-column:1/-1}.cash-analysis-grid{grid-template-columns:1fr}.cash-report-head{align-items:flex-start}}
@media(max-width:560px){.cash-report-filters{grid-template-columns:1fr}.cash-report-filters .filter-actions{grid-column:auto}.cash-report-filters .filter-actions .btn{flex:1}.cash-report-stats{grid-template-columns:1fr}.cash-top-row{flex-direction:column;gap:5px}}


/* v18 - Teknisyen kartında personel bilgileri */
.person-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.person-name-row h3{margin:0}
.technician-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:8px;font-size:.9rem}
.technician-meta span{display:inline-flex;align-items:center;gap:4px}
.technician-filter{grid-template-columns:minmax(220px,1fr) minmax(180px,240px) auto}
@media (max-width:760px){
  .technician-filter{grid-template-columns:1fr}
  .technician-meta{display:grid;grid-template-columns:1fr;gap:6px}
}


/* v19 - İmer Teknik logo */
.brand{justify-content:center;padding:2px 6px 20px}
.brand-logo{display:block;width:100%;max-width:205px;height:auto;max-height:105px;object-fit:contain;background:#fff;border-radius:14px;padding:8px}
.login-brand-logo{display:block;width:min(300px,90%);height:auto;margin:0 auto 14px;object-fit:contain}
@media(max-width:780px){
  .brand-logo{max-width:190px}
}
