*{box-sizing:border-box}body{margin:0;background:#f3f5f8;color:#202c39;font:14px/1.45 system-ui,-apple-system,sans-serif}.container{max-width:1500px;margin:auto;padding:20px}h1{font-size:1.6rem;margin:0}h1 small{font-size:.7rem;color:#58708c}h2{font-size:1.12rem;margin:0 0 12px}h3{font-size:1rem;margin:20px 0 12px}h4{font-size:.95rem;margin:8px 0}header p,.hint,footer{color:#5b6b7c}.warning,.error{padding:12px;border-radius:7px;background:#fff1d6;border:1px solid #eac17c;margin:12px 0}.error{background:#fff0f0;border-color:#e9a2a2}.error p{margin:3px 0}.panel{background:white;border:1px solid #dfe4ea;border-radius:10px;padding:18px;margin:14px 0;box-shadow:0 2px 8px #24364a08}.inputs{display:grid;grid-template-columns:1fr 1fr;gap:28px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}label{display:flex;flex-direction:column;font-size:.84rem;font-weight:600;gap:5px}input,select,button{width:100%;border:1px solid #bdc9d6;border-radius:6px;padding:9px;background:#fff;color:#26394c;font:inherit}button{background:#1769aa;color:white;border:0;width:auto;cursor:pointer;padding:10px 20px}button:hover{background:#0b528a}.hidden{display:none!important}.toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px}.toolbar label{max-width:220px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.metrics>div{background:#eef4fa;padding:11px;border-radius:7px}.metrics span{display:block;color:#53677d;font-size:.76rem}.metrics strong{font-size:1.12rem}.drawings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.drawings>div{min-width:0}.drawings svg{width:100%;height:auto;background:#fbfdff;border:1px solid #dfe5ec;border-radius:8px}.ground{stroke:#52606c;stroke-width:2}.mast{stroke:#23354a;stroke-width:7}.antenna{stroke:#16966e;stroke-width:4}.guy{stroke:#2878bd;stroke-width:1.7}.anchor{fill:#db7939}.collar{fill:#b83548}.boundary{stroke:#7b9e8c;stroke-width:2;fill:#b8d8c51b}.dimension{stroke:#8d99a6;stroke-width:1;stroke-dasharray:5 3}.measure{font:12px system-ui;fill:#253b50}.caption{font:12px system-ui;fill:#61748a}.tablewrap{overflow:auto;margin-top:12px}table{width:100%;border-collapse:collapse}td,th{padding:8px;text-align:left;border-bottom:1px solid #e2e7ed;vertical-align:top}footer{font-size:.8rem;margin:20px 0}@media(max-width:950px){.inputs,.drawings{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.container{padding:10px}.fields{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.toolbar label{max-width:none}.metrics{grid-template-columns:1fr 1fr}}

header{background:linear-gradient(105deg,#124e82,#0c928d);color:white;border-radius:12px;padding:22px}header p,header h1 small{color:#d8f6f4}h2{color:#087c91;border-left:5px solid #ffb347;padding-left:10px}h3{color:#a1488c;border-bottom:2px solid #f3d6ec;padding-bottom:7px}h4{color:#126eaa}.panel{border-top:3px solid #52b8ba}.inputs>div:first-child h2{color:#18764e}.inputs>div:nth-child(2) h2{color:#7a4bb4}.antenna-row{margin:10px 0 16px;padding:12px;background:#eaf8f6;border-radius:9px}.antenna-row label{max-width:100%}.rope-label{font:bold 13px system-ui;fill:#075c97;paint-order:stroke;stroke:#fff;stroke-width:3px}.axis-label{font:10px system-ui;fill:#085d83;paint-order:stroke;stroke:#fff;stroke-width:3px}.metrics small{font-weight:normal;font-size:.7rem}table small{font-weight:normal}article{border-top:1px solid #e6d8f2;padding-top:8px}.toolbar label{min-width:180px}

.safety-details{margin:10px 0 14px;border:1px solid #b6d8e5;border-radius:9px;background:#eaf5fa;overflow:hidden}.safety-details summary{cursor:pointer;list-style:none;padding:10px 14px;color:#16536d;font-weight:650;display:flex;justify-content:space-between;gap:12px}.safety-details summary::-webkit-details-marker{display:none}.safety-details summary:before{content:'ⓘ';margin-right:8px}.safety-details .summary-more{font-size:.8rem;color:#247a9a}.safety-details[open] .summary-more{display:none}.safety-details .warning{margin:0;border:0;border-top:1px solid #b6d8e5;border-radius:0}.toolbar label input[readonly]{background:#eef3f7;color:#456275}

.collar-label{font:12px system-ui;fill:#253b50;paint-order:stroke;stroke:#fbfdff;stroke-width:3px;stroke-linejoin:round}.mast-height{font:bold 13px system-ui;fill:#0b658d;paint-order:stroke;stroke:#fbfdff;stroke-width:4px}

.app-nav{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.app-nav button{background:#ffffff24;border:1px solid #ffffff66}.app-nav button.active{background:white;color:#125b81}.app-page{margin-top:16px}.action-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:15px 0}.secondary{background:#357d86}.danger{background:#aa3b50}.filter{background:#e8eff7;color:#1a527c}.filter.active{background:#1769aa;color:white}.file-label{display:inline-flex;position:relative;cursor:pointer;background:#357d86;color:white;padding:10px 15px;border-radius:6px}.file-label input{position:absolute;opacity:0;width:1px;height:1px}.job{border:1px solid #dce6ef;border-left:4px solid #45a3aa;border-radius:9px;padding:12px;margin:12px 0}.job.done{border-left-color:#22935f}.job-title{font-weight:700;font-size:1rem}.job-meta{color:#5b6b7c;margin:6px 0}.job-actions{display:flex;gap:7px;flex-wrap:wrap}.job-actions button{padding:6px 10px;font-size:.83rem}.job input[type=checkbox]{width:auto}.order-table{overflow-x:auto}.order-table table{min-width:680px}.order-table tfoot{font-weight:bold;background:#eaf6f6}.hint-strong{background:#edf6ff;padding:10px;border-radius:8px}.price-missing{color:#aa3b50}#storageNotice{min-height:20px}@media(max-width:650px){.app-nav button{flex:1}.action-row button{flex:1}.job-actions button{flex:1}}
/* Module autonome de pertes RF, aligné sur la charte de l’application */
.rf-module .rf-grid {display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin:12px 0}
.rf-module .rf-grid > .col-lg-7 {grid-column:span 7}.rf-module .rf-grid > .col-lg-5 {grid-column:span 5}
.rf-module .rf-grid > .col-md-7 {grid-column:span 7}.rf-module .rf-grid > .col-md-5 {grid-column:span 5}
.rf-module .rf-grid > .col-md-6 {grid-column:span 6}.rf-module .rf-grid > .col-12 {grid-column:span 12}
.rf-module .rf-card{background:#fff;border:1px solid #dce5ed;border-radius:12px;overflow:hidden;height:100%}
.rf-module .rf-card-header{background:#eaf3fc;padding:12px 16px;font-weight:700;color:#205b87}
.rf-module .rf-card-body{padding:16px}
.rf-module label{display:block;font-weight:600;margin-bottom:5px}
.rf-module input:not([type=checkbox]),.rf-module select{display:block;box-sizing:border-box;width:100%;padding:9px;border:1px solid #bccbda;border-radius:8px;background:white;color:#203040}
.rf-module input[type=checkbox]{width:auto}.rf-module .form-check{display:flex;gap:8px;align-items:center}
.rf-module .alert{background:#fff6df;border-left:4px solid #d6a032;border-radius:8px;padding:12px;margin:12px 0}
.rf-module .breakdown-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #e5ebf0}
.rf-module .progress{height:14px;background:#e2e8f0;border-radius:9px;overflow:hidden}.rf-module .progress-bar{height:100%;background:#267cbe}
.rf-module .text-secondary,.rf-module .form-text{color:#64748b}.rf-module .bg-light{background:#f1f6fa;padding:12px;border-radius:8px}
.rf-module .h4{font-size:1.5rem;font-weight:700}.rf-module .mb-1,.rf-module .mb-2{margin-bottom:8px}.rf-module .mt-2,.rf-module .mt-3,.rf-module .mt-4{margin-top:12px}
@media(max-width:760px){.rf-module .rf-grid > *{grid-column:span 12!important}}

/* Tarifs repliables de la commande */
.price-settings{margin:16px 0;border:1px solid #a9d5d9;border-radius:10px;background:#f0f9f9;overflow:hidden}
.price-settings summary{cursor:pointer;list-style:none;padding:13px 16px;color:#096b83;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:12px}
.price-settings summary::-webkit-details-marker{display:none}
.price-settings summary:before{content:'€';display:inline-grid;place-items:center;background:#d5efec;border-radius:50%;width:24px;height:24px;margin-right:8px}
.price-settings[open] .price-hint{display:none}
.price-hint{font-size:.8rem;font-weight:400}
.price-settings-body{padding:16px;background:#fff;border-top:1px solid #c8e2e4}
.price-settings-body .fields{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.price-settings-body .fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.price-settings-body .fields{grid-template-columns:1fr}}
