:root{
  --bg:#f4f1ec;--surface:#fff;--header:#eee8df;--line:#ddd5ca;--text:#312d2b;--muted:#8a817b;
  --accent:#8c2f34;--accent-dark:#722529;--green:#4b7d56;--red:#a33a3d;--amber:#a27633;--neutral:#756b62;
  --radius:5px;--max:1320px;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px;line-height:1.45}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.topbar-inner{max-width:var(--max);margin:0 auto;min-height:58px;display:flex;align-items:center;gap:28px;padding:0 26px}.brand{font-size:20px;font-weight:650;color:var(--text);letter-spacing:.1px}.brand:hover{text-decoration:none}.main-nav{display:flex;gap:20px;align-items:center;flex:1}.nav-link,.nav-dropdown summary{color:#4a4542;cursor:pointer;list-style:none}.nav-dropdown{position:relative}.nav-dropdown summary::-webkit-details-marker{display:none}.nav-dropdown[open] summary{color:var(--accent)}.nav-dropdown-menu{position:absolute;top:34px;left:-12px;background:#fff;border:1px solid var(--line);min-width:230px;padding:7px 0;box-shadow:0 8px 24px rgba(55,45,40,.09);border-radius:var(--radius)}.nav-dropdown-menu a{display:block;padding:9px 14px;color:var(--text)}.nav-dropdown-menu a:hover{background:#f7f4ef;text-decoration:none}.user-menu{display:flex;gap:12px;align-items:center;color:var(--muted)}
.page-shell{max-width:var(--max);margin:0 auto;padding:34px 26px 60px;min-height:calc(100vh - 96px)}.footer{text-align:center;color:#aaa09a;font-size:12px;padding:14px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{font-size:31px;font-weight:500;margin:0 0 4px;letter-spacing:-.4px}.muted{color:var(--muted);margin:0}.heading-actions{display:flex;gap:8px;align-items:center}
.btn{appearance:none;border:1px solid transparent;border-radius:4px;padding:9px 14px;font:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.btn:hover{text-decoration:none}.btn.primary{background:var(--accent);color:white}.btn.primary:hover{background:var(--accent-dark)}.btn.secondary{background:#7b6858;color:#fff}.btn.ghost{background:transparent;border-color:#cfc6bb;color:#5f5751}.btn.danger-outline{background:#fff;border-color:#c76c6c;color:var(--red)}.btn:disabled{opacity:.45;cursor:not-allowed}.link-button{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer}.danger-text{color:var(--red)}
.flash{border:1px solid #c9d7c7;background:#f0f7ee;color:#47604b;padding:10px 13px;margin-bottom:20px;border-radius:4px}.flash.error{border-color:#e0b7b7;background:#fbefef;color:#853c3c}
.filter-bar{background:#fff;border:1px solid var(--line);padding:15px 16px;margin-bottom:16px;display:grid;grid-template-columns:minmax(250px,1fr) auto;gap:14px;align-items:end}.visits-filter{grid-template-columns:minmax(300px,1.5fr) minmax(220px,1fr) auto}.filter-bar label,.form-grid label{display:flex;flex-direction:column;gap:6px}.filter-bar label span,.form-grid label span{font-size:12px;color:var(--muted)}.filter-actions{display:flex;gap:8px;justify-content:flex-end}
input,select,textarea{width:100%;border:1px solid #cfc6bb;background:#fff;color:var(--text);border-radius:3px;padding:9px 10px;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#9f8276;box-shadow:0 0 0 2px rgba(140,47,52,.08)}textarea{resize:vertical}.required{color:var(--red);margin-left:3px}.field-help{font-size:12px;color:var(--muted);margin-top:5px}
.table-wrap{overflow:auto;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.table-wrap.compact{border:0}.data-table{width:100%;border-collapse:collapse;background:#fff}.data-table th{background:var(--header);color:#6f655e;text-align:left;font-size:12px;font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:11px 12px;border-bottom:1px solid #eee9e2;vertical-align:top}.data-table tr:last-child td{border-bottom:0}.row-actions{white-space:nowrap;text-align:right}.row-actions a,.row-actions form{display:inline-block;margin-left:9px}.empty-cell{text-align:center!important;color:var(--muted);padding:28px!important}.cell-secondary{color:var(--muted);font-size:12px;margin-top:2px}.entity-link{font-weight:600}.actions-col{width:140px}
.status-tabs{display:flex;gap:3px;overflow:auto;border-bottom:1px solid var(--line);margin:2px 0 0}.status-tabs a{color:#6f6660;padding:10px 12px 9px;border-bottom:2px solid transparent;white-space:nowrap}.status-tabs a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.status-tabs span{color:#aaa099;margin-left:3px}
.status-badge{display:inline-block;border-radius:3px;padding:4px 7px;font-size:12px;font-weight:600;background:#ece8e3;color:#605852;white-space:nowrap}.status-badge.admission.allowed{background:#e5f0e5;color:#426849}.status-badge.admission.denied,.status-badge.admission.revoked{background:#f5e2e2;color:#8e393b}.status-badge.admission.undefined{background:#efe8dc;color:#806537}.status-badge.visit.departed,.status-badge.visit.cancelled{background:#e4e1dd;color:#5f5955}.status-badge.visit.in_service{background:#e9eee0;color:#657443}.status-badge.visit.arrived{background:#f2e8d7;color:#8a672b}.status-badge.visit.on_site{background:#e4edf1;color:#4d6976}.status-summary{display:flex;gap:34px;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 16px;margin-bottom:20px}.status-summary>div{display:flex;gap:10px;align-items:center}.status-summary span:first-child{color:var(--muted);font-size:12px}
.editor-form{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}.form-row{display:grid;grid-template-columns:260px minmax(280px,640px);gap:26px;padding:10px 16px;align-items:start}.form-row>label{color:#5f5751;padding-top:9px}.field-control{min-width:0}.form-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:16px}.editor-form>.form-actions{padding:14px 16px 4px;max-width:942px}.form-section-title{font-size:19px;font-weight:500;padding:24px 16px 8px;border-top:1px solid #eee9e2;margin-top:12px}.check{display:flex;align-items:center;gap:7px}.check input{width:auto}.check.inline{white-space:nowrap}.static-value{padding-top:8px}.mini-form,.compact-form{margin-top:16px;background:#fbfaf8}.sticky-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #eee9e2;z-index:5}
.details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:22px}.detail-item{background:#fff;padding:14px 15px;min-height:74px}.detail-item.wide{grid-column:span 2}.detail-item span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.detail-item strong{font-weight:500;overflow-wrap:anywhere}.section-block{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px;margin:20px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.section-heading h2{font-size:21px;font-weight:500;margin:0}.split-sections{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inline-form{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px}.inline-form select,.inline-form input{width:auto;min-width:180px}.contacts-form input{min-width:220px}.timeline-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.timeline-grid>div{background:#fff;padding:12px}.timeline-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.timeline-grid strong{font-weight:500}.action-strip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:15px}.action-strip form{margin:0}
.auth-panel{max-width:430px;margin:70px auto;background:#fff;border:1px solid var(--line);padding:28px}.wide-auth{max-width:600px}.auth-panel h1{font-size:28px;font-weight:500;margin:0 0 8px}.form-grid.one-col{display:grid;gap:14px;margin-top:22px}.form-grid .form-actions{margin-top:2px}
@media(max-width:900px){.topbar-inner{gap:16px}.main-nav{gap:12px}.user-menu span{display:none}.page-shell{padding:24px 16px 50px}.filter-bar,.visits-filter{grid-template-columns:1fr}.form-row{grid-template-columns:1fr;gap:5px}.form-row>label{padding-top:0}.details-grid{grid-template-columns:1fr 1fr}.timeline-grid{grid-template-columns:1fr 1fr}.split-sections{grid-template-columns:1fr}.status-tabs{font-size:13px}}
@media(max-width:640px){.topbar-inner{padding:0 14px;flex-wrap:wrap;min-height:68px}.brand{width:100%;padding-top:9px}.main-nav{order:2;padding-bottom:9px}.user-menu{position:absolute;right:14px;top:15px}.page-heading{flex-direction:column}.page-heading h1{font-size:27px}.heading-actions{width:100%}.details-grid{grid-template-columns:1fr}.detail-item.wide{grid-column:span 1}.timeline-grid{grid-template-columns:1fr}.status-summary{flex-direction:column;gap:10px}.data-table{min-width:760px}.inline-form>*{width:100%!important}.main-nav .nav-link,.nav-dropdown summary{font-size:13px}}

/* v0.1.5 — unified list actions, compact forms and nested entities */
.flash{transition:opacity .5s ease,transform .5s ease}.flash.is-hiding{opacity:0;transform:translateY(-4px)}
.list-toolbar{display:flex;justify-content:flex-end;align-items:center;margin:-2px 0 8px;min-height:40px}
.btn.small{padding:7px 11px;font-size:13px}

.compact-editor{padding:14px 16px}.embedded-editor{padding:0;background:transparent}.editor-surface{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 16px}.editor-surface .nested-section{margin:18px 0 0;border-left:0;border-right:0}
.form-group-row{display:grid;gap:16px;max-width:980px;padding:9px 0;align-items:end}.form-group-row.columns-1{grid-template-columns:minmax(280px,640px)}.form-group-row.columns-2{grid-template-columns:repeat(2,minmax(220px,1fr))}.form-group-row.columns-3{grid-template-columns:repeat(3,minmax(180px,1fr))}.form-field{min-width:0}.form-field>label:not(.check){display:block;color:#5f5751;font-size:13px;margin-bottom:6px}.form-field.checkbox-unit{display:flex;align-items:flex-end;min-height:65px}.checkbox-field{min-height:40px;padding:9px 10px;border:1px solid transparent;border-radius:3px;color:#4d4743}.checkbox-field:hover{background:#faf8f5}.checkbox-field input{flex:0 0 auto}.short-field{max-width:360px}.compact-editor>.form-actions{max-width:980px;padding:14px 0 4px}.parent-form-actions{max-width:980px;border-top:1px solid #eee9e2;padding-top:16px;margin-top:18px}

.nested-section{background:#fff;border:1px solid var(--line);padding:15px 16px;margin:18px 0}.nested-section .section-heading{margin-bottom:10px;align-items:flex-start}.section-heading>div{min-width:0}.section-note{margin:3px 0 0;color:var(--muted);font-size:13px}.nested-list{border-top:1px solid #eee9e2}.nested-list-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 4px;border-bottom:1px solid #eee9e2;min-height:52px}.nested-main{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}.nested-main strong,.nested-main .entity-link{font-weight:600;color:var(--text)}.nested-kicker{color:var(--muted);font-size:12px;min-width:105px}.nested-note{color:var(--muted);font-size:13px}.nested-actions{display:flex;gap:5px;align-items:center;flex:0 0 auto}.inline-action-form{margin:0!important;display:inline-flex!important}.nested-empty{color:var(--muted);margin:10px 2px 4px}.micro-badge{display:inline-block;border-radius:3px;background:#e7efe6;color:#4b6a4e;font-size:11px;padding:2px 6px}.muted-badge{background:#ece8e3;color:#756b62}
.icon-button{width:32px;height:32px;border:1px solid transparent;border-radius:4px;background:transparent;color:#7a6d65;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:6px}.icon-button:hover{background:#f5f1ec;border-color:#e1d9cf;text-decoration:none;color:var(--accent)}.icon-button.danger-icon:hover{color:var(--red);background:#fbefef;border-color:#ecd0d0}.icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nested-editor{border-bottom:1px solid #eee9e2;background:#fbfaf8;padding:12px 10px}.nested-editor.add-editor{margin-top:10px;border:1px solid #eee9e2}.nested-editor.is-collapsed{display:none}.nested-editor.is-open{display:block}.inline-edit-grid{display:grid;gap:10px;align-items:end}.contact-edit-grid{grid-template-columns:minmax(135px,.75fr) minmax(190px,1.25fr) minmax(180px,1fr) auto auto}.person-edit-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.role-edit-grid{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto}.account-edit-grid{grid-template-columns:minmax(220px,1fr) minmax(280px,1.3fr) auto auto auto}.inline-edit-grid label:not(.check){display:flex;flex-direction:column;gap:5px}.inline-edit-grid label>span:first-child:not(:only-child),.inline-edit-grid label:not(.check)>span{font-size:12px;color:var(--muted)}.compact-check{align-self:end;min-height:40px;padding:9px 4px;white-space:nowrap}.inline-editor-actions{display:flex;gap:7px;justify-content:flex-end}.span-2{grid-column:span 2}.static-inline{align-self:end;min-height:40px;display:flex;flex-direction:column;justify-content:center}.static-inline span{font-size:12px;color:var(--muted)}.static-inline strong{font-weight:500}.nested-split{margin-top:18px}.nested-split .nested-section{margin:0}

@media(max-width:1000px){.contact-edit-grid,.account-edit-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.role-edit-grid{grid-template-columns:1fr 1fr}.inline-editor-actions{grid-column:1/-1}.form-group-row.columns-3{grid-template-columns:repeat(2,minmax(220px,1fr))}.person-edit-grid{grid-template-columns:repeat(2,minmax(200px,1fr))}}
@media(max-width:700px){.form-group-row.columns-1,.form-group-row.columns-2,.form-group-row.columns-3,.contact-edit-grid,.person-edit-grid,.role-edit-grid,.account-edit-grid{grid-template-columns:1fr}.span-2,.inline-editor-actions{grid-column:auto}.nested-list-row{align-items:flex-start}.nested-main{display:block}.nested-main>*{display:block;margin-bottom:2px}.nested-kicker{min-width:0}.section-heading{flex-direction:column}.section-heading .btn.small{align-self:flex-start}}

/* v0.1.6 — shared form grid, integration, phones and account UX */
.footer{max-width:var(--max);margin:0 auto;text-align:right;padding:14px 26px}
.list-toolbar{margin:10px 0 8px}
select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:38px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%235f5751' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px
}
.readonly-input,input[readonly]{background:#f5f2ed;color:#6f6761;cursor:default}
.editor-surface{padding:18px 16px}
.form-workarea{max-width:980px;width:100%}.narrow-workarea{max-width:640px}
.form-workarea>.compact-editor{padding:0}
.form-workarea .form-group-row{max-width:none}
.form-workarea .form-actions{max-width:none}
.parent-form-actions{max-width:none;border-top:0;padding-top:0;margin-top:18px}
.clean-actions{border-top:0!important}
.equal-short-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.integration-compact-row{grid-template-columns:minmax(260px,1fr) auto!important}

.nested-section{border-left:0;border-right:0;padding-left:16px;padding-right:16px}
.nested-list-row{padding-left:4px;padding-right:4px}

.sync-details{margin:14px 0 4px;border-top:1px solid #eee9e2;border-bottom:1px solid #eee9e2}
.sync-details summary{cursor:pointer;padding:12px 2px;color:#5f5751;font-weight:500;list-style:none}
.sync-details summary::-webkit-details-marker{display:none}.sync-details summary::after{content:"⌄";display:inline-block;margin-left:8px;color:var(--muted);transition:transform .2s ease}.sync-details[open] summary::after{transform:rotate(180deg)}

.contact-primary-row{display:grid;grid-template-columns:minmax(130px,.65fr) minmax(170px,.85fr) minmax(220px,1.25fr) auto auto;gap:10px;align-items:end}
.contact-primary-row>label:not(.check),.contact-note-row{display:flex;flex-direction:column;gap:5px}.contact-primary-row label>span,.contact-note-row>span{font-size:12px;color:var(--muted)}
.contact-note-row{margin-top:10px;max-width:558px}.phone-country.is-hidden{display:none}.contact-value-field{min-width:0}
.contact-editor{overflow:visible}.contact-editor.is-collapsed{display:none}

.account-summary-grid{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(130px,.6fr) minmax(160px,.7fr) auto;gap:12px;align-items:end}
.account-summary-grid>label{display:flex;flex-direction:column;gap:5px}.account-summary-grid>label>span,.account-state span{font-size:12px;color:var(--muted)}
.account-state{min-height:40px;display:flex;flex-direction:column;justify-content:center}.account-state strong{font-weight:500}.account-action{display:flex;justify-content:flex-end}
.password-inline-form{display:block!important;overflow:hidden;max-height:280px;opacity:1;margin-top:10px;transition:max-height .28s ease,opacity .22s ease,padding .28s ease,margin .28s ease,border-color .28s ease}
.password-inline-form.is-collapsed{display:block!important;max-height:0;opacity:0;padding-top:0;padding-bottom:0;margin-top:0;border-color:transparent;pointer-events:none}
.password-inline-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:end}.password-inline-grid>label{display:flex;flex-direction:column;gap:5px}.password-inline-grid>label>span{font-size:12px;color:var(--muted)}
.password-wrap{position:relative}.password-wrap input{padding-right:42px}.password-eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:transparent;cursor:pointer;border-radius:4px}
.password-eye::before{content:"";display:block;width:18px;height:18px;margin:auto;background-repeat:no-repeat;background-position:center;background-size:18px 18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath d='M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6S2 12 2 12Z' fill='none' stroke='%237a6d65' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='12' r='2.6' fill='none' stroke='%237a6d65' stroke-width='1.7'/%3E%3C/svg%3E")}
.password-eye.is-visible::after{content:"";position:absolute;left:6px;right:6px;top:14px;height:1.5px;background:#7a6d65;transform:rotate(-42deg);transform-origin:center}
.password-eye:hover{background:#f5f1ec}

.token-section{margin-top:18px}.token-once{background:#f4f7ef;border:1px solid #ccd9c7;padding:12px 14px;margin-bottom:14px}.token-once p{margin:3px 0 10px;color:#5f6b5d}.token-copy-row{display:flex;gap:8px;align-items:center}.token-copy-row code{display:block;min-width:0;overflow-wrap:anywhere;background:#fff;border:1px solid #d5ddd1;padding:8px 10px;flex:1}
.token-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#eee9e2;border-top:1px solid #eee9e2;border-bottom:1px solid #eee9e2}.token-meta>div{background:#fff;padding:10px 12px}.token-meta span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.token-meta strong{font-weight:500}.token-action-form{margin-top:12px}

@media(max-width:1000px){.contact-primary-row{grid-template-columns:repeat(2,minmax(220px,1fr))}.contact-primary-row .inline-editor-actions{grid-column:1/-1}.contact-note-row{max-width:none}.account-summary-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.password-inline-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.password-inline-grid .inline-editor-actions{grid-column:1/-1}.token-meta{grid-template-columns:1fr}}
@media(max-width:700px){.footer{text-align:left;padding-left:16px}.contact-primary-row,.account-summary-grid,.password-inline-grid{grid-template-columns:1fr}.contact-primary-row .inline-editor-actions,.password-inline-grid .inline-editor-actions{grid-column:auto}.integration-compact-row{grid-template-columns:1fr!important}}
.integration-sync{margin-top:18px}.integration-sync-body{padding:0 2px 14px}.compact-heading{margin-bottom:10px}.compact-heading h2{margin-bottom:2px}

/* v0.1.7 — visual cleanup, semantic widths, overlay messages and shared components */
.flash-stack{position:fixed;top:72px;left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 32px));z-index:1200;pointer-events:none}
.flash-stack .flash{position:relative;margin:0;box-shadow:0 8px 26px rgba(55,45,40,.11);pointer-events:auto;padding-right:42px}
.flash-close{position:absolute;right:8px;top:6px;width:28px;height:28px;border:0;background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}
.flash-close:hover,.flash-close:focus{background:rgba(0,0,0,.06);outline:none}

/* Major form sections are separated by typography and spacing, not decorative rules. */
.editor-surface{border-top:0;border-bottom:0}
.nested-section{border:0!important;padding:14px 16px 4px!important;margin:18px 0 10px!important;background:#fff}
.nested-section+.nested-section{margin-top:22px!important}
.nested-list{border-top:0!important}
.nested-list-row{border-bottom:1px solid #eee9e2}
.nested-list-row:last-child{border-bottom:0}
.nested-editor{border:0!important;background:#fbfaf8;border-radius:3px}
.nested-editor.add-editor{border:1px solid #eee9e2!important}
.parent-form-actions,.clean-actions,.sticky-actions{border-top:0!important}

/* Shared working column and semantic field widths. */
.form-workarea{max-width:980px}
.form-workarea .form-group-row{max-width:640px}
.form-workarea .form-group-row.columns-3{max-width:980px}
.compact-pair-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:640px!important}
.name-code-row{grid-template-columns:minmax(300px,1fr) 150px!important;max-width:640px!important}
.series-number-row{grid-template-columns:180px minmax(240px,1fr)!important;max-width:640px!important}
.main-checkbox-row{grid-template-columns:minmax(280px,480px) auto!important;max-width:640px!important}
.form-group-row .form-field:has(> .field-control > input[name="code"]){max-width:150px}
.form-group-row .form-field:has(> .field-control > input[name="license_series"]),.form-group-row .form-field:has(> .field-control > input[name="passport_series"]){max-width:180px}
.form-actions.clean-actions,.parent-form-actions{max-width:640px!important}

/* Collapsible sections: visible heading, no outer horizontal rules. */
.sync-details{margin:18px 0 6px;border:0!important}
.sync-details summary{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;padding:8px 0;color:var(--text);font-size:18px;font-weight:500;line-height:1.3;cursor:pointer;list-style:none}
.sync-details summary::-webkit-details-marker{display:none}
.sync-details summary::after{content:"▾";display:inline-flex;align-items:center;justify-content:center;width:16px;height:22px;margin-left:2px;color:var(--muted);font-size:13px;line-height:1;transform-origin:center;transition:transform .2s ease}
.sync-details[open] summary::after{transform:rotate(180deg)}

/* API token is a normal open section on its settings screen. */
.token-section{margin-top:22px;max-width:640px}
.token-meta{border:1px solid #eee9e2!important}

/* Contacts: strict grid, primary star action and only useful row separators. */
.contacts-section{padding-left:16px!important;padding-right:16px!important}
.contact-list{margin-top:4px}
.contact-row{display:grid!important;grid-template-columns:110px minmax(180px,1fr) minmax(120px,.8fr) auto;align-items:center;gap:10px;padding:10px 4px!important}
.contact-type-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.contact-type-cell .nested-kicker{min-width:0}
.contact-display-value{font-weight:600;overflow-wrap:anywhere}
.contact-display-note{min-width:0;overflow-wrap:anywhere}
.primary-star{font-size:21px;line-height:1;color:#8a817b;padding:3px}
.primary-star:hover{color:#5d725f;background:#f1f6ef;border-color:#d9e5d6}
.primary-star.is-primary{color:#4b7d56}
.primary-star.is-primary:hover{color:#3f6a49}
.contact-editor{overflow:visible}
.contact-editor-grid{display:grid;grid-template-columns:minmax(0,640px) auto;gap:14px;align-items:end}
.contact-data-area{min-width:0}
.contact-fields-row{display:grid;grid-template-columns:140px 180px minmax(220px,1fr);gap:10px;align-items:end}
.contact-fields-row>label,.contact-note-row{display:flex;flex-direction:column;gap:5px}
.contact-fields-row label>span,.contact-note-row>span{font-size:12px;color:var(--muted)}
.contact-note-row{margin-top:10px;max-width:none!important}
.contact-editor-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;padding-bottom:0}
.phone-country.is-hidden{display:none}

/* Password editor stays visually inside its parent card. */
.password-inline-form{border:0!important}

/* Custom select popup with guaranteed viewport breathing room. */
.custom-select{position:relative;display:block;width:100%}
.custom-select-native{position:absolute!important;left:0;bottom:0;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;padding:0!important;border:0!important}
.custom-select-button{width:100%;min-height:40px;border:1px solid #cfc6bb;background:#fff;color:var(--text);border-radius:3px;padding:9px 38px 9px 10px;font:inherit;text-align:left;cursor:pointer;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}
.custom-select-button::after{content:"";position:absolute;right:14px;top:50%;width:12px;height:8px;transform:translateY(-50%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%235f5751' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px 8px no-repeat}
.custom-select-button:focus{border-color:#9f8276;box-shadow:0 0 0 2px rgba(140,47,52,.08);outline:none}
.custom-select-button:disabled{background:#f5f2ed;color:#6f6761;cursor:default}
.custom-select-menu{position:fixed;z-index:1400;background:#fff;border:1px solid #cfc6bb;border-radius:4px;box-shadow:0 10px 28px rgba(55,45,40,.14);overflow:auto;padding:4px}
.custom-select-option{display:flex;align-items:center;gap:8px;width:100%;border:0;background:#fff;color:var(--text);font:inherit;text-align:left;padding:8px 9px;border-radius:3px;cursor:pointer;white-space:normal}
.custom-select-option:hover,.custom-select-option:focus{background:#f5f1ec;outline:none}
.custom-select-option.is-selected{background:#eee6df;color:#4b403a;font-weight:600}
.custom-select-contact-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;color:#403a36}.custom-select-contact-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.custom-select-label-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:1000px){
  .contact-editor-grid{grid-template-columns:1fr}.contact-editor-actions{justify-content:flex-end}
  .contact-fields-row{grid-template-columns:repeat(2,minmax(180px,1fr))}.contact-value-field{grid-column:1/-1}
  .contact-row{grid-template-columns:100px minmax(180px,1fr) auto}.contact-display-note{grid-column:2}.nested-actions{grid-column:3;grid-row:1/3}
}
@media(max-width:700px){
  .flash-stack{top:78px;width:calc(100vw - 20px)}
  .form-workarea .form-group-row,.compact-pair-row,.name-code-row,.series-number-row,.main-checkbox-row{max-width:none!important;grid-template-columns:1fr!important}
  .contact-fields-row,.contact-row{grid-template-columns:1fr!important}.contact-display-note,.nested-actions{grid-column:auto;grid-row:auto}.nested-actions{justify-content:flex-start}
}

/* v0.1.8 — shared alignment, semantic grouping and compact toasts */
.section-heading{align-items:flex-start!important}
.section-heading>button.btn,.section-heading>a.btn{align-self:flex-start;margin-top:0}
.section-heading h2{line-height:1.35}

/* A parent card with nested tabular blocks uses the full working guide for final actions. */
.form-workarea>.parent-form-actions{max-width:980px!important;width:100%;justify-content:flex-end}
.form-actions.clean-actions:not(.parent-form-actions){max-width:640px!important}

/* Compactness never wins over readable self-contained labels. */
.main-checkbox-row{grid-template-columns:minmax(280px,480px) minmax(190px,max-content)!important;max-width:720px!important;align-items:start!important}
.main-checkbox-row .checkbox-unit{padding-top:25px;align-items:flex-start;min-height:0}
.checkbox-field{display:flex;align-items:center;min-height:40px}
.checkbox-field span{white-space:nowrap}

/* System messages: compact toast stack in the top-right of the working area. */
.flash-stack{position:fixed;top:74px;right:max(24px,calc((100vw - var(--max))/2 + 26px));left:auto;transform:none;width:max-content;max-width:min(420px,calc(100vw - 48px));z-index:1200;pointer-events:none;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.flash-stack .flash{width:max-content;max-width:420px;min-width:220px;margin:0;box-shadow:0 8px 26px rgba(55,45,40,.11);pointer-events:auto;padding-right:42px;overflow-wrap:anywhere}

/* Secondary information in small nested lists. */
.nested-main-stacked{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.nested-main-stacked>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.nested-comment{font-size:12px;color:var(--muted)}

@media(max-width:700px){
  .flash-stack{top:78px;right:10px;left:auto;width:max-content;max-width:calc(100vw - 20px)}
  .flash-stack .flash{max-width:calc(100vw - 20px);min-width:0}
  .main-checkbox-row .checkbox-unit{padding-top:0}
  .checkbox-field span{white-space:normal}
}

/* v0.1.13 — counterparty contact-person block only; based on v0.1.11 */
.cp-persons-section{background:#fff;border:1px solid #e4ddd4;border-radius:6px;margin:20px 0 0;padding:0;overflow:hidden}
.cp-persons-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 16px 14px;border-bottom:1px solid #eee9e2}
.cp-persons-heading-copy{display:flex;align-items:flex-start;gap:12px;min-width:0}.cp-persons-heading-copy h2{font-size:21px;font-weight:550;line-height:1.25;margin:0}.cp-persons-heading-copy p{font-size:13px;color:var(--muted);margin:3px 0 0}.cp-persons-heading-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex:0 0 26px;color:#342f2c}.cp-persons-heading-icon svg,.cp-person-avatar svg,.cp-summary-contact svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cp-persons-list{padding:0}.cp-person-card{--cp-type-col:160px;--cp-country-col:225px;--cp-value-col:280px;--cp-actions-col:104px;--cp-col-gap:12px;border-bottom:1px solid #eee9e2;background:#fff}.cp-person-card:last-child{border-bottom:0}.cp-person-card[open]{background:#fbf8f5}.cp-person-summary{list-style:none;display:grid;grid-template-columns:18px 34px 393px minmax(220px,1fr) var(--cp-actions-col);gap:10px;align-items:center;min-height:70px;padding:10px 28px 10px 14px;cursor:pointer}.cp-person-summary::-webkit-details-marker{display:none}.cp-person-summary:hover{background:#fcfaf8}.cp-person-chevron{width:9px;height:9px;border-right:1.6px solid #4b4541;border-bottom:1.6px solid #4b4541;transform:rotate(-45deg);transition:transform .16s ease;margin-left:2px}.cp-person-card[open] .cp-person-chevron{transform:rotate(45deg)}
.cp-person-avatar{width:28px;height:28px;color:#3e3834}.cp-person-nameblock{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.cp-person-nameblock strong{font-size:14px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.cp-person-nameblock>span:not(.micro-badge){font-size:12px;color:var(--muted);margin-top:1px}.cp-person-nameblock .micro-badge{margin-top:4px}
.cp-person-summary-contacts{display:flex;align-items:center;min-width:0}.cp-summary-contact{display:inline-flex;align-items:center;gap:7px;min-width:0;color:#443e3a;white-space:nowrap}.cp-summary-contact-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px}.cp-summary-contact svg{width:18px;height:18px;flex:0 0 18px}.cp-summary-contact>span:last-child{max-width:260px;overflow:hidden;text-overflow:ellipsis}.cp-person-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;width:var(--cp-actions-col);min-width:var(--cp-actions-col)}.cp-person-summary-actions .inline-action-form{display:inline-flex}
.cp-person-header-comment{margin:0 28px 8px 80px;color:#6f655e;font-size:13px;line-height:1.45}.cp-person-card:not([open])>.cp-person-header-comment{display:none}.cp-person-card:has(.cp-person-editor-surface.is-open)>.cp-person-header-comment{display:none}.cp-person-panel{margin:0 14px 14px 66px;background:#fff;border:1px solid #eee7de;border-radius:5px;padding:4px 14px 12px}.cp-contact-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:2px 0 10px}.cp-contact-panel-heading>strong{font-size:14px;font-weight:650}.cp-person-empty{color:var(--muted);font-size:13px;margin:8px 0 2px}
.cp-person-editor-surface{background:#fbf8f5;border:1px solid #eee7de;border-radius:5px;padding:13px;margin:0 0 14px}.cp-person-editor-surface.is-collapsed{display:none}.cp-person-editor-surface.is-open{display:block}.cp-person-fields-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));grid-template-rows:auto auto;gap:10px;align-items:stretch}.cp-person-fields-grid label{display:flex;flex-direction:column;gap:5px;min-width:0}.cp-person-fields-grid label>span{font-size:12px;color:var(--muted)}.cp-person-position{grid-column:1/4;grid-row:2}.cp-person-comment-field{grid-column:4;grid-row:1/3;min-height:0}.cp-person-comment-field textarea{flex:1;min-height:0;height:auto;resize:none}.cp-person-editor-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}
.cp-contact-list{display:flex;flex-direction:column}.cp-contact-item{border-bottom:1px solid #eee9e2}.cp-contact-item.is-editing .cp-contact-view{display:none}.cp-contact-view{display:grid;grid-template-columns:var(--cp-type-col) var(--cp-country-col) var(--cp-value-col) minmax(220px,1fr) var(--cp-actions-col);column-gap:var(--cp-col-gap);align-items:center;min-height:48px;padding:7px 0}.cp-contact-kind{grid-column:1;color:#5e554f;font-size:13px;display:flex;align-items:center;gap:8px;min-width:0}.contact-type-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;color:#403a36}.contact-type-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.cp-contact-kind>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-contact-value{grid-column:3;font-weight:550;overflow-wrap:anywhere}.cp-contact-note{grid-column:4;font-size:13px;color:#655c56;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-contact-actions{grid-column:5;display:flex;align-items:center;justify-content:flex-end;gap:5px;width:var(--cp-actions-col);min-width:var(--cp-actions-col)}.cp-contact-actions .inline-action-form{display:inline-flex}
.cp-contact-inline-editor{display:grid;grid-template-columns:var(--cp-type-col) var(--cp-country-col) var(--cp-value-col) minmax(220px,1fr) var(--cp-actions-col);column-gap:var(--cp-col-gap);align-items:center;padding:8px 0;background:#fbf8f5}.cp-contact-inline-editor.is-collapsed{display:none}.cp-contact-inline-editor.is-open{display:grid}.cp-contact-type-slot{grid-column:1;min-width:0}.cp-contact-inline-editor .phone-country{grid-column:2;min-width:0}.cp-contact-inline-editor .phone-country.is-hidden{display:block;visibility:hidden;pointer-events:none}.cp-contact-value-input{grid-column:3;width:100%}.cp-contact-note-input{grid-column:4;width:100%}.cp-contact-type-slot select,.cp-contact-inline-editor .phone-country>select{width:100%}.cp-contact-inline-actions{grid-column:5;display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}.cp-contact-add-editor .cp-contact-inline-actions{grid-column:5}.cp-contact-add-editor{border-top:1px solid #eee9e2}.cp-add-contact-line{order:99}.cp-contact-list>.cp-add-contact-line{flex:0 0 auto}.cp-contact-list>.cp-contact-add-editor{order:98}
.cp-person-add-form{background:#fbf8f5;border-top:1px solid #eee9e2;padding:14px 16px}.cp-person-add-form.is-collapsed{display:none}.cp-person-add-form.is-open{display:block}.cp-person-add-form .cp-person-editor-surface{margin:0;border-color:#e5ddd4;background:#fff}.cp-person-add-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}.cp-persons-empty{color:var(--muted);padding:14px 16px;margin:0}
.cp-draft-contacts-block{margin-top:14px}.cp-person-draft-list{display:flex;flex-direction:column;gap:8px}.cp-person-draft-contact{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(175px,.9fr) minmax(220px,1.25fr) minmax(220px,1.2fr) 34px 34px;gap:8px;align-items:end}.cp-person-draft-contact label{display:flex;flex-direction:column;gap:5px;min-width:0}.cp-person-draft-contact>label:nth-of-type(1){grid-column:1}.cp-person-draft-contact>.phone-country{grid-column:2}.cp-person-draft-contact>.contact-value-field{grid-column:3}.cp-person-draft-contact>.cp-draft-note{grid-column:4}.cp-person-draft-contact label>span{font-size:12px;color:var(--muted)}.cp-person-draft-contact .icon-button{margin-bottom:3px}.cp-add-contact-line{width:100%;margin-top:9px;border:1px dashed #d9d0c6;background:transparent;color:#675e57;min-height:35px;border-radius:4px;cursor:pointer}.cp-add-contact-line:hover{background:#f8f4ef;border-color:#c9bdb0;color:#423b36}
@media(max-width:1050px){.cp-person-card{--cp-type-col:130px;--cp-country-col:165px;--cp-value-col:210px;--cp-actions-col:104px;--cp-col-gap:10px}.cp-person-summary{grid-template-columns:18px 34px 283px minmax(180px,1fr) var(--cp-actions-col)}.cp-summary-contact>span{max-width:190px}.cp-person-panel{margin-left:54px}.cp-person-header-comment{margin-left:68px}.cp-person-fields-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}.cp-person-draft-contact{grid-template-columns:minmax(150px,1fr) minmax(170px,1fr) minmax(210px,1.2fr) minmax(190px,1fr) 34px 34px}}
@media(max-width:760px){.cp-persons-heading{flex-direction:column}.cp-person-summary{grid-template-columns:18px 30px 1fr auto;padding-right:14px;align-items:start}.cp-person-summary-contacts{grid-column:3/5}.cp-person-summary-actions{grid-column:3/5;justify-content:flex-start;width:auto;min-width:0}.cp-person-header-comment{margin:0 14px 8px 58px}.cp-person-panel{margin:0 8px 10px;padding:6px 10px 10px}.cp-person-fields-grid{grid-template-columns:1fr;grid-template-rows:auto}.cp-person-comment-field,.cp-person-position{grid-column:auto;grid-row:auto}.cp-person-comment-field textarea{min-height:88px}.cp-contact-view{grid-template-columns:1fr auto;gap:6px 10px;padding:7px 0}.cp-contact-kind,.cp-contact-value,.cp-contact-note{grid-column:1}.cp-contact-actions{grid-column:2;grid-row:1/4;align-self:center;width:auto;min-width:0}.cp-contact-inline-editor{grid-template-columns:1fr 1fr;gap:8px}.cp-contact-type-slot{grid-column:1}.cp-contact-inline-editor .phone-country{grid-column:2}.cp-contact-inline-editor .phone-country.is-hidden{visibility:hidden}.cp-contact-value-input,.cp-contact-note-input,.cp-contact-inline-actions{grid-column:1/-1}.cp-contact-add-primary{grid-column:1;justify-self:start}.cp-person-draft-contact{grid-template-columns:1fr 1fr}.cp-person-draft-contact .contact-value-field,.cp-person-draft-contact .cp-draft-note{grid-column:1/-1}.cp-person-draft-contact .icon-button{justify-self:start}.cp-person-editor-actions,.cp-person-add-actions{justify-content:flex-start}}

/* v0.1.14 — stable contact-row geometry, header composition and smooth accordion */
.custom-select-menu{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  touch-action:pan-y;
  pointer-events:auto;
}
.custom-select-button:disabled::after{display:none}

.cp-person-card{
  --cp-type-col:210px;
  --cp-country-col:170px;
  --cp-value-col:270px;
  --cp-actions-col:172px;
  --cp-col-gap:12px;
  overflow-anchor:none;
}
.cp-person-summary{
  position:relative;
  grid-template-columns:18px 34px minmax(300px,1fr) auto;
  min-height:78px;
  padding:10px 18px 10px 14px;
}
.cp-person-nameblock{grid-column:3;max-width:min(430px,42vw)}
.cp-person-nameblock>strong{font-size:14px}
.cp-person-meta{
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr);
  column-gap:9px;
  row-gap:1px;
  margin-top:3px!important;
  max-width:100%;
  color:#6f655e!important;
  font-size:12px!important;
  line-height:1.35;
}
.cp-person-meta-row{display:contents}
.cp-person-meta-label{color:#7c726b;white-space:nowrap}
.cp-person-meta-value{min-width:0;color:#5f5751;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-person-summary-contacts{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  justify-content:center;
  max-width:34%;
  pointer-events:none;
}
.cp-summary-contact{gap:8px;font-size:15px;font-weight:600;color:#443e3a}
.cp-summary-contact-icon,.cp-summary-contact svg{width:20px;height:20px;flex-basis:20px}
.cp-summary-contact>span:last-child{max-width:320px}
.cp-person-summary-actions{
  grid-column:4;
  width:auto;
  min-width:104px;
  justify-self:end;
}
.cp-person-chevron{transition:transform .22s ease}
.cp-person-collapsible{
  height:auto;
  opacity:1;
  transition:height .22s ease,opacity .18s ease;
  will-change:height,opacity;
  overflow-anchor:none;
}
.cp-person-panel{margin-top:0}

/* One physical grid for contact view/edit/add. */
.cp-contact-view,
.cp-contact-inline-editor{
  grid-template-columns:var(--cp-type-col) var(--cp-country-col) var(--cp-value-col) minmax(160px,1fr) var(--cp-actions-col);
  column-gap:var(--cp-col-gap);
  min-height:48px;
}
.cp-contact-view{padding:4px 0}
.cp-contact-inline-editor{padding:4px 0}
.cp-contact-kind{font-size:13px}
.cp-contact-kind>span:last-child{overflow:visible;text-overflow:clip}
.cp-contact-inline-actions{
  width:var(--cp-actions-col);
  min-width:var(--cp-actions-col);
  gap:7px;
}
.cp-contact-inline-actions .btn.small{padding-left:10px;padding-right:10px}

/* In edit mode the content stays on the same X/Y position; the control shell appears around it. */
.cp-contact-type-slot>.custom-select{
  margin-left:0;
  width:100%;
}
.cp-contact-type-slot .custom-select-button{
  min-height:40px;
  padding-left:8px;
  font-size:13px;
  color:#5e554f;
}
.cp-contact-value-input,
.cp-contact-note-input{
  min-height:40px;
  margin-left:0;
  width:100%;
}
.cp-contact-inline-editor .phone-country.is-disabled{display:block;visibility:visible;pointer-events:none}
.cp-contact-inline-editor .phone-country.is-disabled .custom-select-button{background:#f5f2ed;color:#8a817b}

/* New contacts never expose the primary-contact action. */
.cp-contact-add-editor .cp-contact-inline-actions{justify-content:flex-end}

/* Draft contacts in a new person follow the same readable widths; only remove remains as a row action. */
.cp-person-draft-contact{
  grid-template-columns:minmax(210px,.95fr) minmax(170px,.8fr) minmax(230px,1.25fr) minmax(220px,1.15fr) 34px;
}
.cp-person-draft-contact>.danger-icon{grid-column:5}
.cp-person-draft-contact .phone-country.is-disabled .custom-select-button{background:#f5f2ed;color:#8a817b}

@media(max-width:1050px){
  .cp-person-card{--cp-type-col:190px;--cp-country-col:150px;--cp-value-col:210px;--cp-actions-col:162px;--cp-col-gap:10px}
  .cp-person-summary{grid-template-columns:18px 34px minmax(260px,1fr) auto}
  .cp-person-nameblock{max-width:360px}
  .cp-person-summary-contacts{max-width:32%}
  .cp-summary-contact>span:last-child{max-width:220px}
  .cp-person-draft-contact{grid-template-columns:minmax(190px,1fr) minmax(150px,.8fr) minmax(210px,1.15fr) minmax(180px,1fr) 34px}
}

@media(max-width:760px){
  .cp-person-summary{grid-template-columns:18px 30px 1fr auto;min-height:70px;padding-right:14px;align-items:start}
  .cp-person-nameblock{max-width:none}
  .cp-person-summary-contacts{position:static;transform:none;grid-column:3/5;max-width:none;justify-content:flex-start;margin-top:6px;pointer-events:auto}
  .cp-person-summary-actions{grid-column:3/5;justify-content:flex-start;justify-self:start;width:auto;min-width:0}
  .cp-contact-view{padding:7px 0}
  .cp-contact-inline-editor{padding:8px 0}
  .cp-contact-type-slot>.custom-select{margin-left:0;width:100%}
  .cp-contact-value-input,.cp-contact-note-input{margin-left:0;width:100%}
  .cp-contact-inline-actions{width:auto;min-width:0}
  .cp-person-draft-contact{grid-template-columns:1fr 1fr}
  .cp-person-draft-contact>.danger-icon{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){
  .cp-person-collapsible,.cp-person-chevron{transition-duration:.01ms!important}
}

/* v0.1.15 — unified contact component, smooth contact-person accordion and counterparty detail refresh */

/* Semantic detail overview: one shared card pattern for all existing detail pages. */
.semantic-overview{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);background:#fff;border:1px solid #e4ddd4;border-radius:6px;margin:0 0 20px;padding:16px 18px;gap:0}
.semantic-overview.semantic-overview-single{grid-template-columns:1fr}
.semantic-overview-main,.semantic-overview-comment{min-width:0;padding:0 20px}
.semantic-overview-main{padding-left:0;border-right:1px solid #e9e2d9}
.semantic-overview-single .semantic-overview-main{border-right:0;padding-right:0}
.semantic-overview-comment{padding-right:0}
.semantic-overview-section+.semantic-overview-section{margin-top:16px;padding-top:14px;border-top:1px solid #eee9e2}
.semantic-overview-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.semantic-overview-title h2{font-size:18px;font-weight:600;line-height:1.25;margin:0}
.overview-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:#403a36;flex:0 0 22px}
.overview-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.semantic-overview-list{margin:0 0 0 32px;max-width:620px}
.semantic-overview-list>div{display:grid;grid-template-columns:minmax(150px,190px) minmax(0,1fr);gap:16px;padding:8px 0;border-bottom:1px solid #eee9e2}
.semantic-overview-list>div:last-child{border-bottom:0}
.semantic-overview-list dt{color:var(--muted);font-size:13px}
.semantic-overview-list dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.semantic-overview-comment-body{min-height:112px;background:#f8f5f1;border-radius:5px;padding:14px 16px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}

/* Synchronization has separate detail/edit presentation classes but one read-only information language. */
.sync-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:980px;gap:0;padding:4px 0 12px;background:#f8f5f1;border-radius:5px;overflow:hidden}
.sync-detail-grid{width:min(980px,100%)}
.sync-edit-grid{width:100%}
.sync-info-item{padding:12px 16px;min-height:70px;border-right:1px solid #e7dfd6}
.sync-info-item:last-child{border-right:0}
.sync-info-item span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}
.sync-info-item strong{font-weight:500;overflow-wrap:anywhere}

/* Shared work-card family for Contacts, Roles and Account. */
.work-card{background:#fff!important;border:1px solid #e4ddd4!important;border-radius:6px!important;margin:20px 0 0!important;padding:0!important;overflow:visible;min-width:0}
.work-card>.section-heading{padding:16px 16px 14px;margin:0!important;border-bottom:1px solid #eee9e2;align-items:flex-start!important}
.work-card>.section-heading h2{font-size:21px;font-weight:550;line-height:1.25;margin:0}
.work-card-heading-copy{display:flex;align-items:flex-start;gap:12px;min-width:0}
.work-card-heading-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex:0 0 26px;color:#342f2c}
.work-card-heading-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.work-card .section-note{margin-top:3px}
.work-card-body{padding:0 16px 12px;min-width:0}
.contacts-section-unified .nested-empty,.user-card-section .nested-empty{padding:12px 2px;margin:0}
.user-card-section .nested-editor.add-editor{margin:8px 0 0}
.user-card-section .account-summary-grid{padding-top:12px}
.user-card-section .password-inline-form{margin-left:0;margin-right:0}

/* Contact-person header: independent composition, centered primary contact, no bold contact value. */
.cp-persons-heading-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.cp-person-journal-link{width:36px;height:36px}
.cp-person-journal-link svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cp-person-card{--cp-type-col:220px;--cp-country-col:170px;--cp-value-col:270px;--cp-actions-col:176px;--cp-col-gap:12px;overflow-anchor:none}
.cp-person-card.is-open-card{background:#fbf8f5}
.cp-person-summary{position:relative;display:grid;grid-template-columns:18px 34px minmax(300px,1fr) auto;gap:10px;align-items:center;min-height:78px;padding:10px 18px 10px 14px;cursor:pointer;outline:none}
.cp-person-summary:focus-visible{box-shadow:inset 0 0 0 2px rgba(140,47,52,.13)}
.cp-person-card.is-open-card .cp-person-chevron{transform:rotate(45deg)}
.cp-person-nameblock{grid-column:3;max-width:min(430px,42vw)}
.cp-person-nameblock>strong{font-size:14px}
.cp-person-nameblock>.cp-person-meta-value{display:block;margin-top:1px;font-size:12px;color:#655c56;line-height:1.35;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-person-summary-contacts{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;justify-content:center;max-width:34%;pointer-events:none}
.cp-summary-contact{gap:8px;font-size:15px;font-weight:400;color:#443e3a}
.cp-summary-contact-icon,.cp-summary-contact svg{width:20px;height:20px;flex-basis:20px}
.cp-summary-contact>span:last-child{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}
.cp-person-summary-actions{grid-column:4;width:auto;min-width:104px;justify-self:end}

/* Accordion uses CSS grid interpolation: no height measurement, no forced reflow. */
.cp-person-collapsible{display:grid;grid-template-rows:0fr;opacity:1;visibility:hidden;transition:grid-template-rows .20s cubic-bezier(.2,.7,.25,1),visibility 0s linear .20s;overflow:clip;overflow-anchor:none}
.cp-person-card.is-open-card>.cp-person-collapsible{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .20s cubic-bezier(.2,.7,.25,1),visibility 0s linear 0s}
.cp-person-collapsible-inner{min-height:0;overflow:hidden;contain:paint}
.cp-person-panel{margin-top:0}
.cp-person-chevron{transition:transform .20s cubic-bezier(.2,.7,.25,1)}

/* One physical contact grid everywhere. Gaps are equal and edit shells do not move the read value. */
.cp-contact-list{--cp-actions-col:164px;--cp-col-gap:10px;container-type:inline-size;min-width:0}
.cp-contact-view,.cp-contact-inline-editor{display:grid;grid-template-columns:minmax(190px,1.05fr) minmax(140px,.8fr) minmax(190px,1.15fr) minmax(120px,1fr) var(--cp-actions-col);column-gap:var(--cp-col-gap);align-items:center;min-height:48px;padding:4px 0;min-width:0}
.cp-contact-inline-editor.is-collapsed{display:none}.cp-contact-inline-editor.is-open{display:grid}
.cp-contact-item.is-editing .cp-contact-view{display:none}
.cp-contact-kind{grid-column:1;padding-left:10px;color:#5e554f;font-size:13px;display:flex;align-items:center;gap:8px;min-width:0}
.cp-contact-country-read{grid-column:2}
.cp-contact-value{grid-column:3;padding-left:10px;font-weight:400;overflow-wrap:anywhere}
.cp-contact-note{grid-column:4;padding-left:10px;font-size:13px;color:#655c56;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-contact-actions{grid-column:5;display:flex;align-items:center;justify-content:flex-end;gap:5px;width:var(--cp-actions-col);min-width:var(--cp-actions-col)}
.cp-contact-type-slot{grid-column:1;min-width:0}
.cp-contact-inline-editor .phone-country{grid-column:2;min-width:0}
.cp-contact-value-input{grid-column:3;width:100%}.cp-contact-note-input{grid-column:4;width:100%}
.cp-contact-inline-actions{grid-column:5;display:flex;align-items:center;justify-content:flex-end;gap:7px;width:var(--cp-actions-col);min-width:var(--cp-actions-col);white-space:nowrap}
.cp-contact-type-slot>.custom-select{margin-left:0;width:100%}
.cp-contact-type-slot .custom-select-button{min-height:40px;padding-left:9px;font-size:13px;color:#5e554f}
.cp-contact-inline-editor .phone-country .custom-select-button{min-height:40px}
.cp-contact-value-input,.cp-contact-note-input{min-height:40px;margin-left:0;width:100%;padding-left:9px}
.cp-contact-inline-editor .phone-country.is-disabled{display:block;visibility:visible;pointer-events:none}
.cp-contact-inline-editor .phone-country.is-disabled .custom-select-button{background:#f5f2ed;color:#8a817b}
.cp-contact-remove-actions{justify-content:flex-end}
.cp-contact-add-editor{border-top:1px solid #eee9e2;background:#fbf8f5}
.cp-contact-add-editor .primary-star{display:none}
.cp-contact-item{border-bottom:1px solid #eee9e2}
.cp-contact-item:last-of-type{border-bottom:0}
.cp-contact-kind>span:last-child{overflow:visible;text-overflow:clip;white-space:nowrap}

/* Draft contacts use exactly the same row component: no headings above fields. */
.cp-person-draft-list{display:flex;flex-direction:column;gap:0}
.cp-person-draft-contact{--cp-type-col:220px;--cp-country-col:170px;--cp-value-col:270px;--cp-actions-col:176px;--cp-col-gap:12px;width:100%;border-bottom:1px solid #eee9e2;background:#fff}
.cp-person-draft-contact label,.cp-person-draft-contact label>span{display:contents}
.cp-person-draft-contact .phone-country.is-disabled .custom-select-button{background:#f5f2ed;color:#8a817b}

/* Native scrollbar interaction in portaled custom dropdowns. */
.custom-select-menu{overflow-y:auto!important;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y;pointer-events:auto}

@media(max-width:1100px){
  .cp-person-card,.cp-person-draft-contact{--cp-type-col:190px;--cp-country-col:150px;--cp-value-col:220px;--cp-actions-col:164px;--cp-col-gap:10px}
  .cp-person-summary{grid-template-columns:18px 34px minmax(260px,1fr) auto}
  .cp-person-nameblock{max-width:360px}.cp-person-summary-contacts{max-width:31%}.cp-summary-contact>span:last-child{max-width:220px}
}
@media(max-width:850px){
  .semantic-overview{grid-template-columns:1fr;gap:18px}.semantic-overview-main,.semantic-overview-comment{padding:0}.semantic-overview-main{border-right:0;border-bottom:1px solid #e9e2d9;padding-bottom:16px}.semantic-overview-single .semantic-overview-main{border-bottom:0;padding-bottom:0}
  .sync-info-grid{grid-template-columns:1fr}.sync-info-item{border-right:0;border-bottom:1px solid #e7dfd6}.sync-info-item:last-child{border-bottom:0}
  .cp-person-summary{grid-template-columns:18px 30px 1fr auto;min-height:70px;padding-right:14px;align-items:start}
  .cp-person-nameblock{max-width:none}.cp-person-summary-contacts{position:static;transform:none;grid-column:3/5;max-width:none;justify-content:flex-start;margin-top:6px;pointer-events:auto}.cp-person-summary-actions{grid-column:3/5;justify-content:flex-start;justify-self:start;width:auto;min-width:0}
  .cp-contact-view,.cp-contact-inline-editor{grid-template-columns:1fr 1fr;gap:8px;padding:7px 0}
  .cp-contact-kind,.cp-contact-country-read{grid-column:1}.cp-contact-value{grid-column:1}.cp-contact-note{grid-column:1}.cp-contact-actions{grid-column:2;grid-row:1/4;align-self:center;width:auto;min-width:0}.cp-contact-type-slot{grid-column:1}.cp-contact-inline-editor .phone-country{grid-column:2}.cp-contact-value-input,.cp-contact-note-input,.cp-contact-inline-actions{grid-column:1/-1}.cp-contact-inline-actions{width:auto;min-width:0}
}
@media(prefers-reduced-motion:reduce){.cp-person-collapsible,.cp-person-chevron{transition-duration:.01ms!important}}

/* v0.1.16 — container-aware contacts and unified user cards */
@container (max-width:860px){
  .cp-contact-view,.cp-contact-inline-editor{grid-template-columns:1fr 1fr;gap:8px;padding:7px 0}
  .cp-contact-kind,.cp-contact-country-read{grid-column:1}
  .cp-contact-value,.cp-contact-note{grid-column:1}
  .cp-contact-actions{grid-column:2;grid-row:1/4;align-self:center;width:auto;min-width:0}
  .cp-contact-type-slot{grid-column:1}
  .cp-contact-inline-editor .phone-country{grid-column:2}
  .cp-contact-value-input,.cp-contact-note-input,.cp-contact-inline-actions{grid-column:1/-1}
  .cp-contact-inline-actions{width:auto;min-width:0}
}
@media(max-width:850px){
  .semantic-overview-list{margin-left:0}
}
@media(max-width:700px){
  .work-card>.section-heading{flex-direction:column}
  .work-card-body{padding-left:12px;padding-right:12px}
  .account-summary-grid{grid-template-columns:1fr}
}

/* v0.1.17 — targeted UI fixes from post-v0.1.16 user testing. */

/* №1: only the two counterparty overview headings use the established work-card heading typography. */
.counterparty-semantic-overview .semantic-overview-title h2{font-size:21px;font-weight:550;line-height:1.25}

/* №2: login is a semantic short field, not a fluid full-column input. */
.user-card-section .account-login-field{max-width:320px}
.user-card-section .account-login-field input{width:100%}

/* №4: editing an existing contact person is embedded into the open card without a second framed surface. */
.cp-person-editor-surface.cp-person-edit-surface{background:transparent;border:0;border-radius:0;padding:13px 0;margin:0 0 14px}

/* №5: on wide contact-person cards, keep the contact table on its own stable geometry instead of the v0.1.16 fluid guide. */
@container (min-width:1000px){
  .cp-contact-view,.cp-contact-inline-editor{grid-template-columns:220px 170px 270px minmax(160px,1fr) var(--cp-actions-col)}
}

/* №6: do not reserve a permanent scrollbar gutter when the dropdown does not need one. */
.custom-select-menu{scrollbar-gutter:auto}

/* №7: Integration with 1C is intentionally a narrow work area; keep its final actions on that same right guide. */
.form-workarea.narrow-workarea{max-width:640px}
.form-workarea.narrow-workarea>.parent-form-actions{max-width:640px!important;width:100%;justify-content:flex-end}

/* №8: synchronization is three short system values, so its information strip stays compact everywhere. */
.sync-info-grid{width:min(760px,100%);max-width:760px}
.sync-detail-grid,.sync-edit-grid{width:min(760px,100%);max-width:760px}

@media(max-width:850px){
  .sync-info-grid,.sync-detail-grid,.sync-edit-grid{width:100%;max-width:none}
}



/* v0.1.18 — post-v0.1.17 UI regression fixes. Keep changes scoped to agreed patterns. */

/* №1: a contact-person summary is one hover surface; the centered primary-contact layer must not cut a white hole through it. */
.cp-person-summary{--cp-summary-surface:transparent;background:var(--cp-summary-surface)}
.cp-person-summary:hover{--cp-summary-surface:#fcfaf8}
.cp-person-summary-contacts,.cp-summary-contact{background:var(--cp-summary-surface)}

/* №2: synchronization never exceeds the canonical 640px working guide of edit/new forms. */
.sync-details{width:min(640px,100%);max-width:640px}
.sync-info-grid,.sync-detail-grid,.sync-edit-grid{width:100%;max-width:100%}

/* №3 + №5: one canonical inner-section heading pattern across the project. */
.section-heading h2,.semantic-overview-title h2,.cp-persons-heading-copy h2{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:21px;font-weight:550;line-height:1.25;color:var(--text);margin:0}
.semantic-overview-title{gap:12px}
.overview-icon{width:26px;height:26px;flex:0 0 26px}
.overview-icon svg{width:26px;height:26px;stroke-width:1.7}
.section-note{font-size:13px;margin-top:3px}
.sync-details summary{font-family:Inter,"Segoe UI",Arial,sans-serif;display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;padding:8px 0;color:var(--text);font-size:21px;font-weight:550;line-height:1.25;cursor:pointer;list-style:none}
.sync-details summary::-webkit-details-marker{display:none}
.sync-details summary::after{content:"";display:inline-block;width:12px;height:8px;flex:0 0 12px;margin-left:2px;background:var(--muted);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 50%;transition:transform .2s ease}
.sync-details[open] summary::after{transform:rotate(180deg)}

/* №4: Driver Documents is a separate semantic block, not a continuation of Basic data. */
.driver-primary-overview{margin-bottom:14px}
.driver-documents-overview{margin-top:0}

/* Уточнение пользователя: Login is exactly the same width and X-guide as New password on desktop. */
@media(min-width:1001px){
  .user-card-section .work-card-body{--credential-field-width:340px}
  .user-card-section .account-summary-grid{grid-template-columns:var(--credential-field-width) minmax(130px,.6fr) minmax(160px,.7fr) auto}
  .user-card-section .account-login-field{width:var(--credential-field-width);max-width:none}
  .user-card-section .password-inline-form{padding-left:0;padding-right:0}
  .user-card-section .password-inline-grid{grid-template-columns:var(--credential-field-width) var(--credential-field-width) auto}
}

@media(max-width:850px){
  .sync-details{width:100%;max-width:100%}
}
/* The same typography applies to legacy form subsection titles that are the same hierarchy level. */
.form-section-title{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:21px;font-weight:550;line-height:1.25;color:var(--text)}

/* v0.1.19 — agreed post-v0.1.18 consistency and Visit form changes. */

/* Sync disclosure triangle: fixed geometry and optical vertical centering on every page. */
.sync-details summary::after{align-self:center;transform:translateY(1px)}
.sync-details[open] summary::after{transform:translateY(1px) rotate(180deg)}

/* Site admission mode: compact contextual explanation directly under the selector. */
.admission-mode-help{line-height:1.45;min-height:0}
.admission-mode-help>[data-admission-help]>div+div{margin-top:2px}

/* User detail keeps the established work-card family without introducing edit controls. */
.user-detail-card .work-card-body{padding-top:12px}
.user-detail-account-summary{grid-template-columns:repeat(3,minmax(160px,1fr));padding-top:0}

/* Visit synchronization is read-only system information and follows the shared sync presentation. */
.visit-sync-details{margin-top:18px}
.visit-sync-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.visit-sync-grid .sync-info-item:nth-child(3n){border-right:0}
.visit-sync-grid .sync-info-item:nth-child(n+4){border-top:1px solid #e7dfd6}

@media(max-width:850px){
  .visit-sync-grid{grid-template-columns:1fr}
  .visit-sync-grid .sync-info-item{border-right:0;border-top:0;border-bottom:1px solid #e7dfd6}
  .visit-sync-grid .sync-info-item:last-child{border-bottom:0}
}

@media(max-width:700px){
  .user-detail-account-summary{grid-template-columns:1fr}
}


/* v0.1.20 — scoped regression fixes only. */
/* Contact-person hover: fill the full closed card surface through the divider, not only the summary layer. */
.cp-person-card:not(.is-open-card):has(>.cp-person-summary:hover){background:#fcfaf8}

/* v0.1.21 — Visit admission workflow and driver public access. */
.semantic-overview-aside-list{margin-left:32px}
.visit-transport-overview{margin-bottom:20px}

.admission-card{margin-top:0!important;margin-bottom:20px!important;overflow:hidden}
.admission-card-heading{border-bottom:1px solid #eee9e2!important}
.admission-console{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(340px,.78fr);gap:0;min-width:0}
.admission-console-main{padding:18px 20px 20px;min-width:0}
.driver-preview-card{border-left:1px solid #e9e2d9;background:#fbf9f6;padding:18px 20px 20px;min-width:0}
.driver-preview-card h3{margin:0 0 14px;font-size:18px;font-weight:550;line-height:1.3;color:var(--text)}
.admission-field-group{margin-bottom:18px;min-width:0}
.admission-field-group>label,.admission-send-field>label{display:block;margin-bottom:7px;font-size:13px;font-weight:550;color:#514943}
.admission-status-form{display:grid;grid-template-columns:minmax(220px,340px) auto;gap:10px;align-items:center;max-width:520px}
.admission-readonly-value{display:flex;align-items:center;width:min(340px,100%);min-height:42px;padding:9px 12px;border:1px solid #ddd5cc;border-radius:5px;background:#f8f5f1;font-weight:500}
.field-help{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.4}
.admission-link-row{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.admission-link-row form{margin:0}
.admission-link-value{flex:1 1 360px;min-width:220px;max-width:100%;padding:9px 11px;border:1px solid #ddd5cc;border-radius:5px;background:#fff;font-family:Consolas,"SFMono-Regular",monospace;font-size:12px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admission-link-value.is-empty{font-family:inherit;color:var(--muted);background:#faf8f5}
.btn.compact{min-height:36px;padding:7px 11px}
.admission-send-panel{display:grid;grid-template-columns:minmax(180px,1fr) minmax(190px,1fr) auto;gap:10px;align-items:end;margin:20px 0 14px;padding:14px;background:#f8f5f1;border-radius:6px}
.admission-send-field{min-width:0}
.admission-send-field select,.admission-send-field .custom-select{width:100%}
.admission-sms-button{white-space:nowrap;min-height:42px}
.admission-history{border:1px solid #e5ded5;border-radius:6px;background:#fff;overflow:hidden}
.admission-history summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 13px;cursor:pointer;list-style:none;font-size:13px}
.admission-history summary::-webkit-details-marker{display:none}
.admission-history summary::after{content:"▾";color:var(--muted);font-size:12px;transition:transform .2s ease}
.admission-history[open] summary::after{transform:rotate(180deg)}
.admission-history summary>span:first-child{font-weight:550}
.admission-history summary>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admission-history-list{border-top:1px solid #eee9e2;background:#fbfaf8}
.admission-history-list>div{display:grid;grid-template-columns:155px minmax(0,1fr);gap:12px;padding:9px 13px;border-bottom:1px solid #eee9e2;font-size:12px}
.admission-history-list>div:last-child{border-bottom:0}
.admission-history-list span{color:var(--muted)}
.admission-history-list strong{font-weight:500}
.driver-preview-list{margin:0}
.driver-preview-list>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid #e9e2d9}
.driver-preview-list dt{font-size:12px;color:var(--muted)}
.driver-preview-list dd{margin:0;font-size:13px;font-weight:500;overflow-wrap:anywhere}
.driver-preview-code{text-align:center;margin:20px 0 16px;padding-top:2px}
.driver-preview-code>strong{display:block;margin-bottom:10px;font-size:14px;font-weight:550}
.driver-preview-code>span{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
.datamatrix-frame{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e1dad1;border-radius:6px;padding:10px}
.datamatrix-frame img{display:block;width:196px;height:196px;image-rendering:pixelated}
.driver-preview-open{display:block;border-top:1px solid #e9e2d9;padding-top:13px;color:var(--accent);font-size:13px;text-decoration:none;font-weight:550}
.driver-preview-open.is-disabled{color:var(--muted);font-weight:400}

/* Public driver page has no internal service navigation. */
.driver-access-page{min-height:100vh;background:#f3f0eb;color:var(--text)}
.driver-access-shell{width:min(720px,calc(100% - 28px));margin:0 auto;padding:26px 0 30px}
.driver-access-brand{margin:0 0 16px;font-size:17px;font-weight:650;color:#3a3531}
.driver-access-card{background:#fff;border:1px solid #e1dad1;border-radius:8px;padding:22px 24px}
.driver-access-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.driver-access-heading h1,.driver-access-error h1{margin:0;font-size:28px;font-weight:550;line-height:1.2}
.driver-access-site{margin:7px 0 18px;color:var(--muted);font-size:14px}
.driver-access-info{margin:0}
.driver-access-info>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;padding:11px 0;border-bottom:1px solid #eee9e2}
.driver-access-info dt{color:var(--muted);font-size:13px}
.driver-access-info dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.driver-access-code{text-align:center;padding:24px 0 4px}
.driver-access-code h2{margin:0 0 12px;font-size:20px;font-weight:550}
.datamatrix-frame.public{padding:12px}
.datamatrix-frame.public img{width:min(250px,70vw);height:auto;aspect-ratio:1}
.driver-access-code p{margin:10px 0 0;color:var(--muted);font-size:13px}
.driver-access-error p{line-height:1.55}
.driver-access-footer{text-align:center;color:var(--muted);font-size:11px;padding:18px 0 0}

@media(max-width:980px){
  .admission-console{grid-template-columns:1fr}
  .driver-preview-card{border-left:0;border-top:1px solid #e9e2d9}
  .admission-send-panel{grid-template-columns:1fr 1fr}
  .admission-sms-button{grid-column:1/-1;justify-self:start}
}
@media(max-width:700px){
  .semantic-overview-aside-list{margin-left:0}
  .admission-console-main,.driver-preview-card{padding-left:14px;padding-right:14px}
  .admission-status-form{grid-template-columns:1fr}
  .admission-link-row{align-items:stretch}
  .admission-link-value{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}
  .admission-send-panel{grid-template-columns:1fr}
  .admission-sms-button{grid-column:auto;width:100%}
  .admission-history summary{grid-template-columns:1fr auto}
  .admission-history summary>span:nth-child(2){grid-column:1/-1;grid-row:2;white-space:normal}
  .admission-history-list>div{grid-template-columns:1fr;gap:3px}
  .driver-preview-list>div,.driver-access-info>div{grid-template-columns:1fr;gap:3px}
  .driver-access-card{padding:18px 16px}
  .driver-access-heading{display:block}
  .driver-access-heading .status-badge{display:inline-flex;margin-top:10px}
}

/* v0.1.22 — account email, login validation and root platform UI. */
.account-summary-grid-with-email{grid-template-columns:var(--credential-field-width,340px) minmax(260px,340px) minmax(130px,.6fr) minmax(160px,.7fr) auto}
.account-email-field{min-width:0}
.account-email-field .custom-select,.account-email-field select{width:100%}
.login-help{display:block;margin-top:2px}
.field-validation-error{display:block;margin-top:4px;color:#a33b32;font-size:12px;line-height:1.35}
input.is-invalid,select.is-invalid{border-color:#b55248!important;box-shadow:0 0 0 1px rgba(181,82,72,.08)}
.account-prerequisite-note{margin:0;padding:12px 14px;background:#f8f5f1;border-radius:5px;color:#625a54;font-size:13px;line-height:1.45}

.admission-history-list>div{grid-template-columns:155px minmax(0,1fr) minmax(145px,190px)}
.admission-history-list>div>span:last-child{text-align:right;color:var(--text)}

.root-shell{max-width:1280px}
.root-nav{display:flex;gap:4px;align-items:center}
.root-nav a{color:inherit;text-decoration:none;padding:8px 9px;border-radius:4px;font-size:13px}
.root-nav a:hover{background:#f0ebe5}
.root-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;margin-bottom:24px}
.root-kpi{display:flex;flex-direction:column;gap:4px;padding:18px;background:#fff;border:1px solid #e4ddd4;border-radius:7px;text-decoration:none;color:var(--text)}
.root-kpi span{font-size:13px;color:var(--muted)}.root-kpi strong{font-size:28px;font-weight:550}.root-kpi small{font-size:12px;color:var(--muted)}
.root-login-card{max-width:440px}.root-security-note{margin:14px 0;padding:12px;background:#f8f5f1;border:1px solid #e6ddd4;border-radius:5px;font-size:13px;line-height:1.45}.root-security-note code{font-size:12px}
.root-admin-create{margin-bottom:20px}.root-admin-form{display:grid;grid-template-columns:1fr 1fr 1fr 1.35fr auto;gap:12px;align-items:end}.root-admin-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}
.root-diagnostics-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:1px;background:#e7dfd6;border:1px solid #e7dfd6;border-radius:6px;overflow:hidden;margin-bottom:20px}.root-diagnostics-grid>div{background:#fff;padding:13px 15px;display:flex;flex-direction:column;gap:5px}.root-diagnostics-grid span{font-size:12px;color:var(--muted)}.root-diagnostics-grid strong{font-weight:550}
.root-errors{display:flex;flex-direction:column;gap:7px}.root-errors code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;padding:8px 10px;background:#f8f5f1;border-radius:4px}
.inline-error{margin:12px 0;padding:10px 12px;background:#fff2f0;border:1px solid #e2b8b3;border-radius:5px;color:#8f3129;font-size:13px}

@media(max-width:1100px){.account-summary-grid-with-email{grid-template-columns:repeat(2,minmax(240px,1fr))}.root-kpi-grid{grid-template-columns:repeat(2,1fr)}.root-admin-form{grid-template-columns:1fr 1fr}.root-admin-form .btn{justify-self:start}.root-diagnostics-grid{grid-template-columns:repeat(2,1fr)}.root-nav{gap:0}.root-nav a{padding:7px 6px;font-size:12px}}
@media(max-width:700px){.account-summary-grid-with-email,.root-kpi-grid,.root-admin-form,.root-diagnostics-grid{grid-template-columns:1fr}.admission-history-list>div{grid-template-columns:1fr;gap:3px}.admission-history-list>div>span:last-child{text-align:left}.root-nav{display:none}}

/* v0.1.23 — account layout, public auth, root maintenance, signup and checkpoint UI */
@media(min-width:1001px){
  .user-card-section .account-summary-grid-with-email{
    display:grid;
    grid-template-columns:var(--credential-field-width,340px) minmax(260px,340px) minmax(150px,1fr) auto;
    grid-template-areas:
      "login email spacer spacer"
      "password last spacer2 action";
    column-gap:16px;
    row-gap:14px;
    align-items:end;
  }
  .account-summary-grid-with-email .account-login-field{grid-area:login}
  .account-summary-grid-with-email .account-email-field{grid-area:email}
  .account-summary-grid-with-email .account-password-state{grid-area:password}
  .account-summary-grid-with-email .account-last-login{grid-area:last}
  .account-summary-grid-with-email .account-password-action{grid-area:action;align-self:end}
}
@media(max-width:1000px){.account-summary-grid-with-email{grid-template-columns:repeat(2,minmax(220px,1fr))}.account-password-action{justify-self:start}}
@media(max-width:700px){.account-summary-grid-with-email{grid-template-columns:1fr}}

.standalone-auth-page{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}
.standalone-auth-header{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px}
.standalone-auth-shell{width:100%;max-width:960px;margin:0 auto;padding:54px 24px 42px;flex:1}
.standalone-auth-shell .auth-panel{margin:0 auto;border-radius:6px;box-shadow:0 1px 2px rgba(50,42,36,.03)}
.auth-panel.root-login-panel,.auth-panel.password-reset-panel{max-width:480px}
.auth-panel.signup-panel{max-width:680px}
.auth-panel.verify-panel,.auth-panel.complete-signup-panel{max-width:520px}
.auth-form{display:grid;gap:15px;margin-top:22px}
.auth-form label,.signup-form label,.verify-form label{display:flex;flex-direction:column;gap:6px}
.auth-form label>span,.signup-form label>span,.verify-form label>span{font-size:12px;color:var(--muted);font-style:normal}
.auth-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.root-login-mark{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#6d625a;background:#f5f1ec;border:1px solid #e2d9cf;border-radius:999px;padding:5px 9px;margin-bottom:14px}
.root-login-mark svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.root-security-note{margin:14px 0;padding:12px;background:#f8f5f1;border:1px solid #e6ddd4;border-radius:5px;font-size:13px;line-height:1.45}.root-security-note code{font-size:12px}
.password-requirements{display:flex;flex-direction:column;gap:2px;background:#f8f5f1;border:1px solid #e6ddd4;border-radius:4px;padding:10px 12px;font-size:12px;color:var(--muted)}
.password-requirements strong{color:var(--text);font-weight:600}
.password-reset-user{margin-top:6px;font-weight:600}
.password-reset-state{margin-top:18px}

.signup-form{margin-top:22px}.signup-grid{display:grid;gap:14px}.signup-grid.two-col{grid-template-columns:1fr 1fr}.signup-grid .span-2{grid-column:1/-1}.signup-form em{font-size:11px;color:#aaa099;font-style:normal;margin-left:4px}.signup-consent{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:9px!important;margin-top:18px}.signup-consent input{width:auto;margin-top:3px}.signup-consent span{font-size:13px!important;color:var(--text)!important}.signup-error{margin-top:18px}.verify-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:22px}.verify-form input{font-size:22px;letter-spacing:.24em;text-align:center}.verify-resend{margin-top:16px}.signup-complete-form{margin-top:22px}
@media(max-width:640px){.standalone-auth-header{padding:0 16px}.standalone-auth-shell{padding:28px 14px}.signup-grid.two-col{grid-template-columns:1fr}.signup-grid .span-2{grid-column:auto}.verify-form{grid-template-columns:1fr}.auth-actions{justify-content:stretch}.auth-actions .btn{flex:1}}

.root-maintenance-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:15px 16px;margin:0 0 18px}.root-maintenance-card h2{font-size:18px;font-weight:550;margin:0 0 4px}.root-maintenance-row{display:flex;align-items:end;gap:10px;margin-top:12px}.root-maintenance-row label{display:flex;flex-direction:column;gap:5px;min-width:260px}.root-maintenance-row label span{font-size:12px;color:var(--muted)}
.project-dialog{border:1px solid var(--line);border-radius:7px;padding:22px;max-width:480px;width:calc(100% - 28px);color:var(--text);background:#fff;box-shadow:0 18px 50px rgba(45,37,32,.18)}.project-dialog::backdrop{background:rgba(49,45,43,.28)}.project-dialog h2{font-size:22px;font-weight:550;margin:0 30px 8px 0}.dialog-close-form{position:absolute;right:12px;top:10px}.dialog-x{border:0;background:transparent;font-size:25px;color:var(--muted);cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.danger-confirm-text{margin-top:14px;line-height:1.5}.danger-confirm-text strong{display:block;margin-bottom:5px}
.tenant-unidentified-icon{display:inline-flex;vertical-align:middle;margin-left:6px;color:var(--amber);cursor:help}.tenant-unidentified-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.root-inline-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.root-inline-form label{display:flex;flex-direction:column;gap:5px}.root-inline-form label span{font-size:12px;color:var(--muted)}
.root-demo-card{margin-top:20px}.root-demo-card input[type=date]{min-width:180px}.root-demo-note{font-size:12px;color:var(--muted);margin-top:7px}

.root-mail-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}.root-mail-form{background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px}.root-mail-form h2{font-size:20px;font-weight:550;margin:0 0 15px}.root-mail-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.root-mail-fields label{display:flex;flex-direction:column;gap:5px}.root-mail-fields label span{font-size:12px;color:var(--muted)}.root-mail-fields .span-2{grid-column:1/-1}.mail-action-box{background:#f8f5f1;border:1px solid #e8e0d7;border-radius:5px;padding:11px 12px}.mail-action-box .check{margin-bottom:8px}.mail-account-status.ok{color:var(--green)}.mail-account-status.error{color:var(--red)}.mail-account-secret{font-size:12px;color:var(--muted)}
@media(max-width:900px){.root-mail-grid{grid-template-columns:1fr}.root-mail-fields{grid-template-columns:1fr}.root-mail-fields .span-2{grid-column:auto}.root-maintenance-row{align-items:stretch;flex-direction:column}.root-maintenance-row label{min-width:0}}

.checkpoint-heading-actions{display:flex;gap:8px}.checkpoint-filter{grid-template-columns:minmax(300px,1fr) minmax(220px,.5fr) auto}.checkpoint-table .checkpoint-plate{font-size:17px;font-weight:700;letter-spacing:.03em}.checkpoint-control-card{display:grid;grid-template-columns:minmax(0,1fr) 280px;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}.checkpoint-control-main{padding:20px}.checkpoint-ident{display:flex;align-items:baseline;gap:12px;padding-bottom:16px;border-bottom:1px solid #eee9e2}.checkpoint-plate-large{font-size:28px;font-weight:700;letter-spacing:.04em}.checkpoint-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;margin:12px 0 0}.checkpoint-detail-list>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid #f0ebe5}.checkpoint-detail-list>div.wide{grid-column:1/-1}.checkpoint-detail-list dt{color:var(--muted);font-size:12px}.checkpoint-detail-list dd{margin:0;font-weight:500;overflow-wrap:anywhere}.checkpoint-admission{padding:20px;border-left:1px solid #eee9e2;background:#fbfaf8}.checkpoint-admission>span{font-size:12px;color:var(--muted);display:block;margin-bottom:8px}.checkpoint-admission-value{display:block;font-size:24px;font-weight:650}.checkpoint-admission-value.allowed{color:var(--green)}.checkpoint-admission-value.denied,.checkpoint-admission-value.revoked{color:var(--red)}.checkpoint-admission-value.undefined{color:var(--amber)}.checkpoint-state{border-top:1px solid #e8e1d8;margin-top:18px;padding-top:14px;font-size:13px}.checkpoint-actions-card .work-card-body{padding-top:14px}.checkpoint-action-buttons{display:flex;gap:10px;align-items:center}.checkpoint-action-buttons form{margin:0}.checkpoint-action-buttons .btn{min-width:210px}.checkpoint-finished{color:var(--green);font-weight:600}.checkpoint-scan-dialog{max-width:560px}.checkpoint-camera{margin:16px 0 10px;background:#262321;border-radius:5px;min-height:230px;display:grid;place-items:center;overflow:hidden;position:relative}.checkpoint-camera video{width:100%;max-height:330px;display:none}.checkpoint-camera.is-live video{display:block}.checkpoint-camera-state{color:#ddd3ca;font-size:13px;padding:20px;text-align:center}.checkpoint-camera.is-live .checkpoint-camera-state{position:absolute;bottom:8px;left:8px;right:8px;background:rgba(0,0,0,.48);border-radius:4px;padding:6px}.checkpoint-code-form{display:grid;gap:12px;margin-top:14px}.checkpoint-code-form label{display:flex;flex-direction:column;gap:5px}.checkpoint-code-form label span{font-size:12px;color:var(--muted)}
@media(max-width:800px){.checkpoint-filter{grid-template-columns:1fr}.checkpoint-control-card{grid-template-columns:1fr}.checkpoint-admission{border-left:0;border-top:1px solid #eee9e2}.checkpoint-detail-list{grid-template-columns:1fr}.checkpoint-detail-list>div.wide{grid-column:auto}.checkpoint-heading{align-items:stretch}.checkpoint-heading-actions .btn{width:100%}}

.btn.danger{background:var(--red);color:#fff;border-color:var(--red)}
.btn.danger:hover{filter:brightness(.94)}

/* v0.1.24 — async account email, root spacing/visits, signup cleanup, driver documents and scanner fallback */

/* User account: two aligned credential columns and compact inline password action. */
@media(min-width:1001px){
  .user-card-section .account-summary-grid-with-email{
    grid-template-columns:135px 189px var(--credential-field-width,340px);
    grid-template-areas:
      "login login email"
      "password last action";
    width:max-content;
    max-width:100%;
    column-gap:16px;
    row-gap:14px;
    align-items:end;
  }
  .account-summary-grid-with-email .account-login-field{grid-area:login;width:340px;max-width:340px}
  .account-summary-grid-with-email .account-email-field{grid-area:email;width:340px;max-width:340px}
  .account-summary-grid-with-email .account-password-state{grid-area:password}
  .account-summary-grid-with-email .account-last-login{grid-area:last}
  .account-summary-grid-with-email .account-password-action{grid-area:action;justify-self:start;align-self:center}
}
.account-password-link{font-weight:500;text-decoration:none;padding:6px 0}
.account-password-link:hover{text-decoration:underline}
.account-password-link:disabled{color:#b2aaa4;cursor:not-allowed;text-decoration:none}

/* Root/admin pages: one systemic spacing rhythm between independent blocks. */
.root-flow{display:flex;flex-direction:column;gap:20px}
.root-flow>.page-heading,.root-flow>.root-block{margin-top:0!important;margin-bottom:0!important}

/* Root visits. */
.root-visit-filters{grid-template-columns:140px 140px repeat(4,minmax(150px,1fr));gap:12px}
.root-visit-filters .root-visit-search{grid-column:1/5}
.root-visit-filters .filter-actions{grid-column:5/7;align-self:end}
.root-list-meta{font-size:13px;color:var(--muted);padding:0 2px}
.root-list-meta strong{color:var(--text);font-weight:600}
.root-visits-table{min-width:1240px}
.clickable-row{cursor:pointer}.clickable-row:hover td{background:#fcfaf8}
.root-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}
.root-pagination>div{display:flex;gap:8px}
.root-visit-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:#eee9e2;margin:0;border:1px solid #eee9e2}
.root-visit-timeline>div{background:#fff;padding:12px}
.root-visit-timeline dt{font-size:12px;color:var(--muted);margin-bottom:4px}
.root-visit-timeline dd{margin:0;font-weight:500}

/* Driver documents: use the available width instead of a single narrow column. */
.driver-documents-overview .semantic-overview-list-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px;max-width:none}
.driver-documents-overview .semantic-overview-list-two-column>div{grid-template-columns:minmax(170px,205px) minmax(0,1fr)}

/* Scanner state stays readable on live mobile camera preview. */
.checkpoint-camera-state.is-success{background:rgba(54,103,66,.86)!important;color:#fff}

@media(max-width:1100px){
  .root-visit-filters{grid-template-columns:repeat(3,minmax(180px,1fr))}
  .root-visit-filters .root-visit-search{grid-column:1/3}
  .root-visit-filters .filter-actions{grid-column:3;align-self:end}
  .root-visit-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  .driver-documents-overview .semantic-overview-list-two-column{grid-template-columns:1fr;column-gap:0}
  .root-visit-filters{grid-template-columns:1fr}
  .root-visit-filters .root-visit-search,.root-visit-filters .filter-actions{grid-column:auto}
  .root-visit-timeline{grid-template-columns:1fr}
}

/* v0.1.25 — final account geometry + hardened checkpoint scanner */
/* Account is one two-column coordinate system on desktop. */
@media(min-width:1001px){
  .user-card-section .account-summary-grid-with-email{
    grid-template-columns:340px 340px;
    grid-template-areas:
      "login email"
      "password last";
    width:696px;
    max-width:100%;
    column-gap:16px;
    row-gap:16px;
    align-items:start;
  }
  .account-summary-grid-with-email .account-login-field{grid-area:login;width:340px;max-width:340px}
  .account-summary-grid-with-email .account-email-field{grid-area:email;width:340px;max-width:340px}
  .account-summary-grid-with-email .account-password-state{grid-area:password;width:340px}
  .account-summary-grid-with-email .account-last-login{grid-area:last;width:340px}
  .user-card-section .password-inline-grid{
    grid-template-columns:340px 340px;
    width:696px;
    max-width:100%;
    column-gap:16px;
    row-gap:10px;
    align-items:end;
  }
  .user-card-section .password-inline-grid .inline-editor-actions{
    grid-column:1/-1;
    justify-self:end;
  }
}
.account-password-state{align-items:flex-start;justify-content:flex-start;gap:4px}
.account-password-state>strong{display:block;line-height:1.35}
.account-password-state .account-password-link{display:inline-block;padding:0;line-height:1.35}
.account-last-login{align-items:flex-start;justify-content:flex-start;gap:4px}
.account-last-login>strong{line-height:1.35}

@media(max-width:1000px){
  .user-card-section .account-summary-grid-with-email{grid-template-columns:repeat(2,minmax(220px,1fr));grid-template-areas:none;width:100%}
  .account-summary-grid-with-email .account-login-field,
  .account-summary-grid-with-email .account-email-field,
  .account-summary-grid-with-email .account-password-state,
  .account-summary-grid-with-email .account-last-login{grid-area:auto!important;width:auto!important;max-width:none!important}
}
@media(max-width:700px){
  .user-card-section .account-summary-grid-with-email{grid-template-columns:1fr}
}

/* Checkpoint scanner: visible target and explicit diagnostics. */
.checkpoint-camera.is-live::after{
  content:"";
  position:absolute;
  left:13%;right:13%;top:13%;bottom:13%;
  border:2px solid rgba(255,255,255,.78);
  border-radius:8px;
  box-shadow:0 0 0 999px rgba(0,0,0,.08);
  pointer-events:none;
}
.checkpoint-camera-state.is-success{color:#d9f4d9;background:rgba(23,84,39,.72)!important}
.checkpoint-camera-state.is-error{color:#ffe0e0;background:rgba(115,28,33,.78)!important}


/* v0.1.25 — regression fixes captured during release validation. */
.signup-form [data-signup-other][hidden]{display:none!important}
.root-flow>.root-block.root-maintenance-card,
.root-flow>.root-block.root-admin-create,
.root-flow>.root-block.root-demo-card{margin:0!important}


/* v0.1.26 — compact root filters, verify control alignment and checkpoint contact layout */
.verify-form{--verify-control-height:52px}
.verify-form input,.verify-form>.btn{height:var(--verify-control-height);min-height:var(--verify-control-height)}

.root-filter-panel{background:#fff;border:1px solid var(--line);border-radius:4px;padding:12px 14px;display:grid;gap:10px 12px;align-items:end}
.root-filter-panel label{display:flex;flex-direction:column;gap:5px;min-width:0}
.root-filter-panel label>span{font-size:12px;color:var(--muted)}
.root-filter-panel .filter-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.root-user-filters{grid-template-columns:minmax(320px,1fr) minmax(240px,320px) auto}
.root-user-filters>.btn{min-width:78px}
.root-visit-filters{grid-template-columns:140px 140px repeat(4,minmax(150px,1fr));gap:10px 12px}
.root-visit-filters .root-visit-search{grid-column:1/5}
.root-visit-filters .filter-actions{grid-column:5/7;align-self:end}

.checkpoint-phone-link{display:inline-flex;align-items:center;gap:7px;color:var(--text);font-weight:500;text-decoration:none}
.checkpoint-phone-link:hover{color:var(--accent);text-decoration:none}
.checkpoint-phone-link svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:1100px){
  .root-user-filters{grid-template-columns:minmax(260px,1fr) minmax(220px,300px) auto}
  .root-visit-filters{grid-template-columns:repeat(3,minmax(180px,1fr))}
  .root-visit-filters .root-visit-search{grid-column:1/3}
  .root-visit-filters .filter-actions{grid-column:3}
}
@media(max-width:800px){
  .root-user-filters,.root-visit-filters{grid-template-columns:1fr}
  .root-user-filters>.btn{justify-self:start}
  .root-visit-filters .root-visit-search,.root-visit-filters .filter-actions{grid-column:auto}
  .root-filter-panel .filter-actions{justify-content:flex-start}
}

/* v0.1.27 — warehouse operator workspace */
.warehouse-filter{grid-template-columns:minmax(280px,1.35fr) minmax(200px,.8fr) minmax(220px,.9fr) auto}
.warehouse-table .warehouse-transport strong{font-size:16px;letter-spacing:.03em}.warehouse-row-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;white-space:nowrap}.warehouse-wait{color:#8a5b20;font-weight:650}.warehouse-invite-dialog{max-width:520px}.warehouse-invite-summary{display:flex;flex-direction:column;gap:5px;padding:12px 0 14px;border-bottom:1px solid #eee9e2}.warehouse-invite-summary>strong{font-size:18px}.warehouse-invite-form{display:grid;gap:14px;margin-top:14px}.warehouse-invite-form label{display:flex;flex-direction:column;gap:6px}.warehouse-invite-form label>span{font-size:12px;color:var(--muted)}
.warehouse-detail-card .work-card-body{padding-top:18px}.warehouse-detail-ident{display:flex;align-items:baseline;gap:12px;padding-bottom:14px;border-bottom:1px solid #eee9e2}.warehouse-plate-large{font-size:28px;font-weight:700;letter-spacing:.04em}.warehouse-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}.warehouse-detail-grid dl{margin:0}.warehouse-detail-grid dl>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid #f0ebe5}.warehouse-detail-grid dt{font-size:12px;color:var(--muted)}.warehouse-detail-grid dd{margin:0;font-weight:500;overflow-wrap:anywhere}.warehouse-action-card .work-card-body{padding-top:14px}.warehouse-state-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}.warehouse-state-actions>div{min-width:0}.warehouse-state-actions .btn{min-width:180px}.warehouse-completed{color:var(--green)}
@media(max-width:1000px){.warehouse-filter{grid-template-columns:1fr 1fr}.warehouse-filter .filter-actions{grid-column:1/-1}.warehouse-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.warehouse-filter{grid-template-columns:1fr}.warehouse-filter .filter-actions{grid-column:auto;justify-content:stretch}.warehouse-filter .filter-actions .btn{flex:1}.warehouse-row-actions{justify-content:flex-start}.warehouse-detail-ident{flex-direction:column;gap:2px}.warehouse-state-actions{align-items:stretch;flex-direction:column}.warehouse-state-actions .btn{width:100%}.warehouse-detail-grid dl>div{grid-template-columns:125px minmax(0,1fr)}}

/* v0.1.28 — warehouse timing thresholds, modal dropdown layering, tenant settings */
.project-dialog{overflow:visible}
.project-dialog .custom-select-menu{z-index:10}
.warehouse-wait{font-weight:650}
.warehouse-wait.wait-normal{color:var(--green)}
.warehouse-wait.wait-attention{color:var(--amber)}
.warehouse-wait.wait-overdue{color:var(--red)}
.warehouse-wait.wait-unknown{color:var(--muted)}
.warehouse-finish-dialog{max-width:520px}
.company-wait-settings{max-width:760px;margin:18px 0 4px;padding-top:18px;border-top:1px solid #eee9e2}
.company-wait-settings .compact-section-heading{margin-bottom:12px}
.company-wait-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:16px}
.company-wait-settings-note{font-size:12px;margin-top:8px;max-width:680px}
@media(max-width:700px){.company-wait-settings-grid{grid-template-columns:1fr}}

/* v0.1.29 — role workspaces and reports */
.role-main-nav{gap:16px;min-width:0}.workspace-switcher{margin-left:auto}.workspace-switcher .nav-dropdown-menu{right:0;left:auto;min-width:260px}.workspace-switcher .nav-dropdown-menu a.is-current{background:#f2ede7;font-weight:600;color:var(--accent)}
.role-page-heading{margin-bottom:18px}.role-filter{grid-template-columns:minmax(260px,1.3fr) minmax(210px,.8fr) auto}.role-kpi-strip{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));background:#fff;border:1px solid var(--line);margin:0 0 16px}.role-kpi-strip>a,.role-kpi-strip>div{display:flex;flex-direction:column;gap:3px;padding:12px 14px;min-width:0;border-right:1px solid #eee9e2;color:var(--text)}.role-kpi-strip>a:last-child,.role-kpi-strip>div:last-child{border-right:0}.role-kpi-strip>a:hover{background:#faf7f3;text-decoration:none}.role-kpi-strip span{font-size:12px;color:var(--muted);white-space:normal}.role-kpi-strip strong{font-size:22px;line-height:1.2;font-weight:600}.role-kpi-strip .attention-kpi strong,.attention-text{color:var(--red)}
.dispatcher-kpis,.logistics-kpis{grid-template-columns:repeat(7,minmax(112px,1fr))}.role-tabs{margin-bottom:0;overflow-x:auto;white-space:nowrap}.role-visit-table,.dispatcher-table,.logistics-queue-table,.service-point-state-table{min-width:1040px}.cell-secondary{font-size:12px;color:var(--muted);margin-top:2px}.row-attention{background:#fff8f4}.row-attention:hover{background:#fff3ed}.empty-state-inline{padding:20px 0;color:var(--muted)}
.compact-plan-filter{grid-template-columns:minmax(220px,320px) minmax(160px,220px) auto}.plan-day{margin-top:22px}.plan-day+.plan-day{margin-top:28px}.plan-day .section-heading{margin-bottom:8px}.compact-table{min-width:860px}
.role-section{margin-top:26px}.role-section>.section-heading{margin-bottom:10px}.logistics-site-filter{grid-template-columns:minmax(240px,360px) auto}.inline-logistics-action{display:flex;align-items:center;gap:7px;min-width:260px}.inline-logistics-action select{min-width:145px}.service-point-state-table .status-badge{white-space:nowrap}
.report-filter-panel{background:#fff;border:1px solid var(--line);padding:14px 15px;margin-bottom:14px;display:grid;grid-template-columns:minmax(230px,1.25fr) 145px 145px repeat(3,minmax(170px,1fr));gap:10px 12px;align-items:end}.report-filter-panel label{display:flex;flex-direction:column;gap:5px;min-width:0}.report-filter-panel label>span{font-size:12px;color:var(--muted)}.report-filter-panel .filter-actions{grid-column:1/-1;justify-content:flex-end}.report-type-field{grid-column:span 2}.report-switcher{display:flex;gap:5px 14px;overflow-x:auto;white-space:nowrap;border-bottom:1px solid var(--line);padding:0 2px 9px;margin-bottom:22px}.report-switcher a{color:#5e5650;padding:4px 0}.report-switcher a.active{font-weight:650;color:var(--accent)}.report-result{margin-top:0}.report-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));border:1px solid var(--line);background:#fff;margin:0 0 18px}.report-summary>div{padding:11px 13px;border-right:1px solid #eee9e2;min-width:0}.report-summary>div:last-child{border-right:0}.report-summary span{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}.report-summary strong{font-size:19px;font-weight:600}.report-bars{background:#fff;border:1px solid var(--line);padding:12px 14px;margin:0 0 18px;display:grid;gap:8px;max-height:420px;overflow:auto}.report-bar-row{display:grid;grid-template-columns:minmax(110px,190px) minmax(180px,1fr) 70px;align-items:center;gap:10px}.report-bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5f5751}.report-bar-track{height:8px;background:#eee9e2;border-radius:999px;overflow:hidden}.report-bar-track>span{display:block;height:100%;background:#8c7665;border-radius:999px;min-width:0}.report-bar-row>strong{text-align:right;font-weight:600}.report-table-wrap{max-height:620px;overflow:auto}.report-table{min-width:900px}.report-table thead{position:sticky;top:0;z-index:1}
.driver-documents-overview .semantic-overview-list-two-column>div{align-items:start}.driver-documents-overview .semantic-overview-list-two-column>div>dd{line-height:1.55}
@media(max-width:1180px){.role-kpi-strip,.dispatcher-kpis,.logistics-kpis{grid-template-columns:repeat(3,minmax(130px,1fr))}.role-kpi-strip>a:nth-child(3n),.role-kpi-strip>div:nth-child(3n){border-right:0}.role-kpi-strip>a:nth-child(n+4),.role-kpi-strip>div:nth-child(n+4){border-top:1px solid #eee9e2}.report-filter-panel{grid-template-columns:repeat(3,minmax(180px,1fr))}.report-type-field{grid-column:span 1}.report-summary{grid-template-columns:repeat(3,minmax(130px,1fr))}.report-summary>div:nth-child(3n){border-right:0}.report-summary>div:nth-child(n+4){border-top:1px solid #eee9e2}}
@media(max-width:800px){.role-filter,.compact-plan-filter,.logistics-site-filter,.report-filter-panel{grid-template-columns:1fr}.report-filter-panel .filter-actions,.report-type-field{grid-column:auto}.role-kpi-strip,.dispatcher-kpis,.logistics-kpis,.report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.role-kpi-strip>a,.role-kpi-strip>div,.report-summary>div{border-right:1px solid #eee9e2!important;border-top:1px solid #eee9e2}.role-kpi-strip>a:nth-child(-n+2),.role-kpi-strip>div:nth-child(-n+2),.report-summary>div:nth-child(-n+2){border-top:0}.role-kpi-strip>a:nth-child(2n),.role-kpi-strip>div:nth-child(2n),.report-summary>div:nth-child(2n){border-right:0!important}.inline-logistics-action{min-width:220px}.report-bar-row{grid-template-columns:minmax(90px,130px) minmax(120px,1fr) 55px}.workspace-switcher{margin-left:0}}
.report-quick-periods{display:flex;flex-wrap:wrap;gap:7px;margin:-4px 0 10px}.report-quick-periods .btn.compact{padding:6px 10px;font-size:12px}
.report-period-note { margin: -4px 0 14px; font-size: 13px; }

/* v0.1.30 — visit table unification, role navigation cleanup and report tags */
.visit-status-toolbar{display:flex;align-items:flex-end;gap:16px;border-bottom:1px solid var(--line);margin:2px 0 0}
.visit-status-toolbar .status-tabs{flex:1;border-bottom:0;min-width:0;margin:0}
.visit-status-toolbar .manager-create-visit{flex:0 0 auto;margin:0 0 7px}
.manager-status-tabs{overflow-x:auto}
.manager-attention-tab{display:inline-flex;align-items:center;gap:4px}
.manager-attention-tab svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.unified-visit-table{min-width:1120px}
.unified-visit-table .visit-plan-cell{white-space:nowrap}
.unified-visit-table .visit-open-column{width:46px;text-align:right}
.unified-visit-table .visit-open-column .icon-button{margin-left:auto}
.dispatcher-kpis{grid-template-columns:repeat(8,minmax(108px,1fr))}
.role-kpi-strip>a.active{background:#f7f2ec;box-shadow:inset 0 -2px 0 var(--accent)}
.role-kpi-strip>a.active span{color:var(--text);font-weight:600}
.manager-plan-table{width:100%;table-layout:fixed;min-width:960px}
.manager-plan-table .plan-col-time{width:8%}.manager-plan-table .plan-col-counterparty{width:17%}.manager-plan-table .plan-col-transport{width:24%}.manager-plan-table .plan-col-site{width:18%}.manager-plan-table .plan-col-purpose{width:15%}.manager-plan-table .plan-col-state{width:14%}.manager-plan-table .plan-col-open{width:4%}
.driver-document-groups{display:grid;gap:16px;margin:2px 0 2px 32px;max-width:620px}
.driver-document-group{display:flex;flex-direction:column;gap:4px;padding:5px 0}
.driver-document-group>strong{font-size:14px;font-weight:600}
.driver-document-group>span{font-size:14px;color:var(--text)}
.report-switcher{display:flex;flex-wrap:wrap;gap:8px;overflow:visible;white-space:normal;border-bottom:0;padding:0;margin-bottom:22px}
.report-switcher a{display:inline-flex;align-items:center;min-height:31px;padding:6px 10px;border:1px solid #d8d0c7;border-radius:4px;background:#fff;color:#5e5650;line-height:1.2}
.report-switcher a:hover{background:#f8f4ef;text-decoration:none;border-color:#cbbfb2}
.report-switcher a.active{font-weight:650;color:var(--accent);background:#f5efea;border-color:#cdb9aa}
@media(max-width:1180px){.dispatcher-kpis{grid-template-columns:repeat(4,minmax(130px,1fr))}}
@media(max-width:800px){.visit-status-toolbar{align-items:stretch;flex-direction:column;gap:8px}.visit-status-toolbar .manager-create-visit{align-self:flex-start;margin:0 0 8px}.driver-document-groups{margin-left:0}.dispatcher-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.1.31 — unified visit controls, verification mode and interval settings */
.visit-card-icon svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.visit-status-toolbar .status-tabs{display:flex;flex-wrap:wrap;overflow:visible;white-space:normal}
.visit-status-toolbar .status-tabs a{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}

.manager-plan-wrap{overflow-x:visible}
.manager-plan-table{min-width:0!important;width:100%;table-layout:fixed}
.manager-plan-table th,.manager-plan-table td{white-space:normal;overflow-wrap:anywhere}
.manager-plan-table .plan-open-cell{width:4%;text-align:right}
.manager-plan-table .plan-open-cell .icon-button{margin-left:auto}

.wait-intervals-table{display:grid;gap:0;max-width:760px;border:1px solid var(--line);background:#fff}
.wait-intervals-head,.wait-interval-row{display:grid;grid-template-columns:minmax(130px,180px) minmax(130px,180px) minmax(260px,1fr);align-items:center}
.wait-intervals-head{min-height:34px;background:#f4efe9;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.wait-intervals-head>span{padding:8px 12px}
.wait-interval-row{border-bottom:1px solid #eee9e2}
.wait-interval-row:last-child{border-bottom:0}
.wait-interval-row>.form-field{padding:9px 12px;margin:0}
.wait-interval-row>.form-field+ .form-field{border-left:1px solid #eee9e2}
.wait-interval-row input{width:100%}
.wait-interval-row input[readonly]{background:#f8f5f1;color:#6e655e;cursor:default}
.wait-interval-description{padding:9px 14px;border-left:1px solid #eee9e2;display:flex;gap:5px;align-items:baseline;min-width:0}
.wait-interval-description strong{font-weight:600}
.wait-interval-description span{color:var(--muted);font-size:12px}

.verification-start-link{font-weight:600}
.verification-bar{position:sticky;top:58px;z-index:29;background:#fff4d8;border-bottom:1px solid #d7bd74;box-shadow:0 2px 5px rgba(80,58,10,.08)}
.verification-bar-inner{max-width:1400px;margin:0 auto;padding:8px 40px;display:flex;align-items:center;gap:12px;min-height:54px}
.verification-title{font-size:12px;letter-spacing:.06em;color:#6b5317;white-space:nowrap}
.verification-role-switches{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.verification-role-switches form,.verification-site-form,.verification-stop{margin:0}
.verification-role-button{border:1px solid #d5bd7d;background:#fffaf0;color:#5f4c1d;border-radius:4px;padding:6px 9px;cursor:pointer;font:inherit;font-size:12px}
.verification-role-button:hover{background:#fff0c7}
.verification-role-button.active{background:#7a6123;color:#fff;border-color:#7a6123;font-weight:650}
.verification-site-form{display:flex;align-items:flex-end;gap:7px;margin-left:4px}
.verification-site-form label{display:flex;flex-direction:column;gap:3px}
.verification-site-form label>span{font-size:11px;color:#776329}
.verification-site-form select{min-width:180px;height:34px;padding-top:4px;padding-bottom:4px;background:#fff}
.verification-subject{font-size:12px;color:#6d5b2d;white-space:nowrap}
.verification-stop{margin-left:auto}

@media(max-width:1000px){
  .verification-bar-inner{padding:8px 20px;align-items:flex-start;flex-wrap:wrap}
  .verification-stop{margin-left:0}
}
@media(max-width:700px){
  .verification-bar{top:68px}
  .wait-intervals-head,.wait-interval-row{grid-template-columns:1fr 1fr}
  .wait-intervals-head>span:last-child{display:none}
  .wait-interval-description{grid-column:1/-1;border-left:0;border-top:1px solid #eee9e2}
  .verification-bar-inner{padding:8px 12px}
  .verification-site-form{width:100%;margin-left:0}
  .verification-site-form label{flex:1}
  .verification-site-form select{width:100%;min-width:0}
}


/* v0.1.32 — async navigation, checkpoint parking and global navigation polish */
.role-main-nav>.nav-link,.role-main-nav>.nav-dropdown>summary{position:relative;padding:19px 0 17px;line-height:22px}
.role-main-nav>.nav-link.active,.role-main-nav>.nav-dropdown.active>summary{color:var(--text);font-weight:650}
.role-main-nav>.nav-link.active::after,.role-main-nav>.nav-dropdown.active>summary::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent)}
.attention-icon{width:15px;height:15px;flex:0 0 15px;fill:none;stroke:#d18722;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-2px}
.manager-attention-tab .attention-icon{margin-right:1px}
.dispatcher-kpis{grid-template-columns:repeat(9,minmax(0,1fr))}
.dispatcher-kpis>a>span{font-size:24px;line-height:1.12;color:var(--text)}
.dispatcher-kpis .attention-kpi>span{display:flex;align-items:flex-start;gap:5px}
.dispatcher-kpis .attention-icon{width:21px;height:21px;flex-basis:21px;margin-top:2px}
.logistics-kpis .attention-kpi>span{display:flex;align-items:center;gap:4px}
.checkpoint-parking-action{display:grid;grid-template-columns:minmax(260px,420px) auto;gap:12px;align-items:end;max-width:680px}
.checkpoint-parking-action label{display:flex;flex-direction:column;gap:6px}.checkpoint-parking-action label>span{font-size:12px;color:var(--muted)}
.warehouse-row-actions{display:table-cell!important;text-align:right;vertical-align:top;white-space:nowrap}
.warehouse-row-actions .link-button,.warehouse-row-actions .visit-card-icon{margin-left:10px;vertical-align:middle}
.report-switcher.is-loading,.dispatcher-kpis.is-loading{opacity:.6;pointer-events:none}
.report-result.is-loading,[data-dispatcher-table].is-loading{opacity:.55;pointer-events:none}
.verification-site-select{display:block}
@media(max-width:1180px){.dispatcher-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.dispatcher-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatcher-kpis>a>span{font-size:20px}.checkpoint-parking-action{grid-template-columns:1fr}.role-main-nav>.nav-link,.role-main-nav>.nav-dropdown>summary{padding-top:8px;padding-bottom:8px}}

/* v0.1.32 branding rebuild — Zaezdo */
.brand-logo{display:inline-flex;align-items:center;flex:0 0 auto;line-height:1}.brand-logo img{display:block;width:auto;height:34px;max-width:148px;object-fit:contain}.brand-logo:hover{text-decoration:none}.root-brand-logo{gap:8px}.root-brand-logo span{font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.auth-brand-lockup{display:flex;justify-content:center;margin:0 0 22px}.auth-brand-lockup img{display:block;width:min(420px,100%);height:auto}.driver-access-brand{margin:0 0 18px}.driver-access-brand img{display:block;width:min(360px,78vw);height:auto}.standalone-auth-header .brand-logo img{height:34px}.topbar .brand-logo img{height:34px}
@media(max-width:640px){.brand-logo{width:auto;padding-top:0}.brand-logo img{height:30px;max-width:132px}.auth-brand-lockup{margin-bottom:18px}.driver-access-brand img{width:min(300px,84vw)}}


/* v0.1.33 — dispatcher KPI hierarchy, verification control rhythm, table-filter affordance */
/* Dispatcher: labels stay large enough to scan, but the count remains the primary visual anchor. */
.dispatcher-kpis>a{gap:7px}
.dispatcher-kpis>a>span{font-size:16px;line-height:1.2;font-weight:500;color:#6f6660;min-height:38px;display:flex;align-items:flex-start}
.dispatcher-kpis>a>strong{font-size:22px;line-height:1.2;font-weight:600;color:var(--text)}
.dispatcher-kpis .attention-kpi>span{align-items:flex-start}
.dispatcher-kpis .attention-icon{width:16px;height:16px;flex-basis:16px;margin-top:1px}

/* Verification mode: all interactive controls share one height and baseline. */
.verification-role-switches form,.verification-site-form,.verification-stop{display:flex;align-items:center}
.verification-role-button{height:34px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.verification-site-form{align-items:center}
.verification-site-form select{height:34px;padding-top:0;padding-bottom:0}
.verification-site-form .btn.compact,.verification-stop .btn.compact{height:34px;min-height:34px;padding-top:0;padding-bottom:0;display:inline-flex;align-items:center}

/* Shared pattern only for filters that directly switch a table view. */
.table-filter-tabs{gap:0}
.table-filter-tabs a{position:relative;padding-left:16px;padding-right:16px;text-decoration:none}
.table-filter-tabs a+ a{border-left:1px solid #e7e0d8}
.table-filter-tabs a:hover{background:#f8f4ef;text-decoration:none}
.table-filter-tabs a.active{color:#6f6660;font-weight:inherit;border-bottom-color:var(--accent);background:transparent}
.table-filter-tabs a.active:hover{background:#f8f4ef}

@media(max-width:800px){
  .dispatcher-kpis>a>span{font-size:15px;min-height:36px}
  .table-filter-tabs a{padding-left:13px;padding-right:13px}
}


/* v0.1.34 — dispatcher status ribbon + verification bar vertical fit */
/* Dispatcher status filters: approved horizontal ribbon design (variant 1). */
.dispatcher-kpis{
  display:flex;
  grid-template-columns:none;
  align-items:stretch;
  gap:0;
  overflow:hidden;
  border-radius:5px;
}
.dispatcher-kpis>a{
  flex:1 1 auto;
  min-width:0;
  min-height:48px;
  padding:9px 10px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:7px;
  white-space:nowrap;
  border-right:1px solid #e9e2da;
}
.dispatcher-kpis>a:last-child{border-right:0}
.dispatcher-kpis>a>span{
  display:inline-flex;
  align-items:center;
  min-height:0;
  font-size:13px;
  line-height:1.2;
  font-weight:400;
  color:#5f5751;
  white-space:nowrap;
}
.dispatcher-kpis>a>strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:25px;
  height:25px;
  padding:0 7px;
  border-radius:8px;
  background:#f1ede8;
  color:var(--text);
  font-size:13px;
  line-height:1;
  font-weight:600;
}
.dispatcher-kpis>a:hover{background:#f8f5f1;text-decoration:none}
.dispatcher-kpis>a.active{background:#f3f7fb;box-shadow:inset 0 -2px 0 var(--accent)}
.dispatcher-kpis>a.active>strong{background:#e7f0fb}
.dispatcher-kpis .attention-kpi>span{display:inline-flex;align-items:center;gap:5px}
.dispatcher-kpis .attention-icon{width:15px;height:15px;flex-basis:15px;margin:0}
.dispatcher-kpis .attention-kpi>strong{background:#fff0ed;color:var(--red)}

/* Verification mode: controls must fit completely inside a single-height bar. */
.verification-bar-inner{
  min-height:52px;
  padding-top:6px;
  padding-bottom:6px;
  align-items:center;
  box-sizing:border-box;
}
.verification-role-switches,
.verification-role-switches form,
.verification-site-form,
.verification-stop{height:36px;align-items:center}
.verification-role-button,
.verification-site-form .btn.compact,
.verification-stop .btn.compact{
  height:36px;
  min-height:36px;
  padding-top:0;
  padding-bottom:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}
.verification-site-select{height:36px;display:flex;align-items:center}
.verification-site-form .custom-select{height:36px;min-width:120px}
.verification-site-form .custom-select-button{
  height:36px;
  min-height:36px;
  padding-top:0;
  padding-bottom:0;
  display:flex;
  align-items:center;
  box-sizing:border-box;
}

@media(max-width:1180px){
  .dispatcher-kpis{flex-wrap:wrap;overflow:visible}
  .dispatcher-kpis>a{flex:1 1 30%;border-top:1px solid #e9e2da}
  .dispatcher-kpis>a:nth-child(-n+3){border-top:0}
}
@media(max-width:800px){
  .dispatcher-kpis>a{flex-basis:48%}
  .dispatcher-kpis>a:nth-child(-n+3){border-top:1px solid #e9e2da}
  .dispatcher-kpis>a:nth-child(-n+2){border-top:0}
  .dispatcher-kpis>a>span{font-size:13px;min-height:0}
  .verification-bar-inner{min-height:52px}
}

/* v0.1.35 — canonical table-filter ribbon across the project */
/*
 * This is the single visual contract for filters that directly switch a table
 * view. It intentionally does not apply to report tags, top navigation, or
 * ordinary tabs.
 */
.table-filter-ribbon{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:0;
  overflow:visible;
  white-space:normal;
  border:1px solid var(--line);
  border-radius:5px;
  background:#fff;
  margin:2px 0 0;
}
.table-filter-ribbon>a{
  position:relative;
  flex:1 1 auto;
  min-width:0;
  min-height:48px;
  padding:9px 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-right:1px solid #e9e2da;
  border-bottom:2px solid transparent;
  color:#5f5751;
  background:transparent;
  font-weight:400;
  text-decoration:none;
  white-space:nowrap;
  box-sizing:border-box;
}
.table-filter-ribbon>a:last-child{border-right:0}
.table-filter-ribbon>a:hover{
  background:#f8f5f1;
  color:#5f5751;
  text-decoration:none;
}
.table-filter-ribbon>a.active{
  color:#5f5751;
  background:#f3f7fb;
  font-weight:400;
  border-bottom-color:var(--accent);
  box-shadow:none;
}
.table-filter-ribbon>a.active:hover{background:#f3f7fb}
.table-filter-ribbon .table-filter-label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-width:0;
  color:inherit;
  font-size:13px;
  line-height:1.2;
  font-weight:400;
  white-space:nowrap;
}
.table-filter-ribbon .table-filter-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:25px;
  height:25px;
  padding:0 7px;
  border-radius:8px;
  background:#f1ede8;
  color:var(--text);
  font-size:13px;
  line-height:1;
  font-weight:600;
  margin:0;
  box-sizing:border-box;
}
.table-filter-ribbon>a.active .table-filter-count{background:#e7f0fb}
.table-filter-ribbon .attention-icon{margin:0}
.table-filter-ribbon .manager-attention-tab .table-filter-count,
.table-filter-ribbon .attention-kpi .table-filter-count{
  background:#fff0ed;
  color:var(--red);
}

/* Shared visit table: keep the create action aligned with the canonical ribbon. */
.visit-status-toolbar{
  align-items:center;
  border-bottom:0;
  gap:12px;
}
.visit-status-toolbar .status-tabs.table-filter-ribbon{
  flex:1 1 auto;
  border-bottom:1px solid var(--line);
  margin:0;
}
.visit-status-toolbar .manager-create-visit{
  align-self:stretch;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  min-height:48px;
}

/* Dispatcher now uses exactly the same ribbon contract as all table filters. */
.dispatcher-kpis{
  display:flex;
  flex-wrap:wrap;
  grid-template-columns:none;
  align-items:stretch;
  gap:0;
  overflow:visible;
  border-radius:5px;
}
.dispatcher-kpis>a{
  flex:1 1 auto;
  min-width:0;
  min-height:48px;
  padding:9px 10px;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:7px;
  white-space:nowrap;
  border-right:1px solid #e9e2da;
}
.dispatcher-kpis>a>span,
.dispatcher-kpis>a>strong{min-height:0}
.dispatcher-kpis .table-filter-label{font-size:13px;line-height:1.2;font-weight:400;color:#5f5751}
.dispatcher-kpis .table-filter-count{font-size:13px;line-height:1;font-weight:600;color:var(--text)}
.dispatcher-kpis>a.active{background:#f3f7fb;box-shadow:none;border-bottom-color:var(--accent)}
.dispatcher-kpis>a.active .table-filter-count{background:#e7f0fb}
.dispatcher-kpis .attention-kpi .table-filter-count{background:#fff0ed;color:var(--red)}

@media(max-width:1180px){
  .table-filter-ribbon>a{flex:1 1 30%}
  .visit-status-toolbar{align-items:stretch}
  .visit-status-toolbar .manager-create-visit{align-self:stretch}
}
@media(max-width:800px){
  .table-filter-ribbon>a{flex-basis:48%;padding-left:10px;padding-right:10px}
  .table-filter-ribbon .table-filter-label{font-size:13px}
  .visit-status-toolbar{flex-direction:column;gap:8px}
  .visit-status-toolbar .manager-create-visit{align-self:flex-start;min-height:40px}
}


/* v0.1.37 — verification drawer: expanded view unchanged, collapsed view is an unobtrusive pull handle */
.verification-collapse-button{width:32px;height:32px;min-width:32px;padding:0;border:1px solid #d5bd7d;border-radius:4px;background:#fffaf0;color:#6b5317;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.verification-collapse-button:hover{background:#fff0c7}
.verification-collapse-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.verification-drawer-handle{
  display:none;
  position:fixed;
  top:58px;
  left:50%;
  width:54px;
  height:12px;
  padding:0;
  border:0;
  background:transparent;
  transform:translateX(-50%) translateY(var(--verification-drag-y,0px));
  z-index:31;
  cursor:ns-resize;
  touch-action:none;
}
.verification-drawer-handle::before{
  content:"";
  display:block;
  width:36px;
  height:4px;
  margin:1px auto 0;
  border-radius:0 0 6px 6px;
  background:#8f8983;
  opacity:.26;
  transition:opacity .14s ease,background .14s ease;
}
.verification-drawer-handle:hover::before,
.verification-drawer-handle:focus-visible::before{opacity:.62;background:#746d66}
.verification-drawer-handle:focus-visible{outline:2px solid rgba(151,44,46,.34);outline-offset:2px;border-radius:5px}

html.verification-collapsed .verification-drawer-handle{display:block}
html.verification-collapsed .verification-bar{
  display:block;
  position:fixed;
  top:58px;
  left:0;
  right:0;
  width:100%;
  margin:0;
  transform:translateY(calc(-100% + var(--verification-drag-y,0px)));
  transition:transform .18s ease;
  pointer-events:none;
  z-index:29;
}
html.verification-collapsed.verification-dragging .verification-bar,
html.verification-collapsed.verification-dragging .verification-drawer-handle{transition:none}
html.verification-collapsed.verification-dragging .verification-drawer-handle::before{opacity:.72;background:#746d66}

@media(max-width:640px){
  .verification-drawer-handle{top:68px}
  html.verification-collapsed .verification-bar{top:68px}
}

/* v0.1.38 — built-in demo tenant and Root system settings */
.demo-tenant-badge{margin-left:7px;vertical-align:2px;background:#e9eef7;color:#3f5f8c;border:1px solid #d6e0ef}
.root-system-flash{margin:0 0 18px}
.root-system-demo-card .section-heading{align-items:center;margin-bottom:14px}
.root-demo-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.root-demo-stats>div{padding:12px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;background:#fbfaf8}
.root-demo-stats span{font-size:12px;color:var(--muted)}
.root-demo-stats strong{font-size:20px;font-weight:600;color:var(--text)}
.root-system-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.root-system-action-card{margin:0!important;display:flex;flex-direction:column;align-items:flex-start}
.root-system-action-card p{min-height:60px}
.root-system-action-card form{margin-top:auto;padding-top:8px}
.root-demo-password{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:10px 12px;background:#f8f5f1;border:1px solid var(--line);border-radius:4px}
.root-demo-password span{font-size:12px;color:var(--muted)}
.root-demo-password code{font-size:14px;color:var(--text);font-weight:600}
@media(max-width:1100px){.root-demo-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.root-system-actions{grid-template-columns:1fr}.root-demo-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.root-system-action-card p{min-height:0}}

/* v0.1.38 — explicit manager selector in verification mode */
.verification-manager-select{height:36px;display:flex;align-items:center}
.verification-manager-select .custom-select{height:36px;min-width:190px;max-width:260px}
.verification-manager-select .custom-select-button{height:36px;min-height:36px;padding-top:0;padding-bottom:0;display:flex;align-items:center;box-sizing:border-box}

/* v0.1.39 — verification bar stays one line on standard desktop widths */
@media (min-width:1101px){
  .verification-bar-inner{
    max-width:none;
    padding:8px 28px;
    gap:8px;
    flex-wrap:nowrap;
    min-width:0;
  }
  .verification-title{flex:0 0 auto;font-size:12px;white-space:nowrap}
  .verification-collapse-button{flex:0 0 32px}
  .verification-role-switches{flex:0 0 auto;flex-wrap:nowrap;gap:4px;min-width:0}
  .verification-role-switches form{flex:0 0 auto}
  .verification-role-button{padding-left:8px;padding-right:8px;white-space:nowrap}
  .verification-site-form{flex:1 1 auto;min-width:0;margin-left:0;gap:6px;flex-wrap:nowrap}
  .verification-site-select{flex:0 1 130px;min-width:112px;max-width:140px}
  .verification-site-form .verification-site-select .custom-select{width:100%;min-width:112px;max-width:140px}
  .verification-manager-select{flex:0 1 180px;min-width:150px;max-width:190px}
  .verification-manager-select .custom-select{width:100%;min-width:150px;max-width:190px}
  .verification-site-form .btn.compact{flex:0 0 auto;white-space:nowrap;padding-left:12px;padding-right:12px}
  .verification-stop{flex:0 0 auto;margin-left:auto}
  .verification-stop .btn.compact{white-space:nowrap;padding-left:12px;padding-right:12px}
}

/* v0.1.41 — occupied service-point confirmation for warehouse invitations. */
.service-point-occupied-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;color:#b65f24}
.service-point-occupied-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.service-point-occupied-warning{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #e3b68f;border-radius:5px;background:#fff8f0;color:#6f4527;font-size:12px;line-height:1.42}
.service-point-occupied-warning[hidden]{display:none!important}
.service-point-occupied-warning>div{min-width:0;display:grid;gap:7px}.service-point-occupied-warning strong{font-weight:650;color:#6b3d20}
.service-point-release-confirm{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:7px!important;color:#5b4738!important;font-size:12px!important;line-height:1.35}
.service-point-release-confirm input{width:15px;height:15px;margin:1px 0 0;flex:0 0 15px;accent-color:#8c2f34}
.inline-logistics-action{flex-wrap:wrap;align-items:flex-start}.inline-logistics-action .custom-select{flex:1 1 145px}.inline-logistics-action>.btn{flex:0 0 auto}
.inline-logistics-action .service-point-occupied-warning{flex:1 0 100%;max-width:360px}
.inline-logistics-action .service-point-occupied-warning.compact{font-size:11px;padding:8px 9px}
/* v0.1.42 portal component: logistics workspace refinements */
.table-sort-button{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;white-space:nowrap}
.table-sort-button [data-sort-indicator]{display:inline-block;min-width:12px;font-size:11px;line-height:1;color:var(--muted);text-align:center}
.table-sort-button:hover [data-sort-indicator],.table-sort-button.is-active [data-sort-indicator]{color:var(--accent)}
.table-sort-button:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 38%,transparent);outline-offset:3px;border-radius:3px}
.service-point-place-state{display:flex;align-items:center;gap:8px;min-width:0}.service-point-place-state strong{min-width:0}.service-point-place-state .status-badge{flex:0 0 auto}
.logistics-service-duration{font-weight:650;color:var(--text)}
.service-point-state-table{min-width:1180px}.service-point-state-table td:nth-child(7){white-space:nowrap}.service-point-state-table .visit-open-column{width:46px;text-align:right}

/* v0.1.43 portal component: logistics table alignment and free-state placement */
.logistics-queue-table,.service-point-state-table{min-width:1180px;table-layout:fixed;width:100%}
.logistics-columns col:nth-child(1){width:13%}
.logistics-columns col:nth-child(2){width:10%}
.logistics-columns col:nth-child(3){width:13%}
.logistics-columns col:nth-child(4){width:14%}
.logistics-columns col:nth-child(5){width:9%}
.logistics-columns col:nth-child(6){width:11%}
.logistics-columns col:nth-child(7){width:26%}
.logistics-columns col:nth-child(8){width:4%}
.logistics-queue-table th,.logistics-queue-table td,.service-point-state-table th,.service-point-state-table td{box-sizing:border-box}
.service-point-state-table td:first-child .status-badge{white-space:nowrap}

/* v0.1.44 — unified filter/table spacing and logistics table geometry. */
.table-filter-ribbon{margin-bottom:16px}
.visit-status-toolbar{margin-bottom:16px}
.filter-bar{margin-bottom:16px}
.list-toolbar{margin-bottom:16px}
.report-switcher{margin-bottom:16px}
.report-filter-panel{margin-bottom:16px}
.async-filter-results.is-loading,.async-filter-results .is-loading,[data-async-table-result].is-loading{opacity:.58;pointer-events:none}
.async-filter-results,[data-async-table-result]{transition:opacity .12s ease}
.verification-collapse-button{height:36px;min-height:36px}
.logistics-table-wrap{overflow-x:hidden}
.logistics-queue-table,.service-point-state-table{min-width:0!important;width:100%;table-layout:fixed}
.logistics-columns col:nth-child(1){width:13%}
.logistics-columns col:nth-child(2){width:10%}
.logistics-columns col:nth-child(3){width:14%}
.logistics-columns col:nth-child(4){width:14%}
.logistics-columns col:nth-child(5){width:10%}
.logistics-columns col:nth-child(6){width:12%}
.logistics-columns col:nth-child(7){width:23%}
.logistics-columns col:nth-child(8){width:4%}
.logistics-queue-table th,.logistics-queue-table td,.service-point-state-table th,.service-point-state-table td{overflow-wrap:anywhere;word-break:normal}
.logistics-queue-table td:nth-child(7),.service-point-state-table td:nth-child(7){white-space:normal}

/* v0.1.45 portal component — action alignment and logistics open-column geometry. */
.visit-status-toolbar .manager-create-visit{
  align-self:center;
  height:48px;
  min-height:48px;
  box-sizing:border-box;
}
.logistics-columns col:nth-child(7){width:22%}
.logistics-columns col:nth-child(8){width:5%}
.logistics-queue-table .visit-open-column,.service-point-state-table .visit-open-column{
  text-align:center!important;
  padding-left:8px!important;
  padding-right:12px!important;
}
.logistics-queue-table .visit-open-column .icon-button,.service-point-state-table .visit-open-column .icon-button{
  margin-left:0!important;
}
@media(max-width:800px){
  .visit-status-toolbar .manager-create-visit{height:40px;min-height:40px}
}

/* v0.1.46 — public leads in Root */
.root-lead-filters{grid-template-columns:minmax(190px,260px) minmax(220px,320px) auto}.root-lead-filters .filter-actions{justify-content:flex-start}.root-leads-table td:last-child{text-align:right;white-space:nowrap}
@media(max-width:800px){.root-lead-filters{grid-template-columns:1fr}}
