/* My Income inherits the accepted Shell's typography, color tokens and layout. */
.income-page{margin:-2px -2px 0}.income-page button,.income-dialog input,.income-dialog textarea,.income-page input,.income-page select{font:inherit}.income-calendar{background:white;border:1px solid var(--line);border-radius:19px;padding:15px 11px 4px;user-select:none}.income-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 3px 13px}.income-calendar-toolbar h1{margin:0;font-size:1.1875rem;letter-spacing:-.02em;font-weight:720;white-space:nowrap}.income-calendar-toolbar h1 span{font-size:0.75rem;font-weight:500;color:var(--muted);margin:0 2px}.income-calendar-tools{display:flex;align-items:center;gap:2px}.income-calendar-tools button{background:none;border:0;color:#6f819b;border-radius:9px;min-width:34px;height:36px;display:grid;place-items:center}.income-calendar-tools button svg{width:19px;height:19px}.income-calendar-tools .income-today{font-size:0.6875rem;color:var(--blue);background:var(--blue-soft);padding:0 10px;margin-right:4px;height:29px}.income-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));font-size:0.625rem;color:#96a0b1;text-align:center;margin-bottom:8px}.income-weekdays span:nth-last-child(-n+2){color:#7794c3}.income-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 0}.income-day{position:relative;border:0;background:none;min-width:0;min-height:54px;padding:7px 0 6px;border-radius:11px;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:5px}.income-day strong{font-size:0.875rem;font-weight:600}.income-day small{font-size:0.5rem;font-weight:500;color:#91a1b7;white-space:nowrap}.income-day.outside strong{color:#a7b3c4}.income-day.selected{background:var(--blue);color:white;box-shadow:0 3px 8px #105cff24}.income-day.selected small{color:#dfeaff}.income-day i{width:3px;height:3px;border-radius:50%;background:var(--blue);position:absolute;bottom:3px}.income-day.selected i{background:white}.income-calendar-bottom{display:flex;justify-content:space-between;align-items:center;font-size:0.5625rem;color:#96a1b3;padding:2px 4px 0;gap:8px}.income-calendar-bottom button{min-height:34px;display:flex;align-items:center;gap:6px;font-size:0.625rem;border:0;background:none;color:#7187aa;padding:5px}.income-calendar-bottom button span{font-size:0.9375rem}
.income-locations{margin:12px 0 18px}.income-location-strip{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:none;overscroll-behavior-x:contain}.income-location-strip::-webkit-scrollbar{display:none}.income-location{min-height:34px;flex-shrink:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #e3e9f2;border-radius:10px;background:white;padding:7px 13px;font-size:0.6875rem!important;color:#7b8a9f}.income-location.selected{color:white;border-color:var(--blue);background:var(--blue)}.income-add{font-size:1.25rem!important;line-height:1;padding:4px 12px;color:#7a8fab}.income-add:disabled{opacity:.4}
.income-input-panel,.income-records{background:white;border:1px solid var(--line);border-radius:18px;padding:17px 15px}.income-section-heading{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:13px}.income-section-heading h2{font-size:0.875rem;letter-spacing:.01em;margin:0;font-weight:650}.income-section-heading>span{font-size:0.5625rem;color:#9ba7b7;font-weight:500}.income-kind-tabs{display:flex;gap:4px;padding:3px;background:#f3f6fb;border-radius:9px;margin-bottom:12px}.income-kind-tabs button{flex:1;min-height:32px;border:0;background:none;border-radius:7px;font-size:0.6875rem;color:#8794a8;font-weight:500}.income-kind-tabs button[aria-pressed=true]{background:white;box-shadow:0 1px 5px #243a6010;color:var(--blue)}.income-kind-tabs button:disabled{opacity:.4}.income-entry-context{display:flex;align-items:center;gap:8px;font-size:0.625rem;color:#8494aa;margin-bottom:9px;min-height:22px}.income-entry-context>span+span:before{content:"·";margin-right:8px;color:#bac4d1}.income-entry-context select{max-width:70%;min-height:30px;font-size:0.6875rem;border:1px solid #e2e9f4;border-radius:7px;background:white;padding:3px 7px;color:#6e83a2}.income-amount-row{display:flex;align-items:stretch;gap:10px}.income-amount{display:flex;align-items:center;gap:6px;flex:1;min-width:0;border:1px solid #e2e9f4;border-radius:11px;padding:9px 11px;background:#fafcff}.income-amount>span[aria-hidden]{font-size:1.375rem;color:#8ca0be}.income-amount input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:1.5rem;font-weight:650;color:var(--ink);letter-spacing:-.04em;padding:2px 0}.income-amount input::placeholder{color:#b4c0d2;font-weight:500}.income-amount:focus-within{border-color:#93b4ff;box-shadow:0 0 0 3px #105cff09}.income-save{border:1px solid var(--blue);background:var(--blue);color:white;border-radius:11px;font-size:0.6875rem;min-width:84px;padding:12px 10px;font-weight:600}.income-save:disabled{opacity:.4}.income-note-field{display:block;margin-top:10px}.income-note-field input{width:100%;background:none;border:0;border-bottom:1px solid #edf1f6;padding:8px 0;font-size:0.625rem;color:#6a7d98;outline-offset:3px}.income-note-field input::placeholder{color:#aab5c5}.income-form-footnote{font-size:0.5625rem;color:#a3adbc;line-height:1.6;margin:9px 0 0}.income-inline-error{font-size:0.6875rem;color:var(--danger);line-height:1.5;margin:7px 0 0}.income-inline-error:empty{display:none}
.income-records{margin-top:17px}.income-records .income-section-heading{margin-bottom:6px}.income-record-scope{color:#9aa6b8;font-size:0.5625rem;margin:0 0 13px}.income-source-group{margin-top:11px}.income-source-group h3{display:flex;align-items:center;gap:7px;font-size:0.625rem;color:#7b8da8;font-weight:550;margin:0;background:#f7f9fc;border-radius:6px;padding:7px 9px}.income-source-group h3 span{color:#a7b4c7;font-weight:400}.income-record{padding:11px 2px;border-bottom:1px solid #f0f3f7}.income-record:last-child{border-bottom:0}.income-record-main{display:flex;align-items:center;justify-content:space-between;gap:10px}.income-record-copy{min-width:0}.income-record-copy>strong{display:block;font-size:0.75rem;font-weight:550;overflow-wrap:anywhere}.income-record-copy>span{display:flex;align-items:center;gap:4px;font-size:0.5625rem;color:#9ba8ba;margin-top:6px;line-height:1.6;overflow-wrap:anywhere}.income-kind-dot{width:4px;height:4px;border-radius:50%;background:var(--blue);flex-shrink:0}.income-kind-dot.revenue{background:#9aaabd}.income-record-value{text-align:right;flex-shrink:0}.income-record-value>strong{display:block;font-size:0.9375rem;letter-spacing:-.02em;font-weight:650}.income-record-value>strong.income{color:var(--blue)}.income-record-value>strong.revenue{color:#526681}.income-record-value>button{display:block;margin-left:auto;padding:5px 0 2px 10px;min-height:26px;font-size:0.5625rem;color:#8ca0bd;background:none;border:0}.income-totals{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:15px;margin-top:10px;border-top:1px solid #e8eef6}.income-totals>div+div{border-left:1px solid #e8eef6;padding-left:16px}.income-totals span{font-size:0.5625rem;color:#9aa6b8;display:block;margin-bottom:6px}.income-totals strong{font-size:1.25rem;letter-spacing:-.035em;color:var(--blue);font-weight:650}.income-totals>div+div strong{color:#526681}.income-records-footnote{font-size:0.5rem;color:#a3aebd;text-align:center;margin:13px 0 0}.income-demo-label{display:block;text-align:center;color:#aab4c3;font-size:0.5rem;margin:6px 0 0}.income-history{margin-top:8px;font-size:0.5625rem;color:#a2acba}.income-history summary{cursor:pointer;padding:5px 0;min-height:26px}.income-old-version{background:#f6f7fa;border-radius:7px;padding:9px;margin-top:6px;color:#9da8b7}.income-old-version>span{text-decoration:line-through}.income-old-version p{margin:6px 0 0;line-height:1.7;overflow-wrap:anywhere}.income-empty{font-size:0.75rem;text-align:center;color:#8b9bb2;padding:20px 0;line-height:2}.income-empty span{font-size:0.625rem;color:#aab4c2}.income-dialog{width:min(360px,calc(100vw - 32px));max-height:85dvh;overflow:auto;border-radius:22px;padding:24px;box-shadow:0 18px 75px #21314d35}.income-dialog h2{font-size:1.1875rem;margin:0 0 14px}.income-dialog-context{font-size:0.6875rem;color:#8c9cb2;line-height:1.7;margin:0 0 18px;overflow-wrap:anywhere}.income-dialog label{display:block;font-size:0.75rem;color:#5f7490;margin-top:15px}.income-dialog label>span{font-size:0.625rem;color:#a5afbd;margin-left:4px}.income-dialog input,.income-dialog textarea{display:block;width:100%;max-width:100%;margin-top:8px;border:1px solid #dce5f2;border-radius:10px;background:#fafcff;color:var(--ink);padding:12px;font-size:0.875rem;resize:vertical}.income-dialog-hint{font-size:0.625rem;color:#a3aebc;line-height:1.7;margin:13px 0}.income-dialog-actions{display:flex;gap:10px;margin-top:20px}.income-dialog-actions button{flex:1}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:359px){.income-calendar{padding-left:7px;padding-right:7px}.income-day small{font-size:0.4375rem}.income-input-panel,.income-records{padding:14px 12px}.income-save{min-width:76px;padding:12px 8px}.income-totals strong{font-size:1.125rem}}

/* Concentrated UI adjustment: accepted Shell stays byte-for-byte unchanged. */
main.income-main{padding:0;overflow:hidden;min-height:0}
.income-main .income-page{height:100%;margin:0;display:flex;flex-direction:column;overflow:hidden}
.income-calendar-slot{position:relative;flex:0 0 118px;z-index:3}
.income-calendar-slot .income-calendar{position:absolute;inset:0 0 auto;border:0;border-radius:0 0 18px 18px;padding:8px 16px 9px;background:white;box-shadow:0 3px 7px #203d6b04}
.income-calendar.is-expanded{box-shadow:0 12px 25px #21365120}
.income-calendar-toolbar{padding:0 1px 6px}
.income-month-button{padding:0;background:none;border:0;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;min-height:34px}
.income-calendar-tools button{height:34px;min-width:33px}
.income-weekdays{margin-bottom:4px}
.income-day{min-height:40px;padding:4px 0;gap:3px}
.income-days{gap:2px 0}
.income-day strong{font-size:0.8125rem}.income-day small{font-size:0.5rem}
.income-calendar.is-expanded .income-day{min-height:34px;padding:3px 0;gap:2px}
.income-calendar.is-expanded .income-day strong{font-size:0.75rem}
.income-calendar.is-expanded .income-day small{font-size:0.4375rem}
.income-main .income-locations{flex:0 0 42px;margin:0 12px;min-width:0}
.income-location-strip{height:100%;padding:4px 0;gap:6px}
.income-location{min-height:30px;padding:6px 11px;font-size:0.6875rem!important;border-radius:9px}
.income-main .income-input-panel{flex:0 0 auto;margin:0 12px;padding:9px 11px;border-radius:14px}
.income-kind-tabs{margin-bottom:5px;padding:2px}.income-kind-tabs button{min-height:27px;font-size:0.6875rem}
.income-entry-context{min-height:18px;margin-bottom:5px;font-size:0.625rem}
.income-entry-context select{min-height:24px;padding:2px 5px;font-size:0.625rem}
.income-amount{padding:6px 9px;border-radius:10px}.income-amount input{font-size:1.375rem;padding:2px 0}
.income-save{min-width:84px;padding:9px 10px;font-size:0.75rem;border-radius:10px}
.income-note-row{display:flex;align-items:center;gap:8px;margin-top:6px}
.income-note-row .income-note-field{flex:1;min-width:0;margin:0}
.income-note-field input{border:0;padding:6px 0;font-size:0.6875rem;min-height:30px}
.income-rest{min-height:30px;padding:5px 11px;color:#6d85a9;font-size:0.625rem;border:1px solid #e3eaf4;background:#f8faff;border-radius:8px}
.income-main .income-records{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin:9px 12px 11px;padding:0;border-radius:15px;touch-action:pan-y}
.income-main .income-totals{flex:0 0 auto;margin:0;padding:11px 12px 8px;border:0;gap:12px}
.income-main .income-totals>div+div{padding-left:12px}
.income-totals strong{font-size:1.1875rem}.income-totals span{font-size:0.5625rem;margin-bottom:4px}
.income-today-heading{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;gap:8px;padding:7px 12px;border-top:1px solid #edf1f7;border-bottom:1px solid #f1f4f8}
.income-today-heading h2{font-size:0.6875rem;font-weight:600;margin:0}.income-today-heading>span{font-size:0.5rem;color:#a4afc0}
.income-today-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:0 11px 8px}
.income-today-list .income-source-group{margin-top:6px}.income-today-list .income-source-group h3{padding:4px 6px;font-size:0.5625rem}
.income-today-list .income-record{padding:7px 1px}.income-today-list .income-record-copy>strong{font-size:0.6875rem}
.income-today-list .income-record-copy>span{font-size:0.5rem;margin-top:3px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:210px}
.income-today-list .income-record-value>strong{font-size:0.875rem}.income-today-list .income-record-main{gap:5px}
.income-today-list .income-record-copy{flex:1;overflow:hidden}
.income-page-header{display:flex;align-items:center;gap:10px;margin:0 0 14px;min-height:40px}
.income-page-header h1{font-size:1.3125rem;margin:0;letter-spacing:-.03em}
.income-export-entry{margin-left:auto;border:1px solid #d9e5ff;border-radius:10px;padding:9px 13px;background:var(--blue-soft);color:var(--blue);font-size:0.75rem;min-height:40px}
.all-records-caption{font-size:0.6875rem;line-height:1.7;color:#8e9eb4;margin:0 0 22px}
.income-date-group{margin:20px 0}.income-date-group>h2{font-size:0.8125rem;color:#5779ad;margin:0 0 10px 11px;font-weight:600}
.income-date-bracket{position:relative;border-left:2px solid #c4dbfb;padding:3px 0 3px 11px;margin-left:3px}
.income-date-bracket:before,.income-date-bracket:after{content:"";position:absolute;left:-2px;width:9px;height:2px;background:#c4dbfb}
.income-date-bracket:before{top:0}.income-date-bracket:after{bottom:0}
.income-date-bracket .income-source-group{background:white;margin:0 0 8px;padding:6px 9px;border-radius:11px;border:1px solid #edf1f7}
.income-date-bracket .income-source-group:last-child{margin-bottom:0}
.income-date-bracket .income-source-group h3{background:none;padding:4px 1px;font-size:0.625rem}
.income-record.editable{cursor:pointer;padding:10px 1px;border-radius:6px}.income-record.editable:active{background:#f3f7ff}
.income-record.editable .income-record-copy>span{display:block;line-height:1.7;font-size:0.5625rem}
.income-record.editable .income-record-copy>strong{font-size:0.75rem}
.record-edit-hint{display:block;color:#99abc4;font-size:0.5625rem;margin-top:5px}
.income-item+.income-item{border-top:1px solid #f0f3f7}.income-item .income-record{border-bottom:0}
.income-old-version span{text-decoration:line-through}.income-date-bracket .income-history{padding:0 2px 5px}
.income-export-page fieldset{min-width:0;margin:0 0 14px;padding:13px;background:white;border:1px solid var(--line);border-radius:14px}
.income-export-page legend{font-size:0.75rem;color:#617994;padding:0 5px;font-weight:550}
.export-demo-notice{font-size:0.6875rem;color:#8a9db7;margin:0 0 21px;line-height:1.7}
.income-filter-choices{display:flex;flex-wrap:wrap;gap:7px}
.income-filter-choices label{display:flex;align-items:center;gap:5px;min-height:36px;font-size:0.6875rem;color:#70839e;background:#f7f9fc;border-radius:8px;padding:6px 9px;cursor:pointer}
.income-filter-choices input,.income-time-mode input,.income-history-option input{accent-color:var(--blue);width:15px;height:15px;margin:0}
.income-filter-choices label:has(input:checked){background:var(--blue-soft);color:var(--blue)}
.income-time-mode{display:flex;gap:21px;margin-bottom:14px;font-size:0.75rem;color:#7c90a8}.income-time-mode label{display:flex;align-items:center;gap:7px;min-height:26px}
.income-date-inputs{display:flex;gap:12px;min-width:0}.income-date-inputs label{font-size:0.625rem;color:#9aaabd;flex:1;min-width:0}
.income-date-inputs input{display:block;min-width:0;width:100%;min-height:39px;margin-top:7px;font-size:0.75rem;color:#4d6485;background:#fafcff;border:1px solid #e0e8f3;padding:7px;border-radius:8px}
.income-history-option{display:flex;gap:8px;align-items:center;font-size:0.6875rem;color:#7187a5;min-height:38px}
.export-wage-note{font-size:0.625rem;color:#a0adbf;line-height:1.7;margin:6px 0 17px}
.export-result-count{font-size:0.6875rem;color:#8094af;margin:15px 0 8px}
.export-totals{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:13px 0;border:0}.export-totals>div{flex:1;min-width:80px}.export-totals>div+div{padding-left:10px}.export-totals strong{font-size:1.0625rem}.export-totals small{display:block;font-size:0.5625rem;color:#9aaabd;margin-top:5px}
.income-download{margin:14px 0 5px}.income-download:disabled{opacity:.4;cursor:default}
@media(max-height:700px){.income-calendar-slot{flex-basis:102px}.income-calendar-slot .income-calendar{padding-top:5px;padding-bottom:6px}.income-calendar-tools button,.income-month-button{height:30px;min-height:30px}.income-calendar-toolbar{padding-bottom:3px}.income-day{min-height:34px;padding:3px 0;gap:2px}.income-day strong{font-size:0.75rem}.income-day small{font-size:0.4375rem}.income-weekdays{margin-bottom:2px}.income-main .income-locations{flex-basis:38px}.income-main .income-input-panel{padding:7px 10px}.income-kind-tabs button{min-height:25px}.income-note-row{margin-top:3px}.income-main .income-records{margin-top:7px;margin-bottom:7px}.income-main .income-totals{padding:8px 10px 6px}.income-main .income-totals strong{font-size:1.0625rem}.income-today-heading{padding:6px 10px}}
@media(max-width:359px){.income-calendar-slot .income-calendar{padding-left:10px;padding-right:10px}.income-main .income-locations{margin-inline:10px}.income-main .income-input-panel{margin-inline:10px}.income-main .income-records{margin-inline:10px}.income-today-list .income-record-copy>span{max-width:164px}.income-source-group .income-record-value>strong{font-size:0.8125rem}.income-page-header h1{font-size:1.25rem}}
/* Personal employer/location editor; accepted main-page structure is retained. */
main.income-main.income-preset-main{padding:10px 14px;overflow:hidden}.income-preset-page{height:100%;min-height:0;display:flex;flex-direction:column;gap:9px;color:var(--ink)}.income-preset-page>header{display:flex;align-items:center;gap:10px;flex:none}.income-preset-page h1{font-size:1.1875rem;margin:0}.income-preset-page .back-button{width:33px;height:33px;padding:7px}.income-preset-caption{font-size:0.625rem;color:var(--muted);margin:0;flex:none}.income-preset-page form{display:flex;flex:1;min-height:0;flex-direction:column;gap:9px}.income-preset-fields{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto;overscroll-behavior:contain}.income-preset-fields>section{border:1px solid var(--line);background:var(--white);border-radius:12px;padding:13px;flex:none}.income-preset-fields h2{margin:0 0 10px;font-size:1rem}.income-preset-tabs{display:flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:12px}.income-preset-tabs button{flex:1;border:0;background:var(--surface);color:var(--muted);padding:8px;font-size:0.75rem;min-height:34px}.income-preset-tabs button[aria-pressed=true]{background:var(--blue);color:white}.income-preset-tabs button:disabled{opacity:.4}.income-preset-fields label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:0.6875rem;margin-top:10px}.income-preset-fields input,.income-preset-fields select{width:100%;min-width:0;box-sizing:border-box;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);padding:8px;font:inherit;font-size:0.875rem}.income-preset-fields small{display:block;font-size:0.5625rem;color:var(--muted);margin-top:9px;line-height:1.5}.income-rate-field{display:flex;align-items:center;gap:10px}.income-rate-field input{flex:1;width:0}.income-rate-field b{font-size:1rem;padding-right:9px;font-weight:500;color:var(--ink)}.income-preset-fields p{font-size:0.6875rem;line-height:1.7;color:var(--muted);margin:0}.income-preset-page form>.primary-button{flex:none;min-height:40px;width:100%;font-size:0.875rem}.income-preset-footer{font-size:0.5625rem;color:var(--muted);text-align:center;flex:none}.income-calculation{font-size:0.625rem;color:var(--blue);margin:5px 0 1px;line-height:1.5}.income-record-value>small{display:block;font-size:0.5625rem;color:var(--muted);margin-top:4px;line-height:1.4}.income-entry-context>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.income-preset-page .income-inline-error:empty{display:none}
@media(max-height:740px){.income-preset-fields>section{padding:10px}.income-preset-fields h2{font-size:0.875rem;margin-bottom:7px}.income-preset-tabs{margin-bottom:8px}.income-preset-fields label{margin-top:7px}.income-preset-fields input,.income-preset-fields select{min-height:33px;padding:6px}.income-preset-page{gap:7px}}
.income-preset-fields{gap:8px}.income-preset-fields>section{padding:11px}.income-preset-fields h2{margin-bottom:8px}.income-preset-fields label{margin-top:8px}.income-preset-tabs{margin-bottom:10px}

.income-hour-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.income-hour-fields label{display:grid;gap:4px;min-width:0;color:var(--ink);font-size:.75rem}
.income-hour-fields input{width:100%;min-width:0;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--ink);font:inherit;font-size:1rem}
.income-hour-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px}
.income-hour-footer .income-calculation{margin:0}
