/* Preserve APK proportions; desktop gets a deliberate, readable content measure. */
:root { --muted:#667085; }
body { font-variant-numeric:tabular-nums; }
button:focus-visible,input:focus-visible,textarea:focus-visible { outline:2px solid #2458c7;outline-offset:3px; }
.btn.primary:disabled { background:#e6eaf0;color:#667085; }
input::placeholder,textarea::placeholder { color:#667085; }
::selection { background:#c9dbff;color:#15181d; }
.brand small { font-size:11px; }
.op .ot { font-size:12px; }
.extension-link { text-decoration:none;color:inherit;display:flex; }
.connection-gate { position:fixed;inset:0;z-index:200;background:#f2f4f7;display:grid;place-items:center;padding:20px; }
.connection-gate section { width:min(420px,100%);background:#fff;border-radius:16px;padding:28px;box-shadow:0 8px 30px #18223012; }
.connection-gate h2 { font-size:20px;margin:0 0 16px; }.connection-gate p { color:#667085;line-height:1.6; }
.connection-gate label { display:grid;gap:8px; }.connection-gate input { width:100%;padding:12px;border:1px solid #d0d5dd;border-radius:8px; }.connection-gate button { margin-top:14px;width:100%; }.connection-error { color:#b42318!important; }
.desktop-pagination { display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:#667085;padding:12px 2px;flex-wrap:wrap; }
.desktop-pagination>div { display:flex;align-items:center;gap:10px; }.desktop-pagination button { background:#fff;border:1px solid #e6eaf0;border-radius:8px;padding:8px 12px;color:#2458c7; }.desktop-pagination button:disabled { opacity:.4;cursor:default; }
.shared-info { font-size:12px;color:#667085;padding:12px;line-height:1.6; }
.monthly-profit-board { margin-bottom:16px;padding:20px;background:#fff;border:1px solid #b9cef6;border-radius:14px; }
.monthly-profit-board { cursor:pointer;transition:border-color .15s; }.monthly-profit-board:hover { border-color:#2f6fed; }.monthly-profit-board:focus-visible { outline:2px solid #2458c7;outline-offset:3px; }
.monthly-history-hint { margin-top:14px;text-align:right;font-size:13px;color:#2458c7; }
.monthly-history-modal { width:min(680px,100%);max-width:680px;max-height:calc(100dvh - 40px);display:flex;flex-direction:column; }
.monthly-history-list { overflow-y:auto;min-height:0; }.monthly-history-row { padding:16px 0;border-bottom:1px solid #e6eaf0; }.monthly-history-row:first-child { padding-top:0; }.monthly-history-row:last-child { border:0; }
.monthly-history-title { display:flex;justify-content:space-between;align-items:baseline;gap:12px; }.monthly-history-title>b { font-size:15px; }.monthly-history-title>strong { font-size:21px; }
.monthly-history-meta { color:#667085;font-size:12px;margin:6px 0 10px; }.monthly-history-values { display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:#667085; }.monthly-history-values b { color:#344054;font-weight:600; }
.monthly-history-modal .modal-actions { flex-shrink:0; }
.monthly-profit-heading { display:flex;justify-content:space-between;align-items:center;gap:12px; }.monthly-profit-heading h2 { font-size:17px;margin:0; }.monthly-profit-heading>span { color:#475467;font-size:13px; }
.monthly-profit-main { display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;margin:12px 0 20px; }.monthly-profit-main strong { font-size:32px;line-height:1.2; }.monthly-profit-main>span { font-size:12px;color:#667085; }
.monthly-profit-details { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border-top:1px solid #e6eaf0;padding-top:14px; }.monthly-profit-details div { min-width:0; }.monthly-profit-details span { display:block;color:#667085;font-size:12px;margin-bottom:5px; }.monthly-profit-details b { font-size:16px;overflow-wrap:anywhere; }
@media(max-width:480px) { .monthly-profit-board { padding:16px; }.monthly-profit-details { gap:10px; }.monthly-profit-details b { font-size:14px; }.monthly-profit-details span { min-height:34px; } }
@media(min-width:800px) {
  body { background:#e9edf3; }
  .app { width:min(1120px,calc(100% - 64px));margin:0 auto;background:#f2f4f7;box-shadow:0 0 0 1px #dde3ed; }
  .topbar { padding:20px 28px 0; }.topbar-row { padding-bottom:16px; }.brand { font-size:20px; }.brand small { font-size:12px; }
  .search-wrap input { height:42px; }.flt-bar { margin-top:12px;gap:10px; }.flt-btn { font-size:13px;padding:9px 12px; }
  .chips { padding:12px 0 16px; }.view { padding:22px 28px 90px; }
  .day-group { margin-bottom:8px; }.card { padding:18px 18px 8px;margin-bottom:14px; }.card-model { font-size:18px; }.card-sub { font-size:13px; }
  .card-ops { gap:8px; }.op { padding:11px 4px;gap:6px;min-height:54px; }
  .fab { right:max(32px,calc((100vw - 1120px)/2 + 28px));bottom:82px; }
  .tabbar { min-height:62px; }.tab { font-size:13px;gap:5px;padding:12px 0; }.tab i { font-size:20px; }
  .sheet { inset:24px auto;left:50%;transform:translateX(-50%);width:min(800px,calc(100vw - 64px));border-radius:16px;overflow:hidden;box-shadow:0 0 0 100vmax #10182866,0 20px 60px #10182833;animation:none; }
  .sheet-head { padding:14px 24px; }.sheet-head b { font-size:18px; }.sheet-body { padding:20px 24px; }.sheet-foot { padding:14px 24px; }
  .group { padding:4px 18px; }.group.tight { padding:4px 18px; }.group.tight .row { min-height:50px; }.row-label { width:100px; }.itcard { padding:4px 18px 12px; }
  .modal-card { max-width:520px;padding:24px; }.picker { align-items:center; }.picker-panel,.pk-sheet { max-width:640px; }
  .stat-grid { gap:14px; }.stat { padding:20px; }.stat .v { font-size:28px; }
}
@media(min-width:1500px) { .app { width:1120px; } }
/* Keep the original APK composition on desktop, with a readable fixed measure. */
@media(min-width:1000px) {
  .app { width:min(1240px,calc(100% - 64px));box-shadow:none; }
  .topbar { order:-2; }
  .tabbar { order:-1;min-height:52px;padding:0 28px;gap:28px;border-top:0;border-bottom:1px solid #e6eaf0; }
  .tab { flex:none;min-width:100px;flex-direction:row;justify-content:center;gap:8px;padding:14px 18px;font-size:14px;position:relative; }
  .tab.active { background:none; }.tab.active::after { content:'';position:absolute;bottom:0;left:16px;right:16px;height:3px;background:#2f6fed;border-radius:3px 3px 0 0; }
  .tab i { font-size:18px; }
  .topbar { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;padding-top:16px; }
  .topbar-row,.chips { grid-column:1/-1; }
  .topbar-row { padding-bottom:12px;padding-right:52px; }
  .search-wrap { grid-column:1; }
  .flt-bar { grid-column:2;margin-top:0;gap:8px; }
  .flt-btn { min-height:42px; }
  .chips { padding:12px 0; }
  .view { padding-top:20px;padding-bottom:28px; }
  .list { gap:16px; }
  .day-group { margin-bottom:0; }
  .day-t { margin:0 0 8px;padding:0 2px;font-size:14px;color:#475467; }
  .day-t .sec-n { color:#667085;font-size:12px; }
  .card { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 24px;padding:18px 20px;margin-bottom:12px;box-shadow:0 3px 12px rgba(16,24,40,.045); }
  .card>div { min-width:0; }
  .card-top { grid-row:1;grid-column:1/-1; }
  .card-model { font-size:16px; }
  .card-sub { gap:6px 12px;line-height:1.6; }
  .card-items { grid-row:2;grid-column:1/-1;margin-top:0;padding-top:2px; }
  .it-row { padding:10px 0; }.it-model { font-size:16px; }
  .card-money { grid-row:3;grid-column:1/-1;margin-top:0;gap:24px;font-size:14px; }
  .card-tags { grid-row:4;grid-column:1;align-self:center;margin-top:0;gap:6px; }
  .card-ops { grid-column:2;grid-row:4;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px;max-width:620px;margin:0;padding:0;border:0; }
  .op { flex-direction:row;gap:6px;min-height:36px;padding:8px 12px;border-radius:8px; }.op .ot { font-size:13px; }.op .oi { font-size:14px; }.op:last-child:nth-child(odd) { grid-column:auto; }
  .op-n { position:static; }
  .it-model { overflow-wrap:anywhere; }.card-tags .tag { max-width:100%;overflow-wrap:anywhere; }
  #view-stats .stat-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:12px; }
  #view-stats .stat.wide { grid-column:1/-1; }
  #view-stats .stat { padding:16px; }
  #view-stats .stat .v { font-size:24px;line-height:1.4;overflow-wrap:anywhere; }
  #view-stats .stat.wide .v { font-size:28px; }
  .monthly-profit-board { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:12px 28px;padding:20px 24px; }
  .monthly-profit-heading { grid-column:1/-1; }
  .monthly-profit-main { grid-column:1;grid-row:2;flex-direction:column;align-items:flex-start;gap:8px;margin:0; }
  .monthly-profit-details { grid-column:2;grid-row:2;align-self:center;border-top:0;border-left:1px solid #e6eaf0;padding:4px 0 4px 24px;gap:16px; }
  .monthly-history-hint { grid-column:1/-1;margin-top:0; }
  .tbl th,.tbl td { padding:12px 14px; }.tbl thead th { position:sticky;top:0;background:#f6f8fc; }
  .sheet-head { position:relative; }.sheet-head>b { position:absolute;left:50%;transform:translateX(-50%); }
  .sheet-foot-info { max-width:380px;line-height:1.6; }
  .tab:hover { background:#f3f6fc; }.op:hover { background:#e8edf5; }.op.todo:hover,.op.filled:hover { background:#dfeaff; }.op.solid:hover { background:#2458c7; }
  .monthly-history-modal { max-width:680px; }
  .fab { right:max(44px,calc((100vw - 1240px)/2 + 28px));top:16px;bottom:auto;width:36px;height:36px;font-size:24px;border-radius:10px;box-shadow:none; }
}
@media(min-width:1000px) and (max-width:1150px) {
  .card-tags { grid-column:1/-1; }
  .card-ops { grid-row:5;grid-column:1/-1;justify-content:flex-start;border-top:1px solid #e6eaf0;padding-top:10px; }
  #view-stats .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) { * { animation:none!important;transition:none!important; } }
@media(min-width:1000px) {
  .app { width:min(1120px,calc(100% - 64px));box-shadow:0 0 0 1px #dde3ed; }
  .topbar { order:0;display:block;padding:20px 28px 0; }
  .topbar-row { padding:0 0 16px; }.flt-bar { margin-top:12px;gap:10px; }.flt-btn { min-height:0; }
  .chips { padding:12px 0 16px; }
  .tabbar { order:0;min-height:62px;padding:0;gap:0;border-top:1px solid #e6eaf0;border-bottom:0; }
  .tab { flex:1;min-width:0;flex-direction:column;gap:5px;padding:12px 0;font-size:13px; }.tab i { font-size:20px; }.tab.active::after { display:none; }
  .view { padding:22px 28px 90px; }.list { gap:10px; }.day-group { margin-bottom:8px; }
  .card { display:block;padding:18px 18px 8px;margin-bottom:14px;box-shadow:var(--shadow); }
  .card-model { font-size:18px; }.card-sub { gap:10px;line-height:1.45; }
  .card-items { margin-top:9px;padding-top:2px; }.it-row { padding:8px 0; }
  .card-money { margin-top:9px;gap:14px;font-size:13px; }.card-tags { margin-top:8px;gap:6px; }
  .card-ops { display:grid;grid-template-columns:repeat(var(--opn,5),minmax(0,1fr));max-width:none;gap:8px;border-left:0;border-top:1px solid #e6eaf0;margin-top:10px;padding:9px 0 7px; }
  .op { flex-direction:column;gap:6px;min-height:54px;padding:11px 4px;border-radius:10px; }.op .ot { font-size:12px; }.op .oi { font-size:15px; }.op-n { position:absolute; }
  #view-stats .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }#view-stats .stat { padding:20px; }#view-stats .stat .v { font-size:28px; }
  .monthly-profit-board { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px 24px;padding:16px 20px; }
  .monthly-profit-heading { grid-column:1/-1; }
  .monthly-profit-main { grid-column:1;grid-row:2;flex-direction:column;align-items:flex-start;gap:4px;margin:0; }.monthly-profit-main strong { font-size:28px; }
  .monthly-profit-details { grid-column:2;grid-row:2;align-self:center;border-top:0;border-left:1px solid #e6eaf0;padding:2px 0 2px 20px; }
  .monthly-history-hint { grid-column:1/-1;margin-top:0; }
  .fab { right:max(32px,calc((100vw - 1120px)/2 + 28px));top:auto;bottom:82px;width:54px;height:54px;font-size:30px;border-radius:50%;box-shadow:0 6px 18px rgba(47,111,237,.3); }
}
@media(max-width:999px) {
  .monthly-profit-board { padding:14px 16px;margin-bottom:12px; }
  .monthly-profit-main { margin:8px 0 10px;gap:6px 10px; }.monthly-profit-main strong { font-size:28px; }
  .monthly-profit-details { padding-top:10px; }.monthly-profit-details span { min-height:0;margin-bottom:4px; }
  .monthly-history-hint { margin-top:8px; }
}
