:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17211b;background:#f3f6f3}
*{box-sizing:border-box}
html,body{height:100%;margin:0;max-width:100%;overflow:hidden;width:100%}
html{background:#f3f6f3}
body{inset:0;overscroll-behavior:none;position:fixed}
#app{height:100%;overflow:hidden;position:relative;width:100%}
.capture{-webkit-overflow-scrolling:touch;height:100%;margin:auto;max-width:680px;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:28px 18px 110px;width:100%}
form,section,label{max-width:100%;min-width:0;width:100%}
header{padding:18px 2px 22px}
.eyebrow{font-size:.72rem;letter-spacing:.16em;color:#35704b;font-weight:800}
h1{font-size:2rem;margin:.3rem 0}
h2{font-size:1rem;margin:0 0 14px}
p,small{color:#667068}
section,form>label{background:#fff;border:1px solid #dfe7df;border-radius:16px;padding:18px;margin-bottom:14px;display:block;box-shadow:0 4px 18px #1a3b2510}
label{font-size:.84rem;font-weight:700;color:#35453a}
.optional{color:#778078;font-weight:500}
input,textarea,select{font-family:inherit;font-size:16px;max-width:100%;min-width:0;width:100%;margin-top:7px;padding:13px;border:1px solid #bdc9c0;border-radius:10px;background:#fff}
textarea{min-height:90px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
button{border:0;border-radius:12px;padding:14px 16px;font-weight:800;font-size:.95rem}
.primary{background:#185f37;color:#fff}
.secondary{background:#e2ece5;color:#174d2d}
.clear-link{background:transparent;color:#8a332d;font-size:.78rem;margin-left:6px;padding:4px}
.clear-project{background:transparent;color:#8a332d;display:block;font-size:.78rem;margin:-4px 0 14px auto;padding:4px 0}
.date-entry{align-items:end;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%}
.date-entry input{min-width:0}
.date-today{background:#e2ece5;color:#174d2d;padding:13px 12px;white-space:nowrap}
.message{padding:14px;border-radius:12px;background:#e8f3eb;color:#185f37;font-weight:700}
.search-results{border:1px solid #cbd8ce;border-radius:12px;margin:8px 0 14px;overflow:hidden;position:relative;z-index:1}
.search-result{align-items:center;background:#fff;border-bottom:1px solid #e4ebe5;border-radius:0;display:flex;gap:8px;justify-content:space-between;max-width:100%;min-width:0;text-align:left;width:100%}
.search-result span{min-width:0;overflow-wrap:anywhere}
.search-result:last-child{border-bottom:0}
.search-result:hover{background:#eef5f0}
.search-result small{font-weight:500}
.selected{color:#185f37;display:block;margin:-5px 0 14px;font-weight:800}
.field-error{background:#fff2f2;border-radius:8px;color:#a12622;font-size:.85rem;padding:10px}
.file-list{border-top:1px solid #e3e9e4;margin-top:14px;padding-top:8px}
.file-row{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:7px 0}
.file-row>span{font-size:.82rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-row>div{display:flex;flex-shrink:0;gap:4px}
.file-action{background:#e2ece5;color:#174d2d;font-size:.78rem;padding:7px 9px}
.file-action.danger{background:#f8e9e7;color:#8a332d}
.saved-drafts-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}
.saved-drafts-heading h2{margin:0}
.saved-draft{align-items:center;border-top:1px solid #e3e9e4;display:flex;gap:10px;justify-content:space-between;padding:11px 0}
.saved-draft.active{border-left:4px solid #185f37;padding-left:9px}
.saved-draft>div:first-child{display:flex;flex-direction:column;min-width:0}
.saved-draft>div:last-child{display:flex;flex-shrink:0;gap:4px}
.saved-draft span,.saved-draft small{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-welcome .status-dot{background:#28a35a;border-radius:50%;display:inline-block;height:9px;margin-right:7px;width:9px}.dashboard-welcome .status-dot.offline{background:#d38a25}.dashboard-welcome p{margin:8px 0 0}
.dashboard-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.dashboard-card{align-items:flex-start;background:#fff;border:1px solid #dfe7df;box-shadow:0 4px 18px #1a3b2510;color:#17211b;display:flex;flex-direction:column;min-height:145px;padding:18px;text-align:left}.dashboard-card.primary-card{background:#185f37;color:#fff}.dashboard-card.primary-card small{color:#d9eadf}.dashboard-icon,.dashboard-count{font-size:1.55rem;line-height:1;margin-bottom:auto}.dashboard-card strong{font-size:1rem;margin-top:22px}.dashboard-card small{font-weight:500;margin-top:4px}
.bottom-nav{background:#fff;border-top:1px solid #dbe4dc;bottom:0;box-shadow:0 -5px 18px #00000010;display:grid;grid-template-columns:repeat(4,1fr);left:0;padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right));position:absolute;right:0;z-index:1000}.bottom-nav button{align-items:center;background:transparent;color:#68736b;display:flex;flex-direction:column;font-size:.72rem;gap:2px;padding:5px}.bottom-nav button>span{font-size:1.25rem;line-height:1}.bottom-nav button.active{color:#185f37}.nav-draft-icon{align-items:center;background:#edf2ee;border-radius:10px;display:flex;font-size:.72rem!important;height:20px;justify-content:center;min-width:24px;padding:0 5px}.bottom-nav button.active .nav-draft-icon{background:#185f37;color:#fff}
.offline-banner{background:#9a5a12;bottom:calc(67px + env(safe-area-inset-bottom));color:#fff;font-size:.78rem;font-weight:800;left:0;padding:7px 12px;position:fixed;text-align:center;width:100%;z-index:999}
.settings-card h2{margin-bottom:8px}.setting-row{align-items:center;border-bottom:1px solid #e7ece8;display:flex;gap:12px;justify-content:space-between;padding:11px 0}.setting-row span{color:#667068}.setting-row strong{text-align:right}.status-good{color:#185f37}.status-warn{color:#9a5a12}.setting-button{margin-top:14px;width:100%}.danger-button{background:#f8e9e7;color:#8a332d}
.crop-overlay{align-items:center;background:#000b;display:flex;inset:0;justify-content:center;padding:12px;position:fixed;z-index:2000}
.review-overlay{align-items:center;background:#000b;display:flex;inset:0;justify-content:center;overflow:hidden;padding:12px;position:fixed;z-index:1900}
.review-panel{background:#fff;border-radius:16px;max-height:calc(100dvh - 24px);max-width:680px;min-width:0;overflow-x:hidden;overflow-y:auto;padding:18px;width:100%}
.review-title{align-items:flex-start;display:flex;justify-content:space-between}.review-title h2{font-size:1.25rem;margin:3px 0 14px}
.review-summary{background:#f4f7f4;border-radius:12px;padding:10px 14px}.review-summary>div,.review-totals>div,.review-files{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;padding:6px 0}.review-summary span,.review-totals span,.review-files span{color:#667068}.review-summary strong{text-align:right}
.review-panel h3{font-size:.9rem;margin:16px 0 6px}.review-line{align-items:center;border-bottom:1px solid #e3e9e4;display:flex;gap:10px;justify-content:space-between;padding:9px 0}.review-line>div{display:flex;flex-direction:column;min-width:0}.review-line small{font-size:.78rem}.review-line>strong{white-space:nowrap}
.review-totals{margin-top:12px}.review-totals .grand-total{border-top:2px solid #cbd8ce;font-size:1.05rem;margin-top:4px;padding-top:12px}.review-files{border-top:1px solid #e3e9e4;margin-top:8px;padding-top:12px}
.draft-warning{background:#eef5f0;border-radius:10px;color:#174d2d;font-size:.83rem;font-weight:700;padding:11px}.review-actions{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:14px}
.submission-progress{align-items:center;background:#f0f6f2;border-radius:10px;color:#174d2d;display:flex;font-size:.84rem;font-weight:700;gap:9px;margin-top:10px;padding:11px}.progress-spinner{animation:spin .8s linear infinite;border:3px solid #c6ddce;border-radius:50%;border-top-color:#185f37;height:18px;width:18px}@keyframes spin{to{transform:rotate(360deg)}}
.crop-panel{background:#fff;border-radius:16px;max-height:calc(100vh - 24px);max-width:720px;overflow:auto;padding:16px;width:100%}
.crop-panel p{font-size:.85rem;margin:0 0 10px}
#invoice-crop-canvas{background:#111;display:block;height:auto;max-height:65vh;max-width:100%;width:100%}
.crop-actions{display:grid;gap:8px;grid-template-columns:1fr 1fr 1fr;margin-top:12px}
.line-heading,.totals>div,.line-breakdown>div{align-items:center;display:flex;justify-content:space-between}
.line-heading h2{margin:0}
.icon-button{background:#edf2ee;border-radius:8px;margin-left:4px;padding:7px 10px}
.icon-button:disabled{opacity:.35}
.icon-button.danger{color:#992f28}
.line-mode,.amount-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:14px 0}
.line-mode button,.amount-mode button{background:#edf2ee;color:#526158}
.line-mode .mode-active,.amount-mode .mode-active{background:#185f37;color:#fff}
.line-breakdown{border-top:1px solid #e3e9e4;margin-top:14px;padding-top:8px}
.line-breakdown>div{padding:4px 0}
.totals>div{padding:8px 0}
.totals .grand-total{border-top:2px solid #cbd8ce;font-size:1.1rem;margin-top:5px;padding-top:14px}
#blazor-error-ui{display:none;background:#fff3cd;bottom:0;box-shadow:0 -1px 8px #0003;color:#664d03;left:0;padding:12px 18px;position:fixed;width:100%;z-index:1000}
#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:14px;top:10px}
@media(max-width:420px){
  .capture{padding:18px 12px 64px}
  .capture{padding-bottom:105px}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-card{min-height:132px;padding:14px}
  section,form>label{padding:14px}
  .grid,.actions{grid-template-columns:1fr}
  .line-mode,.amount-mode{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .line-mode button,.amount-mode button{font-size:.82rem;padding:11px 7px;overflow-wrap:anywhere}
  .crop-actions{grid-template-columns:1fr 1fr}.crop-actions .primary{grid-column:1/-1;grid-row:1}
  .review-overlay{align-items:stretch;background:#fff;padding:0}
  .review-panel{border-radius:0;height:100dvh;max-height:100dvh;max-width:none;padding:14px 14px 96px;width:100vw}
  .review-title{background:#fff;position:sticky;top:-14px;z-index:2;padding:14px 0 8px}
  .review-summary>div{align-items:flex-start;flex-direction:column;gap:2px}.review-summary strong{text-align:left;overflow-wrap:anywhere;width:100%}
  .review-line{align-items:flex-start}.review-line>div{max-width:72%}.review-line strong,.review-line small{overflow-wrap:anywhere;white-space:normal}
  .review-actions{background:#fff;border-top:1px solid #dfe7df;bottom:0;box-shadow:0 -6px 18px #00000012;grid-template-columns:1fr;margin:0 -14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));position:fixed;width:100%}
  .date-entry{grid-template-columns:1fr}
  .date-today{width:100%}
  h1{font-size:1.7rem}
}
