/* ANO Site Hub V7.42 - Pro layer: unified buttons, compact header, Master Data / Security sections, drop zones, routing */
.px-ico{width:18px;height:18px;flex:none}

/* ---- compact header (more room for content) ---- */
body > header{padding-top:10px!important;padding-bottom:10px!important}
body > header .brand-title{white-space:nowrap;font-size:1.32rem!important;margin:0!important;letter-spacing:-.02em}
body > header .brand-subtitle{font-size:.72rem!important;margin:2px 0 0!important;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body > header .brand-meta{margin-top:6px!important}
body > header .brand-meta span{font-size:.62rem!important;padding:3px 9px!important}
@media (max-width:520px){body > header .brand-subtitle{display:none}}

/* ---- unified buttons ---- */
main button.secondary,#app button.secondary{background:var(--u-surface)!important;color:var(--u-primary)!important;border:1.5px solid color-mix(in srgb,var(--u-primary) 45%,var(--u-line))!important;box-shadow:none!important}
main button.secondary:hover{background:var(--u-soft)!important}
main button:disabled{opacity:.5;cursor:not-allowed}
main button{border-radius:11px}
#restore,#legacyImport{background:#b45309!important}
.filter-actions{display:flex;flex-wrap:wrap;gap:8px}
.filter-actions button{margin:0!important}

/* ---- drop zones ---- */
.px-drop{position:relative;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;padding:14px;border:1.5px dashed color-mix(in srgb,var(--u-primary) 45%,var(--u-line));border-radius:14px;background:color-mix(in srgb,var(--u-primary) 5%,var(--u-surface));cursor:pointer;transition:background .15s,border-color .15s;font-weight:500}
.px-drop:hover,.px-drop.over{background:color-mix(in srgb,var(--u-primary) 11%,var(--u-surface));border-color:var(--u-primary)}
.px-drop.has{border-style:solid;border-color:var(--u-ok);background:color-mix(in srgb,var(--u-ok) 7%,var(--u-surface))}
.px-drop input[type=file]{position:absolute;inset:0;width:100%!important;height:100%!important;opacity:0;cursor:pointer;margin:0!important;padding:0!important;border:0!important}
.px-drop-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--u-surface);border:1px solid var(--u-line);color:var(--u-primary);flex:none}
.px-drop-ic .px-ico{width:20px;height:20px}
.px-drop-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 0}
.px-drop-t strong{font-size:.92rem;color:var(--u-text)}
.px-drop-t small{font-size:.72rem;color:var(--u-muted);letter-spacing:.02em}
.px-drop-f{display:flex;flex-direction:column;gap:4px;flex-basis:100%}
.px-drop-f[hidden]{display:none}
.px-drop-f > span{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;background:var(--u-surface);border:1px solid var(--u-line);font-size:.82rem;min-width:0}
.px-drop-f b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--u-text)}
.px-drop-f small{color:var(--u-muted)}
.px-drop-f .px-ico{color:var(--u-ok);width:16px;height:16px}

