
    @font-face{font-family:Sarabun;src:url('fonts/Sarabun-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
    @font-face{font-family:Sarabun;src:url('fonts/Sarabun-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
    @font-face{font-family:Sarabun;src:url('fonts/Sarabun-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
    :root{
      --bg:#f6f8f7;--panel:#fff;--ink:#17211d;--muted:#6f7d76;--line:#e3e9e5;
      --brand:#08775c;--brand-2:#0a9572;--brand-soft:#e8f5f0;--cream:#fff8e9;
      --warning:#d79521;--danger:#c24c4c;--shadow:0 10px 28px rgba(26,48,38,.08);--radius:18px;
    }
    *{box-sizing:border-box} body{margin:0;font-family:Sarabun,Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink)}
    button,input,select,textarea{font:inherit} button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:248px 1fr}
    .sidebar{background:#0d2e26;color:#fff;padding:24px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px}
    .logo{display:flex;align-items:center;gap:12px;padding:0 8px 12px}.logo-badge{width:44px;height:44px;border-radius:14px;background:#fff;color:var(--brand);display:grid;place-items:center;font-weight:700;font-size:21px}.logo strong{font-size:20px}.logo span{display:block;color:#acd1c5;font-size:12px;margin-top:2px}
    .nav{display:grid;gap:7px}.nav a{border:0;background:transparent;color:#cce0d9;border-radius:12px;padding:12px 13px;text-align:left;display:flex;align-items:center;gap:10px;text-decoration:none}.nav a:hover,.nav a.active{background:#17473b;color:#fff}.nav .ico{width:24px;text-align:center}
    .side-note{margin-top:auto;background:#153f35;border:1px solid #27584d;border-radius:14px;padding:13px;color:#cce0d9;font-size:12px;line-height:1.55}.side-note b{color:#fff}
    .main{min-width:0}.topbar{height:76px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar h1{font-size:21px;margin:0}.topbar small{color:var(--muted)}.top-actions{display:flex;align-items:center;gap:10px}
    .badge{background:var(--brand-soft);color:var(--brand);padding:8px 11px;border-radius:999px;font-size:12px;font-weight:600}.badge.offline{background:#fff0f0;color:var(--danger)}
    .btn{border:0;border-radius:11px;padding:10px 14px;font-weight:600}.btn.primary{background:var(--brand);color:#fff}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.danger{background:#fff1f1;color:var(--danger);border:1px solid #ffd6d6}.btn.small{padding:6px 9px;font-size:11px}
    .content{padding:26px 28px 44px;max-width:1500px;margin:auto}.page{display:none}.page.active{display:block}.multi-page .content>.page{display:block}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.page-head h2{margin:0 0 5px;font-size:27px}.page-head p{margin:0;color:var(--muted);font-size:14px}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.controls select,.controls input{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 12px;color:var(--ink)}
    .grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi{padding:18px}.kpi .label{color:var(--muted);font-size:13px}.kpi .value{font-size:29px;font-weight:700;margin:8px 0 5px;letter-spacing:-.5px}.kpi .hint{font-size:12px;color:var(--muted)}.kpi.highlight{background:linear-gradient(135deg,#0d6f58,#0a8f6d);color:#fff;border:0}.kpi.highlight .label,.kpi.highlight .hint{color:#d8eee7}
    .dashboard-grid{grid-template-columns:1.65fr 1fr}.section{padding:20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.section-title h3{font-size:16px;margin:0}.section-title span{font-size:12px;color:var(--muted)}
    .bars{display:grid;gap:13px}.bar-row{display:grid;grid-template-columns:92px 1fr 70px;gap:10px;align-items:center;font-size:13px}.bar-track{height:10px;background:#edf2ef;border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-2));border-radius:999px}.bar-value{text-align:right;font-weight:600}
    .trend{height:250px;display:flex;align-items:flex-end;gap:5px;padding-top:12px;border-bottom:1px solid var(--line)}.trend-col{flex:1;min-width:3px;position:relative;display:flex;align-items:flex-end;height:100%}.trend-col i{display:block;width:100%;border-radius:5px 5px 0 0;background:#a9d8c9;min-height:2px}.trend-col:hover i{background:var(--brand)}.trend-col em{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#17211d;color:#fff;font-style:normal;font-size:11px;white-space:nowrap;padding:5px 7px;border-radius:7px;z-index:2}.trend-col:hover em{display:block}
    .notice{background:var(--cream);border:1px solid #f3e2bb;border-radius:14px;padding:14px 15px;font-size:13px;line-height:1.55;color:#76591c}.notice b{color:#5b4212}.quick{display:grid;gap:10px}.quick button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px;text-align:left;font-weight:600}.quick button span{display:block;color:var(--muted);font-weight:400;font-size:12px;margin-top:3px}
    .form-card{padding:22px}.form-section{padding:18px 0;border-bottom:1px solid var(--line)}.form-section:first-child{padding-top:0}.form-section:last-child{border-bottom:0;padding-bottom:0}.form-section h3{margin:0 0 14px;font-size:16px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #dce4df;border-radius:10px;padding:11px 12px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#6bb8a2;box-shadow:0 0 0 3px #e7f6f1}.field .suffix{position:relative}.field .suffix input{padding-right:45px}.field .suffix b{position:absolute;right:12px;top:11px;font-size:12px;color:var(--muted)}
    .field input[readonly]{background:#f3f6f4;color:#55625c;cursor:not-allowed}.field small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45}
    .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.calc-strip{background:#f1f8f5;border:1px solid #d9ece5;border-radius:13px;padding:14px 15px;display:flex;justify-content:space-between;gap:14px;align-items:center}.calc-strip strong{font-size:20px;color:var(--brand)}
    .table-wrap{overflow:auto;border-radius:16px;border:1px solid var(--line);background:#fff}.table{width:100%;border-collapse:collapse;min-width:900px}.table th,.table td{padding:12px 13px;border-bottom:1px solid #edf0ee;text-align:right;font-size:13px;white-space:nowrap}.table th{background:#f7faf8;color:#5f6d66;font-weight:600}.table th:first-child,.table td:first-child{text-align:left}.table tbody tr:hover{background:#fbfdfc}.table .total{font-weight:700;color:var(--brand)}.table input{width:86px;border:1px solid #dfe5e2;border-radius:8px;padding:8px;text-align:right}.empty{padding:35px!important;text-align:center!important;color:var(--muted)}
    .inventory-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:16px}.ingredient-name{font-weight:600;text-align:left!important}.stat-list{display:grid;gap:11px}.stat-line{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.stat-line:last-child{border-bottom:0}.green-dot{width:8px;height:8px;background:#18a97d;border-radius:50%;display:inline-block;margin-right:7px}
    .close-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.denom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.denom{display:grid;grid-template-columns:55px 1fr;align-items:center;gap:8px}.denom label{font-weight:600;color:#4b5a53}.denom input{width:100%;border:1px solid #dfe5e2;border-radius:9px;padding:9px;text-align:right}.summary-box{background:#0e392f;color:#fff;border-radius:15px;padding:18px}.summary-box .row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #28574b}.summary-box .row:last-child{border:0}.summary-box .big{font-size:26px;font-weight:700}.good{color:#3fbf94}.bad{color:#ff8b8b}
    .mobile-nav{display:none}.toast{position:fixed;right:24px;bottom:24px;background:#17392f;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:100;max-width:420px}.toast.show{opacity:1;transform:none}.toast.error{background:#7c2f2f}
    .loading{opacity:.55;pointer-events:none}.status-link{color:inherit;text-decoration:underline;text-underline-offset:2px}
    .ledger-card{overflow:hidden}.ledger-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;background:linear-gradient(135deg,#103a31,#0b755d);color:#fff}.ledger-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#bde4d7}.ledger-heading h3{font-size:25px;margin:2px 0 1px}.ledger-heading p{margin:0;color:#d8eee7}.ledger-date-box{min-width:220px}.ledger-date-box label{display:block;font-size:12px;color:#c9e6dc;margin-bottom:5px}.ledger-date-box input{width:100%;border:1px solid rgba(255,255,255,.24);background:#fff;color:var(--ink);border-radius:10px;padding:10px 12px}
    .ledger-tools{padding:18px 22px;display:grid;grid-template-columns:1fr 1.5fr auto;gap:14px;align-items:end;border-bottom:1px solid var(--line);background:#fbfdfc}.ledger-tools small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.ledger-tool-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.carry-field input{background:#fff7dc;border-color:#ead598!important;font-weight:700}.ledger-grid{display:grid;grid-template-columns:1fr 1fr}.ledger-panel{min-width:0}.ledger-panel:first-child{border-right:1px solid var(--line)}.ledger-panel-head{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:#f7faf8}.ledger-panel-head span{font-weight:700;font-size:17px}.ledger-panel-head small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.income-panel .ledger-panel-head{box-shadow:inset 4px 0 0 #24a777}.expense-panel .ledger-panel-head{box-shadow:inset 4px 0 0 #d79521}.ledger-carry-row{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:#fff9e8;border-bottom:1px solid #f1e4bd;font-weight:600}.ledger-carry-row strong{color:#946517}.ledger-rows{min-height:302px}.ledger-entry{display:grid;grid-template-columns:minmax(0,1fr) 170px 34px;align-items:stretch;border-bottom:1px solid #edf0ee;min-height:50px}.ledger-entry input{border:0;border-radius:0;outline:0;background:#fff;padding:10px 13px}.ledger-entry input:focus{box-shadow:inset 0 0 0 2px #94cdbd}.ledger-label{font-weight:500}.ledger-money{display:grid;grid-template-columns:1fr 38px;border-left:1px solid #edf0ee}.ledger-money input{text-align:right;font-weight:600}.income-panel .ledger-money input{background:#effbf6}.expense-panel .ledger-money input{background:#fffaf0}.ledger-money span{display:grid;place-items:center;background:#f8faf9;color:var(--muted);font-size:11px;border-left:1px solid #edf0ee}.ledger-remove{border:0;border-left:1px solid #edf0ee;background:#fff;color:#a0aaa5;font-size:19px}.ledger-remove:hover{background:#fff1f1;color:var(--danger)}.ledger-spacer{min-height:41px;border-bottom:1px solid #edf0ee;background:#fbfcfb}.ledger-total-row{display:flex;justify-content:space-between;align-items:center;padding:13px 18px;background:#f4f7f5;border-top:1px solid var(--line);font-weight:700}.ledger-total-row strong{font-size:17px}.ledger-total-row.grand{background:#eef7f3;color:#134d3e}.ledger-total-row.grand strong{font-size:21px}.ledger-total-row.balance{background:#fff}.ledger-actions{padding:17px 22px;margin:0;border-top:1px solid var(--line);background:#fbfdfc}.income-expense-history td,.income-expense-history th{text-align:right}.income-expense-history td:first-child,.income-expense-history th:first-child{text-align:left}.income-expense-history .ie-note-cell{text-align:left;max-width:260px;white-space:normal;min-width:160px}
    @media(max-width:1050px){.kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.inventory-grid,.close-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,1fr)}.ledger-tools{grid-template-columns:1fr 1fr}.ledger-tool-buttons{grid-column:1/-1;justify-content:flex-start}}
    @media(max-width:760px){.app{display:block}.sidebar{display:none}.topbar{height:66px;padding:0 16px}.topbar h1{font-size:17px}.top-actions .badge{display:none}.content{padding:18px 14px 90px}.page-head{align-items:flex-start;flex-direction:column}.page-head h2{font-size:24px}.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:15px}.kpi .value{font-size:23px}.dashboard-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.ledger-heading{align-items:flex-start;flex-direction:column;padding:18px}.ledger-date-box{width:100%;min-width:0}.ledger-tools{grid-template-columns:1fr;padding:15px}.ledger-tool-buttons{grid-column:auto}.ledger-grid{grid-template-columns:1fr}.ledger-panel:first-child{border-right:0;border-bottom:10px solid var(--bg)}.ledger-rows{min-height:0}.ledger-entry{grid-template-columns:minmax(0,1fr) 145px 34px}.denom-grid{grid-template-columns:1fr 1fr}.mobile-nav{display:grid;grid-template-columns:repeat(8,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:50;padding:8px 4px max(8px,env(safe-area-inset-bottom))}.mobile-nav a{border:0;background:transparent;color:#718078;font-size:9px;padding:5px 0;text-decoration:none;text-align:center}.mobile-nav a b{display:block;font-size:18px;margin-bottom:3px}.mobile-nav a.active{color:var(--brand)}}
    @media(max-width:480px){.kpis{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:78px 1fr 58px}.controls{width:100%}.controls select{flex:1}.top-actions .btn.ghost{display:none}}

/* =========================================================
   Income / Expense ledger: keep amount inputs inside their
   own grid column so they never overlap the remove (×) button.
   ========================================================= */
#page-income-expense .ledger-entry{
  grid-template-columns:minmax(0,1fr) minmax(150px,190px) 44px;
  overflow:hidden;
}
#page-income-expense .ledger-entry > *{
  min-width:0;
  max-width:100%;
}
#page-income-expense .ledger-entry input{
  width:100%;
  min-width:0;
  max-width:100%;
  display:block;
}
#page-income-expense .ledger-money{
  width:100%;
  min-width:0;
  max-width:100%;
  grid-template-columns:minmax(0,1fr) 42px;
  overflow:hidden;
}
#page-income-expense .ledger-money input{
  width:100%;
  min-width:0;
  max-width:100%;
}
#page-income-expense .ledger-remove{
  width:44px;
  min-width:44px;
  max-width:44px;
  padding:0;
  display:grid;
  place-items:center;
  position:relative;
  z-index:2;
  flex:0 0 44px;
}

@media(max-width:760px){
  #page-income-expense .ledger-entry{
    grid-template-columns:minmax(0,1fr) minmax(120px,150px) 42px;
  }
  #page-income-expense .ledger-money{
    grid-template-columns:minmax(0,1fr) 36px;
  }
  #page-income-expense .ledger-remove{
    width:42px;
    min-width:42px;
    max-width:42px;
    flex-basis:42px;
  }
}

@media(max-width:480px){
  #page-income-expense .ledger-entry{
    grid-template-columns:minmax(0,1fr) minmax(105px,132px) 40px;
  }
  #page-income-expense .ledger-money{
    grid-template-columns:minmax(0,1fr) 34px;
  }
  #page-income-expense .ledger-remove{
    width:40px;
    min-width:40px;
    max-width:40px;
    flex-basis:40px;
  }
}

/* Income / Expense PDF report controls */
#page-income-expense .ie-report-tools{
  margin:0 18px 16px;
  padding:14px 15px;
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto auto;
  gap:14px;
  align-items:end;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fbf9;
}
#page-income-expense .ie-report-copy strong{display:block;font-size:15px;color:var(--ink)}
#page-income-expense .ie-report-copy small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.45}
#page-income-expense .ie-report-range{display:flex;align-items:end;gap:8px}
#page-income-expense .ie-report-range label{display:grid;gap:5px;color:var(--muted);font-size:11px;white-space:nowrap}
#page-income-expense .ie-report-range input{min-width:145px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
#page-income-expense .ie-report-sep{padding-bottom:9px;color:var(--muted);font-size:12px}
#page-income-expense .ie-report-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;white-space:nowrap}
@media(max-width:1150px){
  #page-income-expense .ie-report-tools{grid-template-columns:1fr 1fr}
  #page-income-expense .ie-report-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:760px){
  #page-income-expense .ie-report-tools{grid-template-columns:1fr;margin:0 12px 14px}
  #page-income-expense .ie-report-range{align-items:stretch;flex-direction:column}
  #page-income-expense .ie-report-range input{width:100%;min-width:0}
  #page-income-expense .ie-report-sep{display:none}
  #page-income-expense .ie-report-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}
  #page-income-expense .ie-report-actions .btn{width:100%}
}

/* Cash closing usability */
#page-close .close-round-grid{
  grid-template-columns:minmax(230px,300px) minmax(280px,1fr);
  max-width:690px;
  gap:16px;
}
#page-close .close-round-grid .field{min-width:0}
#page-close .close-date-input{
  min-height:46px;
  width:100%;
  font-size:16px;
  font-weight:600;
  padding:9px 12px;
}
#page-close .close-user-field input{
  min-height:46px;
  background:#f7faf8;
  font-weight:600;
  color:var(--ink);
}
#page-close .close-user-hint{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:11px;
}
@media (min-width:761px) and (max-width:1400px){
  #page-close .close-round-grid{
    grid-template-columns:minmax(230px,290px) minmax(280px,1fr);
    max-width:670px;
  }
  #page-close .close-date-input{min-height:48px;font-size:16px}
}
@media(max-width:760px){
  #page-close .close-round-grid{grid-template-columns:1fr;max-width:none}
  #page-close .close-date-input{min-height:46px;font-size:16px}
}

/* Daily page: custom expense rows */
#page-daily .daily-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
#page-daily .daily-section-head h3{margin:0}
#page-daily .daily-section-head small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
#page-daily .daily-extra-expense-list{display:grid;gap:9px;margin-top:13px}
#page-daily .daily-extra-expense-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,240px) 40px;gap:9px;align-items:stretch}
#page-daily .daily-extra-expense-row>input,#page-daily .daily-extra-expense-money{min-width:0}
#page-daily .daily-extra-expense-label,#page-daily .daily-extra-expense-money input{width:100%;border:1px solid #dce4df;border-radius:10px;background:#fff;outline:none;padding:11px 12px;font:inherit}
#page-daily .daily-extra-expense-label:focus,#page-daily .daily-extra-expense-money input:focus{border-color:#6bb8a2;box-shadow:0 0 0 3px #e7f6f1}
#page-daily .daily-extra-expense-money{position:relative}
#page-daily .daily-extra-expense-money input{padding-right:48px;text-align:right}
#page-daily .daily-extra-expense-money span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);pointer-events:none}
#page-daily .daily-extra-expense-remove{width:40px;border:1px solid #ffd6d6;border-radius:10px;background:#fff1f1;color:var(--danger);font-size:20px;line-height:1;cursor:pointer}
#page-daily .daily-extra-expense-remove:hover{background:#ffe3e3}
@media(max-width:760px){#page-daily .daily-extra-expense-row{grid-template-columns:minmax(0,1fr) minmax(130px,180px) 40px}}
@media(max-width:480px){#page-daily .daily-section-head{align-items:flex-start}#page-daily .daily-extra-expense-row{grid-template-columns:minmax(0,1fr) 40px}#page-daily .daily-extra-expense-money{grid-column:1/2}#page-daily .daily-extra-expense-remove{grid-column:2;grid-row:1/3}}

/* Close round: payment channels + formula status */
#page-close .close-payment-grid,#page-daily .close-payment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
#page-close .close-formula-note,#page-daily .close-formula-note{display:block;margin-top:10px;color:var(--muted);font-size:12px;line-height:1.55}
#page-close .close-formula-note b,#page-daily .close-formula-note b{color:var(--ink)}
.summary-box .over{color:#ffd166}
.summary-box .pending{color:#d4ded9}
@media(max-width:760px){#page-close .close-payment-grid,#page-daily .close-payment-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){#page-close .close-payment-grid,#page-daily .close-payment-grid{grid-template-columns:1fr}}

/* Daily page: totals for every section */
#page-daily .daily-overall-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#page-daily .daily-overall-summary>div{background:#f7faf8;border:1px solid var(--line);border-radius:13px;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px}
#page-daily .daily-overall-summary>div span{color:var(--muted);font-size:13px}
#page-daily .daily-overall-summary>div strong{font-size:18px;color:var(--ink)}
#page-daily .daily-overall-summary .net{grid-column:1/-1;background:#f1f8f5;border-color:#d9ece5}
#page-daily .daily-overall-summary .net span{color:var(--ink);font-weight:600}
#page-daily .daily-overall-summary .net small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
#page-daily .daily-overall-summary .net strong{font-size:21px;color:var(--brand)}
@media(max-width:600px){#page-daily .daily-overall-summary{grid-template-columns:1fr}#page-daily .daily-overall-summary .net{grid-column:auto}}

/* Annual income / expense tax preparation */
#page-tax-annual .tax-controls label{font-size:12px;color:var(--muted);font-weight:600}
#page-tax-annual .tax-report-identity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:16px;overflow:hidden}
#page-tax-annual .tax-report-identity>div{padding:16px 18px;border-right:1px solid var(--line)}
#page-tax-annual .tax-report-identity>div:last-child{border-right:0}
#page-tax-annual .tax-report-identity span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
#page-tax-annual .tax-report-identity strong{display:block;font-size:15px;overflow-wrap:anywhere}
#page-tax-annual .tax-monthly-section{margin-bottom:16px}
#page-tax-annual .tax-monthly-table{min-width:720px}
#page-tax-annual .tax-monthly-table tfoot th{background:#edf6f2;color:var(--ink);font-weight:700}
#page-tax-annual .tax-month-row{transition:background-color .15s ease}
#page-tax-annual .tax-month-row:hover{background:#f1f7f3}
#page-tax-annual .tax-month-row.is-selected{background:var(--brand-soft)}
#page-tax-annual .tax-month-row.is-selected td{font-weight:600}
#page-tax-annual .tax-month-select{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;padding:2px 0;background:transparent;color:inherit;font:inherit;font-weight:600;text-align:left;cursor:pointer}
#page-tax-annual .tax-month-select:focus-visible{outline:2px solid var(--brand)!important;outline-offset:4px!important}
#page-tax-annual .tax-month-arrow{color:var(--brand);font-size:17px;line-height:1}
#page-tax-annual .tax-all-months{font-weight:700}
#page-tax-annual .tax-entry-section{margin-bottom:16px}
#page-tax-annual .tax-entry-filter{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
#page-tax-annual #taxShowAllEntries[hidden]{display:none!important}
#page-tax-annual .tax-entry-table{min-width:760px}
#page-tax-annual .tax-entry-table th:last-child,#page-tax-annual .tax-entry-table td:last-child{text-align:left;white-space:normal;min-width:170px}
#page-tax-annual .tax-category-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
#page-tax-annual .tax-category-table{min-width:400px}
#page-tax-annual .tax-category-table th:last-child,#page-tax-annual .tax-category-table td:last-child{text-align:right}
#page-tax-annual .tax-notice{margin-top:0}
.tax-print-title{display:none}
@media(max-width:1050px){
  #page-tax-annual .tax-report-identity{grid-template-columns:1fr 1fr}
  #page-tax-annual .tax-report-identity>div:nth-child(2){border-right:0}
  #page-tax-annual .tax-report-identity>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:760px){
  #page-tax-annual .tax-controls{width:100%}
  #page-tax-annual .tax-controls label{width:100%}
  #page-tax-annual .tax-controls select{flex:1;min-width:110px}
  #page-tax-annual .tax-category-grid{grid-template-columns:1fr}
  #page-tax-annual .tax-category-table{min-width:360px}
}
@media(max-width:480px){
  #page-tax-annual .tax-report-identity{grid-template-columns:1fr}
  #page-tax-annual .tax-report-identity>div{border-right:0;border-bottom:1px solid var(--line)}
  #page-tax-annual .tax-report-identity>div:last-child{border-bottom:0}
  #page-tax-annual .tax-controls .btn{flex:1}
}
@media print{
  @page{size:A4 portrait;margin:10mm}
  body{background:#fff;color:#000}
  .sidebar,.topbar,.mobile-nav,.toast,#page-tax-annual>.page-head{display:none!important}
  .app,.main{display:block;min-height:0}
  .content{max-width:none;margin:0;padding:0}
  #page-tax-annual{display:block!important}
  #taxPrintArea{font-size:10pt}
  .tax-print-title{display:block;text-align:center;margin:0 0 12px}
  .tax-print-title h2{font-size:18pt;margin:0 0 3px}
  .tax-print-title p{color:#555;margin:0}
  #page-tax-annual .card{box-shadow:none;border-color:#bbb;border-radius:8px}
  #page-tax-annual .tax-report-identity{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px}
  #page-tax-annual .tax-report-identity>div{padding:9px 10px;border-right:1px solid #bbb;border-bottom:0}
  #page-tax-annual .tax-report-identity>div:last-child{border-right:0}
  #page-tax-annual .tax-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
  #page-tax-annual .kpi{padding:10px}
  #page-tax-annual .kpi.highlight{background:#fff;color:#000;border:1px solid #bbb}
  #page-tax-annual .kpi.highlight .label,#page-tax-annual .kpi.highlight .hint{color:#555}
  #page-tax-annual .kpi .value{font-size:16pt;margin:4px 0 2px}
  #page-tax-annual .section{padding:10px}
  #page-tax-annual .section-title{margin-bottom:7px}
  #page-tax-annual .tax-entry-filter .btn,#page-tax-annual .tax-month-arrow{display:none!important}
  #page-tax-annual .table-wrap{overflow:visible;border-color:#bbb;border-radius:5px}
  #page-tax-annual .table{min-width:0}
  #page-tax-annual .table th,#page-tax-annual .table td{padding:5px 6px;font-size:8.5pt;border-color:#ddd}
  #page-tax-annual .tax-monthly-section{margin-bottom:10px;break-inside:avoid}
  #page-tax-annual .tax-entry-section{margin-bottom:10px}
  #page-tax-annual .tax-entry-table{min-width:0}
  #page-tax-annual .tax-entry-table thead{display:table-header-group}
  #page-tax-annual .tax-entry-table tr{break-inside:avoid}
  #page-tax-annual .tax-category-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;align-items:start}
  #page-tax-annual .tax-category-grid>.card{break-inside:avoid}
  #page-tax-annual .tax-notice{font-size:8.5pt;padding:8px 10px;break-inside:avoid}
}


/* Legacy Excel importer */
.import-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;align-items:stretch}
.import-upload-card,.import-mapping-card{height:100%}
.import-card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.import-card-head h3,.import-confirm-copy h3{margin:5px 0 4px}.import-card-head p,.import-confirm-copy p{margin:0;color:var(--muted)}
.import-step{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:700;letter-spacing:.04em}.import-file-badge{display:grid;place-items:center;min-width:58px;height:58px;border-radius:16px;background:#eaf7f2;color:var(--brand);font-weight:800}
.import-upload-form{display:grid;gap:14px}.import-dropzone{position:relative;border:1.5px dashed #a8c9bd;background:#f7fbf9;border-radius:16px;padding:26px 18px;display:grid;place-items:center;text-align:center;cursor:pointer;transition:.2s}.import-dropzone:hover{border-color:var(--brand);background:#f0faf6}.import-dropzone input[type=file]{margin-top:14px;max-width:100%;font:inherit;color:var(--muted)}.import-drop-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff;color:var(--brand);font-size:25px;box-shadow:0 6px 18px rgba(20,74,57,.08);margin-bottom:8px}.import-dropzone strong{font-size:17px}.import-dropzone small{color:var(--muted);margin-top:3px}
.import-map-list{display:grid;gap:0}.import-map-list>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.import-map-list>div:last-child{border-bottom:0}.import-map-list b{color:var(--text)}.import-map-list span{color:var(--muted)}.import-safe-note{margin-top:14px;padding:11px 13px;border-radius:12px;background:#eef8f4;color:#376558;font-size:13px}
.import-alert{display:flex;gap:12px;align-items:flex-start;padding:13px 16px;border-radius:14px;margin:0 0 16px;border:1px solid}.import-alert b{white-space:nowrap}.import-alert.success{background:#eef9f4;border-color:#cbe7da;color:#176a50}.import-alert.error{background:#fff1f1;border-color:#f0caca;color:#9b3535}.import-alert.warning{background:#fff8e8;border-color:#efdba5;color:#795b18}.import-alert a{color:inherit;font-weight:700}
.import-preview-title{align-items:flex-start}.import-preview-title small{display:block;color:var(--muted);margin-top:3px}.import-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 16px}.import-kpis>div{border:1px solid var(--line);border-radius:14px;padding:13px 14px;background:#fbfdfc}.import-kpis span{display:block;color:var(--muted);font-size:12px}.import-kpis strong{font-size:23px;color:var(--text);margin-right:5px}.import-kpis small{color:var(--muted)}
.import-warning-list{background:#fff8e8;border:1px solid #efdba5;color:#72571d;border-radius:14px;padding:13px 16px;margin-bottom:15px}.import-warning-list ul{margin:7px 0 0 18px;padding:0}.import-warning-list li+li{margin-top:4px}.import-preview-table-wrap{max-height:520px}.import-preview-table thead th{position:sticky;top:0;z-index:2;background:#f4f8f6}.import-row-existing td{background:#fffaf0}.import-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:700;white-space:nowrap}.import-status.ready{background:#e9f8f2;color:#08775c}.import-status.duplicate{background:#fff0df;color:#9b5e13}.import-status.partial{background:#eef1f3;color:#60716a}
.import-confirm-box{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:18px;border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.import-confirm-form{display:grid;gap:9px}.import-policy{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);padding:11px 12px;border-radius:13px;cursor:pointer;background:#fff}.import-policy input{margin-top:4px}.import-policy span{display:grid}.import-policy small{color:var(--muted);margin-top:2px}.import-policy.danger-choice{border-color:#eed0d0}.import-policy.danger-choice b{color:#984040}
@media(max-width:1100px){.import-grid{grid-template-columns:1fr}.import-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.import-kpis{grid-template-columns:1fr 1fr}.import-confirm-box{grid-template-columns:1fr}.import-map-list>div{grid-template-columns:1fr;gap:2px}.import-alert{display:block}.import-alert b{display:block;margin-bottom:3px}.mobile-nav a{font-size:8px}}

/* Daily form section grouping */
.daily-subsection-title{margin:4px 0 10px;font-size:14px;font-weight:700;color:var(--muted)}
