/* Web-only IPM presentation. The production shell owns the outer page geometry. */
[data-web-ipm="true"].web-ipm { color:#142b4b; font-family:Inter,system-ui,sans-serif; }
[data-web-ipm="true"] .web-ipm *,[data-web-ipm="true"] .web-ipm *::before,[data-web-ipm="true"] .web-ipm *::after { box-sizing:border-box; min-width:0; }
[data-web-ipm="true"] .web-ipm button { cursor:pointer; }
[data-web-ipm="true"] .web-ipm button:focus-visible,[data-web-ipm="true"] .web-ipm input:focus-visible,[data-web-ipm="true"] .web-ipm select:focus-visible,[data-web-ipm="true"] .web-ipm textarea:focus-visible { outline:3px solid #4a9be9; outline-offset:2px; }

[data-web-ipm="true"] .web-ipm-heading { display:flex; align-items:center; gap:14px; margin-bottom:15px; }
[data-web-ipm="true"] .web-ipm-heading-icon { display:grid; place-items:center; flex:none; width:56px; height:56px; border-radius:15px; background:linear-gradient(135deg,#e5f2ff,#dbeafe); color:#1466d8; font-size:25px; }
[data-web-ipm="true"] .web-ipm-heading h1 { margin:0; color:#142b4b; font-size:27px; font-weight:750; line-height:1.15; }
[data-web-ipm="true"] .web-ipm-heading p { margin:3px 0 0; color:#71839f; font-size:12px; }

[data-web-ipm="true"] .web-ipm-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
[data-web-ipm="true"] .web-ipm-card,[data-web-ipm="true"] .web-ipm-form-panel { margin:0 0 12px; padding:14px; border:1px solid #dce9f3; border-radius:12px; background:#fff; box-shadow:0 5px 14px #2045680d; }
[data-web-ipm="true"] .web-ipm-card-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
[data-web-ipm="true"] .web-ipm-card-heading h2,[data-web-ipm="true"] .web-ipm-form-heading h2 { margin:0; color:#19375b; font-size:18px; font-weight:750; }
[data-web-ipm="true"] .web-ipm-card-context { margin:3px 0 0; color:#71839f; font-size:11px; }
[data-web-ipm="true"] .web-ipm-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }

[data-web-ipm="true"] .web-ipm-primary,[data-web-ipm="true"] .web-ipm-secondary,[data-web-ipm="true"] .web-ipm-load-more { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:7px 11px; border:1px solid #d2e3f0; border-radius:8px; background:#fff; color:#174f90; font-size:11px; font-weight:700; line-height:1.2; white-space:nowrap; }
[data-web-ipm="true"] .web-ipm-primary { min-height:42px; padding:10px 17px; border-color:#0b59df; background:linear-gradient(135deg,#2474ef,#0f57dc); color:#fff; font-size:12px; box-shadow:0 4px 9px #205bd724; }
[data-web-ipm="true"] .web-ipm-primary:hover:not(:disabled) { background:#0c52d8; }
[data-web-ipm="true"] .web-ipm-secondary { background:#f8fbff; color:#536f8d; }
[data-web-ipm="true"] .web-ipm-secondary:hover:not(:disabled),[data-web-ipm="true"] .web-ipm-load-more:hover:not(:disabled) { background:#f0f8ff; color:#174f90; }
[data-web-ipm="true"] .web-ipm-primary:disabled,[data-web-ipm="true"] .web-ipm-secondary:disabled,[data-web-ipm="true"] .web-ipm-load-more:disabled { cursor:not-allowed; opacity:.55; }

[data-web-ipm="true"] .web-ipm-status-filter { display:flex; align-items:center; gap:7px; color:#536f8d; font-size:11px; font-weight:700; }
[data-web-ipm="true"] .web-ipm-filter-select { height:36px; padding:0 28px 0 10px; border:1px solid #d2e2ef; border-radius:8px; background:#fbfdff; color:#536f8d; font:inherit; }
[data-web-ipm="true"] .web-ipm-filter-select:focus { border-color:#4a9be9; outline:0; }

[data-web-ipm="true"] .web-ipm-record-list { border:1px solid #dce9f3; border-radius:8px; overflow:hidden; }
[data-web-ipm="true"] .web-ipm-record { padding:10px 12px; border-top:1px solid #e5edf5; background:#fff; }
[data-web-ipm="true"] .web-ipm-record:first-child { border-top:0; }
[data-web-ipm="true"] .web-ipm-record.is-selected { border-color:#82b5ed; background:#e8f4ff; box-shadow:0 0 0 2px #d9edff inset; }
[data-web-ipm="true"] .web-ipm-record-select { display:block; width:100%; padding:0; color:inherit; text-align:left; }
[data-web-ipm="true"] .web-ipm-record-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
[data-web-ipm="true"] .web-ipm-record-title-group { display:flex; align-items:center; gap:8px; }
[data-web-ipm="true"] .web-ipm-record-title { color:#19375b; font-size:13px; font-weight:750; line-height:1.35; }
[data-web-ipm="true"] .web-ipm-record-detail { display:block; margin:4px 0 0; color:#71839f; font-size:11px; line-height:1.45; }
[data-web-ipm="true"] .web-ipm-record-meta,[data-web-ipm="true"] .web-ipm-record-type { display:block; margin:5px 0 0; color:#71839f; font-size:10px; font-weight:600; }
[data-web-ipm="true"] .web-ipm-record-type { color:#536f8d; font-size:11px; }
[data-web-ipm="true"] .web-ipm-record-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; padding-top:9px; border-top:1px solid #e8eff5; }
[data-web-ipm="true"] .web-ipm-status-badge { flex:none; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:700; }
[data-web-ipm="true"] .web-ipm-status-badge.active { color:#08775c; background:#e6f8f2; }
[data-web-ipm="true"] .web-ipm-status-badge.inactive { color:#a36c0a; background:#fff4df; }
[data-web-ipm="true"] .web-ipm-code-badge { display:inline-flex; align-items:center; width:max-content; margin:0; padding:4px 8px; border-radius:7px; background:#e8f4ff; color:#0b59df; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:11px; font-weight:700; line-height:1.2; }

[data-web-ipm="true"] .web-ipm-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:68px; padding:18px 14px; color:#71839f; font-size:12px; text-align:center; }
[data-web-ipm="true"] .web-ipm-empty i { display:block; margin:0; color:#82a6c5; font-size:16px; line-height:1; }
[data-web-ipm="true"] .web-ipm-empty p,[data-web-ipm="true"] .web-ipm-alert p { margin:0; }
[data-web-ipm="true"] .web-ipm-empty p { line-height:1.25; }
[data-web-ipm="true"] .web-ipm-alert { margin:0 0 10px; padding:10px; border:1px solid #f0dce0; border-radius:8px; background:#fff7f8; color:#bf5364; font-size:11px; }
[data-web-ipm="true"] .web-ipm-alert .web-ipm-secondary { margin-top:8px; border-color:#efd6dc; background:#fff; color:#a9475a; }
[data-web-ipm="true"] .web-ipm-loading { display:flex; flex-direction:column; gap:6px; }
[data-web-ipm="true"] .web-ipm-loading > div { height:52px; border:1px solid #e5eef6; border-radius:8px; background:linear-gradient(100deg,#f3f8fc 0%,#e9f3fa 50%,#f3f8fc 100%); animation:web-ipm-loading 1.4s ease infinite; }
[data-web-ipm="true"] .web-ipm-loading-copy { margin:10px 0 0; color:#71839f; font-size:11px; text-align:center; }
[data-web-ipm="true"] .web-ipm-load-more { width:100%; margin-top:10px; }
@keyframes web-ipm-loading { 0% { background-position:0 0; } 100% { background-position:200% 0; } }

[data-web-ipm="true"] .web-ipm-notice { margin:0 0 12px; padding:10px 12px; border:1px solid #cce1f5; border-radius:8px; background:#f0f8ff; color:#385475; font-size:11px; font-weight:600; }
[data-web-ipm="true"] .web-ipm-form-panel { scroll-margin-top:calc(var(--production-topbar-height,64px) + 16px); }
[data-web-ipm="true"] .web-ipm-form { display:grid; gap:13px; max-width:700px; }
[data-web-ipm="true"] .web-ipm-form--site { max-width:none; grid-template-columns:repeat(2,minmax(0,1fr)); }
[data-web-ipm="true"] .web-ipm-form--site > .web-ipm-form-heading,[data-web-ipm="true"] .web-ipm-form--site > .web-ipm-form-span-2,[data-web-ipm="true"] .web-ipm-form--site > .web-ipm-form-actions,[data-web-ipm="true"] .web-ipm-form--site > .web-ipm-alert,[data-web-ipm="true"] .web-ipm-form--site > .web-ipm-secondary { grid-column:1 / -1; }
[data-web-ipm="true"] .web-ipm-form-heading { padding-bottom:10px; border-bottom:1px solid #e5edf5; }
[data-web-ipm="true"] .web-ipm-form-heading p { margin:4px 0 0; color:#71839f; font-size:11px; }
[data-web-ipm="true"] .web-ipm-form-field { display:grid; gap:5px; color:#385475; font-size:11px; font-weight:700; }
[data-web-ipm="true"] .web-ipm-form-field small,[data-web-ipm="true"] .web-ipm-form-copy { color:#71839f; font-size:10px; font-weight:400; }
[data-web-ipm="true"] .web-ipm-control { width:100%; min-height:38px; padding:8px 10px; border:1px solid #d2e2ef; border-radius:8px; background:#fbfdff; color:#142b4b; font:inherit; font-size:12px; }
[data-web-ipm="true"] .web-ipm-control:focus { border-color:#4a9be9; outline:0; background:#fff; }
[data-web-ipm="true"] .web-ipm-control:disabled { cursor:not-allowed; background:#f3f8fc; color:#71839f; }
[data-web-ipm="true"] .web-ipm-textarea { min-height:88px; resize:vertical; }
[data-web-ipm="true"] .web-ipm-code-input,[data-web-ipm="true"] .web-ipm-form-note strong { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
[data-web-ipm="true"] .web-ipm-form-note { margin:0; padding:9px 10px; border:1px solid #dce9f3; border-radius:8px; background:#f8fbff; color:#536f8d; font-size:11px; line-height:1.45; }
[data-web-ipm="true"] .web-ipm-count { margin:0; color:#385475; font-size:12px; }
[data-web-ipm="true"] .web-ipm-form-actions,[data-web-ipm="true"] .web-ipm-retry { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding-top:3px; }
[data-web-ipm="true"] .web-ipm-retry { justify-content:space-between; align-items:center; }
[data-web-ipm="true"] .web-ipm-retry .web-ipm-alert { flex:1; margin:0; }

[data-web-ipm="true"] .web-ipm-future { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-bottom:12px; }
[data-web-ipm="true"] .web-ipm-future-item { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:42px; padding:8px 10px; border:1px solid #e0eaf2; border-radius:8px; background:#fbfdff; color:#617895; font-size:11px; font-weight:600; }
[data-web-ipm="true"] .web-ipm-future-item > span:last-child { flex:none; padding:3px 6px; border-radius:999px; background:#f0f4f7; color:#8294a5; font-size:9px; font-weight:700; }

@media (max-width:960px) { [data-web-ipm="true"] .web-ipm-grid { grid-template-columns:1fr; } }
@media (max-width:699px) { [data-web-ipm="true"] .web-ipm-heading { flex-wrap:wrap; } [data-web-ipm="true"] .web-ipm-heading h1 { font-size:23px; } [data-web-ipm="true"] .web-ipm-heading-icon { width:46px; height:46px; font-size:20px; } [data-web-ipm="true"] .web-ipm-card,[data-web-ipm="true"] .web-ipm-form-panel { padding:12px; } [data-web-ipm="true"] .web-ipm-card-heading { align-items:flex-start; } [data-web-ipm="true"] .web-ipm-toolbar { width:100%; } [data-web-ipm="true"] .web-ipm-toolbar .web-ipm-primary { flex:1; } [data-web-ipm="true"] .web-ipm-status-filter { margin-left:auto; } [data-web-ipm="true"] .web-ipm-future { grid-template-columns:repeat(2,minmax(0,1fr)); } [data-web-ipm="true"] .web-ipm-form--site { grid-template-columns:minmax(0,1fr); } [data-web-ipm="true"] .web-ipm-form-actions > * { flex:1; } }
