:root{--bg:#07111f;--panel:#0e1d2e;--panel2:#12273d;--line:#294963;--text:#edf6ff;--muted:#9db1c4;--accent:#58b8ff;--ok:#4bd687;--warn:#ffc95e;--bad:#ff6f76;--purple:#a58cff}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:linear-gradient(180deg,#06101d,#0a1726 70%,#07111f);color:var(--text);min-height:100vh}a{color:inherit}
.topbar{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#081522;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;margin-right:auto;min-width:250px}.brand-logo{width:42px;height:42px;object-fit:contain}.brand-mark{width:42px;height:42px;border:1px solid var(--accent);border-radius:10px;display:grid;place-items:center;color:var(--accent);font-weight:900;font-size:11px}.brand span{display:block;color:var(--muted);font-size:10px}
nav{display:flex;gap:4px;flex-wrap:wrap}nav a,.ghost{padding:8px 9px;border-radius:8px;text-decoration:none;font-size:13px;color:#d2e4f2}nav a:hover,.ghost:hover{background:#142c43}.userbox{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}
.container{max-width:1240px;margin:auto;padding:20px 18px 60px}.global-search{display:flex;gap:8px;margin-bottom:16px}.global-search button{white-space:nowrap}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-head h1{font-size:26px;margin:0}.page-head p{margin:4px 0 0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:15px}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-12{grid-column:span 12}
.card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:16px;padding:17px;min-width:0}.card h2,.card h3{margin-top:0}.muted{color:var(--muted)}.kpi{font-size:31px;font-weight:900}.kpi-label{font-size:11px;color:var(--muted)}
label{display:block;color:var(--muted);font-size:11px;margin:9px 0 5px}input,select,textarea{width:100%;background:#071522;color:var(--text);border:1px solid #345873;border-radius:9px;padding:10px 11px;font:inherit}textarea{min-height:100px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.btn{display:inline-block;border:0;border-radius:9px;padding:9px 12px;background:var(--accent);color:#06101c;text-decoration:none;font-weight:800;cursor:pointer;font-size:13px}.btn.secondary{background:#173650;color:var(--text);border:1px solid #315b7a}.btn.danger{background:#55232e;color:#ffe1e5;border:1px solid #7b3342}.btn.small{padding:6px 8px;font-size:11px}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px;border-bottom:1px solid #294860;vertical-align:top}th{font-size:11px;color:#aec2d3}.pill{display:inline-block;padding:5px 8px;border-radius:999px;background:#173651;font-size:10px;font-weight:800}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.pill.bad{color:var(--bad)}.pill.purple{color:var(--purple)}
.flash{background:#163a52;border:1px solid #2e6e95;padding:11px 13px;border-radius:10px;margin-bottom:14px}.empty{padding:18px;text-align:center;color:var(--muted);border:1px dashed #345873;border-radius:11px}.timeline{display:grid;gap:9px}.timeline-item{padding:11px;border-left:3px solid #3b6380;background:#091827;border-radius:8px}.timeline-item .meta{font-size:10px;color:var(--muted);margin-top:4px}.metric-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #28475f}
.avatar{width:68px;height:68px;border-radius:17px;border:1px solid #315a79;background:#0a1826;display:grid;place-items:center;font-size:23px;font-weight:900;color:var(--accent)}.profile-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.profile-title{flex:1;min-width:220px}.profile-title h1{margin:0}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.detail{background:#091827;border:1px solid #2a4962;border-radius:10px;padding:10px}.detail span{display:block;color:var(--muted);font-size:10px}.detail b{display:block;margin-top:3px}
.permission-group{border:1px solid #2b4b65;border-radius:11px;padding:12px;margin:10px 0;background:#091827}.permission-row{display:flex;gap:10px;align-items:flex-start;padding:9px 4px;margin:0;border-top:1px solid rgba(100,140,170,.17)}.permission-row input{width:auto}.permission-row small{display:block;color:var(--muted);font-size:10px}
.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.attachment{border:1px solid #2b4a63;border-radius:11px;padding:9px;background:#091827}.attachment img{width:100%;height:135px;object-fit:cover;border-radius:8px}.file-icon{height:135px;display:grid;place-items:center;font-size:40px;background:#071522;border-radius:8px}
.score{display:flex;gap:7px;flex-wrap:wrap}.score label{margin:0}.score input{display:none}.score span{display:grid;place-items:center;width:35px;height:35px;border:1px solid #365d7b;border-radius:8px}.score input:checked+span{background:var(--accent);color:#06101c;font-weight:900}.question{padding:12px 0;border-top:1px solid rgba(100,140,170,.18)}.calendar-event{padding:11px;border-left:4px solid var(--accent);background:#091827;border-radius:8px;margin-bottom:8px}
footer{text-align:center;color:var(--muted);font-size:10px;padding:18px}.login-wrap{max-width:440px;margin:70px auto;padding:0 18px}.login-logo{text-align:center;margin-bottom:18px}.login-logo img{max-width:100px;max-height:100px}
.pdf-sheet{max-width:210mm;margin:auto;background:white;color:#111;padding:14mm;box-shadow:0 5px 28px rgba(0,0,0,.25)}.pdf-sheet table{color:#111}.pdf-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pdf-meta>div{border:1px solid #bbb;padding:8px}.pdf-meta span{display:block;color:#666;font-size:9px}.pdf-stamp{height:120px;border:2px dashed #777;display:grid;place-items:center;color:#666;text-align:center}
@media(max-width:900px){.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{grid-column:span 12}.row,.row3{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.topbar{position:static}}@media(max-width:520px){.detail-grid{grid-template-columns:1fr}.global-search{flex-direction:column}}
@media print{.topbar,.global-search,.no-print,footer,.actions{display:none!important}body{background:white;color:#111}.container{max-width:none;padding:0}.card{background:white;color:#111;border:1px solid #bbb}.pdf-sheet{box-shadow:none;max-width:none;padding:0}}

/* Business modules + echter Monatskalender */
.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.module-toggle{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px;background:#091827;border:1px solid #2b4b65;border-radius:11px;cursor:pointer}.module-toggle input{width:auto;margin-top:3px}.module-toggle b,.module-toggle small{display:block}.module-toggle small{color:var(--muted);margin-top:3px}
.calendar-nav{display:flex;gap:7px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:15px;align-items:start}.calendar-side{display:grid;gap:15px;position:sticky;top:90px}.calendar-main{padding:13px}.month-title{display:flex;align-items:center;justify-content:center;gap:20px;padding:4px 0 13px}.month-title h2{margin:0;font-size:21px}.month-title a{text-decoration:none;width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#173650;font-size:25px}
.calendar-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays>div{text-align:center;padding:8px;color:var(--muted);font-size:11px;font-weight:800}.month-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}
.day-cell{min-height:126px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;background:#0a1826;overflow:hidden;transition:background .12s}.day-cell.outside{opacity:.42}.day-cell.today{box-shadow:inset 0 0 0 2px var(--accent)}.day-cell.selected{background:#153049}.day-number{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.day-number span{display:grid;place-items:center;width:27px;height:27px;border-radius:999px;font-weight:800}.today .day-number span{background:var(--accent);color:#07111f}.day-number small{font-size:8px;color:var(--accent)}
.day-events{display:grid;gap:4px}.event-chip{display:flex;align-items:center;gap:4px;min-width:0;padding:4px 5px;border-radius:5px;background:#193a54;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-chip i{font-style:normal;color:var(--accent);font-weight:900;flex:0 0 auto}.event-chip.all-day{background:#25435a}.leave-chip{background:rgba(255,201,94,.13);color:var(--warn)}.more-events{color:var(--muted);padding-left:4px}
.calendar-detail{padding:11px 0;border-bottom:1px solid #28475f}.calendar-detail:last-child{border-bottom:0}.calendar-detail strong{display:block;margin:6px 0}.leave-detail{border-left:3px solid var(--warn);padding-left:9px}.inline-check{display:flex;gap:8px;align-items:center;color:var(--text);font-size:12px}.inline-check input{width:auto}
@media (hover:hover) and (pointer:fine){.day-cell:hover{background:#12283b}}
@media(max-width:1050px){.calendar-layout{grid-template-columns:1fr}.calendar-side{position:static;grid-template-columns:1fr 1fr}.module-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.calendar-main{overflow-x:auto}.calendar-weekdays,.month-grid{min-width:700px}.calendar-side{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.day-cell{min-height:110px}}

.business-switch select{width:auto;max-width:230px;margin:0;padding:7px 30px 7px 9px}.notification-link{position:relative;text-decoration:none;font-size:18px}.notification-link b{position:absolute;top:-7px;right:-9px;background:var(--bad);color:white;border-radius:999px;min-width:17px;height:17px;display:grid;place-items:center;font-size:8px}.notification-unread{border-left-color:var(--accent);background:#102942}.permission-select-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;align-items:center;padding:9px 4px;border-top:1px solid rgba(100,140,170,.17)}.permission-select-row small{display:block;color:var(--muted);font-size:10px}.decision-large{font-size:24px;font-weight:900;padding:14px;border:1px solid var(--accent);border-radius:12px;background:#091827}.assessment-rating{margin-top:12px;padding:12px;border:1px solid #355a76;border-radius:10px;background:#091827}.risk-check{display:flex;gap:8px;align-items:flex-start;color:var(--text);font-size:12px}.risk-check input{width:auto;margin-top:2px}@media(max-width:700px){.permission-select-row{grid-template-columns:1fr}.business-switch{width:100%}.business-switch select{width:100%;max-width:none}}

/* Dienstgrade + Dienststempel */
.stamp-preview-wrap{display:grid;place-items:center;min-height:350px;background:#071522;border:1px dashed #345873;border-radius:14px;padding:20px}.stamp-preview{--stamp-color:#173f6b;width:290px;height:290px;border:10px solid var(--stamp-color);box-shadow:inset 0 0 0 4px #071522,inset 0 0 0 7px var(--stamp-color);color:var(--stamp-color);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px;font-family:Georgia,serif;text-transform:uppercase;transform:rotate(-2deg)}.stamp-preview.circle{border-radius:50%}.stamp-preview.rectangle{width:360px;height:230px;border-radius:18px}.stamp-top{font-size:16px;font-weight:800}.stamp-center{font-size:44px;line-height:1.1;margin:18px 0 12px}.stamp-bottom{font-size:14px;font-weight:800}.stamp-extra{margin-top:12px;letter-spacing:3px}.uploaded-stamp{margin-top:12px;padding:12px;background:#fff;border-radius:12px;text-align:center}.uploaded-stamp img{max-width:280px;max-height:240px}.document-stamp-box{display:flex;align-items:center;justify-content:center;min-height:130px}.document-stamp{width:155px;max-width:100%;max-height:150px;object-fit:contain}.pdf-sheet .document-stamp{filter:none}
@media(max-width:520px){.stamp-preview{width:230px;height:230px}.stamp-preview.rectangle{width:100%;height:190px}.stamp-center{font-size:34px}}

/* Personalisierter Mitarbeiterstempel */

.stamp-person-name{font-size:15px;font-weight:900;margin-top:9px;border-top:1px solid var(--stamp-color);padding-top:7px;width:82%}.stamp-person-rank{font-size:12px;font-weight:800;margin-top:3px}.stamp-preview.rectangle .stamp-person-name{margin-top:6px;padding-top:5px}.stamp-preview.rectangle .stamp-extra{margin-top:5px}.uploaded-stamp hr{border:0;border-top:1px solid #ddd;margin:12px 0}.uploaded-stamp small{color:#555}.document-stamp{max-height:175px}


/* Kalender: Direktsprung zu Monat / Datum */
.calendar-jump{margin-bottom:15px;padding:13px 15px}
.calendar-jump-group{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.calendar-jump-form{min-width:0}
.calendar-jump-form label{margin-top:0}
.calendar-jump-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.calendar-jump-controls input{margin:0;min-width:0}
.calendar-jump-hint{margin-top:8px;color:var(--muted);font-size:10px}
@media(max-width:700px){
  .calendar-jump-group{grid-template-columns:1fr}
  .calendar-jump-controls{grid-template-columns:1fr}
  .calendar-jump-controls .btn{width:100%;text-align:center}
}

/* Gutachten: Systemempfehlung + manuelle Freigabe */
.decision-large{font-size:20px;font-weight:900;padding:11px 12px;border-radius:10px;background:#132c43;border:1px solid #315873;margin-bottom:8px}
.decision-large.decision-ok{border-color:rgba(75,214,135,.55);color:var(--ok)}
.decision-large.decision-warn{border-color:rgba(255,201,94,.55);color:var(--warn)}
.decision-large.decision-bad{border-color:rgba(255,111,118,.55);color:var(--bad)}


/* Größerer Dienststempel auf Dokumenten/PDF-Ausgaben */
.document-stamp-box{
  min-height:220px;
}
.document-stamp{
  width:225px;
  max-width:100%;
  max-height:225px;
  object-fit:contain;
}
.pdf-sheet .document-stamp{
  width:225px;
  max-height:225px;
}
.assessment-list-card{overflow:hidden}
.table-scroll{overflow-x:auto}
.assessment-table{min-width:1060px}
.assessment-subline{display:block;margin-top:3px;font-size:10px}
.assessment-actions{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}
.inline-action{display:inline;margin:0}
.icon-action{
  width:36px;
  height:36px;
  display:inline-grid;
  place-items:center;
  border:1px solid #315b7a;
  background:#173650;
  color:var(--text);
  border-radius:8px;
  text-decoration:none;
  cursor:pointer;
  padding:0;
  font-size:16px;
  line-height:1;
}
.icon-action:hover{background:#214764}
.icon-delete{background:#55232e;border-color:#7b3342}
.icon-restore{background:#194431;border-color:#2f7654}


/* Geschäftseinstellungen: Logo verwalten */
.logo-setting-box{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:center;padding:10px;border:1px solid #294963;border-radius:11px;background:#091827}
.logo-setting-preview{width:90px;height:70px;display:grid;place-items:center}
.logo-setting-preview img{max-width:90px;max-height:70px;object-fit:contain}
.logo-setting-preview .brand-mark{width:58px;height:58px}
.logo-setting-actions{min-width:0}
.logo-setting-actions input{margin-bottom:5px}
.logo-setting-actions small{display:block;margin-bottom:8px}
@media(max-width:520px){.logo-setting-box{grid-template-columns:1fr}.logo-setting-preview{width:100%}}

