:root{--ink:#102f43;--muted:#6c8290;--blue:#1677a6;--blue2:#0e638d;--green:#278e69;--red:#d94d4d;--paper:#eef4f6;--line:#d8e4e9;--card:#fff}
body{background:linear-gradient(135deg,#edf4f7 0%,#f7fafb 48%,#eef5f6 100%);font-family:Inter,"Segoe UI",Arial,sans-serif}
body>header{height:76px;padding:13px 28px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:0 1px 0 #dce7ec,0 8px 25px rgba(20,57,78,.04);position:sticky;top:0;z-index:10}
body>header h1{font-size:22px;letter-spacing:-.025em}.eyebrow{color:#668395}.header-actions{align-items:center}.search{height:40px;border-color:#d5e2e8;background:#f3f7f9;border-radius:11px}.search:focus-within{border-color:#63a8c8;box-shadow:0 0 0 3px rgba(31,126,169,.10)}
button{border-radius:9px;background:linear-gradient(180deg,#2183af,#176d98);box-shadow:0 2px 5px rgba(16,79,109,.12);transition:transform .14s,box-shadow .14s,background .14s}button:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(16,79,109,.16)}button:active{transform:none}.secondary{background:#edf3f6;box-shadow:none;color:#34576b}
.summary{margin-top:17px;border-radius:14px;border-color:#d9e5ea;box-shadow:0 8px 23px rgba(20,57,78,.05)}.summary>div{padding:11px 18px}.summary strong{font-size:21px;letter-spacing:-.03em}.summary span{margin-top:2px}.summary .danger{background:#fffafa}
.workspace{gap:16px}.topology-card,.panel{border-radius:16px;border-color:#d7e4e9;box-shadow:0 10px 28px rgba(20,57,78,.06)}.section-head{height:66px;padding:14px 18px}.section-head h2{font-size:17px;letter-spacing:-.01em}.hint{background:#eef5f8;border-radius:20px;padding:6px 10px}
.panel-head{padding:18px 19px;background:linear-gradient(180deg,#fff,#fbfdfe)}.panel-head h3{font-size:18px;letter-spacing:-.015em}.chips{gap:7px}.chip{padding:5px 9px;font-weight:700}.cable-tabs{padding:10px 13px;gap:7px;background:#f8fbfc}.cable-tabs button{border:1px solid #d6e3e8;box-shadow:none}.core-table th{background:#f5f9fa;padding:10px 8px}.core-table td{padding:8px}.core-table tbody tr{transition:background .12s}.core-table tbody tr:hover{background:#f1f7f9}.edit{border:1px solid #d7e3e8}
.splice-view{background:linear-gradient(135deg,#edf4f6,#f8fafb)}.splice-header{height:76px!important;box-shadow:0 5px 20px rgba(20,57,78,.07)}.splice-title-group h2{font-size:18px;letter-spacing:-.015em}.splice-summary{margin-top:15px}.splice-board{margin-top:12px;border-radius:16px;border-color:#d6e3e8;box-shadow:0 12px 30px rgba(20,57,78,.07);padding:18px;gap:16px}.column-label{height:46px;box-shadow:0 3px 9px rgba(20,57,78,.04)}.splice-cable{border-color:#cadbe3;border-radius:11px;box-shadow:0 6px 18px rgba(20,57,78,.06)}.splice-cable-head{background:linear-gradient(180deg,#eef4f6,#e5eef2);padding:10px 12px}.splice-row{height:36px}.splice-row:hover{background:#f3f8fa}.splice-center{background:linear-gradient(90deg,transparent 49.7%,#e2ebef 50%,transparent 50.3%)}.splice-instruction{background:#fff9e8;border-color:#efd990;color:#725b18;box-shadow:0 3px 9px rgba(122,91,8,.06)}
dialog{border-radius:17px;box-shadow:0 30px 80px rgba(15,45,63,.32)}dialog form{padding:22px}.modal-head{padding-bottom:12px;border-bottom:1px solid #e5ecef}.modal-head h3{font-size:18px}form input,form select,form textarea{border-radius:9px;background:#fbfdfe}form input:focus,form select:focus,form textarea:focus{outline:0;border-color:#5aa1c2;box-shadow:0 0 0 3px rgba(41,128,171,.10)}
#toast{border:1px solid rgba(255,255,255,.15);box-shadow:0 12px 30px rgba(16,47,67,.25)}
@media(max-width:980px){body>header{position:relative}.workspace{gap:12px}.panel{border-radius:14px}.summary{margin-top:12px}}
.core-data-flow{stroke:#fff!important;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:8 18;opacity:.96;filter:drop-shadow(0 0 2px rgba(6,42,64,.65));animation:coreFlowVisible .7s linear infinite!important}
@keyframes coreFlowVisible{from{stroke-dashoffset:0}to{stroke-dashoffset:-26}}
.core-trace-panel{position:fixed;z-index:1300;right:18px;top:18px;bottom:18px;width:min(390px,calc(100vw - 28px));display:flex;flex-direction:column;background:#fff;border:1px solid #c9dce5;border-radius:18px;box-shadow:0 24px 70px rgba(13,45,63,.3);padding:18px}.core-trace-panel.hidden{display:none}.trace-head{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e1eaee;padding-bottom:12px}.trace-head small{color:#52758a;font-weight:800;letter-spacing:.12em}.trace-head h3{margin:4px 0 0}.trace-summary{display:flex;justify-content:space-between;align-items:center;padding:12px 0;color:#547183}.trace-summary b{color:#173b50}.core-trace-panel ol{list-style:none;margin:0 0 14px;padding:0;overflow:auto;flex:1}.core-trace-panel li{display:flex;gap:10px;padding:10px;border-left:3px solid #bed2dc;background:#f7fafb;margin-bottom:6px;border-radius:0 10px 10px 0}.core-trace-panel li.current{border-color:#1593c1;background:#e9f7fc}.core-trace-panel li>span{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:50%;background:#dce9ee;font-weight:800}.core-trace-panel li div{display:grid;gap:2px;min-width:0}.core-trace-panel li b,.core-trace-panel li small,.core-trace-panel li em{white-space:normal}.core-trace-panel li small{color:#557182}.core-trace-panel li em{font-style:normal;color:#147eaa;font-weight:700}.trace-cable{stroke:#ffd43b!important;stroke-width:8!important;filter:drop-shadow(0 0 5px #ffba08)!important}.trace-location{outline:4px solid #ffd43b!important;box-shadow:0 0 0 8px rgba(255,212,59,.28),0 10px 24px rgba(35,73,92,.18)!important}.splice-row .number{cursor:pointer}.splice-row .number:hover{filter:brightness(1.12);outline:3px solid rgba(17,139,185,.25)}
@media(max-width:760px){.core-trace-panel{right:8px;top:8px;bottom:8px;width:calc(100vw - 16px);padding:14px}.core-trace-panel li{padding:9px}}
.pdf-report-action{padding:0 12px 14px}.pdf-report-action button{width:100%;background:#146f99}.splice-pdf-report{position:static;height:38px;white-space:nowrap}@media(max-width:760px){.splice-tools{display:grid!important;grid-template-columns:repeat(3,auto);gap:6px}.splice-pdf-report{width:auto;padding:0 9px;font-size:10px}.splice-zoom-controls{grid-row:2;grid-column:1/-1;justify-self:end}}
.pdf-report-action{display:grid;grid-template-columns:1fr 1fr;gap:7px}.qr-location-button{background:#edf4f7!important;color:#17465e!important}.qr-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 20px 12px;border-bottom:1px solid #dbe6eb}.qr-dialog-head h3{margin:4px 0 0}.qr-dialog-body{display:grid;justify-items:center;gap:10px;padding:18px 22px}.qr-dialog-body img{width:min(290px,70vw);aspect-ratio:1;image-rendering:pixelated;border:1px solid #d2e0e6;border-radius:12px}.qr-dialog-body code{max-width:360px;padding:8px;background:#eef4f6;border-radius:7px;word-break:break-all;font-size:10px}.qr-dialog-body p{margin:0;color:#587485;text-align:center}.qr-dialog-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.qr-dialog-actions a{display:inline-flex;align-items:center;text-decoration:none;padding:0 14px;border-radius:8px}@media(max-width:760px){#qrLocationDialog{width:calc(100vw - 20px)}.qr-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.qr-dialog-actions>*{justify-content:center}}
body.qr-direct-view #closeSplice,
body.qr-direct-view #previousSpliceLocation,
body.qr-direct-view #nextSpliceLocation,
body.qr-direct-view #spliceQrLocation{display:none!important}
body.qr-direct-view .splice-title-group{grid-template-columns:minmax(0,1fr)!important}
