:root{--bg:#f3f5f9;--card:#fff;--ink:#1c2430;--muted:#66717f;--line:#e3e8ef;--line-2:#eef2f6;--brand:#1f4e79;--brand-2:#2e75b6;--ok:#2f7d5b;--warn:#b7791f;--err:#c0504d;--in:#fffbea;--in-b:#e8dfb0;--head:#f1f5f9;--head-ink:#334155;--hover:#fafcff;--radius:14px;--shadow:0 1px 2px rgba(16,24,40,.05),0 2px 8px rgba(16,24,40,.06);--sb:#132f4c;--sb-ink:#dbe7f3;--kpi-l:#66717f}
[data-theme=dark]{--bg:#0f1720;--card:#172231;--ink:#e6edf5;--muted:#93a1b3;--line:#263446;--line-2:#1f2c3c;--in:#1e2a3a;--in-b:#34465c;--head:#1c2a3b;--head-ink:#c5d1df;--hover:#1b2737;--shadow:0 1px 2px rgba(0,0,0,.4);--sb:#0b1420;--sb-ink:#c8d6e5;--brand-2:#5b9bd5}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}
a{color:var(--brand-2)}h1,h2,h3{margin:0;font-weight:600}h1{font-size:20px}h2{font-size:15px}h3{font-size:13.5px;margin-bottom:8px}
.muted{color:var(--muted);font-size:12.5px;line-height:1.55}
.app{display:flex;min-height:100vh}
.sidebar{width:248px;flex:0 0 248px;background:linear-gradient(180deg,#0f2238 0%,#132f4c 60%,#173a5c 100%);color:var(--sb-ink);display:flex;flex-direction:column;padding:14px 12px;position:sticky;top:0;height:100vh;transition:width .2s,flex-basis .2s;overflow:hidden;box-shadow:inset -1px 0 0 rgba(255,255,255,.06)}
[data-theme=dark] .sidebar{background:linear-gradient(180deg,#0b1420,#0f1c2c)}
.sb-search{display:flex;align-items:center;gap:8px;margin:2px 4px 10px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.08);color:#b9c9da;font-size:12.5px;cursor:pointer;transition:background .15s}.sb-search:hover{background:rgba(255,255,255,.14)}.sb-search svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.sb-search span{flex:1}.sb-search kbd{background:rgba(255,255,255,.1);border:0;color:#b9c9da;font-size:10px}
#nav a .ic{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.06);flex:0 0 30px;transition:background .15s}#nav a .ic svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#nav a:hover .ic{background:rgba(255,255,255,.12)}#nav a.active .ic{background:linear-gradient(135deg,#2e75b6,#70ad47);color:#fff}
.sidebar-foot .user{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:rgba(255,255,255,.06)}.sidebar-foot .user b{display:block;font-size:12.5px;color:#fff}.sidebar-foot .user small{font-size:11px}.avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#2e75b6;color:#fff;font-weight:700;font-size:12px;flex:0 0 32px}
.sb-toggle svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.brand{display:flex;align-items:center;gap:10px;padding:6px 6px 14px;white-space:nowrap}.brand small{display:block;opacity:.7;font-size:11px}.brand strong{font-size:15px}.brand-t{flex:1;min-width:0}
.logo{display:inline-grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#2e75b6,#70ad47);color:#fff;font-weight:700;font-size:13px}
.sb-toggle{color:var(--sb-ink);opacity:.6;font-size:12px}.sb-toggle:hover{opacity:1}
#nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;scrollbar-width:thin}#nav a{color:inherit;text-decoration:none;padding:6px 8px;border-radius:10px;font-weight:500;font-size:13.5px;display:flex;align-items:center;gap:10px;position:relative;transition:background .15s,transform .15s;white-space:nowrap}#nav a:hover{background:rgba(255,255,255,.07);transform:translateX(2px)}#nav a.active{background:rgba(255,255,255,.14);color:#fff;font-weight:600}
.nav-sec{font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.45;padding:12px 10px 4px;white-space:nowrap;font-weight:600}
.cnt{margin-left:auto;font-size:10.5px;background:rgba(255,255,255,.14);padding:1px 7px;border-radius:999px;font-weight:600}.cnt:empty{display:none}.cnt.warn{background:#b7791f;color:#fff}
.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:8px 10px;font-size:12.5px;white-space:nowrap}.sidebar-foot a{color:#9fb8d0}
html.sb-min .sidebar{width:74px;flex-basis:74px;padding:14px 10px}html.sb-min .sidebar span,html.sb-min .sidebar .brand-t,html.sb-min .nav-sec,html.sb-min .cnt,html.sb-min .sidebar-foot .user div,html.sb-min .sb-search span,html.sb-min .sb-search kbd{display:none}html.sb-min .sb-toggle{transform:rotate(180deg)}html.sb-min #nav a{justify-content:center;padding:8px}html.sb-min .brand{justify-content:center;flex-direction:column;gap:6px}html.sb-min .sb-search{justify-content:center}html.sb-min .sidebar-foot .user{justify-content:center;padding:6px}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:9px 18px;background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar .title{font-weight:700;font-size:16px;flex:1;letter-spacing:-.01em}
.topbar-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.scenario{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.scenario select{font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:5px 8px;font:inherit;font-size:13px}
.save-status{font-size:12px;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:6px}.save-status .dot{width:8px;height:8px;border-radius:50%;background:#aaa;display:inline-block}.save-status.ok .dot{background:var(--ok)}.save-status.warn .dot{background:var(--warn);animation:pulse 1.2s infinite}.save-status.err .dot{background:var(--err)}.save-status em{font-style:normal}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.content{padding:20px;max-width:none;width:100%;animation:fadeUp .25s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 12px;border-radius:9px;font:inherit;font-weight:500;cursor:pointer;font-size:13px;transition:all .15s;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:#b8c5d6;background:var(--hover);transform:translateY(-1px)}.btn:active{transform:none}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:#173d61}.btn.danger{color:var(--err);border-color:#f0c9c8}.btn.danger-solid{background:var(--err);border-color:var(--err);color:#fff}.btn.small{padding:4px 9px;font-size:12px}.btn.block{width:100%;margin-top:10px;justify-content:center}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.icon-btn{border:0;background:transparent;font-size:17px;cursor:pointer;padding:5px 8px;border-radius:8px;color:var(--ink);transition:background .15s}.icon-btn:hover{background:var(--line-2)}.icon-btn:disabled{opacity:.35;cursor:default;background:transparent}.icon-btn.del{color:var(--err);font-size:13px}#menuBtn{display:none}
.menu{position:relative}.menu-list{display:none;position:absolute;z-index:80;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.15);min-width:200px;padding:6px;z-index:30;animation:fadeUp .15s}.menu.open .menu-list{display:block}.menu-list button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:7px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.menu-list button:hover{background:var(--line-2)}.menu-list hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:16px;animation:fadeUp .3s ease both}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.card-head .actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);border-left:4px solid var(--brand-2);transition:transform .15s,box-shadow .15s;animation:fadeUp .35s ease both;cursor:default}.kpi:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(16,24,40,.1)}
.kpi.pos{border-left-color:var(--ok)}.kpi.neg{border-left-color:var(--err)}.kpi.warn{border-left-color:var(--warn)}.kpi-l{font-size:12px;color:var(--muted);font-weight:500;display:flex;justify-content:space-between}.kpi-v{font-size:22px;font-weight:800;margin:4px 0 2px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi-s{font-size:11.5px;color:var(--muted)}
.kpi .spark{height:4px;border-radius:2px;background:var(--line-2);margin-top:8px;overflow:hidden}.kpi .spark i{display:block;height:100%;background:var(--brand-2);width:0;transition:width .8s ease}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.chart-grid .wide{grid-column:1/-1}.chart-grid canvas{max-height:280px}
.alert{background:#fff4e5;border:1px solid #f5d9a8;color:#7a4b00;border-radius:11px;padding:10px 14px;margin-bottom:14px;font-size:13px}.alert.ok{background:#eaf6ef;border-color:#bfe3cf;color:#1f5e3f}[data-theme=dark] .alert{background:#3a2c12;border-color:#5c4620;color:#f1d7a3}[data-theme=dark] .alert.ok{background:#12301f;border-color:#1f5e3f;color:#a9e3c2}
.warn-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.warn-list li{display:flex;gap:8px;align-items:center;font-size:12.5px}.warn-list li a{margin-left:auto;font-size:11.5px}.wdot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.wdot.err{background:var(--err)}.wdot.warn{background:var(--warn)}.wdot.info{background:var(--brand-2)}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.toolbar input[type=search],.toolbar select{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:9px;padding:7px 10px;font:inherit;font-size:13px}.toolbar input[type=search]{min-width:220px}.toolbar .sp{flex:1}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer;transition:all .15s}.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.bulk{display:none;align-items:center;gap:8px;background:var(--brand);color:#fff;padding:8px 12px;border-radius:10px;margin-bottom:10px;font-size:13px;animation:fadeUp .2s}.bulk.show{display:flex;flex-wrap:wrap}.bulk .btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px;max-height:72vh;background:var(--card)}
table.grid{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px;white-space:nowrap}
table.grid th{position:sticky;top:0;z-index:2;background:var(--head);color:var(--head-ink);font-weight:600;text-align:left;padding:8px 8px;border-bottom:1px solid var(--line);font-size:11.5px;cursor:pointer;user-select:none}table.grid th.nosort{cursor:default}table.grid th .sa{opacity:.4;font-size:10px;margin-left:3px}table.grid th.sorted .sa{opacity:1;color:var(--brand-2)}
table.grid td{padding:4px 6px;border-bottom:1px solid var(--line-2);vertical-align:middle}
table.grid th.sel,table.grid td.sel{width:34px;text-align:center;position:sticky;left:0;z-index:3;background:var(--card)}table.grid th.sel{z-index:4;background:var(--head)}
table.grid td.c-in input,table.grid td.c-in select,table.grid td.c-in textarea{width:100%;min-width:64px;border:1px solid transparent;background:var(--in);border-radius:6px;padding:5px 6px;font:inherit;font-size:12.5px;color:#0b3d91;transition:box-shadow .15s}[data-theme=dark] table.grid td.c-in input,[data-theme=dark] table.grid td.c-in select{color:#9ec5ff}
table.grid td.c-in select{min-width:112px;padding-right:22px;text-overflow:ellipsis}table.grid td.c-in input[type=date]{min-width:128px}table.grid td.c-in input[type=number]{min-width:84px}
table.grid td.c-in input[type=checkbox]{width:16px;height:16px;min-width:0;accent-color:var(--brand)}table.grid td.c-in input:focus,table.grid td.c-in select:focus{outline:0;box-shadow:0 0 0 3px rgba(46,117,182,.25);border-color:#8fb3dc;background:var(--card)}
table.grid td.num,table.grid th.num,table.kv td.num{text-align:right;font-variant-numeric:tabular-nums}
table.grid tbody tr{transition:background .15s}table.grid tbody tr:hover td{background:var(--hover)}table.grid tbody tr.selected td{background:rgba(46,117,182,.08)}table.grid tbody tr.flash td{animation:flash 1.2s}
@keyframes flash{0%{background:#fff3c4}100%{background:transparent}}
table.grid tfoot td{background:var(--head);font-weight:600;border-top:2px solid var(--line);padding:8px 6px;position:sticky;bottom:0}
table.grid.compact td{padding:6px 8px}table.grid td.empty{text-align:center;color:var(--muted);padding:28px}
table.grid tr.neg td{background:rgba(192,80,77,.07)}table.grid tr.veri td{background:rgba(183,121,31,.06)}
.rowmenu{position:relative}.rowmenu .icon-btn{font-size:14px;padding:2px 6px}
.calc{color:var(--ink)}
.badge{display:inline-block;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.badge.ok{background:#e6f4ec;color:#1f5e3f}.badge.warn{background:#fdebd0;color:#7a4b00}.badge.info{background:#e8f0fb;color:#1f4e79}.badge.err{background:#fde2e1;color:#8b1f1c}.badge.muted{background:var(--line-2);color:var(--muted)}
[data-theme=dark] .badge.ok{background:#173d2b;color:#a9e3c2}[data-theme=dark] .badge.warn{background:#4a3310;color:#f4cf8b}[data-theme=dark] .badge.info{background:#1b3554;color:#bcd9f8}[data-theme=dark] .badge.err{background:#4b1e1c;color:#f5b3b0}
.prog{height:6px;border-radius:3px;background:var(--line-2);overflow:hidden;min-width:60px}.prog i{display:block;height:100%;background:var(--ok);transition:width .6s}
table.kv{width:100%;border-collapse:collapse;font-size:13px}table.kv td,table.kv th{padding:7px 8px;border-bottom:1px solid var(--line-2);text-align:left}table.kv th{font-size:12px;color:var(--muted)}table.kv tr.total td{font-weight:700;border-top:2px solid var(--line)}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 16px}
.form label,.auth-card label,label.fld{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted);font-weight:500}
.form input,.form select,.form textarea,.auth-card input,label.fld input,label.fld select,label.fld textarea{border:1px solid var(--in-b);background:var(--in);border-radius:9px;padding:8px 10px;font:inherit;font-size:13.5px;color:#0b3d91;transition:box-shadow .15s}[data-theme=dark] .form input,[data-theme=dark] .form select,[data-theme=dark] label.fld input,[data-theme=dark] label.fld select{color:#9ec5ff}
.form input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}
.form input:focus,.auth-card input:focus,label.fld input:focus,label.fld select:focus{outline:0;box-shadow:0 0 0 3px rgba(46,117,182,.25);border-color:#8fb3dc}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tag-edit{display:flex;flex-wrap:wrap;gap:6px}.tag-edit .tag{display:inline-flex;align-items:center;gap:4px;background:var(--line-2);border-radius:999px;padding:3px 8px 3px 10px;font-size:12px}.tag-edit .tag button{border:0;background:transparent;cursor:pointer;color:var(--err);font-size:12px}
.print-head{display:none}
.scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:25}
.tl{list-style:none;margin:0;padding:0}.tl li{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:12.5px}.tl li time{color:var(--muted);font-size:11.5px}
.sen-table th{text-align:right}.sen-table td.best{color:var(--ok);font-weight:600}
#toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{display:flex;align-items:center;gap:10px;background:#1c2430;color:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.25);font-size:13px;opacity:0;transform:translateY(10px);transition:all .25s;max-width:360px}.toast.show{opacity:1;transform:none}.toast .ti{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--brand-2);font-size:11px;font-weight:700;flex:0 0 20px}.toast.ok .ti{background:var(--ok)}.toast.err .ti{background:var(--err)}.toast.warn .ti{background:var(--warn)}
.modal-wrap{position:fixed;inset:0;background:rgba(10,20,35,.45);display:grid;place-items:center;z-index:90;opacity:0;transition:opacity .2s;padding:16px}.modal-wrap.show{opacity:1}.modal{background:var(--card);color:var(--ink);border-radius:16px;width:min(520px,100%);max-height:90vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(14px) scale(.98);transition:transform .2s}.modal.wide{width:min(900px,100%)}.modal-wrap.show .modal{transform:none}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-body{padding:16px 18px;font-size:13.5px;line-height:1.5}.modal-body .form{margin-top:4px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}
.empty-state{text-align:center;padding:36px 16px;color:var(--muted)}.empty-state .big{font-size:36px;margin-bottom:8px}
kbd{font:11px/1 ui-monospace,Menlo,monospace;background:var(--line-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:2px 5px}
body.auth{display:grid;place-items:center;min-height:100vh;background:linear-gradient(160deg,#132f4c,#1f4e79 55%,#2e75b6)}
.auth-card{background:#fff;color:#1c2430;padding:28px;border-radius:18px;width:min(420px,92vw);box-shadow:0 20px 60px rgba(0,0,0,.25);animation:fadeUp .4s}.auth-card .brand{color:#1c2430;padding-bottom:12px}.auth-card h1{margin-bottom:6px}.auth-card form{display:flex;flex-direction:column;gap:12px;margin-top:12px}.auth-card .muted{color:#66717f}.auth-card .alert{margin:8px 0 0}
@media (max-width:1100px){.three{grid-template-columns:1fr 1fr}}
@media (max-width:900px){
  #menuBtn{display:inline-block}
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s;z-index:30;width:256px!important;flex-basis:256px!important}html.sb-min .sidebar span,html.sb-min .sidebar .brand-t,html.sb-min .nav-sec,html.sb-min .cnt,html.sb-min .sidebar-foot{display:initial}html.sb-min .cnt{display:inline-block}html.sb-min #nav a{justify-content:flex-start;padding:8px 10px}.sb-toggle{display:none}
  body.nav-open .sidebar{transform:none}body.nav-open .scrim{display:block}
  .content{padding:12px}.two,.three,.chart-grid{grid-template-columns:1fr}
  .topbar{padding:8px 10px;gap:6px}.topbar .title{font-size:15px}.scenario span{display:none}
  .kpi-v{font-size:19px}.table-wrap{max-height:none}
  .topbar-actions .btn{padding:6px 8px;font-size:12px}#saveBtn{display:none}
  .toolbar input[type=search]{min-width:0;flex:1}
}
@media (max-width:560px){.save-status em{display:none}.kpi-grid{grid-template-columns:1fr 1fr}#undoBtn,#redoBtn{display:none}}
@media print{
  @page{size:A4 landscape;margin:11mm}
  body{background:#fff;font-size:11px;color:#000}.sidebar,.topbar,.scrim,.alert.ok,.toolbar,.bulk,#toasts,.no-print{display:none!important}
  .content{padding:0;max-width:none;animation:none}.print-head{display:block;margin-bottom:10px;border-bottom:2px solid #1f4e79;padding-bottom:6px}.print-head p{margin:4px 0 0;color:#333;font-size:11px}
  .card,.kpi{box-shadow:none;break-inside:avoid;page-break-inside:avoid;animation:none;border-color:#ccc}.kpi-grid{grid-template-columns:repeat(4,1fr)}.chart-grid{grid-template-columns:1fr 1fr}.chart-grid .wide{grid-column:1/-1}.chart-grid canvas{max-height:200px}
  .table-wrap{max-height:none;overflow:visible;border:0}table.grid td.c-in input,table.grid td.c-in select{border:0;background:transparent;color:#000}table.grid th{position:static}table.grid td.sel,table.grid th.sel,table.grid td.act,table.grid th.act{display:none}
  a{color:inherit;text-decoration:none}.page-break{page-break-before:always}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* v3 */
.lang{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:5px 6px;font:inherit;font-size:12px;font-weight:600}
.skeleton{padding:6px}.sk{background:linear-gradient(90deg,var(--line-2) 25%,var(--line) 50%,var(--line-2) 75%);background-size:400% 100%;animation:shimmer 1.4s infinite;border-radius:10px}.sk-line{height:18px;margin-bottom:14px}.w40{width:40%}.sk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin-bottom:16px}.sk-card{height:92px}.sk-block{height:260px}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
.kpi-grid.mini .kpi{padding:10px 14px}.kpi-grid.mini .kpi-v{font-size:18px}
.card.setup{border-left:4px solid #70ad47}.steps-grid{display:flex;flex-wrap:wrap;gap:6px}.step{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--line-2);color:var(--muted)}.step.done{background:#e6f4ec;color:#1f5e3f}[data-theme=dark] .step.done{background:#173d2b;color:#a9e3c2}
ol.steps{margin:0 0 12px 18px;padding:0;font-size:13px;line-height:1.6}
.modal.pal{width:min(640px,100%);padding:0;overflow:hidden}.modal.pal input{width:100%;border:0;border-bottom:1px solid var(--line);padding:14px 16px;font:inherit;font-size:15px;background:var(--card);color:var(--ink);outline:0}.pal-list{max-height:min(60vh,420px);overflow:auto;padding:6px}.pal-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;font-size:13.5px;cursor:pointer}.pal-item.on,.pal-item:hover{background:var(--line-2)}.pal-item .ic{width:22px;text-align:center}.pal-item small{margin-left:auto;color:var(--muted);font-size:11px}.pal-foot{padding:8px 14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.colpick .menu-list{max-height:320px;overflow:auto;min-width:220px}.colpick .ck{display:flex;gap:8px;align-items:center;padding:5px 8px;font-size:12.5px;cursor:pointer;border-radius:6px}.colpick .ck:hover{background:var(--line-2)}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:10px 0 4px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.cal-head div{padding:0 6px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{min-height:92px;border:1px solid var(--line);border-radius:10px;padding:6px;background:var(--card);cursor:pointer;transition:transform .12s,box-shadow .12s;overflow:hidden}.cal-cell:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.cal-cell.off{background:transparent;border-color:transparent;cursor:default}.cal-cell.fest{background:#eaf6ef;border-color:#bfe3cf}.cal-cell.kapali{background:#f4f4f4;border-color:#ddd}.cal-cell.kur{background:#fff4e5;border-color:#f5d9a8}.cal-cell.today{outline:2px solid var(--brand-2)}[data-theme=dark] .cal-cell.fest{background:#12301f;border-color:#1f5e3f}[data-theme=dark] .cal-cell.kur{background:#3a2c12;border-color:#5c4620}[data-theme=dark] .cal-cell.kapali{background:#1c2636}
.cal-d{font-size:12px;font-weight:700;display:flex;justify-content:space-between;margin-bottom:4px}.cal-d small{font-weight:500;color:var(--muted);font-size:10px}.cal-ev{font-size:10.5px;padding:2px 6px;border-radius:5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;background:#888}.cal-ev.gir{background:#2f7d5b}.cal-ev.cik,.cal-ev.vade{background:#c0504d}.cal-ev.gor{background:#2e75b6}.cal-ev.prg{background:#7030a0}.cal-ev.gec{background:#b7791f}.cal-more{font-size:10px;color:var(--muted);margin-top:2px}
.heat{display:grid;grid-template-columns:auto 1fr;gap:4px;align-items:center;max-width:360px}.heat-y{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;color:var(--muted);grid-row:1/6}.heat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.heat-cell{aspect-ratio:1;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:14px;color:#1c2430}.heat-cell.c1{background:#dff0e5}.heat-cell.c2{background:#ffe9a8}.heat-cell.c3{background:#f9c48a}.heat-cell.c4{background:#f19d99}.heat-x{grid-column:2;font-size:11px;color:var(--muted);text-align:right}
.yorum{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.yorum ul{list-style:none;margin:0 0 8px;padding:0;max-height:160px;overflow:auto}.yorum li{font-size:12.5px;padding:4px 0;border-bottom:1px dashed var(--line-2)}.yorum li time{color:var(--muted);font-size:11px;margin-right:6px}
@media (max-width:900px){.lang{display:none}#helpBtn{display:none}}
@media print{.sb-search,.lang,#helpBtn{display:none!important}}
/* v4: kenar menü düzeltmeleri */
.sidebar .brand{padding-right:40px;min-width:0}.brand-t{overflow:hidden}.brand-t strong,.brand-t small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-toggle{position:absolute;top:16px;right:10px;width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#dbe7f3;display:grid;place-items:center;cursor:pointer;padding:0;transition:background .15s,transform .2s}.sb-toggle:hover{background:rgba(255,255,255,.18)}.sb-toggle svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}
html.sb-min .sb-toggle{position:static;margin:0 auto 10px;transform:rotate(180deg)}html.sb-min .sidebar .brand{padding-right:0}
#nav{flex:1 1 auto;min-height:0;padding-bottom:12px;margin-bottom:8px}
.sidebar-foot{margin-top:0;padding:0 2px}
.sb-close{display:none;position:absolute;top:14px;right:12px;border:0;background:rgba(255,255,255,.12);color:#fff;width:30px;height:30px;border-radius:8px;font-size:14px;cursor:pointer}
/* vurgu renkleri ve yoğunluk */
[data-accent=green]{--brand:#1f5e3f;--brand-2:#2f7d5b}[data-accent=purple]{--brand:#4a2a7a;--brand-2:#7030a0}[data-accent=orange]{--brand:#8a4b12;--brand-2:#e07b39}[data-accent=teal]{--brand:#0f5c5c;--brand-2:#1a9c9c}
[data-density=compact] table.grid td{padding:2px 4px}[data-density=compact] table.grid td.c-in input,[data-density=compact] table.grid td.c-in select{padding:3px 5px;font-size:12px}[data-density=comfy] table.grid td{padding:8px 8px}
html.no-anim *{animation:none!important;transition:none!important}
/* hero */
.hero{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:22px 24px;border-radius:18px;margin-bottom:16px;color:#fff;background:linear-gradient(120deg,#132f4c 0%,#1f4e79 45%,#2e75b6 100%);box-shadow:0 12px 30px rgba(31,78,121,.25);position:relative;overflow:hidden;animation:fadeUp .35s}.hero::after{content:"";position:absolute;right:-60px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(112,173,71,.35),transparent 65%);pointer-events:none}
[data-accent=green] .hero{background:linear-gradient(120deg,#123826,#1f5e3f 45%,#2f7d5b)}[data-accent=purple] .hero{background:linear-gradient(120deg,#2a1747,#4a2a7a 45%,#7030a0)}[data-accent=orange] .hero{background:linear-gradient(120deg,#4a2a0f,#8a4b12 45%,#e07b39)}[data-accent=teal] .hero{background:linear-gradient(120deg,#0b3535,#0f5c5c 45%,#1a9c9c)}
.hero h1{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:6px 0 4px}.hero p{margin:0;opacity:.85;font-size:13px}.hero-l{flex:1;min-width:0;position:relative}.hero-r{display:flex;gap:18px;position:relative}
.hero-chips{display:flex;gap:6px;flex-wrap:wrap}.hchip{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.16);backdrop-filter:blur(4px)}
.hero-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.btn.glass{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px)}.btn.glass:hover{background:rgba(255,255,255,.26)}
.hero .ring .ring-l,.hero .ring .ring-t{color:#fff}.hero .ring-bg{stroke:rgba(255,255,255,.2)}
/* halkalar */
.ring{display:flex;flex-direction:column;align-items:center;position:relative;min-width:96px}.ring svg{transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--line);stroke-width:8}.ring-fg{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.2,.7,.2,1)}
.ring-t{position:absolute;top:0;left:0;right:0;display:grid;place-items:center;font-weight:800;font-size:14px}.ring-t b{font-variant-numeric:tabular-nums}.ring-l{font-size:12px;font-weight:600;text-align:center;margin-top:4px}.ring-l small{display:block;font-weight:400;color:var(--muted);font-size:11px;max-width:150px}.hero .ring-l small{color:rgba(255,255,255,.8)}.ring-l .big{font-size:16px}
.ring-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.ring-row .ring{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 8px;box-shadow:var(--shadow);animation:fadeUp .4s both}.ring-row .ring-t{top:12px}.ring-t{font-size:15px}.hero .ring-t{font-size:20px}
/* stat kartları */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:12px}
.stat{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px 12px;box-shadow:var(--shadow);overflow:hidden;animation:fadeUp .4s both;transition:transform .15s,box-shadow .15s;min-height:132px}.stat:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(16,24,40,.12)}.stat.pos{border-top:3px solid var(--ok)}.stat.neg{border-top:3px solid var(--err)}
.stat-l{font-size:12px;color:var(--muted);font-weight:600}.stat-v{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:4px 0 4px;font-variant-numeric:tabular-nums}.stat-s{font-size:11.5px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.chip-d{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px}.chip-d.up{background:#e6f4ec;color:#1f5e3f}.chip-d.down{background:#fde2e1;color:#8b1f1c}.chip-d.flat{background:var(--line-2);color:var(--muted)}[data-theme=dark] .chip-d.up{background:#173d2b;color:#a9e3c2}[data-theme=dark] .chip-d.down{background:#4b1e1c;color:#f5b3b0}
.minibars{position:absolute;right:14px;top:14px;display:flex;align-items:flex-end;gap:4px;height:44px;width:42px}.minibars i{flex:1;border-radius:3px 3px 0 0;transition:height .8s cubic-bezier(.2,.7,.2,1)}
.spark{position:absolute;right:0;bottom:0;width:45%;height:44px;opacity:.9}
.stat-grid>*:nth-child(1){animation-delay:.02s}.stat-grid>*:nth-child(2){animation-delay:.08s}.stat-grid>*:nth-child(3){animation-delay:.14s}.stat-grid>*:nth-child(4){animation-delay:.2s}.ring-row>*:nth-child(n){animation-delay:calc(var(--i,0)*.05s)}
/* sekmeler */
.segs{display:flex;gap:4px;background:var(--line-2);padding:4px;border-radius:12px;margin-bottom:14px;overflow-x:auto;scrollbar-width:none}.seg{border:0;background:transparent;padding:8px 14px;border-radius:9px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .15s;display:inline-flex;gap:6px;align-items:center}.seg:hover{color:var(--ink)}.seg.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.seg b{background:var(--err);color:#fff;font-size:10px;border-radius:999px;padding:1px 6px}
.tabpane{animation:fadeUp .25s}
ul.todo{list-style:none;margin:0;padding:0}ul.todo li{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-2)}ul.todo li:last-child{border:0}ul.todo li div{flex:1;min-width:0}ul.todo li b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ul.todo li small{color:var(--muted);font-size:11.5px}ul.todo li.late b{color:var(--err)}ul.todo .dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px;background:var(--brand-2)}ul.todo .dot.err{background:var(--err)}ul.todo .dot.warn{background:var(--warn)}ul.todo .dot.info{background:var(--brand-2)}
/* toast ilerleme ve eylem */
.toast{position:relative;overflow:hidden}.toast .tact{margin-left:8px;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;border-radius:7px;padding:4px 9px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.toast .tbar{position:absolute;left:0;bottom:0;height:3px;background:rgba(255,255,255,.55);animation:tbar linear forwards}
@keyframes tbar{from{width:100%}to{width:0}}
/* mobil alt çubuk */
.bottom-nav{display:none}
@media (max-width:900px){
  .bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:24;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--muted);font-size:10.5px;font-weight:600;padding:4px 0;border-radius:10px}.bottom-nav a.active{color:var(--brand-2)}.bottom-nav .ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .content{padding:12px 12px 84px}.sb-close{display:grid;place-items:center}.sb-toggle{display:none}
  .hero{flex-direction:column;align-items:stretch;padding:18px}.hero h1{font-size:20px}.hero-r{justify-content:space-around}.hero-actions .btn{padding:6px 9px;font-size:12px}
  .stat-grid{grid-template-columns:1fr 1fr}.stat-v{font-size:20px}.minibars{display:none}.spark{width:40%}
  .ring-row{grid-template-columns:repeat(3,1fr)}.ring svg{width:72px;height:72px}.ring-l small{display:none}
}
@media (max-width:560px){.stat-grid{grid-template-columns:1fr}.ring-row{grid-template-columns:repeat(2,1fr)}.hero-chips{display:none}}
@media print{.hero{background:#1f4e79!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.bottom-nav,.segs{display:none!important}.hero-actions{display:none}}

/* v5 */
#topProg{position:fixed;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,#2e75b6,#70ad47);z-index:60;transition:width .3s,opacity .3s;opacity:0}#topProg.on{width:85%;opacity:1}
.bell{position:relative}.bell svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.bell b{position:absolute;top:0;right:0;min-width:16px;height:16px;border-radius:999px;background:var(--warn);color:#fff;font-size:10px;font-weight:700;display:none;place-items:center;padding:0 4px;line-height:16px}.bell.has b{display:grid}.bell.err b{background:var(--err)}.bell.ring{animation:bellring 1.2s 1}
@keyframes bellring{0%,100%{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}
.bell-list{min-width:340px;max-width:min(420px,92vw);max-height:60vh;overflow:auto}.bell-item{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:8px;font-size:12.5px;color:var(--ink);text-decoration:none}.bell-item:hover{background:var(--line-2)}.bell-item .wdot{margin-top:5px}
.hbar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 20px}.hbar-l{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;margin-bottom:4px}.hbar-t{height:8px;border-radius:4px;background:var(--line-2);overflow:hidden}.hbar-t i{display:block;height:100%;border-radius:4px;width:0;transition:width 1s cubic-bezier(.2,.7,.2,1)}
.kbar{display:block;width:100%;border:0;background:transparent;text-align:left;padding:7px 4px;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink);transition:background .15s}.kbar:hover{background:var(--line-2)}.kbar-l{display:flex;gap:8px;align-items:baseline;font-size:12.5px;margin-bottom:4px}.kbar-l span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbar-l b{font-variant-numeric:tabular-nums}.kbar-l small{font-size:11px;color:var(--muted)}.kbar-l small.up{color:var(--ok)}.kbar-l small.down{color:var(--err)}.kbar-t{position:relative;height:8px;border-radius:4px;background:var(--line-2);overflow:hidden}.kbar-t i{position:absolute;left:0;top:0;height:100%;border-radius:4px;transition:width .9s cubic-bezier(.2,.7,.2,1)}.kbar-t i.p{background:#c9d3df;opacity:.9}.kbar-t i.t{height:60%;top:20%}
.fab{display:none;position:fixed;right:16px;bottom:78px;width:52px;height:52px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--brand-2),#70ad47);color:#fff;font-size:26px;box-shadow:0 10px 24px rgba(31,78,121,.35);z-index:23;cursor:pointer;transition:transform .15s}.fab:active{transform:scale(.94)}
label.fld.ck span{display:flex;gap:8px;align-items:center;font-weight:500;color:var(--ink)}
@media (max-width:900px){.fab{display:block}.bell-list{position:fixed;left:8px;right:8px;top:56px;min-width:0;max-width:none}.hero-actions{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.hero-actions .btn{flex:0 0 auto}}
@media print{#topProg,.fab,#bellMenu{display:none!important}}

/* v6 */
.lang-sw{position:relative;display:inline-flex;align-items:center;background:var(--line-2);border-radius:999px;padding:3px;gap:0;isolation:isolate}.lang-sw button,.lang-sw a{position:relative;z-index:1;border:0;background:transparent;font:inherit;font-size:12px;font-weight:700;color:var(--muted);padding:5px 10px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;text-decoration:none;transition:color .2s}.lang-sw .fl{font-size:14px;line-height:1}.lang-sw button.on,.lang-sw a.on{color:var(--ink)}.lang-sw .ind{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:999px;background:var(--card);box-shadow:var(--shadow);transition:transform .25s cubic-bezier(.2,.7,.2,1);z-index:0}.lang-sw[data-on=de] .ind{transform:translateX(100%)}.lang-sw.switching{opacity:.6}
.lang-sw.sb{width:100%;margin-bottom:8px;background:rgba(255,255,255,.08)}.lang-sw.sb button{flex:1;justify-content:center;color:#9fb8d0}.lang-sw.sb button.on{color:#fff}.lang-sw.sb .ind{background:rgba(255,255,255,.16);box-shadow:none}
.auth-sw{margin-top:14px;width:100%;background:#eef2f6}.auth-sw a{flex:1;justify-content:center;color:#66717f}.auth-sw a.on{color:#1c2430}.auth-sw .ind{display:none}.auth-sw a.on{background:#fff;box-shadow:var(--shadow)}
html.sb-min .lang-sw.sb{display:none}
.btn,.seg,.chip,.kbar,#nav a{position:relative;overflow:hidden}.btn::after,.seg::after,.chip::after,#nav a::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--x,50%) var(--y,50%),rgba(255,255,255,.55),transparent 40%);opacity:0;transition:opacity .5s;pointer-events:none}.btn:active::after,.seg:active::after,.chip:active::after,#nav a:active::after{opacity:1;transition:opacity 0s}
.to-top{position:fixed;right:16px;bottom:16px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);box-shadow:var(--shadow);cursor:pointer;opacity:0;transform:translateY(10px);transition:all .25s;z-index:22;font-size:16px}.to-top.show{opacity:1;transform:none}
.hchip.ok{background:rgba(112,173,71,.35)}.chip-v{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--line-2);color:var(--muted)}
.card.today{padding:14px 18px}.today-grid{display:grid;grid-template-columns:110px repeat(auto-fit,minmax(230px,1fr));gap:18px;align-items:start}.today-col{min-width:0}.today-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand-2),#70ad47);color:#fff;border-radius:14px;padding:14px 8px;text-align:center;height:100%;min-height:110px}.today-date b{font-size:38px;line-height:1;font-weight:800}.today-date span{font-size:12px;margin-top:6px;opacity:.9;line-height:1.3}
.today-col h3{font-size:12.5px;color:var(--muted);margin:0 0 6px;display:flex;gap:6px;align-items:center}.today-col h3+h3,.today-col ul+h3{margin-top:10px}ul.mini{list-style:none;margin:0;padding:0}ul.mini li{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:3px 0;min-width:0}ul.mini .tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ul.mini li small{color:var(--muted);margin-left:auto;padding-left:8px;flex:0 0 auto}ul.mini .dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;background:var(--brand-2)}ul.mini .dot.err{background:var(--err)}ul.mini .dot.warn{background:var(--warn)}
.today-col.notes textarea{width:100%;min-height:96px;border:1px solid var(--in-b);background:var(--in);border-radius:10px;padding:8px 10px;font:inherit;font-size:12.5px;resize:vertical;color:var(--ink)}
.phase{margin-top:6px}.phase-bar{height:6px;border-radius:3px;background:var(--line-2);overflow:hidden}.phase-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand-2),#70ad47);width:0;transition:width 1s}.phase-steps{display:flex;justify-content:space-between;margin-top:6px}.ps{display:flex;flex-direction:column;align-items:center;font-size:10.5px;color:var(--muted);flex:1;text-align:center}.ps b{width:12px;height:12px;border-radius:50%;background:var(--line);border:2px solid var(--card);box-shadow:0 0 0 1px var(--line);margin-bottom:3px}.ps.done b{background:#70ad47;box-shadow:0 0 0 1px #70ad47}.ps.now b{background:var(--brand-2);box-shadow:0 0 0 3px rgba(46,117,182,.25);animation:pulse 1.6s infinite}.ps.now span{color:var(--ink);font-weight:700}.ps small{font-size:10px}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.kb{background:var(--line-2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.kb span{font-size:11.5px;color:var(--muted);font-weight:600}.kb b{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.kb small{font-size:11px;color:var(--muted)}
@media (max-width:900px){.today-grid{grid-template-columns:1fr}.today-date{flex-direction:row;gap:12px;min-height:0;padding:10px}.today-date b{font-size:28px}.lang-sw:not(.sb) button{padding:5px 8px}.lang-sw:not(.sb) button .fl{font-size:15px}.lang-sw:not(.sb) button{font-size:0}.lang-sw:not(.sb) button .fl{font-size:15px}.to-top{bottom:140px;right:16px}.phase-steps .ps small{display:none}}
@media (max-width:560px){.lang-sw.sb{display:flex}.kb-grid{grid-template-columns:1fr 1fr}}
@media print{.lang-sw,.to-top{display:none!important}}

#view.quiet *{animation:none!important}#view.quiet .ring-fg,#view.quiet .hbar-t i,#view.quiet .kbar-t i,#view.quiet .minibars i,#view.quiet .prog i{transition:none!important}
input.numf{text-align:right;font-variant-numeric:tabular-nums}.form input.numf,label.fld input.numf{text-align:left}

/* v6.6 mobil */
@media (max-width:900px){
  .bottom-nav{flex-direction:row!important;gap:0}.bottom-nav a{flex:1 1 0;min-width:0;padding:4px 0;gap:2px}.bottom-nav a span{font-size:10px;white-space:nowrap}.bottom-nav .ic{width:auto;height:auto;background:transparent}.bottom-nav a.active .ic{background:transparent}.bottom-nav a.active .ic svg{stroke:var(--brand-2)}
  .topbar{flex-wrap:wrap;padding:6px 10px;row-gap:6px}.topbar .title{flex:1 1 auto;font-size:16px}.topbar-actions{flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;justify-content:flex-start;gap:6px;padding-bottom:2px;-webkit-overflow-scrolling:touch}.topbar-actions>*{flex:0 0 auto}.topbar-actions::-webkit-scrollbar{display:none}
  .topbar .save-status{display:none}#saveBtn{display:inline-flex}
  input,select,textarea{font-size:16px!important}table.grid td.c-in input,table.grid td.c-in select{font-size:16px!important;padding:6px 8px}table.grid th{font-size:12px}
  .modal-wrap{align-items:end;padding:0}.modal{width:100%;max-width:100%;max-height:92vh;border-radius:18px 18px 0 0;transform:translateY(30px)}.modal-wrap.show .modal{transform:none}.modal-foot{flex-wrap:wrap;position:sticky;bottom:0;background:var(--card)}.modal-foot .btn{flex:1 1 auto;justify-content:center}.modal.pal{max-height:80vh}
  .cal-cell{min-height:54px;padding:4px;border-radius:8px}.cal-d{font-size:11px}.cal-d small{display:none}.cal-ev{height:6px;padding:0;border-radius:3px;font-size:0;margin-top:3px}.cal-more{font-size:9px}.cal-head div{padding:0 2px;font-size:10px}
  .card{padding:12px;border-radius:12px}.card-head{margin-bottom:8px}.card-head h2{font-size:14px}
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chip{flex:0 0 auto}
  .bulk{position:sticky;top:0;z-index:6}
  .menu-list{min-width:180px}
  .today-col h3{font-size:12px}
  .hero{padding:16px}.hero h1{font-size:19px}.hero-r{gap:10px}.hero .ring svg{width:84px;height:84px}
  .stat-v{font-size:22px}
  .ring-row{grid-template-columns:repeat(3,1fr);gap:8px}.ring-row .ring{padding:8px 4px}.ring-row .ring svg{width:64px;height:64px}.ring-row .ring-t{top:8px;height:64px!important;font-size:12px}.ring-l{font-size:11px}
  .kb-grid{grid-template-columns:1fr 1fr}.kb b{font-size:16px}
  .hbar-grid{grid-template-columns:1fr}
  .table-wrap{border-radius:8px;margin:0 -12px;border-left:0;border-right:0}table.grid td.sel,table.grid th.sel{left:0}
  .toolbar{gap:6px}.toolbar .btn.small{padding:6px 8px}
  .to-top{bottom:140px}
}
@media (max-width:560px){.ring-row{grid-template-columns:repeat(3,1fr)}.stat-grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}}

/* v6.7: yatay taşma güvenliği ve iOS */
html,body{max-width:100%}.main{overflow-x:hidden}.main,.content{min-width:0;max-width:100%}.card,.stat,.kpi,.hero{min-width:0}.card>*{min-width:0}
ul.todo li b,ul.mini .tx,.kbar-l span,.hchip{overflow-wrap:anywhere}
@media (max-width:900px){.today-grid{grid-template-columns:1fr!important}.hero-l,.hero-r,.today-col{min-width:0}.phase-steps .ps span{font-size:10px}.stat-grid>.stat{min-width:0;overflow:hidden}.ring-row .ring-l small{display:none}}

/* v7 mobil kartlar */
.mlist{display:flex;flex-direction:column;gap:8px}.mcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow)}.mcard.veri{border-left:3px solid var(--warn)}.mcard.selected{outline:2px solid rgba(46,117,182,.35)}.mcard.neg{border-left:3px solid var(--err)}
.mc-head{display:flex;align-items:center;gap:8px}.mc-head input{width:18px;height:18px;accent-color:var(--brand)}.mc-t{flex:1;min-width:0}.mc-t b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-t small{color:var(--muted);font-size:11.5px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px 10px;margin:8px 0 6px}.mc-grid div{min-width:0}.mc-grid small{display:block;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-grid b{font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.mc-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line-2);padding-top:6px}.mc-btns{display:flex;gap:4px;align-items:center}
.mc-total{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;background:var(--head);border-radius:10px;padding:10px 12px;margin-top:10px;position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));z-index:3}.mc-total small{display:block;font-size:10.5px;color:var(--muted)}
.sheet-list{display:flex;flex-direction:column;gap:8px}.sheet-list .btn{margin:0}
/* yatay görünüm (telefon) */
@media (max-width:900px) and (orientation:landscape) and (max-height:500px){
  .topbar{flex-wrap:nowrap;padding:4px 10px}.topbar-actions{flex:1 1 auto;width:auto;justify-content:flex-end}.topbar .title{flex:0 1 auto;margin-right:8px}
  .bottom-nav{padding:2px 4px calc(2px + env(safe-area-inset-bottom))}.bottom-nav a span{display:none}.bottom-nav .ic svg{width:20px;height:20px}
  .content{padding:10px 12px 56px}.hero{flex-direction:row;align-items:center}.hero-r{flex:0 0 auto}.stat-grid{grid-template-columns:repeat(4,1fr)}.ring-row{grid-template-columns:repeat(6,1fr)}.two{grid-template-columns:1fr 1fr}.today-grid{grid-template-columns:110px 1fr 1fr!important}.kb-grid{grid-template-columns:repeat(3,1fr)}
  .fab{bottom:52px;width:44px;height:44px;font-size:22px}.to-top{bottom:100px}.modal{max-height:96vh}
}

/* v8 */
.proj{margin:0 2px 8px}.proj-btn{width:100%;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#dbe7f3;border-radius:12px;padding:8px 10px;cursor:pointer;font:inherit;text-align:left;transition:background .15s}.proj-btn:hover{background:rgba(255,255,255,.12)}.pj-ic{font-size:16px}.pj-t{flex:1;min-width:0}.pj-t b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.pj-t small{font-size:10.5px;opacity:.7}.pj-ar{opacity:.6;font-size:11px}
html.sb-min .proj{display:none}
.card.insight{border-left:4px solid #ffc000}ul.ins{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px 16px}ul.ins li{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.45;padding:4px 0}ul.ins .wdot{margin-top:5px;flex:0 0 8px}ul.ins .wdot.ok{background:var(--ok)}
.funnel{display:flex;flex-direction:column;gap:8px}.fn-row{display:grid;grid-template-columns:150px 1fr 90px 50px;gap:10px;align-items:center;font-size:12.5px}.fn-bar{height:16px;border-radius:8px;background:var(--line-2);overflow:hidden}.fn-bar i{display:block;height:100%;border-radius:8px;width:0;transition:width .9s cubic-bezier(.2,.7,.2,1)}.fn-row b{text-align:right;font-variant-numeric:tabular-nums}.fn-row small{color:var(--muted)}
.drag-ghost{opacity:.4}.drag-chosen{box-shadow:0 12px 30px rgba(16,24,40,.2)!important;transform:scale(1.01)}.tabpane[data-pane=ozet] .card-head{cursor:grab}
@media (max-width:900px){.segs{position:sticky;top:calc(var(--tb-h,86px));z-index:5;background:var(--bg);padding:6px 4px;margin:0 -12px 10px;border-radius:0}.fn-row{grid-template-columns:100px 1fr 70px 40px;font-size:11.5px}ul.ins{grid-template-columns:1fr}}

/* v8.1: güvenli alan (çentik), üst çubuk sağ grup, yatay menü */
.top-right{display:flex;align-items:center;gap:4px;flex:0 0 auto}
#nav a{flex:0 0 auto}
.topbar{padding-left:calc(18px + env(safe-area-inset-left));padding-right:calc(18px + env(safe-area-inset-right))}
.sidebar{padding-left:calc(12px + env(safe-area-inset-left));padding-top:calc(14px + env(safe-area-inset-top))}
@media (max-width:900px){
  .topbar{padding:calc(6px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) 6px calc(10px + env(safe-area-inset-left))}
  .topbar .title{order:2}.top-right{order:3;margin-left:auto}.topbar-actions{order:4}
  .content{padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}
  .bottom-nav{padding-left:calc(4px + env(safe-area-inset-left));padding-right:calc(4px + env(safe-area-inset-right))}
  .fab{right:calc(16px + env(safe-area-inset-right))}.to-top{right:calc(16px + env(safe-area-inset-right))}
  .sidebar{overflow-y:auto;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.sidebar .brand{padding-right:44px}.sb-close{right:calc(12px + env(safe-area-inset-right))}
  .segs{top:calc(env(safe-area-inset-top) + 0px)}
}
@media (max-width:900px) and (orientation:landscape) and (max-height:500px){
  .topbar{flex-wrap:nowrap;gap:8px}.topbar .title{order:1;flex:0 1 auto}.topbar-actions{order:2;flex:1 1 auto;justify-content:flex-end}.top-right{order:3;margin-left:0}
  .sidebar{padding-top:calc(8px + env(safe-area-inset-top))}.sidebar .brand{padding-bottom:6px}.sb-search{display:none}#nav a{padding:5px 8px;font-size:13px}#nav a .ic{width:24px;height:24px;flex-basis:24px}#nav a .ic svg{width:14px;height:14px}.nav-sec{padding:6px 10px 2px}.sidebar-foot .user{padding:6px 8px}.lang-sw.sb{margin-bottom:4px}.proj{margin-bottom:4px}
}
@media (min-width:901px) and (max-width:1400px){.today-grid{grid-template-columns:110px 1.3fr 1fr}.today-col.notes{grid-column:1/-1}.today-col.notes textarea{min-height:64px}}

/* v9 */
@keyframes slideIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}#view.slide-in{animation:slideIn .28s cubic-bezier(.2,.7,.2,1)}
.card.collapsible>.card-head>h2{cursor:pointer;display:flex;align-items:center;gap:6px}.card.collapsible>.card-head>h2::after{content:"⌄";font-size:16px;color:var(--muted);transition:transform .2s;margin-left:auto}.card.collapsed>.card-head>h2::after{transform:rotate(-90deg)}.card.collapsed>*:not(.card-head){display:none}.card.collapsed>.card-head{margin-bottom:0}
body.offline .save-status .dot{background:var(--err)}body.offline .topbar{border-bottom:2px solid var(--err)}
.table-wrap{background:linear-gradient(90deg,var(--card) 30%,transparent),linear-gradient(90deg,transparent,var(--card) 70%) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.14),transparent),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.14),transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}
html.standalone .topbar{padding-top:calc(6px + env(safe-area-inset-top))}
#installBtn{font-size:16px}

/* v10 */
.qi{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;background:var(--line);color:var(--muted);font-size:9px;font-style:normal;font-weight:700;cursor:help;margin-left:2px;vertical-align:middle}
.tg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 20px}.tg-l{display:flex;gap:8px;align-items:baseline;font-size:12.5px;margin-bottom:4px}.tg-l span{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tg-l b{font-variant-numeric:tabular-nums;font-size:12px}.tg-l small{color:var(--muted)}.tg-l small.up{color:var(--ok);font-weight:700}.tg-t{position:relative;height:10px;border-radius:5px;background:var(--line-2);overflow:hidden}.tg-t i{position:absolute;left:0;top:0;height:100%;border-radius:5px;transition:width .9s cubic-bezier(.2,.7,.2,1)}.tg-t i.p{background:#a9d18e}.tg-t i.s{background:#2f7d5b}
.ptr{position:fixed;top:0;left:0;right:0;z-index:70;text-align:center;font-size:12px;padding:8px;background:var(--brand);color:#fff;transform:translateY(-100%);transition:transform .2s}.ptr.show{transform:none}
.empty-state p{margin:4px 0 0;font-size:13px}
@media (max-width:900px){.tg-grid{grid-template-columns:1fr}}
@media (max-width:900px){.toolbar input[type=search]{flex:1 1 100%;order:-1}.toolbar .chips{flex:1 1 100%}.toolbar .sp{display:none}.toolbar>.muted{margin-left:auto}}

/* v11 */
.stat.clickable{cursor:pointer}.stat.clickable::before{content:"›";position:absolute;right:12px;bottom:8px;color:var(--muted);font-size:16px;opacity:.5}.stat.clickable:hover::before{opacity:1}
.tour-dots{display:flex;gap:6px;justify-content:center;margin-top:14px}.tour-dots i{width:8px;height:8px;border-radius:50%;background:var(--line)}.tour-dots i.on{background:var(--brand-2);width:20px;border-radius:4px}
:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px}
[data-density=compact] .stat-s,[data-density=compact] .kpi-s,[data-density=compact] .ring-l small{display:none}[data-density=compact] .stat{min-height:0}
@media (max-width:900px){
  .stat-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding:2px 2px 6px;scrollbar-width:none;margin:0 -12px 12px;padding-left:12px;padding-right:12px}.stat-grid::-webkit-scrollbar{display:none}.stat-grid .stat{flex:0 0 82%;scroll-snap-align:start;min-height:120px}.minibars{display:flex}
  .ring-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;scrollbar-width:none;margin:0 -12px 12px;padding:2px 12px 6px}.ring-row::-webkit-scrollbar{display:none}.ring-row .ring{flex:0 0 30%;scroll-snap-align:start;min-width:112px}
  .kb-grid{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:8px;scrollbar-width:none}.kb-grid .kb{flex:0 0 46%;scroll-snap-align:start}
  .stat.clickable::before{display:none}
}
@media (max-width:900px) and (orientation:landscape) and (max-height:500px){.stat-grid .stat{flex:0 0 40%}.ring-row .ring{flex:0 0 16%}}
