:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#18201c;background:#f2f4f1;--green:#173f31;--green2:#245943;--line:#dfe4df;--muted:#66736b;--danger:#9b2c2c;--blue:#285f87}
*{box-sizing:border-box}body{margin:0;min-height:100vh}.hidden{display:none!important}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 24px rgba(30,45,36,.05)}.login-card{width:min(420px,100%);padding:32px;display:grid;gap:16px}.app-name{font-weight:900;font-size:26px;color:var(--green)}.app-name.small{font-size:19px}.login-card h1,.section-head h2{margin:0}.muted{color:var(--muted);font-size:14px}.error{color:var(--danger);font-size:14px;min-height:20px}label{display:grid;gap:7px;font-size:13px;font-weight:650;color:#405047}input,select{width:100%;border:1px solid #ccd5cf;border-radius:10px;padding:11px 12px;font:inherit;background:#fff;outline:none}input:focus,select:focus{border-color:#6b9482;box-shadow:0 0 0 3px rgba(73,122,101,.12)}button{border:0;border-radius:10px;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:var(--green2)}.secondary{background:#285f87;color:#fff}.secondary:hover:not(:disabled){background:#1f4b6b}.ghost{background:#edf1ee;color:#304038}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.title-wrap{display:flex;align-items:baseline;gap:15px}.top-actions{display:flex;align-items:center;gap:12px;font-size:14px}.layout{max-width:1240px;margin:24px auto;padding:0 18px 50px;display:grid;gap:20px}.upload-card,.form-card{padding:22px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.section-head p{margin:5px 0 0}.drop-zone{min-height:140px;border:2px dashed #b9c8bf;background:#f7faf8;border-radius:14px;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;padding:20px;color:#47564d;cursor:pointer}.drop-zone.drag{border-color:var(--green2);background:#eef6f1}.drop-zone span{font-size:13px;color:var(--muted)}.drop-icon{font-size:32px;color:var(--green)}.pending-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.file-pill{background:#f1f4f2;border:1px solid var(--line);padding:7px 9px;border-radius:8px;font-size:12px}.row{display:flex;gap:10px;align-items:center}.actions-row{margin-top:14px}.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:18px}.doc-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fbfcfb}.doc-card img{width:100%;height:190px;object-fit:contain;background:#ecefec}.doc-body{padding:10px;display:grid;gap:8px}.doc-title{font-size:12px;color:#5d6a62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-meta{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.doc-card select{padding:8px;font-size:12px}.doc-delete{background:#f7ecec;color:#8a2d2d;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.person-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.database-grid{grid-template-columns:1.1fr 1.5fr auto;align-items:end}.group-field{min-width:0}.field-action{display:flex;align-items:end}.divider{height:1px;background:var(--line);margin:22px 0}.money-grid{grid-template-columns:1fr 1fr 1fr}.money-input{text-align:right;font-variant-numeric:tabular-nums}.debt-box{background:#f2f6f3;border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;justify-content:center}.debt-box span{font-size:12px;color:var(--muted)}.debt-box strong{font-size:22px;font-variant-numeric:tabular-nums}.hint{font-weight:400;color:var(--muted)}.fixed-values{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.fixed-values span,.badge{border-radius:999px;background:#eef3ef;padding:6px 9px;font-size:12px;color:#42534a}.save-row{display:flex;align-items:center;gap:12px;margin-top:22px}.large{padding:13px 18px}.success-box{margin-top:16px;background:#edf8f0;border:1px solid #b9dfc2;border-radius:12px;padding:14px}.success-box a{color:#16512f;font-weight:700}.toast{position:fixed;right:18px;bottom:18px;background:#1e2b24;color:#fff;padding:12px 16px;border-radius:10px;z-index:100;box-shadow:0 8px 30px rgba(0,0,0,.18);max-width:420px}.pdf-row{display:grid;grid-template-columns:minmax(220px,380px) auto 1fr;gap:12px;align-items:end}.phone-field{min-width:0}.curator-field{position:relative}.suggestions{position:absolute;top:calc(100% + 5px);left:0;right:0;background:#fff;border:1px solid #cbd5cf;border-radius:10px;box-shadow:0 10px 25px rgba(25,40,31,.13);z-index:50;max-height:260px;overflow:auto}.suggestion{padding:10px 12px;cursor:pointer;border-bottom:1px solid #edf0ee;font-size:13px}.suggestion:last-child{border-bottom:0}.suggestion:hover,.suggestion.active{background:#eef5f1}.suggestion-empty{padding:10px 12px;color:var(--muted);font-size:13px}.selected-curator{border-color:#6b9482;background:#f8fbf9}select optgroup{font-weight:800}select option{font-weight:400}
@media(max-width:900px){.person-grid,.money-grid,.database-grid{grid-template-columns:1fr 1fr}.field-action{align-items:stretch}.pdf-row{grid-template-columns:1fr 1fr}.pdf-row .muted{grid-column:1/-1}.topbar{padding:0 14px}.layout{padding:0 10px}.upload-card,.form-card{padding:16px}}
@media(max-width:600px){.person-grid,.money-grid,.form-grid,.database-grid,.pdf-row{grid-template-columns:1fr}.save-row,.actions-row{align-items:stretch;flex-direction:column}.top-actions #userLabel{display:none}.title-wrap span:not(.app-name){display:none}}
textarea{width:100%;border:1px solid #ccd5cf;border-radius:10px;padding:11px 12px;font:inherit;background:#fff;outline:none;resize:vertical;min-height:54px}textarea:focus{border-color:#6b9482;box-shadow:0 0 0 3px rgba(73,122,101,.12)}.clipboard-field{margin-top:14px}.clipboard-field .hint{margin-top:2px}.group-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.compact{padding:10px 11px;white-space:nowrap}.group-dialog{border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.22);width:min(440px,calc(100vw - 28px))}.group-dialog::backdrop{background:rgba(19,28,23,.38)}.dialog-card{padding:22px;display:grid;gap:16px}.dialog-card h3{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.suggestions{max-height:340px}.money-input{padding-right:14px}
@media(max-width:900px){.group-wrap{grid-template-columns:1fr}.compact{width:100%}}

/* v0.4 navigation and workspaces */
.brand-line{display:flex;align-items:center;gap:24px;min-width:0}.nav-tabs{display:flex;align-items:center;gap:4px}.nav-btn{background:transparent;color:#334139;border-radius:8px;padding:9px 12px;font-weight:700}.nav-btn:hover,.nav-btn.active{background:#edf3ef;color:var(--green)}.count-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#a02f2f;color:#fff;font-size:11px;margin-left:4px}.wide-card{padding:22px}.segmented{display:flex;background:#eef2ef;border-radius:10px;padding:3px}.seg{background:transparent;color:#526159}.seg.active{background:#fff;color:var(--green);box-shadow:0 1px 4px rgba(0,0,0,.1)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.table-wrap table{border-collapse:collapse;width:100%;min-width:760px;background:#fff}.table-wrap th,.table-wrap td{padding:11px 12px;text-align:left;border-bottom:1px solid #edf0ee;font-size:13px}.table-wrap th{position:sticky;top:0;background:#f5f7f5;color:#506057;z-index:1}.click-row{cursor:pointer}.click-row:hover{background:#f0f6f2}.empty-state{padding:28px;text-align:center;color:var(--muted)}.search-line,.group-list-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;margin-bottom:16px}.med-grid{display:grid;grid-template-columns:minmax(360px,1.25fr) minmax(320px,.75fr);gap:16px 20px;align-items:start}.med-image{background:#eef1ef;border:1px solid var(--line);border-radius:12px;min-height:220px;display:grid;place-items:center;overflow:hidden}.med-image img{max-width:100%;max-height:520px;object-fit:contain}.empty-photo{color:var(--muted);padding:30px}.copy-panel{display:grid;gap:8px}.copy-panel textarea{min-height:72px}.copy-btn{justify-self:start;padding:7px 10px;font-size:12px}.medical-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}.doc-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.modal{border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.22)}.modal::backdrop{background:rgba(19,28,23,.42)}.editor-modal{width:min(1220px,96vw)}.editor-shell{padding:20px}.editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.editor-head h3{margin:0 0 4px}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;margin-top:16px}.canvas-wrap{background:#202522;border-radius:12px;display:grid;place-items:center;min-height:480px;padding:12px;overflow:auto}.canvas-wrap canvas{max-width:100%;height:auto;touch-action:none;background:#fff}.editor-controls{display:grid;align-content:start;gap:12px}.editor-controls label{gap:4px}.vertical{display:grid!important;grid-template-columns:1fr!important}.student-modal{width:min(1050px,94vw)}.student-modal .dialog-card{width:100%}.edit-grid{grid-template-columns:1fr 1.3fr 1fr 1fr 1fr;margin-top:16px}.address-panel{grid-template-columns:1fr}.small-modal{width:min(440px,calc(100vw - 28px))}
@media(max-width:900px){.brand-line{gap:8px}.nav-tabs{overflow:auto;max-width:60vw}.nav-btn{white-space:nowrap}.med-grid{grid-template-columns:1fr}.editor-layout{grid-template-columns:1fr}.edit-grid{grid-template-columns:1fr 1fr}.search-line,.group-list-toolbar{grid-template-columns:1fr}}
@media(max-width:600px){.nav-tabs{max-width:72vw}.app-name.small{display:none}.med-grid,.edit-grid{grid-template-columns:1fr}}
.search-input-wrap{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;border:1px solid #ccd5cf;border-radius:10px;background:#fff;overflow:hidden}.search-input-wrap:focus-within{border-color:#6b9482;box-shadow:0 0 0 3px rgba(73,122,101,.12)}.search-input-wrap input{border:0;border-radius:0;box-shadow:none!important}.search-clear{height:100%;min-height:42px;border-radius:0;background:#f3f5f3;color:#6c7770;font-size:22px;font-weight:500;padding:0 10px}.search-clear:hover{background:#e6ece8;color:#173f31}.group-list-toolbar{grid-template-columns:minmax(260px,1fr) auto auto}.sortable-th{cursor:pointer;user-select:none;white-space:nowrap}.sortable-th:hover{background:#eaf0ec!important}.sort-arrow{display:inline-block;min-width:14px;margin-left:5px;color:#748078;font-size:11px}.group-year{color:#6b776f;font-weight:700;white-space:nowrap}.group-add-note{margin-top:-6px;margin-bottom:14px;color:var(--muted);font-size:12px}
@media(max-width:900px){.group-list-toolbar{grid-template-columns:1fr}.search-input-wrap{grid-template-columns:38px minmax(0,1fr) 38px}}

/* v0.4.3 */
.person-grid{grid-template-columns:.75fr 1.15fr 1fr 1.15fr .9fr}
.special-notes-field{display:grid;gap:7px;margin-top:14px}
.suggest-field{position:relative;min-width:0}.suggest-field>label{display:grid;gap:7px}
.money-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid #ccd5cf;border-radius:10px;background:#fff;overflow:hidden}
.money-field:focus-within{border-color:#6b9482;box-shadow:0 0 0 3px rgba(73,122,101,.12)}
.money-field .money-input{border:0;border-radius:0;box-shadow:none!important;padding-right:5px}
.money-suffix{padding:0 13px 0 5px;font-weight:700;color:#26352d;user-select:none}
.search-line{display:block;margin-bottom:16px}.search-input-wrap{width:100%}
.group-list-toolbar{grid-template-columns:minmax(260px,1fr) auto}
.debt-row{background:#fff4f1}.debt-row:hover{background:#ffe9e4!important}.debt-cell{color:#a12626;font-weight:800}
.student-history{border-top:1px solid var(--line);padding-top:14px}.student-history h4{margin:0 0 10px}.history-box{max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fafbfa}.history-list{display:grid}.history-item{padding:10px 12px;border-bottom:1px solid #edf0ee}.history-item:last-child{border-bottom:0}.history-item>div{display:flex;gap:12px;justify-content:space-between;font-size:12px;color:var(--muted)}.history-item p{margin:5px 0 0;font-size:12px;line-height:1.45;color:#2e3933}
@media(max-width:1050px){.person-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.person-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.person-grid{grid-template-columns:1fr}}


/* v0.4.5 group tree + year emphasis */
.group-year-strong{font-weight:900;color:#18251e}.group-browser-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}.group-tree{border:1px solid var(--line);border-radius:12px;background:#f8faf8;max-height:720px;overflow:auto;padding:8px}.group-specials{display:grid;gap:5px;padding-bottom:8px;margin-bottom:6px;border-bottom:1px solid var(--line)}.group-year-node{border-bottom:1px solid #e7ece8}.group-year-node>summary{cursor:pointer;list-style:none;padding:10px 9px;font-weight:900;font-size:16px;color:#20342a;position:sticky;top:0;background:#f8faf8;z-index:2}.group-year-node>summary::-webkit-details-marker{display:none}.group-year-node>summary:before{content:"▾";display:inline-block;width:18px;color:#718078}.group-year-node:not([open])>summary:before{content:"▸"}.group-year-items{display:grid;gap:3px;padding:0 0 8px 15px}.group-tree-item{width:100%;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;color:#25352d;border-radius:7px;padding:7px 9px;font-weight:600}.group-tree-item:hover{background:#eaf1ec}.group-tree-item.active{background:#dcebe2;color:#123f2e;box-shadow:inset 3px 0 0 #174b38}.group-tree-item.special{padding:9px}.group-tree-item.special:first-child{color:#8f2525;background:#fff6f4}.group-tree-item.special:first-child.active{background:#ffe5df}.folder-mark{color:#c79b18}.group-browser-main{min-width:0}.group-current-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfb}.group-current-bar>div{display:flex;align-items:baseline;gap:8px}.group-current-bar strong{font-size:16px}.manual-medical-note{margin-bottom:14px;padding:10px 12px;border-radius:10px;background:#f3f6f4;color:#53645a}
@media(max-width:900px){.group-browser-layout{grid-template-columns:1fr}.group-tree{max-height:360px}.group-current-bar{align-items:stretch;flex-direction:column}.group-current-bar button{width:100%}}

/* v0.4.5 person-entry UX */
.gender-first select{font-weight:700}.suggest-field input::selection{background:#cfe4d8;color:#173829}

/* v0.4.6 table resize + neutral special groups */
.student-table{table-layout:fixed;min-width:1180px}.student-table th,.student-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sortable-th{position:sticky}.col-resizer{position:absolute;right:-4px;top:0;width:9px;height:100%;cursor:col-resize;z-index:4}.col-resizer:after{content:"";position:absolute;left:4px;top:24%;bottom:24%;width:1px;background:#cbd4ce}.col-resizer:hover:after{background:#6b9482;width:2px}.group-tree-item.special,.group-tree-item.special:first-child{color:#25352d;background:transparent}.group-tree-item.special:hover,.group-tree-item.special:first-child:hover{background:#eaf1ec}.group-tree-item.special.active,.group-tree-item.special:first-child.active{background:#dcebe2;color:#123f2e;box-shadow:inset 3px 0 0 #174b38}.warn-text{color:#9b5a12}


/* v0.4.8 workspace density + resizable/collapsible group sidebar */
.layout{max-width:none;margin:16px 0;padding:0 6px 44px}
.group-browser-layout{grid-template-columns:var(--group-sidebar-width,300px) minmax(0,1fr);gap:10px;transition:grid-template-columns .16s ease}
.group-sidebar{position:relative;min-width:0;transition:width .16s ease}
.group-sidebar .group-tree{width:100%;min-width:0}
.group-sidebar-resizer{position:absolute;top:0;right:-6px;width:12px;height:100%;cursor:col-resize;z-index:8}
.group-sidebar-resizer:after{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:2px;border-radius:2px;background:transparent}
.group-sidebar-resizer:hover:after{background:#7c9e8d}
.group-sidebar.compact .group-tree{overflow:hidden;padding:8px 6px}
.group-sidebar.compact .group-tree-item{justify-content:center;padding-left:4px;padding-right:4px;white-space:nowrap;overflow:hidden}
.group-sidebar.compact .group-tree-item strong,.group-sidebar.compact .group-item-label{display:none}
.group-sidebar.compact .group-year-node>summary{font-size:0;text-align:center;padding-left:0;padding-right:0}
.group-sidebar.compact .group-year-node>summary:before{font-size:16px;width:auto}
.group-sidebar.compact .group-year-items{padding-left:0}
.group-sidebar.compact .group-sidebar-resizer{display:none}
@media(max-width:900px){.layout{padding-left:6px;padding-right:6px}.group-browser-layout{grid-template-columns:1fr!important}.group-sidebar.compact .group-tree{overflow:auto}.group-sidebar.compact .group-tree-item{justify-content:flex-start}.group-sidebar.compact .group-tree-item strong{display:inline}.group-sidebar.compact .group-year-node>summary{font-size:16px;text-align:left}.group-sidebar.compact .group-sidebar-resizer{display:none}}

/* v0.4.9 */
.form-card>.section-head{align-items:center}.form-card>.section-head>button{flex:0 0 auto}

.rotate-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rotate-row button{white-space:nowrap}

/* v0.5.2 filters, print queue, password visibility, payments */
.password-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid #ccd5cf;border-radius:10px;background:#fff;overflow:hidden}
.password-wrap:focus-within{border-color:#6b9482;box-shadow:0 0 0 3px rgba(73,122,101,.12)}
.password-wrap input{border:0!important;border-radius:0!important;box-shadow:none!important}
.password-toggle{height:100%;border-radius:0;background:#eef2ef;color:#294236;padding:0 14px;font-size:13px;font-weight:700}
.password-toggle:hover{background:#e1e9e4}
.filters-panel{margin:0 0 14px;border:1px solid var(--line);border-radius:11px;background:#f9fbf9;overflow:hidden}
.filters-panel>summary{cursor:pointer;padding:10px 12px;font-weight:800;color:#294236;user-select:none}
.filters-panel[open]>summary{border-bottom:1px solid var(--line)}
.filters-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:12px}
.filters-grid label{gap:5px;font-size:12px;color:#56675d}.filters-grid input,.filters-grid select{padding:9px 10px;font-size:13px}
.filters-clear{align-self:end;min-height:40px}.compact-filters{margin-bottom:10px}
.print-table{min-width:1180px}.print-table th,.print-table td{vertical-align:top}.print-note{min-width:180px;white-space:normal!important}
.clear-note-check{display:flex!important;flex-direction:row!important;align-items:center;gap:6px!important;margin-top:7px;font-size:11px;color:var(--muted)}
.clear-note-check input{width:auto!important;min-width:0!important}
.print-actions{display:grid;gap:7px;min-width:170px}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:10px;padding:9px 12px;font-weight:700}
.payment-editor{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.payment-editor h4{margin:0 0 10px}
.payment-add-row{display:grid;grid-template-columns:180px 180px auto;gap:10px;align-items:end}.payment-history{margin-top:10px;max-height:180px;overflow:auto}
.mini-table{width:100%;font-size:12px}.mini-table th,.mini-table td{padding:7px 9px}
@media(max-width:1100px){.filters-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}}
@media(max-width:760px){.filters-grid{grid-template-columns:1fr 1fr}.payment-add-row{grid-template-columns:1fr 1fr}.payment-add-row button{grid-column:1/-1}}
@media(max-width:520px){.filters-grid{grid-template-columns:1fr}.payment-add-row{grid-template-columns:1fr}}

/* v0.5.4 Safari controls, group totals, payment actions */
button{-webkit-appearance:none;appearance:none;line-height:1.2;min-height:40px;display:inline-flex;align-items:center;justify-content:center}
.group-wrap .compact,.curator-field+button,#addCuratorBtn{min-height:44px;padding:10px 16px;border-radius:11px;white-space:nowrap}
.group-summary{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:12px}.group-summary>div{min-width:160px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#f8faf8;display:grid;gap:3px}.group-summary span{font-size:11px;color:var(--muted)}.group-summary strong{font-size:17px;color:#20342a;font-variant-numeric:tabular-nums}.payment-actions{display:flex;gap:6px;white-space:nowrap}.payment-actions button{min-height:30px;padding:6px 9px;font-size:11px}.payment-delete-btn{background:#f7ecec;color:#8a2d2d}
input[type="date"]{-webkit-appearance:none;appearance:none;min-height:42px}
/* v0.5.7 group browser, ranges and autocomplete */
.group-browser-layout{transition:grid-template-columns .32s cubic-bezier(.2,.8,.2,1)}
.group-sidebar{transition:width .32s cubic-bezier(.2,.8,.2,1),opacity .22s ease}
.group-sidebar-pin{position:absolute;right:12px;top:9px;z-index:12;width:32px;height:32px;padding:0;border-radius:8px;background:#eef3ef;color:#385246;opacity:.72}.group-sidebar-pin:hover,.group-sidebar-pin.active{opacity:1;background:#dcebe2}.group-tree{padding-top:45px}.group-year-node>summary{transition:background .18s ease,color .18s ease}.group-year-node>summary:hover,.group-year-node.active-year>summary{background:#e4efe8;color:#123f2e}.group-link-cell{cursor:pointer;text-decoration:underline;text-decoration-color:#a8bbb0;text-underline-offset:3px}.group-link-cell:hover{background:#edf5f0;color:#124b36}.filter-wide{grid-column:span 2}.range-pair{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:center;gap:6px}.range-pair>span:not(.money-box){text-align:center}.money-box{position:relative;display:block}.money-box input{width:100%;padding-right:28px!important}.money-box b{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:13px;color:#607168;pointer-events:none}.filters-grid input[type=date]{min-width:0;width:100%}
@media(max-width:760px){.filter-wide{grid-column:1/-1}}

/* v0.5.8 clearer compact range filters */
.range-filter{padding:9px 10px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;align-self:start}
.range-filter .range-title{display:block;width:100%;text-align:center;font-weight:800;color:#40564a;margin-bottom:7px}
.range-filter .range-pair{width:50%;margin:0 auto}
.range-filter .range-pair input{min-width:0;width:100%}
@media(max-width:1100px){.range-filter .range-pair{width:62%}}
@media(max-width:760px){.range-filter .range-pair{width:72%}}
@media(max-width:520px){.range-filter .range-pair{width:100%}}

.filter-suggest-wrap{position:relative}.filter-suggest-wrap label{display:block}.filter-suggest-wrap .suggestions{left:0;right:0;top:100%;z-index:40}

/* v0.6.0 search workspace + student drawer */
.search-modal{width:min(1500px,97vw);height:min(920px,94vh);max-width:none;max-height:none;overflow:hidden;border-radius:18px}
.search-modal-shell{height:100%;overflow:auto;padding:0;background:var(--bg,#f4f6f4)}
.search-modal .card{margin:0;border:0;border-radius:0;box-shadow:none;min-height:100%}
.search-modal .section-head{position:sticky;top:0;z-index:15;background:#fff;padding-top:4px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.search-modal .table-wrap{max-height:none}
.search-launch{background:#e8f0eb;color:#173f31}
#groupsAddGroupBtn{min-height:42px;padding:9px 15px;white-space:nowrap}
.student-modal{position:fixed;inset:12px 12px 12px auto;margin:0;width:min(720px,calc(100vw - 24px));height:calc(100vh - 24px);max-height:none;border-radius:16px;overflow:auto;transform:translateX(0);animation:studentDrawerIn .22s cubic-bezier(.2,.8,.2,1)}
.student-modal::backdrop{background:rgba(19,28,23,.24)}
.student-modal .dialog-card{min-height:100%;border-radius:0}
@keyframes studentDrawerIn{from{transform:translateX(35px);opacity:.25}to{transform:translateX(0);opacity:1}}
@media(max-width:760px){.search-modal{width:100vw;height:100dvh;border-radius:0}.student-modal{inset:0;margin:0;width:100vw;height:100dvh;border-radius:0}.student-modal .edit-grid{grid-template-columns:1fr}.search-modal .section-head{padding-top:8px}}


/* v0.6.1 UI polish: roomy search modal, aligned compact filters, readable tables */
.search-modal{
  width:min(1420px,calc(100vw - 120px));
  height:min(900px,calc(100vh - 100px));
  border-radius:18px;
}
.search-modal::backdrop{background:rgba(19,28,23,.42)}
.search-launch{background:transparent;color:#334139}
.search-launch:hover{background:#edf3ef;color:var(--green)}

/* Six-column filter grid: every logical field occupies the same two-column width. */
.filters-grid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}
.filters-grid>label:not(.range-filter),.filters-grid>.filter-suggest-wrap{grid-column:span 2;align-self:start}
.filters-grid>.range-filter{grid-column:span 2;width:100%;min-width:0}
.filters-grid>.range-filter .range-pair{width:100%;max-width:460px;margin:0 auto}
.filters-grid>.filters-clear{grid-column:span 2;justify-self:start;align-self:end}
.filter-suggest-wrap>label{height:100%}

/* Do not hide meaningful data in the student table. Rows may grow when F.I.O./group are long. */
.student-table td:nth-child(2),.student-table td:nth-child(4){white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;overflow-wrap:anywhere}
.student-table th:nth-child(2),.student-table th:nth-child(4){white-space:nowrap;overflow:visible;text-overflow:clip}

/* Give the editor enough horizontal room for a full group and long personal data. */
.student-modal{width:min(860px,calc(100vw - 80px));inset:20px 20px 20px auto;height:calc(100vh - 40px)}
.student-modal .person-grid{grid-template-columns:1.2fr 1.2fr 1.35fr 1.05fr .9fr}
.student-modal .edit-grid{grid-template-columns:1.35fr 1.7fr .9fr .9fr .9fr}
.student-modal #editGroup,.student-modal #editCuratorInput{min-width:0}

/* Pin stays inside the sidebar and uses a normal control instead of a floating emoji tile. */
.group-sidebar-pin{left:10px;right:10px;top:10px;width:auto;height:34px;min-height:34px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:#f6f8f6;color:#40564a;font-size:12px;opacity:1;transform:none}
.group-sidebar-pin:hover,.group-sidebar-pin.active{background:#e5efe9;color:#174b38}
.group-tree{padding-top:54px}
.group-sidebar.compact .group-sidebar-pin{left:50%;right:auto;width:36px;padding:0;transform:translateX(-50%);font-size:0}
.group-sidebar.compact .group-sidebar-pin::after{content:"📌";font-size:15px}

@media(max-width:1100px){
  .filters-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .filters-grid>label:not(.range-filter),.filters-grid>.filter-suggest-wrap,.filters-grid>.range-filter{grid-column:span 2}
  .student-modal .person-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .student-modal .edit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .search-modal{width:calc(100vw - 24px);height:calc(100dvh - 24px);border-radius:14px}
  .filters-grid{grid-template-columns:1fr 1fr}
  .filters-grid>label:not(.range-filter),.filters-grid>.filter-suggest-wrap,.filters-grid>.range-filter,.filters-grid>.filters-clear{grid-column:1/-1}
  .student-modal{inset:0;margin:0;width:100vw;height:100dvh;border-radius:0}
  .student-modal .person-grid,.student-modal .edit-grid{grid-template-columns:1fr}
}

/* v0.6.2 duplicate guard + compact pin + aligned group tree */
.group-sidebar-pin{left:auto;right:10px;top:10px;width:36px;height:36px;min-height:36px;padding:0;border-radius:9px;font-size:17px;line-height:1;display:grid;place-items:center}
.group-sidebar.compact .group-sidebar-pin{left:50%;right:auto;transform:translateX(-50%);width:34px;font-size:16px}
.group-sidebar.compact .group-sidebar-pin::after{content:none}
.group-year-items{padding-left:15px}
.group-tree-item{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;column-gap:8px;text-align:left}
.group-tree-item .folder-mark{width:22px;text-align:center}
.group-tree-item .group-item-label{display:block;min-width:0;text-align:left;overflow-wrap:anywhere}
.duplicate-modal{width:min(680px,calc(100vw - 40px));max-height:calc(100vh - 60px);overflow:auto}
.duplicate-list{display:grid;gap:10px;max-height:55vh;overflow:auto}
.duplicate-card{border:1px solid var(--line);border-radius:12px;padding:13px;display:grid;gap:5px;background:#fbfcfb}
.duplicate-card .duplicate-open{justify-self:start;margin-top:6px}
@media(max-width:600px){.duplicate-modal{width:calc(100vw - 20px)}.duplicate-modal .dialog-actions{flex-direction:column}.duplicate-modal .dialog-actions button{width:100%}}

/* v0.6.3 — ABV School visual identity */
:root{--brand-purple:#3d0d8f;--brand-purple-dark:#2f086f;--brand-purple-soft:#f1ebfb;--brand-purple-line:#d9c9f2;--green:var(--brand-purple);--green2:var(--brand-purple-dark);--blue:var(--brand-purple);--line:#e2ddeb;--muted:#706a78}
body{background:#f7f5fa;color:#211b29}.topbar{border-bottom-color:var(--brand-purple-line)}.app-name{color:var(--brand-purple)}
.primary,.secondary{background:var(--brand-purple);color:#fff}.primary:hover:not(:disabled),.secondary:hover:not(:disabled){background:var(--brand-purple-dark)}
.ghost{background:#f1edf6;color:#3d3348}.nav-btn{color:#3d3348}.nav-btn:hover,.nav-btn.active{background:var(--brand-purple-soft);color:var(--brand-purple)}
input:focus,select:focus,textarea:focus,.money-field:focus-within,.search-input-wrap:focus-within{border-color:#7550b6;box-shadow:0 0 0 3px rgba(61,13,143,.11)}
.drop-zone.drag{border-color:var(--brand-purple);background:#f6f1fc}.drop-icon{color:var(--brand-purple)}.selected-curator{border-color:#7550b6;background:#fbf9fe}.suggestion:hover,.suggestion.active,.click-row:hover{background:#f5f0fb}.seg.active{color:var(--brand-purple)}
.docs-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.doc-card{min-width:0}.doc-body,.doc-card select{min-width:0}.doc-card select{width:100%;max-width:100%}.doc-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.doc-actions button{width:100%;min-width:0;min-height:42px;padding:9px 8px;font-size:12px}.doc-delete{background:#f8eef1;color:#8a2940}

/* v0.7.0 — Schema v2.1 / legacy migration foundation */
.system-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:14px 0}.system-metric{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;min-width:0}.system-metric span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.system-metric strong{display:block;font-size:22px;line-height:1.15;color:var(--brand-purple)}.system-metric small{display:block;margin-top:5px;color:var(--muted);line-height:1.35}.system-warning{margin:14px 0;padding:12px 14px;border:1px solid var(--brand-purple-line);border-radius:12px;background:var(--brand-purple-soft);color:#3d3348;line-height:1.45}.legacy-db-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.legacy-db-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px;min-width:0}.legacy-db-card.error-card{border-color:#e8bcc6;background:#fff8fa}.legacy-db-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.legacy-db-title h3{margin:0}.status-ok{font-size:12px;font-weight:700;color:#287447}.legacy-db-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.legacy-db-metrics>div{background:#f7f5fa;border-radius:10px;padding:10px;min-width:0}.legacy-db-metrics span{display:block;font-size:11px;color:var(--muted)}.legacy-db-metrics strong{display:block;margin-top:3px;font-size:18px}.legacy-path{display:block;overflow-wrap:anywhere;color:var(--muted)}.system-subhead{margin:20px 0 8px;font-size:15px}.system-warning+.system-subhead{margin-top:14px}
@media (max-width:800px){.legacy-db-cards{grid-template-columns:1fr}.legacy-db-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.system-status-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.system-status-grid{grid-template-columns:1fr}.legacy-db-metrics{grid-template-columns:1fr 1fr 1fr}.system-metric strong{font-size:19px}}

/* v0.7.1 migration analysis */
.quality-table th,.quality-table td{white-space:nowrap}.quality-table thead tr:first-child th{text-align:center;background:#f8f5fc}.quality-table small{color:var(--muted)}


/* v0.7.2 dry-run person/enrollment migration planner */
.migration-plan-list{display:grid;gap:12px;margin-top:14px}.planner-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;min-width:0}.planner-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.planner-card-head>div{min-width:0}.planner-card-head strong{display:block;font-size:16px}.planner-card-head small{display:block;color:var(--muted);margin-top:3px}.planner-meta{font-size:12px;color:var(--muted);margin:9px 0 12px;overflow-wrap:anywhere}.planner-badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;white-space:nowrap;background:#f1edf6;color:#3d0d8f}.planner-badge.strong_candidate{background:#eaf7ef;color:#24683d}.planner-badge.probable{background:#fff6df;color:#795800}.planner-badge.review_required{background:#fff0f2;color:#8a2940}.planner-badge.separate{background:#f1f2f4;color:#4f5965}.planner-links{margin-top:4px}.planner-links td,.planner-links th{vertical-align:top}.planner-separate{margin-top:10px;padding:10px;border-radius:10px;background:#f7f5fa;font-size:12px;line-height:1.55}.planner-separate strong{display:block;margin-bottom:4px}@media(max-width:800px){.planner-card-head{align-items:flex-start}.planner-links{min-width:760px}}

/* v0.7.4 legacy baseline snapshot / delta monitor */
.delta-samples{max-width:360px;white-space:normal;overflow-wrap:anywhere}.system-status-grid+.system-status-grid{margin-top:12px}

/* v0.8.0 migration review console */
.review-toolbar{display:grid;grid-template-columns:180px 180px 220px minmax(220px,1fr);gap:10px;align-items:end;margin:14px 0}.review-toolbar label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.review-toolbar input,.review-toolbar select{width:100%;min-width:0}.review-console{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:14px;min-height:560px}.review-case-list{border:1px solid var(--line);border-radius:14px;background:#faf9fc;overflow:hidden;display:flex;flex-direction:column;min-height:0}.review-case-list #reviewCaseList{overflow:auto;max-height:760px}.review-case-row{width:100%;display:block;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;padding:12px 13px;color:inherit;cursor:pointer}.review-case-row:hover,.review-case-row.active{background:#f3edfb}.review-case-row-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.review-case-row strong{display:block;margin-top:5px;font-size:14px;line-height:1.3}.review-case-row small{display:block;margin-top:3px;color:var(--muted);line-height:1.35}.review-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;letter-spacing:.02em}.review-badge.blocking{background:#fdecef;color:#8c2039}.review-badge.review{background:#fff5dd;color:#755500}.review-badge.info{background:#edf4fb;color:#285f87}.review-status{font-size:10px;font-weight:700;color:var(--muted)}.review-case-detail{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px;min-width:0;overflow:auto}.review-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.review-detail-head h3{margin:0;font-size:20px}.review-detail-head p{margin:5px 0 0}.review-evidence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:12px}.review-source-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfafc;min-width:0}.review-source-card h4{margin:0 0 8px;font-size:14px}.review-source-card dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:5px 8px;margin:0;font-size:12px}.review-source-card dt{color:var(--muted)}.review-source-card dd{margin:0;overflow-wrap:anywhere}.review-conflict-value{color:#9b2c2c;font-weight:700}.review-match-value{color:#287447}.review-decision-box{margin-top:16px;padding:14px;border:1px solid var(--brand-purple-line);border-radius:12px;background:#faf7fe}.review-decision-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.review-decision-actions button{min-height:38px}.review-field-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.review-field-picks label,.review-split-grid label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.review-split-grid{display:grid;grid-template-columns:1fr 110px;gap:8px;align-items:center;margin:10px 0}.review-history{margin-top:14px}.review-history-item{border-top:1px solid var(--line);padding:8px 0;font-size:12px}.review-history-item:first-child{border-top:0}.review-why{white-space:pre-wrap;overflow-wrap:anywhere}.review-trainings{margin-top:12px}.review-trainings table{min-width:620px}.review-case-list>.ghost{margin:10px}.review-empty-good{padding:18px;border-radius:12px;background:#eef8f1;color:#24683d;font-weight:700}.review-split-help{margin-top:14px}.review-split-fields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin:12px 0}.review-split-person{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.review-split-person h5{margin:0 0 4px;font-size:14px}.review-split-person .review-field-picks{grid-template-columns:1fr}.review-split-warning{margin:12px 0}
@media(max-width:1050px){.review-toolbar{grid-template-columns:1fr 1fr}.review-console{grid-template-columns:1fr}.review-case-list #reviewCaseList{max-height:380px}.review-field-picks{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.review-toolbar{grid-template-columns:1fr}.review-field-picks{grid-template-columns:1fr}.review-detail-head{display:block}.review-evidence-grid{grid-template-columns:1fr}.review-source-card dl{grid-template-columns:92px minmax(0,1fr)}}

/* v0.8.18 */
#editorCanvas{cursor:crosshair;touch-action:none}
.suggestion-managed{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0!important}
.suggestion-managed>span{display:block;flex:1;padding:9px 10px;cursor:pointer}
.suggestion-remove{background:transparent;color:#9d3535;padding:5px 9px;margin-right:3px;font-size:18px;line-height:1;border-radius:8px}
.suggestion-remove:hover{background:#f9ecec}
.suggestion-add{width:100%;text-align:left;background:#eef6f1;color:#285f48;border-radius:0;padding:9px 10px;font-weight:700}
.suggestion-add:hover{background:#e3f0e8}
.print-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.print-actions .ghost{white-space:nowrap}

.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* v0.8.23 Admin workspace + cross-source read-only data */
.dialog-spacer{flex:1}
.admin-group-tree{padding-top:12px}
.admin-contact-grid{grid-template-columns:1.1fr 1fr 1.35fr .75fr}
.admin-passport-grid{grid-template-columns:.7fr .9fr 1fr 1fr}
.admin-address-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.admin-wide{grid-column:span 2}
.admin-address-grid .admin-wide{grid-column:span 5}
.admin-field-support{margin:10px 0 4px;padding:9px 11px;border:1px dashed var(--line);border-radius:9px;background:#fafbfa}
.admin-student-table{min-width:1080px}
.admin-student-table tbody tr{cursor:pointer}
.admin-student-table tbody tr:hover{background:#eef5f1}
.admin-readonly-block{margin-top:16px;padding:14px;border:1px solid #d8e2dc;border-radius:12px;background:#f8fbf9}
.admin-readonly-block h4{margin:0 0 10px}
.admin-readonly-grid{display:grid;gap:10px}
.admin-readonly-card{padding:12px;border:1px solid #dfe7e2;border-radius:10px;background:white}
.admin-readonly-card>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.admin-readonly-card>div:first-child span{font-size:12px;color:var(--muted)}
.admin-readonly-card dl{display:grid;grid-template-columns:120px minmax(0,1fr);gap:5px 10px;margin:0}
.admin-readonly-card dt{font-size:12px;color:var(--muted)}
.admin-readonly-card dd{margin:0;overflow-wrap:anywhere}
@media(max-width:900px){.admin-contact-grid,.admin-passport-grid,.admin-address-grid{grid-template-columns:1fr 1fr}.admin-wide,.admin-address-grid .admin-wide{grid-column:span 2}}
@media(max-width:600px){.admin-contact-grid,.admin-passport-grid,.admin-address-grid{grid-template-columns:1fr}.admin-wide,.admin-address-grid .admin-wide{grid-column:span 1}.admin-readonly-card dl{grid-template-columns:1fr}.dialog-spacer{display:none}}

/* v0.8.23 role accounts, access cutover, Admin header group */
.admin-editor-head{display:grid;grid-template-columns:minmax(250px,1fr) minmax(300px,480px) auto;align-items:start;gap:18px}
.admin-title-block{min-width:0}.admin-header-group{align-self:start}.admin-header-group select{min-width:300px}
.admin-contact-grid{grid-template-columns:1.15fr 1fr .7fr}
.access-policy-row{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fafbfa;margin-bottom:14px}
.toggle-line,.mini-toggle{display:flex;align-items:center;gap:8px}.toggle-line input,.mini-toggle input{width:auto}.toggle-line{font-weight:750}
.app-user-create-grid{grid-template-columns:1fr 1.4fr 1fr .8fr auto;align-items:end;margin-bottom:14px}
.app-users-table{min-width:900px}.app-users-table input,.app-users-table select{min-width:130px;padding:8px 9px}.app-users-table td{vertical-align:middle}
.compact-head{margin-top:2px}.compact-head h3{margin:0}.danger{background:#9b2c2c;color:#fff}.danger:hover:not(:disabled){background:#7f2222}
@media(max-width:1000px){.admin-editor-head{grid-template-columns:1fr auto}.admin-header-group{grid-column:1/-1;grid-row:2}.admin-header-group select{min-width:0}.app-user-create-grid{grid-template-columns:1fr 1fr}.app-user-create-grid .align-end{align-self:end}}
@media(max-width:600px){.admin-editor-head{grid-template-columns:1fr auto}.app-user-create-grid{grid-template-columns:1fr}.admin-header-group{grid-column:1/-1}.admin-header-group select{width:100%}}

/* v0.8.24: admission review + global audit */
.audit-toolbar{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:10px;margin-bottom:14px;align-items:end}.audit-toolbar .audit-query{grid-column:span 2}.admission-toolbar{grid-template-columns:minmax(170px,.6fr) minmax(300px,1.5fr) minmax(190px,.7fr)}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;white-space:nowrap}.status-pill.pending{background:#fff5d6;color:#795b00}.status-pill.approved{background:#e7f6eb;color:#176331}.status-pill.rejected{background:#faeaea;color:#8b2929}.status-pill.cancelled{background:#eceeed;color:#59615d}.admission-detail{margin:16px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.admission-detail .detail-cell{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fafcfa;display:grid;gap:4px}.admission-detail .detail-cell span{font-size:11px;color:var(--muted)}.admission-detail .detail-wide{grid-column:span 3}.audit-json{white-space:pre-wrap;word-break:break-word;max-height:65vh;overflow:auto;background:#f5f7f5;border:1px solid var(--line);border-radius:12px;padding:14px;font-size:12px;line-height:1.45}.audit-event{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.audit-summary-cell{max-width:440px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-action{padding:6px 9px;font-size:12px}.admission-fio{font-weight:800}.admission-comment{max-width:320px;color:var(--muted)}
@media(max-width:1000px){.audit-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-toolbar .audit-query{grid-column:span 2}.admission-toolbar{grid-template-columns:1fr}.admission-detail{grid-template-columns:1fr}.admission-detail .detail-wide{grid-column:span 1}}

/* v0.8.26 Admin workflow */
.admin-search-input-wrap{grid-template-columns:42px minmax(0,1fr) 42px!important}
.admin-search-input-wrap input{width:100%;min-width:0}
.admin-person-grid{grid-template-columns:.8fr 1.1fr 1.1fr 1.25fr 1fr}
.admin-contact-grid{grid-template-columns:1.15fr 1fr .85fr 1.2fr .7fr .8fr}
.admin-birth-grid{grid-template-columns:1fr}
.admin-passport-grid{grid-template-columns:.7fr .9fr 1fr 1fr}
.admin-address-grid-v2{display:grid;grid-template-columns:.8fr 1.3fr 1fr 1.15fr 1.2fr .65fr .65fr .65fr;gap:14px 16px}
.admin-address-grid-v2 .admin-wide{grid-column:span 3}
.admin-medical-grid{grid-template-columns:.65fr .9fr .9fr .8fr 1.4fr 1fr 1fr 1fr;gap:14px 16px}
.admin-medical-grid .admin-wide{grid-column:span 2}
.admin-license-grid{grid-template-columns:.65fr .85fr .9fr 1.5fr;gap:14px 16px}
.admin-license-grid .admin-wide{grid-column:span 2}
.admin-extra-details{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fafbfa}
.admin-extra-details summary{cursor:pointer;font-weight:700;color:#42534a}
.admin-extra-details[open] summary{margin-bottom:12px}
.two-col{grid-template-columns:1fr 1fr}
#adminTransmissionWrap.hidden{display:none}
@media(max-width:1100px){.admin-person-grid,.admin-contact-grid,.admin-passport-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-address-grid-v2,.admin-medical-grid,.admin-license-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-address-grid-v2 .admin-wide,.admin-medical-grid .admin-wide,.admin-license-grid .admin-wide{grid-column:span 2}}
@media(max-width:700px){.admin-person-grid,.admin-contact-grid,.admin-passport-grid,.admin-address-grid-v2,.admin-medical-grid,.admin-license-grid,.two-col{grid-template-columns:1fr}.admin-address-grid-v2 .admin-wide,.admin-medical-grid .admin-wide,.admin-license-grid .admin-wide{grid-column:span 1}}

/* v0.8.26: one-line Russian address autocomplete */
.admin-address-one-line{grid-template-columns:minmax(0,1fr) 190px;align-items:end}
.admin-address-one-line .admin-address-field{grid-column:1 / -1;position:relative}
.address-suggestions{position:absolute;left:0;right:0;top:calc(100% - 20px);z-index:80;max-height:320px;overflow:auto;padding:6px;background:#fff;border:1px solid #ded7e9;border-radius:14px;box-shadow:0 16px 40px rgba(50,35,70,.18)}
.address-suggestion{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:2px;padding:11px 13px;border:0;border-radius:10px;background:transparent;text-align:left;color:#222;cursor:pointer}
.address-suggestion:hover,.address-suggestion:focus{background:#f3eef9}
.address-suggestion strong{font-size:14px;font-weight:700}
.address-suggestion span{font-size:12px;color:#777}
@media (max-width:760px){.admin-address-one-line{grid-template-columns:1fr}}

/* v0.8.27 live duplicate guard */
.duplicate-inline{margin:12px 0 16px;padding:14px 16px;border:1px solid #e3b55d;background:#fff8e8;border-radius:14px}
.duplicate-inline.hidden{display:none}
.duplicate-inline-title{font-weight:800;margin-bottom:8px;color:#6b4a00}
.duplicate-inline-list{display:grid;gap:8px}
.duplicate-inline-item{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:9px 11px;background:#fff;border-radius:10px;border:1px solid #ead9b4}
.duplicate-inline-main{min-width:0}
.duplicate-inline-meta{font-size:.88rem;color:#6d6a73;margin-top:3px}
.duplicate-inline button{white-space:nowrap}

.admin-group-current-bar{display:grid;grid-template-columns:minmax(180px,auto) minmax(220px,1fr) auto;align-items:center}
.admin-group-current-bar>div{display:flex;align-items:center}
.admin-group-dates{font-weight:800;color:#53645a;justify-content:center}
.table-link{border:0;background:transparent;padding:0;color:#4b0a9d;text-decoration:underline;text-underline-offset:2px;font:inherit;font-weight:800;cursor:pointer}
.table-link:hover{color:#6a13c7}
@media(max-width:1050px){.admin-group-current-bar{grid-template-columns:1fr}.admin-group-dates{justify-content:flex-start}}

/* v0.8.30 — Admin compact group dates / category pickers / temporary registration */
.custom-date-field{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:6px;align-items:center}
.custom-date-field input{min-width:0}
.date-open-btn{height:44px;min-height:44px;padding:0;display:grid;place-items:center;font-size:18px}
.admin-date-picker-card{width:min(410px,calc(100vw - 32px));padding:18px}
.date-picker-head{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:8px;margin-bottom:12px}
.date-picker-head strong{text-align:center;font-size:17px}
.date-picker-week,.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.date-picker-week span{text-align:center;font-size:11px;color:var(--muted);padding:5px 0;font-weight:700}
.date-empty{min-height:38px}
.date-day{border:0;border-radius:9px;min-height:38px;background:#f7f5fa;color:#2f2936;cursor:pointer;font-weight:650}
.date-day:hover{background:var(--brand-purple-soft);color:var(--brand-purple)}
.date-day.active{background:var(--brand-purple);color:#fff}
.temporary-registration-toggle{display:flex!important;align-items:center;gap:9px;min-height:44px;font-weight:700;color:#40564a}
.temporary-registration-toggle input{width:20px;height:20px;margin:0;flex:0 0 auto}
.category-picker-field{display:grid;gap:7px}.field-caption{font-weight:700;color:#40564a}.category-checks{display:flex;flex-wrap:wrap;gap:7px}
.category-chip{display:inline-flex!important;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 10px;cursor:pointer;font-size:13px;font-weight:700;min-height:36px}
.category-chip:has(input:checked){border-color:#7550b6;background:var(--brand-purple-soft);color:var(--brand-purple)}
.category-chip input{width:16px;height:16px;margin:0}
#adminAddressHint{line-height:1.35}
@media(max-width:650px){.admin-date-picker-card{width:calc(100vw - 20px)}.category-checks{gap:5px}.category-chip{padding:6px 8px}}

.form-error{margin:10px 0;padding:10px 12px;border:1px solid #e8b9b9;background:#fff4f4;color:#9c2626;border-radius:10px;font-size:14px;font-weight:700}

/* v0.8.33: compact Admin group tree */
.admin-group-tree .group-year-node>summary{padding:6px 7px;font-size:15px;line-height:1.15}
.admin-group-tree .group-year-node>summary:before{width:15px}
.admin-group-tree .group-year-items{gap:0;padding:0 0 4px 7px}
.admin-group-tree .group-tree-item{grid-template-columns:16px minmax(0,1fr);column-gap:5px;padding:3px 6px;min-height:28px;line-height:1.15;border-radius:5px}
.admin-group-tree .group-tree-item .folder-mark{width:16px;font-size:13px}
.admin-group-tree .group-item-label{line-height:1.15}

/* v0.8.35: Admin group counters, limits and client-side filters */
.admin-group-title-wrap{display:flex!important;align-items:center!important;gap:12px!important;flex-wrap:wrap}
.admin-group-count{display:inline-flex;align-items:center;min-height:28px;padding:3px 9px;border-radius:999px;background:#edf3ef;color:#40564a;font-size:13px;font-weight:800;white-space:nowrap}
.admin-group-count.over-limit{background:#fff0ed;color:#a92e26}
.admin-group-limit-warning{margin:0 0 10px;padding:9px 12px;border-radius:9px;background:#fff0ed;border:1px solid #f1bbb5;color:#a92e26;font-weight:800}
.admin-list-filters{display:grid;grid-template-columns:1.5fr .8fr .9fr 1fr auto;gap:8px;align-items:end;margin:0 0 10px}
.admin-search-filters{grid-template-columns:1.5fr 1fr .8fr .9fr 1fr auto}
.admin-list-filters input{min-width:0;padding:9px 11px}
.admin-list-filters button{white-space:nowrap;padding:9px 13px}
.admin-filter-summary{margin:-2px 0 8px}
.admin-row-number{width:54px!important;text-align:center!important;color:#65766c;font-variant-numeric:tabular-nums}
@media(max-width:1100px){.admin-list-filters,.admin-search-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-list-filters button{grid-column:span 2}}

/* v0.8.36 */
.clipboard-read-btn{margin-top:8px;justify-self:start}
.admission-toolbar{align-items:end}

/* v0.8.37 — unified group lists, Admin filters/tree, retained document editing */
.management-group-current-bar{display:grid;grid-template-columns:minmax(220px,auto) minmax(300px,1fr) auto;align-items:center}
.management-group-title{min-width:0}.group-top-summary{display:flex!important;align-items:center!important;justify-content:center;gap:8px!important;flex-wrap:wrap}
.summary-pill{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:4px 10px;border-radius:999px;background:#edf3ef;color:#40564a;font-size:13px;font-weight:700;white-space:nowrap}
.debt-summary-pill{background:#fff6ee;color:#8a4a22}.debt-summary-pill strong{font-variant-numeric:tabular-nums}
.management-group-table th,.management-group-table td{padding:7px 9px!important;white-space:nowrap;line-height:1.2}
.management-group-table .row-number-col{width:52px!important;text-align:center!important;color:#65766c;font-variant-numeric:tabular-nums}

#adminGroupSidebar .admin-group-tree{padding-top:45px}
#adminGroupSidebar.compact .admin-group-tree{padding-top:45px}
.admin-filters-panel{margin:0 0 10px}.admin-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px 12px!important}
.admin-filter-grid .filter-wide{grid-column:span 2}.admin-filter-grid .filters-clear{grid-column:span 2;width:100%}
.admin-filter-grid input{min-width:0;width:100%}
.admin-wide-data{width:max-content!important;min-width:100%!important}
.admin-wide-data th,.admin-wide-data td{padding:7px 9px!important;white-space:nowrap;line-height:1.2;vertical-align:middle}
.admin-wide-data th{font-size:12px}.admin-wide-data td{font-size:12px}.admin-wide-data [data-admin-col="fio"]{font-weight:750}
.admin-wide-data .table-link{white-space:nowrap}

.student-documents,.medical-documents{margin-top:16px;padding:14px;border:1px solid #d8e2dc;border-radius:12px;background:#f8fbf9}
.student-documents h4,.medical-documents h3{margin:0 0 10px}.saved-documents{display:grid;gap:12px}
.saved-documents-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#53645a;font-size:13px}.saved-documents-meta .button-link{margin-left:auto}
.saved-pdf-frame{width:100%;height:440px;border:1px solid var(--line);border-radius:10px;background:#fff}
.saved-doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.saved-doc-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff}
.saved-doc-card img{width:96px;height:76px;object-fit:contain;background:#f0f2f1;border-radius:7px}.saved-doc-card>div{display:grid;gap:5px;min-width:0}.saved-doc-card small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-doc-card button{justify-self:start;padding:6px 9px;font-size:12px}
.medical-modal{width:min(1320px,96vw);max-height:94vh}.medical-dialog-card{width:100%;max-height:94vh;overflow:auto;padding:22px}.medical-documents{margin-top:18px}.medical-dialog-card .saved-pdf-frame{height:520px}

@media(max-width:1050px){.management-group-current-bar{grid-template-columns:1fr}.group-top-summary{justify-content:flex-start}.management-group-current-bar>button{width:100%}}
@media(max-width:760px){.admin-filter-grid{grid-template-columns:1fr!important}.admin-filter-grid .filter-wide,.admin-filter-grid .filters-clear{grid-column:span 1}.saved-pdf-frame,.medical-dialog-card .saved-pdf-frame{height:55vh}.saved-doc-grid{grid-template-columns:1fr}.medical-dialog-card{padding:14px}}

/* v0.8.38 */
.topbar{height:auto;min-height:64px;align-items:center;gap:10px;flex-wrap:nowrap}.brand-line{min-width:0;flex:1 1 auto}.nav-tabs{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.top-actions{flex:0 0 auto}.nav-btn{white-space:nowrap;flex:0 0 auto}.gender-first{width:max-content!important;min-width:0!important}.gender-first select,#adminGender,#editGender{width:auto!important;min-width:122px!important;max-width:145px!important}.doc-card{position:relative}.doc-x{position:absolute;right:8px;top:8px;z-index:4;width:30px;height:30px;border-radius:50%;padding:0;background:rgba(255,255,255,.93);color:#8f2437;font-size:22px;line-height:1;box-shadow:0 1px 5px rgba(0,0,0,.14)}.draft-resume{margin:14px auto;width:min(1180px,calc(100% - 32px));display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;border:1px solid var(--brand-purple-line);border-radius:14px;background:var(--brand-purple-soft)}.draft-resume>div:first-child{display:grid;gap:3px}.draft-resume span{font-size:12px;color:var(--muted)}.draft-discard{font-size:26px;line-height:1;padding:5px 12px;background:transparent;color:#7d4050}.group-tree-search{width:calc(100% - 12px);margin:42px 6px 8px;padding:8px 9px;font-size:12px;position:sticky;top:4px;z-index:4}.group-sidebar.compact .group-tree-search{display:none}.group-tree-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:3px}.group-edit-mini{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;color:#665d70;font-size:15px}.group-edit-mini:hover{background:#ece8f1}.group-tree-row .group-tree-item{grid-template-columns:16px minmax(0,1fr)}.admin-group-picker{display:grid!important;grid-template-columns:100px minmax(260px,1fr);gap:6px 10px;min-width:min(520px,52vw)}.admin-group-native{display:none!important}.admin-group-tiles{grid-column:1/-1;display:flex;gap:5px;flex-wrap:wrap;max-height:110px;overflow:auto}.admin-group-tile{padding:6px 10px;border-radius:9px;background:#f1edf5;color:#3d3348;font-size:12px;font-weight:800}.admin-group-tile.active{background:var(--brand-purple);color:#fff}.date-title-btn{background:transparent;color:#342b40;font-weight:800;font-size:17px;padding:8px}.date-picker-grid.month-grid,.date-picker-grid.year-grid{grid-template-columns:repeat(3,1fr);gap:8px}.date-month,.date-year{background:#f4f1f7;color:#342b40;padding:12px 6px}.date-month.active,.date-year.active{background:var(--brand-purple);color:white}.universal-col-resizer{position:absolute;right:-3px;top:0;width:8px;height:100%;cursor:col-resize;z-index:8}.universal-col-resizer:after{content:"";position:absolute;left:3px;top:22%;bottom:22%;width:1px;background:#c8c1ce}.table-wrap th,#adminGroupResults th,#adminSearchResults th{position:relative}.table-wrap th[draggable=true],#adminGroupResults th[draggable=true],#adminSearchResults th[draggable=true]{cursor:grab}.medical-table{table-layout:fixed;min-width:1280px}.medical-top{align-items:flex-start}.medical-issue-panel{margin:18px 0;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#faf9fb}.medical-issue-panel summary{font-weight:800;cursor:pointer;margin-bottom:10px}.admin-subhead-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.clickable-linked{cursor:pointer}.clickable-linked:hover{box-shadow:0 0 0 2px var(--brand-purple-line)}.issued-badge{display:inline-flex;margin:6px 0;padding:5px 8px;border-radius:8px;background:#e7f5eb;color:#21673c;font-size:12px;font-weight:800}.system-stat{display:flex!important;align-items:baseline!important;gap:8px!important}.system-stat strong{margin-left:0!important}.admission-table tbody tr{cursor:pointer}
@media(max-width:1100px){.topbar{align-items:flex-start;flex-wrap:wrap}.brand-line{width:100%;display:flex;align-items:center}.nav-tabs{max-width:calc(100vw - 190px)!important}.top-actions{position:absolute;right:10px;top:9px}.app-name.small{flex:0 0 auto}.admin-editor-head{flex-wrap:wrap}.admin-group-picker{order:3;width:100%;min-width:0;grid-template-columns:90px 1fr}}
@media(max-width:700px){.topbar{padding:8px}.brand-line{display:block}.app-name.small{display:block!important;margin-bottom:6px}.nav-tabs{max-width:calc(100vw - 16px)!important;width:100%}.top-actions{position:static;width:100%;justify-content:flex-end}.draft-resume{width:calc(100% - 16px);flex-direction:column;align-items:stretch}.gender-first select,#adminGender,#editGender{min-width:118px!important}.admin-group-picker{grid-template-columns:1fr}.admin-group-tiles{grid-column:1}}

/* v0.8.39 — print workflow, compact identity row and responsive navigation */
#addView .person-grid{grid-template-columns:94px minmax(180px,1.15fr) minmax(160px,1fr) minmax(180px,1.15fr) 170px;align-items:end}
.gender-first select,#genderSelect,#adminGender,#editGender{width:88px!important;min-width:88px!important;max-width:88px!important;padding-left:10px!important;padding-right:8px!important}
#groupSelect{-webkit-appearance:none;appearance:none;background-image:none!important;padding-right:12px!important;cursor:pointer}
.editor-doc-type{padding:9px 0 3px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.editor-doc-type select{margin-top:4px;width:100%}
.tree-add-group{display:flex;align-items:center;gap:7px;width:34px;max-width:calc(100% - 12px);height:32px;margin:4px 6px 8px;padding:0 9px;overflow:hidden;white-space:nowrap;border-radius:8px;background:var(--brand-purple-soft);color:var(--brand-purple);transition:width .18s ease,background .18s ease;position:relative;z-index:5}
.tree-add-group:hover,.tree-add-group:focus-visible{width:calc(100% - 12px);background:#e8ddf8}
.tree-add-plus{font-size:21px;line-height:1;flex:0 0 auto}.tree-add-label{opacity:0;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:opacity .12s ease}.tree-add-group:hover .tree-add-label,.tree-add-group:focus-visible .tree-add-label{opacity:1}
.group-sidebar.compact .tree-add-group{width:34px!important}.group-sidebar.compact .tree-add-label{display:none}
#groupsAddGroupBtn,#adminAddGroupBtn{display:none!important}
.print-edit-modal{width:min(1320px,96vw);max-height:94vh}.print-edit-card{width:100%;max-height:94vh;overflow:auto;padding:20px}.print-edit-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.print-edit-toolbar .hint{flex:1 1 420px}.print-edit-frame{height:52vh;margin:8px 0 14px}.print-complete-card{width:min(560px,calc(100vw - 28px));padding:20px}.print-complete-card>label{margin-top:14px}.checkbox-line{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}.checkbox-line input{width:auto}.print-actions button:disabled{opacity:.38}
#medModalNotice{margin:0 0 14px;padding:11px 13px;border-radius:10px;background:#fff0f2;border:1px solid #e8bcc6;color:#8a2940;font-weight:700;position:sticky;top:0;z-index:4}
@media(max-width:1900px){.topbar{padding:8px 14px!important;min-height:72px;position:sticky}.brand-line{width:100%;display:grid!important;grid-template-columns:max-content minmax(0,1fr);gap:14px!important;padding-right:250px;align-items:center}.nav-tabs{width:100%;max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap;padding-bottom:2px}.top-actions{position:absolute!important;right:14px!important;top:10px!important;z-index:3;background:#fff;padding-left:8px}.nav-btn{padding:9px 10px}}
@media(max-width:1180px){#addView .person-grid{grid-template-columns:88px repeat(2,minmax(180px,1fr));grid-auto-flow:row}.topbar{padding-bottom:7px!important}.brand-line{grid-template-columns:1fr;padding-right:220px}.app-name.small{display:none!important}.nav-tabs{grid-column:1/-1}.top-actions{right:8px!important}}
@media(max-width:760px){#addView .person-grid{grid-template-columns:88px minmax(0,1fr)}#addView .person-grid>*:nth-child(n+3){grid-column:auto}.brand-line{padding-right:0!important}.top-actions{position:static!important;width:100%;justify-content:flex-end}.nav-tabs{max-width:100%!important}.print-edit-frame{height:46vh}.print-edit-card{padding:12px}}
.print-doc-actions{display:flex;gap:6px;flex-wrap:wrap}.print-doc-actions button{margin:0}


/* v0.8.40 — compact navigation, sticky group bars, group sorting and chooser */
:root{--group-sticky-top:78px}
body{overflow-x:hidden}#appView{width:100%;min-width:0}.layout,.card{min-width:0}.topbar{width:100%!important;max-width:none!important;left:0;right:0;overflow:visible}
.brand-line{overflow:hidden}.nav-tabs{display:flex!important;align-items:center;gap:7px!important;min-width:0;overflow-x:auto!important;overflow-y:visible!important;padding:3px 2px 7px;scrollbar-width:thin}
.nav-combo{display:inline-flex;align-items:stretch;flex:0 0 auto;border:1px solid transparent;border-radius:12px;overflow:visible;background:transparent;position:relative}
.nav-combo:has(.nav-btn.active){background:var(--brand-purple-soft);border-color:#e7def1}.nav-combo .nav-btn,.nav-combo .nav-icon-btn{border-radius:0;background:transparent;margin:0}
.nav-combo>*:first-child{border-radius:11px 0 0 11px}.nav-combo>*:last-child{border-radius:0 11px 11px 0}.nav-combo-main{font-weight:800!important}
.nav-icon-btn{position:relative;display:inline-grid;place-items:center;min-width:38px;width:38px;padding:8px 7px!important;background:transparent;color:#44384f;font-size:18px;line-height:1;border-left:1px solid rgba(78,55,100,.08);flex:0 0 38px}
.nav-icon-btn:hover,.nav-icon-btn.active{background:var(--brand-purple-soft)!important;color:var(--brand-purple)!important}.nav-icon-btn[data-tooltip]::after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 9px);transform:translateX(-50%);z-index:80;padding:7px 9px;border-radius:8px;background:#211b29;color:white;font-size:12px;font-weight:700;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 7px 24px rgba(0,0,0,.2);transition:opacity .12s ease}
.nav-icon-btn[data-tooltip]:hover::after,.nav-icon-btn[data-tooltip]:focus-visible::after{opacity:1;visibility:visible}.nav-icon-btn .count-badge{position:absolute;right:-5px;top:-7px;margin:0;min-width:18px;height:18px;font-size:10px}
.group-current-bar{position:sticky!important;top:var(--group-sticky-top)!important;z-index:16;background:#fff;box-shadow:0 7px 18px rgba(38,25,50,.06);border:1px solid var(--brand-purple-line);border-radius:12px;margin-bottom:8px}
.management-group-current-bar,.admin-group-current-bar{padding:10px 12px}.group-top-summary .debt-summary-pill{border:0;cursor:pointer;font:inherit}.debt-summary-pill.active{background:#ffe4d6!important;color:#7d351b!important;box-shadow:inset 0 0 0 2px #efb89d}.management-group-current-bar>.inline-actions{justify-content:flex-end;flex-wrap:wrap}
.group-sidebar.compact .group-tree-row{display:block!important}.group-sidebar.compact .group-edit-mini{display:none!important}.group-sidebar.compact .group-tree-item{display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;padding:5px 3px!important}.group-sidebar.compact .group-tree-item .folder-mark{width:auto!important;margin:0 auto}.group-sidebar.compact .group-specials .group-tree-item>span{margin:0 auto}.group-sidebar.compact .group-year-items{padding-left:0!important}.group-sidebar.compact .group-year-node>summary{padding-left:0!important;padding-right:0!important;text-align:center}.group-sidebar.compact .tree-add-group{margin-left:auto;margin-right:auto}
.admin-group-picker{grid-template-columns:96px minmax(180px,1fr)!important;min-width:min(620px,58vw)!important}.admin-group-quick-search{display:grid!important}.admin-group-native{display:none!important}.admin-group-tiles{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px!important;max-height:230px!important;overflow:auto!important;padding:5px;border:1px solid var(--line);border-radius:10px;background:#faf9fb}.admin-group-tile{width:100%;min-width:0;padding:7px 8px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.management-group-table .col-resizer,.admin-student-table .universal-col-resizer{opacity:.65}.management-group-table th:hover .col-resizer,.admin-student-table th:hover .universal-col-resizer{opacity:1}.management-group-table{table-layout:fixed!important}
@media(max-width:1500px){.app-name.small{display:none!important}.brand-line{grid-template-columns:minmax(0,1fr)!important;padding-right:230px!important}.nav-tabs{grid-column:1/-1}.nav-btn{padding:8px 9px!important}.nav-combo-main{padding-left:10px!important;padding-right:10px!important}}
@media(max-width:1050px){.management-group-current-bar>.inline-actions{justify-content:flex-start}.group-current-bar{top:var(--group-sticky-top)!important}.admin-group-picker{min-width:0!important;width:100%;grid-template-columns:92px 1fr!important}}
@media(max-width:760px){.topbar{width:100%!important;max-width:100%!important}.brand-line{padding-right:0!important;overflow:visible}.nav-tabs{overflow-x:auto!important;overflow-y:hidden!important}.nav-icon-btn[data-tooltip]::after{display:none}.admin-group-picker{grid-template-columns:1fr!important}.admin-group-tiles{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}}

/* v0.8.41 — Admin table/card ergonomics, searchable group change and safe dialogs */
#adminStudentDialog.student-modal{width:min(1580px,calc(100vw - 32px));max-width:none;inset:16px;margin:auto;height:calc(100vh - 32px);overflow:auto}
#adminStudentDialog #adminStudentForm{width:100%;min-width:0;overflow-x:hidden;padding:18px 20px}
#adminStudentDialog .admin-editor-head{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:10px 14px;align-items:start;min-width:0}
#adminStudentDialog .admin-title-block{width:220px;max-width:220px;min-width:0;align-self:center}
#adminStudentDialog #adminStudentTitle{display:none}
#adminStudentDialog #adminStudentMeta{font-size:12px;line-height:1.3;font-weight:650;color:#6f6876;overflow-wrap:anywhere}
#adminStudentDialog #adminStudentClose{align-self:start;white-space:nowrap;position:relative;z-index:4}
#adminStudentDialog .admin-group-picker{width:100%!important;min-width:0!important;max-width:none!important;grid-template-columns:92px minmax(190px,1fr)!important;gap:6px 10px!important;align-items:end;position:relative}
#adminStudentDialog .admin-group-picker>label,#adminStudentDialog .admin-group-picker>.suggest-field{min-width:0}
#adminStudentDialog .admin-group-quick-search{position:relative;display:block!important;min-width:0}
#adminStudentDialog .admin-group-quick-search input{min-width:0}
#adminStudentDialog .admin-group-quick-suggestions{z-index:90;max-height:320px}
#adminStudentDialog .admin-group-quick-suggestions .suggestion{display:flex;align-items:center;justify-content:space-between;gap:12px}
#adminStudentDialog .admin-group-quick-suggestions .suggestion span{font-size:11px;color:var(--muted);font-weight:500;white-space:nowrap}
#adminStudentDialog .admin-group-tiles{grid-column:1/-1!important;min-width:0!important;max-width:100%!important}
#adminStudentForm.admin-edit-existing .admin-group-tiles{display:none!important}

#adminStudentDialog .admin-person-grid{grid-template-columns:92px minmax(150px,1.05fr) minmax(145px,1fr) minmax(165px,1.08fr) 145px!important;gap:10px 12px!important;align-items:end}
#adminStudentDialog .admin-person-grid .gender-first{margin-right:0!important}
#adminStudentDialog #adminGender{width:82px!important;min-width:82px!important;max-width:82px!important}

#adminStudentDialog .admin-medical-grid{grid-template-columns:minmax(132px,.7fr) minmax(165px,.9fr) minmax(150px,.85fr) minmax(138px,.78fr) minmax(170px,1fr) minmax(220px,1.35fr)!important;gap:12px 14px!important}
#adminMedicalSeries,#adminMedicalNumber,#adminMedicalIssueDate{min-width:0!important;width:100%!important}
#adminStudentDialog label:has(#adminMedicalSeries),#adminStudentDialog label:has(#adminMedicalNumber),#adminStudentDialog label:has(#adminMedicalIssueDate){min-width:130px}
.admin-medical-option-field{min-width:0}
.medical-option-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.medical-option-chip{display:flex!important;align-items:flex-start;gap:7px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;font-size:12px;font-weight:650;line-height:1.25;min-width:0}
.medical-option-chip:has(input:checked){border-color:#7550b6;background:var(--brand-purple-soft);color:var(--brand-purple)}
.medical-option-chip input{width:16px;height:16px;margin:0;flex:0 0 16px}
.medical-option-chip span{min-width:0;overflow-wrap:anywhere}

#adminGroupResults .admin-student-table{table-layout:fixed!important;width:max-content!important;min-width:100%!important}
#adminGroupResults .admin-student-table th,#adminGroupResults .admin-student-table td{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0}
#adminGroupResults .admin-student-table th[data-col-key="number"],#adminGroupResults .admin-student-table td[data-col-key="number"]{width:38px!important;min-width:34px!important;max-width:46px!important;padding-left:5px!important;padding-right:5px!important;text-align:center!important}
#adminGroupResults .admin-student-table th[data-col-key="record"],#adminGroupResults .admin-student-table td[data-col-key="record"]{width:54px;min-width:44px;padding-left:6px!important;padding-right:6px!important;text-align:center!important;font-variant-numeric:tabular-nums}
#adminGroupResults .admin-student-table th[data-col-key="fio"]{position:sticky!important;left:0;z-index:7;background:#f5f7f5;box-shadow:4px 0 8px rgba(20,32,25,.05)}
#adminGroupResults .admin-student-table td[data-col-key="fio"]{position:sticky!important;left:0;z-index:3;background:#fff;box-shadow:4px 0 8px rgba(20,32,25,.05);font-weight:750}
#adminGroupResults .admin-student-table tbody tr:hover td[data-col-key="fio"]{background:#eef5f1}
#adminGroupResults .sortable-th{cursor:pointer;user-select:none}
#adminGroupResults .sortable-th .sort-arrow{margin-left:4px;color:#8b8292;font-size:10px}

.management-linked-card{display:grid;gap:8px}
.management-linked-card .linked-card-head{display:flex;align-items:baseline;justify-content:flex-start!important;gap:10px 14px!important;margin:0!important;flex-wrap:wrap}
.management-linked-card .linked-card-head span{font-size:13px!important;color:#3f3548!important;font-weight:700}
.management-linked-card .linked-card-facts{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;color:#675e6f;font-size:12px}
.management-linked-card .linked-card-facts span{display:inline-block;padding:2px 0}
.management-linked-card .linked-special-notes{flex-basis:100%;padding-top:4px!important;border-top:1px dashed #e1dce5}

.medical-documents>summary{cursor:pointer;font-weight:800;color:#40564a;list-style:none;display:flex;align-items:center;gap:8px}
.medical-documents>summary::-webkit-details-marker{display:none}
.medical-documents>summary:before{content:'▸';font-size:14px;transition:transform .12s ease}
.medical-documents[open]>summary:before{transform:rotate(90deg)}
.medical-documents[open]>summary{margin-bottom:10px}

.unsaved-dialog .dialog-card{width:min(560px,calc(100vw - 28px))}
.unsaved-dialog .dialog-actions{flex-wrap:wrap}

@media(max-width:1180px){
  #adminStudentDialog.student-modal{width:calc(100vw - 20px);inset:10px;height:calc(100vh - 20px)}
  #adminStudentDialog .admin-editor-head{grid-template-columns:180px minmax(0,1fr) auto}
  #adminStudentDialog .admin-title-block{width:180px;max-width:180px}
  #adminStudentDialog .admin-medical-grid{grid-template-columns:repeat(3,minmax(150px,1fr))!important}
}
@media(max-width:820px){
  #adminStudentDialog.student-modal{inset:0;margin:0;width:100vw;height:100dvh;border-radius:0}
  #adminStudentDialog .admin-editor-head{grid-template-columns:minmax(0,1fr) auto}
  #adminStudentDialog .admin-title-block{grid-column:1;width:auto;max-width:none}
  #adminStudentDialog .admin-header-group{grid-column:1/-1!important;grid-row:auto!important}
  #adminStudentDialog .admin-group-picker{grid-template-columns:88px minmax(0,1fr)!important}
  #adminStudentDialog .admin-person-grid{grid-template-columns:82px minmax(0,1fr)!important}
  #adminStudentDialog .admin-person-grid>*:nth-child(n+3){grid-column:auto}
  #adminStudentDialog .admin-medical-grid{grid-template-columns:1fr!important}
  .medical-option-checks{grid-template-columns:1fr}
}
#adminStudentDialog .form-grid>*{min-width:0}
#adminStudentDialog input,#adminStudentDialog select{min-width:0}

#adminMedicalSeries,#adminMedicalNumber,#adminMedicalIssueDate{font-size:13px!important;padding-left:9px!important;padding-right:9px!important}

/* v0.8.42 */
.admin-polos-toggle{display:flex!important;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#405047;white-space:nowrap;margin-left:auto}.admin-polos-toggle input{width:auto;flex:0 0 auto}.admin-save-error{margin:18px 0 10px;white-space:pre-wrap;overflow-wrap:anywhere}.filters-grid label input[list]{min-width:0}@media(max-width:760px){.admin-polos-toggle{margin-left:0;white-space:normal}}

/* v0.8.43 — navigation hover, image editor fit, confirmation dialog and old-DL experience */
#managementNavCluster:hover,#adminNavCluster:hover{border-color:var(--brand-purple-line)!important}
#managementNavCluster .nav-combo-main:hover,#adminNavCluster .nav-combo-main:hover{background:var(--brand-purple-soft)!important;color:var(--brand-purple)!important}

#editorDialog.editor-modal{width:min(1800px,calc(100vw - 20px));max-width:none;height:min(940px,calc(100dvh - 20px));max-height:calc(100dvh - 20px);overflow:hidden}
#editorDialog .editor-shell{width:100%;height:100%;min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;overflow:hidden}
#editorDialog .editor-head{flex:0 0 auto;min-width:0}
#editorDialog .editor-head>div{min-width:0}
#editorDialog .editor-layout{flex:1 1 auto;min-width:0;min-height:0;grid-template-columns:minmax(0,1fr) minmax(340px,390px);gap:16px;overflow:hidden}
#editorDialog .canvas-wrap{min-width:0;min-height:0;height:100%;overflow:auto}
#editorDialog .editor-controls{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:6px;align-content:start}
#editorDialog .rotate-row{grid-template-columns:repeat(2,minmax(0,1fr))}
#editorDialog .rotate-row button{min-width:0;white-space:normal;line-height:1.2;padding-left:9px;padding-right:9px}
#editorDialog .editor-controls input[type="range"],#editorDialog .editor-controls select{min-width:0;max-width:100%}

.unsaved-dialog.small-modal{width:min(650px,calc(100vw - 28px));max-width:calc(100vw - 28px);overflow:hidden}
.unsaved-dialog .dialog-card{width:100%!important;max-width:100%;min-width:0;overflow:hidden;padding:24px}
.unsaved-dialog .dialog-actions{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,1fr);gap:10px;width:100%}
.unsaved-dialog .dialog-actions button{min-width:0;white-space:normal;line-height:1.2;padding-left:10px;padding-right:10px}

#adminStudentDialog .admin-license-grid .old-dl-experience-field,#adminStudentDialog .admin-license-grid .old-dl-notes-field{grid-column:span 1;min-width:0}
#adminOldDlExperience,#adminOldDlNotes{min-width:0;width:100%}

@media(max-width:900px){
  #editorDialog.editor-modal{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);overflow:auto}
  #editorDialog .editor-shell{height:auto;min-height:100%;overflow:visible}
  #editorDialog .editor-layout{display:grid;grid-template-columns:1fr;overflow:visible;flex:none}
  #editorDialog .canvas-wrap{height:auto;min-height:360px;max-height:58dvh}
  #editorDialog .editor-controls{overflow:visible;padding-right:0}
}
@media(max-width:620px){
  .unsaved-dialog .dialog-actions{grid-template-columns:1fr}
  #adminStudentDialog .admin-license-grid .old-dl-experience-field,#adminStudentDialog .admin-license-grid .old-dl-notes-field{grid-column:span 1}
}

/* v0.8.44 — medical issue attribution and top-only medical workflow */
.medical-issue-audit{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:9px 11px;border:1px solid #b9dcc5;border-radius:10px;background:#edf8f0;color:#285b39;font-size:12px}
.medical-issue-audit strong{font-size:12px}.medical-issue-audit span{color:#4c6756;font-weight:650}
.medical-issue-panel{margin:10px 0 16px}.medical-issue-panel.ready-to-issue{border-color:var(--brand-purple-line);box-shadow:0 0 0 2px rgba(82,24,163,.07)}
.medical-issue-panel>summary{display:flex;align-items:center;gap:8px}.medical-issue-panel>summary:before{content:'▸';font-size:13px;transition:transform .12s ease}.medical-issue-panel[open]>summary:before{transform:rotate(90deg)}
.medical-issue-grid{margin-top:10px;grid-template-columns:minmax(150px,.9fr) minmax(120px,.65fr) minmax(150px,.8fr) minmax(155px,.8fr)!important;align-items:end}
.medical-issue-grid .medical-issue-hint{grid-column:1/-1;color:var(--muted);font-size:12px;padding-top:2px}
.medical-issue-missing{margin:10px 0 16px}
@media(max-width:900px){.medical-issue-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.medical-issue-grid .admin-wide{grid-column:span 2!important}}
@media(max-width:620px){.medical-issue-grid{grid-template-columns:1fr!important}.medical-issue-grid .admin-wide{grid-column:span 1!important}.medical-issue-audit{align-items:flex-start;flex-direction:column;gap:4px}}


/* v0.8.45 — readable mobile group trees */
@media(max-width:900px){
  #groupSidebar.compact,#adminGroupSidebar.compact{width:100%!important;max-width:100%!important}
  #groupSidebar.compact .group-tree-search,#adminGroupSidebar.compact .group-tree-search{display:block!important;width:calc(100% - 12px)!important}
  #groupSidebar.compact .group-tree,#adminGroupSidebar.compact .group-tree{overflow:auto!important;padding-left:8px!important;padding-right:8px!important}
  #groupSidebar.compact .group-tree-row,#adminGroupSidebar.compact .group-tree-row{display:grid!important;grid-template-columns:minmax(0,1fr) 30px!important;gap:3px!important}
  #groupSidebar.compact .group-edit-mini,#adminGroupSidebar.compact .group-edit-mini{display:grid!important}
  #groupSidebar.compact .group-tree-item,#adminGroupSidebar.compact .group-tree-item{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;justify-items:stretch!important;text-align:left!important;padding:7px 9px!important}
  #groupSidebar.compact .group-tree-item .folder-mark,#adminGroupSidebar.compact .group-tree-item .folder-mark{width:22px!important;margin:0!important;text-align:center!important}
  #groupSidebar.compact .group-item-label,#adminGroupSidebar.compact .group-item-label,#groupSidebar.compact .group-tree-item strong,#adminGroupSidebar.compact .group-tree-item strong{display:block!important;min-width:0!important;text-align:left!important}
  #groupSidebar.compact .group-year-items,#adminGroupSidebar.compact .group-year-items{padding-left:15px!important}
  #groupSidebar.compact .group-year-node>summary,#adminGroupSidebar.compact .group-year-node>summary{font-size:16px!important;text-align:left!important;padding-left:9px!important;padding-right:9px!important}
  #groupSidebar.compact .tree-add-group,#adminGroupSidebar.compact .tree-add-group{width:calc(100% - 12px)!important;margin-left:6px!important;margin-right:6px!important}
  #groupSidebar.compact .tree-add-label,#adminGroupSidebar.compact .tree-add-label{display:inline!important;opacity:1!important}
}

/* v0.8.46 — Admin operational readiness / representative */
.admin-operational-row{display:grid;grid-template-columns:minmax(170px,1.15fr) auto minmax(220px,1.2fr) auto minmax(175px,.9fr) minmax(260px,1.7fr);gap:10px 12px;align-items:end;margin:10px 0 12px;padding:12px 14px;border:1px solid var(--line,#d8ded9);border-radius:14px;background:#fbfcfb}
.admin-operational-row label{margin:0;min-width:0}.admin-operational-row select,.admin-operational-row input[type=text],.admin-operational-row input:not([type]){width:100%;min-width:0}
.operational-check{display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 12px;border:1px solid var(--line,#d8ded9);border-radius:12px;background:white;font-weight:700;cursor:pointer}
.operational-check input{width:18px;height:18px;flex:0 0 auto}.operational-check span{min-width:0;line-height:1.2}.required-note{display:inline-block;margin-left:4px;font-style:normal;font-size:11px;color:#a32b2b;font-weight:750}.admin-operational-hint{grid-column:1/-1;min-height:16px;font-size:12px;color:var(--muted,#667066)}.admin-operational-hint.warn{color:#a32b2b;font-weight:700}.admin-operational-hint.ok{color:#25633b;font-weight:700}
.admin-gibdd-notes{grid-column:span 2}.admin-representative-details{margin:12px 0 16px;border:1px solid var(--line,#d8ded9);border-radius:14px;background:#fff}.admin-representative-details>summary{padding:12px 14px;font-weight:800;cursor:pointer}.admin-representative-grid{padding:0 14px 14px;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.admin-representative-grid .admin-wide{grid-column:span 2}
.admin-readonly-card .operational-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 16px}.admin-readonly-card .operational-facts span{min-width:0}.operational-status-good{color:#25633b;font-weight:800}.operational-status-warn{color:#9a6c00;font-weight:800}
@media(max-width:1450px){.admin-operational-row{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-gibdd-notes{grid-column:span 2}.admin-representative-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.admin-operational-row{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-gibdd-notes{grid-column:1/-1}.admin-representative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-representative-grid .admin-wide{grid-column:1/-1}}
@media(max-width:620px){.admin-operational-row{grid-template-columns:1fr}.admin-gibdd-notes{grid-column:1}.admin-representative-grid{grid-template-columns:1fr}.admin-representative-grid .admin-wide{grid-column:1}.admin-readonly-card .operational-facts{grid-template-columns:1fr}}


/* v0.8.48 — navigation polish, operational validation and exam dropdown */
.nav-tabs{
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding-top:10px!important;
  padding-bottom:5px!important;
  scrollbar-width:thin;
}
.nav-tabs::-webkit-scrollbar{height:5px;width:0}
.nav-combo{transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.nav-combo-main{transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease!important}
.nav-combo-main:hover,.nav-combo-main:focus-visible{
  background:#eadff8!important;
  color:var(--brand-purple)!important;
  box-shadow:inset 0 0 0 1px #d7c4ef;
}
.nav-icon-btn{position:relative;isolation:isolate;transition:background-color .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease}
.nav-icon-btn:hover,.nav-icon-btn:focus-visible{
  background:#e5d8f6!important;
  color:var(--brand-purple)!important;
  box-shadow:inset 0 0 0 1px #d3bfea;
}
/* The large black pseudo-tooltip caused clipping/scrolling and covered badges.
   Keep the native title tooltip; hover is communicated by the icon itself. */
.nav-icon-btn[data-tooltip]::after{display:none!important;opacity:0!important;visibility:hidden!important}
.nav-icon-btn .count-badge{
  z-index:30!important;
  top:-7px!important;
  right:-4px!important;
  transform:none!important;
  pointer-events:none;
  box-shadow:0 0 0 2px #fff;
}
.admin-exam-date{position:relative}
.admin-exam-suggestions{top:calc(100% + 5px)!important;left:0!important;right:0!important;z-index:140!important;max-height:270px!important}
.admin-exam-suggestions .suggestion{display:flex;justify-content:space-between;gap:10px}
.admin-exam-suggestions .suggestion small{color:var(--muted);font-size:11px}
.field-validation-target{outline:2px solid #c53d48!important;outline-offset:2px;border-radius:10px}
.field-validation-error{display:block;margin-top:6px;color:#a52a35;font-size:12px;font-weight:750;line-height:1.25}
@media(max-width:760px){.nav-tabs{padding-top:10px!important;padding-bottom:4px!important}}


/* v0.8.49 — consistent top-nav hover borders and badge stacking */
#managementNavCluster:hover,#managementNavCluster:focus-within,
#adminNavCluster:hover,#adminNavCluster:focus-within,
#systemNavCluster:hover,#systemNavCluster:focus-within{
  border-color:var(--brand-purple-line)!important;
  box-shadow:0 0 0 1px rgba(82,24,163,.04);
}
.nav-tabs>button.nav-btn.management-nav{
  border:1px solid transparent!important;
  border-radius:12px!important;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease!important;
}
.nav-tabs>button.nav-btn.management-nav:hover,
.nav-tabs>button.nav-btn.management-nav:focus-visible,
.nav-tabs>button.nav-btn.management-nav.active{
  border-color:var(--brand-purple-line)!important;
  background:var(--brand-purple-soft)!important;
  color:var(--brand-purple)!important;
  box-shadow:0 0 0 1px rgba(82,24,163,.04);
}
/* A badge belongs visually above the icon and its next sibling. Keep it inside the
   tab's vertical bounds so nav-tabs can stay overflow-y:hidden without clipping. */
.nav-icon-btn{overflow:visible!important;isolation:auto!important;z-index:1}
.nav-icon-btn:hover,.nav-icon-btn:focus-visible{z-index:5!important}
.nav-icon-btn:has(.count-badge:not(.hidden)){z-index:30!important}
.nav-icon-btn:has(.count-badge:not(.hidden)):hover,.nav-icon-btn:has(.count-badge:not(.hidden)):focus-visible{z-index:31!important}
.nav-icon-btn .count-badge{
  z-index:50!important;
  top:1px!important;
  right:1px!important;
  min-width:17px!important;
  height:17px!important;
  line-height:17px!important;
  font-size:10px!important;
  box-shadow:0 0 0 2px #fff!important;
}

/* v0.8.50 — expandable navigation icons and GIBDD exam workspace */
.nav-tabs{overflow-x:auto!important;overflow-y:hidden!important}
.nav-icon-btn[data-tooltip]{
  width:auto!important;min-width:38px!important;max-width:38px;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:0!important;white-space:nowrap!important;overflow:visible!important;
  transition:max-width .24s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease!important;
}
.nav-icon-btn[data-tooltip]::after{
  content:attr(data-tooltip)!important;display:block!important;position:static!important;
  max-width:0;overflow:hidden;opacity:0;visibility:visible!important;
  margin:0;font-size:12px;font-weight:800;line-height:1.1;white-space:nowrap;
  color:inherit;background:transparent!important;box-shadow:none!important;border:0!important;
  transform:none!important;pointer-events:none;z-index:1;
  transition:max-width .24s ease,opacity .16s ease,margin-left .24s ease!important;
}
.nav-icon-btn[data-tooltip]:hover,.nav-icon-btn[data-tooltip]:focus-visible{max-width:300px!important;justify-content:flex-start!important;padding-left:10px!important;padding-right:10px!important}
.nav-icon-btn[data-tooltip]:hover::after,.nav-icon-btn[data-tooltip]:focus-visible::after{max-width:240px;opacity:1!important;margin-left:7px;visibility:visible!important}
.nav-icon-btn .count-badge{
  position:absolute!important;top:1px!important;left:25px!important;right:auto!important;
  z-index:1000!important;pointer-events:none!important;transform:none!important;
}
.nav-icon-btn[data-tooltip]::after{z-index:2}.nav-icon-btn:has(.count-badge:not(.hidden)){z-index:50!important}

.gibdd-exam-current-bar{justify-content:space-between;gap:18px}
.gibdd-exam-current-bar .admin-group-title-wrap{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.gibdd-exam-table{table-layout:fixed;min-width:1550px}
.gibdd-exam-table col:nth-child(1){width:90px}.gibdd-exam-table col:nth-child(2){width:135px}.gibdd-exam-table col:nth-child(3){width:260px}.gibdd-exam-table col:nth-child(4){width:125px}.gibdd-exam-table col:nth-child(5){width:200px}.gibdd-exam-table col:nth-child(6){width:280px}.gibdd-exam-table col:nth-child(7),.gibdd-exam-table col:nth-child(8){width:125px}.gibdd-exam-table col:nth-child(9){width:190px}.gibdd-exam-table col:nth-child(10){width:260px}
.gibdd-exam-tree-row{grid-template-columns:1fr!important}.gibdd-exam-tree-row .group-tree-item{grid-template-columns:22px minmax(0,1fr) auto!important}.gibdd-exam-tree-row small{color:var(--muted);font-size:11px;font-weight:800}
.gibdd-admitted-mark{display:inline-grid;place-items:center;margin-left:7px;width:20px;height:20px;border-radius:50%;background:#e8f6ed;color:#267042;font-size:12px;font-weight:900;vertical-align:middle}
#gibddExamSidebar .group-tree-search{margin-top:42px}
#gibddExamResults .student-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){#gibddExamBrowserLayout{grid-template-columns:1fr!important}#gibddExamSidebar{width:100%!important;max-width:100%!important}.gibdd-exam-current-bar{align-items:flex-start}.gibdd-exam-current-bar .inline-actions{width:100%}.gibdd-exam-current-bar .inline-actions button{width:100%}}


/* v0.8.51 — save toggle placement and unclipped navigation hover labels */
.admin-polos-toggle{margin-left:8px!important;margin-right:0!important;align-self:center!important}
.save-row{justify-content:flex-start!important;gap:10px!important}
.nav-icon-btn[data-tooltip]{width:38px!important;min-width:38px!important;max-width:38px!important;padding-left:7px!important;padding-right:7px!important;justify-content:center!important;overflow:visible!important}
.nav-icon-btn[data-tooltip]::after{display:none!important;content:none!important}
.nav-hover-label-0851{position:fixed;z-index:10000;transform:translate(0,-50%) translateX(-5px);opacity:0;visibility:hidden;pointer-events:none;padding:7px 10px;border:1px solid var(--brand-purple-line);border-radius:9px;background:#fff;color:var(--brand-purple);font-size:12px;font-weight:800;line-height:1.15;white-space:nowrap;box-shadow:0 8px 24px rgba(45,25,70,.16);transition:opacity .14s ease,transform .18s ease,visibility .14s ease}
.nav-hover-label-0851.show{opacity:1;visibility:visible;transform:translate(0,-50%) translateX(0)}
@media(max-width:760px){.admin-polos-toggle{margin-left:0!important}.nav-hover-label-0851{display:none!important}}


/* v0.8.52 — early draft preview + inline patronymic completion */
.draft-resume-top{margin-top:0;margin-bottom:0}
.draft-resume{cursor:default}
.draft-preview{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:0}
.draft-preview-card{background:#fff;border:1px solid var(--brand-purple-line,#d9ccef);border-radius:14px;padding:16px;box-shadow:0 4px 16px rgba(69,24,135,.06);display:grid;gap:14px}
.draft-preview-head>div{display:grid;gap:3px}.draft-preview-head strong{font-size:17px}.draft-preview-head span{font-size:12px;color:var(--muted)}
.draft-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}.draft-preview-row{display:grid;gap:2px;min-width:0;padding:8px 10px;border-radius:9px;background:#f8f6fb}.draft-preview-row span{font-size:11px;color:var(--muted)}.draft-preview-row strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.draft-preview-docs{display:grid;gap:6px}.draft-preview-docs>span{font-size:12px;font-weight:800;color:#4b4058}.draft-preview-docs>div{display:flex;flex-wrap:wrap;gap:6px}.draft-preview-docs em{font-style:normal;font-size:11px;padding:5px 7px;border-radius:8px;background:#f1eef5;color:#53475f}
.draft-preview-actions{display:flex;justify-content:flex-end;gap:9px}
.suggest-field.inline-person-completion label{position:relative}
.inline-person-completion>.suggestions{display:none!important}
.person-inline-completion{position:absolute;left:0;right:0;bottom:0;min-height:42px;padding:11px 12px;border:1px solid transparent;border-radius:10px;font:inherit;font-weight:400;line-height:normal;white-space:pre;overflow:hidden;text-overflow:clip;pointer-events:none;z-index:6;color:transparent}
.person-inline-prefix{visibility:hidden}.person-inline-suffix{visibility:visible;color:#9b97a1;text-decoration:underline dotted #c5c0ca;text-underline-offset:3px}
.inline-person-completion input{position:relative;z-index:5}
@media(max-width:760px){.draft-preview,.draft-resume{width:calc(100% - 16px)}.draft-preview-grid{grid-template-columns:1fr}.draft-preview-actions{display:grid;grid-template-columns:1fr 1fr}.draft-preview-actions button{width:100%}}

/* v0.8.54: compact responsive completion, header save actions, exam assignment, draft previews */
.editor-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.management-editor-head{align-items:center}
.admin-editor-actions{align-self:start}
.admin-group-current-bar{grid-template-columns:minmax(180px,auto) minmax(180px,1fr) minmax(290px,auto) auto!important}
.admin-group-exam-assign{display:flex!important;align-items:end!important;gap:8px!important;min-width:0}
.admin-group-exam-assign label{min-width:155px;gap:4px;font-size:11px}
.admin-group-exam-assign select{padding:8px 10px;min-width:145px}
.admin-group-exam-assign button{white-space:nowrap}
.inline-person-completion{min-width:0;width:100%}
.inline-person-completion>label,.inline-person-completion input{min-width:0;width:100%}
.draft-preview-docs>div.draft-doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.draft-doc-preview{display:grid;grid-template-rows:105px auto;gap:6px;min-width:0;margin:0;padding:7px;border:1px solid #ded7e8;border-radius:10px;background:#faf8fc}
.draft-doc-preview img{width:100%;height:105px;object-fit:contain;border-radius:7px;background:#eceeef}
.draft-doc-preview figcaption{font-size:11px;line-height:1.25;color:#53475f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.draft-doc-preview.no-image{grid-template-rows:auto;padding:9px 10px}
@media(max-width:1250px){.admin-group-current-bar{grid-template-columns:1fr 1fr!important}.admin-group-exam-assign{justify-content:flex-start}.admin-group-current-bar>.inline-actions{justify-content:flex-end}}
@media(max-width:900px){.admin-group-current-bar{grid-template-columns:1fr!important}.admin-group-exam-assign{display:grid!important;grid-template-columns:minmax(0,1fr) auto}.editor-head-actions{width:100%;justify-content:flex-end}.management-editor-head{flex-wrap:wrap}}
@media(max-width:760px){#addView .person-grid{grid-template-columns:1fr!important}#addView .person-grid>*{grid-column:1!important}.gender-first{justify-self:start}.inline-person-completion{width:100%!important;min-width:0!important}.person-inline-completion{width:100%}.draft-preview-docs>div.draft-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.editor-head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.editor-head-actions .ghost{grid-column:1/-1}.admin-group-exam-assign{grid-template-columns:1fr}.admin-group-exam-assign button,.admin-group-exam-assign label{width:100%}.draft-preview-docs>div.draft-doc-grid{grid-template-columns:1fr}}


/* v0.8.55 — editor tuning and stronger responsive person fields */
@media(max-width:1000px){
  #addView .person-grid,.student-modal .person-grid,#adminStudentDialog .admin-person-grid{grid-template-columns:repeat(2,minmax(210px,1fr))!important}
  #addView .person-grid .gender-first,#adminStudentDialog .admin-person-grid .gender-first{width:max-content!important;justify-self:start}
  .suggest-field.inline-person-completion{min-width:210px!important;width:100%!important}
}
@media(max-width:620px){
  #addView .person-grid,.student-modal .person-grid,#adminStudentDialog .admin-person-grid{grid-template-columns:1fr!important}
  .suggest-field.inline-person-completion{min-width:0!important}
}

/* v0.8.56 — contract state, split GIBDD tables, filters/sorting and time assignment */
.admin-operational-row .contract-check{order:-20;background:#f4f9f5;border-color:#cfe2d3}
.admin-operational-row .contract-check:has(input:checked){background:#e5f5e9;border-color:#9ac5a3;color:#245f35}
.gibdd-time-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#faf9fc}
.gibdd-time-toolbar>div{display:grid;gap:3px;margin-right:auto}.gibdd-time-toolbar>div span{font-size:12px;color:var(--muted)}
.gibdd-time-toolbar label{display:grid;gap:5px;font-size:12px;font-weight:800;color:#40564a}.gibdd-time-toolbar input[type=time]{min-width:130px}
.gibdd-exam-section,.gibdd-schedule-section{margin-top:18px}.gibdd-section-head{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:0 2px 8px}.gibdd-section-head h3{margin:0}.gibdd-section-head>span{display:inline-grid;place-items:center;min-width:30px;height:26px;padding:0 8px;border-radius:999px;background:#f0edf4;font-size:12px;font-weight:900;color:#51455d}
.gibdd-exam-table{min-width:1900px!important}.gibdd-exam-table .gibdd-select-col{width:44px!important;min-width:44px!important;text-align:center}.gibdd-exam-table .gibdd-number-col,.gibdd-exam-table .gibdd-row-number{width:46px!important;min-width:46px!important;text-align:center}
.gibdd-exam-table thead tr:first-child th[data-gibdd-sort-key]{cursor:pointer;user-select:none}.gibdd-sort-arrow{font-size:10px;color:#7d7486;margin-left:4px}.gibdd-filter-row td{padding:5px 6px!important;background:#fafafa;border-top:1px solid #ece8ef}.gibdd-filter-row input,.gibdd-filter-row select{width:100%;min-width:74px;height:31px;padding:4px 7px;font-size:11px;border-radius:7px}
.gibdd-contract-signed-row td{background:#f0faf3}.gibdd-contract-signed-row td:first-child{box-shadow:inset 4px 0 0 #53a66a}.gibdd-med-requested-row td{background:#fff0f0!important}.gibdd-med-requested-row td:first-child{box-shadow:inset 4px 0 0 #c23d3d!important}.gibdd-request-badge{display:inline-flex;margin-left:7px;padding:2px 6px;border-radius:999px;background:#f4c8c8;color:#8f2525;font-size:10px;font-weight:900;vertical-align:middle}.contract-yes{font-weight:900;color:#2f7a43}.contract-no{color:#807887}
.gibdd-exam-table tr[hidden]{display:none!important}.gibdd-schedule-list{display:grid;gap:14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.gibdd-schedule-block{display:grid;gap:6px}.gibdd-schedule-block strong{font-size:15px}.gibdd-schedule-block>div{display:grid;gap:3px;padding-left:2px}.gibdd-schedule-block span{font-size:13px;line-height:1.35}.gibdd-schedule-block+ .gibdd-schedule-block{padding-top:12px;border-top:1px dashed #ddd5e6}
@media(max-width:760px){.gibdd-time-toolbar{align-items:stretch}.gibdd-time-toolbar>div{width:100%}.gibdd-time-toolbar label,.gibdd-time-toolbar button{width:100%}.gibdd-time-toolbar input[type=time]{width:100%}}

/* v0.8.57 performance diagnostics */
.performance-card{overflow:visible}.performance-diagnosis{display:grid;gap:8px;margin:12px 0}.performance-alert{display:grid;gap:3px;padding:10px 12px;border-radius:11px;border:1px solid #dfe4df;background:#fafbfa}.performance-alert span{font-size:12px;line-height:1.4}.performance-alert.critical{border-color:#e8aeb5;background:#fff3f4;color:#8b232d}.performance-alert.warning{border-color:#ead6a0;background:#fff9e9;color:#795a0d}.performance-alert.ok{border-color:#b9ddc5;background:#f2fbf5;color:#25663c}.performance-alert.info{border-color:#cbc3e3;background:#f8f5fd;color:#493870}.performance-current{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.performance-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.performance-chart{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;min-width:0}.performance-chart-head,.performance-chart-foot{display:flex;justify-content:space-between;gap:10px;align-items:center}.performance-chart-head span,.performance-chart-foot{font-size:11px;color:var(--muted)}.performance-chart svg{width:100%;height:150px;margin:8px 0;overflow:visible}.perf-axis{stroke:#ded8e5;stroke-width:1}.perf-line{fill:none;stroke:var(--brand-purple);stroke-width:3;vector-effect:non-scaling-stroke}.perf-line-1{stroke:#5520a4}.perf-line-2{stroke:#2c7b5a}.perf-line-3{stroke:#9a6b15}.perf-legend{font-style:normal;margin-left:8px}.perf-legend:before{content:'●';margin-right:3px}.perf-legend-1{color:#5520a4}.perf-legend-2{color:#2c7b5a}.perf-legend-3{color:#9a6b15}.performance-process-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.performance-process-grid h4{margin:0 0 6px}.compact-table table{font-size:12px}.compact-table th,.compact-table td{padding:7px 9px}.mono-cell{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.performance-card .table-wrap{max-height:440px;overflow:auto}.performance-card .table-wrap thead{position:sticky;top:0;z-index:2;background:#f7f8f6}.performance-card .error-row{background:#fff2f3}.performance-card #performanceRange{min-width:110px}.performance-history-note{margin-top:6px}
@media(max-width:900px){.performance-charts,.performance-process-grid{grid-template-columns:1fr}.performance-chart svg{height:130px}}

/* v0.8.58 search/performance diagnostics */
.perf-ops{max-width:520px;white-space:normal!important;font-size:11px;color:var(--muted)}


/* v0.8.59 — operational validation must not move controls; linked Management empty state */
#adminOperationalRow label{position:relative}
#adminOperationalRow .field-validation-error{position:absolute;left:0;top:calc(100% + 4px);z-index:40;margin:0;max-width:min(420px,90vw);padding:5px 8px;border:1px solid #efc3c6;border-radius:7px;background:#fff7f7;box-shadow:0 5px 16px rgba(120,30,35,.10);white-space:normal}
#adminManagementData>h4{margin-bottom:10px}

/* v0.8.65 — identity copy actions and inline GIBDD exam editing */
.identity-copy-row{display:flex;justify-content:flex-start;align-items:center;margin:2px 0 8px}.identity-copy-row .compact{padding:7px 10px;font-size:12px}
.readonly-full-address{white-space:normal!important;overflow-wrap:anywhere}
.gibdd-exam-table{min-width:2850px!important}.gibdd-inline-control{width:100%;min-width:92px;height:32px;padding:4px 6px;border:1px solid #d7d2dc;border-radius:7px;background:#fff;font-size:12px}.gibdd-inline-select{min-width:150px}.gibdd-inline-time{min-width:105px}.gibdd-inline-notes{min-width:220px}.gibdd-inline-check{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px}.gibdd-inline-check input{width:17px;height:17px;margin:0}.gibdd-inline-check span{min-width:24px}.gibdd-edit-student{white-space:nowrap;padding:6px 9px!important}.gibdd-exam-table td[data-col-key="actions"],.gibdd-exam-table th[data-col-key="actions"]{position:sticky;right:0;background:#fff;z-index:2;box-shadow:-1px 0 0 #e6e1ea}.gibdd-med-requested-row td[data-col-key="actions"]{background:#fff0f0!important}.gibdd-contract-signed-row:not(.gibdd-med-requested-row) td[data-col-key="actions"]{background:#f0faf3!important}

/* v0.8.66 — secondary payment action must not compete with card save actions */
.payment-action{background:#e7ebe8;color:#59645e;border:1px solid #d3dad6;box-shadow:none}
.payment-action:hover:not(:disabled){background:#dde3df;color:#3f4a44}


/* v0.8.67 — compact Admin identity form, universal in-table filters and GIBDD actions */
@media (min-width:701px) and (max-width:1100px){
  #adminStudentDialog .admin-person-grid{grid-template-columns:118px minmax(180px,1fr) minmax(180px,1fr)!important;align-items:end!important}
  #adminStudentDialog .admin-person-grid .gender-first{grid-column:1;grid-row:1;width:118px!important}
  #adminStudentDialog .admin-person-grid>label:nth-child(2){grid-column:2;grid-row:1}
  #adminStudentDialog .admin-person-grid>.suggest-field:nth-child(3){grid-column:3;grid-row:1;min-width:0!important;width:100%!important}
  #adminStudentDialog .admin-person-grid>.suggest-field:nth-child(4){grid-column:2;grid-row:2;min-width:0!important;width:100%!important}
  #adminStudentDialog .admin-person-grid>label:nth-child(5){grid-column:3;grid-row:2}
  #adminStudentDialog #adminName{min-width:0!important;width:100%!important}
}
.table-filter-row-0867 td{padding:5px 6px!important;background:#fafafa;border-top:1px solid #ece8ef;border-bottom:1px solid #ece8ef;position:static}
.table-filter-row-0867 input{width:100%;min-width:62px;height:30px;padding:4px 7px;border:1px solid #d8d4dc;border-radius:7px;background:#fff;font-size:11px;font-weight:500;color:#403847}
.table-filter-row-0867 input::placeholder{color:#9b94a0}
.gibdd-exam-table td[data-col-key="actions"],.gibdd-exam-table th[data-col-key="actions"]{position:static!important;right:auto!important;z-index:auto!important;box-shadow:none!important}
.gibdd-open-card-cell{cursor:pointer;text-decoration:underline;text-decoration-color:#b6a8ca;text-underline-offset:3px}
.gibdd-open-card-cell:hover{color:var(--brand-purple);background:#f6f0fb!important}


/* v0.8.69 — legacy group diagnostic */
.admin-legacy-diag-modal{width:min(1500px,98vw)}
.admin-legacy-diag-card{width:min(1450px,96vw);max-height:92vh;overflow:auto}
.admin-legacy-diag-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:8px 0 14px}.admin-legacy-diag-toolbar label{min-width:min(520px,100%);display:grid;gap:5px}
.admin-legacy-diag-suspects{padding:10px 12px;border:1px solid var(--brand-purple-line);border-radius:10px;background:#fbf9ff;margin:10px 0;display:flex;gap:7px;flex-wrap:wrap;align-items:center}.admin-legacy-diag-suspects code{padding:3px 6px;border-radius:6px;background:#efe8fb}
.legacy-diag-table{width:100%;border-collapse:collapse}.legacy-diag-table th,.legacy-diag-table td{padding:7px 9px;border-bottom:1px solid #ece8ef;text-align:left;vertical-align:top}.legacy-diag-table code{font-size:12px}.legacy-diag-diff{background:#fff8e9}.legacy-diag-critical{background:#ffecec!important;color:#8e2d2d}.legacy-diag-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.legacy-diag-grid pre,#adminLegacyDiagStructure pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f5f9;border:1px solid #e8e2ec;border-radius:9px;padding:10px;max-height:280px;overflow:auto;font-size:11px}.admin-legacy-diag-card h4{margin:16px 0 8px}
@media(max-width:800px){.legacy-diag-grid{grid-template-columns:1fr}.admin-legacy-diag-toolbar>*{width:100%}}

/* v0.8.71 — Admin Word documents */
.admin-documents-card{max-width:1500px;margin:0 auto}.admin-documents-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px}.admin-document-types{display:grid;align-content:start;gap:10px}.admin-document-type{display:grid;gap:5px;text-align:left;border:1px solid var(--line);background:#f7f5f9;color:#3f354a;border-radius:13px;padding:14px}.admin-document-type strong{font-size:15px}.admin-document-type span{font-size:12px;color:var(--muted);font-weight:600}.admin-document-type.active{border-color:var(--brand-purple-line);background:var(--brand-purple-soft);color:var(--brand-purple)}.admin-document-work{display:grid;align-content:start;gap:12px;min-width:0}.admin-document-search-label{display:grid;gap:6px}.admin-document-search-results{max-height:360px;overflow:auto;border-radius:12px}.admin-document-search-table{min-width:700px}.admin-document-search-table tbody tr{cursor:pointer}.admin-document-search-table tbody tr:hover{background:var(--brand-purple-soft)}.admin-document-selected{border:1px solid var(--brand-purple-line);border-radius:13px;padding:14px;background:#fff}.admin-document-selected-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-document-facts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px;color:#51495b}.admin-document-template-hint{display:grid;gap:3px;margin-top:12px;padding:10px 12px;border-radius:10px;background:#f7f5f9}.admin-document-template-hint span{font-size:11px;color:var(--muted)}.admin-document-actions{display:flex;align-items:center;gap:12px}.admin-document-result{border:1px solid var(--line);border-radius:13px;padding:14px;background:#fbfafc}.admin-document-ready{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-document-template-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.admin-document-template-list span{font-size:11px;padding:4px 7px;border-radius:7px;background:#eee8f5;color:#4d3a61}.admin-document-missing{margin-top:10px}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.admin-documents-nav{font-size:17px}
@media(max-width:900px){.admin-documents-layout{grid-template-columns:1fr}.admin-document-types{grid-template-columns:1fr 1fr}.admin-document-ready{align-items:flex-start;flex-direction:column}.admin-document-search-results{overflow:auto}}@media(max-width:600px){.admin-document-types{grid-template-columns:1fr}.admin-document-ready .inline-actions{width:100%;display:grid;grid-template-columns:1fr}.admin-document-ready .inline-actions>*{width:100%}}

/* v0.8.72 — document actions inside Admin student card */
.admin-card-document-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#faf9fb}
.admin-card-document-caption{font-size:12px;font-weight:800;color:var(--muted);margin-right:2px}
.admin-card-document-actions .compact{padding:7px 10px;font-size:12px}
.admin-card-document-actions .hint{margin-left:2px}
@media(max-width:700px){.admin-card-document-actions{align-items:stretch}.admin-card-document-caption{width:100%}.admin-card-document-actions button{flex:1 1 180px}}


/* v0.8.73 — compact Admin group picker/current bar */
.admin-group-current-bar{grid-template-columns:minmax(180px,auto) minmax(180px,1fr) auto!important}
#adminStudentDialog .admin-group-picker{grid-template-columns:88px minmax(170px,260px) minmax(230px,1fr)!important;align-items:end!important;min-width:min(650px,58vw)!important}
#adminStudentDialog .admin-group-quick-search{min-width:0!important;max-width:260px!important}
#adminStudentDialog .admin-group-quick-meta{min-width:0;display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;padding-bottom:1px}
#adminStudentDialog .admin-group-quick-meta>span{display:grid;gap:2px;min-width:135px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#faf9fb}
#adminStudentDialog .admin-group-quick-meta small{font-size:10px;color:var(--muted);font-weight:700}
#adminStudentDialog .admin-group-quick-meta strong{font-size:12px;color:#405047;white-space:nowrap}
#adminStudentDialog .admin-group-tiles{grid-column:1/-1}
.admin-group-actions-details{min-width:0}
.admin-group-actions-details>summary{display:none;cursor:pointer;font-weight:800;color:#40564a;padding:8px 10px;border-radius:10px;background:#f5f1f8}
.admin-group-actions-body{display:flex;align-items:end;gap:12px;min-width:0}
@media(max-width:1180px){#adminStudentDialog .admin-group-picker{grid-template-columns:82px minmax(150px,220px) minmax(200px,1fr)!important;min-width:0!important}}
@media(max-width:980px){
  .admin-group-current-bar{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:10px 12px!important}
  .admin-group-current-bar .admin-group-title-wrap{min-width:0}
  .admin-group-current-bar .admin-group-dates{white-space:nowrap}
  .admin-group-actions-details{grid-column:1/-1;width:100%}
  .admin-group-actions-details>summary{display:flex;align-items:center;justify-content:space-between}
  .admin-group-actions-details>summary:after{content:'▾';font-size:12px;transition:transform .15s ease}
  .admin-group-actions-details[open]>summary:after{transform:rotate(180deg)}
  .admin-group-actions-details:not([open]) .admin-group-actions-body{display:none!important}
  .admin-group-actions-body{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding-top:8px}
  .admin-group-actions-body .admin-group-exam-assign{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:end!important}
  .admin-group-actions-body .admin-group-exam-assign label{min-width:0;width:100%}
  .admin-group-actions-body .admin-group-exam-assign select{width:100%;min-width:0}
  .admin-group-actions-body .inline-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}
  .admin-group-actions-body .inline-actions button{width:100%;min-width:0}
}
@media(max-width:820px){
  #adminStudentDialog .admin-group-picker{grid-template-columns:82px minmax(0,1fr)!important}
  #adminStudentDialog .admin-group-quick-search{max-width:none!important}
  #adminStudentDialog .admin-group-quick-meta{grid-column:1/-1}
  #adminStudentDialog .admin-group-quick-meta>span{flex:1 1 170px}
}
@media(max-width:620px){.admin-group-actions-body .admin-group-exam-assign,.admin-group-actions-body .inline-actions{grid-template-columns:1fr!important}}


/* v0.8.74 — representative legacy data, lighter dialogs and inline name completion */
/* Search windows: about 10% viewport margin on each side, with a comfortable desktop cap. */
#searchDialog.search-modal,#adminSearchDialog.search-modal{
  width:min(1050px,80vw)!important;
  height:min(840px,86vh)!important;
  max-width:1050px!important;
  max-height:86vh!important;
  inset:auto!important;
  margin:auto!important;
  border-radius:18px!important;
}
/* Admin editor now follows the same right-side editor geometry as Management instead of filling the screen. */
#adminStudentDialog.student-modal{
  width:min(860px,calc(100vw - 80px))!important;
  max-width:860px!important;
  height:calc(100vh - 40px)!important;
  max-height:calc(100vh - 40px)!important;
  inset:20px 20px 20px auto!important;
  margin:0!important;
  border-radius:16px!important;
  overflow:auto!important;
}
#adminStudentDialog #adminStudentForm{padding:22px!important;overflow-x:hidden!important}
#adminStudentDialog .admin-editor-head{grid-template-columns:minmax(0,1fr) auto!important;gap:10px 12px!important;align-items:start!important}
#adminStudentDialog .admin-title-block{grid-column:1/-1!important;width:auto!important;max-width:none!important}
#adminStudentDialog .admin-header-group{grid-column:1!important;min-width:0!important}
#adminStudentDialog .admin-editor-actions{grid-column:2!important;justify-self:end!important;align-self:end!important}
/* Keep other large popups visually lighter as well. Small confirmation/group dialogs keep their compact width. */
.modal:not(.small-modal):not(.search-modal):not(#studentDialog):not(#adminStudentDialog){max-width:min(1180px,90vw)!important;max-height:92vh!important}
.medical-modal{width:min(1180px,90vw)!important}
.editor-modal{width:min(1120px,90vw)!important}
.print-edit-modal{width:min(1100px,90vw)!important}
/* Representative section uses a compact two-column card at this editor width. */
#adminStudentDialog .admin-representative-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#adminStudentDialog .admin-representative-grid .admin-wide{grid-column:1/-1!important}
/* Inline name/patronymic completion must be the same visual size as typed text. */
.person-inline-completion{font-size:inherit!important;font-weight:inherit!important;letter-spacing:inherit!important}
.person-inline-suffix{font-size:1em!important;font-weight:inherit!important;opacity:.62;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:4px}
@media(max-width:1050px){
  #searchDialog.search-modal,#adminSearchDialog.search-modal{width:calc(100vw - 48px)!important;max-width:calc(100vw - 48px)!important;height:calc(100dvh - 48px)!important;max-height:calc(100dvh - 48px)!important}
}
@media(max-width:760px){
  #searchDialog.search-modal,#adminSearchDialog.search-modal,#studentDialog.student-modal,#adminStudentDialog.student-modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;inset:0!important;margin:0!important;border-radius:0!important}
  #adminStudentDialog .admin-representative-grid{grid-template-columns:1fr!important}
}


/* v0.8.75 — Management student group picker */
#studentDialog .management-edit-group-picker{display:grid!important;grid-template-columns:86px minmax(150px,1fr)!important;gap:6px 9px!important;min-width:0!important;width:100%!important;max-width:none!important;align-items:end;position:relative}
#studentDialog .management-edit-group-picker>label,#studentDialog .management-edit-group-picker>.suggest-field{min-width:0}
#studentDialog .management-edit-group-native{display:none!important}
#studentDialog .management-edit-group-search{position:relative;display:block!important;min-width:0}
#studentDialog .management-edit-group-search input{min-width:0;width:100%}
#studentDialog #editGroupQuickSuggestions{z-index:110;max-height:300px}
#studentDialog #editGroupQuickSuggestions .suggestion{display:flex;align-items:center;justify-content:space-between;gap:10px}
#studentDialog #editGroupQuickSuggestions .suggestion span{font-size:11px;color:var(--muted);font-weight:500;white-space:nowrap}
@media(max-width:980px){#studentDialog .management-edit-group-picker{grid-template-columns:82px minmax(130px,1fr)!important}}
@media(max-width:700px){#studentDialog .management-edit-group-picker{grid-template-columns:1fr!important}}


/* v0.8.76 — login feedback, centred search dialogs and compact group controls */
.login-error{display:block;min-height:22px;padding:0;margin:0;color:#a52f37;font-weight:700;line-height:1.35}
.login-error.visible{padding:9px 11px;border:1px solid #efc4c8;border-radius:9px;background:#fff4f5}
.mac-password-input.password-masked{-webkit-text-security:disc;text-security:disc}

#searchDialog.search-modal,#adminSearchDialog.search-modal{position:fixed!important;top:50%!important;left:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important;margin:0!important}

.management-group-actions-details{min-width:0}
.management-group-actions-details>summary{display:none;cursor:pointer;font-weight:800;color:#40564a;padding:8px 10px;border-radius:10px;background:#f5f1f8}
.management-group-actions-details>.inline-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.group-sidebar-mobile-toggle{display:none}

@media(max-width:1280px){
  .admin-group-current-bar{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:10px 12px!important}
  .admin-group-current-bar .admin-group-actions-details{grid-column:1/-1;width:100%;min-width:0}
  .admin-group-actions-details>summary{display:flex!important;align-items:center;justify-content:space-between}
  .admin-group-actions-details>summary:after{content:'▾';font-size:12px;transition:transform .15s ease}
  .admin-group-actions-details[open]>summary:after{transform:rotate(180deg)}
  .admin-group-actions-details:not([open]) .admin-group-actions-body{display:none!important}
  .admin-group-actions-body{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;padding-top:8px!important;min-width:0!important}
  .admin-group-actions-body .admin-group-exam-assign{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;width:100%!important;min-width:0!important}
  .admin-group-actions-body .admin-group-exam-assign label,.admin-group-actions-body .admin-group-exam-assign select{width:100%!important;min-width:0!important}
  .admin-group-actions-body .inline-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;min-width:0!important;gap:8px!important}
  .admin-group-actions-body .inline-actions button{width:100%!important;min-width:0!important}
}
@media(max-width:980px){
  .management-group-current-bar{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px 12px!important}
  .management-group-current-bar .management-group-title{min-width:0!important}
  .management-group-current-bar .group-top-summary{justify-content:flex-end!important;min-width:0!important}
  .management-group-actions-details{grid-column:1/-1;width:100%}
  .management-group-actions-details>summary{display:flex;align-items:center;justify-content:space-between}
  .management-group-actions-details>summary:after{content:'▾';font-size:12px;transition:transform .15s ease}
  .management-group-actions-details[open]>summary:after{transform:rotate(180deg)}
  .management-group-actions-details:not([open])>.inline-actions{display:none!important}
  .management-group-actions-details>.inline-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%;gap:8px;padding-top:8px}
  .management-group-actions-details>.inline-actions button{width:100%;min-width:0}
}
@media(max-width:900px){
  #groupBrowserLayout,#adminGroupBrowserLayout{grid-template-columns:1fr!important;gap:8px!important}
  #groupSidebar,#adminGroupSidebar{width:100%!important;max-width:100%!important;display:block!important}
  #groupSidebar .group-sidebar-pin,#adminGroupSidebar .group-sidebar-pin,#groupSidebar .group-sidebar-resizer,#adminGroupSidebar .group-sidebar-resizer{display:none!important}
  #groupSidebar .group-tree-search,#adminGroupSidebar .group-tree-search{display:block!important;position:static!important;top:auto!important;width:100%!important;margin:0 0 7px!important;padding:9px 10px!important}
  .group-sidebar-mobile-toggle{display:flex!important;width:100%;align-items:center;justify-content:space-between;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#f6f3f9;color:#403549}
  .group-sidebar-mobile-toggle span{transition:transform .15s ease}
  .group-sidebar.mobile-tree-open .group-sidebar-mobile-toggle span{transform:rotate(180deg)}
  #groupSidebar .group-tree,#adminGroupSidebar .group-tree{display:none!important;padding:8px!important;margin-top:6px!important;max-height:340px!important;overflow:auto!important}
  #groupSidebar.mobile-tree-open .group-tree,#adminGroupSidebar.mobile-tree-open .group-tree{display:block!important}
}
@media(max-width:760px){
  #searchDialog.search-modal,#adminSearchDialog.search-modal{top:0!important;left:0!important;transform:none!important}
  .management-group-current-bar{grid-template-columns:1fr!important}
  .management-group-current-bar .group-top-summary{justify-content:flex-start!important}
  .management-group-actions-details>.inline-actions,.admin-group-actions-body .inline-actions,.admin-group-actions-body .admin-group-exam-assign{grid-template-columns:1fr!important}
}

.pdf-text-editor{border:1px solid var(--line);background:#f7faf8;border-radius:12px;padding:12px 14px;display:grid;gap:10px;margin:10px 0}.pdf-text-editor-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.pdf-text-editor-fields{display:grid;grid-template-columns:minmax(220px,360px) minmax(220px,300px) auto;gap:10px;align-items:end}.pdf-text-save{min-height:42px;white-space:nowrap}@media(max-width:760px){.pdf-text-editor-fields{grid-template-columns:1fr}.pdf-text-save{width:100%}}

/* v0.8.79 — optional OCR, Management group picker spacing, deterministic editor preview */
.document-import-actions{align-items:center;gap:10px;flex-wrap:wrap}

#studentDialog .edit-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:end}
#studentDialog .management-edit-group-picker{grid-column:span 2!important;grid-template-columns:76px minmax(0,1fr)!important;min-width:0!important;max-width:100%!important;overflow:visible}
#studentDialog .management-edit-group-search{min-width:0!important;max-width:none!important;width:100%!important}
#studentDialog .management-edit-group-search label,#studentDialog .management-edit-group-search input{min-width:0!important;width:100%!important;max-width:100%!important}
#studentDialog .curator-field{min-width:0!important;position:relative}
#studentDialog .curator-field label,#studentDialog #editCuratorInput{min-width:0!important;width:100%!important;max-width:100%!important}

@media(max-width:760px){
  .document-import-actions{align-items:stretch}
  #studentDialog .edit-grid{grid-template-columns:1fr!important}
  #studentDialog .management-edit-group-picker{grid-column:1!important;grid-template-columns:1fr!important}
}
.login-password-bootstrap-mask{-webkit-text-security:disc;text-security:disc}

/* v0.8.80 — application OCR setting */
.app-settings-list{display:grid;gap:12px}.app-setting-toggle{align-items:flex-start!important;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#faf9fc}.app-setting-toggle>span{display:grid;gap:4px}.app-setting-toggle small{display:block;font-weight:500;color:var(--muted);line-height:1.35}.app-setting-toggle input{margin-top:3px!important;width:19px!important;height:19px!important;flex:0 0 auto}


/* v0.8.81 — persistent centered API error dialog */
.persistent-error-dialog{width:min(720px,calc(100vw - 28px));max-width:720px!important;max-height:calc(100dvh - 32px)!important;overflow:auto}
.persistent-error-card{width:100%;gap:14px}
.persistent-error-text{min-height:150px;max-height:50vh;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;line-height:1.45;white-space:pre-wrap;color:#5f1f29;background:#fff7f8;border-color:#e2b8bf}
.persistent-error-text:focus{border-color:#b95c6b;box-shadow:0 0 0 3px rgba(185,92,107,.12)}

/* v0.8.83: iOS Safari zooms focused form controls below 16px. Keep the page scale stable on phones/tablets. */
@supports (-webkit-touch-callout:none){@media(max-width:900px){input:not([type=range]):not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}}}


/* v0.8.85 — compact clipboard row, medical image stack and 990–1180px identity row */
.clipboard-field{display:grid;gap:7px;margin-top:14px;max-width:920px}
.clipboard-inline{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:stretch}
.clipboard-inline #clipboardPaste{min-height:54px;resize:vertical}
.clipboard-inline .clipboard-read-btn{margin-top:0;align-self:stretch;white-space:nowrap}
.medical-identity-stack{display:grid;gap:14px}
.medical-data-block{display:grid;gap:8px}
.medical-data-block .copy-panel{padding:0 2px}
.medical-photo-block{display:grid;gap:7px}
.medical-photo-title{font-size:13px;font-weight:800;color:#405047}
.med-image.med-image-full{width:100%;min-height:0;background:#eef1ef}
.med-image.med-image-full button{display:block;width:100%;padding:0;background:transparent;border-radius:12px;overflow:hidden;cursor:zoom-in}
.med-image.med-image-full img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#eef1ef}
.medical-image-lightbox{width:min(96vw,1500px);max-width:96vw;max-height:96vh;background:#111;border-radius:14px}
.medical-image-lightbox .medical-lightbox-shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:min(92vh,1100px);padding:10px;gap:8px}
.medical-image-lightbox .medical-lightbox-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#fff}
.medical-image-lightbox .medical-lightbox-head strong{font-size:14px}
.medical-image-lightbox .medical-lightbox-close{background:#fff;color:#222}
.medical-image-lightbox img{width:100%;height:100%;object-fit:contain;min-height:0}
@media (min-width:990px) and (max-width:1180px){
  #addView .person-grid{grid-template-columns:88px minmax(180px,1.10fr) minmax(180px,.92fr) minmax(180px,.92fr) minmax(180px,.82fr)!important;gap:14px!important;align-items:end!important}
  #addView .person-grid>.suggest-field,#addView .person-grid>label{min-width:0!important}
  #addView .person-grid .suggest-field.inline-person-completion{min-width:180px!important}
}
@media(max-width:720px){
  .clipboard-field{max-width:none}
  .clipboard-inline{grid-template-columns:minmax(0,1fr) auto}
  .clipboard-inline .clipboard-read-btn{padding-left:11px;padding-right:11px}
  .medical-image-lightbox{max-width:100vw;width:100vw;border-radius:0}
}
@media(max-width:480px){.clipboard-inline{grid-template-columns:1fr}.clipboard-inline .clipboard-read-btn{width:100%}}

/* v0.8.86 — Management instructor composer */
#addView .database-grid{grid-template-columns:minmax(260px,1fr) minmax(420px,1.8fr);align-items:start}
.curator-composer{min-width:0}
.curator-compose-options{margin-top:10px;display:grid;gap:9px}
.curator-option-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center}
.curator-option-row>span{font-size:12px;color:var(--muted);font-weight:700}
.curator-chips{display:flex;flex-wrap:wrap;gap:6px}
.curator-chip{display:inline-flex!important;grid-template-columns:auto auto!important;align-items:center;gap:5px!important;padding:6px 9px;border:1px solid #d5ddd8;border-radius:9px;background:#f8faf9;font-size:12px;font-weight:700;color:#33443a;cursor:pointer}
.curator-chip input{width:auto!important;margin:0;padding:0;accent-color:var(--green)}
.curator-chip:has(input:checked){background:#edf6f0;border-color:#7da18f;color:#1d4d36}
.curator-legacy-preview{min-height:34px;padding:8px 10px;border-radius:9px;background:#f2f5f3;border:1px solid var(--line);font-size:12px;color:#42534a;overflow-wrap:anywhere}
@media(max-width:900px){#addView .database-grid{grid-template-columns:1fr}.curator-option-row{grid-template-columns:1fr;gap:5px}}

/* v0.8.87 — medical compact copy rows, row actions, responsive workspaces */
html,body,#appView,.app-view,.layout,.card,.wide-card,.upload-card,.form-card,.group-browser-layout,.group-browser-main{max-width:100%;min-width:0}
body{overflow-x:hidden}
.layout>*{min-width:0}
.table-wrap,#groupResults,#adminGroupResults,#searchResults,#adminSearchResults{max-width:100%;min-width:0;overflow-x:auto}
#addView .upload-card,#addView .form-card{width:100%;min-width:0;overflow:hidden}
#addView .form-grid,#addView .database-grid,#addView .group-wrap,#addView .curator-composer{min-width:0;max-width:100%}
#addView .group-wrap{align-self:center}
.clipboard-field{width:min(720px,100%);max-width:720px}
.clipboard-inline{max-width:100%;min-width:0}
.clipboard-inline #clipboardPaste{min-width:0}

.medical-inline-copy-row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;padding:0 2px}
.medical-inline-copy-row label{min-width:0}
.medical-inline-copy-row .medical-fio-field{width:min(350px,100%);flex:0 1 350px}
.medical-inline-copy-row .medical-birth-field{width:min(150px,100%);flex:0 1 150px}
.medical-inline-copy-row .medical-snils-field{width:min(200px,100%);flex:0 1 200px}
.medical-inline-copy-row input{width:100%;min-width:0}
.medical-inline-copy-row .copy-btn{flex:0 0 auto;align-self:flex-end;justify-self:auto;margin:0}
@media(max-width:700px){.medical-inline-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.medical-inline-copy-row .medical-fio-field,.medical-inline-copy-row .medical-birth-field,.medical-inline-copy-row .medical-snils-field{width:100%;max-width:none;flex:none}}

.medical-image-lightbox .medical-lightbox-stage{position:relative;min-height:0;display:grid;place-items:center;overflow:hidden}
.medical-image-lightbox .medical-lightbox-stage>img{grid-area:1/1;width:100%;height:100%;object-fit:contain;min-height:0}
.medical-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:64px;min-height:64px;padding:0;border-radius:12px;background:rgba(255,255,255,.9);color:#222;font-size:34px;line-height:1;box-shadow:0 4px 18px rgba(0,0,0,.25)}
.medical-lightbox-nav:hover{background:#fff}.medical-lightbox-prev{left:12px}.medical-lightbox-next{right:12px}
.medical-lightbox-nav:disabled{display:none}
.medical-lightbox-counter{font-size:12px;color:#ddd;margin-left:auto}
@media(max-width:700px){.medical-lightbox-nav{width:42px;height:56px;min-height:56px;font-size:30px}.medical-lightbox-prev{left:5px}.medical-lightbox-next{right:5px}}

.student-selection-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 10px;padding:9px 11px;border:1px solid #d8d1e2;border-radius:11px;background:#f8f5fb;min-width:0}
.student-selection-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800;color:#43384f}
.student-selection-actions .inline-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.student-table tbody tr.row-selected{background:#e9e1f4!important;box-shadow:inset 3px 0 0 #5b2aa4}
@media(max-width:700px){.student-selection-actions{align-items:stretch;flex-direction:column}.student-selection-actions .inline-actions{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.student-selection-actions button{width:100%;min-width:0}}

.table-top-scroll-087{position:sticky;left:0;top:0;z-index:9;width:100%;max-width:100%;height:16px;overflow-x:auto;overflow-y:hidden;background:#f5f7f5;border-bottom:1px solid var(--line);scrollbar-width:auto}
.table-top-scroll-087>div{height:1px}
.table-wrap>.table-top-scroll-087+table{margin-top:0}

/* Admin editor: size grids to the drawer itself, not to the viewport. */
#adminStudentDialog,#adminStudentDialog #adminStudentForm,#adminStudentDialog .form-grid,#adminStudentDialog label,#adminStudentDialog .suggest-field,#adminStudentDialog .category-picker-field{min-width:0;max-width:100%}
#adminStudentDialog input,#adminStudentDialog select,#adminStudentDialog textarea{min-width:0;max-width:100%}
#adminStudentDialog .admin-group-picker{width:100%!important;max-width:100%!important;min-width:0!important}
#adminStudentDialog .admin-contact-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
#adminStudentDialog .admin-passport-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#adminStudentDialog .admin-address-one-line{grid-template-columns:minmax(0,1fr) 180px!important}
#adminStudentDialog .admin-medical-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
#adminStudentDialog .admin-license-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#adminStudentDialog .admin-medical-grid .admin-wide,#adminStudentDialog .admin-license-grid .admin-wide{grid-column:span 2!important}
#adminStudentDialog .admin-operational-row{min-width:0;max-width:100%}
@media(max-width:900px){#adminStudentDialog .admin-contact-grid,#adminStudentDialog .admin-passport-grid,#adminStudentDialog .admin-medical-grid,#adminStudentDialog .admin-license-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}#adminStudentDialog .admin-address-one-line{grid-template-columns:1fr!important}}
@media(max-width:620px){#adminStudentDialog .admin-contact-grid,#adminStudentDialog .admin-passport-grid,#adminStudentDialog .admin-medical-grid,#adminStudentDialog .admin-license-grid{grid-template-columns:1fr!important}#adminStudentDialog .admin-medical-grid .admin-wide,#adminStudentDialog .admin-license-grid .admin-wide{grid-column:1!important}}

.curator-special-controls{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.curator-special-controls .curator-chips{flex:0 0 auto}
.curator-extra-notes{flex:1 1 180px;min-width:140px!important;max-width:360px;padding:7px 9px!important;font-size:12px!important}
.curator-chip:has(input:disabled){opacity:.45;cursor:not-allowed;background:#f2f2f2;border-color:#ddd;color:#777}
.app-setting-medical-senders{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#faf9fc}
.app-setting-medical-senders>div:first-child{display:grid;gap:4px}.app-setting-medical-senders small{color:var(--muted);font-size:12px;line-height:1.35}
.medical-sender-users{display:flex;flex-wrap:wrap;gap:7px}.medical-sender-user{display:inline-flex!important;grid-template-columns:auto auto!important;align-items:center;gap:6px!important;padding:7px 9px;border:1px solid #d8d1e2;border-radius:9px;background:#fff;font-size:12px;font-weight:700}.medical-sender-user input{width:auto!important;margin:0}.medical-sender-all{width:100%;font-size:12px;color:var(--muted)}
@media(max-width:900px){#addView .database-grid{grid-template-columns:1fr!important}.curator-special-controls{align-items:stretch}.curator-extra-notes{max-width:none}}
#groupResults .management-group-table tbody tr,#adminGroupResults .admin-student-table tbody tr{cursor:pointer}
#appView,.topbar{width:100%;min-width:0;max-width:100%}
.topbar{overflow-x:auto;overflow-y:hidden}

/* v0.8.88 — keep the application inside the browser viewport. */
html{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
}
#appView{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:clip;
}
.app-view,
.app-view.layout,
.layout{
  width:100%!important;
  max-width:1240px!important;
  min-width:0!important;
}
.app-view.layout{
  margin-left:auto!important;
  margin-right:auto!important;
}
.app-view>*,
.layout>*,
.card,
.wide-card,
.upload-card,
.form-card,
.section-head,
.form-grid,
.group-browser-layout,
.group-browser-main{
  min-width:0!important;
  max-width:100%;
}
.topbar{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.brand-line,.nav-tabs,.top-actions{min-width:0}
.table-wrap,
#groupResults,
#adminGroupResults,
#searchResults,
#adminSearchResults{
  width:100%;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain;
}
/* Wide tables may be wider than the card, but only their own wrapper scrolls. */
.table-wrap>table,
#groupResults>table,
#adminGroupResults>table,
#searchResults>table,
#adminSearchResults>table{
  max-width:none;
}
@media(max-width:1280px){
  .app-view.layout,.layout{max-width:100%!important}
}

/* v0.8.89 — sticky group controls, compact group selector and multi-selection */
#addView .group-wrap{grid-template-columns:1fr!important;align-self:stretch!important;align-content:start!important;gap:8px!important}
#addView .group-wrap #addGroupBtn{width:100%!important;max-width:100%!important}
#addView .database-grid{grid-template-columns:minmax(220px,.75fr) minmax(520px,2.25fr)!important;align-items:start!important}
#addView .curator-composer{width:100%!important;max-width:none!important}
@media(max-width:980px){#addView .database-grid{grid-template-columns:1fr!important}}

#studentDialog .edit-curator-composer{grid-column:1/-1!important;width:100%!important;max-width:100%!important}
#studentDialog .edit-curator-composer .curator-compose-options{margin-top:8px}
#studentDialog .edit-curator-composer .curator-option-row{grid-template-columns:120px minmax(0,1fr)}
@media(max-width:760px){#studentDialog .edit-curator-composer .curator-option-row{grid-template-columns:1fr}}

.group-current-bar.management-group-current-bar,.group-current-bar.admin-group-current-bar{
  position:sticky!important;top:0!important;z-index:18!important;background:rgba(255,255,255,.97)!important;
  backdrop-filter:blur(8px);box-shadow:0 8px 16px rgba(38,30,48,.07);border:1px solid var(--line);border-radius:12px;
  padding:10px 12px;margin-bottom:10px;display:grid!important;grid-template-columns:minmax(180px,1fr) auto auto!important;gap:8px 12px!important;align-items:center!important
}
.group-current-bar .group-bar-icons{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.group-current-bar .group-icon-action{border:1px solid var(--line)!important;border-radius:9px!important;background:#f6f3f9!important}
.group-current-bar .group-inline-selection{grid-column:1/-1!important;display:flex!important;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding-top:6px;border-top:1px solid var(--line)}
.group-current-bar .group-inline-selection .inline-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.group-current-bar .admin-group-exam-assign{grid-column:1/-1!important;display:grid!important;grid-template-columns:minmax(220px,430px) auto!important;gap:8px;align-items:end;padding-top:6px;border-top:1px solid var(--line)}
.group-current-bar .admin-group-exam-assign button{min-height:42px}
@media(max-width:760px){
  .group-current-bar.management-group-current-bar,.group-current-bar.admin-group-current-bar{top:64px!important;grid-template-columns:minmax(0,1fr) auto!important}
  .group-current-bar .group-top-summary,.group-current-bar .admin-group-dates{grid-column:1/-1!important;justify-content:flex-start!important}
  .group-current-bar .group-inline-selection{align-items:stretch;flex-direction:column}
  .group-current-bar .group-inline-selection .inline-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%}
  .group-current-bar .admin-group-exam-assign{grid-template-columns:1fr!important}
}

.row-number-col,.admin-row-number{cursor:pointer;user-select:none;font-weight:800}
tr.row-selected>.row-number-col,tr.row-selected>.admin-row-number{background:var(--brand-purple-soft)!important;color:var(--brand-purple)!important}
tr.row-selected{outline:2px solid rgba(82,35,148,.32);outline-offset:-2px}
.student-selection-label{font-weight:800;color:#4a3d56;min-width:0}

.document-kind-menu-089{position:fixed;z-index:250;display:grid;gap:5px;min-width:260px;max-width:min(360px,calc(100vw - 24px));padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 38px rgba(30,22,39,.22)}
.document-kind-menu-089 button{width:100%;text-align:left;background:#f6f3f9;color:#44384f}
.bulk-doc-dialog-089{width:min(760px,calc(100vw - 24px));max-width:760px!important}
.bulk-doc-list-089{display:grid;gap:8px;max-height:55vh;overflow:auto}
.bulk-doc-row-089{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:10px}
.bulk-doc-row-089 a{white-space:nowrap}
@media(max-width:620px){.bulk-doc-row-089{grid-template-columns:1fr}.bulk-doc-row-089 a{width:100%;text-align:center}}


/* v0.8.90 — compact curator chips and unified Admin bulk toolbar */
#studentDialog .edit-curator-composer .curator-chips{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:6px!important;
}
#studentDialog .edit-curator-composer .curator-chip{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:max-content!important;
  justify-self:start!important;
}
#adminGroupSelectionActions{min-width:0}


/* v0.8.91 — robust viewport-sticky group bars */
.group-current-bar-marker-091{height:0;min-height:0;margin:0;padding:0;border:0}
.group-current-bar.viewport-stuck-091{
  position:fixed!important;
  top:64px!important;
  left:var(--sticky-left-091)!important;
  width:var(--sticky-width-091)!important;
  max-width:var(--sticky-width-091)!important;
  z-index:45!important;
  margin:0!important;
}

/* v0.8.93 — selected-group toolbar is flush with the viewport top. */
.group-current-bar.viewport-stuck-091{top:0!important}


/* v0.8.94 — Admin header no longer lets group metadata collide with save actions. */
#adminStudentDialog .admin-editor-head{
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start!important;
}
#adminStudentDialog .admin-title-block{
  grid-column:1!important;
  grid-row:1!important;
  min-width:0!important;
}
#adminStudentDialog .admin-editor-actions{
  grid-column:2!important;
  grid-row:1!important;
  justify-self:end!important;
  align-self:start!important;
}
#adminStudentDialog .admin-header-group{
  grid-column:1/-1!important;
  grid-row:2!important;
  width:100%!important;
  min-width:0!important;
}
#adminStudentDialog .admin-group-picker{
  grid-template-columns:82px minmax(150px,230px) minmax(0,1fr)!important;
  width:100%!important;
  min-width:0!important;
}
#adminStudentDialog .admin-group-quick-meta{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden;
}
#adminStudentDialog .admin-group-quick-meta>span{
  min-width:0!important;
  flex:1 1 125px!important;
  max-width:100%;
}
#adminStudentDialog .admin-group-quick-meta strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:720px){
  #adminStudentDialog .admin-editor-head{grid-template-columns:1fr!important}
  #adminStudentDialog .admin-title-block,#adminStudentDialog .admin-editor-actions,#adminStudentDialog .admin-header-group{grid-column:1!important}
  #adminStudentDialog .admin-title-block{grid-row:auto!important}
  #adminStudentDialog .admin-editor-actions{grid-row:auto!important;width:100%!important;justify-self:stretch!important}
  #adminStudentDialog .admin-header-group{grid-row:auto!important}
  #adminStudentDialog .admin-group-picker{grid-template-columns:76px minmax(0,1fr)!important}
  #adminStudentDialog .admin-group-quick-meta{grid-column:1/-1!important}
}

/* v0.8.95 sticky, synced horizontal rail immediately below group actions */
.group-sticky-horizontal-095{grid-column:1/-1;width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;height:17px;background:#f8f7fa;border-top:1px solid var(--line);scrollbar-width:auto;align-self:stretch}
.group-sticky-horizontal-095>div{height:1px;min-width:1px}
.group-sticky-horizontal-095.hidden{display:none!important}
@media(max-width:1050px){.group-sticky-horizontal-095{grid-column:1/-1}}
/* v0.8.96 Certificate operations */
.certificate-dialog-096{width:min(1420px,98vw);max-width:none;padding:0;border:0;background:transparent}
.certificate-card-096{width:100%;max-height:92vh;overflow-y:auto;min-width:0}
.certificate-actions-096{display:grid;gap:12px}
.certificate-actions-row-096{display:flex;align-items:end;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid #e2dced;border-radius:12px}
.certificate-actions-row-096>strong{min-width:180px;align-self:center}
.certificate-actions-row-096 label{font-size:13px;min-width:140px}
.certificate-actions-row-096 input,.certificate-actions-row-096 select{min-width:135px;max-width:180px}
.certificate-selected-096{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}
.certificate-table-scroll-096{overflow:auto;max-width:100%;max-height:48vh;border:1px solid #e2dced;border-radius:12px}
.certificate-table-096{width:100%;border-collapse:collapse;min-width:1050px;font-size:13px}
.certificate-table-096 th,.certificate-table-096 td{border-bottom:1px solid #ece9f0;text-align:left;padding:6px;vertical-align:middle}
.certificate-table-096 thead{position:sticky;top:0;z-index:1;background:#f8f6fb}
.certificate-table-096 input:not([type=checkbox]),.certificate-table-096 select{width:100%;min-width:110px;padding:8px;font-size:14px}
.certificate-table-096 [data-cert-number]{min-width:100px}
.certificate-row-actions-096{white-space:nowrap;min-width:265px}
.certificate-row-actions-096 button{padding:7px!important;margin:2px}
.certificate-table-096 .row-selected{background:#eee8f8}
.certificate-hours-096{margin-top:14px;padding:12px;border:1px solid #e2dced;border-radius:12px}
.certificate-hours-grid-096{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-top:8px}
.certificate-hours-grid-096 label{max-width:145px;font-size:13px}
.certificate-hours-grid-096 input{width:100%;padding:8px;font-size:16px}
.certificate-footer-096{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.document-kind-menu-096{z-index:20000}

.certificate-other-hours-096{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px;width:100%;padding-top:10px;border-top:1px solid #ddd}.certificate-other-hours-096 label{max-width:none}.certificate-other-hours-096 input{max-width:125px}

/* v0.8.97 field width and mobile corrections */
#editGroupYearSelect{min-width:128px;width:100%;padding-right:32px}
.management-edit-group-picker>label:first-child{min-width:134px}
.representative-phone-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:790px}
.representative-warning{border:1px solid #d59b60;background:#fff8ea;color:#77451c;padding:11px 14px;border-radius:10px;margin:10px 0;font-weight:650}
.print-clipboard-field{width:min(420px,100%);min-height:50px;resize:vertical}
@media(max-width:650px){.representative-phone-row{grid-template-columns:1fr}}

#loginPassword.mac-password-input{font-family:Arial, sans-serif;ime-mode:auto;-webkit-user-select:text;user-select:text;}
#loginPassword.password-masked{-webkit-text-security:disc!important;}
.possible-gender-mismatch{border-color:#e0a45c!important;}
#minorWarningAdmin{grid-column:1/-1;min-width:0}
#minorWarningManagement{max-width:100%}

/* v0.8.98: medical-only filtering and per-sender policy */
.medical-list-options{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin:0 0 14px}
.medical-list-options>label{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-size:13px}
.medical-list-options select{width:auto;max-width:100%;min-width:220px}
.medical-only-indicator{font-size:11px;font-weight:700;white-space:nowrap;color:#543195;background:#f3edfa;padding:3px 7px;border-radius:7px;display:inline-block;margin-left:5px}
.medical-sender-users{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:8px}
.medical-sender-all{grid-column:1/-1}
.medical-sender-user{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px!important}
.medical-sender-user>span{flex:1 1 110px;overflow-wrap:anywhere}
.medical-sender-mode{flex:0 1 145px;width:145px!important;max-width:100%;min-width:130px;font-size:12px;padding:7px!important}
.medical-sender-mode:disabled{opacity:.55}
@media(max-width:900px){.admin-search-input-wrap{grid-template-columns:38px minmax(0,1fr) 38px!important}.medical-list-options select{min-width:0;width:100%}}

/* v0.8.99: saved Management student documents, file input and clipboard */
.saved-upload-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;max-width:100%;min-width:0}
.saved-upload-tools [data-saved-add]{flex:0 0 auto}
.saved-upload-tools [data-saved-paste]{flex:1 1 320px;max-width:620px;min-width:min(260px,100%);min-height:54px;resize:vertical}
.saved-upload-tools .saved-upload-hint{flex:1 1 100%;font-size:12px}
.saved-upload-tools .saved-upload-status{flex:1 1 100%}
.saved-doc-card .saved-doc-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.saved-doc-card .saved-doc-actions button{justify-self:auto;margin:0}
@media(max-width:650px){.saved-upload-tools [data-saved-add],.saved-upload-tools [data-saved-paste]{width:100%;max-width:100%}}

/* v0.8.100 — explicit iOS PDF picker, invoked directly within the tap gesture. */
.clipboard-inline:has(.clipboard-file-btn:not(.hidden)){grid-template-columns:minmax(0,1fr) auto auto}
.clipboard-inline .clipboard-file-btn{white-space:nowrap;align-self:stretch}
.saved-upload-tools [data-saved-read]{flex:0 0 auto;max-width:100%}
@media(max-width:820px){
  .clipboard-inline:has(.clipboard-file-btn:not(.hidden)){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .clipboard-inline:has(.clipboard-file-btn:not(.hidden)) #clipboardPaste{grid-column:1/-1}
  .clipboard-inline:has(.clipboard-file-btn:not(.hidden)) .clipboard-read-btn,
  .clipboard-inline:has(.clipboard-file-btn:not(.hidden)) .clipboard-file-btn{min-width:0;white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:650px){.saved-upload-tools [data-saved-read]{width:100%}}
