/* Raptool Device Manager 2.2 part B - geofences (Map tab), printers, Simple-mode policies, login SSO button. Loaded after mod-e.css. */
/* ---- geofences on the map */
.fn-bar { margin-bottom: var(--space-sm, 8px); }
.fn-bar:empty { display: none; }
.fn-tools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fn-new { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fn-banner { flex-wrap: wrap; }
.fn-seg { display: flex; gap: 6px; margin-bottom: var(--space-sm, 8px); flex-wrap: wrap; }
.mp-side-wrap { min-width: 0; }
.fn-pane { min-width: 0; }
.fn-more { margin: 10px 0; text-align: center; }
.fn-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; vertical-align: baseline; background: var(--fn-c, var(--accent-primary)); }
.fn-c-blue { --fn-c: var(--accent-primary); } .fn-c-green { --fn-c: var(--accent-emerald); } .fn-c-red { --fn-c: var(--error); } .fn-c-orange { --fn-c: var(--warning); }
.fn-c-purple { --fn-c: var(--secondary, #8b5cf6); } .fn-c-teal { --fn-c: var(--accent-cyan); } .fn-c-pink { --fn-c: var(--accent-rose, #ec4899); } .fn-c-gray { --fn-c: var(--text-muted); }
path.fn-shape { stroke: var(--fn-c, var(--accent-primary)); fill: var(--fn-c, var(--accent-primary)); fill-opacity: .16; stroke-opacity: .9; }
path.fn-shape.fn-off { stroke-dasharray: 6 5; fill-opacity: .05; }
path.fn-shape.fn-draft { stroke-dasharray: 4 4; fill-opacity: .1; }
path.fn-handle { stroke: var(--accent-primary); fill: var(--surface, #fff); fill-opacity: 1; stroke-width: 2; }
.fn-tip { font-weight: 600; }
.fn-drawing { cursor: crosshair !important; }
.fn-drawing .leaflet-marker-pane, .fn-drawing .leaflet-interactive:not(.fn-handle) { pointer-events: none; }
.fn-drawing .leaflet-grab { cursor: crosshair; }
.fn-geo { margin-bottom: 8px; }
.fn-pts summary { cursor: pointer; margin-top: 6px; }
.fn-pts textarea { width: 100%; font-family: var(--font-mono, monospace); font-size: 12.5px; }
.fn-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; margin-top: 6px; }
.fn-rule { padding: 10px 12px; margin: 8px 0; border-radius: 12px; background: var(--surface-container-low); box-shadow: var(--shadow-inset); display: grid; gap: 4px; }
.field-label.sm { font-size: 12px; margin-top: 4px; }
/* ---- simple-mode policies */
.ps-intro { max-width: 760px; }
.ps-presets .ps-preset { display: flex; flex-direction: column; gap: 8px; padding: 14px; align-items: flex-start; }
.ps-preset-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* ---- login */
.login-sso { margin-top: 10px; }
.login-sso[hidden] { display: none; }
.login-or { text-align: center; margin: 8px 0 0; font-size: 12px; color: var(--text-muted); }
@media (max-width: 600px) {
  .fn-add { grid-template-columns: 1fr; }
  .fn-tools { gap: 8px; }
}

/* Printers tab */
.pr-st { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 2px 10px 2px 8px; border-radius: 999px; background: var(--surface-2, rgba(128,128,128,.12)); white-space: nowrap; }
.pr-st i { width: 8px; height: 8px; border-radius: 50%; background: #8a8f98; display: inline-block; }
.pr-st.pr-ready i { background: #22a06b; }
.pr-st.pr-warning i { background: #e8a317; }
.pr-st.pr-error i { background: #d63c3c; }
.pr-st.pr-offline i { background: #8a8f98; }
.pr-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.pr-prob { font-weight: 600; }
.pr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pr-flags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.pr-flag { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; padding: 2px 8px; border-radius: 8px; background: rgba(34,160,107,.14); }
.pr-flag.on { background: rgba(214,60,60,.16); }
.pr-flag .material-symbols-outlined { font-size: 14px; }
.pr-kvs { display: flex; flex-direction: column; gap: 4px; }
.pr-kv { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; border-bottom: 1px solid var(--border, rgba(128,128,128,.2)); padding: 3px 0; }
.pr-acts { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.pr-chart { min-height: 120px; }
.pr-keys { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.pr-card { padding: 14px; margin-bottom: 14px; }
.pr-card-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pr-card-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pr-edit { display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 600px) { .pr-grid { grid-template-columns: 1fr; } }

/* Reports: preview in the schedule dialog */
.rp-preview { margin-top: 12px; }
.rp-prev-wrap { overflow-x: auto; }
.rp-prev { border-collapse: collapse; font-size: 12px; width: 100%; }
.rp-prev th, .rp-prev td { text-align: left; padding: 4px 8px; border-bottom: 1px solid var(--border, rgba(128,128,128,.25)); white-space: nowrap; }
