@layer legacy {
/* AIOS Direction — AI Rules governance workspace */
.air-page {
  --air-bg: color-mix(in srgb, var(--surface, #ffffff) 92%, var(--accent, #2563eb) 8%);
  --air-panel: color-mix(in srgb, var(--surface, #ffffff) 97%, transparent);
  --air-border: color-mix(in srgb, var(--text, #172033) 13%, transparent);
  --air-muted: color-mix(in srgb, var(--text, #172033) 62%, transparent);
  --air-primary: var(--accent, #2563eb);
  --air-primary-soft: color-mix(in srgb, var(--air-primary) 12%, transparent);
  --air-ok: #16845b;
  --air-warn: #b66a00;
  --air-danger: #c33a4b;
  --air-shadow: 0 18px 54px rgba(15, 23, 42, 0.08);
  display: grid;
  gap: 22px;
  width: min(100%, 1540px);
  margin: 0 auto;
  padding: 4px 0 34px;
  color: var(--text, #172033);
}
.air-page *, .air-modal * { box-sizing: border-box; }
.air-page button, .air-page input, .air-page select, .air-page textarea, .air-modal button, .air-modal input, .air-modal select, .air-modal textarea { font: inherit; }
.air-page button, .air-modal button { min-height: 44px; }
.air-page svg, .air-modal svg, .air-floating-menu svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.air-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; padding: 26px 28px; border: 1px solid var(--air-border); border-radius: 24px; background: radial-gradient(circle at 92% 0%, var(--air-primary-soft), transparent 37%), var(--air-panel); box-shadow: var(--air-shadow); }
.air-heading { min-width: 0; }
.air-heading h1 { margin: 5px 0 7px; font-size: clamp(30px, 3vw, 45px); line-height: 1.02; letter-spacing: -0.045em; }
.air-heading p { max-width: 740px; margin: 0; color: var(--air-muted); font-size: 15px; line-height: 1.6; }
.air-eyebrow, .air-kicker { display: block; color: var(--air-primary); font-size: 11px; font-weight: 800; letter-spacing: .115em; text-transform: uppercase; }
.air-school-context { display: inline-flex; margin-top: 14px; padding: 7px 10px; border-radius: 999px; background: var(--air-primary-soft); color: var(--air-primary); font-size: 12px; font-weight: 720; }
.air-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.air-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 15px; border: 1px solid transparent; border-radius: 12px; cursor: pointer; font-weight: 760; transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.air-button:hover { transform: translateY(-1px); }
.air-button:focus-visible, .air-icon-button:focus-visible, .air-tabs button:focus-visible, .air-policy-main:focus-visible, .air-text-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--air-primary) 30%, transparent); outline-offset: 2px; }
.air-button-primary { background: var(--air-primary); color: #fff; box-shadow: 0 8px 22px color-mix(in srgb, var(--air-primary) 25%, transparent); }
.air-button-secondary { border-color: var(--air-border); background: var(--air-panel); color: inherit; }
.air-button-secondary:hover { border-color: color-mix(in srgb, var(--air-primary) 42%, var(--air-border)); background: var(--air-primary-soft); }
.air-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.air-summary-card, .air-score-card, .air-panel { border: 1px solid var(--air-border); border-radius: 19px; background: var(--air-panel); box-shadow: 0 9px 32px rgba(15, 23, 42, 0.045); }
.air-summary-card { display: flex; align-items: center; gap: 13px; min-height: 112px; padding: 18px; }
.air-summary-icon { display: grid; place-items: center; flex: 0 0 43px; width: 43px; height: 43px; border-radius: 13px; background: var(--air-primary-soft); color: var(--air-primary); }
.air-summary-card > div { display: grid; gap: 2px; min-width: 0; }
.air-summary-card strong { font-size: 25px; line-height: 1; letter-spacing: -.035em; }
.air-summary-card span:not(.air-summary-icon) { font-weight: 750; }
.air-summary-card small { color: var(--air-muted); line-height: 1.35; }
.air-summary-card.is-ok .air-summary-icon { background: color-mix(in srgb, var(--air-ok) 13%, transparent); color: var(--air-ok); }
.air-summary-card.is-warn .air-summary-icon { background: color-mix(in srgb, var(--air-warn) 13%, transparent); color: var(--air-warn); }
.air-score-card { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 19px; padding: 18px 22px; overflow: hidden; }
.air-score-ring { --score: 0; position: relative; display: grid; place-content: center; width: 74px; height: 74px; border-radius: 50%; background: conic-gradient(var(--air-primary) calc(var(--score) * 1%), color-mix(in srgb, var(--text, #172033) 10%, transparent) 0); }
.air-score-ring::after { content: ""; position: absolute; inset: 7px; border-radius: inherit; background: var(--air-panel); }
.air-score-ring strong, .air-score-ring span { position: relative; z-index: var(--z-raised); text-align: center; }
.air-score-ring strong { font-size: 22px; line-height: 1; }
.air-score-ring span { color: var(--air-muted); font-size: 10px; }
.air-score-card h2 { margin: 3px 0 4px; font-size: 20px; }
.air-score-card p { margin: 0; color: var(--air-muted); line-height: 1.45; }
.air-score-card > button { display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; color: var(--air-primary); cursor: pointer; font-weight: 760; }
.air-score-card.is-ok .air-score-ring { background: conic-gradient(var(--air-ok) calc(var(--score) * 1%), color-mix(in srgb, var(--text, #172033) 10%, transparent) 0); }
.air-score-card.is-warn .air-score-ring { background: conic-gradient(var(--air-warn) calc(var(--score) * 1%), color-mix(in srgb, var(--text, #172033) 10%, transparent) 0); }
.air-score-card.is-danger .air-score-ring { background: conic-gradient(var(--air-danger) calc(var(--score) * 1%), color-mix(in srgb, var(--text, #172033) 10%, transparent) 0); }
.air-tabs { display: flex; gap: 7px; padding: 7px; overflow-x: auto; scrollbar-width: thin; border: 1px solid var(--air-border); border-radius: 16px; background: var(--air-panel); }
.air-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; flex: 0 0 auto; min-height: 45px; padding: 9px 13px; border: 0; border-radius: 11px; background: transparent; color: var(--air-muted); cursor: pointer; font-weight: 720; white-space: nowrap; }
.air-tabs button svg { width: 18px; height: 18px; }
.air-tabs button:hover { background: var(--air-primary-soft); color: inherit; }
.air-tabs button.is-active { background: var(--air-primary); color: #fff; box-shadow: 0 7px 20px color-mix(in srgb, var(--air-primary) 20%, transparent); }
.air-tabs em { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: color-mix(in srgb, currentColor 14%, transparent); font-size: 11px; font-style: normal; }
.air-content { min-width: 0; }
.air-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.air-panel { min-width: 0; padding: 22px; }
.air-wide { grid-column: 1 / -1; }
.air-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.air-section-head h2 { margin: 4px 0 5px; font-size: 21px; letter-spacing: -.025em; }
.air-section-head p { max-width: 680px; margin: 0; color: var(--air-muted); line-height: 1.5; }
.air-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; background: var(--air-primary-soft); color: var(--air-primary); font-size: 12px; font-weight: 800; }
.air-text-button { display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; color: var(--air-primary); cursor: pointer; font-weight: 760; }
.air-recommendation-list, .air-event-list, .air-conflict-list, .air-policy-preview { display: grid; gap: 10px; }
.air-recommendation { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--air-border); border-radius: 14px; }
.air-recommendation > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--air-primary-soft); color: var(--air-primary); }
.air-recommendation.is-critical > span { background: color-mix(in srgb, var(--air-danger) 13%, transparent); color: var(--air-danger); }
.air-recommendation.is-high > span { background: color-mix(in srgb, var(--air-warn) 13%, transparent); color: var(--air-warn); }
.air-recommendation strong { display: block; }
.air-recommendation p { margin: 3px 0 0; color: var(--air-muted); line-height: 1.4; }
.air-recommendation button { display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; color: var(--air-primary); cursor: pointer; font-weight: 750; }
.air-all-clear, .air-empty { display: grid; place-items: center; gap: 8px; min-height: 160px; padding: 22px; border: 1px dashed var(--air-border); border-radius: 15px; text-align: center; color: var(--air-muted); }
.air-all-clear { grid-template-columns: auto 1fr; place-items: center start; min-height: 96px; text-align: left; }
.air-all-clear > svg, .air-empty > svg { width: 34px; height: 34px; color: var(--air-ok); }
.air-all-clear strong, .air-empty strong { color: var(--text, #172033); }
.air-all-clear p, .air-empty p { margin: 2px 0 0; }
.air-coverage-list { display: grid; gap: 15px; }
.air-coverage-list > div { display: grid; grid-template-columns: minmax(130px, .8fr) minmax(100px, 1.5fr) 28px; align-items: center; gap: 12px; }
.air-coverage-list span { font-weight: 690; }
.air-coverage-list strong { text-align: right; }
.air-coverage-track { height: 8px; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, var(--text, #172033) 9%, transparent); }
.air-coverage-track i { display: block; height: 100%; border-radius: inherit; background: var(--air-primary); }
.air-toolbar { display: grid; grid-template-columns: minmax(220px, 1fr) 155px 155px auto; align-items: end; gap: 11px; margin-bottom: 18px; }
.air-toolbar > label:not(.air-search) { display: grid; gap: 5px; color: var(--air-muted); font-size: 11px; font-weight: 760; }
.air-search { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 12px; border: 1px solid var(--air-border); border-radius: 12px; background: color-mix(in srgb, var(--air-panel) 88%, transparent); }
.air-search svg { flex: 0 0 auto; color: var(--air-muted); }
.air-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: inherit; }
.air-toolbar select, .air-field input, .air-field select, .air-field textarea { width: 100%; min-height: 44px; padding: 10px 11px; border: 1px solid var(--air-border); border-radius: 11px; background: var(--air-panel); color: inherit; outline: 0; }
.air-field textarea { resize: vertical; line-height: 1.48; }
.air-toolbar select:focus, .air-field input:focus, .air-field select:focus, .air-field textarea:focus { border-color: var(--air-primary); box-shadow: 0 0 0 3px var(--air-primary-soft); }
.air-policy-table { display: grid; overflow: hidden; border: 1px solid var(--air-border); border-radius: 15px; }
.air-policy-table-head, .air-policy-row { display: grid; grid-template-columns: minmax(280px, 2.4fr) minmax(120px, .85fr) 105px 105px 125px 44px; align-items: center; gap: 12px; }
.air-policy-table-head { min-height: 43px; padding: 0 14px; background: color-mix(in srgb, var(--text, #172033) 4%, transparent); color: var(--air-muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.air-policy-row { min-height: 82px; padding: 11px 14px; border-top: 1px solid var(--air-border); }
.air-policy-row:first-of-type { border-top: 0; }
.air-policy-row:hover { background: color-mix(in srgb, var(--air-primary) 3%, transparent); }
.air-policy-main { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.air-policy-main > span:last-child { display: grid; gap: 4px; min-width: 0; }
.air-policy-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.air-policy-main small { display: -webkit-box; overflow: hidden; color: var(--air-muted); line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.air-policy-icon { display: grid; place-items: center; flex: 0 0 39px; width: 39px; height: 39px; border-radius: 12px; background: var(--air-primary-soft); color: var(--air-primary); }
.air-policy-icon.is-block { background: color-mix(in srgb, var(--air-danger) 13%, transparent); color: var(--air-danger); }
.air-policy-icon.is-limit { background: color-mix(in srgb, var(--air-warn) 13%, transparent); color: var(--air-warn); }
.air-policy-icon.is-allow { background: color-mix(in srgb, var(--air-ok) 13%, transparent); color: var(--air-ok); }
.air-policy-scope { display: grid; gap: 3px; font-size: 13px; font-weight: 680; }
.air-policy-scope small { color: var(--air-muted); font-weight: 550; }
.air-effect, .air-priority { display: inline-flex; align-items: center; justify-content: center; width: fit-content; min-height: 28px; padding: 5px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.air-effect.is-block, .air-priority.is-critical { background: color-mix(in srgb, var(--air-danger) 13%, transparent); color: var(--air-danger); }
.air-effect.is-limit, .air-priority.is-high { background: color-mix(in srgb, var(--air-warn) 13%, transparent); color: var(--air-warn); }
.air-effect.is-allow { background: color-mix(in srgb, var(--air-ok) 13%, transparent); color: var(--air-ok); }
.air-priority.is-standard { background: var(--air-primary-soft); color: var(--air-primary); }
.air-priority.is-low { background: color-mix(in srgb, var(--text, #172033) 8%, transparent); color: var(--air-muted); }
.air-status-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 36px !important; padding: 4px 7px; border: 0; background: transparent; color: var(--air-muted); cursor: pointer; font-size: 11px; font-weight: 760; }
.air-status-toggle i { position: relative; width: 32px; height: 19px; border-radius: 999px; background: color-mix(in srgb, var(--text, #172033) 20%, transparent); transition: background .16s ease; }
.air-status-toggle i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 13px; height: 13px; border-radius: 50%; background: #fff; transition: transform .16s ease; box-shadow: 0 1px 4px rgba(0,0,0,.22); }
.air-status-toggle.is-active i { background: var(--air-ok); }
.air-status-toggle.is-active i::after { transform: translateX(13px); }
.air-icon-button { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid transparent; border-radius: 11px; background: transparent; color: var(--air-muted); cursor: pointer; }
.air-icon-button:hover { border-color: var(--air-border); background: var(--air-primary-soft); color: var(--air-primary); }
.air-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.air-policy-card { display: flex; flex-direction: column; min-height: 238px; padding: 17px; border: 1px solid var(--air-border); border-radius: 15px; background: color-mix(in srgb, var(--air-panel) 95%, transparent); }
.air-policy-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.air-policy-card h3 { margin: 15px 0 6px; font-size: 17px; }
.air-policy-card p { flex: 1; margin: 0; color: var(--air-muted); line-height: 1.48; }
.air-chip-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.air-chip-row span { padding: 5px 8px; border: 1px solid var(--air-border); border-radius: 999px; color: var(--air-muted); font-size: 10px; font-weight: 720; }
.air-policy-card-actions { display: flex; gap: 8px; margin-top: 14px; }
.air-policy-card-actions button, .air-limit-card > button, .air-conflict button { min-height: 38px; padding: 7px 10px; border: 1px solid var(--air-border); border-radius: 9px; background: transparent; color: inherit; cursor: pointer; font-weight: 700; }
.air-limit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.air-limit-card { padding: 16px; border: 1px solid var(--air-border); border-radius: 15px; }
.air-limit-card > div:first-child { display: flex; align-items: center; gap: 11px; }
.air-limit-card p { margin: 3px 0 0; color: var(--air-muted); }
.air-limit-card dl { display: grid; gap: 8px; margin: 15px 0; }
.air-limit-card dl > div { display: flex; justify-content: space-between; gap: 12px; }
.air-limit-card dt { color: var(--air-muted); }
.air-limit-card dd { margin: 0; font-weight: 750; text-align: right; }
.air-usage-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.air-usage-metrics > div { display: grid; gap: 3px; padding: 14px; border: 1px solid var(--air-border); border-radius: 13px; }
.air-usage-metrics strong { font-size: 24px; }
.air-usage-metrics span { color: var(--air-muted); font-size: 12px; }
.air-conflict, .air-event { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 13px; border: 1px solid var(--air-border); border-radius: 13px; }
.air-conflict > span, .air-event > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: color-mix(in srgb, var(--air-warn) 13%, transparent); color: var(--air-warn); }
.air-event > span.is-ok { background: color-mix(in srgb, var(--air-ok) 13%, transparent); color: var(--air-ok); }
.air-conflict p, .air-event p { margin: 3px 0 0; color: var(--air-muted); line-height: 1.35; }
.air-event time { color: var(--air-muted); font-size: 11px; white-space: nowrap; }
.air-log-table { overflow-x: auto; }
.air-log-table > article { display: grid; grid-template-columns: 150px 120px minmax(220px, 1fr) 110px; gap: 12px; min-width: 650px; padding: 11px 8px; border-bottom: 1px solid var(--air-border); }
.air-log-table > article:last-child { border-bottom: 0; }
}
