:root{
  --ink:#17377a;--paper:#f3f8ff;--rule:#cfe0ff;
  --white:#ffffff;--primary:#242e8a;--primary-soft:#eaf1ff;
  --gain:#1d6b4f;--loss:#a8322a;--stock:#b07d14;--accent:#2d6cdf;
}
body{background:linear-gradient(180deg,#f7fbff 0%,#edf5ff 100%);color:var(--ink);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:15px;}
.num{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;}
header.masthead{background:linear-gradient(90deg,#222b88 0%,#2a36a5 100%);color:#f5f6f4;padding:18px 0;border-bottom:4px solid rgba(255,255,255,0.18);}
header.masthead .brand-wrap{display:flex;align-items:center;gap:12px;}
header.masthead .brand-logo{width:50px;height:50px;object-fit:contain;border-radius:0;box-shadow:none;background:transparent;padding:0;border:0;}
header.masthead h1{font-family:"Quicksand",sans-serif;font-size:1.3rem;font-weight:700;margin:0;letter-spacing:-.02em;}
header.masthead .ar{font-size:1.15rem;opacity:.65;font-weight:500;}
.sheet{background:#fff;border:1px solid var(--rule);border-radius:10px;box-shadow:0 4px 14px rgba(34,43,136,0.06);}
.sheet-head{border-bottom:1px solid var(--rule);padding:16px 18px;background:rgba(255,255,255,0.4);}
.form-label-sm{font-size:.78rem;color:#3d5da8;margin-bottom:2px;}
table.ledger{margin:0;background:rgba(255,255,255,0.75);border:1px solid var(--rule);border-radius:8px;overflow:hidden;}
table.ledger thead th{background:linear-gradient(180deg,#edf4ff 0%,#e0ebff 100%);border-bottom:1px solid var(--rule);font-size:.74rem;font-weight:600;color:#234f8b;padding:8px 10px;white-space:nowrap;}
table.ledger td{padding:7px 10px;vertical-align:middle;border-color:#e3edff;}
table.ledger tbody tr.instock{background:#f7fbff;}
table.ledger tbody tr.negative td.marge{color:var(--loss);font-weight:600;}
table.ledger tbody tr.positive td.marge{color:var(--gain);font-weight:600;}
table.ledger tfoot td{border-top:2px solid var(--primary);font-weight:600;padding:10px;background:#f6faff;}
.tag{font-size:.68rem;border-radius:2px;padding:1px 6px;font-weight:600;}
.tag-stock{background:#edf4ff;color:#244c9d;}
.cell-edit{border:0;background:transparent;width:100%;font:inherit;padding:2px 4px;border-radius:3px;}
.cell-edit:focus{background:#edf4ff;outline:2px solid var(--accent);}
.cell-edit.num{font-family:"IBM Plex Mono",monospace;text-align:right;}
.rtl{direction:rtl;text-align:right;}
.summary{position:sticky;top:16px;background:rgba(255,255,255,0.82);border:1px solid var(--rule);border-radius:12px;padding:12px 14px;box-shadow:0 10px 24px rgba(36,46,138,0.08);}
.summary .line{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px dotted var(--rule);}
.summary .line:last-child{border-bottom:0;}
.summary .line span:first-child{font-size:.85rem;color:#4e6da5;}
.summary .line .num{font-size:1rem;}
.net{margin-top:10px;padding:14px 16px;border-radius:8px;background:linear-gradient(180deg,#242e8a 0%,#1d2f8e 100%);color:#fff;box-shadow:0 10px 20px rgba(36,46,138,0.22);}
.net .num{font-size:1.6rem;font-weight:600;letter-spacing:-.02em;}
.net.is-loss{background:linear-gradient(180deg,#b73b33 0%,#a8322a 100%);}
.btn-ink{background:var(--primary);color:#fff;}
.btn-ink:hover{background:#1d2c7d;color:#fff;}
.saved-item{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border:1px solid var(--rule);border-radius:8px;margin-bottom:6px;background:#fff;}
.empty{text-align:center;padding:38px 20px;color:#4d6aa5;}
.toast-zone{position:fixed;bottom:18px;right:18px;z-index:1080;}
.conn-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px;background:#c0392b;}
.conn-dot.on{background:#2ecc71;}
.conn-label{font-size:.78rem;color:#5b75b7;}
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#ffffff;}
.auth-shell{width:100%;display:flex;justify-content:center;padding:24px;}
.auth-card{width:min(100%,440px);background:linear-gradient(#222b88 100%);border:1px solid rgba(255,255,255,0.2);border-radius:18px;box-shadow:0 18px 42px rgba(10,16,60,0.22);padding:28px 24px;}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px;flex-wrap:wrap;text-align:center;}
.auth-brand h1{font-family:"Quicksand",sans-serif;font-size:1.6rem;font-weight:700;color:#ffffff;margin:0;}
.auth-logo{width:52px;height:52px;background:transparent;border:0;box-shadow:none;}
.auth-card h2{font-size:1.5rem;font-weight:700;color:#ffffff;margin:0 0 18px;text-align:center;}
.auth-form{margin-top:8px;}
.auth-form .form-label{font-size:.82rem;font-weight:600;color:#e3ebff;}
.auth-form .form-control{background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.35);border-radius:10px;padding:10px 12px;box-shadow:none;color:#ffffff;}
.auth-form .form-control::placeholder{color:rgba(255,255,255,0.7);}
.auth-form .form-control:focus{border-color:#ffffff;background:rgba(255,255,255,0.18);box-shadow:0 0 0 .15rem rgba(255,255,255,.18);}
.auth-submit{background:#ffffff;color:#222b88;border:0;padding:11px 16px;font-weight:700;border-radius:10px;}
.auth-submit:hover,.auth-submit:focus{background:#edf3ff;color:#1a237e;}
.auth-demo{margin-top:16px;text-align:center;color:#5678bf;font-size:.8rem;margin-bottom:0;}
.auth-error{min-height:24px;margin-top:12px;color:#b3322d;font-size:.9rem;text-align:center;}
@media print{.no-print{display:none !important;}body{background:#fff;}.sheet{border:0;}}
