:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#173638;background:#f3f7f7;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid #d0dddd;border-radius:9px;padding:.62rem .9rem;background:#fff;color:#173638;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:650}button:hover,.button:hover{border-color:#168174}.primary{background:#14766e;border-color:#14766e;color:white}.primary:hover{background:#105f59;color:white}.quiet{border:0;background:transparent}.small{padding:.42rem .65rem;font-size:.875rem}.top{height:70px;background:#fff;border-bottom:1px solid #dce7e7;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 2rem;position:sticky;top:0;z-index:4}.identity,.account{display:flex;align-items:center;gap:1rem}.identity strong{display:block;font-size:1.25rem}.identity small{color:#668080;font-size:.85rem}.account{font-size:.9rem}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#0b5d59;color:#fff;font-weight:800;font-size:1.4rem}.shell{display:flex;max-width:1660px;margin:auto;min-height:calc(100vh - 70px)}.side{width:230px;flex:none;background:#103d3d;padding:1.4rem 1rem;color:#c8e2df;position:relative}.side p{font-size:.75rem;letter-spacing:.1em;margin:0 0 .75rem .8rem;color:#83aaa5}.side a{display:block;padding:.85rem .8rem;margin:.2rem 0;border-radius:9px;color:#d9efeb;text-decoration:none;font-size:.95rem}.side a.selected,.side a:hover{background:#247c74;color:white}.side-foot{position:absolute;bottom:1.5rem;left:1rem;right:1rem;font-size:.8rem;border-top:1px solid #396463;padding-top:1rem}.content{min-width:0;flex:1;padding:2rem}.page-heading{display:flex;justify-content:space-between;gap:1.2rem;align-items:end;margin-bottom:1.5rem}.page-heading h1{font-size:2rem;margin:.15rem 0}.page-heading p,.panel-header p,.hint{color:#627b7c;margin:.35rem 0}.eyebrow{font-size:.8rem;letter-spacing:.12em;color:#177b72;font-weight:800}.toolbar,.month-form{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap}.month-form label{font-size:.85rem;color:#5d7475}.month-form input{display:block;margin-top:.2rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1.4rem}.cards article{background:white;border:1px solid #dce8e7;border-radius:13px;padding:1rem 1.2rem}.cards span{display:block;text-transform:uppercase;color:#638080;letter-spacing:.05em;font-size:.8rem;font-weight:700}.cards strong{display:block;margin-top:.35rem;font-size:1.55rem}.panel{background:#fff;border:1px solid #dce8e7;border-radius:15px;overflow:hidden;padding:1.2rem;margin-top:1rem}.panel-header{margin-bottom:1rem}.panel-header h2{font-size:1.25rem;margin:0}.panel-header p{font-size:.9rem;line-height:1.5}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;color:#617c7c;font-size:.8rem;background:#f5f9f8;white-space:nowrap}td,th{padding:.7rem;border-bottom:1px solid #e2eaea;vertical-align:middle}td{white-space:nowrap}tr.weekend{background:#f7fbfb}tr.weekend td:first-child{color:#0b7067}input,select,textarea{border:1px solid #cedcda;border-radius:8px;padding:.57rem .62rem;background:white;color:#19393a;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #7cdbcd;outline-offset:1px}td select{min-width:110px;max-width:170px}td input[type=time]{width:110px}td input[type=number]{width:80px}td input[type=text]{width:135px}.check{display:inline-flex;gap:.45rem;align-items:center;white-space:nowrap;font-size:.87rem}.check input{width:1.1rem;height:1.1rem;accent-color:#14766e}.hint{font-size:.85rem;margin-top:1rem}.alert,.success{padding:.8rem 1rem;margin:.8rem 0;border-radius:10px;font-size:.9rem}.alert{background:#fff4dd;border:1px solid #ead19b;color:#765514}.success{background:#e1f4ea;color:#16624d}.project-grid{display:grid;grid-template-columns:minmax(280px,350px) 1fr;gap:1rem}.project-list{display:grid;gap:.8rem;align-content:start}.subpanel,.empty{border:1px solid #e0e9e8;border-radius:12px;padding:1rem;background:#fbfdfd}.subpanel h3{margin:0 0 1rem}.subpanel summary{cursor:pointer;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.subpanel summary span{color:#698080;font-size:.85rem}.subpanel details,.subpanel .form-grid{margin-top:1rem}.form-grid{display:grid;gap:.7rem}.form-grid label{font-size:.87rem;color:#506d6e;font-weight:600}.form-grid input,.form-grid select{display:block;width:100%;margin-top:.25rem}.form-grid .check input{display:inline-block;width:1.1rem;margin:0}.form-grid .check{margin:.4rem 0}.panel textarea{display:block;width:100%;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.85rem;line-height:1.6;margin:1rem 0}.mobile-nav{display:none}.auth{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(100%,410px);padding:2rem;background:white;border:1px solid #dce8e7;border-radius:18px;box-shadow:0 18px 50px #163e3e14}.auth-card h1{margin:1rem 0 .1rem}.auth-card p{margin:0 0 1.6rem;color:#688080}.auth-card form{display:grid;gap:1rem}.auth-card label{display:grid;gap:.3rem;font-weight:650;font-size:.9rem}.auth-card input{width:100%}.auth-card .primary{width:100%}@media(max-width:1100px){.side{display:none}.mobile-nav{display:flex;gap:.3rem;overflow:auto;margin:1rem 0}.mobile-nav a{padding:.65rem .8rem;border-radius:8px;background:white;border:1px solid #dce8e7;text-decoration:none;color:#214544;white-space:nowrap}.mobile-nav a.selected{background:#14766e;color:white}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.top{padding:0 1rem}.account span{display:none}.content{padding:1rem}.page-heading{display:block}.toolbar{margin-top:1rem}.cards{gap:.5rem}.cards article{padding:.8rem}.cards strong{font-size:1.2rem}.project-grid{grid-template-columns:1fr}.panel{padding:1rem}}
:root{--calendar-border:#dce8e7}.calendar-wrap{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:1rem}.calendar{min-width:0;border:1px solid var(--calendar-border);border-radius:12px;overflow:hidden}.calendar-head,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-head strong{background:#e8f4f2;padding:.65rem;text-align:center;font-size:.86rem}.calendar-day,.calendar-empty{min-height:92px;border-top:1px solid var(--calendar-border);border-right:1px solid var(--calendar-border);padding:.42rem;overflow:hidden}.calendar-day:nth-child(7n),.calendar-empty:nth-child(7n){border-right:0}.calendar-day>strong{font-size:.88rem}.cal-tag{display:block;border-radius:6px;padding:.22rem .32rem;margin-top:.25rem;background:#dcebea;color:#225355;white-space:normal;font-size:.76rem;line-height:1.2}.cal-tag.vacation{background:#e0edff;color:#315e97}.cal-tag.sick{background:#ffebeb;color:#9b4949}.cal-tag.comp{background:#fff0d1;color:#85631e}.cal-tag.work{background:#dff4ea;color:#1e6851}.cal-tag.other{background:#eeeaf9;color:#675398}.plan-list{margin-top:1.4rem}.plan-list h3{margin-bottom:.5rem}.plan-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem;border-bottom:1px solid var(--calendar-border)}.plan-item small{color:#617e7b}@media(max-width:1050px){.calendar-wrap{grid-template-columns:1fr}}@media(max-width:600px){.calendar-day,.calendar-empty{min-height:76px;padding:.22rem}.cal-tag{font-size:.64rem;word-break:break-word}.calendar-head strong{padding:.4rem}}

/* Navigation und Breite für lange Zeitlisten */
.shell{max-width:none;align-items:stretch}
.side{width:245px;position:sticky;top:70px;align-self:flex-start;height:calc(100vh - 70px);min-height:420px;display:flex;flex-direction:column;overflow-y:auto;box-shadow:4px 0 18px #102f2f0d}
.side a{width:100%;font-weight:600}
.side a.selected{box-shadow:inset 3px 0 #95ddd2}
.side-foot{position:static;margin-top:auto;padding-top:1rem}
.content{max-width:1600px;margin:0 auto;width:100%;padding:clamp(1rem,2vw,2rem)}
.cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.panel{box-shadow:0 3px 12px #123e3e08}
.project-grid{grid-template-columns:minmax(280px,350px) minmax(0,1fr)}
.page-heading{align-items:center}
.toolbar .button{white-space:nowrap}

/* SAP-Tabelle: Stammdaten links, Tage horizontal scrollbar */
.sap-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:.8rem 0 1rem}
.sap-actions .hint{margin:0}
.sap-scroll{overflow:auto;max-height:min(68vh,760px);border:1px solid #dbe9e7;border-radius:12px;scrollbar-color:#a3cbc4 #f5f9f8}
.sap-scroll:focus{outline:2px solid #73cbbf;outline-offset:2px}
.sap-table{width:max-content;min-width:100%;font-variant-numeric:tabular-nums}
.sap-table th,.sap-table td{padding:.65rem .7rem;border-right:1px solid #edf2f1}
.sap-table thead th{position:sticky;top:0;z-index:2;background:#edf6f4;color:#315756}
.sap-table tbody tr:nth-child(even){background:#f8fbfa}
.sap-table tbody tr:hover{background:#eaf5f3}
.sap-table .sap-project{position:sticky;left:0;z-index:3;min-width:175px;max-width:230px;white-space:normal;overflow-wrap:anywhere;background:#fff;color:#194e4b}
.sap-table thead .sap-project{z-index:4;background:#e4f2ef}
.sap-table tbody tr:nth-child(even) .sap-project{background:#f8fbfa}
.sap-table tbody tr:hover .sap-project{background:#eaf5f3}
.sap-table .sap-master{max-width:200px;min-width:110px;white-space:normal;overflow-wrap:anywhere}
.sap-table .sap-day{min-width:66px;text-align:right}
.sap-table .sap-day small{display:block;font-weight:500;font-size:.72rem}
.sap-table .sap-weekend{background:#e7eeee}
.sap-table .sap-value{text-align:right;min-width:66px;font-weight:650;color:#12665b}
.sap-table .sap-value.is-zero{font-weight:400;color:#8ca2a1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
button:disabled{opacity:.52;cursor:not-allowed}

@media(max-width:1100px){.side{display:none}.mobile-nav{position:sticky;top:70px;z-index:3;display:flex;background:#f3f7f7;padding:.6rem 0;margin:.3rem 0;box-shadow:0 4px 8px #f3f7f7}.content{max-width:100%}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.top{height:64px}.mobile-nav{top:64px}.page-heading{display:block}.project-grid{grid-template-columns:1fr}.sap-table .sap-project{min-width:140px;max-width:175px}.sap-actions{align-items:stretch}.sap-actions button{width:100%}}

/* Einheitliche, zeilenbasierte Monatsübersicht */
.period-tool{border:1px solid #dcebe8;background:#f8fcfb;border-radius:12px;padding:.9rem 1rem;margin:1rem 0}
.period-tool summary{cursor:pointer;font-weight:700;color:#12695f}
.period-tool[open] summary{margin-bottom:1rem}
.period-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;align-items:end}
.period-form label{font-size:.82rem;font-weight:650;color:#476b69}
.period-form input,.period-form select{display:block;width:100%;margin-top:.3rem}
.period-form button{min-height:42px}
.time-scroll{overflow:auto;max-height:70vh;border:1px solid #dbe8e6;border-radius:12px}
.time-scroll:focus{outline:2px solid #86d3c7;outline-offset:2px}
.time-grid{width:100%;min-width:1060px;font-variant-numeric:tabular-nums}
.time-grid th,.time-grid td{padding:.62rem .7rem}
.time-grid thead th{position:sticky;top:0;z-index:2;background:#ebf5f3}
.time-new{background:#edf8f5;border-bottom:2px solid #b8dad2}
.time-new input[type=date]{width:140px}
.time-new input[type=time]{width:92px}
.time-new input[type=number]{width:70px}
.time-new input[name=note]{width:120px}
.time-new select{width:155px}
.time-new #time-new-part{margin-top:.35rem;font-size:.78rem}
.time-record:nth-of-type(even){background:#f9fcfb}
.time-record:hover{background:#edf8f5}
.time-follow td,.time-follow th{border-top:0}
.time-date{min-width:125px;white-space:nowrap;text-align:left}
.time-date strong,.time-date span{display:block}
.time-date span{color:#567b77;font-size:.8rem}
.time-badge{display:inline-block;padding:.32rem .55rem;border-radius:8px;background:#dff3e9;color:#206652;font-size:.82rem;font-weight:700}
.time-badge.vacation{background:#e7f0ff;color:#305d94}
.time-badge.sick{background:#ffebeb;color:#9a4343}
.time-badge.comp{background:#fff1d6;color:#755822}
.time-badge.training{background:#eee8ff;color:#66519d}
.time-part{display:block;color:#617d79;font-size:.73rem;margin-top:.3rem}
.time-project{min-width:155px;max-width:220px;white-space:normal;overflow-wrap:anywhere}
.time-note{min-width:105px;max-width:170px;white-space:normal;overflow-wrap:anywhere;font-size:.81rem;color:#53716f}
.time-controls{min-width:145px;white-space:normal}
.time-controls form{margin:.25rem 0}
.time-controls .quiet{color:#9b4a43}
.time-editor summary{cursor:pointer;color:#0f746a;font-size:.82rem;font-weight:700}
.time-editor[open]{padding:.4rem;border:1px solid #d3e5e1;border-radius:9px;background:#fff}
.time-edit-form{display:grid;gap:.48rem;width:190px;margin-top:.55rem}
.time-edit-form label{font-size:.76rem;color:#4c6e6b;font-weight:600}
.time-edit-form input,.time-edit-form select{display:block;width:100%;margin-top:.2rem}
.time-edit-form .check input{display:inline;width:auto}
.time-empty{padding:2rem!important;color:#54736e;text-align:center}
.br-form{border-top:1px solid #dce9e7;padding-top:.4rem}
.br-form .check{font-size:.74rem}
@media(max-width:900px){.period-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.period-form{grid-template-columns:1fr}.time-scroll{max-height:65vh}}

/* Planungen: eine Tabelle statt leerer Listen und doppelter Karten */
.plan-table th,.plan-table td{padding:.85rem 1rem}
.plan-table td{white-space:normal}
.plan-table tbody tr:nth-child(even){background:#fafcfb}
.plan-table .plan-note{color:#617b78;max-width:240px;overflow-wrap:anywhere}
.plan-empty{text-align:center;padding:2.2rem!important;color:#476f69}
.plan-empty strong,.plan-empty span{display:block}
.plan-empty span{margin-top:.45rem;font-size:.87rem;color:#6b8581}
.plan-editor summary{cursor:pointer;color:#137469;font-size:.85rem;font-weight:700;white-space:nowrap}
.plan-editor[open]{min-width:270px;padding:.65rem;border:1px solid #d7e9e5;border-radius:10px;background:white}
.plan-editor form{max-width:320px;margin:.65rem 0}
.plan-editor form input,.plan-editor form select{width:100%}
.plan-editor .time-edit-form{max-width:320px;width:100%}
.week-credit{background:#f6fbfa;border:1px solid #dae9e6;border-radius:12px;padding:.9rem 1rem;margin:1rem 0}
.week-credit summary{cursor:pointer;font-weight:700;color:#176b62}
.week-credit[open] summary{margin-bottom:.65rem}
.week-credit table th,.week-credit table td{padding:.56rem .72rem}
.week-credit td{white-space:nowrap}
.week-credit .week-negative{color:#a7544e;font-weight:700}
.week-credit .week-positive{color:#147565;font-weight:700}
.week-credit .week-positive{color:#795417;font-weight:700}
.week-credit .week-even{color:#1d7148;font-weight:700}
.time-panel .panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.time-panel .panel-header p{max-width:850px}
.time-count{white-space:nowrap;border-radius:999px;background:#e7f4f1;color:#22675f;padding:.45rem .8rem;font-size:.8rem;font-weight:700}
.time-actions{display:flex;align-items:flex-start;gap:.7rem;flex-wrap:wrap;margin:1rem 0}
.time-actions>details{margin:0;padding:0;background:#fff;border:1px solid #cee2dd;border-radius:10px;min-width:220px}
.time-actions>details>summary{padding:.68rem .9rem;font-size:.88rem;font-weight:700;color:#17695f;cursor:pointer;list-style:none}
.time-actions>details>summary::-webkit-details-marker{display:none}
.time-actions>details>summary:focus-visible{outline:2px solid #128271;outline-offset:2px}
.time-actions .time-add>summary{background:#186d63;color:#fff;border-radius:9px}
.time-actions>details[open]{flex:1 1 100%;padding:0 1rem 1rem}
.time-actions>details[open]>summary{margin:0 -1rem .7rem;padding:1rem}
.time-add-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:end}
.time-add-form label{font-size:.81rem;font-weight:650;color:#476b69;min-width:0}
.time-add-form label input,.time-add-form label select{display:block;width:100%;margin-top:.3rem}
.time-add-form label:has([hidden]){display:none}
.time-add-form button{min-height:42px}
.time-actions .period-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.week-credit{margin-top:1rem;background:#fff}
.week-credit summary small{font-weight:400;color:#597a74}
.time-grid{min-width:880px}
.time-grid th,.time-grid td{padding:.7rem .64rem;vertical-align:middle}
.time-date strong,.time-date span{display:inline}
.time-date span{margin-left:.35rem}
.time-follow{background:#f6faf9}
.time-controls{min-width:110px}
.time-controls form{margin:.15rem 0}
.time-editor summary{display:inline-block;padding:.2rem 0}
.time-note{max-width:145px}
.time-day-heading th{background:#eaf3f2!important;color:#1d514d;border-top:2px solid #c6ded9;padding:.75rem 1rem!important;text-align:left}
.time-day-heading:first-child th{border-top:0}
.time-day-heading th>span:first-child{font-weight:800;font-size:.96rem}
.day-summary{display:inline-flex;gap:.55rem;flex-wrap:wrap;margin-left:1.3rem;vertical-align:middle}
.day-summary>span{font-size:.76rem;font-weight:650;border:1px solid #cfdfdd;background:white;color:#426c65;padding:.2rem .55rem;border-radius:999px}
.time-record td:first-child{padding-left:1rem}
.time-record:nth-child(even){background:white}
.time-record:hover{background:#f5faf8}
@media(max-width:1050px){.time-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.time-actions>details{width:100%}.time-add-form,.time-actions .period-form{grid-template-columns:1fr}.time-count{display:none}.day-summary{display:flex;margin:.4rem 0 0}}
.cards-compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards-compact article{min-height:112px}
.cards-compact small{display:block;margin-top:.35rem;color:#597571;font-size:.76rem;line-height:1.4}
.cards-compact .balance-card.balance-negative,.balance-chip.balance-negative{background:#fff0ef;color:#a2443d;border-color:#f2c6c1}
.cards-compact .balance-card.balance-positive,.balance-chip.balance-positive{background:#fff3d3;color:#795417;border-color:#ead39c}
.cards-compact .balance-card.balance-even,.balance-chip.balance-even{background:#e4f5e9;color:#1d7148;border-color:#bee3c8}
.balance-chip.balance-empty{background:#f4f7f7;color:#66817d;border-color:#dbe6e4}
.cards-compact .balance-card small{color:inherit}
.week-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border:1px solid #d5e6e2;border-radius:12px;padding:.65rem .8rem;background:#f7fbfa;margin:1rem 0}
.week-nav-links,.week-nav-metrics{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.week-nav-links strong{white-space:nowrap;color:#214f4b}
.week-nav-links .button{font-size:.8rem;padding:.4rem .6rem}
.week-nav-metrics{font-size:.8rem;color:#4e716b}
.week-nav-metrics strong{color:#1b4340}
.balance-chip{display:inline-block;padding:.25rem .55rem;border:1px solid #dae9e5;border-radius:999px;font-weight:700;white-space:nowrap}
.week-nav-metrics .balance-chip strong{color:inherit}
.day-add{float:right;font-size:.77rem;padding:.3rem .55rem;background:white;color:#17695f}
.day-add+.day-add{margin-right:.4rem}
.day-add-absence{color:#99524a;background:#fff6f4}
.day-empty td{color:#718a85;padding:.75rem 1rem!important;background:#fff}
.day-empty button{border:0;background:none;color:#126d62;padding:.12rem;font-size:.84rem;text-decoration:underline}
.sap-inline{border:1px solid #d7e7e3;border-radius:10px;margin:1rem 0;padding:.75rem .9rem;background:#f9fcfb}
.sap-inline>summary{cursor:pointer;font-weight:700;color:#17695f}
.sap-inline>.panel{margin-top:1rem}
.calendar-plan .other-plan{margin-top:1rem;border-top:1px solid #dae8e4;padding-top:.75rem}
.calendar-plan .other-plan summary{cursor:pointer;color:#4f6f69;font-size:.84rem}
.calendar-plan .other-plan form{margin-top:.7rem}
@media(max-width:950px){.cards-compact{grid-template-columns:1fr}.week-nav{align-items:stretch}.week-nav-links,.week-nav-metrics{justify-content:space-between}}
