/* SignNox tasarım sistemi — tek kaynak. Yeni ekran = bu bileşenler. */
:root{
  --bg:#0d1117;--surface:#161b22;--surface-2:#1c2330;--surface-3:#232c3b;
  --border:#2a3342;--border-2:#384357;
  --text:#e6edf3;--text-2:#9aa7b8;--text-3:#6b7788;
  --brand:#5b5ff0;--brand-2:#a5b4fc;--brand-soft:rgba(91,95,240,.14);
  --ok:#3fb950;--ok-soft:rgba(63,185,80,.14);--warn:#d29922;--warn-soft:rgba(210,153,34,.14);
  --err:#f85149;--err-soft:rgba(248,81,73,.14);--info:#58a6ff;--info-soft:rgba(88,166,255,.14);
  --r:12px;--r-sm:8px;--shadow:0 8px 30px rgba(0,0,0,.35);
  --font:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}
:root[data-theme=light]{
  --bg:#f5f7fb;--surface:#ffffff;--surface-2:#f0f3f8;--surface-3:#e7ecf3;
  --border:#e1e6ee;--border-2:#cfd6e2;--text:#111827;--text-2:#4b5563;--text-3:#8b95a5;
  --brand-soft:rgba(91,95,240,.10);--shadow:0 8px 30px rgba(17,24,39,.08);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--brand-2);text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.ti{font-size:18px;line-height:1}

