*{box-sizing:border-box}
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173047;background:#f1f5f9;font-synthesis:none}
body{margin:0;min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
.app-header{background:linear-gradient(120deg,#104d7c,#1976b9);color:white;padding:18px max(18px,calc((100vw - 980px)/2));display:flex;align-items:center;gap:13px;box-shadow:0 4px 18px #12324a20}
.brand-mark{width:45px;height:45px;border-radius:14px;background:#ffffff24;display:grid;place-items:center;font-size:27px}
.app-header h1{font-size:23px;line-height:1.1;margin:0;font-weight:750;letter-spacing:.2px}
.app-header p{margin:4px 0 0;color:#e3f3ff;font-size:13px}
.install-btn{margin-left:auto;background:white;color:#145d92;border:0;border-radius:10px;padding:9px 13px;font-weight:700}
.hidden{display:none!important}
.app{max-width:980px;margin:20px auto;padding:0 16px}
.panel{background:white;border:1px solid #e0e8ef;border-radius:18px;padding:20px;margin-bottom:16px;box-shadow:0 5px 20px #17304708}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}
.eyebrow{font-size:10px;letter-spacing:1.5px;color:#4681a8;font-weight:800;margin:0 0 3px}
h2{font-size:20px;margin:0;color:#173047}
.local-badge{font-size:11px;background:#eaf6ee;color:#287344;border-radius:999px;padding:7px 10px;white-space:nowrap}
.month-picker{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:10px;background:#f4f8fb;border-radius:14px;padding:10px;margin-bottom:15px}
.month-current{text-align:center;display:flex;flex-direction:column;gap:3px}
.month-current label{font-size:11px;color:#60778a}
.month-current input{border:0;background:transparent;text-align:center;font-size:17px;font-weight:750;color:#174e79;min-width:0}
.btn{border:0;border-radius:11px;padding:11px 14px;font-weight:700;transition:filter .15s}
.btn:hover,.tab:hover{filter:brightness(.97)}
.btn-primary{background:#176da8;color:white}
.btn-secondary{background:#e9f2f9;color:#185b8b;border:1px solid #d6e6f2}
.month-picker .btn{height:44px;font-size:24px;padding:0}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stat-card{border:1px solid #e5edf3;border-radius:14px;padding:15px;background:#fff;min-width:0}
.stat-card span{display:block;color:#617587;font-size:12px;margin-bottom:7px}
.stat-card strong{font-size:clamp(18px,3.8vw,23px);color:#173047;overflow-wrap:anywhere}
.stat-profit{grid-column:1/-1;background:#edf8f1;border-color:#ccebd7}
.stat-profit strong{color:#217448}
.note{font-size:12px;color:#667b8c;line-height:1.5;margin:14px 2px 0}
.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 16px}
.tab{background:#e3edf5;color:#315a76;border:1px solid #d7e4ee;border-radius:11px;padding:11px 5px;font-size:12px;font-weight:700}
.tab.active{background:#176da8;color:#fff;border-color:#176da8}
.screen-panel{min-height:170px}
.screen-title{font-size:18px;margin:0 0 15px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-size:12px;color:#536c7f;font-weight:700}
.field input,.field select{width:100%;min-width:0;border:1px solid #cfdde7;border-radius:10px;background:#fff;padding:12px 11px;color:#18364d;outline:none}
.field input:focus,.field select:focus{border-color:#2781bd;box-shadow:0 0 0 3px #2781bd1c}
.form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.subheading{font-size:14px;margin:24px 0 10px}
.record-list{display:grid;gap:8px}
.record{border:1px solid #e2eaf0;border-radius:12px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.record-main{min-width:0}
.record-title{font-size:13px;font-weight:750;overflow-wrap:anywhere}
.record-meta{font-size:11px;color:#657b8b;margin-top:4px;line-height:1.5;overflow-wrap:anywhere}
.record-actions{display:flex;gap:5px;flex-shrink:0}
.small-btn{border:0;border-radius:8px;background:#e9f2f9;color:#175d91;padding:7px 9px;font-size:11px;font-weight:700}
.small-btn.danger{background:#fff0ef;color:#a3362e}
.empty{border:1px dashed #cfdae3;border-radius:12px;padding:18px;text-align:center;color:#708494;font-size:13px}
.report-list{display:grid;gap:9px}
.report-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f4;font-size:13px}
.report-row strong{text-align:right}
.backup-panel{display:flex;align-items:center;justify-content:space-between;gap:16px}
.backup-panel h2{font-size:16px}
.backup-panel p{font-size:12px;line-height:1.5;color:#667b8c;margin:6px 0 0;max-width:510px}
.backup-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}
.file-label{position:relative;overflow:hidden;display:inline-block}
.file-label input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
footer{display:flex;justify-content:space-between;gap:12px;color:#7a8d9b;font-size:11px;padding:2px 4px 22px}
.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,20px);background:#173047;color:white;border-radius:12px;padding:12px 16px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100vw - 30px);z-index:5}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:650px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-profit{grid-column:auto}.tabs{grid-template-columns:repeat(6,minmax(0,1fr))}.tab{font-size:13px}.screen-panel{padding:24px}.app{padding:0 22px}.stat-card{padding:18px}}
@media(max-width:520px){.app{margin:12px auto;padding:0 10px}.panel{padding:15px;border-radius:15px}.app-header{padding:15px}.local-badge{font-size:10px;padding:6px 8px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.backup-panel{align-items:stretch;flex-direction:column}.backup-actions .btn{flex:1;text-align:center}.record{align-items:flex-start}.record-actions{flex-direction:column}footer{flex-direction:column}.stats-grid{gap:8px}.stat-card{padding:12px}}

/* PIN unlock overlay */
.pin-gate{position:fixed;inset:0;z-index:1000;background:linear-gradient(135deg,#104d7c,#1976b9);display:grid;place-items:center;padding:18px}
.pin-gate.hidden{display:none!important}
.pin-card{width:min(100%,390px);background:#fff;border-radius:22px;padding:28px 24px;box-shadow:0 18px 60px #071d2d55;text-align:center}
.pin-lock-icon{font-size:35px;margin-bottom:8px}
.pin-card h2{font-size:22px;margin:3px 0 10px}
.pin-message{font-size:13px;color:#63798b;line-height:1.5;margin:0 0 20px}
.pin-label{display:block;text-align:left;font-size:12px;font-weight:750;color:#536c7f;margin:12px 0 6px}
.pin-card input{width:100%;border:1px solid #cfdde7;border-radius:11px;padding:13px;text-align:center;letter-spacing:7px;font-size:22px;outline:none}
.pin-card input:focus{border-color:#2781bd;box-shadow:0 0 0 3px #2781bd1c}
.pin-submit{width:100%;margin-top:12px}
.pin-error{min-height:18px;color:#b3261e;font-size:12px;margin:8px 0 0}
.pin-footnote{font-size:10px;line-height:1.5;color:#7a8d9b;margin:18px 0 0}
