:root{font-family:"Microsoft YaHei",Arial,sans-serif;color:#242a28;background:#f3f6f5;font-size:16px}*{box-sizing:border-box}body{margin:0}.modal-open{overflow:hidden}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 28px;background:#fff;border-bottom:1px solid #dce3e0}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:#08775f;color:#fff;font-size:21px;font-weight:700;border-radius:6px}.brand h1{margin:0;font-size:21px}.brand p{margin:3px 0 0;color:#69736f;font-size:13px}.actions{display:flex;align-items:center;gap:8px}.search{display:flex;align-items:center;gap:7px;border:1px solid #cfd8d4;padding:0 11px;height:40px;background:#fff}.search input{border:0;outline:0;width:220px;font:inherit}.button{height:40px;padding:0 14px;border:1px solid #08775f;border-radius:4px;font:inherit;text-decoration:none;display:inline-flex;align-items:center;cursor:pointer}.primary{background:#08775f;color:#fff}.secondary{background:#fff;color:#08775f}.button:disabled{opacity:.5}main{padding:20px 28px 38px}.summary{display:flex;align-items:baseline;gap:7px;margin-bottom:14px;color:#66716c}.summary strong{font-size:23px;color:#202725}.summary #source{margin-left:auto}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}.card{display:grid;grid-template-columns:145px minmax(0,1fr);min-height:310px;padding:0;background:#fff;border:1px solid #d9e0dd;text-align:left;color:inherit;font:inherit;cursor:pointer;border-radius:6px;overflow:hidden}.card:hover{border-color:#08775f;box-shadow:0 5px 18px rgba(25,50,43,.1)}.thumb{display:grid;place-items:center;background:#eef2f0;color:#8a9590;min-height:100%}.thumb img{width:100%;height:100%;object-fit:contain}.card-body{padding:16px;min-width:0}.card h2{font-size:18px;margin:0 0 14px;line-height:1.35}.card-info{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e1e6e4;border-bottom:1px solid #e1e6e4}.card-info section{padding:12px 10px 12px 0;min-width:0}.card-info section+section{padding-left:12px;border-left:1px solid #e1e6e4}.card h3,.detail-section h3{margin:0 0 8px;color:#08775f;font-size:17px}.card p{font-size:15px;line-height:1.65;margin:0;overflow-wrap:anywhere}.card-bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:13px}.card-bottom span,.detail-footer span{display:block;font-size:13px;color:#6d7773}.card-bottom strong{font-size:20px;color:#be3d50}.card-bottom b{font-size:16px}.quantity{color:#d92732!important;font-size:24px!important}.note{margin-top:12px!important}.note b{color:#08775f;margin-right:8px}.loading,.empty,.error{grid-column:1/-1;padding:70px;text-align:center;background:#fff;border:1px solid #d9e0dd}.error strong{color:#b22935}.error a{color:#08775f}.overlay{position:fixed;inset:0;z-index:20;background:rgba(24,30,28,.72);padding:4vh 3vw}.overlay[hidden]{display:none}.dialog{position:relative;max-width:1160px;height:92vh;margin:auto;background:#fff;border-radius:6px;overflow:auto}.close{position:absolute;right:16px;top:14px;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:#343b38;color:#fff;font-size:28px;cursor:pointer}.nav{position:fixed;top:50%;width:42px;height:54px;border:0;background:#343b38;color:#fff;font-size:35px;cursor:pointer}.nav:disabled{opacity:.25}.prev{left:calc(50% - 575px)}.next{right:calc(50% - 575px)}.detail-head{padding:24px 68px 20px 30px;border-bottom:1px solid #dce3e0}.detail-head h2{margin:0;font-size:25px}.detail-head p{margin:6px 0 0;color:#737d79}.detail-grid{display:grid;grid-template-columns:52% 24% 24%;min-height:calc(92vh - 90px)}.detail-image{display:grid;place-items:center;background:#eef2f0;color:#89928f}.detail-image img{width:100%;height:100%;max-height:68vh;object-fit:contain}.detail-section{padding:24px;font-size:18px;line-height:1.7;overflow-wrap:anywhere}.detail-section+section{border-left:1px solid #dce3e0}.detail-section p{margin:0}.materials h3{color:#08775f}.detail-footer{grid-column:2/4;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #dce3e0}.detail-footer>div{padding:17px 20px;border-right:1px solid #dce3e0}.detail-footer strong{font-size:25px;color:#be3d50}.detail-footer b{font-size:18px}.detail-note{grid-column:1/-1;border-top:1px solid #dce3e0}
@media(max-width:760px){.topbar{position:static;align-items:flex-start;flex-direction:column;padding:14px}.actions{width:100%;flex-wrap:wrap}.search{width:100%}.search input{width:100%}main{padding:14px}.cards{grid-template-columns:1fr}.card{grid-template-columns:110px 1fr}.card-info{grid-template-columns:1fr}.card-info section+section{padding-left:0;border-left:0;border-top:1px solid #e1e6e4}.overlay{padding:0}.dialog{height:100vh;border-radius:0}.detail-grid{display:block}.detail-image{height:42vh}.detail-section+section{border-left:0;border-top:1px solid #dce3e0}.detail-footer{display:grid;grid-template-columns:1fr 1fr}.nav{top:auto;bottom:12px;z-index:3}.prev{left:12px}.next{right:12px}}
.load-row{display:flex;justify-content:center;padding:24px}.load-row .button{min-width:140px;justify-content:center}.detail-note b{display:block;margin-top:6px;color:#242a28;font-weight:400;line-height:1.6}
.load-earlier-row{padding:0 0 16px}
.sheet-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 16px;scrollbar-width:thin}.sheet-tab{display:inline-flex;align-items:center;gap:8px;flex:none;height:38px;padding:0 12px;border:1px solid #cbd6d2;background:#fff;color:#3b4743;border-radius:4px;font:inherit;cursor:pointer}.sheet-tab b{min-width:24px;padding:2px 6px;background:#edf2f0;color:#68736f;border-radius:3px;font-size:12px}.sheet-tab.active{border-color:#08775f;background:#08775f;color:#fff}.sheet-tab.active b{background:#fff;color:#08775f}.no-sheets{color:#777}

/* Stable list-card layout; full text remains available in the detail dialog. */
.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:start}
.card{grid-template-columns:1fr;grid-template-rows:180px auto;width:100%;height:520px;min-height:0}
.thumb{min-width:0;min-height:0;border-bottom:1px solid #e1e6e4;overflow:hidden;contain:paint}
.thumb img{display:block;width:100%;height:100%;object-fit:contain}
.card-body{position:relative;z-index:1;display:flex;flex-direction:column;min-height:0;background:#fff}
.card h2{margin-bottom:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-info{height:195px;flex:none}
.card-info section{overflow:hidden}
.card-info p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden;line-height:1.5}
.card-bottom{margin-top:auto;grid-template-columns:repeat(3,minmax(0,1fr))}
.card-bottom b{display:block;overflow-wrap:anywhere}
.quantity{font-size:22px!important}
.note{margin-top:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:1800px){.cards{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:1400px) and (max-width:1799px){.cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1000px) and (max-width:1399px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.card{grid-template-columns:1fr;grid-template-rows:210px auto;height:590px}.card p{font-size:16px}.card-info{grid-template-columns:1fr 1fr;height:230px}.card-info section+section{padding-left:12px;border-left:1px solid #e1e6e4;border-top:0}}

.sync-main{max-width:920px;margin:28px auto;padding:0 18px;display:grid;gap:18px}.sync-panel{background:#fff;border:1px solid #d9e2df;padding:22px}.sync-panel h2{margin:0 0 8px;font-size:20px}.sync-help{color:#5f6f69;line-height:1.7;margin:0 0 16px}.sync-key-row,.sync-actions{display:flex;gap:10px;align-items:center}.sync-key-row input{flex:1;min-width:0;height:42px;border:1px solid #bdcbc6;padding:0 12px;font-size:16px}.sync-status{margin-top:14px;line-height:1.6;word-break:break-all}.sync-panel progress{width:100%;height:16px;margin-top:18px}.sync-panel input[type=file]{display:block;margin:10px 0 16px;max-width:100%}@media(max-width:600px){.sync-key-row{align-items:stretch;flex-direction:column}.sync-main{margin:16px auto}.sync-panel{padding:16px}}

/* Keep WPS worksheet controls in the unused center area of the top toolbar. */
.topbar{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;justify-content:normal}.topbar-sheets{min-width:0;padding:0;justify-content:center}.topbar-sheets .sheet-tab{height:36px}@media(max-width:1100px){.topbar{grid-template-columns:auto 1fr}.topbar-sheets{grid-column:1/-1;grid-row:2;justify-content:flex-start}.actions{justify-self:end}}@media(max-width:760px){.topbar{display:flex}.topbar-sheets{width:100%;justify-content:flex-start}}
.topbar{grid-template-columns:auto auto minmax(260px,1fr) auto}.topbar-count{display:flex;align-items:baseline;gap:6px;white-space:nowrap;padding:0 4px}.topbar-count strong{font-size:24px;color:#202725}.topbar-count span{font-size:14px;color:#68736f}@media(max-width:1300px){.topbar{grid-template-columns:auto auto 1fr}.actions{grid-column:1/-1;grid-row:2;justify-self:end}.topbar-sheets{justify-content:flex-start}}@media(max-width:760px){.topbar-count{padding:0}.actions{order:4}.topbar-sheets{order:3}}
.card{content-visibility:auto;contain-intrinsic-size:auto 520px}
.card-sheet{display:block;margin:-7px 0 9px;color:#68736f;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail-footer>label{display:block;padding:17px 20px;border-right:1px solid #dce3e0}.detail-input,.detail-textarea{width:100%;border:1px solid #b9c7c2;border-radius:3px;background:#fff;color:#242a28;font:inherit;outline:none}.detail-input{height:42px;margin-top:6px;padding:0 10px;font-size:18px}.detail-input:focus,.detail-textarea:focus{border-color:#08775f;box-shadow:0 0 0 2px rgba(8,119,95,.12)}.quantity-input{color:#d92732;font-size:22px;font-weight:700}.detail-textarea{min-height:92px;margin-top:7px;padding:10px;line-height:1.5;resize:vertical}.detail-actions{grid-column:1/-1!important;display:flex;align-items:center;gap:14px;border-top:1px solid #dce3e0;border-right:0!important}.detail-actions #saveStatus{color:#08775f;font-size:14px}@media(max-width:760px){.detail-footer>label{border-bottom:1px solid #dce3e0}.detail-actions{grid-column:1/-1!important}}
.quantity-history{grid-column:1/-1;margin:0;padding:12px 20px;border-top:1px dashed #cdd7d3;color:#65716c;line-height:1.45}.quantity-history strong{display:block;margin-bottom:5px;color:#08775f!important;font-size:12px!important;font-weight:700}.quantity-history small{display:grid;grid-template-columns:125px minmax(0,1fr);gap:10px;align-items:baseline;font-size:12px;white-space:nowrap}.quantity-history time{font:inherit;color:#65716c}.quantity-history em{min-width:0;overflow:hidden;color:#242a28;font:inherit;font-style:normal;text-overflow:ellipsis}

@media(max-width:760px){
  html{max-width:100%;overflow-x:clip}body{max-width:100%}
  .topbar{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px}
  .brand{min-width:0;gap:9px}.brand-mark{width:38px;height:38px;font-size:19px}.brand h1{font-size:18px;white-space:nowrap}.brand p{max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
  .topbar-count{justify-self:end;padding:0}.topbar-count strong{font-size:22px}.topbar-count span{font-size:12px}
  .topbar-sheets{grid-column:1/-1;grid-row:auto;order:initial;width:100%;justify-content:flex-start;padding:2px 0 4px;overscroll-behavior-x:contain}.topbar-sheets .sheet-tab{height:36px;padding:0 10px;font-size:14px}
  .actions{grid-column:1/-1;grid-row:auto;order:initial;justify-self:stretch;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:7px;width:100%}
  .search{grid-column:1/4;width:100%;height:42px;padding:0 10px}.search input{width:100%;min-width:0;font-size:16px}.actions #searchBtn{grid-column:4}.actions .button{height:42px;justify-content:center;padding:0 9px;white-space:nowrap;font-size:14px}.actions>a,.actions>#refreshBtn{grid-column:auto}
  main{padding:10px 10px calc(24px + env(safe-area-inset-bottom))}.cards{grid-template-columns:minmax(0,1fr);gap:10px}
  .card{grid-template-columns:1fr;grid-template-rows:210px minmax(0,1fr);height:590px;border-radius:5px}.card-body{padding:14px}.card h2{font-size:17px}.card-info{grid-template-columns:1fr 1fr;height:230px}.card h3{font-size:16px}.card p{font-size:15px}.card-bottom{gap:6px}.card-bottom span{font-size:12px}.quantity{font-size:21px!important}
  .loading,.empty,.error{padding:48px 18px}
  .overlay{padding:0}.dialog{width:100%;max-width:none;height:100dvh;margin:0;border-radius:0;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.close{position:fixed;right:12px;top:calc(10px + env(safe-area-inset-top));width:40px;height:40px}
  .detail-head{padding:calc(16px + env(safe-area-inset-top)) 60px 14px 16px}.detail-head h2{font-size:21px;line-height:1.35}.detail-head p{font-size:13px}
  .detail-grid{display:block;min-height:0}.detail-image{height:38vh;min-height:220px;max-height:340px}.detail-image img{max-height:100%}.detail-section{padding:16px;font-size:16px;line-height:1.65}.detail-section+section{border-left:0;border-top:1px solid #dce3e0}
  .detail-footer{display:grid;grid-template-columns:1fr 1fr}.detail-footer>div,.detail-footer>label{min-width:0;padding:14px;border-right:1px solid #dce3e0;border-bottom:1px solid #dce3e0}.detail-footer strong{font-size:23px}.detail-footer b{font-size:16px}.detail-input{height:44px;font-size:16px}.quantity-input{font-size:20px}.detail-note{grid-column:1/-1}.detail-textarea{min-height:110px;font-size:16px}.detail-actions{grid-column:1/-1!important;position:static;padding:14px!important;border-right:0!important}.detail-actions .button{min-width:112px;height:44px;justify-content:center}
  .nav{position:fixed;top:auto;bottom:calc(12px + env(safe-area-inset-bottom));z-index:4;width:46px;height:46px;font-size:30px;border-radius:4px}.prev{left:12px}.next{right:12px}
}

.daily-history{grid-column:1/-1;background:#fff;border:1px solid #dce3e0;border-radius:4px;overflow:hidden}
.history-filter{grid-column:1/-1;display:flex;align-items:end;gap:10px;padding:14px;border:1px solid #d9e0dd;background:#fff}
.history-filter label{display:grid;gap:5px;color:#68736f;font-size:13px}.history-filter input{height:38px;padding:0 10px;border:1px solid #bdcbc6;border-radius:3px;font:inherit;color:#26342f;background:#fff}
.history-filter .button{height:38px}.history-filter-error{align-self:center;color:#bd3341;font-size:13px}
.yearly-history-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.daily-history-head,.daily-history-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(130px,1fr) minmax(150px,1fr);align-items:center;min-height:52px;padding:0 20px;border-bottom:1px solid #e4e9e7}
.daily-history-head{background:#f3f7f5;color:#60706a;font-weight:700}
.daily-history-row:last-child{border-bottom:0}
.daily-history-row time{font-variant-numeric:tabular-nums}
.daily-history-row strong{color:#087f68;font-size:20px}
@media(max-width:700px){.history-filter{display:grid;grid-template-columns:1fr 1fr}.history-filter label{min-width:0}.history-filter input{width:100%;min-width:0}.history-filter-error{grid-column:1/-1}.yearly-history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-history-head,.daily-history-row{grid-template-columns:1.2fr 1fr 1fr;padding:0 12px;font-size:13px}.daily-history-row strong{font-size:17px}}
@media(max-width:390px){.actions{grid-template-columns:minmax(0,1fr) auto auto}.search{grid-column:1/3}.actions #searchBtn{grid-column:3}.actions .button{font-size:13px;padding:0 7px}.brand p{max-width:190px}.card{height:610px}}

/* Compact, always-accessible controls on phones. */
@media(max-width:760px){
  .topbar{position:sticky;top:0;padding:calc(8px + env(safe-area-inset-top)) 10px 9px;gap:8px;box-shadow:0 2px 10px rgba(26,49,42,.09)}
  .brand-mark{width:34px;height:34px;font-size:17px}.brand h1{font-size:16px}.brand p{margin-top:1px;max-width:180px}.topbar-count strong{font-size:20px}
  .topbar-sheets{display:flex;grid-column:1/-1;width:100%;padding:2px 0 4px;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .topbar-sheets .sheet-tab{scroll-snap-align:start;min-height:38px}
  .actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .search{grid-column:1/3;height:44px;border-radius:5px}.actions #searchBtn{grid-column:3;height:44px}
  .actions .image-sync-link{grid-column:1}.actions #connectBtn{grid-column:2}.actions #refreshBtn{grid-column:3}
  .actions>a,.actions>#refreshBtn{height:38px;font-size:12px;padding:0 5px}
}
@media(max-width:390px){
  .brand p{max-width:155px}.topbar-count span{display:none}
  .actions .button{padding:0 4px}.actions>a,.actions>#refreshBtn{font-size:11px}
}

/* Mobile detail: keep media and text in separate layout regions. */
@media(max-width:760px){
  .detail-grid{display:flex;flex-direction:column;width:100%;min-width:0}
  .detail-image{position:relative;isolation:isolate;display:block;flex:0 0 clamp(250px,42vh,390px);width:100%;height:auto;min-height:0;max-height:none;overflow:hidden;contain:layout paint;background:#eef2f0}
  .detail-image img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
  .detail-section{position:relative;z-index:1;flex:none;width:100%;padding:18px 14px;background:#fff;font-size:19px;line-height:1.75}
  .detail-section h3{margin-bottom:10px;font-size:21px}.detail-section p{width:100%;max-width:none;white-space:pre-wrap;overflow-wrap:anywhere}
  .detail-footer{flex:none;width:100%;font-size:17px}.detail-footer>div,.detail-footer>label{padding:14px 12px}.detail-footer span{font-size:14px}.detail-footer .quantity-field{grid-column:auto;border-right:0}.quantity-history{grid-column:1/-1;margin:0;padding:13px 12px}.quantity-history strong{font-size:14px!important}.quantity-history small{grid-template-columns:138px minmax(0,1fr);gap:12px;font-size:14px}
}
@media(max-width:390px){
  .detail-image{flex-basis:clamp(235px,39vh,340px)}
  .detail-section{padding:17px 12px;font-size:18px}.detail-section h3{font-size:20px}
}

/* Desktop detail: image fills the left pane; fields use a readable two-column grid. */
@media(min-width:761px){
  .overlay{padding:2vh 2vw}.dialog{width:min(1240px,96vw);max-width:none;height:96vh;overflow:hidden}
  #detail{display:flex;flex-direction:column;height:100%;min-height:0}.detail-head{flex:none;padding:20px 68px 16px 30px}.detail-head h2{font-size:23px}
  .detail-grid{flex:1;display:grid;grid-template-columns:minmax(430px,50%) minmax(220px,1fr) minmax(220px,1fr);grid-template-rows:minmax(280px,1fr) auto;min-height:0;overflow:hidden}
  .detail-image{grid-column:1;grid-row:1/3;min-width:0;min-height:0;height:100%;overflow:hidden;border-right:1px solid #dce3e0}
  .detail-image img{display:block;width:100%;height:100%;max-height:none;object-fit:contain}
  .detail-section{grid-row:1;min-height:0;padding:22px 20px;overflow:auto;font-size:17px}.detail-section+section{border-left:1px solid #dce3e0}
  .detail-footer{grid-column:2/4;grid-row:2;display:grid;grid-template-columns:1fr 1fr;max-height:440px;overflow:auto;background:#fff;border-top:1px solid #dce3e0}
  .detail-footer>div,.detail-footer>label{min-width:0;padding:12px 16px;border-right:1px solid #dce3e0;border-bottom:1px solid #dce3e0}
  .detail-footer .detail-note,.detail-footer .detail-actions,.detail-footer .quantity-history{grid-column:1/-1}
  .detail-input{height:40px;font-size:16px}.quantity-input{font-size:19px}.detail-textarea{min-height:72px;max-height:110px}
  .detail-actions{padding:12px 16px!important}.detail-actions .button{height:40px;justify-content:center}
  .nav{z-index:3}.prev{left:max(12px,calc(50% - 610px))}.next{right:max(12px,calc(50% - 610px))}
}
.blank-menu{position:fixed;z-index:50;min-width:150px;padding:6px;background:#fff;border:1px solid #cbd6d2;border-radius:5px;box-shadow:0 8px 28px rgba(21,40,34,.22)}.blank-menu[hidden]{display:none}.blank-menu button{width:100%;height:40px;padding:0 12px;border:0;background:#fff;color:#08775f;text-align:left;font:inherit;cursor:pointer}.blank-menu button:hover,.blank-menu button:focus{background:#edf5f2;outline:0}.create-card-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:3vh 3vw;background:rgba(24,30,28,.72)}.create-card-overlay[hidden]{display:none}.create-card-dialog{width:min(900px,96vw);max-height:94vh;overflow:auto;background:#fff;border-radius:6px;box-shadow:0 18px 55px rgba(0,0,0,.28)}.create-card-dialog>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:#fff;border-bottom:1px solid #dce3e0}.create-card-dialog h2{margin:0;font-size:22px}.create-card-dialog>header button{width:38px;height:38px;border:0;border-radius:50%;background:#343b38;color:#fff;font-size:25px;cursor:pointer}.create-card-dialog form{padding:20px 22px}.create-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.create-fields label{display:flex;min-width:0;flex-direction:column;gap:7px}.create-fields label>span{color:#4f5c57;font-size:14px}.create-fields input,.create-fields textarea{width:100%;border:1px solid #b9c7c2;border-radius:3px;background:#fff;color:#242a28;font:inherit;outline:0}.create-fields input{height:42px;padding:0 10px}.create-fields textarea{padding:10px;line-height:1.55;resize:vertical}.create-fields input:focus,.create-fields textarea:focus{border-color:#08775f;box-shadow:0 0 0 2px rgba(8,119,95,.12)}.create-fields .wide{grid-column:span 3}.create-image-field{grid-row:span 2}.create-image-field input{height:auto;padding:8px}.create-image-field img{display:block;width:100%;height:120px;border:1px solid #dce3e0;background:#eef2f0;object-fit:contain}.create-card-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #dce3e0}.create-card-dialog footer [role=status]{margin-right:auto;color:#b22935;line-height:1.4}
@media(max-width:760px){.create-card-overlay{padding:0}.create-card-dialog{width:100%;height:100dvh;max-height:none;border-radius:0}.create-card-dialog>header{padding:calc(12px + env(safe-area-inset-top)) 14px 12px}.create-card-dialog form{padding:14px 14px calc(24px + env(safe-area-inset-bottom))}.create-fields{grid-template-columns:1fr 1fr;gap:12px}.create-fields .wide{grid-column:1/-1}.create-image-field{grid-column:1/-1;grid-row:auto}.create-image-field img{height:190px}.create-card-dialog footer{position:sticky;bottom:0;z-index:2;margin:18px -14px -14px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff}.create-card-dialog footer [role=status]{font-size:13px}.create-card-dialog footer .button{flex:none}}
.blank-menu button.danger{color:#b22935}.blank-menu button.danger:hover,.blank-menu button.danger:focus{background:#fff0f1}
.card{position:relative}.card-select{position:absolute;z-index:3;top:8px;left:8px;display:grid;place-items:center;width:25px;height:25px;margin:0;border:1px solid #c3ceca;border-radius:3px;background:rgba(255,255,255,.94);box-shadow:0 1px 4px rgba(0,0,0,.08);cursor:pointer}.card-checkbox{width:16px;height:16px;margin:0;accent-color:#08775f;cursor:pointer}.card-title-row{grid-template-columns:minmax(0,1fr) auto}.bulk-delete{white-space:nowrap}.bulk-delete[hidden]{display:none!important}
.nav-count{display:inline-flex;min-width:20px;height:20px;padding:0 5px;align-items:center;justify-content:center;margin-left:4px;background:#e7efec;color:#08775f;font-size:12px;border-radius:3px}
.card-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;margin-bottom:12px}.card-title-row h2{min-width:0;margin:0}.add-pending-card{height:30px;padding:0 8px;border:1px solid #08775f;border-radius:3px;background:#fff;color:#08775f;font:inherit;font-size:12px;white-space:nowrap;cursor:pointer}.add-pending-card:hover{background:#08775f;color:#fff}.card:focus-visible{outline:3px solid rgba(8,119,95,.25);outline-offset:1px}
.card-bottom-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.stage-tabs{display:flex;gap:8px;justify-content:center;min-width:0}.stage-tab{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border:1px solid #cbd6d2;border-radius:4px;background:#fff;color:#34413d;font:inherit;white-space:nowrap;cursor:pointer}.stage-tab b{min-width:24px;padding:2px 6px;border-radius:3px;background:#edf2f0;color:#68736f;font-size:12px}.stage-tab.active{border-color:#08775f;background:#08775f;color:#fff}.stage-tab.active b{background:#fff;color:#08775f}
.button.danger{border-color:#bd3341;background:#fff;color:#bd3341}.button.danger:hover{background:#bd3341;color:#fff}.pending-controls{grid-template-columns:minmax(130px,1fr) auto auto auto}.history-summary{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-bottom:2px;border:1px solid #d9e0dd;background:#d9e0dd}.history-summary>div{padding:16px;background:#fff}.history-summary span{display:block;margin-bottom:5px;color:#68736f;font-size:13px}.history-summary strong{font-size:25px;color:#08775f}.completed-card{height:410px;min-height:0;cursor:default}.completed-info{display:grid;gap:14px;padding-top:14px;border-top:1px solid #e1e6e4}.completed-info span{display:block;color:#68736f;font-size:13px}.completed-info strong,.completed-info time{display:block;margin-top:3px;font-size:18px}.completed-info strong{color:#08775f}
.pending-card{cursor:default;text-align:left;height:auto;min-height:520px}
.pending-controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;align-items:end;padding:14px;border-top:1px solid #dce3e0}.pending-controls label{grid-column:span 3;min-width:0}.pending-controls .button{grid-column:span 2;min-width:0;width:100%;padding:0 5px;justify-content:center;white-space:nowrap;font-size:13px}
.auto-refresh-toggle{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 10px;border:1px solid #cdd9d5;background:#fff;color:#31534a;white-space:nowrap;cursor:pointer}.auto-refresh-toggle input{width:16px;height:16px;margin:0;accent-color:#08775f}.auto-refresh-toggle:has(input:checked){border-color:#08775f;background:#edf8f5;color:#08775f}
.pending-controls label{display:grid;gap:5px}.pending-controls label span{color:#64736f;font-size:13px}.pending-controls .detail-input{width:100%}.pending-cards .card-sheet{display:block;margin:2px 14px 10px;color:#6b7a76}
@media(max-width:760px){.add-pending-card{height:32px;font-size:13px}.pending-topbar{grid-template-columns:1fr auto}.pending-topbar .stage-tabs{grid-column:1/-1;width:100%;overflow-x:auto;justify-content:flex-start}.pending-topbar .actions{grid-column:1/-1;width:100%}.pending-topbar .search{flex:1}.pending-controls{grid-template-columns:repeat(6,minmax(0,1fr))}.pending-controls label{grid-column:span 3}.pending-controls .button{grid-column:span 2;width:100%;justify-content:center}.pending-card{height:auto;min-height:590px}.history-summary{grid-template-columns:1fr 1fr}.history-summary>div:last-child{grid-column:1/-1}.completed-card{height:480px}}
.pending-order-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:rgba(24,30,28,.72)}.pending-order-overlay[hidden]{display:none}.pending-order-dialog{width:min(540px,100%);overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 55px rgba(0,0,0,.3)}.pending-order-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #dce3e0}.pending-order-dialog h2{margin:0;font-size:22px}.pending-order-dialog header p{margin:5px 0 0;color:#68736f}.pending-order-dialog header button{flex:none;width:38px;height:38px;border:0;border-radius:50%;background:#343b38;color:#fff;font-size:25px;line-height:1;cursor:pointer}.pending-order-dialog form{padding:20px}.pending-order-dialog fieldset{min-width:0;margin:0 0 20px;padding:0;border:0}.pending-order-dialog legend,.pending-quantity-field>span{display:block;margin-bottom:9px;color:#34413d;font-weight:700}.pending-order-dialog b{color:#c83242}.pending-type-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.pending-type-options label{position:relative;min-width:0;cursor:pointer}.pending-type-options input{position:absolute;opacity:0;pointer-events:none}.pending-type-options span{display:flex;height:44px;align-items:center;justify-content:center;border:1px solid #bdcbc6;border-radius:4px;background:#fff;color:#34413d;font-size:16px}.pending-type-options input:checked+span{border-color:#08775f;background:#08775f;color:#fff;font-weight:700}.pending-type-options input:focus-visible+span{outline:3px solid rgba(8,119,95,.24);outline-offset:2px}.pending-quantity-field{display:block}.pending-quantity-field input{width:100%;height:46px;padding:0 12px;border:1px solid #b9c7c2;border-radius:3px;font:inherit;font-size:18px;outline:0}.pending-quantity-field input:focus{border-color:#08775f;box-shadow:0 0 0 2px rgba(8,119,95,.12)}.pending-order-error{min-height:22px;margin:9px 0 0;color:#bd3341}.pending-order-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid #dce3e0}.urgent-tag{position:absolute;z-index:4;top:10px;left:10px;padding:5px 9px;border-radius:3px;background:#d72638;color:#fff;font-size:14px;line-height:1;box-shadow:0 2px 7px rgba(90,0,8,.25)}.detail-urgent-tag{display:inline-flex;margin-left:10px;padding:4px 8px;border-radius:3px;background:#d72638;color:#fff;font-size:14px;vertical-align:middle}.pending-card:has(.urgent-tag){border-color:#d72638;box-shadow:0 0 0 1px rgba(215,38,56,.12)}
@media(max-width:760px){.pending-order-overlay{align-items:end;padding:0}.pending-order-dialog{width:100%;border-radius:6px 6px 0 0}.pending-order-dialog>header{padding:16px}.pending-order-dialog form{padding:16px calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.pending-type-options{grid-template-columns:repeat(3,minmax(0,1fr))}.pending-type-options span{height:48px;font-size:17px}.pending-order-dialog footer .button{flex:1;justify-content:center}.urgent-tag{top:8px;left:8px;font-size:13px}}

/* iPad/tablet toolbar: each dense control group owns a row, so tabs never overlap actions. */
@media(min-width:761px) and (max-width:1366px){
  .cards-topbar{position:sticky;top:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand count" "sheets sheets" "actions actions";gap:9px 16px;padding:12px 18px;align-items:center}
  .cards-topbar .brand{grid-area:brand;min-width:0}.cards-topbar .brand>div{min-width:0}.cards-topbar .brand p{max-width:52vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-topbar .topbar-count{grid-area:count;justify-self:end}
  .cards-topbar .topbar-sheets{grid-area:sheets;grid-column:auto;grid-row:auto;width:100%;min-width:0;padding:1px 0 3px;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .cards-topbar .topbar-sheets .sheet-tab{flex:none;height:38px}
  .cards-topbar .actions{grid-area:actions;grid-column:auto;grid-row:auto;justify-self:stretch;display:grid;grid-template-columns:minmax(200px,1fr) auto auto auto auto;gap:8px;width:100%;min-width:0}
  .cards-topbar .search{width:100%;min-width:0}.cards-topbar .search input{width:100%;min-width:0}
  .cards-topbar .actions .button{justify-content:center;white-space:nowrap}
}
@media(min-width:761px) and (max-width:900px){
  .cards-topbar{padding-left:14px;padding-right:14px}
  .cards-topbar .actions{grid-template-columns:minmax(170px,1fr) auto auto auto auto;gap:6px}
  .cards-topbar .actions .button{padding:0 10px;font-size:14px}
}

/* List thumbnails must always show the complete source image without cropping. */
#cards.cards .card{grid-template-rows:240px minmax(0,1fr);height:580px}
#cards.cards .card>.thumb{position:relative;display:block;width:100%;height:240px;min-width:0;min-height:0;overflow:hidden;background:#eef2f0;border-bottom:1px solid #e1e6e4;contain:layout paint}
#cards.cards .card>.thumb>img{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%;margin:auto;object-fit:contain!important;object-position:center center!important;background:#fff}
#cards.cards .card>.thumb>span{position:absolute;inset:0;display:grid;place-items:center}
@media(max-width:760px){
  #cards.cards .card{grid-template-rows:250px minmax(0,1fr);height:630px}
  #cards.cards .card>.thumb{height:250px}
}

/* Pending cards use an independent layout but must show the complete image too. */
#pendingCards .pending-card{grid-template-rows:240px auto;height:auto;min-height:610px}
#pendingCards .pending-card>.thumb{position:relative;display:block;width:100%;height:240px;min-width:0;min-height:0;overflow:hidden;background:#eef2f0;border-bottom:1px solid #e1e6e4;contain:layout paint}
#pendingCards .pending-card>.thumb>img{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%;margin:auto;object-fit:contain!important;object-position:center center!important;background:#fff}
#pendingCards .pending-card>.thumb>span{position:absolute;inset:0;display:grid;place-items:center}
@media(max-width:760px){
  #pendingCards .pending-card{grid-template-rows:250px auto;min-height:680px}
  #pendingCards .pending-card>.thumb{height:250px}
}

/* Today's completed cards also show the whole source image without cropping. */
#pendingCards .completed-card{grid-template-columns:minmax(0,1fr);grid-template-rows:240px minmax(220px,auto);height:480px;min-height:480px}
#pendingCards .completed-card>.thumb{position:relative;display:block;width:100%;height:240px;min-width:0;min-height:0;overflow:hidden;background:#fff;border-bottom:1px solid #e1e6e4;contain:layout paint}
#pendingCards .completed-card>.thumb>img{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%;margin:auto;object-fit:contain!important;object-position:center center!important;background:#fff}
#pendingCards .completed-card>.thumb>span{position:absolute;inset:0;display:grid;place-items:center}
#pendingCards .completed-card>.card-body{position:relative;z-index:2;min-height:0;padding:14px 16px;overflow:visible;background:#fff}
#pendingCards .completed-card h2{display:block;flex:none;min-height:26px;margin:0 0 9px;overflow:hidden;line-height:1.45;white-space:nowrap;text-overflow:ellipsis}
#pendingCards .completed-card .card-sheet{flex:none;min-height:25px;margin:0 0 10px;overflow:visible;white-space:normal}
#pendingCards .completed-card .completed-type-text{margin-left:9px;color:#d32438;font-size:16px;font-weight:800}
#pendingCards .completed-card .completed-info{flex:none;min-height:120px;overflow:visible}
#pendingCards .completed-card .completed-info time{white-space:nowrap;overflow:visible}
@media(max-width:760px){
  #pendingCards .completed-card{grid-template-rows:250px minmax(230px,auto);height:500px;min-height:500px}
  #pendingCards .completed-card>.thumb{height:250px}
}

/* iPad pending detail: scrollable layout with dimensions suited to both orientations. */
@media(min-width:901px) and (max-width:1366px){
  .pending-page .overlay{padding:1vh 1vw}
  .pending-page .dialog{width:98vw;max-width:none;height:98dvh;overflow:auto;-webkit-overflow-scrolling:touch}
  .pending-page #pendingDetail{display:block;height:auto;min-height:100%}
  .pending-page .detail-head{padding:18px 68px 14px 24px}
  .pending-page .detail-grid{display:grid;grid-template-columns:minmax(0,50%) minmax(0,25%) minmax(0,25%);grid-template-rows:minmax(430px,68dvh) auto;min-height:0;overflow:visible}
  .pending-page .detail-image{grid-column:1;grid-row:1;width:100%;height:100%;min-height:430px;border-right:1px solid #dce3e0}
  .pending-page .detail-image img{width:100%;height:100%;max-height:none;object-fit:contain}
  .pending-page .detail-section{grid-row:1;min-height:430px;max-height:68dvh;padding:20px 16px;overflow:auto;font-size:16px}
  .pending-page .detail-footer{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;overflow:visible}
  .pending-page .detail-footer .detail-actions{grid-column:1/-1}
  .pending-page .nav{z-index:5}
}
.pending-type-text{display:inline-flex;align-items:center;margin-left:10px;padding:2px 7px;border-radius:3px;background:#fff0f1;color:#d32438;font-size:17px;font-weight:800;line-height:1.35;vertical-align:middle}.detail-pending-type{margin-left:12px;font-size:18px}.pending-card .card-sheet{overflow:visible;white-space:normal}.pending-type-panel{display:flex;flex-direction:column;justify-content:center;gap:6px;background:#fff8f8}.pending-type-panel strong{color:#d32438!important;font-size:27px!important;font-weight:800}.pending-type-panel span{color:#7b6568!important;font-size:14px!important}
@media(max-width:760px){.pending-type-text{font-size:18px}.detail-pending-type{display:flex;width:max-content;margin:7px 0 0;font-size:19px}}
.pending-meta-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:2px 14px 10px;min-height:42px}.pending-meta-row .card-sheet{min-width:0;margin:0}.pending-card-price{display:flex;min-width:82px;align-items:baseline;justify-content:flex-end;gap:6px;padding:5px 0 5px 10px;border-left:1px solid #dce3e0;white-space:nowrap}.pending-card-price span{color:#68736f;font-size:12px}.pending-card-price strong{color:#c8324a;font-size:21px;line-height:1.1}.pending-card-price strong:only-child{font-size:21px}
@media(max-width:760px){.pending-meta-row{gap:7px;margin:2px 12px 10px}.pending-card-price{min-width:70px;gap:4px;padding-left:8px}.pending-card-price strong{font-size:19px}}
@media(min-width:761px) and (max-width:900px){
  .pending-page .overlay{padding:0}
  .pending-page .dialog{width:100vw;max-width:none;height:100dvh;border-radius:0;overflow:auto;-webkit-overflow-scrolling:touch}
  .pending-page #pendingDetail{display:block;height:auto;min-height:100%}
  .pending-page .detail-head{padding:18px 68px 14px 22px}
  .pending-page .detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(360px,48dvh) auto auto;min-height:0;overflow:visible}
  .pending-page .detail-image{grid-column:1/-1;grid-row:1;width:100%;height:100%;min-height:360px;border-right:0;border-bottom:1px solid #dce3e0}
  .pending-page .detail-image img{width:100%;height:100%;max-height:none;object-fit:contain}
  .pending-page .detail-section{grid-row:2;min-height:260px;max-height:none;padding:20px;overflow:visible;font-size:17px}
  .pending-page .detail-section+section{border-left:1px solid #dce3e0;border-top:0}
  .pending-page .detail-footer{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}
  .pending-page .detail-footer .detail-actions{grid-column:1/-1}
  .pending-page .nav{z-index:5}
}
