/* Web foundation. Load token CSS first. Page-specific layout stays outside this file. */
@font-face{font-family:Inter;src:url('../assets/fonts/InterVariable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
.ae-app,.ae-app *{box-sizing:border-box}.ae-app{margin:0;background:var(--bg);color:var(--text);font:var(--font-body)/var(--font-line) var(--font-family)}
.ae-app a{color:var(--link);text-underline-offset:4px}.ae-app :focus-visible{outline:2px solid var(--focus);outline-offset:3px}.ae-app [hidden]{display:none!important}
.ae-wrap{width:min(calc(100% - 32px),var(--size-content));margin-inline:auto}.ae-stack>*+*{margin-top:var(--space-4)}.ae-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}
.ae-header{background:var(--surface);border-bottom:1px solid var(--border)}.ae-header>.ae-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--size-header);padding-block:8px}
.ae-brand{display:inline-flex;align-items:center;min-height:44px}.ae-brand img{width:var(--size-logo-desktop);height:auto;display:block}.ae-brand .ae-brand-dark{display:none}[data-theme=dark] .ae-brand-light{display:none}[data-theme=dark] .ae-brand .ae-brand-dark{display:block}
.ae-button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:10px 18px;font:600 var(--font-button)/1.5 var(--font-family);background:var(--surface);color:var(--text);border:1px solid var(--border-control);border-radius:var(--radius-md);cursor:pointer;text-decoration:none}.ae-app a.ae-button{color:var(--text)}.ae-button:hover{background:var(--surface-alt)}.ae-button:disabled{cursor:not-allowed;border-style:dashed;color:var(--muted)}
.ae-button.ae-primary,.ae-app a.ae-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.ae-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.ae-danger{color:var(--danger);background:var(--danger-bg)}.ae-button[aria-busy=true]{cursor:progress}
.ae-icon-button{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text);display:inline-grid;place-items:center;cursor:pointer}.ae-icon-button:hover{background:var(--surface-alt)}.ae-icon-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ae-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--info-bg);color:var(--info);font-size:14px;font-weight:600}
.ae-field{display:grid;gap:8px}.ae-field label{font-weight:600}.ae-input,.ae-select,.ae-textarea{min-height:48px;width:100%;padding:12px 16px;border:1px solid var(--border-control);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font:inherit}.ae-input::placeholder,.ae-textarea::placeholder{color:var(--muted)}.ae-textarea{min-height:120px;resize:vertical}.ae-select{appearance:none;padding-right:52px;background-image:url('../assets/icons/chevron-down.svg');background-position:right 16px center;background-repeat:no-repeat;background-size:20px}.ae-input[aria-invalid=true],.ae-textarea[aria-invalid=true]{border-color:var(--danger)}.ae-hint{color:var(--muted);font-size:var(--font-small);margin:0}.ae-error{color:var(--danger);font-size:var(--font-small);margin:0}.ae-choice{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding-block:10px}.ae-choice input{width:20px;height:20px;margin:3px 0 0;accent-color:var(--primary);flex-shrink:0}
.ae-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.ae-badge{display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius-pill);padding:4px 12px;font-size:var(--font-small);color:var(--info);background:var(--info-bg)}.ae-badge.ae-success{color:var(--success);background:var(--success-bg)}.ae-badge.ae-warning{color:var(--warning);background:var(--warning-bg)}.ae-badge.ae-error{color:var(--danger);background:var(--danger-bg)}.ae-alert{padding:16px;border-inline-start:3px solid var(--info);background:var(--info-bg);color:var(--info);border-radius:var(--radius-sm)}
.ae-nav-link{display:block;min-height:48px;padding:12px 16px;border-radius:10px;text-decoration:none}.ae-nav-link:hover{background:var(--surface-alt)}.ae-nav-link[aria-current]{background:var(--info-bg);font-weight:600}
.ae-accordion{border-bottom:1px solid var(--border)}.ae-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:56px;padding:16px 0;cursor:pointer;list-style:none;font-weight:600}.ae-accordion summary::-webkit-details-marker{display:none}.ae-accordion summary::after{content:'';flex:none;width:8px;height:8px;margin-right:6px;border-right:2px solid var(--brand-primary);border-bottom:2px solid var(--brand-primary);transform:rotate(45deg)}.ae-accordion[open] summary::after{transform:rotate(225deg)}.ae-step{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--primary);color:var(--on-primary);font-weight:600}
.ae-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:var(--surface);color:var(--text);padding:24px;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elevation-overlay)}.ae-dialog::backdrop{background:rgb(0 0 0 / .6)}.ae-table-scroll{overflow:auto;max-width:100%}.ae-table{border-collapse:collapse;width:100%;text-align:left}.ae-table th,.ae-table td{padding:12px 16px;border-bottom:1px solid var(--border)}
.ae-skip{position:fixed;top:8px;left:8px;z-index:var(--z-toast);background:var(--surface);padding:12px;transform:translateY(-200%)}.ae-skip:focus{transform:none}
@media(max-width:639px){.ae-brand img{width:var(--size-logo-mobile)}.ae-card{padding:20px}.ae-dialog{padding:20px}}
@media(prefers-reduced-motion:reduce){.ae-app{scroll-behavior:auto}.ae-app *,.ae-app *::before,.ae-app *::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){.ae-button,.ae-card,.ae-input,.ae-select,.ae-textarea{border:1px solid CanvasText}.ae-app :focus-visible{outline:2px solid Highlight}.ae-accordion summary::after{border-color:ButtonText}}