/* ---- sections ---- */
.px-sec{margin-top:14px;padding:14px;border:1px solid var(--u-line);border-radius:16px;background:var(--u-surface2,var(--u-surface))}
.px-sec-h,.px-mig > summary{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.px-mig > summary{margin:0;cursor:pointer;list-style:none}
.px-mig > summary::-webkit-details-marker{display:none}
.px-mig > summary::after{content:'›';margin-left:auto;font-size:1.3rem;color:var(--u-muted);transition:transform .2s}
.px-mig[open] > summary{margin-bottom:10px}
.px-mig[open] > summary::after{transform:rotate(90deg)}
.px-sec-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--u-soft);color:var(--u-primary);flex:none}
.px-sec-h > span:last-child,.px-mig > summary > span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.px-sec-h strong,.px-mig summary strong{font-size:1rem;color:var(--u-text)}
.px-sec-h small,.px-mig summary small{font-size:.76rem;color:var(--u-muted);font-weight:500}
.px-sec.bk .px-sec-ic{background:color-mix(in srgb,var(--u-ok) 14%,transparent);color:var(--u-ok)}
.px-mig .px-sec-ic{background:color-mix(in srgb,#b45309 14%,transparent);color:#b45309}
.px-sec-b > label{display:block;margin-top:10px}
.px-sec-b > button{margin-top:10px}
#importBtn{width:100%}
.px-bk-status{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;margin-bottom:10px}
.px-bk-status span{display:flex;flex-direction:column}
.px-bk-status small{font-size:.76rem;color:var(--u-muted)}
.px-bk-status.ok{background:color-mix(in srgb,var(--u-ok) 10%,transparent);color:var(--u-ok)}
.px-bk-status.warn{background:color-mix(in srgb,#d97706 12%,transparent);color:#b45309}
.px-bk-grp{padding:12px;border-radius:12px;border:1px solid var(--u-line);background:var(--u-surface);margin-top:8px}
.px-bk-grp h4{margin:0 0 6px;font-size:.88rem}
.px-bk-grp p{margin:0 0 8px;font-size:.84rem;color:var(--u-muted)}
.px-bk-grp button{width:100%;margin:8px 0 0!important}
#transfer > p.warn{margin-top:14px;font-size:.82rem;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,#d97706 10%,transparent)}
#historyList{margin:0}

/* ---- security ---- */
.px-seccard{margin:12px 0 4px;padding:14px;border-radius:16px;background:linear-gradient(135deg,#0b2948,#123f6e);color:#fff;box-shadow:var(--u-shadow)}
.px-sc-top{display:flex;align-items:center;gap:10px}
.px-sc-top .px-ico{width:30px;height:30px;color:#6ee7b7}
.px-sc-top span{display:flex;flex-direction:column}
.px-sc-top strong{font-size:1.02rem}
.px-sc-top small{font-size:.74rem;opacity:.8}
.px-sc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
.px-sc-grid > div{display:flex;flex-direction:column;padding:9px 11px;border-radius:11px;background:rgba(255,255,255,.08)}
.px-sc-grid b{font-size:.95rem}
.px-sc-grid span{font-size:.7rem;opacity:.75;font-weight:600}
.px-sc-grid .warn b{color:#fcd34d}
.px-sc-grid .warn span{color:#fff;opacity:.75}
.px-sc-acts{display:flex;gap:8px;margin-top:12px}
.px-sc-acts button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0!important}
#pxSecCard .px-btn-lock{background:#c0392b!important;color:#fff!important}
#pxSecCard button.secondary{background:rgba(255,255,255,.1)!important;color:#fff!important;border-color:rgba(255,255,255,.35)!important}
#security .px-sec-b select{width:100%}
.px-tech{margin-top:14px;padding:12px 14px;border-radius:14px;border:1px solid var(--u-line);font-size:.86rem}
.px-tech summary{cursor:pointer;font-weight:650}
.px-tech p{margin:.6em 0 0}

/* ---- home ---- */
.px-ov-bk.warn .ov-ico{color:#b45309}

/* ---- map ---- */
.px-help{margin:4px 0 10px;font-size:.86rem}
.px-help summary{cursor:pointer;color:var(--u-primary);font-weight:650;font-size:.86rem}
.px-help p{margin:.5em 0 0}
.px-prov{margin:10px 0;padding:12px;border-radius:12px;border:1px solid var(--u-line);background:var(--u-surface)}
.px-prov label{display:block}
.px-keyrow{display:flex;gap:8px;align-items:flex-end;margin-top:8px;flex-wrap:wrap}
.px-keyrow label{flex:1 1 200px}
.px-keyrow button{margin:0!important}
@media print{.px-seccard,.px-drop{display:none!important}}

.map-routing > h3.px-route-h{order:-1!important;margin-top:0}
html[data-theme="dark"] .px-bk-status.warn,html[data-theme="dark"] #transfer > p.warn,html[data-theme="dark"] .px-mig .px-sec-ic{color:#fbbf24}
@media(prefers-color-scheme:dark){html:not([data-theme]) .px-bk-status.warn,html:not([data-theme]) #transfer > p.warn,html:not([data-theme]) .px-mig .px-sec-ic{color:#fbbf24}}
