:root{--bg:#f7f9f8;--bg-outer:#e9efec;--ink:#172c29;--muted:#6b807b;--line:#e0eae6;--soft:#ecf5f1;--green:#137a63;--deep:#0f5e4d;--white:#fff;--red:#be4b4b;--shadow:0 5px 20px #16322a0b;--app-width:480px;--nav-height:72px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg-outer);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--green)}.app{min-height:100dvh;max-width:var(--app-width);background:var(--bg);padding-top:var(--safe-top);padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 24px);margin:0 auto;position:relative;box-shadow:0 0 48px #153d2d11}.app.no-nav{padding-bottom:calc(24px + var(--safe-bottom))}.app.workmode{padding-bottom:calc(120px + var(--safe-bottom))}.top{justify-content:space-between;align-items:center;gap:12px;padding:22px 22px 8px;display:flex}.top-brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-icon{border-radius:24%;flex-shrink:0;width:38px;height:38px}.brand{letter-spacing:.17em;color:var(--green);font-size:12px;font-weight:900}.top-sub{color:var(--muted);margin-top:5px;font-size:12px}.mini-badge{color:#2b7965;white-space:nowrap;background:#eaf5ee;border:1px solid #d2e9df;border-radius:100px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:800;display:inline-flex}.mini-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.content{padding:8px 20px 30px}h1{letter-spacing:-.9px;margin:12px 0 8px;font-size:27px;font-weight:800;line-height:1.18}h2{letter-spacing:-.3px;margin:0;font-size:17px}h3{margin:0;font-size:15px}p{margin:5px 0;line-height:1.45}.muted{color:var(--muted)}.tiny{font-size:12px}.small{font-size:13px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--green);font-size:11px;font-weight:800}.section-title{justify-content:space-between;align-items:center;gap:8px;margin:25px 1px 12px;display:flex}.section-title:first-child{margin-top:5px}.error-text{color:var(--red);font-size:12px;font-weight:700}.card{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;margin-bottom:12px;padding:17px}.card.highlight{background:#eaf6f0;border-color:#beddd0}.card-link{text-align:left;width:100%;color:inherit;text-decoration:none;display:block}.card-title{letter-spacing:-.35px;font-size:17px;font-weight:800}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:11px;display:flex}.spacer{height:12px}.divider{border:0;border-top:1px solid var(--line);margin:15px 0}.empty{text-align:center;color:var(--muted);border:1px dashed #b9cec6;border-radius:15px;padding:25px;line-height:1.5}.planmeta{color:var(--muted);align-items:center;gap:7px;margin:9px 0 15px;font-size:12px;display:flex}.dot{background:#b8c7c2;border-radius:100%;width:4px;height:4px}.tag{color:#52756b;background:#f0f5f2;border-radius:8px;padding:5px 8px;font-size:11px;font-weight:700}.btn{min-height:44px;color:var(--ink);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 14px;font-size:14px;font-weight:750;text-decoration:none;display:inline-flex}.btn.primary{background:var(--green);color:var(--white)}.btn.primary:hover:not(:disabled){background:var(--deep)}.btn.secondary{background:var(--soft);color:var(--green)}.btn.outline{color:var(--green);background:0 0;border:1px solid #b7d7ca}.btn.ghost{color:var(--muted);background:0 0}.btn.danger{color:var(--red)}.btn.danger-outline{color:#b54949;background:var(--white);border:1px solid #e8caca}.btn.danger-fill{background:var(--red);color:var(--white)}.btn.block{width:100%}.btn.smallbtn{border-radius:10px;min-height:36px;padding:8px 11px;font-size:12px}.btn.iconbtn{flex-shrink:0;width:40px;height:40px;min-height:40px;padding:0}.pluscard{width:100%;min-height:58px;color:var(--green);background:#f1f8f5;border:1.5px dashed #b4d6c8;border-radius:16px;justify-content:center;align-items:center;gap:10px;margin-top:4px;font-size:14px;font-weight:800;display:inline-flex}.back{color:var(--green);background:0 0;border:0;align-items:center;gap:6px;min-height:44px;margin:0;padding:8px 0;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.field{flex-direction:column;gap:6px;margin:10px 0 16px;display:flex}.field label{color:#567068;font-size:12px;font-weight:750}.input{background:var(--white);width:100%;height:46px;color:var(--ink);border:1px solid #d3e2dc;border-radius:11px;outline:none;padding:9px 11px;font-size:16px}.input:focus,.num:focus{border-color:var(--green);box-shadow:0 0 0 3px #137a631c}textarea.input{resize:vertical;height:auto;min-height:84px;font-family:inherit;line-height:1.4}.ex-desc{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;margin-top:4px;font-size:12px;font-weight:400;line-height:1.45}.ex-desc.clamp{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.input.invalid{border-color:var(--red)}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b807b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.initial{width:44px;height:44px;color:var(--green);background:#e7f3ee;border-radius:13px;flex:0 0 44px;place-items:center;font-size:21px;font-weight:800;display:grid;overflow:hidden}.initial.large{border-radius:14px;flex-basis:54px;width:54px;height:54px}.initial img{object-fit:cover;width:100%;height:100%;display:block}button.initial{cursor:zoom-in;border:0;padding:0}button.initial:focus-visible{outline-offset:2px;outline:3px solid #137a6355}.lightbox-mask{z-index:30;padding:calc(20px + var(--safe-top)) 16px calc(20px + var(--safe-bottom));cursor:zoom-out;background:#0b1f1aee;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;background:var(--white);border-radius:16px;max-width:100%;max-height:78dvh;box-shadow:0 20px 60px #0006}.lightbox-caption{color:var(--white);text-align:center;letter-spacing:-.3px;font-size:17px;font-weight:800}.lightbox-close{top:calc(14px + var(--safe-top));width:44px;height:44px;color:var(--white);background:#fff2;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;right:14px}.img-preview{object-fit:cover;border:1px solid var(--line);background:#e6f3ed;border-radius:16px;width:96px;height:96px}.entry{border:1px solid var(--line);background:var(--white);border-radius:13px;margin:9px 0;padding:11px}.entry .name{font-size:14px;font-weight:800}.entry-head{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-height:44px;padding:0;display:flex}.series-top,.series-row{grid-template-columns:27px minmax(0,1fr) minmax(0,1fr) 44px;align-items:center;gap:8px;display:grid}.series-top{color:#82958d;text-align:center;text-transform:uppercase;letter-spacing:.06em;margin:12px 0 6px;font-size:10px;font-weight:850}.series-row{border-radius:12px;margin:6px 0;transition:background-color .15s}.series-row.completed{background:#eef7f2}.series-index{text-align:center;color:#83968d;font-size:13px;font-weight:750}.series-value{text-align:center;font-size:16px;font-weight:750}.series-mark{text-align:center;font-weight:800}.series-mark.done{color:var(--green)}.series-mark.todo{color:#b5c1bb}.num{text-align:center;color:#1a392f;background:#f9fbfa;border:1px solid #dce8e1;border-radius:10px;outline:none;width:100%;height:44px;padding:6px 3px;font-size:17px;font-weight:750}.completed .num{background:#f0f8f4;border-color:#cfe5da}.checkbutton{background:var(--white);width:44px;height:44px;color:var(--white);border:1.7px solid #bdd0c7;border-radius:11px;place-items:center;padding:0;transition:background-color .15s,border-color .15s;display:grid}.checkbutton.done{background:var(--green);border-color:var(--green)}.progress{background:#dfeae4;border-radius:30px;height:7px;margin:15px 0 5px;overflow:hidden}.progress>div{background:var(--green);border-radius:30px;height:100%;transition:width .2s}.workcard{margin-bottom:13px;padding:15px 13px}.worktitle{font-size:16px;font-weight:800}.persist{color:#789187;justify-content:center;align-items:center;gap:6px;margin:15px;font-size:11px;display:flex}.sticky-action{width:min(100%, var(--app-width));padding:12px 20px calc(12px + var(--safe-bottom));z-index:4;background:linear-gradient(#f7f9f800,#f7f9f8 15%);position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav{width:min(100%, var(--app-width));padding:8px 10px calc(8px + var(--safe-bottom));background:var(--white);border-top:1px solid var(--line);z-index:5;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -10px 20px #193a2e08}.nav a{color:#82928e;background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:48px;padding:6px 3px;font-size:10.5px;font-weight:750;text-decoration:none;display:flex}.nav a.active{color:var(--green)}.sheet-mask,.dialog-mask{z-index:9;background:#102f2859;justify-content:center;display:flex;position:fixed;inset:0}.sheet-mask{align-items:flex-end}.dialog-mask{align-items:center;padding:20px}.sheet{width:min(100%, var(--app-width));background:var(--white);max-height:90dvh;padding:23px 20px calc(26px + var(--safe-bottom));border-radius:24px 24px 0 0;overflow:auto;box-shadow:0 -10px 40px #001c1b22}.sheet-handle{background:#d1e0da;border-radius:10px;width:38px;height:5px;margin:-8px auto 18px}.dialog{background:var(--white);border-radius:20px;width:min(100%,400px);padding:22px 20px 18px;box-shadow:0 20px 60px #001c1b33}.dialog h2{margin-bottom:8px}.dialog-actions{flex-direction:column;gap:8px;margin-top:18px;display:flex}.picker-row{text-align:left;background:var(--white);width:100%;color:var(--ink);border:0;border-bottom:1px solid #edf3ef;align-items:center;gap:12px;min-height:56px;padding:11px 0;display:flex}.picker-row:last-child{border-bottom:0}.picker-row .right{color:var(--green);margin-left:auto;font-size:21px}.toast{bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);z-index:15;color:var(--white);text-align:center;background:#193d32;border-radius:100px;max-width:90vw;padding:11px 16px;font-size:13px;line-height:1.35;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 5px 23px #18382d30}.update-banner{top:calc(12px + var(--safe-top));width:min(calc(100% - 32px), calc(var(--app-width) - 32px));z-index:20;background:var(--white);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #18382d22}.mutedline{color:var(--muted);font-size:12px;line-height:1.45}.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}@media (width<=350px){.content{padding-left:14px;padding-right:14px}.top{padding-left:17px;padding-right:17px}.series-row,.series-top{gap:5px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
