:root{--dekra-green: #017848;--dekra-green-dark: #0e3a2c;--dekra-green-light: #3fa97b;--sidebar-bg: #0e3a2c;--sidebar-fg: #cfe3d8;--sidebar-fg-muted: #7fa593;--bg: #f4f6f5;--surface: #ffffff;--surface-alt: #eef2f0;--sunken: #f8faf9;--hover: #fafcfb;--today-tint: #f2f9f5;--border: #e2e8e4;--text: #1c2b24;--text-muted: #64766d;--danger: #c0392b;--radius: 12px;--shadow: 0 1px 3px rgba(14, 58, 44, .08), 0 1px 2px rgba(14, 58, 44, .04);--sidebar-w: 248px}:root[data-theme=dark],.theme-dark-vars{--bg: #0f1613;--surface: #16211c;--surface-alt: #1a271f;--sunken: #121b16;--hover: #1c2a22;--today-tint: #17281f;--border: #26332c;--text: #e6efe9;--text-muted: #92a89b;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f1613;--surface: #16211c;--surface-alt: #1a271f;--sunken: #121b16;--hover: #1c2a22;--today-tint: #17281f;--border: #26332c;--text: #e6efe9;--text-muted: #92a89b;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.boot-screen{display:grid;place-items:center;height:100vh;color:var(--text-muted)}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-fg);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.sidebar__brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;color:#fff;padding:6px 8px 20px}.sidebar__group{margin-bottom:18px}.sidebar__group-label{font-size:.68rem;letter-spacing:.09em;color:var(--sidebar-fg-muted);padding:0 12px 8px;font-weight:600}.sidebar__link{display:block;padding:9px 12px;border-radius:8px;color:var(--sidebar-fg);text-decoration:none;font-size:.92rem;margin-bottom:2px;transition:background .12s,color .12s}.sidebar__link:hover{background:#ffffff0f;color:#fff}.sidebar__link--active{background:var(--dekra-green);color:#fff;font-weight:600}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:14px;padding:14px 28px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar__greeting{font-weight:600;font-size:1rem;margin-right:auto}.topbar__theme{padding:8px 12px;font-size:1rem;line-height:1}.topbar__burger{display:none;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--text)}.content{padding:28px;max-width:1200px;width:100%}.page__title{font-size:1.5rem;margin:0 0 20px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}.kpi-card--link{display:block;text-decoration:none;color:inherit;transition:border-color .12s,transform .06s}.kpi-card--link:hover{border-color:var(--dekra-green-light)}.kpi-card--link:active{transform:translateY(1px)}.kpi-card__value{font-size:2.2rem;font-weight:700;color:var(--dekra-green);line-height:1}.kpi-card__label{margin-top:8px;color:var(--text-muted);font-size:.9rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.panel__title{font-size:1.05rem;margin:0 0 12px}.panel__empty{color:var(--text-muted);margin:0}.notice{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.notice--error{background:#fdecea;color:var(--danger)}.btn{font:inherit;border:none;border-radius:8px;padding:9px 16px;cursor:pointer;font-weight:600;transition:background .12s,opacity .12s}.btn--primary{background:var(--dekra-green);color:#fff;width:100%;padding:11px}.btn--primary:hover{background:#016a40}.btn--primary:disabled{opacity:.6;cursor:default}.btn--ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn--ghost:hover{background:var(--bg)}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--dekra-green-dark),#10241c);padding:20px}.login__card{background:var(--surface);border-radius:16px;padding:36px 32px;width:100%;max-width:360px;box-shadow:0 20px 50px #0000004d;text-align:center}.login__logo{border-radius:12px}.login__title{margin:14px 0 2px;font-size:1.4rem}.login__subtitle{margin:0 0 24px;color:var(--text-muted);font-size:.9rem}.field{display:block;text-align:left;margin-bottom:18px}.field span{display:block;font-size:.82rem;color:var(--text-muted);margin-bottom:6px}.field input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--surface);color:var(--text)}.field input:focus{outline:2px solid var(--dekra-green-light);outline-offset:0;border-color:transparent}.login__error{background:#fdecea;color:var(--danger);padding:9px 12px;border-radius:8px;font-size:.85rem;margin-bottom:16px}.page__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.btn--auto{width:auto}.btn--sm{padding:7px 12px;font-size:.85rem}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover{background:#a5321f}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.btn-row--nav{margin-top:12px}.breadcrumb{display:inline-block;color:var(--text-muted);text-decoration:none;font-size:.85rem;margin-bottom:4px}.breadcrumb:hover{color:var(--dekra-green)}.card-list{display:flex;flex-direction:column;gap:10px}.list-card{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow);cursor:pointer;text-decoration:none;color:inherit;font:inherit;transition:border-color .12s,transform .06s}.list-card:hover{border-color:var(--dekra-green-light)}.list-card:active{transform:translateY(1px)}.list-card__title{font-weight:600}.list-card__sub{color:var(--text-muted);font-size:.85rem;margin-top:2px}.list-card__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.list-card__chip{font-size:.74rem;font-weight:600;color:var(--text-muted);background:var(--surface-alt);border-radius:999px;padding:2px 9px;white-space:nowrap}.pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--bg);color:var(--text-muted);white-space:nowrap;flex-shrink:0}.pill--aktiv{background:#e3f4ec;color:#016a40}.pill--pausiert{background:#fef3d7;color:#9a6a00}.pill--abgeschlossen{background:#eceff1;color:#566169}.pill--billing-aufwand{background:#e3eefb;color:#1f5aa8}.pill--billing-stundenkontingent{background:#ece6fa;color:#6b46c1}.pill--billing-pauschal{background:#e3f4ec;color:#016a40}.billing__head{margin-bottom:12px}.billing__value{font-weight:700;font-size:1.05rem}.billing__over{color:var(--danger);font-weight:600}.billing__bar{margin-top:10px;height:8px;border-radius:999px;background:var(--surface-alt);overflow:hidden}.billing__bar-fill{height:100%;border-radius:999px;background:var(--dekra-green);transition:width .3s ease}.billing__bar-fill--over{background:var(--danger)}.billing__notes{margin-top:12px;padding:10px 12px;background:var(--sunken);border-radius:8px;font-size:.9rem;color:var(--text-muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.panel__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.panel__head .panel__title{margin:0}.datalist{display:grid;grid-template-columns:120px 1fr;gap:8px 14px;margin:0}.datalist dt{color:var(--text-muted);font-size:.85rem}.datalist dd{margin:0}.datalist__pre{white-space:pre-wrap}.status-select{padding:4px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.85rem;background:var(--surface);color:var(--text)}.contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.contact-list__item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.contact-list__item:last-child{border-bottom:none;padding-bottom:0}.contact-list__name{font-weight:600}.contact-list__role{font-weight:400;color:var(--text-muted)}.contact-list__meta{font-size:.85rem;margin-top:2px}.contact-list__meta a{color:var(--dekra-green);text-decoration:none}.contact-list__actions{display:flex;gap:10px;flex-shrink:0}.link-btn{background:none;border:none;padding:0;cursor:pointer;color:var(--text-muted);font:inherit;font-size:.82rem}.link-btn:hover{color:var(--dekra-green)}.link-btn--danger:hover{color:var(--danger)}.tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}.tab{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 14px;cursor:pointer;font:inherit;font-size:.85rem;color:var(--text-muted)}.tab--active{background:var(--dekra-green);border-color:var(--dekra-green);color:#fff;font-weight:600}.panel--map{display:flex;flex-direction:column}.project-map{height:260px;width:100%;border-radius:8px;overflow:hidden;z-index:0}.project-map--loading{display:grid;place-items:center;background:var(--bg);color:var(--text-muted)}.form{display:flex;flex-direction:column}.form__row{display:flex;gap:12px}.field--grow{flex:1}.field textarea,.field select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--surface);color:var(--text)}.field textarea:focus,.field select:focus{outline:2px solid var(--dekra-green-light);outline-offset:0;border-color:transparent}.form__hint{color:var(--text-muted);font-size:.82rem;margin:0 0 14px}.form__actions{display:flex;justify-content:flex-end;gap:10px}.modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e241c80;display:grid;place-items:center;padding:20px;z-index:60}.modal{background:var(--surface);border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #0000004d}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}.modal__title{margin:0;font-size:1.1rem}.modal__close{background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--text-muted)}.modal__body{padding:22px}.modal-project-link{display:inline-block;margin-bottom:16px;color:var(--dekra-green);text-decoration:none;font-weight:600;font-size:.9rem}.modal-project-link:hover{text-decoration:underline}.pill--v-geplant{background:#e3f0fb;color:#1c5a94}.pill--v-durchgeführt{background:#e3f4ec;color:#016a40}.pill--v-abgesagt{background:#f6e0dd;color:#a5321f}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.cal-nav{display:flex;align-items:center;gap:6px}.cal-title{font-weight:600;margin-left:8px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cal-weekday{background:var(--surface);text-align:center;padding:8px 4px;font-size:.75rem;font-weight:600;color:var(--text-muted)}.cal-cell{background:var(--surface);min-height:96px;padding:4px 5px 6px;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:background .1s}.cal-cell:hover{background:var(--hover)}.cal-cell--muted{background:var(--sunken);color:var(--text-muted)}.cal-cell--muted .cal-cell__num{opacity:.5}.cal-cell--today .cal-cell__num{background:var(--dekra-green);color:#fff;border-radius:999px;width:22px;height:22px;display:grid;place-items:center}.cal-cell__num{font-size:.78rem;font-weight:600;align-self:flex-start}.cal-event{border:none;border-radius:5px;padding:2px 6px;font:inherit;font-size:.72rem;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#e3f0fb;color:#1c5a94;width:100%}.cal-event--durchgeführt{background:#e3f4ec;color:#016a40}.cal-event--abgesagt{background:#f6e0dd;color:#a5321f;text-decoration:line-through}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cal-week-col{background:var(--surface);min-height:220px;display:flex;flex-direction:column}.cal-week-col--today{background:var(--today-tint)}.cal-week-head{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border-bottom:1px solid var(--border);cursor:pointer}.cal-week-wd{font-size:.7rem;text-transform:uppercase;color:var(--text-muted);font-weight:600}.cal-week-date{font-size:.82rem;font-weight:600}.cal-week-col--today .cal-week-date{color:var(--dekra-green)}.cal-week-body{display:flex;flex-direction:column;gap:4px;padding:5px;flex:1}.cal-wk-event{border:none;border-radius:5px;padding:4px 6px;font:inherit;font-size:.72rem;line-height:1.25;text-align:left;cursor:pointer;background:#e3f0fb;color:#1c5a94;word-break:break-word}.cal-wk-event.cal-event--durchgeführt{background:#e3f4ec;color:#016a40}.cal-wk-event.cal-event--abgesagt{background:#f6e0dd;color:#a5321f;text-decoration:line-through}.cal-wk-event.cal-event--todo{background:#fef3d7;color:#9a6a00}.cal-week-empty{border:1px dashed var(--border);background:none;border-radius:5px;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:6px;margin-top:auto;opacity:0;transition:opacity .12s}.cal-week-col:hover .cal-week-empty{opacity:1}.visit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.visit-list__item{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.visit-list__item:last-child{border-bottom:none}.visit-list__date{display:flex;flex-direction:column;align-items:flex-start;min-width:96px;font-size:.85rem;flex-shrink:0}.visit-list__wd{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.visit-list__time{font-weight:600;color:var(--dekra-green)}.visit-list__main{flex:1;min-width:0}.visit-list__title{font-weight:600}.visit-list__title a{color:var(--dekra-green);text-decoration:none}.visit-list__actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.todo-list__item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.todo-list__item:last-child{border-bottom:none}.todo-list__main{display:flex;align-items:center;gap:10px;background:none;border:none;padding:0;font:inherit;text-align:left;cursor:pointer;color:inherit;min-width:0}.todo-list__title{font-weight:500}.todo-list__main:hover .todo-list__title{color:var(--dekra-green)}.todo-list__due{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.panel__hint{color:var(--text-muted);font-size:.82rem;margin:14px 0 0}.panel__hint a{color:var(--dekra-green)}.bill-table{width:100%;border-collapse:collapse;font-size:.9rem}.bill-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:0 10px 10px;border-bottom:1px solid var(--border)}.bill-table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.bill-table tr:last-child td{border-bottom:none}.bill-table a{color:var(--dekra-green);text-decoration:none;font-weight:500}.bill-kind{color:var(--text-muted)}.bill-num{text-align:right;white-space:nowrap}.bill-check{text-align:center;width:90px}.bill-check input{width:18px;height:18px;accent-color:var(--dekra-green)}.bill-hours{width:62px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;text-align:right;background:var(--surface);color:var(--text)}.bill-hours:focus{outline:2px solid var(--dekra-green-light);outline-offset:0;border-color:transparent}.bill-row--billed,.bill-row--billed a{color:var(--text-muted)}.checkbox--inline{display:flex;align-items:center;gap:9px;margin-bottom:16px;cursor:pointer;font-size:.9rem}.checkbox--inline input{width:18px;height:18px;accent-color:var(--dekra-green);flex-shrink:0}.field--check .checkbox{display:flex;align-items:center;gap:8px;padding:10px 0;margin:0;cursor:pointer}.field--check .checkbox span{margin:0;font-size:.9rem;color:var(--text)}.field--check .checkbox input{width:18px;height:18px;accent-color:var(--dekra-green)}.hours-tag{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.hours-tag--billed{color:#016a40}.search-input{width:100%;padding:13px 16px;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:1rem;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.search-input:focus{outline:2px solid var(--dekra-green-light);outline-offset:0;border-color:transparent}.search-results{display:flex;flex-direction:column;gap:14px;margin-top:18px}.search-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.search-list li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.search-list li:last-child{border-bottom:none}.search-list a{color:var(--dekra-green);text-decoration:none;font-weight:500}.search-list a:hover{text-decoration:underline}.search-sub{color:var(--text-muted);font-size:.82rem;text-align:right;flex-shrink:0}.panel--today{margin-bottom:16px;border-left:4px solid var(--dekra-green)}.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.today-sub{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 10px}.today-subhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.today-route{font-size:.8rem;font-weight:600;color:var(--dekra-green);text-decoration:none;white-space:nowrap}.today-route:hover{text-decoration:underline}.today-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.today-item{display:flex;align-items:baseline;gap:10px}.today-time{font-weight:700;color:var(--dekra-green);font-size:.9rem;min-width:44px;flex-shrink:0}.today-main{min-width:0}.today-main a{color:var(--dekra-green);text-decoration:none}.today-city{color:var(--text-muted)}.today-badge{flex-shrink:0;font-size:.68rem;font-weight:700;border-radius:999px;padding:2px 8px;background:#fef3d7;color:#9a6a00;min-width:44px;text-align:center}.today-badge--overdue{background:#f6e0dd;color:#a5321f}.overview-map{height:360px;width:100%;border-radius:8px;overflow:hidden;z-index:0}.overview-map--loading{display:grid;place-items:center;background:var(--bg);color:var(--text-muted)}.doc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.doc-list__item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.doc-list__item:last-child{border-bottom:none}.doc-list__main{display:flex;align-items:center;gap:12px;min-width:0}.doc-list__info{min-width:0}.doc-list__name{font-weight:600;color:var(--dekra-green);text-decoration:none;word-break:break-all}.doc-list__name:hover{text-decoration:underline}.doc-list__meta{font-size:.8rem;color:var(--text-muted);margin-top:2px}.doc-list__meta a{color:var(--text-muted)}.doc-list__actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-bottom:16px}.photo-thumb{border:1px solid var(--border);border-radius:8px;overflow:hidden;padding:0;cursor:pointer;aspect-ratio:1;background:var(--sunken)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-thumb:hover{border-color:var(--dekra-green-light)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e0;display:grid;place-items:center;padding:24px;z-index:80}.lightbox__figure{margin:0;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:10px}.lightbox__figure img{max-width:92vw;max-height:78vh;object-fit:contain;border-radius:6px}.lightbox__figure figcaption{color:#fff;font-size:.9rem;text-align:center}.lightbox__count{color:#fff9}.lightbox__close{position:absolute;top:16px;right:20px;background:none;border:none;color:#fff;font-size:2.2rem;line-height:1;cursor:pointer}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1f;border:none;color:#fff;font-size:2rem;width:48px;height:48px;border-radius:999px;cursor:pointer}.lightbox__nav:hover{background:#ffffff40}.lightbox__nav--prev{left:16px}.lightbox__nav--next{right:16px}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px;align-items:start}.kanban-col{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px;transition:background .12s,box-shadow .12s}.kanban-col--over{background:var(--surface-alt);box-shadow:inset 0 0 0 2px var(--dekra-green-light)}.kanban-col__head{display:flex;align-items:center;justify-content:space-between;padding:2px 4px}.kanban-col__title{font-size:.82rem;font-weight:600;color:var(--text)}.kanban-col__count{font-size:.72rem;font-weight:600;color:var(--text-muted);background:var(--surface);border-radius:999px;padding:1px 8px}.kanban-col__body{display:flex;flex-direction:column;gap:8px;min-height:24px}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow);cursor:grab}.kanban-card:active{cursor:grabbing}.kanban-card:hover{border-color:var(--dekra-green-light)}.kanban-card__title{font-size:.9rem;font-weight:500;line-height:1.3}.kanban-card__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.kanban-card__project{font-size:.72rem;color:var(--dekra-green);background:#e3f4ec;border-radius:4px;padding:2px 6px}.kanban-card__due{font-size:.72rem;color:var(--text-muted)}.kanban-card__due--overdue,.todo-list__due--overdue{color:var(--danger);font-weight:700}.kanban-col__add{background:none;border:1px dashed var(--border);border-radius:8px;padding:7px;cursor:pointer;font:inherit;font-size:.82rem;color:var(--text-muted)}.kanban-col__add:hover{border-color:var(--dekra-green-light);color:var(--dekra-green)}.pin-icon{background:none;border:none}.pin-label.leaflet-tooltip{background:#fffffff0;border:1px solid var(--border);border-radius:6px;box-shadow:0 1px 4px #0e3a2c2e;color:var(--text);font-weight:600;font-size:.72rem;padding:2px 7px;white-space:nowrap}.pin-label.leaflet-tooltip:before{display:none}.pin-label--next.leaflet-tooltip{background:var(--danger);border-color:var(--danger);color:#fff}.pin-popup-next{color:var(--danger);font-weight:600;font-size:.78rem;margin-top:2px}.dropzone{border:2px dashed var(--border);border-radius:10px;padding:20px 16px;text-align:center;cursor:pointer;margin-bottom:18px;transition:border-color .12s,background .12s;background:var(--bg)}.dropzone:hover{border-color:var(--dekra-green-light)}.dropzone--over{border-color:var(--dekra-green);background:#e9f5ef}.dropzone__hint{color:var(--text-muted);font-size:.9rem}.dropzone__link{color:var(--dekra-green);font-weight:600;text-decoration:underline}.dropzone__file{display:flex;flex-direction:column;gap:3px}.dropzone__file strong{word-break:break-all}.dropzone__file span{color:var(--text-muted);font-size:.78rem}.doc-list__file{font-size:.76rem;color:var(--text-muted);word-break:break-all}.doc-list__note{font-size:.82rem;color:var(--text);margin-top:2px;white-space:pre-wrap}.cal-event--todo{background:#fef3d7;color:#9a6a00}.cal-todo-badge{display:inline-block;background:#fef3d7;color:#9a6a00;font-size:.68rem;font-weight:700;border-radius:4px;padding:1px 6px;margin-right:4px;vertical-align:middle}.cal-event--extern,.cal-wk-event.cal-event--extern{background:var(--sunken);color:var(--text-muted);border:1px dashed var(--border)}.cal-extern-badge{display:inline-block;background:var(--sunken);color:var(--text-muted);border:1px dashed var(--border);font-size:.68rem;font-weight:700;border-radius:4px;padding:1px 6px;margin-right:4px;vertical-align:middle}.ext-event-info{background:var(--sunken);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:14px}.ext-event-info__title{font-weight:600}.ext-event-info__meta{color:var(--text-muted);font-size:.85rem;margin-top:2px}.today-extern{border:none;background:none;padding:0;font:inherit;color:var(--text-muted);cursor:pointer;text-align:left}.today-extern:hover{text-decoration:underline}.panel__hint{color:var(--text-muted);font-size:.8rem}.followup-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.followup-item{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.followup-item:last-child{border-bottom:none}.followup-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.followup-hours{width:64px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;text-align:right}.btn--sm{padding:6px 12px;font-size:.82rem}.backup-lead{color:var(--text-muted);margin:0 0 14px}.backup-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.backup-hints{margin:0;padding-left:20px;color:var(--text);font-size:.9rem;line-height:1.5}.backup-hints li{margin-bottom:6px}.backup-hints code{background:var(--bg);border-radius:4px;padding:1px 5px;font-size:.85em}@media(max-width:768px){.topbar__burger{display:block}.detail-grid{grid-template-columns:1fr}.today-grid{grid-template-columns:1fr;gap:18px}.kanban{grid-auto-columns:80%}.cal-week{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:46%;overflow-x:auto}.cal-cell{min-height:62px}.cal-event{font-size:0;padding:3px;height:8px;border-radius:3px}.visit-list__item{flex-wrap:wrap}.visit-list__actions{width:100%;justify-content:flex-start}.form__row{flex-direction:column;gap:0}.datalist{grid-template-columns:100px 1fr}.sidebar{position:fixed;z-index:40;transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 24px #00000040}.sidebar--open{transform:translate(0)}.content{padding:20px 16px}}
