#bfm-app{--ink:#14213d;--muted:#64748b;--line:#e2e8f0;--bg:#f6f8fc;--card:#fff;--brand:#4f46e5;--brand2:#7c3aed;--good:#059669;--bad:#dc2626;--warn:#d97706;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);min-height:100vh;box-sizing:border-box}
#bfm-app *{box-sizing:border-box}#bfm-app button,#bfm-app input,#bfm-app select,#bfm-app textarea{font:inherit}#bfm-app button{cursor:pointer}#bfm-app .shell{max-width:1440px;margin:auto;padding:24px}#bfm-app .top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}#bfm-app .brand{display:flex;gap:12px;align-items:center}#bfm-app .logo{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;color:white;font-weight:900;font-size:18px;box-shadow:0 8px 22px #4f46e533}#bfm-app h1{font-size:21px;margin:0}#bfm-app .sub{color:var(--muted);font-size:12px}#bfm-app .actions{display:flex;gap:8px;flex-wrap:wrap}#bfm-app .btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 13px;border-radius:10px;font-weight:700;transition:.15s}#bfm-app .btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px #0f172a12}#bfm-app .btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}#bfm-app .btn.danger{color:var(--bad)}#bfm-app .btn.small{padding:6px 9px;font-size:12px}#bfm-app .nav{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow:auto}#bfm-app .nav button{border:0;background:transparent;padding:11px 14px;color:var(--muted);font-weight:800;border-bottom:2px solid transparent;white-space:nowrap}#bfm-app .nav button.active{color:var(--brand);border-color:var(--brand)}#bfm-app .grid{display:grid;gap:15px}#bfm-app .kpis{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:18px}#bfm-app .card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 16px #0f172a08}#bfm-app .kpi{padding:17px}#bfm-app .kpi .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}#bfm-app .kpi .value{font-size:22px;font-weight:850;margin:5px 0 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#bfm-app .kpi .hint{font-size:11px;color:var(--muted)}#bfm-app .good{color:var(--good)!important}#bfm-app .bad{color:var(--bad)!important}#bfm-app .warn{color:var(--warn)!important}#bfm-app .split{grid-template-columns:1.25fr .75fr}#bfm-app .panel{padding:18px}#bfm-app .panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}#bfm-app h2{font-size:15px;margin:0}#bfm-app .bars{display:flex;align-items:flex-end;gap:12px;height:190px;padding:15px 8px 0}#bfm-app .barcol{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:35px}#bfm-app .bar{width:min(48px,75%);border-radius:7px 7px 2px 2px;background:linear-gradient(#818cf8,var(--brand));min-height:2px}#bfm-app .barcol span{font-size:10px;color:var(--muted);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bfm-app .progressrow{margin:14px 0}#bfm-app .progressmeta{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}#bfm-app .track{height:8px;background:#eef2f7;border-radius:99px;overflow:hidden}#bfm-app .fill{height:100%;background:linear-gradient(90deg,var(--brand),#8b5cf6);border-radius:99px}#bfm-app .toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:14px}#bfm-app .field{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 10px;color:var(--ink);min-width:140px}#bfm-app .search{min-width:240px;flex:1}#bfm-app .tablewrap{overflow:auto;border:1px solid var(--line);border-radius:12px}#bfm-app table{width:100%;border-collapse:collapse;min-width:760px}#bfm-app th{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:#f8fafc;text-align:left}#bfm-app th,#bfm-app td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}#bfm-app tr:last-child td{border-bottom:0}#bfm-app .money{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}#bfm-app .pill{display:inline-flex;padding:4px 8px;border-radius:99px;font-size:10px;font-weight:800;background:#eef2ff;color:var(--brand)}#bfm-app .pill.expense{background:#fff1f2;color:var(--bad)}#bfm-app .pill.running{background:#fff7ed;color:var(--warn)}#bfm-app .rowactions{display:flex;gap:5px;white-space:nowrap}#bfm-app .empty{text-align:center;color:var(--muted);padding:40px 15px}#bfm-app .projectgrid,#bfm-app .customergrid{grid-template-columns:repeat(3,minmax(0,1fr))}#bfm-app .entity{padding:17px}#bfm-app .entity h3{margin:0 0 3px;font-size:15px}#bfm-app .entity .meta{color:var(--muted);font-size:12px}#bfm-app .entity .stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}#bfm-app .stat{background:#f8fafc;border-radius:10px;padding:9px}#bfm-app .stat b{display:block;font-size:13px}#bfm-app .stat span{color:var(--muted);font-size:10px}#bfm-app .entityfoot{display:flex;justify-content:space-between;align-items:center;gap:8px}#bfm-app dialog{border:0;padding:0;border-radius:18px;width:min(650px,calc(100% - 24px));box-shadow:0 24px 80px #0f172a55;color:var(--ink)}#bfm-app dialog::backdrop{background:#0f172a88;backdrop-filter:blur(3px)}#bfm-app .modal{padding:22px}#bfm-app .modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}#bfm-app .modalhead h2{font-size:18px}#bfm-app .x{border:0;background:#f1f5f9;border-radius:9px;width:32px;height:32px}#bfm-app .formgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}#bfm-app label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800}#bfm-app label.wide{grid-column:1/-1}#bfm-app label input,#bfm-app label select,#bfm-app label textarea{width:100%;border:1px solid var(--line);padding:10px;border-radius:10px;color:var(--ink);background:white}#bfm-app textarea{resize:vertical;min-height:70px}#bfm-app .modalfoot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}#bfm-app .toast{position:fixed;right:20px;bottom:20px;background:#0f172a;color:#fff;padding:11px 15px;border-radius:10px;box-shadow:0 10px 30px #0003;z-index:10;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}#bfm-app .toast.show{opacity:1;transform:none}#bfm-app .detailhero{background:linear-gradient(135deg,#312e81,#6d28d9);color:white;border-radius:14px;padding:18px;margin-bottom:14px}#bfm-app .detailhero p{opacity:.75;margin:4px 0 0}#bfm-app .detailgrid{grid-template-columns:repeat(3,1fr)}
#bfm-app dialog.dashboard-dialog{width:min(1000px,calc(100% - 24px))}
#bfm-app{width:100%;min-height:0}#bfm-app.bfm-full-width{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}#bfm-app .shell{width:100%;max-width:var(--bfm-max-width,1800px);padding:24px}#bfm-app .kpi{padding:17px}#bfm-app .kpi .value{font-size:22px}
#bfm-app .barcol .barvalue{max-width:none;color:var(--ink);font-size:10px;font-weight:850;overflow:visible;text-overflow:clip}#bfm-app .bars{height:220px;padding-top:28px}
#bfm-app .bar.loss{background:linear-gradient(#fb7185,var(--bad))}#bfm-app .barcol .barvalue.loss{color:var(--bad)}#bfm-app .barcol .barvalue.profit{color:var(--good)}
#bfm-app .kpi{min-width:0;container-type:inline-size}#bfm-app .kpi .value{font-size:clamp(11px,1.15vw,20px);font-size:clamp(11px,7cqw,22px);line-height:1.25;white-space:nowrap;overflow:visible;text-overflow:clip;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.buildledger-login{min-height:520px;display:grid;place-items:center;padding:24px;background:#f6f8fc;font:14px/1.45 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.buildledger-login-card{width:min(420px,100%);padding:30px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 18px 50px #0f172a18;color:#14213d}.buildledger-login-logo{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:20px;font-weight:900}.buildledger-login h2{margin:18px 0 5px;font-size:22px}.buildledger-login p{margin:0 0 20px;color:#64748b}.buildledger-login label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#64748b}.buildledger-login input{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:10px;font:inherit}.buildledger-login button{width:100%;margin-top:14px;padding:11px;border:0;border-radius:10px;background:#4f46e5;color:#fff;font:inherit;font-weight:800;cursor:pointer}.buildledger-login button:disabled{opacity:.65}.buildledger-login-message{min-height:20px;margin-top:10px;color:#dc2626;font-size:12px}
#bfm-app .materials-editor{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc}#bfm-app .materials-head,#bfm-app .material-row{display:grid;grid-template-columns:minmax(140px,1fr) 120px 100px 120px 42px;gap:8px;align-items:center}#bfm-app .materials-head{padding:0 2px 6px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}#bfm-app .material-row{margin-bottom:8px}#bfm-app .material-row input{width:100%;border:1px solid var(--line);padding:9px;border-radius:9px;background:#fff}#bfm-app .line-subtotal{text-align:right;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}#bfm-app .minor-summary{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:12px}#bfm-app .minor-summary b{font-size:14px}#bfm-app .minor-table td:nth-child(n+3):nth-child(-n+7),#bfm-app .minor-table th:nth-child(n+3):nth-child(-n+7){text-align:right;font-variant-numeric:tabular-nums}
#bfm-app .customer-project-group{margin:0 0 26px}#bfm-app .customer-group-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;padding:11px 14px;border-left:4px solid var(--brand);border-radius:0 10px 10px 0;background:#eef2ff}#bfm-app .customer-group-head h3{margin:0;font-size:15px}#bfm-app .customer-group-head span{color:var(--muted);font-size:11px}#bfm-app .customer-table-group td{padding:10px 12px!important;background:#eef2ff!important;border-left:4px solid var(--brand);text-align:left!important}#bfm-app .customer-table-group span{margin-left:10px;color:var(--muted);font-size:11px;font-weight:400}
#bfm-app .invoice-items{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc}#bfm-app .invoice-items-head,#bfm-app .invoice-item-row{display:grid;grid-template-columns:minmax(160px,1fr) 90px 120px 120px 38px;gap:8px;align-items:center}#bfm-app .invoice-items-head{padding:0 2px 6px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}#bfm-app .invoice-item-row{margin-bottom:8px}#bfm-app .invoice-item-row input{width:100%;border:1px solid var(--line);padding:9px;border-radius:9px;background:#fff}#bfm-app .invoice-item-row b{text-align:right;font-size:12px;white-space:nowrap}#bfm-app .invoice-total{text-align:right;margin-top:12px;font-size:14px}#bfm-app .invoice-total b{font-size:18px;color:var(--good)}
#bfm-app .receipt-payments{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc}#bfm-app .receipt-payments-head,#bfm-app .receipt-payment-row{display:grid;grid-template-columns:150px 150px minmax(160px,1fr) 38px;gap:8px;align-items:center}#bfm-app .receipt-payments-head{padding:0 2px 6px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}#bfm-app .receipt-payment-row{margin-bottom:8px}#bfm-app .receipt-payment-row input{width:100%;border:1px solid var(--line);padding:9px;border-radius:9px;background:#fff}#bfm-app .receipt-summary{display:flex;justify-content:flex-end;gap:22px;flex-wrap:wrap;margin-top:12px}#bfm-app .receipt-summary b{font-size:16px}
#bfm-app .rowactions{flex-wrap:wrap}
#bfm-app .projectgrid [data-project-costing],#bfm-app .projectgrid [data-share-project-costing]{display:none}
@media(max-width:1100px){#bfm-app .kpis{grid-template-columns:repeat(3,1fr)}#bfm-app .projectgrid,#bfm-app .customergrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){#bfm-app .shell{padding:14px}#bfm-app .top{align-items:flex-start;flex-direction:column}#bfm-app .kpis{grid-template-columns:repeat(2,1fr)}#bfm-app .split{grid-template-columns:1fr}#bfm-app .projectgrid,#bfm-app .customergrid{grid-template-columns:1fr}#bfm-app .formgrid{grid-template-columns:1fr}#bfm-app label.wide{grid-column:auto}#bfm-app .detailgrid{grid-template-columns:repeat(2,1fr)}#bfm-app .actions .btn{font-size:12px;padding:8px}#bfm-app .materials-editor{grid-column:auto}#bfm-app .materials-head{display:none}#bfm-app .material-row{grid-template-columns:1fr 1fr 38px}#bfm-app .material-row input:first-child{grid-column:1/-1}#bfm-app .line-subtotal{grid-column:1/3;text-align:right}#bfm-app .material-row .danger{grid-column:3;grid-row:2}#bfm-app .invoice-items{grid-column:auto}#bfm-app .invoice-items-head{display:none}#bfm-app .invoice-item-row{grid-template-columns:1fr 1fr 38px}#bfm-app .invoice-item-row input:first-child{grid-column:1/-1}#bfm-app .invoice-item-row b{grid-column:1/3}#bfm-app .invoice-item-row .danger{grid-column:3;grid-row:2}}
@media(max-width:720px){#bfm-app .receipt-payments{grid-column:auto}#bfm-app .receipt-payments-head{display:none}#bfm-app .receipt-payment-row{grid-template-columns:1fr 1fr 38px}#bfm-app .receipt-payment-row input:nth-child(3){grid-column:1/3}#bfm-app .receipt-payment-row .danger{grid-column:3;grid-row:1}}
#bl-app .cost-item-details{display:grid;gap:6px;min-width:0}
.cost-item-details{display:grid;gap:6px;min-width:0}
.cost-item-details select,.cost-item-details input{width:100%;min-width:0;max-width:100%}
#bfm-app dialog.costing-dialog{width:min(1180px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:90vh;overflow:auto}
#bfm-app .costing-dialog .materials-head,#bfm-app .costing-dialog .material-row{grid-template-columns:minmax(160px,2fr) minmax(70px,.7fr) minmax(70px,.7fr) minmax(90px,1fr) minmax(100px,1fr) 38px;align-items:center}
#bfm-app .costing-dialog .material-row>*{min-width:0}
#bfm-app .costing-dialog [data-cost-line-total]{text-align:right;overflow-wrap:anywhere}
#bfm-app .costing-dialog .panelhead{flex-wrap:wrap}
#bfm-app .costing-dialog .panelhead h3{flex:1;min-width:180px}
@media(max-width:720px){#bfm-app .costing-dialog .material-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;border:1px solid var(--line);border-radius:10px;gap:10px}#bfm-app .costing-dialog .cost-item-details{grid-column:1/-1}#bfm-app .costing-dialog .material-row .danger{grid-column:auto;grid-row:auto}#bfm-app .costing-dialog .materials-head{display:none}#bfm-app .costing-dialog .material-row input{grid-column:auto}#bfm-app .costing-dialog .modal{padding:14px}}
#bfm-app .costing-dialog .materials-head{padding-left:0;padding-right:0}
#bfm-app .costing-dialog .materials-head>span:nth-child(5){text-align:right}
#bfm-app .costing-dialog .material-row>[data-cost-line-total]{display:block;width:100%;text-align:right;font-variant-numeric:tabular-nums}
#bfm-app [data-deliverable-task]{padding:10px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
#bfm-app [data-deliverable-task] input[data-task-text]{border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:#fff;color:var(--ink);font:inherit;line-height:1.45;min-height:44px;box-shadow:0 1px 2px #0f172a05;transition:border-color .15s,box-shadow .15s}
#bfm-app [data-deliverable-task] input[data-task-text]::placeholder{color:#94a3b8}
#bfm-app [data-deliverable-task] input[data-task-text]:focus{outline:2px solid #6366f1;outline-offset:2px;border-color:var(--brand);box-shadow:0 0 0 4px #6366f115}
#bfm-app [data-deliverable-task] input[data-task-done]{width:20px;height:20px;flex:0 0 20px;accent-color:var(--brand);cursor:pointer}
#bfm-app [data-deliverable-task] .btn{min-width:36px;min-height:36px;border-radius:9px}
@media(max-width:480px){#bfm-app [data-deliverable-task]{padding:8px}#bfm-app [data-deliverable-task] input[data-task-text]{font-size:16px;padding:10px;}}
