:root{font-family:system-ui,-apple-system,"Malgun Gothic","Apple SD Gothic Neo",sans-serif;color:#24302d;background:#f7f8f5;font-synthesis:none}*{box-sizing:border-box}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}body{margin:0;min-height:100dvh}a{color:#285d52}#app{max-width:780px;margin:0 auto;padding:0 15px 96px}.loading{padding:32vh 20px;text-align:center;color:#54736b}.top{position:sticky;top:0;z-index:10;background:#f7f8f5ed;backdrop-filter:blur(14px);padding:15px 0 12px;border-bottom:1px solid #e2e8e2}.brand{font-size:25px;font-weight:900;letter-spacing:-1.2px;color:#285d52}.brand small{font-size:10px;font-weight:700;color:#8a998f;vertical-align:top;letter-spacing:.5px}.toprow,.flex{display:flex;align-items:center;gap:9px}.between{justify-content:space-between}.grow{flex:1;min-width:0}.muted{color:#76847d}.tiny{font-size:11px}.small{font-size:13px}.right{text-align:right}.pill,.chip{padding:6px 10px;border-radius:999px;background:#e9eee9;color:#3e5950;font-size:12px;border:0}.chip.active,.pill.active{background:#285d52;color:white}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:8px;background:#e7f1e8;color:#285d52;font-size:11px}.warn{background:#fff7e5;color:#8b6110;border:1px solid #f0deb4;padding:12px;border-radius:14px;margin:12px 0}.notice{background:#e8f3f0;color:#285d52;padding:11px 13px;border-radius:14px;margin:12px 0}.card{border:1px solid #e3e9e3;background:white;box-shadow:0 2px 8px #17402a09;border-radius:18px;padding:16px;margin:12px 0}.card h2,.card h3{margin:0 0 10px}.section-heading{font-size:18px;margin:20px 2px 11px;font-weight:850;letter-spacing:-.5px}.btn{border:1px solid #d9e4db;background:#fff;color:#294a3f;padding:10px 13px;border-radius:11px;font-weight:650}.btn.primary{background:#285d52;border-color:#285d52;color:white}.btn.soft{background:#edf4ef}.btn.danger{color:#a12d37;border-color:#f4dade}.btn.small{padding:7px 9px;font-size:12px}.btn.icon{padding:8px 10px}.btn.block{display:block;width:100%}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.field{margin:12px 0}.field label{display:block;font-size:13px;color:#4c6156;margin-bottom:6px;font-weight:650}.field input,.field select,.field textarea,.search{display:block;width:100%;padding:11px 12px;border:1px solid #d7e1d8;border-radius:10px;background:white;outline-color:#285d52}.field input[type=checkbox]{width:auto;display:inline}.field textarea{min-height:70px;resize:vertical}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.store-card{padding:15px;border:1px solid #e1e8e2;background:white;border-radius:16px;text-align:left;min-height:105px;display:flex;flex-direction:column;gap:5px}.store-card strong{font-size:16px}.store-card .meta{font-size:12px;color:#7d8981}.store-card.selected{border:2px solid #285d52;padding:14px}.store-bar{overflow:auto;display:flex;gap:6px;padding:7px 0;scrollbar-width:thin}.store-bar .chip{white-space:nowrap;flex-shrink:0}.list{display:flex;flex-direction:column;gap:8px}.item{border:1px solid #e5eae5;background:white;border-radius:14px;padding:12px;display:flex;align-items:start;gap:11px}.item.done{background:#f3f5f2;opacity:.8}.item.done .item-name{text-decoration:line-through;color:#728076}.item-name{font-size:15px;font-weight:700;overflow-wrap:anywhere}.item .desc{font-size:12px;color:#87928a;margin-top:4px}.item .actions{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.item input[type=checkbox]{accent-color:#285d52;width:21px;height:21px;margin:2px 0}.roundplus{position:fixed;bottom:88px;right:max(calc((100vw - 770px)/2 + 20px),22px);border-radius:50%;height:56px;width:56px;font-size:28px;display:grid;place-content:center;box-shadow:0 7px 20px #1b392c33;border:0;background:#285d52;color:#fff;z-index:11}.bottom{position:fixed;left:50%;transform:translateX(-50%);bottom:0;max-width:780px;width:100%;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid #e0e7e1;padding:9px 10px max(9px,env(safe-area-inset-bottom));z-index:20}.nav{border:none;background:transparent;color:#8a978f;font-size:11px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;gap:4px}.nav b{font-size:21px}.nav.active{color:#285d52;font-weight:800}.overlay{position:fixed;inset:0;background:#15251bb0;z-index:40;display:flex;align-items:end;justify-content:center;padding:10px}.overlay[hidden]{display:none}.dialog{background:white;border-radius:20px 20px 12px 12px;padding:20px;width:min(100%,680px);max-height:94dvh;overflow:auto}.dialog h2{font-size:19px;margin:0 0 15px}.dialog .end{display:flex;justify-content:end;gap:8px;margin-top:18px}.checkrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:9px 0}.checkrow input{accent-color:#285d52}.empty{padding:28px 10px;text-align:center;color:#849187;border:1px dashed #dce4dc;border-radius:15px;background:white}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.day{padding:8px 2px;min-height:68px;border:1px solid #e9ede9;border-radius:9px;text-align:center;background:#fff}.day.other{opacity:.3}.day.today{background:#e6f4ec;border-color:#85afa0}.day.selected{outline:2px solid #285d52}.day small{display:block;font-size:10px;color:#587568;line-height:1.3;max-height:28px;overflow:hidden}.photos{display:flex;gap:8px;flex-wrap:wrap}.photo{width:88px;height:103px;position:relative}.photo img{width:100%;height:83px;object-fit:cover;border-radius:9px;background:#f0f3f0}.photo button{border:none;background:#fff0f0;color:#aa4141;border-radius:9px;font-size:10px}.bar{height:10px;border-radius:20px;background:#e6ece7;overflow:hidden}.bar .fill{height:100%;background:#bc8f41}.rowline{padding:10px 0;border-bottom:1px solid #e8ece8}.rowline:last-child{border:0}.seg{display:flex;gap:5px;padding:3px;background:#e9efe9;border-radius:12px}.seg button{flex:1;border:none;padding:9px;border-radius:9px;background:transparent;color:#597267}.seg button.active{background:white;color:#285d52;font-weight:750;box-shadow:0 1px 3px #0001}#toast-host{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);width:calc(100% - 30px);max-width:700px;z-index:80;pointer-events:none}.toast{pointer-events:auto;color:white;background:#294638;padding:13px 15px;margin:8px 0;border-radius:13px;box-shadow:0 10px 25px #0003;display:flex;justify-content:space-between;gap:12px}.toast button{border:0;background:transparent;color:#daee9f;font-weight:700}.inline-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.stat{font-size:24px;font-weight:850;color:#285d52}.status-dot{height:8px;width:8px;border-radius:50%;background:#a6b6ad}.status-dot.on{background:#329765}details{border-bottom:1px solid #ebefeb;padding:10px 0}summary{cursor:pointer;font-weight:750}.hidden{display:none!important}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.photo-tile{position:relative;min-width:0}.photo-tile img{width:100%;height:115px;object-fit:cover;border-radius:12px}.photo-tile .tiny{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle{display:flex;align-items:center;gap:9px;cursor:pointer}.toggle input{width:18px;height:18px;accent-color:#285d52}hr{border:0;border-top:1px solid #e7ebe7;margin:15px 0}.search{margin:11px 0}.counter{font-size:12px;color:#64796c}.hint{font-size:12px;color:#8b958f;line-height:1.6}.dangertext{color:#a53c42}@media(min-width:610px){.overlay{align-items:center}.dialog{border-radius:20px}.store-card{min-height:110px}.grid-wide{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:360px){.item{padding:9px}.btn{padding:9px;font-size:12px}}

/* V3: mobile-first calendar, readable version label and future native ad allocation */
.brand{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap}
.brand small{font-size:14px;line-height:1.2;letter-spacing:0;vertical-align:baseline;font-weight:800}
.toprow .pill{flex-shrink:0;max-width:56vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-width:0;min-height:70px;padding:8px 2px;touch-action:manipulation}
.day .day-number{font-size:15px;font-weight:650}
.day small{font-size:10px;line-height:1.25;overflow:hidden;max-height:28px;overflow-wrap:anywhere}
.day.has-events:after{content:"";height:4px;width:4px;border-radius:50%;background:#285d52;flex:none}
.grid-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.grid-week .btn{min-width:0;padding:10px 1px;font-size:11px}
.day-modal-overview{padding:12px;border:1px solid #dce7dd;background:#f2f7f2;border-radius:14px;margin:12px 0 18px}
.day-modal-overview .hint{margin-top:7px}
.day-modal-item{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:9px;background:white;border-radius:10px}
.day-modal-item strong{font-size:13px;overflow-wrap:anywhere}
.event-notes{font-size:12px;color:#526d61;margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}
.ad-slot{display:none}
@media(max-width:800px){
  #app{padding-bottom:calc(158px + env(safe-area-inset-bottom))}
  .bottom{min-height:70px}
  .ad-slot{display:flex;position:fixed;z-index:19;left:50%;transform:translateX(-50%);bottom:calc(70px + env(safe-area-inset-bottom));max-width:780px;width:100%;height:54px;align-items:center;justify-content:center;background:#eef1eb;border-top:1px solid #e2e9e1;box-shadow:0 -2px 8px #17292107}
  .ad-slot-label{font-size:11px;color:#83928a;letter-spacing:.1px}
  .roundplus{bottom:calc(143px + env(safe-area-inset-bottom));right:max(calc((100vw - 770px)/2 + 20px),20px)}
  #toast-host{bottom:calc(142px + env(safe-area-inset-bottom))}
}
@media(max-width:390px){
  #app{padding-left:11px;padding-right:11px}
  .top{padding-top:11px}
  .brand{font-size:23px}
  .brand small{font-size:13px}
  .day{min-height:58px;padding:7px 1px}
  .day .day-number{font-size:14px}
  .day small{font-size:9px}
  .grid2{gap:8px}
  .dialog{padding:15px}
}
