/* ARPYNET Service Platform 0.11.7 — UI/UX Refresh Stable Candidate
   Consolidates asset/admin/dashboard/responsive/accessibility polish. */

:root{
  --ui-font-size:15px;
  --ui-font-small:13.25px;
  --ui-font-xs:12px;
  --ui-title:27px;
  --ui-section-title:17px;
  --ui-control:40px;
  --ui-control-mobile:44px;
  --ui-card-pad:20px;
  --ui-gap:16px;
  --ui-focus:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent);
  --ui-hover:#f8fafc;
  --ui-blue-soft:#eff6ff;
  --ui-green-soft:#effaf3;
  --ui-amber-soft:#fff8e8;
  --ui-red-soft:#fff1f2;
}

html{font-size:var(--ui-font-size);scroll-behavior:smooth}
body.ui-stable{font-size:var(--ui-font-size);line-height:1.48;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.ui-stable a{text-decoration:none}
body.ui-stable .content a:not(.btn):not(.nav-link):not(.portal-link-button):not(.portal-shortcut):not(.portal-ticket-row):not(.portal-service-card):not(.portal-kb-card):not(.service-card):not(.attention-item):hover{color:var(--accent)}

.skip-link{position:fixed;left:16px;top:-80px;z-index:1000;padding:10px 14px;border-radius:9px;background:#0f172a;color:#fff;font-weight:750;transition:top .15s ease}
.skip-link:focus{top:12px;color:#fff}

body.ui-stable :focus-visible{outline:0;box-shadow:var(--ui-focus)!important}
body.ui-stable button:focus-visible,
body.ui-stable a:focus-visible,
body.ui-stable input:focus-visible,
body.ui-stable select:focus-visible,
body.ui-stable textarea:focus-visible{outline:0}

/* Global shell readability */
.ui-stable.ui-v0112 .nav a{font-size:14px;min-height:40px}
.ui-stable.ui-v0112 .nav-label{font-size:10px}
.ui-stable.ui-v0112 .brand-copy strong{font-size:13px}
.ui-stable.ui-v0112 .brand-copy small{font-size:10.5px}
.ui-stable.ui-v0112 .topbar-context{font-size:13px}
.ui-stable.ui-v0112 .company-switcher-v0112 .compact-select{font-size:13.5px!important}
.ui-stable.ui-v0112 .user-menu-copy strong{font-size:12.75px}
.ui-stable.ui-v0112 .user-menu-copy small{font-size:11px}
.ui-stable .platform-health{font-size:11.5px}
.ui-stable .content{font-size:15px}
.ui-stable .page-head{margin-bottom:20px}
.ui-stable .page-head h1{font-size:var(--ui-title)!important;line-height:1.15;letter-spacing:-.025em}
.ui-stable .page-head p{font-size:14.25px!important;max-width:780px}
.ui-stable .page-head .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Stable page header helpers */
.page-kicker{display:block;margin-bottom:5px;color:#64748b;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.1em}
.page-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;color:#64748b;font-size:13px}
.page-meta-chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#475569;font-weight:650}

/* Cards, sections and forms */
.ui-stable .card{padding:var(--ui-card-pad);border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.025)}
.ui-stable .card h2{font-size:var(--ui-section-title);letter-spacing:-.015em}
.ui-stable .section-head h2{font-size:17px!important}
.ui-stable .section-head p{font-size:13.5px!important}
.ui-stable .field{margin-bottom:17px}
.ui-stable .field label,.ui-stable .form-label{font-size:13px!important;font-weight:700;color:#475569}
.ui-stable .field small{font-size:12.5px;line-height:1.45}
.ui-stable .input,.ui-stable .select,.ui-stable .textarea,
.ui-stable .form-control,.ui-stable .form-select{font-size:14.5px!important;min-height:var(--ui-control)!important;border-radius:9px!important}
.ui-stable textarea.textarea,.ui-stable textarea.form-control{line-height:1.5}
.ui-stable .btn{font-size:14px!important;min-height:38px;padding:8px 13px}
.ui-stable .btn-small,.ui-stable .btn-sm{font-size:12.5px!important;min-height:32px!important}
.ui-stable .badge{font-size:12px!important;padding:4px 8px}
.ui-stable .choice{font-size:14px;line-height:1.45}
.ui-stable .form-actions{padding-top:4px}

/* Tables */
.ui-stable .table{font-size:14px}
.ui-stable .table th{font-size:12.5px!important;padding:11px 12px!important;color:#5d6a7d;background:#f8fafc;font-weight:760;letter-spacing:0;text-transform:none}
.ui-stable .table td{font-size:14px!important;padding:11px 12px!important;vertical-align:middle}
.ui-stable .table tbody tr{transition:background .12s ease}
.ui-stable .table tbody tr:hover{background:#fbfdff}
.ui-stable .table a{font-weight:700;color:#334155;text-decoration:none}
.ui-stable .table-wrap{border-radius:10px;border-color:#e2e8f0}
.ui-stable .table-wrap::-webkit-scrollbar{height:9px;width:9px}
.ui-stable .table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:20px}

/* Generic filter toolbar */
.ui-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.ui-toolbar-main{display:flex;align-items:center;gap:8px;flex:1;min-width:240px;flex-wrap:wrap}
.ui-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ui-search{position:relative;min-width:240px;max-width:420px;flex:1}
.ui-search input{padding-left:34px!important}
.ui-search::before{content:'⌕';position:absolute;left:11px;top:50%;transform:translateY(-53%);color:#94a3b8;font-size:18px;z-index:2}

/* Dashboard — management roles */
.ops-dashboard{display:grid;gap:16px}
.ops-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:4px 0 2px}
.ops-hero h1{margin:0;font-size:28px;letter-spacing:-.03em}
.ops-hero p{margin:5px 0 0;color:#64748b;font-size:14.5px}
.ops-hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.ops-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ops-kpi{position:relative;overflow:hidden;min-height:122px;padding:17px 18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.ops-kpi::after{content:'';position:absolute;inset:auto -20px -28px auto;width:82px;height:82px;border-radius:50%;background:#f1f5f9}
.ops-kpi-label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#64748b;font-size:12.5px;font-weight:720}
.ops-kpi-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#f1f5f9;color:#475569;font-size:13px;font-weight:850}
.ops-kpi strong{display:block;margin-top:9px;font-size:30px;line-height:1;letter-spacing:-.04em;color:#172033}
.ops-kpi small{display:block;margin-top:8px;color:#94a3b8;font-size:11.5px}
.ops-kpi.accent{border-color:#cfe0ff;background:linear-gradient(150deg,#fff,#f7faff)}
.ops-kpi.accent .ops-kpi-icon{background:#edf4ff;color:#2563eb}
.ops-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);gap:14px}
.ops-panel{padding:0!important;overflow:hidden}
.ops-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.ops-panel-head h2{margin:0;font-size:16px}.ops-panel-head p{margin:3px 0 0;color:#64748b;font-size:12.5px}
.ops-quick-actions{display:grid;gap:9px;padding:14px}
.ops-quick-action{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#334155;text-decoration:none}
.ops-quick-action:hover{border-color:#bfdbfe;background:#f8fbff;color:#1d4ed8}
.ops-quick-action span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#f1f5f9;font-weight:850}
.ops-quick-action div{display:grid;gap:2px}.ops-quick-action strong{font-size:13.5px}.ops-quick-action small{font-size:11.5px;color:#7a8798}

/* Asset & Inventory UX */
.asset-page{display:grid;gap:16px}
.asset-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.asset-summary-card{padding:14px 15px;border:1px solid var(--line);border-radius:10px;background:#fff}
.asset-summary-card span{display:block;color:#64748b;font-size:12px;font-weight:700}.asset-summary-card strong{display:block;margin-top:5px;font-size:23px;letter-spacing:-.03em}
.asset-filter-card{padding:15px 16px!important}
.asset-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}
.asset-filter-card .form-actions{margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9}
.asset-table td:first-child a{color:#1e3a5f}
.asset-table .asset-name-cell{min-width:240px}
.asset-table .asset-name-cell strong{font-size:14px}.asset-table .asset-name-cell small{display:block;margin-top:2px;color:#7a8798;font-size:12px}
.asset-status-dot{display:inline-flex;align-items:center;gap:6px}.asset-status-dot::before{content:'';width:7px;height:7px;border-radius:50%;background:#94a3b8}.asset-status-dot.is-good::before{background:#22c55e}.asset-status-dot.is-warning::before{background:#f59e0b}
.asset-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:19px 20px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#fff,#f8fbff)}
.asset-hero-main{display:flex;align-items:flex-start;gap:13px;min-width:0}.asset-type-icon{width:46px;height:46px;display:grid;place-items:center;flex:0 0 46px;border-radius:12px;background:#eef4ff;color:#2458a6;font-weight:850}
.asset-hero h1{margin:0;font-size:24px;letter-spacing:-.025em}.asset-hero p{margin:5px 0 0;color:#64748b;font-size:13.5px}
.asset-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}
.asset-meta-item{padding:13px 15px;border-right:1px solid var(--line)}.asset-meta-item:last-child{border-right:0}.asset-meta-item span{display:block;color:#94a3b8;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.asset-meta-item strong{display:block;margin-top:4px;font-size:13.5px;color:#334155}
.asset-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.75fr);gap:14px;align-items:start}
.asset-side{display:grid;gap:12px;position:sticky;top:84px}
.asset-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.asset-section-title h2{margin:0;font-size:16px}.asset-section-title small{font-size:11.5px;color:#94a3b8}
.asset-spec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.asset-spec{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid #f1f5f9}.asset-spec span{color:#64748b;font-size:12.5px}.asset-spec strong{font-size:13.5px;font-weight:650;word-break:break-word}
.asset-form-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.7fr);gap:14px;align-items:start}.asset-form-sidebar{position:sticky;top:84px;display:grid;gap:12px}
.asset-import-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:15px}.asset-import-step{padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff}.asset-import-step b{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#edf4ff;color:#2563eb;font-size:12px}.asset-import-step strong{display:block;margin-top:8px;font-size:13px}.asset-import-step span{display:block;margin-top:3px;color:#64748b;font-size:11.5px}

/* Admin & operations UX */
.admin-shell-page{display:grid;gap:14px}
.admin-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.admin-overview .stat{min-height:104px;padding:15px}.admin-overview .stat .label{font-size:12.5px!important}.admin-overview .stat .value{font-size:25px!important}
.admin-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.admin-card-head h2{margin:0;font-size:16px}.admin-card-head p{margin:3px 0 0;color:#64748b;font-size:12.5px}
.ui-stable .kv{grid-template-columns:minmax(150px,220px) minmax(0,1fr);padding:11px 0}.ui-stable .kv strong{font-size:13px;color:#475569}.ui-stable .kv span{font-size:13.5px;color:#334155}
.ui-stable .alert{font-size:13.5px;line-height:1.5}
.ui-stable .filters{box-shadow:none}
.ui-stable .filters .grid{gap:12px}
.ui-stable .filters .form-actions{margin-top:13px}

/* SLA / automation / approvals */
.ops-status-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ops-status-card{padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.ops-status-card span{display:block;color:#64748b;font-size:11.5px}.ops-status-card strong{display:block;margin-top:4px;font-size:18px}

/* Integrations */
.integration-card{position:relative;overflow:hidden}.integration-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#60a5fa}.integration-card h2{margin-top:0}
.code-surface{padding:10px 12px;border-radius:8px;background:#0f172a;color:#e2e8f0;font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}

/* Auth */
.ui-auth-stable .auth-card{width:min(470px,100%);padding:34px;border-radius:18px;border-color:#e2e8f0;box-shadow:0 24px 60px rgba(15,23,42,.10)}
.ui-auth-stable .auth-card h1{font-size:27px;letter-spacing:-.025em}
.ui-auth-stable .auth-card .subtitle{font-size:14px;line-height:1.55}

/* Ticket typography comfort — override compact pilot values */
.ui-stable .ticket-v0112 .ticket-breadcrumbs{font-size:12px}
.ui-stable .ticket-v0112 .ticket-title-row h1{font-size:25px}
.ui-stable .ticket-v0112 .ticket-requester-line{font-size:13px}
.ui-stable .ticket-v0112 .ticket-summary-item span{font-size:11px}.ui-stable .ticket-v0112 .ticket-summary-item strong{font-size:14px}.ui-stable .ticket-v0112 .ticket-summary-item small{font-size:11px}
.ui-stable .ticket-v0112 .ticket-tabs .nav-link{font-size:13px!important}
.ui-stable .ticket-v0112 .ticket-message-head strong{font-size:13.5px}.ui-stable .ticket-v0112 .ticket-message-head time{font-size:11px}.ui-stable .ticket-v0112 .ticket-message-body{font-size:14px}
.ui-stable .ticket-v0112 .ticket-compose-mode{font-size:12.5px}.ui-stable .ticket-v0112 .ticket-composer-hint{font-size:11.5px}
.ui-stable .ticket-v0112 .ticket-side-heading h2{font-size:15px}.ui-stable .ticket-v0112 .ticket-section-kicker{font-size:10px}.ui-stable .ticket-v0112 .ticket-detail-list dt{font-size:11.5px}.ui-stable .ticket-v0112 .ticket-detail-list dd{font-size:12.5px}
.ui-stable .ticket-v0112 .ticket-operation-card .form-label{font-size:11px!important}.ui-stable .ticket-v0112 .ticket-operation-card .form-select{font-size:13px!important}.ui-stable .ticket-v0112 .ticket-sla-row span{font-size:12px}.ui-stable .ticket-v0112 .ticket-sla-block small{font-size:11px}.ui-stable .ticket-v0112 .ticket-sla-calendar{font-size:11px}

/* Report typography final */
.ui-stable .report-v0110 .metric-top{font-size:13px}.ui-stable .report-v0110 .metric-foot{font-size:12px}.ui-stable .report-v0110 .analytics-head h2{font-size:17px}.ui-stable .report-v0110 .legend-row{font-size:12.5px}.ui-stable .report-v0110 .rank-main>div:first-child{font-size:13px}.ui-stable .report-v0110 .attention-item strong,.ui-stable .report-v0110 .attention-item small{font-size:12px}

/* Dark theme, local preference only */
body[data-theme='dark']{
  --bg:#0f172a;--surface:#111c2e;--surface-2:#162236;--text:#e5edf7;--muted:#98a6ba;--line:#26354a;--line-strong:#33455e;--ui-hover:#17243a;
  background:#0f172a;color:#e5edf7;color-scheme:dark
}
body[data-theme='dark'] .main,body[data-theme='dark'] .content{background:#0f172a}
body[data-theme='dark'] .topbar-v0112{background:rgba(17,28,46,.94)!important;border-color:#26354a!important}
body[data-theme='dark'] .topbar-context strong,body[data-theme='dark'] .page-head h1,body[data-theme='dark'] .card h2,body[data-theme='dark'] .card strong{color:#e5edf7}
body[data-theme='dark'] .card,body[data-theme='dark'] .asset-summary-card,body[data-theme='dark'] .asset-hero,body[data-theme='dark'] .asset-meta-grid,body[data-theme='dark'] .ops-kpi,body[data-theme='dark'] .ops-quick-action{background:#111c2e;border-color:#26354a}
body[data-theme='dark'] .asset-hero{background:linear-gradient(145deg,#111c2e,#132139)}
body[data-theme='dark'] .table,body[data-theme='dark'] .table th{background:#111c2e;color:#c9d5e5}
body[data-theme='dark'] .table th{background:#162236}body[data-theme='dark'] .table td{border-color:#26354a;color:#d5dfec}
body[data-theme='dark'] .table tbody tr:hover{background:#17243a}
body[data-theme='dark'] .input,body[data-theme='dark'] .select,body[data-theme='dark'] .textarea,body[data-theme='dark'] .form-control,body[data-theme='dark'] .form-select{background:#0e1929!important;border-color:#33455e!important;color:#e5edf7!important}
body[data-theme='dark'] .btn-secondary{background:#162236;color:#dce5f2;border-color:#33455e}
body[data-theme='dark'] .company-switcher-v0112,body[data-theme='dark'] .company-switcher-v0112 .compact-select,body[data-theme='dark'] .context-pill{background:#111c2e!important;border-color:#33455e!important;color:#dce5f2!important}
body[data-theme='dark'] .user-menu-panel{background:#111c2e!important;border-color:#33455e!important}
body[data-theme='dark'] .platform-health{background:#10261d;border-color:#1f5138;color:#8be0ad}
body[data-theme='dark'] .portal-request-card,body[data-theme='dark'] .portal-overview,body[data-theme='dark'] .portal-section,body[data-theme='dark'] .portal-shortcut,body[data-theme='dark'] .portal-service-card,body[data-theme='dark'] .portal-kb-card{background:#111c2e!important;border-color:#26354a!important}
body[data-theme='dark'] .ticket-v0112 .ticket-hero,body[data-theme='dark'] .ticket-v0112 .ticket-main-card,body[data-theme='dark'] .ticket-v0112 .ticket-side-card,body[data-theme='dark'] .ticket-v0112 .ticket-message{background:#111c2e!important;border-color:#26354a!important}
body[data-theme='dark'] .ticket-v0112 .ticket-thread{background:#0f1929!important}body[data-theme='dark'] .ticket-v0112 .ticket-composer{background:rgba(17,28,46,.98)!important}

/* Responsive */
@media(max-width:1280px){
  .ops-kpis,.asset-summary,.admin-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .asset-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .asset-detail-grid,.asset-form-layout{grid-template-columns:minmax(0,1fr) 300px}
}
@media(max-width:980px){
  .ops-dashboard-grid,.asset-detail-grid,.asset-form-layout{grid-template-columns:1fr}
  .asset-side,.asset-form-sidebar{position:static}
  .asset-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-meta-item:nth-child(2){border-right:0}.asset-meta-item:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:760px){
  :root{--ui-card-pad:16px}
  body.ui-stable{font-size:15px}
  .ui-stable .content{padding:18px 13px 34px!important}
  .ui-stable .page-head{display:grid;gap:12px}.ui-stable .page-head h1{font-size:24px!important}.ui-stable .page-head .actions{width:100%}
  .ui-stable .page-head .actions .btn{flex:1}
  .ops-hero{align-items:flex-start;flex-direction:column}.ops-kpis,.asset-summary,.admin-overview,.ops-status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .asset-import-steps{grid-template-columns:1fr}.asset-spec-grid{grid-template-columns:1fr}.asset-filter-grid{grid-template-columns:1fr!important}.asset-search{grid-column:auto!important}
  .ui-stable .input,.ui-stable .select,.ui-stable .textarea,.ui-stable .form-control,.ui-stable .form-select{min-height:var(--ui-control-mobile)!important;font-size:16px!important}
  .ui-stable .btn{min-height:42px}
  .ui-stable .table th,.ui-stable .table td{padding:10px 11px!important}
}
@media(max-width:520px){
  .ops-kpis,.asset-summary,.admin-overview,.ops-status-strip{grid-template-columns:1fr}
  .asset-meta-grid{grid-template-columns:1fr}.asset-meta-item{border-right:0!important;border-bottom:1px solid var(--line)}.asset-meta-item:last-child{border-bottom:0}
  .asset-hero{flex-direction:column}.asset-hero .actions{width:100%}.asset-hero .actions .btn{width:100%}
  .ui-stable .kv{grid-template-columns:1fr;gap:3px}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(prefers-contrast:more){.ui-stable .card,.ui-stable .table-wrap,.ui-stable .input,.ui-stable .select,.ui-stable .textarea{border-width:2px}.ui-stable .muted,.ui-stable small{color:#475569}}
