/* Shared Kayvia control sizing and dashboard spacing. Existing page structure and brand colours are retained. */
:root{--control-height:44px;--control-pad:16px;--control-gap:12px;--field-gap:8px;--section-gap:24px;--content-gap:20px;--control-ink:var(--desk-ink,#0f3d2e);--control-paper:var(--desk-soft,#fbf9f3);--control-line:var(--desk-line,#e3ddca);--control-focus:var(--desk-outline,#1b6b4a);--control-danger:#922f39;--control-danger-paper:#fff2f2;--control-radius:12px}
/* Scope dashboard controls to content. Navigation, editors, examination keys and floating tools keep their dedicated styles. */
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.button,.platform-button,.project-button,.owner-button,.payments-save,.webmail-reply,form>button:not([class])){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-height)!important;height:auto;width:fit-content;min-width:0;max-width:100%;padding:10px var(--control-pad)!important;font-family:inherit;font-size:14px!important;font-weight:750;line-height:1.5!important;text-align:center;text-decoration:none;white-space:normal;overflow-wrap:break-word;vertical-align:middle;flex:0 1 auto;align-self:start;justify-self:start;margin-block:0;border-radius:var(--control-radius);cursor:pointer}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.button,.platform-button,.project-button,.owner-button)>:is(svg,.icon){width:18px;height:18px;max-width:18px;max-height:18px;flex:0 0 18px}
body.platform-page main .platform-button:not(.primary):not(.dark):not(.danger){background:var(--control-paper)!important;color:var(--control-ink)!important;border:1px solid var(--control-line)!important}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main) :is(.button.danger-button,.button.danger,.platform-button.danger){background:var(--control-danger-paper)!important;color:var(--control-danger)!important;border:1px solid var(--control-danger)!important}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.actions,.form-actions,.page-actions,.platform-actions,.platform-request-actions,.platform-form-actions,.owner-actions,.project-links,.service-actions,.ticket-actions,.agent-job-toolbar,.student-actions,.profile-actions,.portal-action-row){display:flex;align-items:center;flex-wrap:wrap;gap:var(--control-gap);min-width:0;max-width:100%}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.actions,.form-actions,.page-actions,.platform-actions,.platform-request-actions,.platform-form-actions,.owner-actions,.project-links,.portal-action-row)>:is(form,details){margin:0!important;max-width:100%;min-width:0;flex:0 1 auto}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.actions,.form-actions,.page-actions,.platform-actions,.platform-request-actions,.platform-form-actions,.owner-actions,.project-links,.portal-action-row)>form{display:flex;align-items:center;flex-wrap:wrap;gap:var(--control-gap)}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) .portal-action-row>*{align-self:center}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.actions,.form-actions,.page-actions,.platform-actions,.platform-request-actions,.portal-action-row) :is(.button,.platform-button,.project-button){margin:0;align-self:center!important}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main) .portal-confirmation{display:inline-flex!important;align-items:center!important;gap:10px;min-height:var(--control-height);margin:0!important;font-size:14px;line-height:1.5}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main) .portal-confirmation input[type=checkbox]{margin:0!important;width:18px;height:18px;min-height:18px;flex:0 0 18px}
.portal-action-row>details[open]{flex-basis:100%!important;min-width:0}
.portal-action-row>details>summary{list-style:none}
.portal-action-row>details>summary::-webkit-details-marker{display:none}
.portal-action-row>details[open]>form{display:grid!important;gap:16px;max-width:640px;margin:16px 0 0!important;padding:20px;border:1px solid var(--control-line);border-radius:var(--control-radius);background:var(--control-paper)}
body.platform-page .platform-directory-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin:var(--section-gap) 0;padding:0 0 var(--section-gap);border-bottom:1px solid var(--control-line)}
body.platform-page main .platform-directory-filters>label{flex:1 1 180px;margin:0!important;min-width:0;display:grid;gap:var(--field-gap)}
body.platform-page main .platform-directory-filters>label:first-of-type{flex:2 1 280px}
body.platform-page main .platform-directory-filters>.portal-action-row{flex:0 1 auto}
body.platform-page main .platform-directory-filters :is(button,a.platform-button){align-self:flex-end!important}
body.platform-page .platform-request{padding:24px 0}
body.platform-page .platform-request-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:12px}
body.platform-page .platform-request-head>div{flex:1 1 300px;min-width:0}
body.platform-page .platform-request h3{font-size:20px;line-height:1.4;margin:0 0 12px}
body.platform-page .platform-request p{font-size:14px;line-height:1.7;margin:0 0 8px;overflow-wrap:anywhere}
body.platform-page .platform-request-actions{margin-top:20px}
.cbt-bank-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--control-gap)}
.cbt-bank-actions>form{display:flex;margin:0!important;min-width:0;max-width:100%}
.cbt-bank-actions .button{width:fit-content!important;max-width:100%;margin:0}
/* Keep form fields aligned without adding a second margin on top of their grid gap. */
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.form-grid,.platform-form-grid,.affiliate-form,.sms-form,.project-line,.cbt-bank-form,.pool-filters,.portal-form-grid)>label{margin:0!important;min-width:0;display:grid;gap:var(--field-gap)}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(.form-grid,.platform-form-grid,.affiliate-form,.sms-form,.project-line,.cbt-bank-form,.portal-form-grid){gap:var(--content-gap);min-width:0}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]),select){min-height:46px;line-height:1.5;padding:10px 12px;box-sizing:border-box;max-width:100%;min-width:0;font-size:16px}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main) textarea{line-height:1.65;max-width:100%;min-width:0;box-sizing:border-box}
/* One vertical rhythm for sections; grid children use the grid gap, never sibling card margins. */
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(main,.platform-main,.student-workspace-main,.owner-main)>:is(.panel,.platform-card,.project-card,.owner-card,.student-section-card,.student-payment-card,.community-card)+:is(.panel,.platform-card,.project-card,.owner-card,.student-section-card,.student-payment-card,.community-card){margin-top:var(--section-gap)}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(.dashboard-grid,.platform-dashboard-grid,.platform-grid,.grid,.project-grid,.owner-grid,.student-portal-grid,.community-grid,.pool-report-grid)>:is(.panel,.platform-card,.project-card,.owner-card,.student-section-card,.community-card){margin-block:0!important;min-width:0}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(.dashboard-grid,.platform-dashboard-grid,.platform-grid,.project-grid,.owner-grid,.student-portal-grid,.community-grid){gap:var(--section-gap);min-width:0}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(.panel,.platform-card,.project-card,.owner-card,.student-section-card,.community-card)>:is(h2,h3){margin-top:0;margin-bottom:12px;line-height:1.4}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(.panel,.platform-card,.project-card,.owner-card,.student-section-card,.community-card)>p{line-height:1.7;margin-bottom:16px}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(.platform-card-heading,.page-heading,.section-heading){gap:20px;flex-wrap:wrap;min-width:0}
body.platform-page :is(.platform-card-heading,.platform-form-card,.platform-settings-content){padding:20px 0}
body.platform-page .platform-card-heading{padding-top:0;margin-bottom:20px}
body.platform-page main :is(.platform-table-wrap,.table-wrap){width:100%;max-width:100%;overflow-x:auto}
body.platform-page main :is(.platform-table,.table){font-size:14px;line-height:1.6}
body.platform-page main .platform-table :is(td,th){font-size:14px;padding:14px 16px}
/* Public calls to action share a readable size while retaining their own colours and full-width card layouts. */
:is(body.marketing-page:not(.student-workspace),body.guards-marketing,.login-shell) :is(.button,.gm-button,.opportunity-button,.editorial-service-button,.project-button){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;font-size:14px;line-height:1.5;max-width:100%;white-space:normal;text-align:center}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--control-focus);outline-offset:3px}
:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(button:disabled,[aria-disabled=true]){cursor:not-allowed}
@media(max-width:760px){body.platform-page main .platform-directory-filters>label,body.platform-page main .platform-directory-filters>label:first-of-type{flex-basis:100%}.portal-action-row{row-gap:12px}.portal-action-row>details[open]>form{width:100%}body.platform-page .platform-request{padding-block:20px}:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(.platform-heading,.page-heading,.platform-card-heading){gap:16px}.platform-request-actions>form:has(.portal-confirmation){flex-basis:100%!important;justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){:is(body.kayvia-product-theme,body.owner-page,body.school-portal) :is(.button,.platform-button,.project-button,.owner-button){transition:none!important;animation:none!important}}
@media(max-width:400px){body.platform-page main .platform-directory-filters .portal-action-row :is(.platform-button,.button){font-size:13px!important;padding-inline:12px!important}}
