.gate{position:fixed;inset:0;background:#121212;z-index:30;display:flex;align-items:center;justify-content:center;overflow:auto;padding:25px}.gate[hidden]{display:none}.authcard{width:390px;max-width:100%;padding:25px;background:#222;border:1px solid #5f6367;border-radius:12px}.authlogo{width:200px;display:block;margin:0 auto 15px}.authcard h1{font-size:26px}.authcard input{margin-bottom:15px}.authcard button{margin-top:10px}.authcard p{font-size:13px;color:#c9c9c2}#authError,#resetError{color:#ffb4a8}dialog{border:1px solid #5f6367;border-radius:12px;background:#eaeae6;color:#242422;max-width:640px;width:calc(100% - 32px);max-height:85vh;padding:24px}dialog::backdrop{background:#000a}.dialoghead{display:flex;align-items:center;justify-content:space-between;gap:15px}dialog form{display:grid;gap:12px;margin:15px 0 25px}dialog h3{font-family:Georgia,serif}dialog label{font-size:12px}dialog p{font-size:12px}.userrow{padding:12px 0;border-bottom:1px solid #bbb;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.userrow span{margin-right:auto}.userrow button{font-size:11px;padding:6px}#logout,#refreshList{font-size:11px;background:#222;color:#eee;border-color:#555;margin-top:10px}#identity{overflow-wrap:anywhere}#accountMessage{color:#435c36}body:has(.gate:not([hidden]))>main,body:has(.gate:not([hidden]))>.sidebar{visibility:hidden}

#authInfo:empty,#authError:empty{display:none}
#authSubmit{background:#eaeae6;color:#242422;border:1px solid #eaeae6;font-weight:600}
#authSubmit:hover{background:#fff;color:#242422;border-color:#fff}
#authSubmit:focus-visible{outline:2px solid #eaeae6;outline-offset:3px}
#authSubmit:disabled{opacity:.65;cursor:wait}

header .danger{color:#ffb4a8;border-color:#985f57}header .danger:hover{background:#643b35;color:#fff;border-color:#bb766b}
.sidebar .brand{margin-bottom:24px}

.backup-actions{margin-top:16px;gap:12px;flex-wrap:wrap}.backup-actions button{font-family:inherit;font-size:13px;font-weight:600;line-height:1.4;letter-spacing:normal;text-transform:none;padding:10px 16px}

/* Headings and table labels use the same system font as buttons. */
:root{--font-display:var(--font-body)}
h1,h2,h3,h4,h5,h6,th,dialog h3{font-family:var(--font-body)}

.material-add{margin-top:14px}.material-row-actions{display:flex;align-items:center;gap:5px}.material-row-actions button{font-size:11px;padding:6px}#materialForm select{width:100%;padding:10px;margin-top:7px;border:1px solid #aaa;border-radius:7px;background:#fff;color:#242422}#materialError{color:#8f3025}

.hours-group{display:block;width:100%;margin-top:6px;padding:5px;font:11px var(--font-body);border:1px solid #bbb;border-radius:5px;background:#fff;color:#242422}.hours-summary{margin-top:22px;border-top:1px solid #bbb;padding-top:12px}.hours-summary h3{margin:0 0 10px;font-size:15px}.hours-summary table td:first-child{width:70%}.hours-value{text-align:right;font-variant-numeric:tabular-nums}.hours-total{border-top:2px solid #777}.hours-days{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:12px}.hours-summary .small{font-size:11px;color:#5c5c57}

.rates-button{margin-left:auto;white-space:nowrap;font-size:12px}.hours-group{margin-top:0;min-width:145px;padding:8px}.rates-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rates-check{display:flex;align-items:center;gap:8px}.rates-check input{width:auto;margin:0}#ratesError{color:#8f3025}#extras [data-extra-total]{min-width:85px}@media(max-width:500px){.rates-fields{grid-template-columns:1fr}}

/* Tabellen und Zahlenfelder */
th.total-heading{text-align:right}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Einheitliche Zahlen wie im Preisfeld unter Material Nebenkosten. */
:root{--font-number:var(--font-body);--font-number-size:12px}
input[type=number],input[data-money],td.num,summary strong,
.totalrow strong,.pricebox strong,.tax,.tax b,
.hours-value,.hours-value strong,.hours-days,.hours-summary .small,
.step,#count,#ugsAmount{
 font-family:var(--font-number);
 font-size:var(--font-number-size);
 font-variant-numeric:normal;
 letter-spacing:normal;
}

/* Gewichtung der Material-Zwischensummen und des Netto-Verkaufspreises. */
summary strong[data-group-total]{font-weight:400}
.pricebox strong{font-size:18px}

.record-search{display:block;margin:18px 0 12px;color:#e7e6e2;flex-shrink:0;font-size:12px}.record-search input{font-size:12px;font-weight:400;margin-top:7px;padding:9px;min-width:0}.list-empty{display:block;padding:10px 0;color:#aaa9a3}@media(max-width:850px){.record-search{display:none}}

/* Aktionen und gespeicherte Kalkulationen. */
.heading-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-width:0}
.heading-actions h1{overflow-wrap:anywhere;min-width:0}
header{flex-wrap:wrap}
header .actions{margin-left:auto;max-width:none;flex-shrink:0}
header button{white-space:nowrap}
.account-actions{display:flex;gap:6px;margin-top:10px}
.account-actions button{font-size:11px;padding:8px 7px;background:#222;color:#eee;border:1px solid #555;white-space:nowrap}
.account-actions #logout{margin-top:0}
.account-actions button:hover{background:#3b3b3b;border-color:#888}
#saved button{background:#303030;border-color:#414141}
#saved button:hover{background:#404040;border-color:#686868}
#saved button:focus-visible{outline:2px solid #c4c4bd;outline-offset:-2px}
@media(min-width:851px) and (max-width:1100px){.account-actions{flex-wrap:wrap}}
@media(max-width:850px){.sidebar{flex-wrap:wrap}.sidebar .sidefoot{display:block;width:100%;padding-top:10px}.account-actions{justify-content:flex-end}.heading-actions{gap:10px}}
