.back-link{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;margin-bottom:6px}.head-actions{display:flex;gap:8px;flex-wrap:wrap}.tab-body{padding-top:18px}.building-grid-wrap .section-head,.building-page .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 12px;flex-wrap:wrap}.building-grid-wrap .section-head{margin-top:0}.building-page .section-head h2{margin:0;font-size:16px}.section-head p{margin:0}.building-card .bc-addr{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.st-counts{display:inline-flex;flex-wrap:wrap;gap:4px 10px;font-size:12.5px;color:var(--text-2)}.st-counts>span{display:inline-flex;align-items:center;gap:5px}.st-counts i{width:8px;height:8px;border-radius:50%;background:var(--c);display:inline-block}.building-top{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.building-top .card{padding:16px 18px}.bt-progress{display:flex;flex-direction:column;gap:10px}.bt-label{font-weight:600;font-size:13.5px}.building-top .info-list dt{display:inline-flex;align-items:center;gap:5px}.floor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.floor-card{display:flex;flex-direction:column;overflow:hidden}.fc-thumb{position:relative;height:140px;border:0;padding:0;background:#eef2f6;display:grid;place-items:center;overflow:hidden}.fc-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.fc-thumb b{position:absolute;left:10px;top:10px;background:#0f1f3dd9;color:#fff;padding:2px 9px;border-radius:6px;font-size:13px}.fc-noplan{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.fc-body{padding:10px 12px 0;display:flex;flex-direction:column;gap:6px;min-height:26px}.fc-warn{color:#b45309;display:inline-flex;align-items:center;gap:5px;font-size:12px}.fc-actions{display:flex;align-items:center;gap:4px;padding:10px 12px 12px;margin-top:auto}.fc-actions .btn{flex:1}.doc-list{list-style:none;margin:0;padding:4px 0}.doc-list li{display:flex;align-items:center;gap:12px;padding:8px 14px}.doc-list li+li{border-top:1px solid var(--border)}.doc-list li>svg{font-size:20px;color:var(--primary);flex:none}.doc-list li>span{flex:1;min-width:0;display:flex;flex-direction:column}.doc-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-list small{color:var(--muted);font-size:12px}.sym-cell{display:inline-flex;align-items:center;gap:8px}.indoor-links{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}.indoor-links small{color:var(--muted);font-weight:500}.indoor-floor .mapview{background:#e4e8ed}.indoor-bar{position:absolute;top:12px;left:12px;z-index:7;display:flex;align-items:center;gap:6px;background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);padding:5px 6px;max-width:calc(100% - 80px)}.indoor-bar .ib-title{display:flex;flex-direction:column;min-width:0;padding-right:4px}.indoor-bar .ib-title b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.indoor-bar .ib-title small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.indoor-bar select{width:auto;min-width:84px;height:34px;font-weight:600}.indoor-bar .icon-btn.on{background:var(--primary-50);color:var(--primary)}.indoor-bar .btn{height:34px}.plan-menu{position:relative}.plan-menu-pop{position:absolute;top:calc(100% + 8px);right:0;width:270px;padding:6px;display:flex;flex-direction:column;z-index:9;box-shadow:var(--shadow-lg)}.plan-menu-pop button{display:flex;align-items:center;gap:9px;border:0;background:none;text-align:left;padding:9px 10px;border-radius:7px;font-weight:550;font-size:13.5px}.plan-menu-pop button:hover{background:#f2f5f9}.plan-menu-pop label{display:flex;flex-direction:column;gap:6px;padding:9px 10px 6px;font-size:12.5px;color:var(--text-2);border-top:1px solid var(--border);margin-top:4px}.indoor-legend{top:70px;width:230px}.indoor-legend.collapsed{width:120px}.indoor-legend .lp-row em{margin-left:auto;font-style:normal;color:var(--muted);font-size:12px}.indoor-legend .st-dot{width:12px;height:12px;border-radius:50%;background:var(--c);flex:none}.indoor-legend .st-projete{background:transparent;border:2px dashed var(--c);width:10px;height:10px}.indoor-legend .st-depose{opacity:.4}.lp-note{margin:6px 0 0;font-size:11.5px;color:var(--muted)}.indoor-warn{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:8px;background:#fffbeb;color:#92400e;border:1px solid #fcd34d;border-radius:9px;padding:6px 8px 6px 12px;font-size:13px;box-shadow:var(--shadow);flex-wrap:wrap;max-width:560px}.indoor-warn button{border:0;background:#fde68a;color:#78350f;height:28px;padding:0 10px;border-radius:6px;font-weight:600;font-size:12.5px}.indoor-noplan{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;padding:22px 26px;max-width:380px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.indoor-noplan>svg{font-size:30px;color:var(--primary)}.indoor-noplan p{margin:0 0 6px;color:var(--muted);font-size:13px}.indoor-list{position:absolute;top:70px;left:254px;width:300px;max-height:calc(100% - 180px);z-index:7;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.il-head{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--border)}.indoor-list ul{list-style:none;margin:0;padding:4px;overflow-y:auto}.indoor-list li button{width:100%;display:flex;align-items:center;gap:9px;border:0;background:none;text-align:left;padding:6px 8px;border-radius:7px}.indoor-list li button:hover{background:#f2f5f9}.indoor-list img{width:20px;height:20px;flex:none}.indoor-list img.line{width:26px;height:10px}.indoor-list li span{flex:1;min-width:0;display:flex;flex-direction:column}.indoor-list li small{color:var(--muted);font-size:12px}.indoor-list li i{width:9px;height:9px;border-radius:50%;flex:none}.il-empty{padding:10px;font-size:13px}.state-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}.state-quick button{border:1.5px solid var(--border-2);background:#fff;border-radius:8px;height:34px;font-weight:600;font-size:12.5px;color:var(--text-2)}.state-quick button.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c)}.state-seg button i{width:9px;height:9px;border-radius:50%;display:inline-block}.plan-import{display:flex;flex-direction:column;gap:14px}.plan-import .pi-btns{display:flex;gap:10px;flex-wrap:wrap}.plan-import .form-info{align-items:center;gap:10px}@media(max-width:1000px){.building-top{grid-template-columns:1fr}.indoor-bar .ib-title,.indoor-bar .plan-menu .btn span{display:none}.indoor-list{left:12px;top:120px;width:auto;right:12px}.indoor-legend{top:62px}.indoor-warn{top:auto;bottom:140px}}.indoor-floor .map-scale-bar{border-color:#0f1f3d;color:#0f1f3d;text-shadow:0 0 3px #fff,0 0 3px #fff;box-shadow:none}.ref-card{margin:16px 0 6px;padding:14px 16px}.ref-card .section-head{margin:0 0 8px}.ref-card .info-list{margin-bottom:10px}.ref-card .info-list a svg{vertical-align:-2px;font-size:13px}.ref-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ref-pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:99px}.ref-pill.ok{background:#dcfce7;color:#166534}.ref-pill.diff{background:#fef3c7;color:#92400e}.ban-compare td{vertical-align:middle}.ban-compare .cmp-state{white-space:nowrap;font-size:13px}.ban-compare .cmp-state svg{vertical-align:-3px;font-size:16px}.st-ok{color:#16a34a}.st-diff{color:#d97706}.st-absent{color:#94a3b8}.ban-compare tr.cmp-diff td{background:#fffbeb}.ref-search{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.ref-search input{flex:1 1 260px;height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px}.ref-results{list-style:none;margin:0 0 12px;padding:0;border:1px solid var(--border);border-radius:10px;max-height:340px;overflow-y:auto}.ref-results li+li{border-top:1px solid var(--border)}.ref-results button{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;padding:10px 12px;cursor:pointer}.ref-results button:hover{background:var(--primary-50)}.ref-results button>svg{margin-top:2px;color:var(--primary);flex-shrink:0}.ref-results span{display:flex;flex-direction:column;gap:2px}.ref-results small{color:var(--muted)}.ref-match{color:#166534;font-style:normal;font-size:12.5px}.static-map{position:relative;overflow:hidden;background:#eef1f5;border:1px solid #cbd5e1}.static-map img{position:absolute;width:256px;height:256px;max-width:none}.sm-marker{position:absolute;transform:translate(-50%,-50%);z-index:2}.sm-marker i{display:block;width:14px;height:14px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 0 0 1px #00000059}.sm-marker b{position:absolute;left:14px;top:-16px;background:var(--c);color:#fff;font-size:10px;padding:1px 5px;border-radius:4px;white-space:nowrap}.sm-attrib{position:absolute;right:3px;bottom:2px;font-size:9px;background:#fffc;padding:0 3px}@media print{.ban-sheet{gap:8px}.ban-sheet h2{font-size:13px;margin:4px 0;border-bottom:1px solid #cbd5e1;padding-bottom:2px}.ban-sheet .bs-parties{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ban-sheet .bs-parties>div{display:flex;flex-direction:column;border:1px solid #cbd5e1;border-radius:6px;padding:6px 8px}.ban-sheet .bs-parties small{text-transform:uppercase;font-size:9px;color:#475569;letter-spacing:.04em}.ban-sheet .bs-text{white-space:pre-wrap;margin:0}.ban-sheet .table{font-size:11px}.ban-sheet .table th,.ban-sheet .table td{padding:3px 6px}.ban-sheet .bs-maps>div{display:flex;gap:12px}.ban-sheet figure{margin:0;break-inside:avoid}.ban-sheet figcaption{font-size:10px;color:#475569}.ban-sheet .bs-note{font-size:10px;color:#475569;margin:2px 0 0}.ban-sheet .dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:0}.ban-sheet section{break-inside:avoid}.ban-sheet footer{font-size:10px;color:#334155;border-top:1px solid #cbd5e1;padding-top:6px}}.inline-input{display:flex;gap:6px}.inline-input input{flex:1;min-width:0}.centre-switch .cs-btn{display:flex;align-items:center;gap:8px;border:1px solid var(--border);background:#fff;border-radius:10px;height:40px;padding:0 10px;max-width:280px;color:var(--text)}.centre-switch .cs-btn.static{cursor:default}.centre-switch .cs-btn>svg:first-child{color:var(--primary);font-size:18px;flex-shrink:0}.cs-meta{display:flex;flex-direction:column;min-width:0;text-align:left;line-height:1.15}.cs-meta b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cs-meta small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cs-plan.paid{color:var(--success);font-weight:600}.cs-plan.free{color:var(--text-2)}.centre-switch .dropdown-menu{min-width:280px}@media(max-width:1000px){.centre-switch .cs-meta small{display:none}.centre-switch .cs-btn{max-width:180px}}@media(max-width:560px){.centre-switch .cs-meta{display:none}.centre-switch .cs-btn{padding:0 8px}}.plan-banner{display:flex;align-items:center;gap:10px;padding:10px 18px;font-size:13.5px;border-bottom:1px solid var(--border)}.plan-banner>svg{flex-shrink:0;font-size:18px}.plan-banner>span{flex:1;min-width:0}.plan-banner.warn{background:#fffbeb;color:#92400e}.plan-banner.danger{background:#fef2f2;color:#991b1b}.plan-pill{display:inline-block;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:650;white-space:nowrap}.plan-pill.free{background:#eef1f6;color:var(--text-2)}.plan-pill.paid{background:#dcfce7;color:#166534}.plan-pill.ended{background:#fee2e2;color:#991b1b}.danger-text{color:var(--danger);font-weight:600}.login-switch{text-align:center;font-size:13.5px;color:var(--text-2);margin:0}.signup-card{max-width:520px}.signup-section{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-top:1px solid var(--border);padding-top:12px;margin-top:4px}.login:has(.signup-card){justify-content:flex-start;padding-block:32px}.offer-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;padding:0;margin-bottom:16px;overflow:hidden}.offer-strip>div{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-right:1px solid var(--border)}.offer-strip>div:last-child{border-right:0}.offer-strip b{font-size:14px}.offer-strip span{font-size:12.5px;color:var(--text-2)}.centre-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.centre-card{padding:16px;display:flex;flex-direction:column;gap:12px}.centre-card.current{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),var(--shadow)}.cc-top{display:flex;align-items:center;gap:10px}.cc-top>svg{font-size:22px;color:var(--primary);flex-shrink:0}.cc-title{display:flex;flex-direction:column;min-width:0;flex:1}.cc-title b{font-size:15px}.cc-title small{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.cc-plan{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.cc-stats div{background:var(--bg);border-radius:8px;padding:8px 10px}.cc-stats dt{font-size:11.5px;color:var(--muted)}.cc-stats dd{margin:0;font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}.cc-request{display:flex;align-items:center;gap:6px;font-size:13px;color:#92400e;background:#fffbeb;border-radius:8px;padding:6px 10px;margin:0}.cc-request .icon-btn{margin-left:auto;width:28px;height:28px}.cc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.plan-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0}.plan-option{border:1.5px solid var(--border-2);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;cursor:pointer}.plan-option input{position:absolute;opacity:0;pointer-events:none}.plan-option.on{border-color:var(--primary);background:var(--primary-50)}.plan-option b{font-size:15px}.plan-option .po-price{font-weight:650;color:var(--primary)}.plan-option small{color:var(--text-2)}.platform-kpis{grid-column:auto;grid-row:auto;padding:0;background:none;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.platform-kpis .kpi.attention{border-color:var(--warning);background:#fffbeb}@media(max-width:700px){.platform-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.platform-search{margin:16px 0;max-width:420px}.company-card{padding:16px;margin-bottom:14px}.company-card.inactive{opacity:.7}.company-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}.company-head h2{font-size:18px;margin:0 0 2px;display:flex;align-items:center;gap:8px}.company-admins{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 0}.company-admins .chip{display:inline-flex;align-items:center;gap:4px}.company-admins .icon-btn{width:24px;height:24px;font-size:13px}.plan-seg{margin-bottom:12px}tr.inactive td{opacity:.6}.table-card>.section-head{padding:14px 16px 0;margin-bottom:8px}.table-card>.section-head h2{display:flex;align-items:center;gap:8px;font-size:16px;margin:0}.plan-banner.sav{background:#eef2ff;color:#3730a3;border-bottom-color:#c7d2fe}.plan-banner.sav>svg{color:#4f46e5}.support-log td code{font-size:12px;background:none;padding:0}.support-log tr.sl-ouverture td{background:#f5f7ff}.support-log .nowrap{white-space:nowrap}.pad{padding:0 16px 10px;margin:0}.staff-add{display:flex;gap:8px;padding:12px 16px 16px;flex-wrap:wrap}.staff-add input{flex:1 1 200px;height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px}.support-card{margin-top:18px}.profile-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.profile-chips .chip{cursor:pointer;border:1px solid var(--border);background:#fff;padding:5px 11px;border-radius:99px;font-size:13px}.profile-chips .chip.on{background:var(--primary, #2563eb);border-color:var(--primary, #2563eb);color:#fff}.check-list.modules{max-height:none}.check-list label.locked{opacity:.65;cursor:default}.bottom-nav{display:none}@media(max-width:700px){.app.has-bottom-nav{--bnav: 58px}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;height:var(--bnav);z-index:40;background:#fff;border-top:1px solid var(--border);box-shadow:0 -4px 14px #0f1f3d0f}.bottom-nav a,.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600;color:var(--muted, #64748b);text-decoration:none;background:none;border:0;padding:0;min-width:0}.bottom-nav svg{font-size:22px}.bottom-nav .on{color:var(--primary, #2563eb)}.bottom-nav .on svg{transform:translateY(-1px)}.has-bottom-nav .content{padding-bottom:var(--bnav)}.has-bottom-nav .mappage{height:calc(100dvh - var(--topbar) - var(--bnav))}html.native .has-bottom-nav .mappage,html.native .has-bottom-nav .home{height:calc(var(--app-h) - var(--topbar) - var(--bnav))}.has-bottom-nav .content:has(>.mappage){padding-bottom:0}.has-bottom-nav .menu-btn,.has-bottom-nav .demo-banner{display:none}}:root{--bg: #f3f5f9;--card: #fff;--border: #e3e8ef;--border-2: #d5dce6;--text: #0f1f3d;--text-2: #334155;--muted: #64748b;--primary: #1f6feb;--primary-600: #1a5fd0;--primary-50: #eaf1fd;--danger: #dc2626;--success: #16a34a;--warning: #f59e0b;--radius: 10px;--shadow: 0 1px 2px rgba(15, 31, 61, .06), 0 2px 10px rgba(15, 31, 61, .05);--shadow-lg: 0 12px 32px rgba(15, 31, 61, .18), 0 2px 6px rgba(15, 31, 61, .08);--sidebar: 232px;--topbar: 64px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{margin:0;background:var(--bg)}body{overflow-x:hidden}a{color:var(--primary);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}svg{flex-shrink:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:#eef2f7;padding:1px 5px;border-radius:4px;word-break:break-all}h1,h2,h3{margin:0;letter-spacing:-.01em}h1{font-size:22px;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap}h2{font-size:17px;font-weight:650}h3{font-size:15px;font-weight:650}.muted{color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.boot{height:100vh;display:grid;place-items:center;font-size:28px;color:var(--primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:8px;border:1px solid var(--border-2);background:#fff;font-weight:550;font-size:13.5px;color:var(--text);white-space:nowrap;transition:background .15s,border-color .15s;text-decoration:none}.btn:hover{background:#f6f8fb;border-color:#c4cdda}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-600)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-ghost{color:var(--danger)}.btn.danger-ghost:hover{background:#fef2f2;border-color:#fecaca}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.block{width:100%}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:0;background:transparent;border-radius:8px;font-size:19px;color:var(--text-2);position:relative}.icon-btn:hover{background:#f1f4f8}.icon-btn.light{color:#fff}.icon-btn.light:hover{background:#ffffff26}.link{background:none;border:0;padding:0;color:var(--primary);font-weight:550;display:inline-flex;align-items:center;gap:4px}.link:hover{text-decoration:underline}input:not([type=checkbox]):not([type=range]):not([type=color]),select,textarea{width:100%;height:36px;padding:0 10px;border:1px solid var(--border-2);border-radius:8px;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}textarea{height:auto;padding:8px 10px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1f6feb26}input:disabled{background:#f3f5f8;color:var(--muted)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);margin:0}input[type=range]{width:100%;accent-color:var(--primary)}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field-label{font-size:12.5px;font-weight:600;color:var(--text-2)}.field-hint{font-size:12px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.form-grid .full,.full{grid-column:1 / -1}.form-info{background:#f5f8fc;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:13px;display:flex;gap:18px;flex-wrap:wrap;color:var(--text-2)}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.form-error{background:#fef2f2;color:var(--danger);border:1px solid #fecaca;padding:8px 12px;border-radius:8px;font-size:13px}.badge{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}.progress{height:6px;background:#e8edf3;border-radius:99px;overflow:hidden;flex:1}.progress>div{height:100%;border-radius:99px;transition:width .3s}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.seg{display:inline-flex;background:#eef1f6;border-radius:9px;padding:3px;gap:2px}.seg.wrap{flex-wrap:wrap}.seg.full{display:flex;margin-bottom:16px}.seg.full button{flex:1}.seg button{border:0;background:transparent;height:30px;padding:0 12px;border-radius:7px;font-weight:550;font-size:13px;color:var(--text-2);display:inline-flex;align-items:center;gap:6px}.seg button span{font-size:11.5px;color:var(--muted);font-weight:600}.seg button.on{background:#fff;color:var(--text);box-shadow:0 1px 3px #0f1f3d1f}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.tabs button{border:0;background:none;padding:11px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:7px}.tabs button.on{color:var(--primary);border-bottom-color:var(--primary)}.tabs .count{background:#eef1f6;color:var(--text-2);border-radius:99px;padding:0 7px;font-size:11.5px}.tabs button.on .count{background:var(--primary-50);color:var(--primary)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:40px 20px;color:var(--muted)}.empty>svg{font-size:34px;color:#b6c2d2}.empty strong{color:var(--text);font-size:15px}.empty p{margin:0;max-width:460px;font-size:13.5px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border-2);background:#fff;border-radius:99px;padding:2px 9px;font-size:12.5px}.chip:hover{border-color:var(--primary);color:var(--primary)}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--border);z-index:50;display:flex;flex-direction:column}.sidebar-logo{height:var(--topbar);display:flex;align-items:center;padding:0 18px;border-bottom:1px solid transparent;color:inherit}.logo{display:flex;align-items:center;gap:10px}.logo-mark{font-size:20px;color:var(--primary);display:grid;place-items:center}.logo-sep{width:1px;height:30px;background:var(--border-2)}.logo-text{display:flex;flex-direction:column;line-height:1.05}.logo-name{font-size:22px;font-weight:800;color:#0d2a6b;letter-spacing:-.03em}.logo-name b{color:var(--primary);font-weight:800}.logo-sub{font-size:10.5px;color:var(--primary);font-weight:600;margin-top:2px}.sidebar nav{padding:8px 12px 20px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;height:38px;padding:0 12px;border-radius:8px;color:var(--text-2);font-weight:550;font-size:13.5px}.nav-item svg{font-size:18px;color:#5b6b82}.nav-item:hover{background:#f4f6fa}.nav-item.active{background:var(--primary-50);color:var(--primary)}.nav-item.active svg{color:var(--primary)}.sidebar-backdrop{display:none}.main{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:40;height:var(--topbar);background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 20px}.menu-btn,.topbar-logo{display:none}.search{position:relative;flex:1;max-width:520px}.search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:17px}.search input{padding-left:36px!important;background:#fff;height:38px!important}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:60}.search-results button{width:100%;display:flex;align-items:center;gap:10px;border:0;background:none;padding:8px 10px;border-radius:7px;text-align:left}.search-results button svg{color:var(--muted)}.search-results button.hi{background:var(--primary-50)}.sr-label{font-weight:600}.sr-sub{margin-left:auto;color:var(--muted);font-size:12.5px}.search-empty{padding:10px;color:var(--muted)}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.icon-btn .dot{position:absolute;top:3px;right:2px;min-width:16px;height:16px;border-radius:99px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}.dropdown{position:relative}.dropdown-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:60}.dd-title{font-size:12px;font-weight:700;color:var(--muted);padding:6px 8px;text-transform:uppercase;letter-spacing:.03em}.dd-empty{padding:6px 8px 10px;color:var(--muted)}.dd-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:none;border-radius:7px;text-align:left}.dd-item:hover{background:#f4f6fa}.dd-item span{display:flex;flex-direction:column}.dd-item small{color:var(--muted)}.notif .dropdown-menu{width:300px}.user-btn{display:flex;align-items:center;gap:10px;border:0;background:none;padding:4px 6px;border-radius:9px}.user-btn:hover{background:#f4f6fa}.avatar{width:34px;height:34px;border-radius:50%;background:#dfe7f3;color:#1e3a8a;display:grid;place-items:center;font-weight:700;font-size:13px}.user-meta{display:flex;flex-direction:column;text-align:left;line-height:1.2}.user-meta b{font-size:13.5px}.user-meta small{color:var(--muted);font-size:12px}.content{flex:1;min-height:0}.help-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px;color:var(--text-2)}.page{padding:24px 28px 40px;max-width:1400px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head p{margin:4px 0 0;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.ph-title{display:flex;gap:14px;align-items:center}.ph-actions{display:flex;gap:8px}.back{display:inline-flex;align-items:center;gap:6px;font-weight:600;margin-bottom:12px;color:var(--muted)}.back:hover{color:var(--primary)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.toolbar select{width:auto;min-width:160px}.input-icon{position:relative;flex:1;min-width:200px;max-width:340px}.input-icon svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted)}.input-icon input{padding-left:32px!important}.page-tabs{margin:22px 0 18px}.soon{max-width:460px;margin:60px auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.soon>svg{font-size:44px;color:var(--primary);background:var(--primary-50);padding:14px;border-radius:16px;box-sizing:content-box}.soon p{color:var(--muted);margin:0 0 6px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.section-head p{margin:4px 0 0;max-width:640px}.table-card{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:650;padding:10px 14px;border-bottom:1px solid var(--border)}.table td{padding:9px 14px;border-bottom:1px solid #eef1f5;vertical-align:middle}.table tr:last-child td{border-bottom:0}.tbl-sym{width:26px;height:26px;display:block}.tbl-line{width:46px;height:16px;display:block}.row-actions{text-align:right;white-space:nowrap}.mapview{position:relative;overflow:hidden;background:#dfe5ea;width:100%;height:100%;user-select:none;-webkit-user-select:none}.mapview-canvas{position:absolute;inset:0}.map-ctrls{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:10px;z-index:5;transition:right .2s}.map-ctrl-group{background:#fff;border-radius:8px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.map-ctrl-group button{width:36px;height:36px;border:0;background:#fff;display:grid;place-items:center;font-size:18px;color:var(--text-2)}.map-ctrl-group button+button{border-top:1px solid var(--border)}.map-ctrl-group button:hover{background:#f4f6fa}.map-scale{position:absolute;right:14px;bottom:26px;z-index:4;pointer-events:none}.map-scale-bar{border:2px solid #fff;border-top:0;height:8px;display:flex;justify-content:space-between;color:#fff;font-size:11px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.7);box-shadow:0 1px 2px #0006}.map-scale-bar span{transform:translateY(-15px);white-space:nowrap}.map-scale-bar span:first-child{margin-left:-3px}.map-scale-bar span:last-child{margin-right:-12px}.map-attrib{position:absolute;right:8px;bottom:6px;font-size:10.5px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8);z-index:4;pointer-events:none}.basemap-tabs{position:absolute;top:12px;left:12px;z-index:6;display:flex;background:#fff;border-radius:8px;box-shadow:var(--shadow);padding:3px;gap:2px}.basemap-tabs button{border:0;background:none;height:28px;padding:0 14px;border-radius:6px;font-weight:550;font-size:13px;color:var(--text-2)}.basemap-tabs button.on{background:#e9eef5;color:var(--text);font-weight:650}.layer-panel{position:absolute;top:54px;left:12px;width:240px;z-index:6;background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);padding:4px 14px 12px;max-height:calc(100% - 70px);overflow-y:auto}.layer-panel.collapsed{padding-bottom:4px;width:150px}.lp-head{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:none;padding:10px 0 6px;font-weight:700;font-size:14px}.lp-list{display:flex;flex-direction:column;gap:2px;padding-bottom:8px;border-bottom:1px solid var(--border)}.lp-row{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13px;cursor:pointer}.lp-row .lg-point{width:18px;height:18px}.lp-row .lg-line{width:22px;height:10px;margin:0 -2px}.lg-dot{width:12px;height:12px;border-radius:50%;margin:0 3px;box-shadow:0 0 0 2px #fff,0 0 0 3px #f97316}.lg-icon{font-size:16px;color:#475569;margin:0 1px}.lp-section{font-weight:700;font-size:14px;padding:12px 0 6px}.lp-filters{display:flex;flex-direction:column;gap:10px}.lp-filters label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--text-2)}.lp-filters select{height:32px;font-size:13px}.lp-adv{display:inline-flex;align-items:center;gap:5px;margin-top:12px;font-weight:600;font-size:13px;color:var(--primary);background:none;border:0;padding:0}.map-popup{position:absolute;left:0;top:0;z-index:7;background:#fff;border-radius:9px;box-shadow:var(--shadow-lg);padding:11px 30px 11px 13px;min-width:190px;max-width:260px;pointer-events:auto}.map-popup:after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;background:#fff;transform:translate(-50%) rotate(45deg);box-shadow:3px 3px 5px #0f1f3d14}.map-popup-close{position:absolute;top:4px;right:6px;border:0;background:none;font-size:18px;color:var(--muted);line-height:1;padding:4px}.pp-title{font-weight:700;font-size:14px;margin-bottom:3px}.pp-line{font-size:12.5px;color:var(--text-2)}.pp-link{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-weight:600;font-size:12.5px}.home{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(440px,1fr) auto;height:calc(100vh - var(--topbar))}.home-map{grid-column:1;grid-row:1;border-radius:0;border:0;box-shadow:none;overflow:hidden}.home-side{grid-column:2;grid-row:1 / span 2;background:#fff;border-left:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.side-card{padding:14px;box-shadow:none}.side-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.side-head a,.side-head .link{font-size:12.5px;font-weight:600}.proj-row,.intv-row{display:flex;gap:12px;align-items:center;width:100%;border:0;background:none;padding:9px 4px;border-radius:8px;text-align:left}.proj-row:hover,.intv-row:hover{background:#f6f8fb}.proj-row+.proj-row,.intv-row+.intv-row{border-top:1px solid #f0f2f6}.proj-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:20px;flex-shrink:0}.proj-icon.lg{width:48px;height:48px;font-size:24px}.proj-main{display:flex;flex-direction:column;flex:1;min-width:0}.proj-main b{font-size:13.5px}.proj-main small{color:var(--muted);font-size:12px}.proj-bar{display:flex;align-items:center;gap:8px;margin-top:6px}.proj-bar em{font-style:normal;font-size:12px;color:var(--text-2);font-weight:600;width:32px;text-align:right}.intv-icon{width:38px;height:38px;border-radius:10px;background:var(--primary-50);color:var(--primary);display:grid;place-items:center;font-size:18px}.intv-row span:last-child{display:flex;flex-direction:column}.intv-row b{font-size:13.5px}.intv-row small{color:var(--muted);font-size:12px}.kpis{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:12px;background:var(--bg)}.kpi{display:flex;align-items:center;gap:12px;padding:12px 14px}.kpi-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:22px;flex-shrink:0}.kpi-icon img{width:30px;height:30px}.kpi-main{display:flex;flex-direction:column;min-width:0}.kpi-main small{color:var(--text-2);font-size:12.5px;line-height:1.2}.kpi-val{display:flex;align-items:baseline;gap:10px}.kpi-val b{font-size:21px;font-weight:750;letter-spacing:-.01em}.kpi-val em{font-style:normal;color:var(--success);font-weight:700;font-size:12.5px}.kpi-main .kpi-note{font-size:11px;color:var(--muted)}.mappage{position:relative;height:calc(100vh - var(--topbar))}.mappage.has-panel .map-ctrls{right:412px}.mappage.has-panel .map-scale{right:414px}.mappage.has-panel .map-attrib{right:408px}.edit-toolbar{position:absolute;bottom:34px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:8px;background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);padding:4px}.mappage.has-panel .edit-toolbar{left:calc(50% - 200px)}.et-buttons{display:flex;gap:2px}.et-buttons button{display:inline-flex;align-items:center;gap:7px;border:0;background:none;height:34px;padding:0 12px;border-radius:7px;font-weight:600;font-size:13px;color:var(--text-2)}.et-buttons button svg{font-size:17px}.et-buttons button:hover{background:#f2f5f9}.et-buttons button.on{background:var(--primary);color:#fff}.et-sym{display:flex;align-items:center;gap:6px;padding-right:4px;border-left:1px solid var(--border);padding-left:10px}.et-sym img{width:24px;height:24px}.et-sym img.line{width:32px;height:12px}.et-sym select{height:32px;width:190px;font-size:13px}.map-hint{position:absolute;bottom:88px;left:50%;transform:translate(-50%);z-index:6;background:#0f1f3deb;color:#fff;border-radius:9px;padding:7px 8px 7px 14px;display:flex;align-items:center;gap:8px;font-size:13px;box-shadow:var(--shadow-lg);max-width:calc(100% - 24px);flex-wrap:wrap}.mappage.has-panel .map-hint{left:calc(50% - 200px)}.map-hint button{border:0;background:#ffffff24;color:#fff;height:28px;padding:0 10px;border-radius:6px;font-weight:600;font-size:12.5px;display:inline-flex;align-items:center;gap:5px}.map-hint button:hover{background:#ffffff40}.map-empty{position:absolute;bottom:40px;left:50%;transform:translate(-50%);background:#fff;padding:10px 16px;border-radius:9px;box-shadow:var(--shadow-lg);z-index:5;display:flex;align-items:center;gap:8px}.feature-panel{position:absolute;top:0;right:0;bottom:0;width:400px;background:#fff;border-left:1px solid var(--border);box-shadow:-8px 0 24px #0f1f3d14;z-index:8;display:flex;flex-direction:column}.fp-head{display:flex;align-items:center;gap:12px;padding:14px 12px 12px 16px}.fp-head img{width:38px;height:38px}.fp-head img.fp-line{width:46px;height:16px}.fp-title{flex:1;min-width:0}.fp-title h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-title small{color:var(--muted);font-size:12.5px}.feature-panel .tabs{padding:0 12px}.fp-body{flex:1;overflow-y:auto;padding:16px}.fp-body .form-grid{grid-template-columns:1fr 1fr}.info-list{display:grid;grid-template-columns:112px 1fr;gap:9px 12px;margin:0;font-size:13.5px}.info-list dt{color:var(--muted);font-weight:500}.info-list dd{margin:0;min-width:0;overflow-wrap:anywhere}.fp-actions{display:flex;gap:8px;margin-top:22px;flex-wrap:wrap}.sym-select{display:flex;align-items:center;gap:8px}.sym-select img{width:26px;height:26px;flex-shrink:0}.upload-box{background:#f6f9fd;border:1px dashed #bfd0ea;border-radius:10px;padding:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}.upload-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.upload-row label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--text-2)}.upload-row select{height:34px;font-size:13px}.upload-dest{display:flex;gap:7px;align-items:flex-start;font-size:12px;color:var(--text-2);overflow-wrap:anywhere}.upload-dest svg{color:#e0a100;margin-top:1px}.upload-btns{display:flex;gap:8px;flex-wrap:wrap}.upload-btns .btn{flex:1}.upload-progress{position:relative;height:24px;background:#e3eaf4;border-radius:6px;overflow:hidden}.upload-progress div{position:absolute;inset:0 auto 0 0;background:#bcd3f7;transition:width .2s}.upload-progress span{position:relative;font-size:12px;font-weight:600;padding-left:8px;line-height:24px}.photo-group{margin-bottom:16px}.photo-group-head{display:flex;align-items:center;gap:8px;font-weight:650;font-size:13px;margin-bottom:8px}.photo-group-head small{color:var(--muted);font-weight:500}.photo-group-head span{margin-left:auto;background:#eef1f6;border-radius:99px;padding:0 8px;font-size:12px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.photo-tile{border:1px solid var(--border);background:#fff;border-radius:8px;padding:0;overflow:hidden;display:flex;flex-direction:column;text-align:left}.photo-tile:hover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-50)}.photo-tile img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:#eef1f5}.photo-tile span{font-size:11px;padding:5px 7px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Menlo,monospace;direction:rtl;text-align:left}.lightbox{position:fixed;inset:0;z-index:150;background:#080e1cf0;display:flex;align-items:center;justify-content:center;padding:70px 70px 60px}.lightbox>img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px}.lb-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:12px 16px;color:#fff}.lb-name{display:flex;flex-direction:column;min-width:0;flex:1}.lb-name b{font-family:ui-monospace,Menlo,monospace;overflow-wrap:anywhere}.lb-name small{color:#9fb0c8;overflow-wrap:anywhere}.lb-actions{display:flex;gap:4px}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:#ffffff1f;color:#fff;font-size:24px;display:grid;place-items:center}.lb-nav:hover{background:#ffffff38}.lb-nav.prev{left:14px}.lb-nav.next{right:14px}.lb-meta{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:18px;flex-wrap:wrap;padding:14px;color:#c6d2e2;font-size:12.5px}.lb-meta a{color:#9cc3ff;display:inline-flex;align-items:center;gap:4px}.modal-backdrop{position:fixed;inset:0;z-index:200;background:#0f1f3d73;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;overflow-y:auto}.modal{background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:480px;display:flex;flex-direction:column;max-height:88vh}.modal.wide{max-width:720px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 14px 10px 20px}.modal-body{padding:6px 20px 20px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px 16px;border-top:1px solid var(--border)}.confirm-msg{margin:0;color:var(--text-2)}.toasts{position:fixed;top:calc(var(--topbar) + 12px);left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:#0f1f3d;color:#fff;padding:10px 16px;border-radius:9px;box-shadow:var(--shadow-lg);font-weight:550;font-size:13.5px;max-width:90vw;animation:toast-in .2s ease-out}.toast.success{background:#166534}.toast.error{background:#b91c1c}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}.project-card{display:flex;flex-direction:column;gap:14px;padding:16px;text-align:left;transition:border-color .15s,box-shadow .15s}.project-card:hover{border-color:#b9cbe8;box-shadow:var(--shadow-lg)}.pc-head{display:flex;gap:12px;align-items:center}.pc-title{flex:1;min-width:0;display:flex;flex-direction:column}.pc-title b{font-size:15px}.pc-title small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-step{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:var(--text-2)}.step-dots{display:flex;gap:5px}.step-dots span{width:22px;height:5px;border-radius:99px;background:#e3e8ef}.step-dots span.done{background:#93b4ea}.step-dots span.cur{background:var(--primary)}.pc-progress{display:flex;align-items:center;gap:10px}.pc-progress em{font-style:normal;font-weight:700;font-size:13px;width:38px;text-align:right}.pc-stats{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);border-top:1px solid #eef1f5;padding-top:12px}.pc-stats span{display:inline-flex;align-items:center;gap:5px}.stepper-card{padding:18px 20px;display:flex;flex-direction:column;gap:16px}.stepper{display:flex}.stp{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;border:0;background:none;position:relative;padding:0}.stp:before{content:"";position:absolute;top:15px;left:calc(-50% + 18px);right:calc(50% + 18px);height:2px;background:#e3e8ef}.stp:first-child:before{display:none}.stp.done:before,.stp.cur:before{background:var(--primary)}.stp-dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:#fff;border:2px solid #d5dce6;color:var(--muted);position:relative;z-index:1}.stp.done .stp-dot{background:var(--primary);border-color:var(--primary);color:#fff}.stp.cur .stp-dot{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 4px var(--primary-50)}.stp-label{font-size:12.5px;font-weight:600;color:var(--muted)}.stp.cur .stp-label{color:var(--primary)}.stp.done .stp-label{color:var(--text-2)}.stp:hover .stp-dot{border-color:var(--primary)}.stepper-progress{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-2)}.stepper-progress b{width:44px;text-align:right}.overview{display:grid;grid-template-columns:360px 1fr;gap:16px}.ov-info{padding:18px;display:flex;flex-direction:column;gap:14px}.ov-desc{margin:0;color:var(--text-2);font-size:13.5px}.ov-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ov-stats div{background:#f6f8fb;border-radius:9px;padding:10px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.ov-stats svg{color:var(--primary);font-size:17px}.ov-stats b{font-size:19px}.ov-stats small{color:var(--muted);font-size:11.5px}.ov-map{position:relative;height:460px;overflow:hidden}.ov-map .mapview{border-radius:var(--radius)}.ov-open{position:absolute;left:12px;top:12px;z-index:6;box-shadow:var(--shadow)}.folder{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}.folder-tree{padding:12px;display:flex;flex-direction:column;gap:2px}.ft-root,.ft-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;font-size:13px;border:0;background:none;text-align:left;width:100%}.ft-root{font-weight:650;overflow-wrap:anywhere}.ft-root svg,.ft-item svg{color:#e0a100;font-size:18px}.ft-item{padding-left:30px}.ft-item span,.ft-root span{flex:1;min-width:0}.ft-item em,.ft-root em{font-style:normal;font-size:12px;color:var(--muted);background:#eef1f6;border-radius:99px;padding:0 7px}.ft-item:hover{background:#f4f6fa}.ft-item.on{background:var(--primary-50);color:var(--primary);font-weight:650}.folder-tree .btn{margin-top:12px}.folder-content{padding:16px;min-height:300px}.fc-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.fc-path{display:flex;align-items:center;gap:8px}.fc-path svg{color:#e0a100;font-size:18px}.folder-content .photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.sym-cat{margin-bottom:16px;overflow-x:auto}.sym-cat h3{padding:14px 16px 6px}.sym-cat .table{table-layout:fixed;min-width:720px}.sym-cat td:nth-child(1){width:64px}.sym-cat td:nth-child(2){width:26%}.sym-cat td:nth-child(3){width:12%}.sym-cat td:nth-child(5){width:15%}.sym-cat td:nth-child(6){width:96px}.sym-prev{width:60px}.symbol-editor{display:grid;grid-template-columns:1fr 230px;gap:20px}.se-form{min-width:0}.se-label{font-size:12.5px;font-weight:600;color:var(--text-2);margin:16px 0 7px}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:5px}.icon-grid button{height:38px;border:1px solid var(--border);background:#fff;border-radius:8px;font-size:19px;display:grid;place-items:center;color:var(--text-2)}.icon-grid button.on{border-color:var(--primary);background:var(--primary-50);color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.no-icon{font-size:15px;color:var(--muted)}.color-pick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.color-pick button{width:24px;height:24px;border-radius:6px;border:1px solid rgba(15,31,61,.15);padding:0}.color-pick button.on{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--primary)}.color-pick input[type=color]{width:32px;height:26px;border:1px solid var(--border-2);border-radius:6px;padding:1px;background:#fff}.se-preview{display:flex;flex-direction:column;gap:10px}.se-preview .se-label{margin-top:0}.pv{height:120px;border-radius:10px;display:grid;place-items:center;position:relative}.pv span{position:absolute;left:8px;bottom:6px;font-size:11px;font-weight:600}.pv.sat{background:radial-gradient(circle at 30% 30%,#5f7354,#3a4a35 60%,#2c3828)}.pv.sat span{color:#e5ecdd}.pv.light{background:#f2efe9;border:1px solid var(--border)}.pv.light span{color:var(--muted)}.pv-line{width:200px}.pv-real{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:10px}.account{padding:20px;max-width:720px;display:flex;flex-direction:column;gap:16px}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:radial-gradient(1200px 600px at 10% -10%,#dbe8ff 0,transparent 60%),radial-gradient(900px 500px at 110% 110%,#d9f0ff 0,transparent 55%),var(--bg)}.login-card{width:100%;max-width:400px;background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);padding:30px;display:flex;flex-direction:column;gap:16px}.login-card h1{font-size:20px;margin-top:10px}.login-tag{margin:-8px 0 4px;color:var(--muted);font-size:13.5px}.login-card .btn{height:42px;margin-top:4px}.login-foot{color:var(--muted);font-size:12.5px;margin-top:18px}@media(max-width:1280px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.home{grid-template-columns:minmax(0,1fr) 270px}}@media(max-width:1000px){:root{--sidebar: 0px;--topbar: 56px}.sidebar{width:260px;transform:translate(-100%);transition:transform .2s;box-shadow:var(--shadow-lg)}.sidebar.open{transform:none}.sidebar-backdrop.show{display:block;position:fixed;inset:0;background:#0f1f3d66;z-index:49}.main{margin-left:0}.topbar{padding:0 10px;gap:8px}.menu-btn,.topbar-logo{display:inline-flex}.topbar-logo .logo-name{font-size:18px}.topbar-logo .logo-sub,.topbar-logo .logo-mark{display:none}.user-meta,.user-btn>svg{display:none}.home{display:flex;flex-direction:column;height:auto}.home-map{height:62vh;min-height:380px}.home-side{border-left:0;padding:12px;order:3}.kpis{order:2}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.overview,.folder{grid-template-columns:1fr}.mappage{height:calc(100dvh - var(--topbar))}.mappage.has-panel .map-scale{display:none}.feature-panel{top:auto;left:0;width:auto;height:58%;border-left:0;border-top:1px solid var(--border);border-radius:14px 14px 0 0;box-shadow:0 -8px 24px #0f1f3d26}.mappage.has-panel .map-ctrls{right:12px}.mappage.has-panel .map-scale{right:14px;bottom:calc(62% + 22px)}.mappage.has-panel .map-attrib{display:none}.mappage.has-panel .edit-toolbar,.mappage.has-panel .map-hint{left:50%}.page{padding:16px 14px 32px}}@media(max-width:700px){.search{display:none}.topbar-actions{margin-left:auto}.mappage.has-panel:not(.editing) .edit-toolbar{display:none}.mappage.editing .feature-panel,.et-buttons button span{display:none}.et-buttons button{padding:0 11px}.et-sym select{width:140px}.basemap-tabs button{padding:0 9px;font-size:12.5px}.layer-panel{top:50px;width:220px}.form-grid,.upload-row,.fp-body .form-grid,.symbol-editor{grid-template-columns:1fr}.lightbox{padding:64px 8px 70px}.lb-nav{display:none}.project-grid{grid-template-columns:1fr}.stp-label{font-size:11px}.kpi-main b{font-size:18px}}.demo-banner{position:fixed;left:50%;bottom:8px;transform:translate(-50%);z-index:90;background:#0f1f3de0;color:#fff;font-size:12px;padding:5px 12px;border-radius:99px;pointer-events:none;white-space:nowrap;max-width:96vw;overflow:hidden;text-overflow:ellipsis}@media(max-width:1000px){.demo-banner{bottom:auto;top:calc(var(--topbar) + 4px)}}.metre-panel{display:flex;flex-direction:column;gap:14px}.metre-form{background:#f6f9fd;border:1px dashed #bfd0ea;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px}.metre-form label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--text-2);min-width:0}.metre-form select,.metre-form input{height:34px;font-size:13px}.mf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mf-row:has(.mf-grow){grid-template-columns:1fr}.qty-input{display:flex;align-items:center;gap:6px}.qty-input input{font-weight:700;font-size:15px!important}.qty-input em{font-style:normal;color:var(--muted);font-weight:600;min-width:26px}.mf-hint{font-size:12.5px;align-self:flex-start}.metre-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.metre-lines li{display:flex;gap:10px;align-items:flex-start;padding:10px 2px;border-bottom:1px solid #eef1f5}.metre-lines li.pending{background:#fffbeb}.ml-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ml-main b{font-size:13px;font-weight:600}.ml-main small{color:var(--muted);font-size:11.5px}.ml-comment{color:var(--text-2)!important;font-style:italic}.ml-qty{text-align:right;display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.ml-qty b{font-size:15px}.ml-qty small{color:var(--muted);font-size:11.5px}.ml-btns{display:flex}.ml-btns .icon-btn{width:30px;height:30px;font-size:16px}.ml-edit{flex:1;display:flex;flex-direction:column;gap:8px}.ml-actions{display:flex;gap:8px;justify-content:flex-end}.metre-total{text-align:right;font-size:13px;color:var(--text-2)}.metre-phase{margin-bottom:0}.metre-note{margin:0;font-size:12.5px}.metre-validate,.metre-status,.page-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.metre-status{justify-content:space-between;background:#f6f9fd;border:1px solid #dbe6f5;border-radius:10px;padding:10px 12px;margin:12px 0;font-size:13px}.metre-status>span{color:var(--text-2)}.ecart{font-weight:600;font-variant-numeric:tabular-nums}.ecart.up{color:#dc2626}.ecart.down{color:#059669}.ecart.zero{color:var(--muted)}.table-wrap{overflow-x:auto}.metre-table td.num,.metre-table th.num,.table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.metre-table .cat-row td{background:#f6f8fb;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-2)}.metre-table tfoot td{border-top:2px solid var(--border);font-weight:600;padding:12px 14px}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.metre-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.metre-kpis div{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column}.metre-kpis small{color:var(--muted);font-size:12.5px}.metre-kpis b{font-size:20px;font-variant-numeric:tabular-nums}.project-metre,.project-team{padding:16px}.sub-title{margin:22px 0 8px;font-size:14px}.metre-feed{list-style:none;margin:0;padding:0}.metre-feed li{display:grid;grid-template-columns:140px 1fr auto 190px;gap:12px;padding:8px 0;border-bottom:1px solid #eef1f5;font-size:13px;align-items:baseline}.metre-feed small{color:var(--muted);text-align:right}tr.inactive td{opacity:.55}.sh-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-card{border:1px solid var(--border-2);border-radius:10px;padding:10px 12px;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;cursor:pointer}.role-card input{grid-row:span 2;margin-top:3px;accent-color:var(--primary)}.role-card small{color:var(--muted);font-size:12px}.role-card.on{border-color:var(--primary);background:var(--primary-50);box-shadow:0 0 0 1px var(--primary)}.role-card.disabled{cursor:default;opacity:.75}.check-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;padding:8px}.check-list label{display:flex;gap:9px;align-items:flex-start;padding:6px 8px;border-radius:7px;cursor:pointer}.check-list label:hover{background:#f4f6fa}.check-list input{margin-top:3px}.check-list span{display:flex;flex-direction:column}.check-list small{color:var(--muted);font-size:12px}.proj-chips{display:flex;flex-wrap:wrap;gap:4px;max-width:320px}.state{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600}.state.ok{color:var(--success)}.state.off{color:var(--muted)}.secret-box{margin-top:14px;background:#f6f8fb;border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.secret-box div{display:flex;flex-direction:column;gap:4px}.secret-box small{color:var(--muted);font-size:12px}.secret-box code{font-size:15px;padding:4px 8px}.member-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.member-list li{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:10px}.member-list span:last-child{display:flex;flex-direction:column}.member-list small{color:var(--muted);font-size:12px}.avatar.sm{width:30px;height:30px;font-size:11px}.stp:disabled{cursor:default}@media(max-width:700px){.metre-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.role-grid{grid-template-columns:1fr}.metre-feed li{grid-template-columns:1fr auto}.metre-feed li span,.metre-feed li small{grid-column:1 / -1;text-align:left}}.project-plans{padding:16px}.project-plans .upload-progress{margin-bottom:12px}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.plan-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;background:#fff}.plan-thumb{position:relative;border:0;padding:0;background:#eef1f5;aspect-ratio:4 / 3;overflow:hidden}.plan-thumb img{width:100%;height:100%;object-fit:cover;display:block}.plan-state{position:absolute;left:8px;top:8px;background:#0f1f3dd1;color:#fff;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:99px}.plan-state.ok{background:#166534e0}.plan-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.plan-body>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-body small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.plan-opacity{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-2);margin-top:4px}.plan-actions{display:flex;gap:6px;align-items:center;margin-top:6px;flex-wrap:wrap}.plan-actions .icon-btn{margin-left:auto}.plan-actions .icon-btn+.icon-btn{margin-left:0}.calage{position:fixed;inset:0;z-index:120;background:var(--bg);display:flex;flex-direction:column}.calage-head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--border);flex-wrap:wrap}.ch-title{display:flex;flex-direction:column;min-width:0;margin-right:auto}.ch-title h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}.ch-title small{color:var(--muted);font-size:12px}.ch-status{font-size:13px;color:var(--text-2)}.ch-opacity{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2)}.ch-opacity input{width:110px}.calage-help{background:#fffbeb;border-bottom:1px solid #fde68a;padding:10px 18px;font-size:13px;color:#713f12}.calage-help ol{margin:6px 0;padding-left:20px;display:grid;gap:3px}.calage-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--border)}.img-pane,.map-pane{position:relative;overflow:hidden;background:#d8dde4;min-height:0}.img-pane{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;background:repeating-conic-gradient(#d5dae2 0% 25%,#e3e7ed 0% 50%) 50% / 24px 24px}.img-pane img{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;pointer-events:none;box-shadow:0 2px 12px #00000040}.pane-ctrls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;background:#fff;border-radius:8px;box-shadow:var(--shadow);overflow:hidden;z-index:3}.pane-ctrls button{width:36px;height:36px;border:0;background:#fff;display:grid;place-items:center;font-size:17px}.pane-ctrls button+button{border-top:1px solid var(--border)}.pane-label{position:absolute;left:12px;bottom:10px;background:#0f1f3dcc;color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;z-index:3;pointer-events:none;text-transform:uppercase;letter-spacing:.05em}.map-pane .pane-label{bottom:30px}.map-pane .basemap-tabs{top:12px}.calage-mark{position:absolute;z-index:4;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:#f97316;color:#fff;font-weight:800;font-size:12.5px;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 1px 4px #00000073;pointer-events:none}.calage-mark:after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px;background:#fff;border-radius:50%;display:none}.calage-mark.active{background:#2563eb;box-shadow:0 0 0 4px #2563eb59,0 1px 4px #00000073}.calage-foot{background:#fff;border-top:1px solid var(--border);padding:10px 16px;display:flex;flex-direction:column;gap:8px}.cf-hint{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--text)}.cf-hint svg{color:var(--primary);font-size:18px}.cf-points{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.cf-point{display:flex;align-items:center;border:1px solid var(--border-2);border-radius:9px;padding-right:2px}.cf-point.partial{border-color:#fdba74;background:#fff7ed}.cf-point.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.cf-sel{display:flex;align-items:center;gap:8px;border:0;background:none;padding:5px 4px 5px 10px}.cf-sel b{width:22px;height:22px;border-radius:50%;background:#f97316;color:#fff;display:grid;place-items:center;font-size:12px}.cf-point.active .cf-sel b{background:#2563eb}.cf-sel small{color:var(--muted);font-size:12px;white-space:nowrap}.cf-point .icon-btn{width:28px;height:28px;font-size:15px}@media(max-width:900px){.calage-body{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.ch-title h2{max-width:60vw;font-size:15px}.ch-status{order:5;width:100%;font-size:12.5px}.calage-head .btn{height:32px;padding:0 10px}}.page.wide{max-width:1600px}.dropzone{padding:36px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;border:2px dashed #bfd0ea;background:#f8fbff;box-shadow:none}.dropzone.drag{border-color:var(--primary);background:var(--primary-50)}.dz-icon{font-size:40px;color:var(--primary)}.dropzone p{margin:0}.dz-progress{width:min(420px,100%)}.dz-formats{list-style:none;padding:0;margin:14px 0 4px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(820px,100%);text-align:left}.dz-formats li{background:#fff;border:1px solid var(--border);border-radius:9px;padding:8px 12px;display:flex;flex-direction:column}.dz-formats small{color:var(--muted);font-size:12px}.dz-note{max-width:620px;font-size:13px}.import-config{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}.ic-left{display:flex;flex-direction:column;gap:12px;min-width:0}.ic-right{position:sticky;top:calc(var(--topbar) + 12px);display:flex;flex-direction:column;gap:12px;min-width:0}.ic-file{display:flex;align-items:center;gap:12px;padding:12px 14px}.ic-file>svg{font-size:24px;color:var(--primary)}.ic-file div{flex:1;min-width:0;display:flex;flex-direction:column}.ic-file small{color:var(--muted)}.ic-file b{overflow-wrap:anywhere}.ic-dest{padding:14px;display:flex;flex-direction:column;gap:12px}.ic-dest .seg.full{margin:0}.ic-title{margin:6px 0 -2px}.note{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;font-size:13px;flex-wrap:wrap}.note svg{flex-shrink:0;font-size:17px}.note span{flex:1;min-width:200px}.note.warn{background:#fffbeb;border:1px solid #fde68a;color:#78350f}.note.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#14532d}.layer-card{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.layer-card.off{opacity:.65;box-shadow:none}.lc-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.lc-include{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:14.5px}.lc-body{display:flex;flex-direction:column;gap:10px}.lc-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lc-row select{width:auto;min-width:0;flex:1 1 180px;height:34px;font-size:13px}.lc-label{font-size:12.5px;font-weight:600;color:var(--text-2);min-width:120px}.lc-map{display:flex;flex-direction:column;gap:8px}.lc-valuemap{border:1px solid var(--border);border-radius:9px;padding:6px 10px;display:flex;flex-direction:column;max-height:260px;overflow-y:auto}.lc-vm-row{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid #f0f2f6;font-size:13px}.lc-vm-row:last-child{border-bottom:0}.lc-vm-row>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.lc-vm-row.other>span:first-child{font-family:inherit;color:var(--muted)}.lc-vm-row small{color:var(--muted)}.sym-select{display:inline-flex;align-items:center;gap:6px;flex:1 1 200px;min-width:0}.sym-select img{width:22px;height:22px;flex-shrink:0}.sym-none{width:22px;height:22px;border:1px dashed var(--border-2);border-radius:50%;flex-shrink:0}.sym-select select{height:32px;font-size:13px}.ok-note{color:var(--success);font-size:12px}.warn-note{color:#b45309;font-size:12px}.ic-preview{height:520px;overflow:hidden;position:relative}.ic-empty{position:absolute;inset:auto 12px 40px;text-align:center;background:#ffffffeb;padding:10px;border-radius:8px;font-size:13px;z-index:5}.ic-submit{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.import-result{padding:30px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.ir-icon{font-size:40px;color:#fff;background:var(--success);border-radius:50%;padding:8px;box-sizing:content-box}.import-result p{margin:0;max-width:620px}.ir-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}.history{margin-top:18px;padding:14px 0 4px}.history h3{display:flex;align-items:center;gap:8px;padding:0 16px 8px}.exporter{display:flex;flex-direction:column;gap:16px}.ex-options{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.ex-card{display:flex;align-items:center;gap:12px;padding:14px 16px;color:var(--text);transition:border-color .15s,box-shadow .15s}.ex-card:hover{border-color:#b9cbe8;box-shadow:var(--shadow-lg)}.ex-card>svg:first-child{font-size:24px;color:var(--primary)}.ex-card span{flex:1;display:flex;flex-direction:column}.ex-card small{color:var(--muted);font-size:12.5px}.ex-dl{color:var(--muted)}.attr-key{font-family:ui-monospace,Menlo,monospace;font-size:12px;overflow:hidden;text-overflow:ellipsis}.src-pane{background:#fbfcfe;cursor:crosshair}.src-pane canvas{position:absolute;inset:0}@media(max-width:1100px){.import-config{grid-template-columns:1fr}.ic-right{position:static;order:-1}.ic-preview{height:360px}}@media(max-width:700px){.dz-formats,.ex-options{grid-template-columns:1fr}.lc-label{min-width:0;width:100%}}.sym-fiche{margin-left:8px;font-size:11px;font-weight:650;color:#92400e;background:#fef3c7;border-radius:99px;padding:1px 7px}.fiche-panel{display:flex;flex-direction:column;gap:14px}.fiche-create{margin-top:12px}.fiche-head{display:flex;flex-direction:column}.fiche-head small{color:var(--muted);font-size:12.5px}.fiche-draft{display:flex;align-items:center;gap:8px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:9px;padding:8px 8px 8px 12px;font-size:12.5px}.fiche-draft span{flex:1}.fiche-draft .btn{height:30px}.fiche-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.fiche-kpis div{--c: var(--text);border:1px solid var(--border);border-radius:9px;padding:8px 10px;display:flex;flex-direction:column;min-width:0}.fiche-kpis b{color:var(--c);font-size:15px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.fiche-kpis small{color:var(--muted);font-size:11.5px}.fiche-view{display:flex;flex-direction:column;gap:12px}.fv-title{margin:6px 0 -2px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.masque-view{border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.mv-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.mv-head small{color:var(--muted)}.alv-grid{display:grid;gap:6px}.alv-grid.small{gap:4px}.alv{--c: #16a34a;aspect-ratio:1;border-radius:50%;border:3px solid var(--c);background:#fff;background:color-mix(in srgb,var(--c) 16%,#fff);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;min-width:0;line-height:1.1;color:var(--text)}.alv b{font-size:13px}.alv small{font-size:10px;color:var(--text-2)}.alv-grid.small .alv{border-width:2px}.alv-grid.small .alv b{font-size:11px}button.alv:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 30%,transparent)}.alv.sel{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--primary)}.alv-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--text-2)}.alv-legend span{display:inline-flex;align-items:center;gap:5px}.alv-legend i,.alv-detail i{width:10px;height:10px;border-radius:50%;background:var(--c, #16a34a);display:inline-block;flex-shrink:0}.alv-detail{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12.5px}.alv-detail li{display:flex;gap:7px;align-items:baseline}.alv-detail b{min-width:16px}.alv-detail span{color:var(--text-2);overflow-wrap:anywhere}.fiche-modal{max-width:860px}.fiche-section{margin:20px 0 10px;font-size:14px;padding-bottom:6px;border-bottom:1px solid var(--border)}.fiche-section:first-child{margin-top:4px}.fiche-editor .muted.small{margin:-4px 0 10px}.check-field{flex-direction:row;align-items:center;gap:8px;font-size:13px;font-weight:550;color:var(--text-2);padding-top:22px}.masque-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.masque-tabs button{border:1px solid var(--border-2);background:#fff;border-radius:9px;padding:6px 12px;display:flex;flex-direction:column;align-items:flex-start;font-weight:650;min-width:76px}.masque-tabs button small{font-weight:500;color:var(--muted);font-size:11.5px}.masque-tabs button.on{border-color:var(--primary);background:var(--primary-50)}.masque-tabs button.add{flex-direction:row;align-items:center;gap:5px;color:var(--primary);border-style:dashed}.masque-editor{border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:16px}.nb-row{display:flex;gap:8px}.nb-row input{flex:1}.nb-row .nb-select{width:46%;flex-shrink:0}.alv-zone{display:flex;flex-direction:column;gap:8px}.alv-zone-head{display:flex;gap:10px;align-items:baseline}.alv-zone-head small{color:var(--muted)}.alv-form{background:#f6f9fd;border:1px solid #d6e2f3;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:12px}.alv-form-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}.alv-form-head .link{font-size:12.5px}.etat-seg{display:flex;flex-wrap:wrap;gap:6px}.etat-seg button{--c: #16a34a;border:2px solid var(--border-2);border:2px solid color-mix(in srgb,var(--c) 45%,#fff);background:#fff;border-radius:99px;height:34px;padding:0 14px;font-weight:600;font-size:13px;color:var(--text-2)}.etat-seg button.on{background:var(--c);border-color:var(--c);color:#fff}.alv-nav{display:flex;justify-content:space-between;gap:8px}.masque-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.cables-portes{display:flex;flex-direction:column;gap:12px}.cable-card{border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:12px}.cc-head{display:flex;align-items:center;gap:8px}.cc-head .icon-btn{margin-left:auto}.cp-actions{display:flex;gap:8px;flex-wrap:wrap}.hist-list{list-style:none;margin:0;padding:0}.hist-list li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eef1f5}.hist-list li span{display:flex;flex-direction:column;min-width:0}.hist-list small{color:var(--muted);font-size:12.5px}.hist-head{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;margin-bottom:12px}.project-fiches .table td{font-size:13px}@media(max-width:700px){.fiche-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.nb-row{flex-direction:column}.nb-row .nb-select{width:100%}.check-field{padding-top:0}.masque-editor{padding:10px}.fiche-modal .modal-body{padding:6px 14px 16px}}@media(max-width:1000px){.modal.fiche-modal{max-height:none}}#print-root{display:none}@media print{body.printing>:not(#print-root){display:none!important}body.printing #print-root{display:block}body.printing,html:has(body.printing){background:#fff}@page{margin:12mm}.print-sheet{font-size:11.5px;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:flex;flex-direction:column;gap:10px}.print-sheet header{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid #0f1f3d;padding-bottom:8px}.print-sheet h1{font-size:18px}.print-sheet header p{margin:2px 0 0;font-weight:600}.ps-meta{display:flex;flex-direction:column;align-items:flex-end;font-size:10.5px;color:#333}.print-sheet .info-list{grid-template-columns:170px 1fr;gap:3px 12px;font-size:11.5px}.print-sheet .masque-view{break-inside:avoid}.print-sheet .fiche-kpis{grid-template-columns:repeat(4,150px)}.print-sheet footer{margin-top:12px;font-size:10px;color:#666;text-align:right}}.equip-add{position:absolute;left:0;top:0;z-index:7;width:30px;height:30px;border-radius:50%;border:2px solid #fff;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:18px;box-shadow:0 2px 8px #0f1f3d59;cursor:pointer;padding:0}.equip-add:hover{background:var(--primary-600)}.equip-section{margin-top:20px;border-top:1px solid var(--border);padding-top:14px}.equip-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.equip-section-head h3{font-size:14px;margin:0;display:flex;align-items:center;gap:6px}.equip-section-head .count{background:var(--primary-50);color:var(--primary);border-radius:99px;padding:0 7px;font-size:12px}.equip-plus{width:30px;height:30px;border-radius:50%;border:0;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:17px;cursor:pointer;padding:0}.equip-plus:hover{background:var(--primary-600)}.equip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.equip-list button{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:#f7f9fc;border:1px solid var(--border);border-radius:9px;padding:7px 9px;cursor:pointer}.equip-list button:hover{border-color:var(--primary)}.equip-list img{width:24px;height:24px;flex-shrink:0}.equip-list .equip-txt{flex:1;min-width:0;display:flex;flex-direction:column}.equip-list b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equip-list small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equip-none{font-size:13px;margin:4px 0 0}.equip-ico{width:18px;height:18px;vertical-align:-4px}.equip-host{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);background:#f5f8fc;border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:12px}.equip-host img{width:24px;height:24px}.equip-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:6px 0 14px}.equip-types button{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--border-2);background:#fff;border-radius:9px;padding:7px 8px;font-size:12.5px;cursor:pointer;line-height:1.25}.equip-types button.on{border-color:var(--primary);background:var(--primary-50);box-shadow:0 0 0 1px var(--primary) inset}.equip-types img{width:22px;height:22px;flex-shrink:0}.equip-empty p{margin:0 0 8px}.equip-toggle{margin-top:6px}.equip-toggle .check{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--text-2);cursor:pointer}.equip-toggle .check input{margin-top:3px}.params-editor{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.param-row{display:grid;grid-template-columns:minmax(0,1.4fr) 120px minmax(0,1fr) auto;gap:6px;width:100%;align-items:center}.param-row input,.param-row select{height:32px;font-size:13px;min-width:0}.param-btns{display:flex;gap:2px}@media(max-width:760px){.param-row,.equip-types{grid-template-columns:1fr 1fr}}.map-ctrl-group button.on{color:var(--primary);background:var(--primary-50)}.mapview.phone-layers>.basemap-tabs,.mapview.phone-layers>.layer-panel{display:none}.layer-sheet-backdrop{position:absolute;inset:0;z-index:20;background:#0f1f3d59}.layer-sheet{position:absolute;left:0;right:0;bottom:0;z-index:21;max-height:78%;display:flex;flex-direction:column;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #0f1f3d33;padding-bottom:env(safe-area-inset-bottom,0px)}.ls-head{display:flex;align-items:center;justify-content:space-between;padding:12px 10px 4px 18px}.ls-head h2{font-size:17px;margin:0}.ls-body{overflow-y:auto;padding:0 18px 18px;-webkit-overflow-scrolling:touch}.ls-body .lp-section{padding-top:8px}.basemap-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.basemap-grid button{height:40px;border:1px solid var(--border-2);border-radius:9px;background:#fff;font-size:13px;font-weight:600;color:var(--text-2);padding:0 4px}.basemap-grid button.on{border-color:var(--primary);background:var(--primary-50);color:var(--primary)}.layer-panel.embedded{position:static;width:auto;max-height:none;box-shadow:none;padding:0;border-radius:0;overflow:visible}.layer-panel.embedded .lp-row{padding:8px 0;font-size:14px}.layer-panel.embedded .lp-row input{width:18px;height:18px}.layer-panel.embedded .lp-filters select{height:40px;font-size:14px}@media(max-width:700px){.map-ctrls{top:10px;right:10px;gap:8px}.map-ctrl-group button{width:42px;height:42px;font-size:20px}.map-scale{left:12px;right:auto;bottom:84px}.map-attrib{font-size:9.5px;max-width:55%;text-align:right}.mappage .edit-toolbar{bottom:calc(14px + env(safe-area-inset-bottom,0px))}.equip-add{width:36px;height:36px;font-size:20px}.mappage.has-panel .map-ctrls>.map-ctrl-group:first-child{display:none}}.ban-btn{align-self:flex-start;margin-bottom:10px}.ban-lookup{padding:10px;margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.ban-lookup .nb-row{flex-wrap:wrap}.ban-lookup .nb-row input{min-width:180px}.ban-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:240px;overflow:auto}.ban-results button{width:100%;text-align:left;background:#f7f9fc;border:1px solid var(--border);border-radius:8px;padding:7px 9px;cursor:pointer;display:flex;flex-direction:column}.ban-results button:hover{border-color:var(--primary)}.ban-results small{color:var(--muted);font-size:12px}.etages-gen{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.etages-gen input{flex:1;min-width:120px}.etages-gen input:nth-child(2){flex:0 0 90px;min-width:0}.table.compact th,.table.compact td{padding:5px 7px;font-size:12.5px}.table.compact tr.total td{font-weight:700;border-top:2px solid var(--border)}.etages-table h5{margin:10px 0 4px;font-size:12.5px;color:var(--text-2)}.building-fimb{padding:14px;margin-bottom:18px}@media print{.fimb-dossier .fd-page{break-after:page;display:flex;flex-direction:column;gap:10px;min-height:260mm;position:relative;padding-bottom:26px}.fimb-dossier .fd-page:last-child{break-after:auto}.fimb-dossier h2{font-size:16px;margin:0}.fimb-dossier .fv-title{font-size:12.5px;margin:8px 0 2px;color:#0f766e;border-bottom:1px solid #cbd5e1;padding-bottom:2px}.fimb-dossier .table-wrap{overflow:visible}.fimb-dossier .table{width:100%;border-collapse:collapse}.fimb-dossier .table th,.fimb-dossier .table td{border:1px solid #94a3b8;padding:3px 5px;font-size:10.5px;text-align:left}.fimb-dossier .table th{background:#e2e8f0}.fimb-dossier .etages-table{break-inside:avoid}.fd-cover{align-items:center;text-align:center;justify-content:flex-start;gap:16px}.fd-imb{margin-top:30mm;font-size:26px;font-weight:800;letter-spacing:.02em;color:#0f1f3d}.fd-addr{display:flex;flex-direction:column;font-size:16px}.fd-cover h1{font-size:24px;display:flex;flex-direction:column;color:#0f766e;margin-top:8mm}.fd-cover h1 small{font-size:14px;color:#333;font-weight:500}.fd-cover-maps{display:flex;gap:12px;justify-content:center;margin-top:6mm}.fd-cover-maps figure,.fd-photos figure{margin:0;display:flex;flex-direction:column;gap:3px}.fd-cover-maps>figure>img{max-width:330px;max-height:250px;object-fit:cover}.fd-cover-maps figcaption,.fd-photos figcaption{font-size:10px;color:#555}.fd-meta{display:grid;grid-template-columns:auto auto;gap:3px 12px;margin:8mm auto 0;text-align:left;font-size:12px}.fd-meta dt{color:#555}.fd-meta dd{margin:0;font-weight:600}.fd-box{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;border:2px solid #0f1f3d}.fd-box>div{padding:6px 8px;border-left:1px solid #94a3b8;display:flex;flex-direction:column}.fd-box>div:first-child{border-left:0}.fd-box small{font-size:10px;color:#444}.fd-box b{font-size:16px}.fd-box span{font-size:10.5px}.print-sheet .fd-fields{grid-template-columns:128px 1fr 128px 1fr;gap:2px 10px;font-size:10.5px}.fd-fields dt{color:#444}.fd-fields dd.fd-blank{border-bottom:1px dotted #94a3b8;min-height:13px}.fd-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.fd-photos>figure>img{width:100%;height:150px;object-fit:cover}.fd-auth p{font-size:13px;line-height:1.7}.fd-sign{margin-top:14mm;display:flex;flex-direction:column;gap:10mm;font-size:13px}.fd-sign-boxes{display:grid;grid-template-columns:1fr 1fr;gap:12mm}.fd-sign-boxes div{border:1px solid #64748b;height:40mm;padding:4px 6px;font-size:11px;color:#444}.fd-foot{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:10px;font-size:9.5px;color:#666;border-top:1px solid #cbd5e1;padding-top:3px;text-align:left!important;margin:0!important}}.small{font-size:12.5px}.txt-danger{color:var(--danger)}.txt-warn{color:#d97706}.clickable{cursor:pointer}.clickable:hover td{background:#f8fafc}label.check{display:inline-flex;gap:7px;align-items:center;font-size:13px;color:var(--text-2);cursor:pointer}.chip.static{display:inline-flex;align-items:center;gap:5px;cursor:default}.chip.static:hover{border-color:var(--border-2);color:inherit}.chip.static img{width:16px;height:16px;object-fit:contain}.chip.on{background:var(--primary-50);border-color:var(--primary);color:var(--primary)}.chips label.chip{display:inline-flex;align-items:center;cursor:pointer}.chips label.chip input{display:none}.signup-hint{margin:0;font-size:13px;color:var(--muted)}.signup-question{display:flex;flex-direction:column;gap:8px;font-size:13.5px}.signup-question .seg{align-self:flex-start}.trade-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}.trade-tile{--c: var(--primary);display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border:1.5px solid var(--border-2);border-radius:10px;background:#fff;font-size:12.5px;text-align:center;line-height:1.2}.trade-tile b{font-weight:600}.trade-tile small{color:var(--muted);font-size:11px}.trade-tile:hover{border-color:var(--c)}.trade-tile.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 9%,#fff);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 25%,transparent)}.trade-tile.pack-soon{opacity:.75}.tt-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:19px;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff)}.pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.pack-card{--c: var(--primary);display:flex;flex-direction:column;gap:6px;border-top:3px solid var(--border)}.pack-card.on{border-top-color:var(--c)}.pack-card.pack-soon{background:#fafbfc}.pack-card p{margin:0}.pack-head{display:flex;align-items:center;gap:10px}.pack-head>div{flex:1}.pack-icon{--c: var(--primary);width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff)}.pack-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}.sym-off{opacity:.55}.sym-off .tag-off,.tag-off{font-size:11px;color:var(--muted);border:1px dashed var(--border-2);border-radius:99px;padding:0 7px;margin-left:6px}.modal.tb-modal{max-width:1180px;width:96vw}.tb{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;align-items:start}.tb-edit{display:flex;flex-direction:column;gap:12px;min-width:0}.tb-preview{position:sticky;top:0;min-width:0}.tb-preview>h3,.tb-preview>small{display:block;margin-bottom:8px}.tb-preview-card{border:1px solid var(--border);border-radius:10px;padding:12px;background:#fbfcfe;max-height:62vh;overflow-y:auto}.tb-section{border:1px solid var(--border);border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:8px}.tb-section-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tb-title{flex:1;min-width:160px;font-weight:600;border:1px solid var(--border-2);border-radius:8px;padding:7px 9px}.tb-btns{display:inline-flex;gap:2px;align-items:center}.tb-btns .icon-btn{width:30px;height:30px;font-size:16px}.tb-field{border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:6px;background:#fcfdff}.tb-field-main{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tb-field-main input:not([type=checkbox]){flex:1;min-width:140px}.tb-field-opts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--text-2)}.tb-field input,.tb-field select{border:1px solid var(--border-2);border-radius:7px;padding:5px 8px;background:#fff}.tb-wide{flex:1 1 100%}.tb-unit{width:130px}.tb-hint{flex:1;min-width:180px}.tb-add{display:flex;gap:6px;flex-wrap:wrap}.tb-symbols{border:1px dashed var(--border-2);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.tb-cat{display:flex;flex-direction:column;gap:4px}.sym-chip{display:inline-flex;align-items:center;gap:5px}.sym-chip img{width:16px;height:16px;object-fit:contain}.tb-starters{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.tb-starter{text-align:left;border:1.5px solid var(--border-2);border-radius:10px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:4px}.tb-starter:hover{border-color:var(--primary);background:var(--primary-50)}.tb-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.tb-card{display:flex;flex-direction:column;gap:8px}.tb-card.inactive{opacity:.6}.tb-card-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.tb-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.param-wide{flex:1 1 100%}.param-unit{width:120px}@media(max-width:900px){.tb{grid-template-columns:1fr}.tb-preview{position:static}}.et-sym select.et-trade{border:1px solid var(--border-2);border-radius:8px;padding:6px 8px;background:#fff;width:120px}.dt-popup{display:flex;flex-direction:column;gap:5px}.dt-popup p{margin:0}.dt-popup .btn{align-self:flex-start}.dt-props{display:grid;grid-template-columns:auto 1fr;gap:1px 8px;margin:0;font-size:12px}.dt-props dt{color:var(--muted)}.dt-props dd{margin:0;word-break:break-word}.dt-table td{vertical-align:top}.dt-table svg.txt-danger{margin-left:6px;vertical-align:-2px}.dt-detail .metre-kpis div{gap:3px}.dt-detail .metre-kpis div.ok{border-color:#86efac;background:#f0fdf4}.dt-detail .metre-kpis .btn{align-self:flex-start;margin-top:4px}.dt-alerts{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.dt-alert{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;font-size:13.5px;border:1px solid}.dt-alert svg{font-size:18px;margin-top:1px}.dt-alert.danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.dt-alert.warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.dt-alert.info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}.dt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px;margin-bottom:16px}.dt-grid .card h2{margin-bottom:10px}.checklist{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:7px}.checklist li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px}.checklist li svg{color:#d97706;font-size:18px;margin-top:1px}.checklist li.ok svg{color:var(--success)}.dt-map-card{display:flex;flex-direction:column}.dt-map-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.dt-map-head h2{margin:0!important}.dt-map,.emprise-map{position:relative;height:340px;border-radius:10px;overflow:hidden}.mapview.emprise-map{height:300px;min-height:300px;flex-shrink:0}.emprise-editor{flex-shrink:0}.dt-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--text-2);margin-top:8px;align-items:center}.dt-legend i{display:inline-block;width:18px;height:4px;border-radius:2px;vertical-align:middle;margin-right:4px}.dt-legend i.dash{height:0;border-top:2px dashed;background:none!important}.net-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:0}.resp-sel{border:1px solid var(--border-2);border-radius:7px;padding:4px 6px;background:#fff;font-size:13px}.resp-sel.s-attente{border-color:#fcd34d;background:#fffbeb}.resp-sel.s-concerne{border-color:#fca5a5;background:#fef2f2}.resp-sel.s-rdv{border-color:#c4b5fd;background:#f5f3ff}.dt-files{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12.5px}.dt-files li{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dt-files a{display:inline-flex;gap:4px;align-items:center;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-files .icon-btn{width:24px;height:24px;font-size:14px}.dt-other{margin:8px 0}.row-actions{white-space:nowrap}.resp-rows{display:flex;flex-direction:column;gap:8px;margin:10px 0}.resp-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:8px;align-items:center}.resp-row input,.resp-row select{border:1px solid var(--border-2);border-radius:8px;padding:7px 9px;background:#fff;min-width:0}.emprise-editor{display:flex;flex-direction:column;gap:8px}.emprise-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:900px){.dt-grid{grid-template-columns:1fr}.resp-row{grid-template-columns:1fr auto}.resp-row select{grid-column:1}}.pack-card,.tb-card,.dt-grid>.card,.dt-detail>.card{padding:16px}.dt-detail>.card{margin-bottom:16px}.pack-grid+.sub-title{margin-top:26px}.tb-field-main input:not([type=checkbox]){flex:1 1 200px;width:auto}.tb-field-main select{flex:0 0 150px;width:auto}.tb-field-opts input:not([type=checkbox]){width:auto}.tb-section-head .tb-title{width:auto}.edit-toolbar .et-buttons button span{white-space:nowrap}.pack-note{background:#f5f3ff;border:1px solid #ddd6fe;color:#5b21b6;border-radius:8px;padding:6px 9px}.pack-lock{margin-top:4px}.sync-status{position:relative}.sync-pill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:99px;border:1px solid transparent;font-weight:600;font-size:12.5px;white-space:nowrap}.sync-pill svg{font-size:15px}.sync-pill.offline{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.sync-pill.pending{background:#fef3c7;color:#92400e;border-color:#fde68a}.sync-pill.syncing{background:var(--primary-50, #eaf1fd);color:var(--primary, #1f6feb)}.sync-pill.error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.sync-pop{position:absolute;right:0;top:calc(100% + 8px);width:320px;max-width:calc(100vw - 20px);background:#fff;border:1px solid var(--border, #e3e8ef);border-radius:10px;box-shadow:var(--shadow-lg, 0 12px 32px rgba(15,31,61,.18));padding:12px;z-index:70;display:flex;flex-direction:column;gap:12px}.sync-head{display:flex;flex-direction:column;gap:2px}.sync-head small{color:var(--muted, #64748b);font-size:12.5px}.sync-title{font-size:11.5px;font-weight:700;color:var(--muted, #64748b);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.sync-title.error{color:#b91c1c}.sync-section ul{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sync-section li{display:flex;flex-direction:column;padding:6px 8px;border-radius:7px;background:#f6f8fb;font-size:13px}.sync-section li small{color:var(--muted, #64748b);font-size:11.5px}.sync-section li small.err{color:#b91c1c}.sync-actions{display:flex;gap:6px;margin-top:6px}.sync-actions button{border:1px solid var(--border-2, #d5dce6);background:#fff;border-radius:6px;height:26px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:4px}.sync-actions button:disabled{opacity:.5;cursor:not-allowed}.offline-area{position:relative}.offline-area .map-ctrl-group button.on{color:var(--primary, #1f6feb);background:var(--primary-50, #eaf1fd)}.offline-panel{position:absolute;right:calc(100% + 10px);top:0;width:280px;max-width:calc(100vw - 80px);background:#fff;border-radius:10px;box-shadow:var(--shadow-lg, 0 12px 32px rgba(15,31,61,.18));padding:10px 12px 12px;display:flex;flex-direction:column;gap:10px;z-index:9}.op-head{display:flex;justify-content:space-between;align-items:center}.op-head .icon-btn{width:28px;height:28px;font-size:16px}.op-text{margin:0;font-size:12.5px;color:var(--text-2, #334155);line-height:1.45}.op-est{margin:0;font-size:13px;font-weight:600}.op-warn{display:block;font-weight:500;color:#92400e;font-size:12px;margin-top:4px}.op-bar{height:8px;background:#e8edf3;border-radius:99px;overflow:hidden}.op-bar div{height:100%;background:var(--primary, #1f6feb);transition:width .2s}.op-row{display:flex;justify-content:space-between;align-items:center}.op-done{margin:0;font-size:12.5px;color:#166534;display:flex;gap:6px;align-items:flex-start}.op-error{margin:0;font-size:12.5px;color:#b91c1c}@media(max-width:700px){.sync-pill span{max-width:120px;overflow:hidden;text-overflow:ellipsis}}html.native{--sat: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--sab: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--sal: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--sar: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--app-h: calc(100dvh - var(--sat) - var(--sab));background:#fff;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html.native,html.native body{height:100%;overflow:hidden;overscroll-behavior:none}html.native #root{position:fixed;top:var(--sat);bottom:var(--sab);left:var(--sal);right:var(--sar);transform:translateZ(0);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--bg)}html.native .boot,html.native .app,html.native .main,html.native .login{min-height:var(--app-h)}html.native .boot{height:var(--app-h)}html.native .home,html.native .mappage{height:calc(var(--app-h) - var(--topbar))}html.native input,html.native select,html.native textarea{font-size:max(16px,1em)}
