
    :root{--navy:#071a36;--navy2:#102746;--blue:#146af5;--bright:#007dff;--ice:#eaf3ff;--light:#f6f8fc;--ink:#152744;--muted:#71829b;--line:#e3eaf3;--good:#078f72;--warn:#b97710;--bad:#d84b5b;--white:#fff;--shadow:0 18px 42px rgba(26,50,88,.07)}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--light);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}.shell{min-height:100vh}.topbar{height:80px;background:#fff;border-bottom:1px solid #e9edf4;display:flex;align-items:center;padding:0 clamp(20px,3.5vw,56px);justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}.brand-mark{width:39px;height:39px;background:linear-gradient(140deg,#0674f9,#0041ad);border-radius:12px;display:grid;place-items:center;box-shadow:0 8px 16px #0766fa29}.brand-name{font:800 18px/1 'Manrope',sans-serif;letter-spacing:-.65px}.brand-name span{color:var(--bright)}.brand-tag{font-size:10px;color:#8290a3;margin-top:4px;letter-spacing:1.45px;font-weight:800}.topnav{display:flex;gap:8px;align-items:center}.topnav a{color:#75849b;text-decoration:none;font-weight:700;font-size:12px;padding:11px 14px;border-radius:10px}.topnav a.current{background:var(--ice);color:var(--blue)}.topright{display:flex;align-items:center;gap:12px}.pill-online{color:#19786e;border:1px solid #dcefe8;border-radius:100px;background:#f5fcf8;padding:8px 11px;font-weight:700;font-size:11px;white-space:nowrap}.pill-online i{display:inline-block;width:7px;height:7px;background:#2ebf9f;border-radius:50%;margin-right:5px}.mini-link{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:white;color:#30486b;font-weight:700;text-decoration:none;font-size:12px}.hero{background:var(--navy);color:white;position:relative;overflow:hidden}.hero:before{content:'';position:absolute;background:radial-gradient(circle,rgba(39,112,243,.37),transparent 68%);width:600px;height:400px;top:-250px;right:-25px}.hero:after{content:'';position:absolute;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:38px 38px;inset:0;pointer-events:none;mask-image:linear-gradient(to left,black,transparent)}.hero-inner{max-width:1510px;margin:auto;padding:38px clamp(20px,3.5vw,56px) 42px;position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{color:#8cbbff;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:2px;display:flex;align-items:center;gap:8px}.eyebrow:before{content:'';height:7px;width:7px;background:#3898ff;border-radius:50%}.hero h1{font:800 clamp(25px,3vw,39px)/1.18 'Manrope',sans-serif;letter-spacing:-1.5px;margin:10px 0}.hero p{color:#a9bedc;margin:0;font-size:13px;max-width:670px;line-height:1.7}.hero-side{text-align:right;color:#d6e3f8;font-size:12px;max-width:260px}.hero-side strong{display:block;font-size:13px;margin-bottom:7px;color:white}.herodot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#49cde1;margin-right:5px}.workspace{max-width:1510px;padding:28px clamp(20px,3.5vw,56px) 55px;margin:auto}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:21px;flex-wrap:wrap}.tabs{display:flex;gap:3px;background:#e8edf6;padding:5px;border-radius:13px}.tab{border:0;background:transparent;color:#7b8ba1;padding:12px 17px;border-radius:9px;font-size:12px;font-weight:800}.tab.active{background:#fff;color:var(--blue);box-shadow:0 3px 8px #17385b13}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.action{border:1px solid #e0e7f1;border-radius:10px;padding:10px 13px;background:white;color:#38506d;font-weight:800;font-size:11px;display:inline-flex;align-items:center;gap:8px}.action:hover{border-color:#9dbcec;background:#fafdff}.action.primary{background:var(--blue);border-color:var(--blue);color:white}.action.ghost-danger{color:#a4525c}.main-grid{display:grid;grid-template-columns:minmax(305px,355px) minmax(0,1fr);gap:22px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 17px;border-bottom:1px solid #eef2f7;gap:10px}.panel-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;letter-spacing:-.2px}.iconbox{display:grid;place-items:center;color:#1268eb;width:32px;height:32px;background:#eaf3ff;border-radius:9px}.panel-sub{color:#8592a5;font-size:11px;margin:5px 0 0}.section-body{padding:22px 24px}.field{margin-bottom:17px}.field:last-child{margin-bottom:0}label.flabel{display:block;font-size:11px;font-weight:800;letter-spacing:.1px;color:#405573;margin-bottom:8px}.field-note{font-size:10px;color:#8b9aaf;line-height:1.45;margin-top:6px}.input-wrap{position:relative}.input-wrap input,.input-wrap select,.normal-select{width:100%;border:1px solid #dfe7f1;background:#fff;border-radius:10px;outline:none;height:42px;padding:0 13px;color:#203c63;font-weight:800;transition:all .2s}.input-wrap input:focus,.input-wrap select:focus,.normal-select:focus{border-color:#5898f4;box-shadow:0 0 0 3px #0871f414}.input-wrap .unit{position:absolute;right:12px;top:12px;color:#8394ae;font-weight:800;font-size:11px;pointer-events:none}.input-wrap input.with-unit{padding-right:53px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.split-title{font-size:10px;color:#8b9cb2;font-weight:800;letter-spacing:1.7px;margin:23px 0 14px;display:flex;align-items:center;gap:9px;text-transform:uppercase}.split-title:after{content:'';display:block;flex:1;height:1px;background:#eef2f6}.info-card{display:flex;gap:10px;background:#f2f7ff;border:1px solid #e1eeff;color:#5d779d;padding:13px;border-radius:11px;font-size:11px;line-height:1.6}.info-card b{color:#2d5ca4}.range-row{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8c9bb0}.range{accent-color:#126cf2;width:100%;margin:11px 0}.side-footer{padding:18px 24px;background:#fafcff;border-top:1px solid #edf1f5;font-size:10px;color:#8290a4;line-height:1.6}.mode-hide{display:none!important}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{padding:19px 20px;border:1px solid var(--line);background:white;border-radius:15px;min-height:132px;position:relative;overflow:hidden}.stat.primary{background:linear-gradient(135deg,#073e97,#0965ec);border-color:#0965ec;color:white}.stat.primary:after{content:'';position:absolute;border:1px solid #ffffff20;width:190px;height:190px;border-radius:100%;right:-110px;top:-35px;box-shadow:0 0 0 39px #ffffff08,0 0 0 78px #ffffff07}.stat-label{display:flex;align-items:center;gap:7px;font-size:11px;color:#7688a2;font-weight:700;margin-bottom:12px;white-space:nowrap}.stat.primary .stat-label{color:#bad6ff}.stat-val{font:800 clamp(23px,2.15vw,31px)/1.1 'Manrope',sans-serif;letter-spacing:-1px;margin-bottom:8px;white-space:nowrap}.stat-val .suffix{font:800 12px 'DM Sans',sans-serif;letter-spacing:0;color:#92a1b2;margin-left:4px}.stat.primary .stat-val .suffix{color:#bdd8ff}.stat-desc{color:#8a9bb0;font-size:10px;line-height:1.55}.stat.primary .stat-desc{color:#c3dcff}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor}.status-badge{border-radius:100px;font-size:10px;padding:5px 9px;font-weight:800;display:inline-flex;align-items:center;gap:6px;background:#e7f7f1;color:#08876a}.status-badge.warn{background:#fff6e8;color:#aa710d}.status-badge.bad{background:#fff0f2;color:#c43a53}.status-badge.strong{background:#fcefe5;color:#b26628}.analysis-box{padding:16px 20px;border:1px solid #d5e9fb;background:#f3f9ff;border-radius:13px;display:flex;gap:12px;align-items:flex-start;margin-bottom:20px}.analysis-box.ok{border-color:#d3ede4;background:#f2fcf8}.analysis-box.warn{border-color:#f7e6c8;background:#fffaf1}.analysis-box.bad{border-color:#f5d5db;background:#fff5f6}.analysis-icon{flex:none;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;background:#e5f3ff;color:#1b75d2}.analysis-box.ok .analysis-icon{background:#ddf5e9;color:var(--good)}.analysis-box.warn .analysis-icon{background:#fff0ce;color:var(--warn)}.analysis-box.bad .analysis-icon{background:#ffe1e6;color:var(--bad)}.analysis-title{font-weight:800;font-size:12px;margin-bottom:4px}.analysis-description{color:#6d829e;font-size:11px;line-height:1.55}.vis-panel{margin-bottom:19px}.panel-right{display:flex;align-items:center;gap:8px}.tiny-chip{font-size:10px;font-weight:800;border:1px solid #e4edf7;color:#6783a2;padding:6px 9px;border-radius:7px;white-space:nowrap}.topology-scroll{overflow:auto;padding:26px 23px 16px;scrollbar-color:#b7ccea transparent;scrollbar-width:thin}.flowline{display:flex;align-items:stretch;min-width:max-content;gap:0}.node{position:relative;width:169px;flex:none}.node-olt{width:155px}.node-card{background:white;border:1px solid #dfe8f5;border-radius:12px;padding:14px 13px 12px;box-shadow:0 9px 22px #234a7a08;height:111px}.node-olt .node-card{background:#0c2b52;border-color:#0c2b52;color:white}.node-kind{font-size:10px;color:#8293a9;text-transform:uppercase;font-weight:800;letter-spacing:.9px;margin-bottom:9px}.node-olt .node-kind{color:#9dc4f8}.node-name{font:800 13px 'Manrope',sans-serif;max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-desc{display:flex;align-items:center;gap:5px;font-weight:800;font-size:12px;color:#2d69c1;margin-top:8px}.node-olt .node-desc{color:#8bbcff}.node-tap .node-card{border-top:3px solid #1681fb}.node-foot{font-size:10px;font-weight:800;color:#8097b0;text-align:center;margin-top:9px}.node-foot b{color:#2c669e}.node-foot.warn b{color:#b97b1b}.node-foot.bad b{color:#d14c59}.node-connector{width:46px;flex:none;height:111px;display:flex;align-items:center;justify-content:center;color:#9bb2ca;position:relative}.node-connector:before{content:'';height:2px;background:#c7d8ec;width:100%;position:absolute}.node-connector:after{content:'›';color:#3e8af4;position:absolute;right:0;top:40px;font-size:21px;font-weight:700}.branch-label{margin-top:8px;background:#edf5ff;border-radius:7px;padding:6px 4px;color:#517ba7;font-weight:800;font-size:9px;text-align:center}.topology-key{border-top:1px solid #eff2f7;padding:13px 23px;display:flex;gap:20px;flex-wrap:wrap;font-size:10px;font-weight:700;color:#8798ac}.topology-key span{display:inline-flex;align-items:center;gap:6px}.key-swatch{display:inline-block;width:8px;height:8px;border-radius:50%;background:#1681fb}.key-swatch.green{background:#14a47d}.key-swatch.orange{background:#f5ac43}.params-result{display:grid;grid-template-columns:1.2fr 1fr;gap:19px}.result-panel .section-body{padding:16px 24px 20px}.result-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #eef2f8;gap:10px}.result-row:last-child{border:0}.result-row .name{font-size:11px;color:#71829a;line-height:1.5}.result-row .value{font-size:12px;font-weight:800;color:#243e60;white-space:nowrap;text-align:right}.result-row .value.blue{color:#1268dc}.math-text{background:#f5f8fe;border:1px solid #eaf0f7;border-radius:10px;padding:13px;line-height:1.65;color:#6682a4;font-size:10px;margin-top:14px;font-family:ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.sub-heading{font-size:11px;color:#7089a9;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;margin-bottom:10px}.planner-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.planner-banner h3{font:800 16px 'Manrope',sans-serif;margin:0}.planner-banner p{font-size:11px;color:#8192a7;margin:5px 0 0}.table-scroll{overflow:auto}.planner-table{width:100%;border-spacing:0;white-space:nowrap;font-size:11px;min-width:760px}.planner-table th{text-align:left;font-size:10px;letter-spacing:.35px;color:#8798aa;background:#f8fafc;font-weight:800;padding:13px 12px;border-bottom:1px solid #edf1f6}.planner-table td{border-bottom:1px solid #eef2f7;padding:10px 9px;color:#3a5376;font-weight:700}.planner-table tr:last-child td{border-bottom:0}.cell-input,.cell-select{border:1px solid #e0e8f2;border-radius:8px;height:35px;background:#fff;padding:0 8px;color:#344963;font-weight:700;width:100%;outline:0;font-size:11px}.cell-input:focus,.cell-select:focus{border-color:#368afc}.cell-input.name{width:100px}.cell-input.number{width:69px}.cell-select{min-width:75px}.row-buttons{display:flex;gap:4px}.iconbtn{width:26px;height:27px;border:1px solid #e2eaf5;border-radius:7px;background:white;font-weight:800;color:#7d92ae}.iconbtn:hover{background:#f1f7ff;color:#186de4}.iconbtn.danger:hover{background:#fff0f2;color:#c94654}.planner-footer{padding:14px 19px;background:#fcfdff;border-top:1px solid #edf2f8;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.subtle{color:#8a9aad;font-size:10px}.add-btn{border:1px dashed #8eb8f1;background:#f2f7ff;color:#156ad9;border-radius:9px;padding:9px 12px;font-size:11px;font-weight:800}.add-btn:hover{background:#e9f3ff}.warn-text{font-size:10px;color:#9c681c}.result-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.summary-cell{background:#f7faff;padding:13px 14px;border-radius:10px}.summary-cell .k{font-size:10px;font-weight:700;color:#87a0b8;margin-bottom:7px}.summary-cell .v{font-weight:800;font-size:17px;color:#193e68}.table-footer-note{padding:15px 20px;border-top:1px solid #edf2f8;font-size:10px;color:#8899ac;line-height:1.6}.guide{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:26px 30px}.guide h3{font:800 16px 'Manrope',sans-serif;margin:0 0 10px}.guide p{font-size:11px;color:#8191a7;line-height:1.7;margin:0}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px;margin-top:20px}.guide-item{display:flex;gap:11px}.stepnum{width:29px;height:29px;border-radius:8px;background:#eaf4ff;color:#1672e9;font-weight:800;display:grid;place-items:center;flex:none}.guide-item b{font-size:11px}.guide-item p{margin-top:5px;font-size:10px}.footer{padding:20px clamp(20px,3.5vw,56px) 24px;max-width:1510px;margin:auto;border-top:1px solid #e3ebf5;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#9aa9bc;flex-wrap:wrap}.footbrand{color:#406ba2;font-weight:800}.hidden{display:none!important}.toast{position:fixed;bottom:24px;right:24px;background:#092b51;color:white;border-radius:11px;padding:13px 18px;box-shadow:0 20px 50px #001d4155;z-index:100;font-size:12px;font-weight:800;opacity:0;pointer-events:none;transform:translateY(14px);transition:.25s}.toast.visible{opacity:1;transform:translateY(0)}.mobile-menu{display:none}.tag-trace{font-size:10px;color:#8d9bb0;margin-top:5px}.only-pro{display:none}body.pro .only-pro{display:block}body.pro .only-simple{display:none}.help{background:#eaf2fc;color:#5a82b2;width:15px;height:15px;border-radius:50%;display:inline-grid;place-items:center;font-weight:800;font-size:10px;cursor:help}.right-content{min-width:0}input[type=number]{font-variant-numeric:tabular-nums}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{margin:0}

.architecture-panel{background:#fff;border:1px solid #dfe8f5;border-radius:16px;padding:21px;margin-bottom:17px;box-shadow:0 4px 16px #18426b08}
.arch-heading,.odc-config-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.arch-heading h3,.odc-config-header h3{font:800 16px 'Manrope',sans-serif;letter-spacing:-.35px;margin:5px 0 4px;color:#203a5d}.arch-heading p,.odc-config-header p{font-size:11px;color:#7c8fa9;margin:0;max-width:650px;line-height:1.55}.arch-kicker{font-size:10px;font-weight:900;letter-spacing:1.4px;color:#1c71e5}.arch-flag,.odc-chip{flex:none;font-size:9px;background:#edf5ff;color:#3279c4;border-radius:100px;padding:8px 10px;font-weight:900;letter-spacing:.8px}.odc-chip{background:#e7f7f2;color:#129377}
.arch-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.arch-choice{background:#fbfdff;border:1px solid #e1e9f5;border-radius:12px;padding:15px 16px;text-align:left;display:flex;flex-direction:column;gap:13px;min-width:0;color:#4a6586;transition:border-color .15s,background .15s,box-shadow .15s}.arch-choice:hover{border-color:#85b5ed}.arch-choice.active{border:2px solid #1476ec;background:linear-gradient(135deg,#f3f8ff,#fff);padding:14px 15px;box-shadow:0 4px 16px #2178d010}.arch-choice-title{display:flex;gap:9px;align-items:center;font-size:12px;color:#28415f}.arch-choice-title strong{font-weight:900;flex:1}.arch-choice-icon{width:27px;height:27px;border-radius:8px;background:#ebf2ff;color:#156cda;display:grid;place-items:center;font-size:17px}.arch-check{display:none;background:#176ce0;color:#fff;border-radius:50%;width:18px;height:18px;text-align:center;font-size:12px;line-height:18px}.arch-choice.active .arch-check{display:inline}.arch-minidiagram{display:flex;align-items:center;gap:6px;min-height:37px;flex-wrap:nowrap}.arch-minidiagram>i,.branch-mini i{font-style:normal;font-size:9px;padding:7px 8px;border-radius:6px;background:#e8f1fb;color:#416a9a;font-weight:900;white-space:nowrap}.arch-minidiagram>b{color:#75a4db;font-size:13px}.branch-mini{display:flex;flex-direction:column;gap:3px}.branch-mini i{padding:3px 6px}.arch-description{font-size:10px;line-height:1.55;color:#7b91a8}.odc-config{border:1px solid #dce7f4;border-radius:15px;background:linear-gradient(180deg,#fbfdff,#fff);margin-bottom:18px;padding:20px;box-shadow:0 5px 18px #1d517d09}.odc-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:14px;row-gap:4px}.odc-fields .field{margin-bottom:14px}.odc-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:7px 0 12px}.odc-metrics>div{border:1px solid #e2ebf7;border-radius:10px;padding:10px;background:white;min-width:0}.odc-metrics span{font-size:10px;color:#879aaf;display:block}.odc-metrics strong{font:800 15px 'Manrope',sans-serif;color:#1d5697;display:block;margin-top:6px}.odc-note{font-size:10px;color:#69829b;line-height:1.6;margin:0}.only-odc{display:none}body.pro.odc-topology .only-odc{display:block}body:not(.odc-topology) .only-odc-col{display:none}.planner-table .only-odc-col .cell-select{min-width:90px}.planner-table{min-width:780px}body.odc-topology .planner-table{min-width:950px}.planner-add-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.add-btn.continuation{border-style:solid;background:#fff;color:#23619b;border-color:#ccdff4}.cell-select.port-select{min-width:80px}.cell-select.type-select{min-width:112px}.cell-select:disabled{color:#a2afc1;background:#f1f5fa}.odc-route{padding:24px 24px 26px;min-width:720px}.odc-trunk{display:flex;align-items:center;gap:0;margin-bottom:18px}.odc-trunk .node{width:180px}.node-odc .node-card{background:#eaf4ff;border:1px solid #88bafd;border-top:3px solid #297ded}.node-odc .node-name{color:#174d9c}.node-odc .node-desc{color:#1768c4}.odc-branches{border-left:3px solid #aec9ed;margin-left:205px;padding-left:24px;display:grid;gap:14px}.odc-branch{display:flex;align-items:flex-start;gap:15px;position:relative;padding:14px 16px;background:#f9fbff;border:1px solid #e8eef8;border-radius:11px;width:max-content;min-width:100%}.odc-branch:before{content:'';position:absolute;left:-28px;top:38px;width:28px;height:2px;background:#aec9ed}.odc-port-label{font-size:10px;color:#195baa;background:#e8f2ff;border-radius:8px;padding:10px 9px;font-weight:900;min-width:92px;white-space:nowrap;text-align:center}.odc-branch .flowline{gap:0}.node-terminal .node-card{border-top:3px solid #17aa8f}.node-terminal .branch-label{background:#e7f8f2;color:#14816b}.odc-branch .node{width:168px}.odc-branch .node-card{height:109px}.node-foot.muted{color:#9aacc0}.odc-route-note{font-size:10px;color:#8092ac;padding-top:13px}.inline-error{margin-top:12px;color:#b24c30;background:#fff6ed;padding:10px 12px;border-radius:9px;font-size:11px}
@media(max-width:1100px){.odc-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.arch-minidiagram{gap:4px}.arch-minidiagram>i{padding:6px}}
@media(max-width:640px){.architecture-panel,.odc-config{padding:15px}.arch-options{grid-template-columns:1fr}.arch-choice{padding:12px 14px}.arch-choice.active{padding:11px 13px}.odc-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.odc-fields .field:first-child{grid-column:1/-1}.odc-metrics{grid-template-columns:1fr 1fr}.odc-metrics>div:last-child{grid-column:1/-1}.odc-trunk .node{width:155px}.odc-branches{margin-left:24px}.arch-flag{display:none}.odc-route{padding:18px;min-width:680px}.planner-banner{flex-wrap:wrap}}
@media print{.architecture-panel{display:none}body.pro.odc-topology .odc-config{display:block}.odc-branches{margin-left:25px}.odc-route{overflow:visible}.odc-branch{break-inside:avoid}.odc-branch .node-card{height:110px}}
    @media(max-width:1180px){.main-grid{grid-template-columns:310px minmax(0,1fr)}.stats{gap:9px}.stat{padding:17px 12px}.stat-val{font-size:23px}.panel-header{padding:19px}.section-body{padding:18px 19px}.params-result{grid-template-columns:1fr}.hero-side{display:none}}
    @media(max-width:900px){.topnav{display:none}.main-grid{grid-template-columns:1fr}.side-panel{position:static}.main-grid>.right-content{grid-row:2}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.params-result{grid-template-columns:1fr 1fr}.hero-inner{padding-top:30px;padding-bottom:32px}.workspace{padding-top:20px}.guide-grid{grid-template-columns:1fr}.guide-item{align-items:flex-start}.topright .pill-online{display:none}}
    @media(max-width:640px){.topbar{height:70px}.brand-name{font-size:16px}.brand-mark{width:35px;height:35px}.brand-tag{font-size:9px}.topright .mini-link{display:none}.hero h1{font-size:27px}.hero p{font-size:12px}.hero-inner{padding-bottom:28px}.toolbar{align-items:stretch}.tabs{width:100%}.tab{flex:1}.toolbar-actions{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.toolbar-actions .action{padding:10px 8px;justify-content:center;font-size:10px}.stats{gap:8px}.stat{padding:13px 10px;min-height:112px}.stat-label{font-size:9px;white-space:normal;min-height:26px}.stat-val{font-size:18px;letter-spacing:-.7px;white-space:normal}.stat-val .suffix{font-size:10px}.stat-desc{font-size:9px}.params-result{grid-template-columns:1fr}.result-summary{gap:8px}.summary-cell{padding:11px 9px}.summary-cell .v{font-size:14px}.section-body{padding:19px}.panel-header{padding:17px 19px}.guide{padding:23px 20px}.footer{font-size:10px}.mobile-menu{display:block}.planner-banner{align-items:stretch}.planner-banner .action{white-space:nowrap}}
    @media print{body{background:white}.topbar,.hero,.toolbar,.action,.add-btn,.iconbtn,.guide,.footer,.side-footer,.pill-online,.topology-key{display:none!important}.workspace{padding:0}.main-grid{display:block}.panel{break-inside:avoid;box-shadow:none;margin-bottom:15px}.side-panel{display:none}.stats,.params-result{grid-template-columns:repeat(3,1fr)}.topology-scroll{overflow:visible}.flowline{transform:scale(.75);transform-origin:left top;height:140px}body:before{content:'INDOFIBER NET — Laporan Perencanaan Optik';font-weight:800;font-size:20px;display:block;margin:20px}}
  
/* Integrasi halaman /kalkulatorrasio dengan navigasi publik Indofiber Net. */
.topbar{position:relative;z-index:40;min-height:80px}
.topnav{gap:2px}
.topnav a{font-size:12px;padding:11px 11px;transition:background .16s,color .16s}
.topnav a:hover{color:#146af5;background:#f2f7ff}
.topnav a.current{white-space:nowrap}
.billing-link{display:inline-flex;align-items:center;gap:7px;background:#126af0;border:1px solid #126af0;color:white;text-decoration:none;font-weight:800;font-size:12px;padding:11px 14px;border-radius:10px;white-space:nowrap;transition:background .16s}
.billing-link:hover{background:#0349b4}
.hero-back{display:inline-flex;align-items:center;gap:6px;color:#b9d6ff;text-decoration:none;font-size:11px;font-weight:800;margin-bottom:16px;padding-bottom:5px}
.hero-back:hover{color:white}
.site-mobile-menu{display:none;position:relative}
.site-mobile-menu summary{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:center;gap:9px;background:#f3f7fe;border:1px solid #d7e6f8;color:#1e518f;border-radius:10px;padding:10px 13px;font-size:13px;font-weight:800}
.site-mobile-menu summary::-webkit-details-marker{display:none}
.site-mobile-menu nav{position:absolute;right:0;top:calc(100% + 12px);width:min(312px,calc(100vw - 35px));background:#fff;border:1px solid #dde7f5;border-radius:14px;padding:9px;box-shadow:0 23px 50px #10284825;display:grid;z-index:50}
.site-mobile-menu nav a{padding:12px 13px;text-decoration:none;color:#35506f;border-radius:8px;font-weight:700;font-size:13px}
.site-mobile-menu nav a:hover,.site-mobile-menu nav a.current{background:#eaf3ff;color:#146af5}
.menu-separator{display:block;height:1px;background:#edf1f7;margin:6px 0}
.site-mobile-menu summary:focus-visible,.topbar a:focus-visible{outline:3px solid #75acff;outline-offset:3px}
@media(max-width:1180px){.topnav a{padding:9px 8px;font-size:11px}.topbar{gap:10px}.billing-link{padding:10px;font-size:11px}}
@media(max-width:1000px){.topnav{display:none}.site-mobile-menu{display:block}.topright{margin-left:auto}}
@media(max-width:640px){.billing-link{display:none}.topbar{padding:0 18px}.brand-tag{letter-spacing:1px}.hero-back{margin-bottom:12px}}
@media print{.site-mobile-menu,.billing-link,.hero-back{display:none!important}}


/* Legacy brand styles (overridden below to match the supplied official horizontal logo). */
.brand{gap:10px;min-width:0}
.brand-mark{width:45px;height:45px;flex-shrink:0;background:#3d33ff;border-radius:12px;box-shadow:0 7px 15px rgba(61,51,255,.19);overflow:hidden}
.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}
.brand-name{display:block;font:800 18px/1.1 'Manrope',sans-serif;letter-spacing:-.6px;white-space:nowrap}
.brand-name span{color:#3d33ff}
.brand-tag{display:block;letter-spacing:1.1px;font-size:9px;margin-top:4px}
.topnav a.current{background:#f0efff;color:#3d33ff}
.hero-brand{max-width:none;text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.hero-brand img{display:block;width:min(300px,26vw);height:auto;aspect-ratio:1500/380;border-radius:9px;outline:1px solid rgba(255,255,255,.12);outline-offset:2px}
.hero-product{font-size:11px;color:#b9d1f6;white-space:nowrap;font-weight:600}
.hero-product .herodot{vertical-align:middle}
.hero-divider{color:#6179a0;padding:0 3px}
@media(max-width:1280px){.hero-brand img{width:min(240px,24vw)}.hero-product{font-size:10px}}
@media(max-width:1150px){.hero-brand{display:none}}
@media(max-width:640px){.brand-name{font-size:16px}.brand-tag{font-size:8px;letter-spacing:.7px}.brand-mark{height:38px;width:38px;border-radius:10px}}
@media print{.hero-brand{display:none}}

/* Branding V3: exact user-supplied IndoFiber Net horizontal logo (no recreation). */
.topbar{height:88px;min-height:88px;gap:18px}
.topbar .brand{display:inline-flex;flex:0 0 auto;align-items:center;min-width:0;line-height:0;border-radius:8px}
.topbar .brand-logo-horizontal{display:block;width:250px;height:auto;aspect-ratio:1450/402;max-width:100%;border-radius:7px;object-fit:contain;box-shadow:0 2px 10px rgba(61,51,255,.10)}
.topbar .brand:focus-visible{outline:3px solid #7e9dff;outline-offset:4px}
.topbar .topnav{margin-left:auto;margin-right:auto}
.hero-tech{text-align:right;min-width:200px;max-width:248px;flex-shrink:0;color:#b6cdec;font-size:12px;line-height:1.5}
.hero-tech strong{display:block;font-size:12px;color:white;font-weight:800;margin-bottom:5px}
.hero-tech .herodot{vertical-align:middle}
@media(max-width:1220px){.topbar .brand-logo-horizontal{width:210px}.topbar{gap:10px}}
@media(max-width:1100px){.topbar .brand-logo-horizontal{width:202px}}
@media(max-width:1000px){.topbar .brand-logo-horizontal{width:239px}.topbar{height:82px;min-height:82px}}
@media(max-width:780px){.hero-tech{display:none}}
@media(max-width:640px){.topbar{height:70px;min-height:70px;padding:0 14px}.topbar .brand-logo-horizontal{width:190px;border-radius:5px}.site-mobile-menu summary{padding:9px 11px}}
@media(max-width:360px){.topbar .brand-logo-horizontal{width:170px}}
@media print{.topbar .brand-logo-horizontal{width:180px;box-shadow:none}}

/* INDOFIBER HOMEPAGE-ALIGNED HEADER v4 - Purple + Cyan brand palette */
:root{--site-violet:#3D32FE;--site-violet-dark:#3026DA;--site-cyan:#39B5FF;--site-lavender:#F0EEFF;--site-purple-text:#3026C9}
/* Header keeps the official user-supplied horizontal logo, not recreated text. */
.topbar{
  background:linear-gradient(110deg,#FFFFFF 0%,#FFFFFF 60%,#F7F6FF 100%);
  border-top:3px solid var(--site-violet);
  border-bottom:1px solid #E8E6FA;
  box-shadow:0 9px 28px rgba(46,31,153,.055);
  min-height:89px;height:89px;
}
.topbar .brand-logo-horizontal{box-shadow:0 5px 17px rgba(61,50,254,.14);border-radius:8px}
.topnav{gap:3px}
.topnav a{color:#4D5273;font-weight:750;border:1px solid transparent;border-radius:10px;letter-spacing:-.1px}
.topnav a:hover{background:#F1EFFF;color:#3225D8;border-color:#E9E5FF}
.topnav a.current,.topnav a.current:hover{
  background:#EEECFF;color:#3227E6;border-color:#E0DCFF;
  box-shadow:inset 0 0 0 1px rgba(61,50,254,.035);
}
.billing-link{
  background:var(--site-violet);border-color:var(--site-violet);color:white;
  border-radius:11px;box-shadow:0 7px 16px rgba(61,50,254,.18);
}
.billing-link:hover{background:var(--site-violet-dark);border-color:var(--site-violet-dark);color:white}
.site-mobile-menu summary{
  color:#3328DB;background:#F1EFFF;border-color:#DCD7FF;
  border-radius:11px;min-height:40px;
}
.site-mobile-menu[open] summary{color:#fff;background:var(--site-violet);border-color:var(--site-violet)}
.site-mobile-menu nav{
  border:1px solid #E4E0FF;box-shadow:0 20px 50px rgba(46,36,143,.19);
}
.site-mobile-menu nav a{color:#353657}
.site-mobile-menu nav a:hover,.site-mobile-menu nav a.current{
  background:#EFECFF;color:#3327DF;
}
.topbar a:focus-visible,.topbar summary:focus-visible{outline:3px solid #54A9FF;outline-offset:3px}
/* Header banner: violet base echoes the home brand while cyan accents retain the WiFi symbol tone. */
.hero{
  background:linear-gradient(112deg,#3024B5 0%,#3D32FE 48%,#513EFF 80%,#3431B3 100%);
  color:white;
}
.hero:before{
  background:radial-gradient(circle at center,rgba(57,181,255,.42),rgba(57,181,255,.08) 42%,transparent 68%);
  width:720px;height:500px;top:-270px;right:-160px;
}
.hero:after{
  background-image:linear-gradient(#FFFFFF10 1px,transparent 1px),linear-gradient(90deg,#FFFFFF10 1px,transparent 1px);
  opacity:.55;
}
.hero .hero-back{color:#E2DCFF}
.hero .hero-back:hover{color:white}
.hero .eyebrow{color:#C2E8FF}
.hero .eyebrow:before{background:#39B5FF;box-shadow:0 0 0 4px #39B5FF24}
.hero h1{color:#FFFFFF}
.hero h1 span{color:#9EDCFF!important}
.hero p{color:#EEEFFF;max-width:720px}
.hero-tech{color:#E0E5FF}
.hero-tech .herodot{background:#39B5FF}
@media(max-width:1000px){.topbar{min-height:83px;height:83px}}
@media(max-width:640px){
  .topbar{min-height:73px;height:73px;background:#FFFFFF;border-top-width:3px}
  .topbar .brand-logo-horizontal{box-shadow:0 4px 12px rgba(61,50,254,.12)}
  .hero{background:linear-gradient(125deg,#3224C3 0%,#3D32FE 75%,#4F46F6 100%)}
}
@media print{.topbar{background:#fff;box-shadow:none;border-top:0;border-bottom:1px solid #eee}.hero{background:#3D32FE!important}}

/* INDOFIBER NAVBAR v5 — match the live homepage screenshot (purple/nav white). */
.topbar{
  background:#3D32FE;
  border:0;
  border-top:0;
  border-bottom:0;
  box-shadow:none;
  height:89px;min-height:89px;
}
.topbar .brand-logo-horizontal{
  border-radius:0;
  box-shadow:none;
  background:#3D32FE;
}
.topnav a{
  color:#FFFFFF;
  border-color:transparent;
  font-size:13px;
  font-weight:750;
  background:transparent;
  transition:background-color .18s ease,color .18s ease;
}
.topnav a:hover{color:#FFFFFF;background:rgba(255,255,255,.13);border-color:transparent}
.topnav a.current,.topnav a.current:hover{
  color:#FFFFFF;
  background:rgba(255,255,255,.17);
  border-color:rgba(255,255,255,.18);
  box-shadow:none;
}
.billing-link{
  background:#FFFFFF;
  color:#3D32FE;
  border:1px solid rgba(255,255,255,.95);
  border-radius:12px;
  box-shadow:none;
  font-size:13px;
}
.billing-link:hover{background:#F0EEFF;color:#3026DA;border-color:#F0EEFF}
.site-mobile-menu summary{
  color:#FFFFFF;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.40);
}
.site-mobile-menu[open] summary{
  background:rgba(255,255,255,.25);color:#FFFFFF;border-color:rgba(255,255,255,.52)
}
.site-mobile-menu nav{border:1px solid #E6E4FF;background:#FFFFFF}
.site-mobile-menu nav a{color:#39345B}
.site-mobile-menu nav a:hover,.site-mobile-menu nav a.current{background:#F0EEFF;color:#3227DF}
.topbar a:focus-visible,.topbar summary:focus-visible{outline:3px solid #8EDDFF;outline-offset:3px}
/* Flow seamlessly from the homepage-style navigation into the title section. */
.hero{background:linear-gradient(118deg,#3D32FE 0%,#3D32FE 43%,#3022CD 100%)}
@media(max-width:1000px){.topbar{height:83px;min-height:83px}}
@media(max-width:640px){
  .topbar{height:73px;min-height:73px;background:#3D32FE;border:0}
  .topbar .brand-logo-horizontal{border-radius:0;box-shadow:none}
  .hero{background:linear-gradient(118deg,#3D32FE 0%,#3225D2 100%)}
}
@media print{.topbar{background:#FFFFFF;box-shadow:none}}