/* Kabuk */
.app{display:grid;grid-template-columns:248px 1fr;height:100vh}
.side{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;gap:4px;overflow:auto}
.logo{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;font-weight:700;font-size:17px;letter-spacing:-.01em}
.logo-mark{width:32px;height:32px;border-radius:9px;background:#5B5FF0;display:grid;place-items:center;color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 6px 18px rgba(91,95,240,.35);flex:none}
.logo-mark img{width:64%;height:auto;display:block}
.wm{height:17px;width:auto;display:block}
:root[data-theme=light] .wm{content:url(brand/signnox-logotip-koyu.svg)}
.logo small{margin-top:3px}
.logo small{display:block;font-size:11px;font-weight:500;color:var(--text-3)}
.nav-sec{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);padding:14px 10px 6px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);color:var(--text-2);font-weight:500}
.nav a:hover{background:var(--surface-2);color:var(--text)}
.nav a.on{background:var(--brand-soft);color:var(--text)}
.nav a.on .ti{color:var(--brand-2)}
.nav .cnt{margin-left:auto;font-size:11px;background:var(--surface-3);color:var(--text-2);padding:1px 7px;border-radius:99px}
.side-foot{margin-top:auto;padding:12px 8px 0;border-top:1px solid var(--border)}
.lic-mini{font-size:12px;color:var(--text-2)}
.main{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.top{height:60px;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--bg)}
.crumb{font-weight:600}
.crumb span{color:var(--text-3);font-weight:500}
.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 10px;color:var(--text-3);width:300px;cursor:pointer}
.kbd{margin-left:auto;font-size:11px;border:1px solid var(--border-2);border-radius:5px;padding:0 5px}
.icon-btn{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-2)}
.icon-btn:hover{color:var(--text);border-color:var(--border-2)}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:12px;background:linear-gradient(135deg,#0ea5e9,var(--brand));color:#fff;flex:none}
.content{flex:1;overflow:auto;padding:24px}
.page-h{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px}
.page-h h1{margin:0;font-size:22px;letter-spacing:-.02em}
.page-h p{margin:4px 0 0;color:var(--text-2)}
.page-h .act{margin-left:auto;display:flex;gap:8px}

/* Bileşenler */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px}
.card-h{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.card-h h3{margin:0;font-size:14px;font-weight:600}
.card-h .sub{color:var(--text-3);font-size:12px}
.card-h .r{margin-left:auto}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.g-main{grid-template-columns:2fr 1fr}
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-weight:500;white-space:nowrap}
.btn:hover{border-color:var(--border-2);background:var(--surface-2)}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.pri:hover{filter:brightness(1.1)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}
.btn.sm{padding:5px 10px;font-size:12px}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:2px 9px;border-radius:99px;background:var(--surface-3);color:var(--text-2)}
.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.err{background:var(--err-soft);color:var(--err)}.badge.brand{background:var(--brand-soft);color:var(--brand-2)}
.badge.info{background:var(--info-soft);color:var(--info)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.dot.warn{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.kpi .l{color:var(--text-2);font-size:13px;display:flex;align-items:center;gap:6px}
.kpi .v{font-size:28px;font-weight:700;letter-spacing:-.02em;margin:6px 0 2px}
.kpi .d{font-size:12px;color:var(--ok)}
.bar{height:8px;background:var(--surface-3);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),#8b5cf6);border-radius:99px}
.table{width:100%;border-collapse:collapse}
.table th{text-align:left;font-size:12px;font-weight:500;color:var(--text-3);padding:10px 12px;border-bottom:1px solid var(--border)}
.table td{padding:11px 12px;border-bottom:1px solid var(--border)}
.table tr:hover td{background:var(--surface-2)}
.person{display:flex;align-items:center;gap:10px}
.person .avatar{width:30px;height:30px;font-size:11px}
.muted{color:var(--text-2)}.faint{color:var(--text-3)}
.fld{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.fld label{font-size:12px;color:var(--text-2);font-weight:500}
.inp{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;outline:none;width:100%}
.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;gap:2px}
.seg button{border:0;background:transparent;padding:5px 11px;border-radius:6px;color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px}
.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px}
.tabs a{padding:9px 12px;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500;cursor:pointer}
.tabs a.on{color:var(--text);border-color:var(--brand)}
.list-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.list-row:last-child{border-bottom:0}
.ico-box{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-2);flex:none}
.ico-box.ok{background:var(--ok-soft);color:var(--ok)}.ico-box.warn{background:var(--warn-soft);color:var(--warn)}.ico-box.info{background:var(--info-soft);color:var(--info)}
.switch{width:36px;height:20px;border-radius:99px;background:var(--surface-3);position:relative;cursor:pointer;flex:none;border:0}
.switch::after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.2s}
.switch.on{background:var(--brand)}.switch.on::after{left:19px}
.empty-hint{border:1px dashed var(--border-2);border-radius:var(--r);padding:14px;color:var(--text-2);display:flex;gap:10px;align-items:center}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--surface-3);border:1px solid var(--border-2);padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transition:.25s;display:flex;gap:8px;align-items:center;z-index:99}
.toast.show{opacity:1;transform:translateX(-50%)}
.fade{animation:fade .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Komut paleti */
.pal-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:90}
.pal-bg.show{display:flex}
.pal{width:560px;background:var(--surface);border:1px solid var(--border-2);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.pal input{width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;padding:16px 18px;font-size:16px;outline:none}
.pal .it{display:flex;align-items:center;gap:10px;padding:10px 18px;cursor:pointer;color:var(--text-2)}
.pal .it:hover,.pal .it.on{background:var(--brand-soft);color:var(--text)}

/* Editör */
.editor{display:grid;grid-template-columns:260px 1fr 300px;gap:0;height:calc(100vh - 60px - 48px);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.ed-left,.ed-right{padding:16px;overflow:auto}
.ed-left{border-right:1px solid var(--border)}.ed-right{border-left:1px solid var(--border)}
.ed-mid{background:var(--bg);display:flex;flex-direction:column;min-width:0}
.ed-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface)}
.ed-stage{flex:1;overflow:auto;display:flex;justify-content:center;padding:28px}
.blk{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:8px;background:var(--surface-2);cursor:grab}
.blk:hover{border-color:var(--brand)}
.blk .ti{color:var(--brand-2)}
.blk .h{margin-left:auto;color:var(--text-3)}
.layer{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;color:var(--text-2);cursor:pointer}
.layer.on,.layer:hover{background:var(--brand-soft);color:var(--text)}
.layer .lname{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.layer .lctl{margin-left:auto;display:flex;gap:2px;opacity:.35;transition:opacity .15s}
.layer:hover .lctl,.layer.on .lctl{opacity:1}
.var-chip{display:inline-flex;font-family:ui-monospace,monospace;font-size:12px;background:var(--brand-soft);color:var(--brand-2);padding:2px 7px;border-radius:5px;margin:0 4px 6px 0;cursor:pointer}
.swatches{display:flex;gap:6px}
.swatches i{width:24px;height:24px;border-radius:6px;cursor:pointer;border:2px solid transparent}
.swatches i.on{border-color:var(--text)}

/* E-posta istemci çerçeveleri */
.mail{width:680px;max-width:100%;background:#fff;color:#1f2937;border-radius:10px;box-shadow:var(--shadow);overflow:hidden;font-family:"Segoe UI",Arial,sans-serif;align-self:flex-start}
.mail.dark{background:#1f1f1f;color:#e5e5e5}
.mail-top{padding:10px 16px;font-size:12px;display:flex;align-items:center;gap:8px;color:#fff}
.mail.outlook .mail-top{background:#0f6cbd}.mail.gmail .mail-top{background:#f6f8fc;color:#444;border-bottom:1px solid #e5e7eb}
.mail.dark.gmail .mail-top{background:#2a2a2a;color:#ccc;border-color:#333}
.mail-hdr{padding:14px 20px;border-bottom:1px solid #e5e7eb;font-size:13px}
.mail.dark .mail-hdr{border-color:#333}
.mail-hdr b{display:inline-block;width:46px;color:#6b7280;font-weight:500}
.mail-body{padding:20px;font-size:14px;line-height:1.6}
.mail.phone{width:340px;border-radius:34px;border:10px solid #111;padding-top:18px}
.mail.phone .mail-hdr b{width:auto;min-width:38px;margin-right:6px}
.sig-sel{outline:2px dashed transparent;outline-offset:4px;border-radius:4px;cursor:pointer;transition:outline-color .15s}
.sig-sel:hover{outline-color:rgba(91,95,240,.5)}
.sig-sel.on{outline-color:var(--brand)}
.quote{margin-top:22px;padding-top:12px;border-top:1px solid #e5e7eb;color:#6b7280;font-size:13px}
.mail.dark .quote{border-color:#333;color:#999}

/* Kural kartları */
.rule{display:grid;grid-template-columns:28px 1fr auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);margin-bottom:10px}
.rule .grip{color:var(--text-3);cursor:grab}
.rule-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:99px;background:var(--surface-2);border:1px solid var(--border);font-size:13px}
.pill b{font-weight:600}
.arrow{color:var(--text-3)}
.sim{background:linear-gradient(135deg,rgba(91,95,240,.12),rgba(139,92,246,.06));border:1px solid rgba(91,95,240,.35)}
.sim-out{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);margin-top:12px}

/* Kurulum sihirbazı */
.steps{display:flex;gap:0;margin-bottom:22px}
.step{flex:1;display:flex;align-items:center;gap:10px;color:var(--text-3);font-weight:500}
.step .n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--border-2);font-size:13px;flex:none}
.step.done .n{background:var(--ok);border-color:var(--ok);color:#fff}
.step.on{color:var(--text)}.step.on .n{background:var(--brand);border-color:var(--brand);color:#fff}
.step::after{content:"";flex:1;height:1px;background:var(--border);margin:0 12px}
.step:last-child::after{display:none}
.plat{border:1px solid var(--border);border-radius:var(--r);padding:16px;background:var(--surface);cursor:pointer;transition:.15s;position:relative}
.plat:hover{border-color:var(--brand);transform:translateY(-2px)}
.plat.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.plat .pl-logo{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:22px;margin-bottom:10px}
.plat h4{margin:0 0 4px;font-size:14px}
.plat p{margin:0;color:var(--text-2);font-size:12px}
.plat .st{position:absolute;top:14px;right:14px}
.code{font-family:ui-monospace,monospace;font-size:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;color:var(--brand-2);white-space:pre-wrap}
.check{display:flex;align-items:center;gap:10px;padding:9px 0}
.check .ti{color:var(--ok)}
.check.pend .ti{color:var(--text-3)}
.spark{display:flex;align-items:flex-end;gap:3px;height:120px}
.spark i{flex:1;background:linear-gradient(180deg,var(--brand),rgba(91,95,240,.25));border-radius:4px 4px 0 0;animation:grow .6s ease both}
@keyframes grow{from{transform:scaleY(0);transform-origin:bottom}to{transform:scaleY(1)}}
.timeline{position:relative;height:auto}
.tl-row{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:12px;padding:8px 0}
.tl-track{position:relative;height:28px;background:var(--surface-2);border-radius:6px}
.tl-bar{position:absolute;top:3px;height:22px;border-radius:5px;font-size:11px;color:#fff;display:flex;align-items:center;padding:0 8px;white-space:nowrap;overflow:hidden}
.tl-today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--err)}
.banner-thumb{height:64px;border-radius:8px;display:flex;align-items:center;padding:0 16px;color:#fff;font-weight:600;gap:10px}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.g-main{grid-template-columns:1fr}.editor{grid-template-columns:220px 1fr}.ed-right{display:none}}

/* v4 ortak bileşenler */
.demo-bar{display:flex;align-items:center;gap:10px;padding:8px 24px;background:linear-gradient(90deg,rgba(91,95,240,.20),rgba(139,92,246,.08));border-bottom:1px solid rgba(91,95,240,.35);font-size:13px}
.demo-bar .ti{color:var(--brand-2)}
.trial-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 10px;border-radius:99px;background:var(--warn-soft);color:var(--warn);cursor:pointer;border:0}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:80;padding:20px;animation:fade .2s ease both}
.modal{background:var(--surface);border:1px solid var(--border-2);border-radius:16px;box-shadow:var(--shadow);width:min(960px,100%);max-height:88vh;display:flex;flex-direction:column}
.modal.sm{width:min(560px,100%)}
.modal-h{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border)}
.modal-h h3{margin:0;font-size:16px}
.modal-b{padding:20px;overflow:auto}
.modal-f{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;align-items:center}
.savebar{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--surface-3);border:1px solid var(--border-2);border-radius:12px;padding:8px 8px 8px 16px;display:flex;gap:10px;align-items:center;box-shadow:var(--shadow);z-index:70;animation:fade .25s ease both}
.drawer-bg{position:fixed;inset:0;z-index:84;display:none}.drawer-bg.show{display:block}
.drawer{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100%;background:var(--surface);border-left:1px solid var(--border-2);box-shadow:var(--shadow);z-index:85;transform:translateX(105%);transition:transform .25s;overflow:auto}
.drawer.show{transform:none}
.dropzone{border:1.5px dashed var(--border-2);border-radius:var(--r-sm);padding:16px;text-align:center;color:var(--text-2);cursor:pointer;font-size:13px;transition:.15s}
.dropzone:hover{border-color:var(--brand);color:var(--text)}
.dropzone.ok{border-color:var(--ok);color:var(--ok);border-style:solid}
.score{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;border:3px solid var(--ok);color:var(--ok);flex:none}
.score.mid{border-color:var(--info);color:var(--info)}.score.low{border-color:var(--warn);color:var(--warn)}
.tree .n{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px dashed var(--border)}
.tree .n.l2{padding-left:30px}
.tree .n:last-child{border-bottom:0}
.tree .why{margin-left:auto;font-size:12px;color:var(--text-3)}
.folder{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-weight:500}
.folder.on{border-color:var(--brand);background:var(--brand-soft)}
.checklist .it{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.checklist .it:last-child{border-bottom:0}
.checklist .n{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border-2);display:grid;place-items:center;font-size:12px;color:var(--text-3);flex:none}
.checklist .it.done .n{background:var(--ok);border-color:var(--ok);color:#fff}
.checklist .it.done b{color:var(--text-2);text-decoration:line-through}
.kv{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;font-size:13px}
.kv span{color:var(--text-2)}
.pangram{font-size:18px;padding:10px 12px;background:var(--surface-2);border-radius:var(--r-sm);margin-top:6px}
.news .it{padding:14px 20px;border-bottom:1px solid var(--border)}
