/* Shared spacing and control alignment across workspace screens. */
:root{--space-panel:24px;--space-field:16px;--control-height:40px}
.page-heading{align-items:flex-start;flex-wrap:wrap;row-gap:16px}
.page-heading>div:first-child{min-width:0;flex:1 1 280px}
.page-heading h1{overflow-wrap:anywhere}
.library-actions,.actions{align-items:center;gap:10px}
.library-actions>form,.actions>form{margin:0}
main>:is(.panel,.detail-grid,.overview-grid,.library-layout,.template-grid,.document-grid,.stats){margin-bottom:var(--space-panel)}
main>:last-child{margin-bottom:0}
.detail-grid,.overview-grid{align-items:stretch}
.detail-grid>.form-panel,.overview-grid>.form-panel{margin-bottom:0;min-width:0}
.form-panel{padding:24px}
.form-panel>:last-child{margin-bottom:0}
.form-grid{gap:16px 22px;margin-bottom:18px;align-items:start}
.form-grid>label{margin:0;min-width:0}
.form-panel form>label{margin:0 0 var(--space-field)}
.form-panel form>label[for]{margin-bottom:8px}
.login-form form>label{margin:0 0 var(--space-field)}
.library-content>.folder-section:last-child{margin-bottom:0}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select{min-height:var(--control-height)}
input,select,textarea{max-width:100%;min-width:0}
input[type=hidden]{display:none}
textarea{display:block}
input[type=file]{padding:8px 10px}
.btn{min-height:var(--control-height);margin:0;flex-shrink:0}
.filter{align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:24px}
.filter>label{flex:1 1 220px;min-width:0;margin:0}
.filter>input:not([type=hidden]),.filter>select{flex:1 1 200px;margin:0;min-width:0}
.filter>.btn{align-self:flex-end}
.template-filters>select{flex:0 1 190px;width:auto}
.template-filters>input:not([type=hidden]){flex:1 1 240px}
.inline-create-controls{gap:10px;align-items:stretch}
.inline-create-controls>.btn,.inline-create-controls>input{margin:0}
.inline-create-form>label{margin:0 0 8px}
.actions{margin-top:20px}
form>:is(textarea,.rich-editor,.table-scroll)+.btn{margin-top:16px}
form>.fine{margin:16px 0}
.check{align-items:flex-start;gap:10px;line-height:1.6}
.check input{width:16px;height:16px;flex:0 0 16px;margin:2px 0 0}
td{vertical-align:middle}
td .check{margin:0}
td input,td select{margin-top:0}
.membership-form{gap:8px;margin:0;flex-wrap:nowrap}
.membership-form select{min-width:145px}
.table-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.table-actions form{margin:0}
.table-scroll{max-width:100%;overflow-x:auto}
.table-scroll>table{min-width:580px}
.compact-state-form,.compact-row form{margin:0}
.compact-details>.compact-edit-form{margin-top:8px}
.compact-edit-form>label{margin:0 0 8px}
.compact-row-main{row-gap:10px}
.editor-toolbar{gap:8px;margin:10px 0 12px}
.editor-toolbar .btn,.secret-output .btn{min-height:32px;margin:0}
.rich-editor{margin-top:0}
.topbar{min-height:76px;height:auto;row-gap:12px;padding-top:14px;padding-bottom:14px}
.topbar>span{min-width:0}
.search{min-width:160px;flex:0 1 310px}
.search input,.theme-control select{min-height:32px}
.theme-control{margin:0}
.workspace-switcher .btn{margin:8px 0}
.doc-card>.btn{margin-top:16px}
.doc-card .secret-output{width:100%}
.calendar-item{min-width:0;flex-wrap:wrap;row-gap:10px}
.calendar-item>div{min-width:0}
.calendar-item h2{overflow-wrap:anywhere}
@media(max-width:1000px){.topbar{gap:14px;flex-wrap:wrap}.topbar>.search{margin-left:auto}.form-panel{padding:20px}}
@media(max-width:800px){.topbar{min-height:64px;padding:12px 18px;gap:10px}.search{flex:1 1 160px}.page-heading>div:first-child{flex-basis:100%}.form-panel{padding:20px 16px}.form-grid{gap:16px}.page-heading>.library-actions{width:100%}.sidebar nav{align-items:center}.sidebar nav a{margin-bottom:0}.compact-row{padding:14px}.filter>label{flex-basis:100%}}
@media(max-width:480px){.filter>input:not([type=hidden]),.filter>select,.template-filters>select{flex:1 1 100%;max-width:none}.inline-create-controls>input{flex-basis:100%}.inline-create-controls>.btn{width:100%}.actions{gap:10px}.topbar .theme-label{display:none}.topbar .search kbd{display:none}.compact-row-main{gap:10px}}
.form-panel form.filter>label{margin:0}.filter>a{align-self:flex-end;min-height:40px;display:inline-flex;align-items:center}
.form-panel>.badge+form{margin-top:16px}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]),select{height:var(--control-height)}.search input,.theme-control select{height:32px}

/* Preserve explicit visibility when component styles set their own display. */
[hidden]{display:none!important}

.approver-choices{margin:0;padding:12px 16px;border:1px solid var(--line);border-radius:5px;min-width:0}.approver-choices legend{font-size:11px;font-weight:600;padding:0 6px}.approver-choices .check{margin:8px 0}.approver-choices .fine{margin:0 0 10px}.approver-choices .check:has(input:disabled){opacity:.55}
