:root{--primary:#00a8ff;--primary-dark:#0088d1;--navy:#0b3d6e;--bg:#f4f7fb;--surface:#fff;--text:#152033;--muted:#6b7a8d;--line:#e3eaf2;--success:#14b8a6;--danger:#ef4444;--sale:#00a8ff;--shadow:0 8px 24px #0f284614;--radius:16px;--safe-top:env(safe-area-inset-top,0px);--status-bar-gap:36px;color:var(--text);background:var(--bg);font-family:Segoe UI,Helvetica Neue,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body,#root{height:100dvh;margin:0}body{background:radial-gradient(circle at 100% 0,#00a8ff1f,#0000 42%),linear-gradient(#f8fbff 0%,#eef3f8 100%);overflow:hidden}button,input,select,textarea{font:inherit}.login-page{-webkit-overflow-scrolling:touch;height:100%;min-height:100%;padding:24px;padding-top:calc(max(var(--safe-top), var(--status-bar-gap)) + 16px);place-items:center;display:grid;overflow-y:auto}.login-panel{background:var(--surface);border:1px solid var(--line);width:min(100%,420px);box-shadow:var(--shadow);border-radius:24px;padding:28px 24px}.brand{text-align:center;margin-bottom:28px}.brand-logo-wrap{border:1px solid var(--line);background:#fff;border-radius:20px;justify-content:center;align-items:center;margin-bottom:12px;padding:12px 16px;display:flex;overflow:hidden}.brand-logo{object-fit:contain;object-position:center;width:min(100%,200px);height:auto;max-height:160px;display:block}.brand h1{color:var(--navy);letter-spacing:.12em;margin:0;font-size:1.55rem;font-weight:800}.brand p{color:var(--muted);margin:6px 0 0}.login-form{gap:16px;display:grid}.login-form label{color:var(--muted);gap:8px;font-size:.92rem;display:grid}.login-form input{border:1px solid var(--line);width:100%;color:var(--text);background:#f8fbff;border-radius:12px;outline:none;padding:14px}.login-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #00a8ff26}.login-form button{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:12px;margin-top:8px;padding:14px 16px;font-weight:700}.login-form button:hover{background:var(--primary-dark)}.login-form button:disabled{opacity:.7;cursor:wait}.a2hs-card,.a2hs-bar{border:1px solid var(--line);background:#f8fbff;border-radius:16px}.a2hs-card{gap:10px;margin-top:18px;padding:14px;display:grid}.a2hs-head{align-items:center;gap:12px;display:flex}.a2hs-head img{border:1px solid var(--line);background:#fff;border-radius:12px;width:48px;height:48px}.a2hs-card h2,.a2hs-bar strong{color:var(--navy);margin:0;font-size:.98rem}.a2hs-card p,.a2hs-card ol,.a2hs-bar span{color:var(--muted);margin:0;font-size:.86rem}.a2hs-card ol{gap:4px;padding-left:1.15rem;display:grid}.a2hs-share{vertical-align:-3px;color:var(--primary-dark)}.a2hs-actions{gap:8px;display:flex}.a2hs-actions button{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 12px;font-weight:700}.a2hs-dismiss{color:var(--muted)!important;border:1px solid var(--line)!important;background:0 0!important}.a2hs-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.a2hs-bar strong,.a2hs-bar span{display:block}.a2hs-bar .a2hs-actions{flex-shrink:0}.form-error{color:#b91c1c;background:#ef444414;border:1px solid #ef444440;border-radius:10px;padding:10px 12px;font-size:.9rem}.app-shell{flex-direction:column;max-width:720px;height:100%;max-height:100dvh;margin:0 auto;padding:0 16px;display:flex;position:relative;overflow:hidden}.topbar{padding:8px 4px 14px;padding-top:calc(max(var(--safe-top), var(--status-bar-gap)) + 8px);z-index:10;background:linear-gradient(#f8fbff 0%,#f8fbffeb 70%,#0000 100%);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.content{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding-bottom:16px;overflow-y:auto}.topbar-left{align-items:center;gap:12px;min-width:0;display:flex}.menu-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;flex-shrink:0;place-items:center;gap:5px;width:44px;height:44px;padding:12px 10px;display:grid}.menu-btn span{background:var(--navy);border-radius:999px;width:18px;height:2px;display:block}.topbar-logo{object-fit:contain;object-position:center;border:1px solid var(--line);box-sizing:border-box;background:#fff;border-radius:12px;flex-shrink:0;width:48px;height:48px;padding:3px}.topbar-brand{color:var(--navy);letter-spacing:.04em;font-size:1.05rem;font-weight:800}.topbar-user{color:var(--muted);font-size:.85rem}.sidebar-backdrop{opacity:0;pointer-events:none;z-index:40;background:#0a182873;transition:opacity .22s;position:fixed;inset:0}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.sidebar{background:var(--surface);z-index:50;width:min(86vw,320px);height:100dvh;padding:0 0 16px;padding-bottom:max(16px, env(safe-area-inset-bottom,0px));flex-direction:column;transition:transform .24s;display:flex;position:fixed;top:0;left:0;transform:translate(-105%);box-shadow:8px 0 32px #0f28462e}.sidebar.open{transform:translate(0)}.sidebar-brand{border-bottom:1px solid var(--line);padding:12px 12px 12px 14px;padding-top:calc(max(var(--safe-top), var(--status-bar-gap)) + 12px);background:#fff;justify-content:space-between;align-items:center;gap:8px;display:flex}.sidebar-brand-main{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.sidebar-logo{object-fit:contain;object-position:center;border:1px solid var(--line);box-sizing:border-box;background:#fff;border-radius:10px;flex-shrink:0;width:48px;height:48px;padding:2px;display:block}.sidebar-brand-user{gap:2px;min-width:0;display:grid}.sidebar-brand-user strong{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;line-height:1.2;overflow:hidden}.sidebar-brand-user span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.sidebar-close{color:var(--navy);cursor:pointer;background:#0f284614;border:0;border-radius:10px;flex-shrink:0;width:36px;height:36px;font-size:1.4rem;line-height:1}.sidebar-nav{flex:1;gap:4px;padding:12px;display:grid;overflow:auto}.sidebar-link{color:inherit;border:1px solid #0000;border-radius:12px;gap:2px;padding:12px;text-decoration:none;display:grid}.sidebar-link:hover,.sidebar-link.active{background:#00a8ff14;border-color:#00a8ff33}.sidebar-link-title{color:var(--navy);font-weight:700}.sidebar-link-desc{color:var(--muted);font-size:.82rem}.sidebar-logout{border:1px solid var(--line);color:var(--danger);cursor:pointer;background:#fff;border-radius:12px;margin:8px 12px 0;padding:12px;font-weight:700}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.stats-row article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:6px;padding:14px;display:grid}.stats-row span{color:var(--muted);font-size:.85rem}.stats-row strong{color:var(--navy);font-size:1.4rem}.module-grid{gap:12px;display:grid}.module-card{text-align:left;border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);padding:18px;text-decoration:none;display:block}.module-card h2{color:var(--navy);margin:0 0 6px;font-size:1.15rem}.module-card p{color:var(--muted);margin:0}.home-dash{gap:14px;padding-bottom:8px;display:grid}.home-hello{gap:2px;display:grid}.home-hello-date{color:var(--muted);margin:0;font-size:.8rem;font-weight:700}.home-hello h1{color:var(--navy);margin:0;font-size:1.35rem;font-weight:800;line-height:1.2}.home-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.home-stats article{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:2px;padding:10px 10px 9px;display:grid}.home-stats span{color:var(--muted);letter-spacing:.02em;font-size:.7rem;font-weight:700}.home-stats strong{color:var(--navy);font-size:1.15rem;font-weight:800;line-height:1.15}.home-block{gap:8px;display:grid}.home-block-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.home-block-head h2{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:800}.home-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.home-quick-btn{color:var(--navy);background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:14px;place-items:center;gap:4px;min-height:72px;padding:10px 6px;font-size:.72rem;font-weight:800;line-height:1.2;text-decoration:none;display:grid;box-shadow:0 4px 12px #0b3d6e0a}.home-quick-plus{border-radius:8px;place-items:center;width:22px;height:22px;font-size:.95rem;font-weight:800;line-height:1;display:grid}.home-quick-btn.tone-navy .home-quick-plus{color:var(--navy);background:#0b3d6e1f}.home-quick-btn.tone-blue .home-quick-plus{color:var(--primary-dark);background:#00a8ff24}.home-quick-btn.tone-green .home-quick-plus{color:#1b7a3d;background:#2e7d321f}.home-quick-btn.tone-amber .home-quick-plus{color:#8a6400;background:#ffc1072e}.home-quick-btn.tone-red .home-quick-plus{color:#b42318;background:#c628281a}.home-manage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.home-manage-tile{color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:12px;text-decoration:none;display:flex}.home-manage-tile.soon-tile{opacity:.72}.home-manage-label{color:var(--navy);font-size:.9rem;font-weight:800}.home-manage-count{color:var(--navy);font-size:1rem;font-weight:800}.home-manage-go{color:var(--muted);font-size:.75rem;font-weight:700}.home-manage-soon{color:var(--primary-dark);background:#00a8ff1f;border:1px solid #00a8ff38;border-radius:999px;padding:3px 8px;font-size:.68rem;font-weight:800}@media (width<=380px){.home-quick-grid,.home-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.soon{color:var(--primary-dark);letter-spacing:.02em;background:#00a8ff1f;border:1px solid #00a8ff47;border-radius:999px;align-items:center;margin-top:14px;padding:8px 14px;font-size:.88rem;font-weight:800;display:inline-flex}.placeholder-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 18px}.placeholder-card h1{color:var(--navy);margin:0 0 8px;font-size:1.4rem}.placeholder-card p{color:var(--muted);margin:0}.topbar-titles{min-width:0}.topbar-action{flex-shrink:0}.topbar-add-btn{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:10px 14px;font-size:.9rem;font-weight:700}.topbar-bill-btn{background:var(--navy);color:#fff;letter-spacing:.02em;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;min-height:34px;padding:8px 14px;font-size:.82rem;font-weight:800;line-height:1;box-shadow:0 3px 10px #0b3d6e2e}.page-toolbar{grid-template-columns:1fr auto;gap:8px;margin-bottom:14px;display:grid}.search-input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:12px;outline:none;padding:12px 14px}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #00a8ff26}.primary-btn{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:12px;padding:12px 14px;font-weight:700}.primary-btn:disabled{opacity:.7;cursor:wait}.ghost-btn{border:1px solid var(--line);background:var(--surface);color:var(--navy);cursor:pointer;border-radius:12px;padding:12px 14px;font-weight:600}.muted-text{color:var(--muted)}.page-error{margin-bottom:12px}.rm-grid{gap:12px;padding-bottom:24px;display:grid}.rm-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:0;overflow:hidden}.rm-card-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px 10px 12px 12px;display:grid}.rm-card-summary{width:100%;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:10px;padding:0;display:grid}.rm-thumb{border:1px solid var(--line);background:#f3f7fb;border-radius:10px;flex-shrink:0;place-items:center;width:56px;height:56px;display:grid;overflow:hidden}.rm-thumb img{object-fit:cover;width:100%;height:100%}.rm-thumb-fallback{color:var(--primary);letter-spacing:.04em;font-size:.78rem;font-weight:800}.rm-summary-text{justify-items:start;gap:6px;min-width:0;display:grid}.rm-summary-text h2{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin:0;font-size:.92rem;line-height:1.25;overflow:hidden}.rm-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;display:flex}.icon-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--navy);cursor:pointer;background:#fff;border-radius:9px;place-items:center;padding:0;display:grid}.icon-btn.stock{color:var(--primary-dark);background:#00a8ff1a;border-color:#00a8ff47}.icon-btn.danger{color:var(--danger);background:#ef44440f;border-color:#ef444440}.stock-pill{color:var(--muted);background:#6b7a8d1f;border-radius:999px;align-items:center;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.stock-pill.in{color:#0f766e;background:#14b8a624}.stock-pill.out{color:#b91c1c;background:#ef44441a}.rm-card-details{border-top:1px solid var(--line);background:#fbfdff;gap:12px;padding:12px;display:grid}.rm-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.rm-meta div{border:1px solid var(--line);background:#fff;border-radius:12px;gap:4px;padding:10px;display:grid}.rm-meta span{color:var(--muted);font-size:.78rem}.rm-meta strong{color:var(--navy);word-break:break-word;font-size:.92rem}.rm-meta strong.mono{font-family:ui-monospace,Consolas,monospace;font-size:.84rem}.rm-desc{color:var(--muted);margin:0;font-size:.9rem}.danger-btn{background:var(--danger);color:#fff;cursor:pointer;border:0;border-radius:12px;padding:12px 14px;font-weight:700}.danger-btn:disabled{opacity:.7;cursor:wait}.confirm-card{text-align:left}.topbar-back-btn{border-radius:999px;padding:8px 12px;font-size:.88rem}.screen-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:12px;margin-bottom:24px;padding:16px;display:grid}.screen-form label{color:var(--muted);gap:6px;font-size:.88rem;display:grid}.screen-form input,.screen-form textarea,.screen-form select{border:1px solid var(--line);width:100%;color:var(--text);resize:vertical;background:#f8fbff;border-radius:12px;outline:none;padding:12px}.screen-form input:focus,.screen-form textarea:focus,.screen-form select:focus{border-color:var(--primary)}.screen-form-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}.code-scan-field{gap:6px;display:grid}.code-scan-label{color:var(--muted);font-size:.88rem}.code-scan-row{align-items:stretch;gap:8px;display:flex}.code-scan-row input{border:1px solid var(--line);width:auto;min-width:0;color:var(--text);background:#f8fbff;border-radius:12px;outline:none;flex:1;padding:12px}.code-scan-row input:focus{border-color:var(--primary)}.scan-icon-btn{width:48px;min-height:48px;color:var(--primary-dark);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#00a8ff1a;border:1px solid #00a8ff59;border-radius:12px;flex-shrink:0;place-items:center;padding:0;display:grid}.scan-icon-btn:active{background:#00a8ff2e}.scan-icon-btn:disabled{opacity:.55;cursor:wait}.scanned-value{border:1px solid var(--line);color:var(--navy);word-break:break-all;background:#f8fbff;border-radius:12px;margin:0;padding:12px 14px;font-family:ui-monospace,Consolas,monospace;font-size:.95rem;line-height:1.4}.modal-backdrop{z-index:80;padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom,0px));background:#0a182873;place-items:end center;display:grid;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:20px 20px 16px 16px;gap:12px;width:min(100%,480px);max-height:min(88dvh,720px);padding:18px 16px 16px;display:grid;overflow:auto;box-shadow:0 -8px 32px #0f28462e}.modal-card h2{color:var(--navy);margin:0;font-size:1.2rem}.modal-sub{color:var(--muted);margin:-4px 0 0;font-size:.9rem}.modal-card label{color:var(--muted);gap:6px;font-size:.88rem;display:grid}.modal-card input,.modal-card textarea{border:1px solid var(--line);width:100%;color:var(--text);resize:vertical;background:#f8fbff;border-radius:12px;outline:none;padding:12px}.modal-card input:focus,.modal-card textarea:focus{border-color:var(--primary)}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.modal-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}.stock-type-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.chip-btn{border:1px solid var(--line);color:var(--navy);cursor:pointer;background:#fff;border-radius:999px;padding:10px 12px;font-weight:700}.chip-btn.active{color:var(--primary-dark);background:#00a8ff1f;border-color:#00a8ff59}.topbar-action-group{align-items:center;gap:6px;display:flex}.topbar-out-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#c62828;border:0;border-radius:999px;padding:10px 12px;font-size:.88rem;font-weight:700}.stock-filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.tally-export-bar{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.tally-export-bar strong{color:var(--navy);font-size:.95rem;display:block}.tally-export-bar p{color:var(--muted);margin:2px 0 0;font-size:.82rem}.tally-export-actions{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.tally-month-field{color:var(--muted);gap:4px;font-size:.75rem;font-weight:700;display:grid}.tally-month-field input{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:10px;min-height:42px;padding:10px 12px}.tally-export-actions .primary-btn{white-space:nowrap;min-height:42px;padding:10px 16px}.filter-chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:.84rem;font-weight:700;transition:background .15s,border-color .15s,color .15s}.filter-chip.active{color:var(--navy);background:#0b3d6e14;border-color:#0b3d6e47;box-shadow:inset 0 0 0 1px #0b3d6e0a}.stock-empty-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.stock-card-top{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.stock-type-pill,.stock-kind-pill{border-radius:999px;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.stock-type-pill.in{color:#2e7d32;background:#2e7d321f}.stock-type-pill.out{color:#c62828;background:#c628281f}.stock-kind-pill{color:var(--navy);background:#0b3d6e14}.stock-card-meta{color:var(--muted);flex-wrap:wrap;gap:10px;margin:4px 0 0;font-size:.88rem;display:flex}.qty-in{color:#1b7a3d;font-weight:800}.qty-out{color:#b42318;font-weight:800}.bill-thumb-link{gap:6px;margin-top:2px;text-decoration:none;display:grid}.bill-thumb-caption{color:var(--primary-dark);font-size:.82rem;font-weight:700}.bill-thumb,.bill-preview{object-fit:contain;border:1px solid var(--line);background:#f8fbff;border-radius:12px;width:100%;max-height:220px}.bill-preview-wrap,.product-image-field{gap:8px;display:grid}.product-image-label{color:var(--navy);font-size:.88rem;font-weight:700}.product-image-actions{flex-wrap:wrap;gap:8px;display:flex}.product-image-pick{gap:6px;display:grid}.product-image-pick input[type=file]{cursor:pointer;background:#0b3d6e08;border:1px dashed #0b3d6e47;border-radius:12px;padding:10px}.product-image-preview .bill-preview{max-height:180px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.entry-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 22px #0b3d6e0f}.entry-card.open{border-color:#0b3d6e38;box-shadow:0 10px 28px #0b3d6e1a}.stock-entry.is-in{border-left:3px solid #2e7d32}.stock-entry.is-sales{border-left:3px solid var(--primary)}.stock-entry.is-out{border-left:3px solid #c62828}.bill-entry{border-left:3px solid var(--primary)}.entry-card-main{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:6px;padding:14px 14px 12px;display:grid}.entry-card-topline{grid-template-columns:auto auto 1fr;align-items:center;gap:8px;display:grid}.entry-type-badge,.entry-kind-badge,.entry-doc-badge,.entry-doc-no{letter-spacing:.02em;border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;line-height:1.2;display:inline-flex}.entry-type-badge.in{color:#1b7a3d;background:#2e7d321a;border:1px solid #2e7d3238}.entry-type-badge.sales{color:#0f5f9e;background:#00a8ff1f;border:1px solid #00a8ff47}.entry-type-badge.produce{color:#6a4c00;background:#ffc10724;border:1px solid #ffc10759}.entry-type-badge.out{color:#b42318;background:#c6282814;border:1px solid #c6282833}.entry-kind-badge{color:var(--navy);background:#0b3d6e0f;border:1px solid #0b3d6e1f}.entry-doc-no{color:var(--navy);background:#00a8ff1a;border:1px solid #00a8ff38;font-size:.78rem}.entry-doc-badge{color:#0f5f9e;background:#0b3d6e0f;border:1px solid #0b3d6e24}.entry-chevron{color:var(--muted);justify-self:end;place-items:center;display:grid}.entry-card-main h2{color:var(--navy);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:2px 0 0;font-size:1.05rem;font-weight:800;line-height:1.3;display:-webkit-box;overflow:hidden}.entry-card-sub{color:var(--muted);margin:0;font-size:.84rem;line-height:1.35}.entry-amount-row{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:12px;margin-top:6px;padding-top:10px;display:flex}.entry-qty-block,.entry-money-block{gap:2px;display:grid}.entry-money-block{text-align:right}.entry-qty-block span,.entry-money-block span,.entry-amount-label{color:var(--muted);font-size:.78rem;font-weight:700}.entry-qty-block strong,.entry-money-block strong,.entry-amount-value{color:var(--navy);font-size:1.15rem;font-weight:800;line-height:1.2}.entry-amount-label{align-self:center}.entry-card-body{border-top:1px solid var(--line);background:linear-gradient(#fbfcfe 0%,#fff 50%);gap:10px;padding:12px 14px 14px;display:grid}.entry-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.entry-summary-strip.two{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-summary-strip>div{border:1px solid var(--line);background:#fff;border-radius:12px;gap:3px;padding:10px;display:grid}.entry-summary-strip span{color:var(--muted);font-size:.72rem;font-weight:700}.entry-summary-strip strong{color:var(--navy);word-break:break-word;font-size:.88rem;line-height:1.3}.entry-section-label{color:var(--muted);font-size:.8rem;font-weight:700}.entry-items{gap:8px;display:grid}.entry-item-row{border:1px solid var(--line);background:#fff;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.entry-item-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.entry-item-name{color:var(--navy);font-size:.9rem;font-weight:700;line-height:1.3}.entry-item-amount{color:var(--navy);white-space:nowrap;font-size:.92rem;font-weight:800}.entry-item-meta{color:var(--muted);font-size:.8rem}.entry-notes{color:var(--muted);margin:0;font-size:.88rem;line-height:1.4}.entry-footer-total{background:#0b3d6e0f;border:1px solid #0b3d6e1f;border-radius:12px;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 12px;display:flex}.entry-footer-total span{color:var(--muted);font-size:.85rem;font-weight:700}.entry-footer-total strong{color:var(--navy);font-size:1.15rem}@media (width<=420px){.entry-summary-strip{grid-template-columns:1fr}.entry-summary-strip.two{grid-template-columns:1fr 1fr}}.kind-toggle{grid-template-columns:1fr 1fr;gap:8px;display:grid}.kind-btn{border:1px solid var(--line);color:var(--navy);cursor:pointer;background:#fff;border-radius:12px;padding:12px;font-weight:700}.kind-btn.active{color:var(--primary-dark);background:#00a8ff1f;border-color:#00a8ff66}.linkish-btn{color:var(--primary-dark);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.quick-supplier-box{background:#00a8ff0a;border:1px dashed #00a8ff59;border-radius:12px;gap:10px;padding:12px;display:grid}.line-total{color:var(--navy);margin:0;font-size:.95rem}.form-hint{color:var(--muted);margin:0;font-size:.9rem;line-height:1.4}.address-block{border:1px solid var(--line);background:#f8fbff;border-radius:12px;gap:10px;padding:12px;display:grid}.full-field{gap:6px;width:100%;display:grid}.address-display{gap:8px;margin-top:10px;display:grid}.address-display-grid{gap:8px;display:grid}.full-meta{border:1px solid var(--line);background:#fff;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.full-meta span{color:var(--muted);font-size:.78rem}.full-meta strong{color:var(--navy);word-break:break-word;font-size:.92rem}.recipe-line{border:1px solid var(--line);background:#fff;border-radius:12px;gap:8px;padding:10px;display:grid}.recipe-grid{gap:14px;padding-bottom:24px;display:grid}.recipe-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.recipe-card-top{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:14px 12px 10px 14px;display:grid}.recipe-card-main{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:0;margin:0;padding:0}.recipe-card-title-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;display:grid}.recipe-card-main h2{color:var(--navy);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1rem;font-weight:800;line-height:1.35;display:-webkit-box;overflow:hidden}.recipe-chevron{color:var(--muted);place-items:center;margin-top:2px;display:grid}.recipe-card-sub{color:var(--muted);margin:6px 0 0;font-size:.84rem;line-height:1.35}.recipe-card-sub strong{color:var(--navy)}.recipe-card-actions{gap:6px;padding-top:2px;display:flex}.recipe-stats{grid-template-columns:1.2fr 1fr;gap:8px;padding:0 12px 12px;display:grid}.recipe-stat{border:1px solid var(--line);background:#f8fbff;border-radius:12px;gap:2px;padding:10px 12px;display:grid}.recipe-stat span{color:var(--muted);font-size:.75rem;font-weight:600}.recipe-stat strong{color:var(--navy);font-size:1.25rem;line-height:1.2}.recipe-stat.can-make.ok{background:#2e7d3214;border-color:#2e7d3238}.recipe-stat.can-make.ok strong{color:#2e7d32}.recipe-stat.can-make.zero{background:#c628280f;border-color:#c628282e}.recipe-stat.can-make.zero strong{color:#c62828}.recipe-card-body{border-top:1px solid var(--line);background:linear-gradient(#fbfcfe 0%,#fff 40%);gap:10px;padding:12px 12px 14px;display:grid}.recipe-bom-head{color:var(--muted);letter-spacing:.02em;font-size:.8rem;font-weight:700}.recipe-bom{gap:8px;display:grid}.recipe-bom-row{border:1px solid var(--line);background:#fff;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.recipe-bom-row.short{background:#c628280a;border-color:#c6282847}.recipe-bom-name{color:var(--navy);font-size:.9rem;font-weight:700;line-height:1.3}.recipe-bom-nums{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:.82rem;display:flex}.recipe-notes{color:var(--muted);margin:0;font-size:.88rem;line-height:1.4}.recipe-produce-btn{width:100%}.check-row{align-items:center;gap:10px;font-weight:600;color:var(--navy)!important;display:flex!important}.check-row input{width:18px;height:18px;accent-color:var(--primary)}.quote-line-summary{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:.84rem;display:flex}.quote-line-summary strong{color:var(--navy)}.quote-totals{border:1px solid var(--line);background:#f8fbff;border-radius:12px;gap:8px;padding:12px;display:grid}.quote-totals>div{color:var(--muted);justify-content:space-between;gap:12px;font-size:.9rem;display:flex}.quote-totals strong{color:var(--navy)}.quote-grand{border-top:1px solid var(--line);padding-top:6px;font-size:1rem!important}.quote-grand strong{font-size:1.1rem}.quote-grid{gap:14px;padding-bottom:24px;display:grid}.quote-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.quote-card-main{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:6px;padding:14px 14px 12px;display:grid}.quote-card-topline{grid-template-columns:auto auto 1fr;align-items:center;gap:8px;display:grid}.quote-no{letter-spacing:.02em;color:var(--navy);background:#00a8ff1a;border:1px solid #00a8ff38;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:800}.quote-status{letter-spacing:.02em;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800}.quote-status.draft{color:#9a6b00;background:#ffc10729;border:1px solid #ffc10759}.quote-status.sent{color:#2e7d32;background:#2e7d321a;border:1px solid #2e7d3240}.quote-status.billed{color:var(--navy);background:#0b3d6e1a;border:1px solid #0b3d6e38}.quote-to-bill-row{gap:6px;margin:12px 0 4px;display:grid}.quote-to-bill-row .primary-btn:disabled{opacity:.65;cursor:default}.quote-chevron{color:var(--muted);justify-self:end;place-items:center;display:grid}.quote-card-main h2{color:var(--navy);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:2px 0 0;font-size:1.05rem;font-weight:800;line-height:1.3;display:-webkit-box;overflow:hidden}.quote-card-sub{color:var(--muted);margin:0;font-size:.84rem;line-height:1.35}.quote-amount-row{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:10px;margin-top:6px;padding-top:10px;display:flex}.quote-amount-row span{color:var(--muted);font-size:.82rem;font-weight:600}.quote-amount-row strong{color:var(--navy);font-size:1.2rem;font-weight:800}.quote-card-body{border-top:1px solid var(--line);background:linear-gradient(#fbfcfe 0%,#fff 45%);gap:10px;padding:12px 14px 14px;display:grid}.quote-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.quote-summary-strip>div{border:1px solid var(--line);background:#fff;border-radius:12px;gap:3px;padding:10px;display:grid}.quote-summary-strip span{color:var(--muted);font-size:.72rem;font-weight:700}.quote-summary-strip strong{color:var(--navy);word-break:break-word;font-size:.9rem}.quote-items-head{color:var(--muted);font-size:.8rem;font-weight:700}.quote-items{gap:8px;display:grid}.quote-item-row{border:1px solid var(--line);background:#fff;border-radius:12px;gap:3px;padding:10px 12px;display:grid}.quote-item-name{color:var(--navy);font-size:.9rem;font-weight:700;line-height:1.3}.quote-item-meta{color:var(--muted);font-size:.8rem}.quote-item-amount{color:var(--navy);margin-top:2px;font-size:.95rem;font-weight:800}.quote-notes{color:var(--muted);margin:0;font-size:.88rem;line-height:1.4}.quote-footer-total{background:#0b3d6e0f;border:1px solid #0b3d6e1f;border-radius:12px;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 12px;display:flex}.quote-footer-total span{color:var(--muted);font-size:.85rem;font-weight:700}.quote-footer-total strong{color:var(--navy);font-size:1.15rem}.quote-share-btn{width:100%}.doc-created-banner{background:linear-gradient(145deg,#0b3d6e14,#0b3d6e05);border:1px solid #0b3d6e29;border-radius:16px;gap:12px;margin:0 0 16px;padding:16px;display:grid}.doc-created-banner h2{color:var(--navy);margin:0;font-size:1.05rem}.doc-created-banner p{color:var(--muted);margin:4px 0 0;font-size:.9rem}.doc-pdf-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.doc-pdf-actions.compact{margin:0}.doc-icon-btn{border:1px solid var(--line);cursor:pointer;width:40px;height:40px;color:var(--navy);background:#fff;border-radius:10px;place-items:center;padding:0;display:grid}.doc-icon-btn:disabled{opacity:.55;cursor:wait}.doc-icon-btn.pdf{color:#c62828;background:#c6282814;border-color:#c6282840}.doc-icon-btn.wa{color:#128c7e;background:#25d3661f;border-color:#25d36659}.doc-pdf-hint{color:var(--muted);flex:100%;margin:0;font-size:.78rem}.bill-card-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:4px;display:flex}.bill-manage-actions{align-items:center;gap:6px;display:flex}.toast-wrap{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:80;pointer-events:none;width:min(92vw,420px);position:fixed;transform:translate(-50%)}.toast-card{color:#fff;text-align:center;background:#0b3d6e;border-radius:14px;padding:14px 16px;font-weight:700;animation:.25s toast-in;box-shadow:0 10px 30px #0b3d6e59}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.field-hint{color:var(--muted);font-size:.8rem;font-weight:500}.linked-picker{border:1px solid var(--line);background:#f8fbff;border-radius:12px;gap:10px;padding:12px;display:grid}.linked-picker-head{gap:4px;display:grid}.linked-selected{flex-wrap:wrap;gap:6px;display:flex}.linked-chip{color:var(--navy);cursor:pointer;background:#00a8ff1a;border:1px solid #00a8ff59;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.linked-filters{margin-bottom:0}.linked-catalog{gap:6px;max-height:220px;padding-right:2px;display:grid;overflow:auto}.linked-option{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px 12px;display:grid}.linked-option.on{background:#00a8ff14;border-color:#00a8ff73}.linked-option span{color:var(--text);gap:2px;font-size:.9rem;font-weight:600;display:grid}.linked-option small{color:var(--muted);font-weight:500}.linked-manual{grid-template-columns:1fr auto;gap:8px;display:grid}.linked-manual input{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:12px;outline:none;padding:12px}.linked-list-block{gap:6px;margin-top:10px;display:grid}.linked-list{color:var(--text);margin:0;padding-left:18px}.linked-list li{margin:2px 0}@media (width>=640px){.stats-row{grid-template-columns:repeat(4,minmax(0,1fr))}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-manage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page-toolbar{grid-template-columns:1fr auto}.modal-backdrop{place-items:center}.modal-card{border-radius:20px}}.bill-tabs{background:#0b3d6e0f;border-radius:12px;gap:4px;margin-bottom:14px;padding:4px;display:flex}.bill-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:10px 8px;font-size:.86rem;font-weight:700;transition:background .15s,color .15s}.bill-tab.active{background:var(--surface);color:var(--navy);box-shadow:0 1px 3px #0b3d6e1f}.bill-channel-filters{margin-top:-4px}.channel-badge{border-radius:999px;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.channel-badge.amazon{color:#b36b00;background:#ff990029}.channel-badge.flipkart{color:#2874f0;background:#2874f01f}.return-badge{color:#2e7d32!important;background:#2e7d321f!important}.scan-code-clip{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:120px;display:inline-block;overflow:hidden}.marketplace-banner h2{font-size:1rem}.marketplace-scan-form .form-grid-2{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.marketplace-scan-form .input-with-action{align-items:stretch;gap:8px;display:flex}.marketplace-scan-form .input-with-action input{flex:1}.marketplace-scan-form .picker-trigger{text-align:left;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);cursor:pointer;border-radius:10px;padding:12px 14px;font-weight:600}.marketplace-product-picker{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:14px;overflow:hidden}.marketplace-product-picker>input{border:none;border-bottom:1px solid var(--line);border-radius:0;width:100%;padding:12px 14px}.marketplace-product-picker ul{max-height:220px;margin:0;padding:0;list-style:none;overflow:auto}.marketplace-product-picker li button{text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0b3d6e0f;flex-direction:column;gap:2px;width:100%;padding:10px 14px;display:flex}.marketplace-product-picker li button span{color:var(--muted);font-size:.8rem}.marketplace-product-picker li button:hover{background:#0b3d6e0a}.form-actions-inline{flex-wrap:wrap;gap:8px;display:flex}@media (width<=520px){.marketplace-scan-form .form-grid-2{grid-template-columns:1fr}}.payment-method-inactive{opacity:.72}.payment-kind-cash{color:#2e7d32;background:#2e7d321f}.payment-kind-bank{color:var(--navy);background:#0b3d6e1a}.payment-kind-other{color:#6d4c2f;background:#7850281a}.payment-amt-income{color:#2e7d32!important}.payment-amt-expense{color:#c62828!important}.payment-total-strip{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:10px 14px}
