/* Shared Eduvize administration skin. Scope: .ev-admin only.
   Does not style app output, preview iframe content or Design System editor. */
/* Defaults are supplied by admin-tokens.css; active-theme.js owns --ev-* on :root. */

.ev-admin{
 margin:0;
 color:var(--ev-text);background:var(--ev-bg);font-family:var(--edu-admin-font)
}
.ev-admin .edu-admin__card{background:var(--ev-surface);border:1px solid var(--ev-border);border-radius:var(--ev-card-radius);color:var(--ev-text)}
.ev-admin .edu-admin__card label{color:var(--ev-text)}
/* Shared form fields: presentation belongs to Design System, not applications. */
.ev-admin .edu-admin__card :is(button:not(.edu-search-choice):not(.edu-choice):not(.edu-item-editor__drag)){min-height:var(--ev-control-height)}

.ev-admin .edu-admin__card input[type=checkbox]{accent-color:var(--ev-primary)}
.ev-admin .edu-admin__card button:not(.edu-admin__button):not(.edu-search-choice):not(.edu-choice):not(.edu-item-editor__drag){border-radius:var(--ev-control-radius);min-height:var(--ev-control-height);border:1px solid var(--ev-border);background:var(--ev-secondary);color:var(--ev-secondary-text)}
.ev-admin .edu-admin__card button[type=submit]:not(.edu-admin__button){background:var(--ev-primary);color:var(--ev-primary-text);border-color:var(--ev-primary)}
/* Canonical output section: identical form controls across applications. */
.ev-admin .edu-output-section{border:1px solid var(--ev-border);background:var(--ev-surface);border-radius:var(--ev-panel-radius,20px);padding:22px}
.ev-admin .edu-output-section .edu-output-mode-row{display:flex;flex-direction:column;gap:16px;min-width:0}
.ev-admin .edu-output-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px}
.ev-admin .edu-admin__card h2{font-size:clamp(19px,1.6vw,26px);line-height:1.25}
.ev-admin .edu-admin__card h2:not(:where(.edu-admin__flow>h2)){margin:0 0 17px}
/* Cards with a leading application icon retain a clear icon-to-title gap. */
.ev-admin .edu-admin__card>[data-edu-app-icon]+h2{margin-block-start:16px}
.ev-admin .edu-admin__stack>h2{margin:0}
.ev-admin .edu-admin__field-grid>.edu-checkbox-options{grid-column:1/-1}
.ev-admin .edu-admin__stack{display:flex;flex-direction:column;gap:20px}
.ev-admin .edu-admin__hint{margin:0;color:var(--ev-muted);font-size:13px;line-height:1.5}


/* Shared responsive page frame and grouped checkbox controls. */
.ev-admin,.ev-admin *{box-sizing:border-box}
.ev-admin{width:100%;min-width:0;max-width:100%;overflow-x:clip}
.ev-admin .shell{width:100%;max-width:100%;min-width:0;margin:0;padding:clamp(14px,2.2vw,36px)}
.ev-admin .edu-admin__card{min-width:0;max-width:100%}
.ev-admin .edu-admin__card .edu-checkbox-group{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0;max-width:100%;margin:0;padding:0;border:0;background:transparent}
.ev-admin .edu-admin__card .edu-checkbox-group-title{font-size:14px;font-weight:700;line-height:1.4;color:var(--ev-text);margin:0}

