/* Platform operations extend the shared Phase 8 shell. Logical properties, semantic tokens, no separate UI framework. */
.pf-page{ display:flex; flex-direction:column; gap:20px; width:100%; min-width:0; max-width:1440px; margin-inline:auto; }
#pf-create, #pf-created, #pf-steps{ max-width:960px; width:100%; }
.pf-head, .pf-section-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.pf-head h1{ font-family:var(--font-disp); font-size:26px; margin:0 0 6px; letter-spacing:-.02em; }
.pf-head p{ margin:0; color:var(--ink-3); max-width:72ch; }
.pf-head-actions, .pf-actions, .pf-filters{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.pf-filters{ align-items:flex-end; }
.pf-filters label{ min-width:150px; flex:1; }
.pf-filters .pf-narrow{ max-width:220px; }
.pf-filters .rc-input{ min-height:42px; }
.pf-card{ padding:20px; gap:18px; min-width:0; }
.pf-card h2{ font-family:var(--font-disp); font-size:17px; margin:0; }
.pf-card h3{ font-size:15px; margin:0; }
.pf-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
.pf-metrics{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.pf-metric{ padding:18px; display:flex; flex-direction:column; gap:6px; }
.pf-metric strong{ font-size:28px; font-variant-numeric:tabular-nums; }
.pf-metric span, .pf-muted{ color:var(--ink-3); font-size:13px; }
.pf-statuses{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.pf-stat{ display:flex; gap:8px; align-items:center; padding:8px 12px; background:var(--secondary-action-bg); border-radius:10px; }
.pf-stat b{ font-variant-numeric:tabular-nums; }
.pf-form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.pf-span{ grid-column:1/-1; }
.pf-form{ display:flex; flex-direction:column; gap:22px; }
.pf-form fieldset{ min-width:0; border:0; padding:0; margin:0; }
.pf-form legend{ font-size:17px; font-weight:800; margin-block-end:16px; padding:0; }
.pf-steps{ display:flex; gap:12px; list-style:none; padding:0; margin:0; flex-wrap:wrap; }
.pf-steps li{ color:var(--ink-3); padding:8px 12px; border-radius:10px; background:var(--secondary-action-bg); font-size:13px; font-weight:700; }
.pf-steps li[aria-current="step"]{ background:var(--primary-soft); color:var(--primary-text); }
.pf-review{ display:grid; grid-template-columns:minmax(120px,220px) 1fr; gap:10px 18px; margin:0; }
.pf-review dt{ color:var(--ink-3); font-size:13px; }
.pf-review dd{ margin:0; overflow-wrap:anywhere; }
.pf-dialog{ border:1px solid var(--line); border-radius:16px; color:var(--ink); background:var(--card-bg); padding:24px; width:min(680px, calc(100vw - 32px)); max-height:calc(100dvh - 48px); overflow-y:auto; box-shadow:var(--shadow-3); }
.pf-dialog::backdrop{ background:rgba(20,18,32,.55); }
.pf-dialog h2{ font-family:var(--font-disp); margin:0; font-size:22px; }
.pf-dialog .pf-section-head{ margin-block-end:20px; }
.pf-dialog .pf-actions{ justify-content:flex-end; }
.pf-row-actions, .pf-column-chooser{ position:relative; }
.pf-row-actions summary, .pf-column-chooser summary{ list-style:none; cursor:pointer; white-space:nowrap; }
.pf-row-actions summary::-webkit-details-marker, .pf-column-chooser summary::-webkit-details-marker{ display:none; }
.pf-row-menu, .pf-column-menu{ display:flex; flex-direction:column; gap:6px; min-width:180px; padding:10px; background:var(--card-bg); border:1px solid var(--line); border-radius:12px; z-index:20; box-shadow:var(--shadow-2); }
.pf-row-menu{ position:relative; margin-block-start:6px; }
.pf-column-menu{ position:absolute; inset-inline-end:0; margin-block-start:6px; }
.pf-column-menu label{ display:flex; gap:8px; align-items:center; font-size:14px; padding:4px; cursor:pointer; }
.pf-danger-text{ color:var(--danger); }
.pf-notice{ padding:14px; background:var(--secondary-action-bg); border-radius:12px; color:var(--ink-2); margin:0; font-size:14px; }
.pf-notice:empty{ display:none; }
.pf-chart-table{ max-height:340px; overflow:auto; }
.pf-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.pf-list li{ padding-block:12px; border-block-end:1px solid var(--line); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; overflow-wrap:anywhere; }
.pf-list li:last-child{ border:0; }
.pf-list small{ display:block; color:var(--ink-3); margin-block-start:4px; }
.pf-scroll{ max-width:100%; overflow-x:auto; }
.pf-pre{ white-space:pre-wrap; overflow-wrap:anywhere; font:13px/1.6 var(--font-text); margin:0; }
/* The vendored DataTables renderer owns pagination and sorting; this adapts its surface to the house tokens. */
.pf-table{ width:100%; font-size:14px; text-align:start; color:var(--ink); }
.pf-table th, .pf-table td{ text-align:start !important; vertical-align:top; padding:12px 10px !important; border-color:var(--line) !important; overflow-wrap:anywhere; }
.pf-table thead th{ color:var(--ink-3); font-size:12px; font-weight:800; }
.pf-table tbody tr{ background:var(--card-bg) !important; }
.pf-table .dtr-details{ text-align:start; width:100%; }
.pf-table td.dt-empty{ padding-block:30px !important; color:var(--ink-3); }
.pf-table tbody .dtr-control{ cursor:pointer; }
.pf-table-wrap{ min-width:0; }
.pf-table-wrap .dt-container{ color:var(--ink); }
.pf-table-wrap .dt-layout-row{ gap:12px; flex-wrap:wrap; margin-block:12px; }
.pf-table-wrap .dt-input{ background:var(--input-bg) !important; color:var(--ink) !important; border:1px solid var(--line) !important; border-radius:9px !important; padding:8px !important; font:inherit; min-height:40px; }
.pf-table-wrap .dt-search input{ max-width:220px; }
.pf-table-wrap .dt-paging-button{ color:var(--ink) !important; border-radius:8px !important; min-width:38px; min-height:38px; }
.pf-table-wrap .dt-paging-button.current{ background:var(--primary-soft) !important; border-color:var(--line) !important; color:var(--primary-text) !important; }
.pf-table-wrap .dt-info{ font-size:13px; color:var(--ink-3); }
html.dark .pf-danger-text{ color:#F08A9B; }
@media (max-width:1100px){ .pf-metrics{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px){ .pf-grid, .pf-form-grid{ grid-template-columns:1fr; } .pf-card{ padding:16px; } .pf-head h1{ font-size:23px; } .pf-review{ grid-template-columns:1fr; gap:4px; } .pf-review dd{ margin-block-end:10px; } .pf-table-wrap .dt-layout-row{ align-items:stretch; } }
@media (max-width:400px){ .pf-metrics{ grid-template-columns:1fr; } .pf-head-actions{ width:100%; } .pf-head-actions .btn{ flex:1; } }
@media (pointer:coarse){ .pf-page .btn, .pf-page .dt-paging-button{ min-height:44px; } .pf-column-menu label{ min-height:44px; } }
