:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#24372e;background:#f4f5f0;font-synthesis:none;line-height:1.6}*{box-sizing:border-box}body{margin:0}.shell{max-width:1160px;margin:auto;padding:0 40px}header{height:105px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d9e0d5}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:700;font-size:23px;letter-spacing:-.6px;color:#24372e}.brand-mark{background:#264d3c;color:#fff;border-radius:12px;width:39px;height:39px;text-align:center;line-height:35px;font-family:Georgia,serif;font-size:30px}.environment{background:#e5ebdf;padding:5px 13px;border-radius:30px;color:#445a3c;font-size:12px;font-weight:650}.intro{padding:62px 0 32px;max-width:720px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:750;color:#61745f;margin:0 0 16px}h1{font-family:Georgia,serif;font-weight:400;font-size:48px;letter-spacing:-1.6px;line-height:1.14;margin:0 0 22px}.lead{color:#687467;font-size:17px;max-width:550px}.layout{display:grid;grid-template-columns:1.12fr 1fr;gap:24px}.card{background:#fff;border:1px solid #dce3d7;border-radius:18px;padding:36px}.primary{box-shadow:0 12px 35px #263d2c07}h2{font-size:24px;font-weight:650;line-height:1.3;letter-spacing:-.6px;margin:0 0 17px}.card p{color:#606f61}.card .eyebrow{color:#61745f}.primary>p{max-width:390px}button,.button{background:#264d3c;color:#fff;border:1px solid #264d3c;border-radius:8px;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;text-decoration:none;padding:13px 20px;font-size:14px;font-weight:650;font-family:inherit;cursor:pointer;margin-top:14px}button:hover,.button:hover{background:#183b2b}.secondary{background:transparent;color:#264d3c}.secondary:hover{background:#edf1e9}.hint{font-size:12px;margin-top:19px}.overview{background:#edf1e7}ol{list-style:none;padding:0;margin:28px 0 0}li{display:flex;gap:17px;margin-bottom:23px}li:last-child{margin-bottom:0}.number{color:#6c8064;font-size:12px;line-height:24px;font-variant-numeric:tabular-nums}h3{font-size:15px;margin:0}li p{font-size:13px;margin:3px 0 0}.stage{font-size:12px;color:#737f70;margin:23px 0 60px}footer{border-top:1px solid #d9e0d5;padding:23px 0 30px;display:flex;justify-content:space-between;font-size:12px;color:#768170}.notice{display:flex;gap:12px;padding:18px;background:#f2f5ed;border-radius:10px;margin:25px 0}.notice p{font-size:13px;margin:5px 0 0}.notice strong{font-size:14px}.dot{width:8px;height:8px;background:#759761;border-radius:50%;flex-shrink:0;margin-top:8px}.message{margin:70px 0;max-width:780px}.message h1{font-size:37px}.subject{display:block;overflow-wrap:anywhere;background:#edf1e7;padding:16px;border-radius:8px}a:focus-visible,button:focus-visible{outline:3px solid #b67931;outline-offset:4px}@media(max-width:760px){.shell{padding:0 22px}header{height:85px}.brand{font-size:20px}.environment{font-size:10px}.intro{padding-top:40px}h1{font-size:38px}.layout{grid-template-columns:1fr}.card{padding:26px}.stage{margin-bottom:36px}footer{gap:20px}footer span{display:none}}
.history{margin-top:24px}.edit-form{display:grid;gap:18px;max-width:640px}.edit-form label{display:grid;gap:7px}input,textarea{font:inherit;padding:10px;border:1px solid #89998a;border-radius:6px;max-width:100%;background:#fff;color:#24372e}textarea{width:100%;box-sizing:border-box}.edit-form .check{display:flex;align-items:center}.edit-form button{justify-self:start}.inline-form{display:flex;align-items:end;flex-wrap:wrap;gap:16px}.inline-form label{display:grid;gap:5px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:20px;text-align:left}th,td{padding:12px 8px;border-bottom:1px solid #dce3d7;white-space:nowrap}details{padding:18px 0;border-bottom:1px solid #dce3d7}summary{cursor:pointer;font-weight:650}a{color:#264d3c}input:focus-visible,textarea:focus-visible{outline:3px solid #b67931;outline-offset:3px}

select {font:inherit; padding:.65rem; max-width:100%; border:1px solid #aebfc0; border-radius:.45rem; background:white;}
.week-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;}
details {margin:1rem 0;} summary {cursor:pointer;font-weight:600;}

.workspace-nav {display:flex;flex-wrap:wrap;gap:1.5rem;padding:1rem 0;}
.account-page .card {margin-bottom:1.5rem;}
.account-page form:not(.inline-form) {display:grid;gap:1rem;margin:1rem 0;}
.account-page label {display:grid;gap:.4rem;}
.account-page button {justify-self:start;}
.account-page ul li {display:list-item;margin:.4rem 0;}
.account-page .primary>p {max-width:none;}
select:focus-visible {outline:3px solid #b67931;outline-offset:3px;}

.cats-scroll{overflow-x:auto}.cats-table{border-collapse:collapse;white-space:nowrap}.cats-table td{border:1px solid #bbb;padding:.25rem;min-width:2.8rem}.account-page pre{overflow:auto;max-height:24rem}#copy-text{width:100%;white-space:pre}

.description-input {width:100%;box-sizing:border-box;}

.activity-review h1{font-size:28px;margin-bottom:14px;letter-spacing:-.5px}
.activity-review .card{padding:18px;min-width:0;overflow-wrap:anywhere}
.activity-review .review-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:0 0 8px;color:#24372e}
.review-line>*{min-width:0;max-width:100%}.review-description{white-space:pre-wrap}
.review-totals{font-variant-numeric:tabular-nums}
.activity-review .review-details{margin:8px 0;padding:8px 0;font-size:14px}
.activity-review .review-details dd{margin-left:16px}
.activity-review .review-warning{margin:8px 0;padding:8px 12px;border-left:3px solid #b67931;background:#f6f2e9;font-size:14px}
.activity-review .review-warning p{margin:2px 0;color:#24372e}
.activity-review .review-save-note{font-size:12px;margin:8px 0}
.account-page form.review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:12px 0 0}
.review-actions button{margin:0;max-width:100%;white-space:normal}
@media(max-width:480px){.activity-review .card{padding:14px}.activity-review .review-line{gap:4px 12px}.review-description{flex-basis:100%}}

/* One editable control with an integrated personal-value menu. */
.psp-combo { position: relative; min-width: 0; }
.psp-combo input { width: 100%; box-sizing: border-box; padding-right: 3rem; }
.account-page .psp-combo button { position: absolute; right: 0; top: 0; bottom: 0; margin: 0; padding: 0 .85rem; border-radius: 0 .4rem .4rem 0; }
.account-page .psp-combo ul { position: absolute; z-index: 10; top: 100%; left: 0; right: 0; max-height: 16rem; overflow-y: auto; margin: .2rem 0 0; padding: .25rem; border: 1px solid #8795a5; border-radius: .4rem; background: #fff; color: #17212b; box-shadow: 0 4px 12px #0002; }
.account-page .psp-combo ul li { list-style: none; margin: 0; padding: .55rem .65rem; overflow-wrap: anywhere; cursor: pointer; }
.psp-combo li:hover, .psp-combo li[aria-selected="true"] { background: #e4edf6; }
.account-page .psp-combo [hidden] { display: none; }

.day-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin: 1rem 0; }
.day-metrics > div { min-width: 0; padding: 1rem; border: 1px solid #b6cbbd; border-radius: .7rem; background: #f4f8f3; }
.day-metrics span, .day-metrics strong { display: block; }
.day-metrics strong { font-size: clamp(1.5rem, 3vw, 2rem); margin-top: .3rem; overflow-wrap: anywhere; }
.day-edit { margin-top: 1rem; }
.day-edit > summary { cursor: pointer; width: fit-content; }

.day-intro { padding: 24px 0 12px; }
.day-intro h1 { font-size: 2rem; margin-bottom: 12px; }
.day-primary > p { max-width: none; }
.edit-form fieldset { min-width: 0; }
.edit-form input:not([type="checkbox"]) { min-width: 0; width: 100%; }

/* Allow long target labels and editable descriptions to shrink on phones. */
.activity-page, .activity-page .card, .activity-page form, .activity-page label,
.activity-page form > div { min-width: 0; max-width: 100%; }
.activity-page input:not([type="checkbox"]), .activity-page select { min-width: 0; width: 100%; max-width: 100%; }
.activity-page select { text-overflow: ellipsis; }
.activity-page .inline-form > label { max-width: 100%; }
.activity-page .card { overflow-wrap: anywhere; }
.activity-page .activity-summary { padding: 14px 18px; }
.activity-summary h2 { font-size: 18px; margin: 0 0 6px; }
.activity-summary p { margin: 4px 0; }
.activity-summary p:empty { display: none; }
.activity-summary .notice { padding: 8px 12px; }
.activity-summary > a { font-size: 13px; }

.activity-page input.activity-duration { width: 7ch; box-sizing: content-box; max-width: calc(100% - 22px); }
.field-heading { display: flex; align-items: baseline; gap: .4rem; margin-bottom: .4rem; }
.field-help { position: relative; margin: 0; padding: 0; border: 0; font-size: .9rem; }
.account-page .field-help button { display: inline; margin: 0; padding: 0; border: 0; background: transparent; font: inherit; cursor: help; color: #264d3c; }
.field-help > span { display: none; position: absolute; z-index: 20; top: 100%; left: -4rem; width: min(260px, 65vw); padding: .7rem; background: #fff; border: 1px solid #8795a5; border-radius: .4rem; box-shadow: 0 4px 12px #0002; font-weight: normal; }
.field-help:hover > span, .field-help:focus-within > span { display: block; }
.field-help button:focus-visible { outline: 3px solid #b67931; outline-offset: 3px; }

.duration-entry { display: flex; align-items: center; gap: .4rem; min-width: 0; }
.activity-page .duration-entry input.activity-duration { width: 5ch; flex: 0 1 auto; }
.activity-page .duration-entry select { width: 4.5rem; min-width: 0; flex: 0 1 auto; padding: .55rem .25rem; }
.duration-entry [hidden] { display: none; }

.account-page .target-list { list-style: decimal; padding-left: 1.8rem; margin: 1rem 0; }
.account-page .target-list > li { display: list-item; margin: .5rem 0; overflow-wrap: anywhere; }

.day-heading { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.day-heading h2 { margin: 0 .25rem 0 0; }
.day-heading .refresh-button { margin: 0; padding: .25rem .5rem; font-size: .8rem; min-height: 2rem; }
.day-heading .refresh-button[aria-pressed="true"] { background: #e5ebdf; }
.day-heading [hidden] { display: none; }
.refresh-status { font-size: .75rem; color: #606f61; }

/* Compact, accessible navigation on small screens. */
.workspace-nav { display:block; padding:.65rem 0; }
.desktop-workspace-links, .workspace-menu-links { display:flex; flex-wrap:wrap; gap:.65rem 1.2rem; }
.mobile-workspace-menu { display:none; }
.mobile-workspace-menu summary { width:fit-content; padding:.45rem .75rem; border:1px solid #cbd7ca; border-radius:.55rem; color:#264d3c; background:#fff; }
.workspace-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr)); gap:.2rem .8rem; padding:.6rem 0 .2rem; }
.workspace-links a { padding:.35rem .25rem; text-decoration:none; }
.account-dashboard .compact-intro { padding:24px 0 14px; }
.account-dashboard .compact-intro h1 { font-size:2rem; margin:0 0 .5rem; }
.account-dashboard .compact-intro .eyebrow { margin-bottom:.35rem; }
.balance-heading,.month-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.balance-heading h2,.month-heading h2 { margin:0; }
.muted { color:#687467; font-size:.85rem; }
.balance-value { display:flex; align-items:baseline; flex-wrap:wrap; gap:.7rem; margin:.65rem 0 .15rem; font-variant-numeric:tabular-nums; }
.balance-value strong { font-size:clamp(2rem,6vw,3.2rem); line-height:1.12; font-weight:650; letter-spacing:-.04em; }
.balance-value span { color:#606f61; }
.balance-detail { margin:.25rem 0; }
.compact-details { margin:.5rem 0 0; padding:.45rem 0 0; border-top:1px solid #e5e9e1; }
.compact-details summary { font-size:.87rem; }
.help-mark { display:inline-block; color:#476b50; font-size:.85em; cursor:help; }
.today-card { padding:1rem 1.25rem; }
.today-card .balance-heading h2 { font-size:1.15rem; }
.metric-row { display:flex; flex-wrap:wrap; gap:.35rem 1.5rem; padding-top:.5rem; font-size:.93rem; }
.metric-row span { white-space:nowrap; }
.metric-row strong { font-variant-numeric:tabular-nums; }
.today-card .hint { margin:.3rem 0 0; }
.month-heading { margin-bottom:.6rem; }
.month-heading .inline-form { gap:.5rem; }
.month-heading .inline-form label { display:flex; align-items:center; gap:.45rem; }
.month-heading input[type=month] { padding:.42rem; }
.month-heading button { padding:.48rem .75rem; margin:0; }
.month-plan { display:flex; align-items:baseline; flex-wrap:wrap; gap:.2rem .8rem; padding:.55rem .75rem; background:#f3f6f0; border-radius:.55rem; }
.month-plan strong { font-size:1.2rem; font-variant-numeric:tabular-nums; }
.month-plan small { color:#647264; }
.month-stats { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.25rem .75rem; padding:.55rem 0; font-size:.91rem; }
.month-stats strong,.carry-line strong { font-variant-numeric:tabular-nums; }
.month-status,.carry-line { margin:.5rem 0; font-size:.9rem; }
.account-table { min-width:760px; font-size:.88rem; margin-top:.65rem; }
.account-table th,.account-table td { padding:.45rem .5rem; }
.account-table abbr { text-decoration:none; border-bottom:1px dotted #768170; cursor:help; }
.settings-card { padding:1rem 1.25rem; }
.settings-card > summary { font-size:1rem; }
.settings-card section { padding-top:.4rem; }
.settings-card section h2 { font-size:1.1rem; margin-bottom:.3rem; }
.settings-card section p { margin:.4rem 0; }
@media(max-width:760px) {
  .desktop-workspace-links { display:none; }
  .mobile-workspace-menu { display:block; margin:.35rem 0; padding:0; border:0; }
  .mobile-workspace-menu[open] { padding:.3rem .55rem; border:1px solid #dce3d7; border-radius:.65rem; background:#fff; }
  .mobile-workspace-menu > summary { font-size:.9rem; }
  .workspace-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .account-dashboard .card { padding:1rem; }
  .account-dashboard .compact-intro { padding:1.2rem 0 .6rem; }
  .account-dashboard .compact-intro h1 { font-size:1.8rem; }
  .month-heading { align-items:flex-start; }
  .month-heading .inline-form { width:100%; }
  .month-heading .inline-form label { flex:1; justify-content:space-between; }
  .month-heading input[type=month] { min-width:0; }
}

.settings-page form { display:grid; gap:.8rem; max-width:34rem; }
.settings-page form label { display:grid; gap:.35rem; }
.settings-page select { font:inherit; padding:.6rem; max-width:100%; }
.settings-page .danger-card { border-color:#c98a7d; }
.settings-page .danger-button { background:#8c3026; border-color:#8c3026; }
.settings-page .danger-button:hover { background:#6f211a; }
.settings-page ul { padding-left:1.3rem; }
.settings-page li { display:list-item; margin:.2rem 0; }
.settings-page input[name="confirmation"] { width:min(100%,28rem); }
@media(max-width:480px){.settings-page .card{padding:1rem}.settings-page button{max-width:100%;white-space:normal}}

/* Historical imports contain long descriptions and source references. */
.legacy-import-table { min-width:950px; table-layout:fixed; }
.legacy-import-table th, .legacy-import-table td { white-space:normal; overflow-wrap:anywhere; vertical-align:top; }
.legacy-import-table th:first-child { width:14%; }
.legacy-import-table th:nth-child(3) { width:14%; }
.legacy-import-table p { margin:.35rem 0; }

.import-key-data { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.import-key-data div { padding:.8rem; background:#f3f5f4; border-radius:.5rem; }
.import-key-data dt { font-size:.9rem; }
.import-key-data dd { margin:.25rem 0 0; font-weight:600; overflow-wrap:anywhere; }
[data-import-review] { margin:1rem 0; }
[data-import-review] [data-import-filter-control] { margin:.8rem 0; }
@media(max-width:640px) { .import-key-data { grid-template-columns:repeat(2,minmax(0,1fr)); } }
[data-import-review] [data-import-filter-control][hidden], [data-import-review] [data-import-row][hidden] { display:none; }

/* Shared page headings follow the compact Arbeitstag header. */
main h1, .message h1, .activity-review h1 { font-size: 2rem; margin-bottom: 12px; letter-spacing: -1.6px; }
main .intro, .account-dashboard .compact-intro, main .page-header { padding: 24px 0 12px; max-width: none; }
main .intro .eyebrow, .account-dashboard .compact-intro .eyebrow { margin: 0 0 16px; }
