/* ARVION OS System Completion 21.5 — device, accessibility and usability hardening */
:root{
  --arv-touch:44px;
  --arv-safe-bottom:max(12px,env(safe-area-inset-bottom));
  --arv-mobile-nav-height:68px;
  --arv-focus:0 0 0 3px rgba(141,113,72,.22),0 0 0 1px #8d7148;
}
html{scroll-padding-top:calc(var(--arv-topbar) + 18px);scroll-padding-bottom:24px}
body{min-width:280px}
body.is-keyboard-open{--arv-mobile-nav-height:0px}
.arv-core-main{min-width:0}
.arv-core-content{overflow-wrap:anywhere}
.arv-core-content :is(p,small,li,dd,td,th,label){text-wrap:pretty}
.arv-core-content :is(h1,h2,h3){text-wrap:balance}

/* Reliable focus and keyboard access */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:0;box-shadow:var(--arv-focus);position:relative;z-index:2}
.arv-skip-link{position:fixed;left:14px;top:10px;z-index:9999;transform:translateY(-160%);padding:11px 14px;border-radius:10px;background:#22251f;color:#fff;font-weight:800;transition:transform .16s ease}
.arv-skip-link:focus{transform:translateY(0)}
[aria-busy="true"]{cursor:progress}
.arv-live-region{position:fixed!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}

/* Connection and update status */
.arv-system-status{position:fixed;left:50%;top:max(10px,env(safe-area-inset-top));z-index:120;display:flex;align-items:center;gap:10px;max-width:min(92vw,620px);padding:10px 12px;border:1px solid var(--arv-line);border-radius:13px;background:rgba(255,253,249,.98);box-shadow:0 14px 42px rgba(30,29,25,.18);transform:translate(-50%,-150%);opacity:0;pointer-events:none;transition:.2s ease}
.arv-system-status.is-visible{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.arv-system-status[data-tone="warn"]{border-color:#e3cfa9;background:#fff8ea}
.arv-system-status[data-tone="danger"]{border-color:#e5c3bd;background:#fff0ed}
.arv-system-status b{font-size:11px}.arv-system-status span{font-size:10px;color:var(--arv-muted)}
.arv-system-status button{min-height:36px;padding:0 11px;border:0;border-radius:9px;background:#252722;color:#fff;font-size:10px;font-weight:800}

/* Touch and control consistency */
@media(any-pointer:coarse){
  :where(button,.arv-btn,input,select,textarea,summary,a.arv-action){min-height:var(--arv-touch)}
  input[type="checkbox"],input[type="radio"]{min-width:20px;min-height:20px}
}
button,.arv-btn,summary{-webkit-user-select:none;user-select:none}
button:disabled,.arv-btn[aria-disabled="true"],.arv-btn:disabled{opacity:.56;cursor:not-allowed;transform:none!important}
form.is-submitting :is(button[type="submit"],input[type="submit"]){pointer-events:none;opacity:.72}
form.is-submitting :is(button[type="submit"],input[type="submit"])::after{content:"";width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:arv-spin .7s linear infinite}
@keyframes arv-spin{to{transform:rotate(360deg)}}

/* Form usability */
.arv-field :is(input,select,textarea)[aria-invalid="true"],:is(input,select,textarea).is-invalid{border-color:var(--arv-red)!important;box-shadow:0 0 0 3px rgba(154,77,67,.12)!important}
.arv-field-error{display:block;margin-top:6px;color:var(--arv-red);font-size:10px;font-weight:700}
.arv-file-selection{display:block;margin-top:7px;color:var(--arv-muted);font-size:10px;line-height:1.45}
.arv-form-actions{bottom:max(12px,env(safe-area-inset-bottom));max-width:100%}
.arv-form-actions :is(.arv-btn,button){min-width:0}
.arv-form-actions [data-autosave-status]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Tables remain readable without page overflow. Read-only tables become cards on phones. */
.table-wrap,.arv-table-wrap,.arv-responsive-scroll{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.table-wrap table,.arv-table-wrap table{min-width:100%}
table[data-arv-responsive="true"]{width:100%}
table[data-arv-responsive="true"] td,table[data-arv-responsive="true"] th{overflow-wrap:anywhere}

/* Dialogs and sheets */
:is(.arv-core-search-dialog,.arv-core-more-sheet,.arv-notification-sheet)[aria-hidden="true"]{visibility:hidden}
:is(.arv-core-search-dialog,.arv-core-more-sheet,.arv-notification-sheet)[aria-hidden="false"]{visibility:visible}
body:is(.is-core-more-open,.is-notification-open,.is-core-menu-open) .arv-core-main{contain:paint}

/* iPad/coarse-pointer compact shell between tablet and narrow desktop widths. */
html.arv-compact-shell .arv-core-shell{display:block}
html.arv-compact-shell .arv-core-sidebar{width:var(--arv-shell-tablet,286px);transform:translateX(-105%);transition:transform .2s ease;box-shadow:22px 0 70px rgba(0,0,0,.28)}
html.arv-compact-shell body.is-core-menu-open .arv-core-sidebar{transform:translateX(0)}
html.arv-compact-shell .arv-core-main{grid-column:auto}
html.arv-compact-shell .arv-core-menu{display:grid}
html.arv-compact-shell .arv-core-mobile-nav{display:grid}
html.arv-compact-shell .arv-core-content{padding-bottom:calc(var(--arv-mobile-nav-height) + 30px + env(safe-area-inset-bottom))}
html.arv-compact-shell body.is-core-menu-open .arv-core-scrim{display:block;position:fixed;inset:0;z-index:45;background:rgba(19,20,18,.46);backdrop-filter:blur(3px)}
html:not(.arv-compact-shell) .arv-core-mobile-nav{display:none!important}
html:not(.arv-compact-shell) .arv-core-sidebar{transform:none!important}

/* Software keyboard: actions remain reachable and bottom navigation leaves the way. */
html.arv-compact-shell body.is-keyboard-open .arv-core-mobile-nav{transform:translateY(140%);opacity:0;pointer-events:none}
html.arv-compact-shell body.is-keyboard-open .arv-core-content{padding-bottom:24px}
html.arv-compact-shell body.is-keyboard-open .arv-form-actions{bottom:8px}

/* Operational pages should stay compact and calm. */
.arv-core-content :is(.arv-hero,.arv-command-hero,.arv-reliability-hero,.arv-launch-hero){max-width:100%;overflow:hidden}
.arv-core-content :is(.arv-hero,.arv-command-hero,.arv-reliability-hero,.arv-launch-hero) h2{font-size:clamp(27px,3.4vw,44px)!important;line-height:1.03!important}
.arv-section-head{min-width:0}.arv-section-head>div{min-width:0}
.arv-row-actions{min-width:0}

/* High contrast and motion preferences */
@media(prefers-contrast:more){
  :root{--arv-line:#aaa397;--arv-muted:#4e504b}
  .arv-btn-quiet,.arv-card,.arv-field input,.arv-field select,.arv-field textarea{border-width:2px}
}
@media(prefers-reduced-motion:reduce){
  .arv-system-status,.arv-core-sidebar,.arv-core-mobile-nav{transition:none!important}
  form.is-submitting :is(button[type="submit"],input[type="submit"])::after{animation:none}
}

@media(max-width:980px), (max-width:1100px) and (any-pointer:coarse){
  html{scroll-padding-bottom:calc(var(--arv-mobile-nav-height) + 34px)}
  .arv-core-content{padding-bottom:calc(var(--arv-mobile-nav-height) + 32px + env(safe-area-inset-bottom))}
  .arv-core-mobile-nav{min-height:var(--arv-mobile-nav-height)}
  .arv-form-actions{bottom:calc(var(--arv-mobile-nav-height) + 10px + env(safe-area-inset-bottom));flex-wrap:wrap}
  .arv-form-actions>div{max-width:100%}
  .arv-core-topbar{position:sticky;top:0;z-index:35;background:rgba(244,241,235,.94);backdrop-filter:blur(16px)}
}

@media(max-width:700px){
  .arv-core-content{padding-inline:12px}
  .arv-card-pad{padding:16px}
  .arv-section-head,.arv-editor-title{align-items:flex-start;flex-direction:column;gap:10px}
  .arv-row-actions,.arv-compact-actions{width:100%}
  .arv-row-actions .arv-btn,.arv-compact-actions .arv-btn{flex:1 1 140px}
  .arv-field-grid{grid-template-columns:1fr;gap:12px}
  .arv-field,.arv-field[class*="span-"]{grid-column:1/-1}
  .arv-form-actions{padding:10px;border-radius:13px}
  .arv-form-actions>div{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .arv-form-actions :is(.arv-btn,button){width:100%;white-space:normal;text-align:center}
  .arv-system-status{top:max(8px,env(safe-area-inset-top));width:calc(100% - 20px);align-items:flex-start;flex-wrap:wrap}

  table[data-arv-responsive="true"]{display:block;background:transparent;border:0!important}
  table[data-arv-responsive="true"] thead{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important}
  table[data-arv-responsive="true"] tbody,table[data-arv-responsive="true"] tr,table[data-arv-responsive="true"] td{display:block;width:100%}
  table[data-arv-responsive="true"] tbody{display:grid;gap:10px}
  table[data-arv-responsive="true"] tr{padding:7px 12px;border:1px solid var(--arv-line);border-radius:13px;background:#fff;box-shadow:var(--arv-shadow-soft)}
  table[data-arv-responsive="true"] td{display:grid;grid-template-columns:minmax(96px,38%) minmax(0,1fr);gap:12px;align-items:start;padding:9px 0!important;border:0!important;border-bottom:1px solid #eee9df!important;text-align:left!important}
  table[data-arv-responsive="true"] td:last-child{border-bottom:0!important}
  table[data-arv-responsive="true"] td::before{content:attr(data-label);color:var(--arv-muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
  table[data-arv-responsive="true"] td[colspan]{display:block;text-align:center!important}
  table[data-arv-responsive="true"] td[colspan]::before{display:none}
}

@media(max-width:430px){
  .arv-form-actions>div{grid-template-columns:1fr}
  .arv-core-title h1{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  table[data-arv-responsive="true"] td{grid-template-columns:1fr;gap:4px}
}

/* Complete compact-shell treatment for iPad/coarse-pointer widths above 980px. */
html.arv-compact-shell body:is(.is-core-menu-open,.is-core-more-open,.is-notification-open){overflow:hidden}
html.arv-compact-shell .arv-core-topbar{min-height:70px;padding:12px 16px}
html.arv-compact-shell .arv-core-content{padding-inline:16px}
html.arv-compact-shell .arv-core-mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(9px,env(safe-area-inset-bottom));z-index:60;padding:6px;border:1px solid rgba(222,217,207,.9);border-radius:17px;background:rgba(255,253,249,.96);backdrop-filter:blur(18px);box-shadow:0 16px 50px rgba(25,25,22,.2)}
html.arv-compact-shell .arv-core-mobile-nav a,html.arv-compact-shell .arv-core-mobile-nav button{display:grid;place-items:center;gap:3px;min-width:0;min-height:50px;padding:4px;border:0;border-radius:12px;background:transparent;color:var(--arv-muted)}
html.arv-compact-shell .arv-core-mobile-nav a.is-active,html.arv-compact-shell .arv-core-mobile-nav button.is-active{background:#eee7da;color:#252722}
html.arv-compact-shell .arv-core-mobile-nav span{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--arv-brass)}
html.arv-compact-shell .arv-core-mobile-nav b{max-width:100%;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.arv-compact-shell .arv-core-more-sheet{display:block;left:50%;right:auto;top:auto;bottom:max(10px,env(safe-area-inset-bottom));width:min(560px,calc(100% - 20px));max-height:calc(var(--arv-visual-height,100dvh) - 24px);overflow:auto;padding:10px 16px max(16px,env(safe-area-inset-bottom));border-radius:24px;transform:translate(-50%,calc(100% + 40px));opacity:1;visibility:visible;pointer-events:none}
html.arv-compact-shell body.is-core-more-open .arv-core-more-sheet{transform:translate(-50%,0);pointer-events:auto}
html.arv-compact-shell .arv-core-more-handle{display:block}
html.arv-compact-shell .arv-notification-sheet{top:max(68px,calc(env(safe-area-inset-top) + 58px));right:12px;max-height:calc(var(--arv-visual-height,100dvh) - 92px)}
.arv-system-status>div{display:grid;gap:2px;min-width:0;flex:1}
.arv-auth-body{--arv-line:var(--auth-line,#d9d2c6);--arv-muted:var(--auth-muted,#6f716a);--arv-red:var(--auth-danger,#9b413b);--arv-shadow-soft:0 7px 24px rgba(44,40,32,.06)}