/* Canonical header module: the same markup and rules on every page. */
.edu-page-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 20px;margin:0 0 18px;padding:0;min-width:0;color:var(--ev-text,var(--edu-admin-ink,#142c46));font-family:var(--edu-admin-font,system-ui,sans-serif)}
.edu-page-header__identity{display:flex;align-items:center;gap:15px;min-width:0}


.edu-page-header__titles{min-width:0}
.edu-page-header__eyebrow{margin:0;font-size:13px;line-height:1.3;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--ev-primary,var(--edu-admin-primary,#087c91))}
.edu-page-header__title{margin:3px 0 0;font-size:clamp(25px,2.4vw,40px);font-weight:700;line-height:1.12;letter-spacing:normal;color:inherit}
.edu-page-header__description{grid-column:1/-1;margin:0;max-width:100%;font-size:14px;line-height:1.55;font-weight:400;color:var(--ev-muted,var(--edu-admin-muted,#638098));overflow-wrap:break-word}

.edu-page-header__home{grid-column:2;grid-row:1;display:inline-flex;align-items:center;justify-content:center;gap:10px;align-self:start;min-height:52px;padding:10px 14px;border-radius:var(--ev-icon-radius,10px);background:var(--ev-primary,var(--edu-admin-primary));text-decoration:none;flex-shrink:0;color:var(--ev-primary-text,var(--edu-admin-primary-text));font-size:14px;font-weight:600;line-height:1.3}
.edu-page-header__home img{display:block;width:32px;height:32px;object-fit:contain;flex:none}
.edu-page-header__home span{white-space:nowrap}
@media(max-width:480px){.edu-page-header__home{flex-direction:column;gap:5px;padding:8px;max-width:92px;font-size:12px;text-align:center}.edu-page-header__home img{width:26px;height:26px}}
.edu-page-header__home:focus-visible{outline:2px solid var(--ev-accent,var(--edu-admin-accent));outline-offset:4px}

/* Canonical administration page geometry. Header spacing and outer gutters
   belong here, not in individual applications. */
.edu-admin-page{box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0 auto;padding:clamp(16px,2.2vw,36px);display:flex;flex-direction:column;gap:20px}
.edu-admin-page>.edu-page-header{flex:0 0 auto;margin:0}
.edu-admin-page>:not(.edu-page-header){min-width:0;margin-top:0;margin-bottom:0}
@media(max-width:600px){.edu-admin-page{padding:16px;gap:16px}}

/* Specificity for existing application shell containers. */
.ev-admin .shell.edu-admin-page,.ev-admin .wrap.edu-admin-page,.edu-admin .edu-admin-page{width:100%;max-width:100%;margin:0 auto;padding:clamp(16px,2.2vw,36px);display:flex;flex-direction:column;gap:20px}
@media(max-width:600px){.ev-admin .shell.edu-admin-page,.ev-admin .wrap.edu-admin-page,.edu-admin .edu-admin-page{padding:16px;gap:16px}}

/* One canonical field contract for all admin labels and controls. */
.ev-admin :is(.edu-admin__card label:not(.edu-choice):not(.edu-item-editor__drag):not(.edu-admin__checkbox):not(:has(>input[type=checkbox])):not(:has(>input[type=radio])),.edu-admin__field,.edu-output-type){display:flex;flex-direction:column;gap:7px;min-width:0;color:var(--ev-text);font-weight:700}
.ev-admin :is(.edu-admin__card,.edu-admin__field,.edu-output-type) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){box-sizing:border-box;display:block;width:100%;min-width:0;height:var(--ev-control-height);min-height:var(--ev-control-height);padding:7px 11px;border:1px solid var(--ev-border);border-radius:var(--ev-field-radius,10px);background:var(--ev-surface);color:var(--ev-text);font:inherit;font-weight:400;appearance:auto}
.ev-admin :is(.edu-admin__card,.edu-admin__field,.edu-output-type) :is(input,select,textarea):focus-visible{outline:2px solid var(--ev-accent);outline-offset:2px}
.ev-admin .edu-output-type{max-width:340px}

/* Textarea is the multiline variant of the canonical text field. */
.ev-admin .edu-admin__field textarea,.ev-admin .edu-admin__card textarea{height:auto;min-height:calc(var(--ev-control-height)*2);resize:vertical}
/* One checkbox treatment across all admin cards and standalone groups. */
.ev-admin .edu-checkbox-options{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px}
.ev-admin .edu-checkbox-options label,.ev-admin label.edu-admin__checkbox{display:inline-flex;flex-direction:row;align-items:center;gap:8px;width:auto;font-size:13px;font-weight:600}
.ev-admin .edu-checkbox-options input[type=checkbox],.ev-admin .edu-admin__checkbox input[type=checkbox]{width:17px;height:17px;min-height:0;accent-color:var(--ev-accent)}

/* Checkbox/radio labels are horizontal, including labels nested in field grids. */
.ev-admin .edu-admin__card label:has(>input:is([type=checkbox],[type=radio])){display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;min-width:0}
.ev-admin .edu-admin__card label>input:is([type=checkbox],[type=radio]){flex:0 0 auto;width:17px;height:17px;min-height:0;margin:0;accent-color:var(--ev-accent)}
/* Native action buttons use the same bold typography as the button component. */
.ev-admin .edu-admin__card button:not(.edu-search-choice):not(.edu-choice):not(.edu-item-editor__drag):not(.ev-app-tile){font-family:var(--edu-admin-font);font-size:13px;font-weight:700}

/* Separate checkbox sections from preceding fields or explanatory text. */
.ev-admin .edu-admin__card :is(.edu-admin__field-grid,.preview-form-grid,.edu-admin__field,p)+.edu-checkbox-options:not(:where(.edu-admin__flow>*,.edu-admin__disclosure-body>*)){margin-block-start:16px}
.ev-admin .edu-admin__card :is(p,.edu-admin__hint,.edu-checkbox-group-title)+:is(.edu-checkbox-options,label.edu-admin__checkbox):not(:where(.edu-admin__flow>*,.edu-admin__disclosure-body>*)){margin-block-start:12px}

/* Shared section rhythm: explanations and status text stay clear of action rows. */
.ev-admin :is(.edu-admin__card,.edu-output-section) :is(.edu-admin__actions,.edu-output-actions,.actions)+:is(p,.help,.edu-admin__hint):not(:where(.edu-admin__flow>*,.edu-admin__disclosure-body>*)){margin-block-start:16px}
.ev-admin .edu-output-section>.edu-output-actions~:is(p,.edu-admin__hint):not(:empty){margin-block-start:16px;margin-block-end:0}
.ev-admin .edu-output-section>.edu-admin__hint:empty{display:none}

/* Vertical rhythm is a shared contract, including nested forms and status hints. */
.ev-admin{--edu-admin-flow-gap:20px;--edu-admin-related-gap:12px}
.ev-admin .edu-admin__flow{display:flex;flex-direction:column;align-items:stretch;gap:var(--edu-admin-flow-gap)}
.ev-admin .edu-admin__flow>*{margin-block:0}
.ev-admin .edu-admin__flow>:is(button,a.edu-admin__button){align-self:flex-start}
.ev-admin .edu-admin__flow>[role=status]:empty{display:none}
.ev-admin .edu-admin__card :is(p,.edu-admin__hint)+:is(form,.edu-admin__field,.edu-admin__field-grid,.edu-admin__actions):not(:where(.edu-admin__flow>*,.edu-admin__disclosure-body>*)){margin-block-start:var(--edu-admin-flow-gap)}
.ev-admin .edu-admin__card :is(button,.edu-admin__button)+:is(p,.edu-admin__hint):not(:where(.edu-admin__flow>*,.edu-admin__disclosure-body>*)){margin-block-start:var(--edu-admin-related-gap)}
.ev-admin .edu-admin__card :is(.edu-admin__field-grid,.edu-admin__control-row)+:is(button,.edu-admin__button):not(:where(.edu-admin__flow>*,.edu-admin__disclosure-body>*)){margin-block-start:var(--edu-admin-flow-gap)}
.ev-admin .edu-admin__card h3+:is(form,.edu-admin__field,.edu-admin__control-row):not(:where(.edu-admin__flow>*,.edu-admin__disclosure-body>*)){margin-block-start:var(--edu-admin-flow-gap)}

