:root{color:#1d2733;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f4f7fb}button,input,select,textarea{font:inherit}button{border:0;border-radius:6px;background:#15304a;color:#fff;cursor:pointer;font-weight:700;min-height:36px;padding:0 14px}button:hover{background:#21476d}button.secondary{background:#e8eef5;color:#1d2733}button.secondary:hover{background:#dce5ef}button.danger{background:#d84a4a}button.danger:hover{background:#b93636}button.compact{min-height:30px;padding:0 10px;white-space:nowrap}button:disabled{cursor:not-allowed;opacity:.65}.auth-page{align-items:center;background:#f4f7fb;display:flex;flex-direction:column;gap:14px;justify-content:center;min-height:100vh;padding:24px}.auth-card{background:#fff;border:1px solid #dbe4ee;border-radius:8px;box-shadow:0 10px 28px #1f304414;margin:0 auto;max-width:440px;padding:24px;width:100%}.auth-card p{color:#617386;font-size:.9rem;font-weight:700}.auth-switch{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));margin:22px 0 16px}.auth-switch button{background:#e8eef5;color:#1d2733}.auth-switch button.active{background:#15304a;color:#fff}.auth-form{display:grid;gap:12px}.auth-choice{border:1px solid #dbe4ee;border-radius:8px;display:grid;gap:8px;margin:0;padding:12px}.auth-choice legend{color:#475b70;font-size:.82rem;font-weight:900;padding:0 4px}.auth-choice label{align-items:center;display:flex;gap:8px}.auth-choice input{min-height:auto;width:auto}.auth-error,.auth-message{border-radius:6px;font-size:.82rem;font-weight:800;margin:0;padding:10px}.auth-error{background:#fff0f0;color:#a12727}.auth-message{background:#e8f7ee;color:#236a40}.app-shell{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:24px 0 40px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:8px 0 18px}.eyebrow{color:#617386;font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 6px;text-transform:uppercase}h1,h2{letter-spacing:0;margin:0}h1{color:#142235;font-size:clamp(2rem,5vw,4.2rem);line-height:.95}h2{color:#142235;font-size:1.05rem}.topbar-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;justify-content:flex-end}.today{color:#617386;font-weight:700;padding-bottom:9px}.user-menu{align-items:center;display:flex;gap:8px;padding-bottom:1px}.user-menu span{color:#617386;font-size:.78rem;font-weight:800;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}label{color:#475b70;display:grid;gap:6px;font-size:.82rem;font-weight:800}input,select,textarea{background:#fff;border:1px solid #cbd7e3;border-radius:6px;color:#1d2733;min-height:36px;padding:7px 10px;width:100%}textarea{resize:vertical}.tabs{display:flex;gap:6px;overflow-x:auto;padding:8px 0 18px}.tabs button{background:transparent;color:#475b70;border:1px solid #cbd7e3;white-space:nowrap}.tabs button.active{background:#15304a;border-color:#15304a;color:#fff}.legal-footer{align-items:center;color:#617386;display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:center;padding:18px 0 0}.legal-footer a,.back-link{color:#475b70;font-size:.78rem;font-weight:850;text-decoration:none}.legal-footer a:hover,.back-link:hover{color:#15304a;text-decoration:underline}.legal-shell{max-width:980px}.legal-header{display:grid;gap:10px;padding:20px 0 18px}.legal-header h1{font-size:clamp(2rem,6vw,3.6rem)}.legal-document{display:grid;gap:12px}.legal-section{display:grid;gap:8px}.legal-section p{color:#475b70;font-size:.92rem;font-weight:650;line-height:1.55;margin:0}.balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}.number-field{background:#fff;border:1px solid #dbe4ee;border-radius:8px;padding:12px}.calculated-field{color:#475b70;display:grid;gap:6px;font-size:.82rem;font-weight:800}.calculated-field strong{color:#142235;font-size:1rem;line-height:1.2}.reference-note{color:#617386;font-size:.78rem;font-weight:700;margin:-8px 0 18px}.migration-note{background:#e8f7ee;border:1px solid #bfe6cb;border-radius:8px;color:#236a40;font-size:.82rem;font-weight:800;margin:-6px 0 18px;padding:10px 12px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.metric,.panel{background:#fff;border:1px solid #dbe4ee;border-radius:8px;box-shadow:0 8px 22px #1f30440d}.metric{display:grid;gap:10px;min-height:108px;padding:14px}button.metric{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;text-align:left;width:100%}.metric.clickable{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.metric.clickable:hover,.metric.clickable:focus-visible{box-shadow:0 10px 26px #1f30441f;outline:2px solid #9cc8ef;outline-offset:2px;transform:translateY(-1px)}.metric.active{border-color:#9db9d7;background:#f8fbff}.metric.good.active{border-left-color:#3fa56a}.metric.bad.active{border-left-color:#d84a4a}.metric.warn.active{border-left-color:#d6a21d}.metric span{color:#617386;font-size:.82rem;font-weight:800}.metric strong{color:#142235;font-size:1.28rem;line-height:1.1;word-break:break-word}.metric small{color:#6f7f91;font-size:.78rem;font-weight:650;line-height:1.35}.metric.good{border-left:5px solid #3fa56a}.metric.bad{border-left:5px solid #d84a4a}.metric.warn{border-left:5px solid #d6a21d}.metric.income{border-left:5px solid #2878c7}.metric.neutral{border-left:5px solid #8c9aaa}.month-transition-notice{align-content:center;background:#fff;border:1px solid #dbe4ee;border-left:5px solid #8c9aaa;border-radius:8px;box-shadow:0 8px 22px #1f30440d;display:grid;gap:8px;grid-column:span 5;min-height:108px;padding:16px 18px}.month-transition-notice.good{border-left-color:#3fa56a}.month-transition-notice.bad{border-left-color:#d84a4a}.month-transition-notice.neutral{border-left-color:#8c9aaa}.month-transition-notice span{color:#617386;font-size:.82rem;font-weight:900}.month-transition-notice strong{color:#142235;font-size:1.06rem;line-height:1.3}.month-transition-notice p{color:#617386;font-size:.8rem;font-weight:750;line-height:1.4;margin:0}.dashboard-detail-panel{margin-top:14px}.detail-header{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin-bottom:12px}.detail-header p,.empty-detail{color:#617386;font-size:.82rem;font-weight:750;line-height:1.4;margin:4px 0 0}.detail-summary{align-items:flex-end;display:flex;flex-direction:column;gap:6px;min-width:145px}.detail-summary span{color:#617386;font-size:.76rem;font-weight:850}.detail-summary strong{color:#142235;font-size:1.1rem}.detail-booking-list{display:grid;gap:8px}.detail-calculation-list{border:1px solid #dbe4ee;border-radius:8px;display:grid;margin-bottom:12px;overflow:hidden}.detail-calculation-row{align-items:center;background:#fbfdff;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.detail-calculation-row+.detail-calculation-row{border-top:1px solid #dbe4ee}.detail-calculation-row div{display:grid;gap:2px;min-width:0}.detail-calculation-row strong{color:#142235;font-size:.86rem}.detail-calculation-row span{color:#617386;font-size:.74rem;font-weight:700}.detail-calculation-row b{color:#142235;font-size:.92rem;text-align:right;white-space:nowrap}.detail-booking-row{align-items:center;background:#fff;border:1px solid #dbe4ee;border-left:5px solid #8c9aaa;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(180px,1.5fr) minmax(190px,1.1fr) minmax(100px,auto) auto;padding:10px}.detail-booking-row.status-überfällig{border-left-color:#d84a4a}.detail-booking-main{display:grid;gap:3px;min-width:0}.detail-booking-main strong{color:#142235;line-height:1.2}.detail-booking-main span,.detail-booking-meta{color:#617386;font-size:.76rem;font-weight:750}.detail-booking-meta{display:flex;flex-wrap:wrap;gap:6px}.detail-booking-meta>span:not(.badge){background:#f4f7fb;border-radius:999px;padding:4px 8px}.detail-booking-amount{color:#b33a3a;font-size:.95rem;text-align:right}.detail-booking-actions{display:flex;gap:8px;justify-content:flex-end}.bookings-layout{display:grid;gap:14px}.panel{min-width:0;padding:14px}.form-panel{align-self:start}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.span-2{grid-column:1 / -1}.form-actions,.actions,.table-action-group{display:flex;gap:8px}.form-actions{margin-top:12px}.list-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.list-header p{color:#617386;font-size:.82rem;font-weight:800;margin:4px 0 0}.list-header .list-total-breakdown{color:#6f7f91;font-size:.78rem;font-weight:750}.actions{flex-wrap:wrap;justify-content:flex-end}.search{max-width:220px}.filter-select{max-width:230px}.table-wrap{overflow-x:auto;overflow-y:visible;width:100%}.booking-cards{display:none}table{border-collapse:collapse;table-layout:fixed;width:100%}.booking-table{min-width:1280px}th,td{border-bottom:1px solid #e4ebf2;font-size:.78rem;padding:8px;text-align:left;vertical-align:top;white-space:normal;word-break:break-word}th{background:#f8fafc;color:#506479;font-weight:900;position:sticky;top:0;z-index:1}tr:hover td{background:#fbfdff}.booking-table th:nth-child(1),.booking-table td:nth-child(1){width:25%}.booking-table th:nth-child(2),.booking-table td:nth-child(2){width:8%}.booking-table th:nth-child(3),.booking-table td:nth-child(3),.booking-table th:nth-child(4),.booking-table td:nth-child(4){width:8%}.booking-table th:nth-child(5),.booking-table td:nth-child(5),.booking-table th:nth-child(6),.booking-table td:nth-child(6){width:9%}.booking-table th:nth-child(7),.booking-table td:nth-child(7){width:11%}.booking-table th:nth-child(8),.booking-table td:nth-child(8){width:22%}.booking-table th:nth-child(8),.booking-table td:nth-child(8){background:#fff;box-shadow:-8px 0 16px #1f304414;position:sticky;right:0;z-index:2}.booking-table th:nth-child(8){background:#f8fafc;z-index:3}.table-actions{text-align:right}.table-action-group{align-items:center;flex-wrap:wrap;justify-content:flex-end}.description-cell{display:grid;gap:3px}.description-cell span,.description-cell small,.paid-date{color:#617386;display:block;font-size:.72rem;font-weight:700}.paid-indicator{align-items:center;color:#236a40;display:inline-flex;font-size:.78rem;font-weight:900;min-height:30px;white-space:nowrap}.description-cell small{font-weight:600}.income{color:#2878c7;font-weight:800}.expense{color:#b93636;font-weight:800}.row-danger td,.status-überfällig td{background:#fff5f5}.income-row td{background:#f5faff}.badge{border-radius:999px;display:inline-block;font-size:.74rem;font-weight:900;padding:4px 8px}.badge.bezahlt{background:#dff4e6;color:#236a40}.badge.erwartet,.badge.offen{background:#e5f1ff;color:#1f67aa}.badge.teilbezahlt{background:#fff1cc;color:#8a6300}.badge.überfällig{background:#ffe1e1;color:#a12727}.badge.verschoben,.badge.storniert{background:#edf1f5;color:#5b6875}.booking-card{background:#fff;border:1px solid #dbe4ee;border-left:5px solid #8c9aaa;border-radius:8px;display:grid;gap:10px;padding:12px}.booking-card.income-row,.booking-card.status-erwartet{border-left-color:#2878c7}.booking-card.status-überfällig{border-left-color:#d84a4a}.booking-card-top,.booking-card-footer,.booking-card-actions{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.booking-card-top div{display:grid;gap:3px;min-width:0}.booking-card-top strong:first-child{color:#142235;line-height:1.2}.booking-card-top span,.booking-card-meta,.booking-card-footer,.booking-card p{color:#617386;font-size:.76rem;font-weight:750}.booking-card-meta{display:flex;flex-wrap:wrap;gap:6px}.booking-card-meta span{background:#f4f7fb;border-radius:999px;padding:4px 8px}.booking-card p{margin:0}.forecast-panel{margin-top:14px}.forecast-header{align-items:center;display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.forecast-legend{display:flex;gap:8px;color:#617386;font-size:.78rem;font-weight:800}.legend-positive:before,.legend-negative:before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.legend-positive:before{background:#2878c7}.legend-negative:before{background:#d84a4a}.forecast-chart{display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px}.forecast-axis{color:#617386;display:grid;font-size:.72rem;font-weight:800;height:145px;padding-top:1px}.forecast-axis span:nth-child(1){align-self:start}.forecast-axis span:nth-child(2){align-self:center}.forecast-axis span:nth-child(3){align-self:end}.forecast-bars{align-items:start;display:grid;gap:5px}.forecast-day{align-items:stretch;display:grid;gap:5px;min-width:0}.bar-area{background:#eef3f8;border-radius:5px;height:145px;overflow:hidden;position:relative}.forecast-bar{left:0;position:absolute;display:block;width:100%}.forecast-bar.positive{background:#2878c7;border-radius:5px 5px 0 0;bottom:50%}.forecast-bar.negative{background:#d84a4a;border-radius:0 0 5px 5px;top:50%}.zero-line{background:#96a6b8;height:1px;left:0;position:absolute;right:0;top:50%;z-index:1}.day-label{color:#617386;font-size:.68rem;font-weight:800;text-align:center}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.month-transition-notice{grid-column:span 2}.bookings-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-bars{gap:3px}}@media(max-width:720px){.auth-page{align-items:flex-start;padding:96px 14px 24px}.auth-card{max-width:440px;padding:20px;width:min(342px,calc(100vw - 48px))}.auth-switch{grid-template-columns:1fr}.app-shell{width:min(100% - 20px,1500px);padding-top:12px}.topbar{align-items:flex-start;flex-direction:column}.topbar-controls{justify-content:stretch;width:100%}.topbar-controls label{width:100%}.balances,.metric-grid,.form-grid{grid-template-columns:1fr}.month-transition-notice{grid-column:span 1}.detail-header,.detail-summary{align-items:stretch;flex-direction:column}.detail-booking-row{align-items:stretch;grid-template-columns:1fr}.detail-calculation-row{align-items:flex-start;flex-direction:column}.detail-calculation-row b{text-align:left;white-space:normal}.detail-booking-amount{text-align:left}.table-wrap{display:none}.booking-cards{display:grid;gap:10px}.bar-area{height:110px}.forecast-chart{grid-template-columns:64px minmax(0,1fr)}.forecast-axis{font-size:.65rem;height:110px}.list-header{align-items:stretch;flex-direction:column}.actions,.form-actions,.table-action-group,.detail-booking-actions,.booking-card-actions{flex-direction:column}.search,.filter-select{max-width:none}}
