:root{--bg:#f4f6f8;--panel:#fff;--line:#dde3ea;--ink:#1d2733;--muted:#6b7785;--accent:#0f766e;--accent-soft:#e6f4f2;--warn:#b45309;--bad:#b91c1c;--work:#d97706;--act:#15803d;--sup:#94a3b8;color:var(--ink);font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit;border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:6px;padding:4px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:var(--bad)}button.mini{margin-left:2px;padding:1px 6px;font-size:12px}input,select,textarea{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;max-width:100%;padding:4px 6px}textarea{width:100%;min-height:56px}.muted{color:var(--muted)}.app{flex-direction:column;height:100vh;display:flex}header{color:#fff;background:#12343b;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.brand{letter-spacing:.3px;font-size:17px;font-weight:700}.brand span{opacity:.7;margin-left:6px;font-size:13px;font-weight:400}header nav button{color:#d7e6e8;background:0 0;border-color:#0000;margin-left:4px}header nav button.on{color:#fff;background:#ffffff26}.body{flex:1;min-height:0;display:flex}aside{border-right:1px solid var(--line);background:var(--panel);width:300px;padding:8px;overflow:auto}main{flex:1;padding:16px;overflow:auto}.empty{color:var(--muted);text-align:center;padding:40px}.search{width:100%;margin-bottom:6px}.tree{font-size:13px}.tree-row{cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;display:flex}.tree-row:hover{background:var(--bg)}.tree-row.sel{background:var(--accent-soft)}.twisty{width:14px;color:var(--muted);text-align:center}.icon{text-align:center;width:18px}.label{text-overflow:ellipsis;flex:1;overflow:hidden}.dot{background:0 0;border-radius:50%;width:8px;height:8px;display:inline-block}.dot.sq{border-radius:2px}.dot.working{background:var(--work)}.dot.active{background:var(--act)}.dot.superseded{background:var(--sup)}.tree-add{gap:4px;margin:4px 0 4px 18px;display:flex}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;font-size:11px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:12px;padding:12px 14px}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.card-head h3{margin:0;font-size:15px}.card-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.form{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin:6px 0;display:flex}.form label{color:var(--muted);flex-direction:column;gap:2px;min-width:140px;font-size:12px;display:flex}.form label.wide{flex-basis:100%}.form-actions{gap:6px;display:flex}.toggle{cursor:pointer;align-items:center;gap:4px;margin-right:10px;font-size:13px;display:inline-flex}.toggles{flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0;display:flex}.toggles b{color:var(--muted);width:70px;margin-right:6px;font-size:12px}.badge{text-transform:uppercase;letter-spacing:.4px;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.working{color:var(--work);background:#fef3c7}.badge.active{color:var(--act);background:#dcfce7}.badge.superseded{color:var(--sup);background:#f1f5f9}.toasts{z-index:10;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:16px;right:16px}.toast{color:#fff;background:var(--act);border-radius:6px;max-width:420px;padding:8px 12px;box-shadow:0 2px 8px #00000026}.toast.error{background:var(--bad)}.revbar{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}.spacer{flex:1}.notes{font-size:12px}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:12px;display:flex}.tabs button{background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:6px 12px}.tabs button.on{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:12px;display:grid}.metrics>div{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.metrics b{font-size:18px;display:block}.split{grid-template-columns:minmax(260px,360px) 1fr;align-items:start;gap:12px;display:grid}.structure{position:sticky;top:0}.node-row{cursor:pointer;border-radius:4px;padding:4px 6px;font-size:13px}.node-row:hover{background:var(--bg)}.node-row.sel{background:var(--accent-soft)}.node-row.ro{color:var(--muted);font-style:italic}.addnode{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ff{border:1px solid var(--line);border-radius:6px;margin:8px 0;padding:8px 10px}.ff-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.fm{border-left:3px solid var(--accent);background:#fafbfc;margin:8px 0 8px 8px;padding:6px 10px}.fm.redundant{border-left-color:var(--sup);opacity:.8}.tag{color:var(--muted);background:#eef2f6;border-radius:4px;margin-left:6px;padding:0 6px;font-size:11px;display:inline-block}.tag.fail{color:var(--bad);background:#fee2e2}.tag.preventive{color:#0369a1;background:#e0f2fe}.tag.predictive{color:#6d28d9;background:#ede9fe}.tag.corrective{color:var(--bad);background:#fee2e2}.tag.replacement{color:var(--warn);background:#fef3c7}.grid{border-collapse:collapse;width:100%;font-size:13px}.grid th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 6px;font-size:12px;font-weight:600}.grid td{vertical-align:top;border-bottom:1px solid #eef1f4;padding:4px 6px}.grid.small td,.grid.small th{padding:3px 5px}.grid tr.removed td{color:var(--muted);text-decoration:line-through}.grid tr.redundant td{color:var(--muted)}.grid tr.total td{border-top:1px solid var(--line);font-weight:600}.issue{color:var(--warn);padding:2px 0;font-size:13px}.activity{border:1px solid var(--line);background:#fff;border-radius:6px;margin:6px 0;padding:8px 10px}.resources{margin-top:6px}.seg{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{border:none;border-radius:0}.seg button.on{background:var(--accent-soft);color:var(--accent)}.btn{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;padding:4px 10px;text-decoration:none;display:inline-block}.calls{background:#fafbfc;border-radius:6px;margin-top:10px;padding:8px}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.tabs button.on,.toolbar button.on,.seg button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.toolbar b{color:var(--muted);margin-left:6px;font-size:12px}.grid{border-collapse:collapse;width:100%;margin:6px 0}.grid th,.grid td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:3px 6px}.grid.num td,.grid.num th{text-align:right}.grid.num td.left,.grid.num th:first-child,.grid.num td:first-child{text-align:left}.grid tr.click{cursor:pointer}.grid tr.click:hover,.grid tr.sel{background:var(--accent-soft)}.nowrap{white-space:nowrap}.bad{color:var(--bad)}.warn{color:var(--warn)}.good{color:var(--act)}.split{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.split>*{min-width:280px}.grow{flex:1}.chart{flex:1;min-width:320px}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.chart-legend.col{flex-direction:column;gap:2px}.chart-legend i{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.donut{align-items:center;gap:10px;display:flex}.records h4,.card h4{margin:10px 0 4px;font-size:13px}.band{color:#fff;border-radius:10px;margin-left:6px;padding:1px 8px;font-size:12px}.matrix{border-collapse:collapse;margin-top:10px;font-size:12px}.matrix td{text-align:center;color:#fff;border:2px solid #fff;width:48px;height:28px;font-weight:600}.matrix th{color:var(--muted);text-align:right;padding:0 6px;font-weight:400}.rca-tree,.rca-tree ul{margin:4px 0;padding-left:16px;list-style:none}.rca-root_cause{color:var(--bad);font-weight:600}.rca-problem{font-weight:700}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px}.kpi.medium{grid-column:span 2}.kpi.large{grid-column:1/-1}.kpi-head{justify-content:space-between;margin-bottom:6px;display:flex}.kpi-number{color:var(--accent);font-size:34px;font-weight:700}.result{border:1px solid var(--line);border-radius:6px;margin:8px 0;padding:8px}.result.validated,.result.applied{border-color:var(--act)}.result.invalid{border-color:var(--bad)}.result button{margin-left:10px}.user{align-items:center;gap:4px;margin-left:12px;font-size:12px;display:inline-flex}.user input,.user select{padding:2px 4px;font-size:12px}.nav-select{color:#d7e6e8;background:0 0;border-color:#ffffff40;margin-left:4px}.nav-select option{color:#000}details summary{cursor:pointer;margin:4px 0}.kpi .chart{min-width:0}.kpi .donut svg{flex-shrink:0}.validations{margin:8px 0}.vrow{border-left:4px solid;border-radius:3px;margin:2px 0;padding:4px 8px;font-size:13px}.vrow.error{background:#fdecec;border-color:#dc2626}.vrow.warning{background:#fff4e5;border-color:#ea8a0c}.vrow b{margin-right:6px}.pill{color:#fff;border-radius:10px;padding:2px 10px;font-size:12px}.bad-bg{background:#dc2626}.warn-bg{background:#ea8a0c}.badge.error{color:#b91c1c;background:#fdecec}.modal-back{z-index:50;background:#0f172a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:8px;width:min(440px,92vw);padding:18px 22px;box-shadow:0 10px 30px #0003}.calendar{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-head{color:var(--muted);text-align:center;font-size:11px}.cal-day{border:1px solid #e5e9ee;border-radius:4px;min-height:64px;padding:3px 5px;font-size:11px}.cal-day.empty{border:none}.cal-num{color:var(--muted)}.cal-amt{font-weight:600}.cal-cnt{color:#334155}.scroll-x{overflow-x:auto}table.sticky-first td:first-child,table.sticky-first th:first-child{z-index:1;background:#fff;position:sticky;left:0}tr.section td{background:#f1f5f9}tr.total td{border-top:2px solid #cbd5e1;font-weight:600}table.eac td{color:#111}table.eac td.best{outline:2px solid #111;font-weight:700}.matrix td.click{cursor:pointer}.matrix td.on{outline-offset:-3px;outline:3px solid #111}.legend-col{flex-direction:column;gap:6px;padding-top:30px;display:flex}.import-preview{background:#f8fafc;border:1px solid #e5e9ee;border-radius:4px;margin:8px 0;padding:8px 10px;font-size:13px}label.button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:5px 10px;font-size:13px;display:inline-block}.carousel{align-items:center;gap:8px;display:flex}.carousel figure{text-align:center;flex:1;margin:0}.carousel-img{border:1px solid #dde3ea;border-radius:6px;max-width:100%;max-height:320px}.carousel figcaption{color:#555;margin-top:4px;font-size:12px}.thumb{object-fit:cover;border-radius:4px;width:64px;height:48px}.img-ph{background:#eef1f5;border-radius:4px;width:64px;height:48px;display:inline-block}.symbols{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.symbol{opacity:.55;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.symbol.on{opacity:1;background:#e8f0fe;border-color:#1f6feb}.symbol img,.symbol .img-ph{width:22px;height:22px}.symbol-grid{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.symbol-card{text-align:center;border:1px solid #dde3ea;border-radius:6px;flex-direction:column;align-items:center;gap:2px;width:110px;padding:6px;font-size:12px;display:flex}.symbol-card img,.symbol-card .img-ph{width:48px;height:48px}.warnbox{background:#fff7e0;border:1px solid #f0c36d;border-radius:6px;margin:6px 0;padding:8px 10px}.cmp-left_only td:first-child{color:#b42318}.cmp-right_only td:first-child{color:#067647}.cmp-different td:first-child{color:#b54708}.wide-select{width:100%;margin:6px 0}.chain{font-size:11px}.select-all{-webkit-user-select:all;user-select:all}.rca-canvas{background:repeating-linear-gradient(0deg,#f7f9fb 0 23px,#eef2f6 23px 24px),#f7f9fb;border:1px solid #dde3ea;border-radius:6px;min-height:260px;max-height:70vh;padding:16px;overflow:auto}.rca-branch{align-items:center;display:flex}.rca-children{border-left:2px solid #c6d1dd;flex-direction:column;gap:10px;margin-left:18px;padding-left:36px;display:flex}.rca-node{cursor:grab;background:#fff;border:1px solid #b9c6d3;border-radius:8px;min-width:160px;max-width:240px;margin:4px 0;padding:8px 26px 8px 10px;position:relative;box-shadow:0 1px 2px #0000000f}.rca-node.problem{cursor:default;background:#fff4f2;border-color:#b42318}.rca-node.dragging{opacity:.4}.rca-tools{flex-direction:column;display:flex;position:absolute;top:2px;right:2px}.rca-plus{color:#fff;background:#1f6feb;border:0;border-radius:12px;width:24px;height:24px;padding:0;font-weight:700;position:absolute;top:50%;right:-14px;transform:translateY(-50%)}.timeline{border-left:2px solid #c6d1dd;margin-left:8px;padding:0;list-style:none}.timeline li{align-items:baseline;gap:12px;padding:6px 10px;display:flex;position:relative}.timeline li:before{content:"";background:#1f6feb;border-radius:5px;width:10px;height:10px;position:absolute;top:12px;left:-7px}.timeline .when{min-width:130px;font-weight:600}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.mini-card{background:#fff;border:1px solid #dde3ea;border-radius:6px;flex-direction:column;gap:4px;padding:10px;display:flex}.mini-card .action{border-top:1px dashed #dde3ea;padding-top:4px}.overdue,.action.overdue{background:#fff4f2}.st-closed{background:#e7f6ec}.st-in_progress{background:#e8f0fe}.st-waiting_response{background:#fff7e0}.st-opened{background:#f0f1f3}.masonry{columns:3 320px;column-gap:12px}.masonry .kpi{break-inside:avoid;width:auto;margin-bottom:12px;display:block}.kpi-counts{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.kpi-counts div{background:#f4f7fa;border-radius:6px;flex-direction:column;align-items:center;padding:8px;display:flex}.kpi-counts b{font-size:22px}.checklist{border:1px solid #dde3ea;border-radius:6px;flex-direction:column;max-height:180px;margin:6px 0;padding:6px;display:flex;overflow:auto}.modal-box{background:#fbfcfd;border:1px solid #b9c6d3;border-radius:8px;margin-top:10px;padding:12px;box-shadow:0 4px 14px #00000014}.pkg-checks{flex-wrap:wrap;gap:4px 10px;display:flex}.tag.fn-primary{color:#fff;background:#1f6feb}.tag.fn-secondary{color:#fff;background:#6e7781}.tag.fn-protective{color:#fff;background:#9a6700}.login{background:#f3f5f8;justify-content:center;align-items:center;min-height:100vh;display:flex}.login form{background:#fff;border-radius:8px;flex-direction:column;gap:12px;width:340px;padding:28px 32px;display:flex;box-shadow:0 2px 12px #00000014}.login h1{margin:0;font-size:22px}.login label{flex-direction:column;gap:4px;font-size:13px;display:flex}.login input{padding:8px;font-size:14px}.login button{padding:9px;font-size:14px}.login-error{color:#b42318;font-size:13px}
