:root{--green:#4a5d3a;--green-soft:#edf1e8;--cream:#fbf7ef;--amber:#c08a3e;--amber-soft:#fbf6ec;--text:#1e1e1e;--text-dim:#6b6b6b;--line:#eaeaea;--bg:#fff;--danger:#b3261e;--r-card:14px;--r-chip:999px;--tab-h:62px;color:var(--text);background:var(--bg);font-family:Pretendard Variable,Pretendard,-apple-system,system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{background:var(--bg);min-height:100%;margin:0}body{font-size:17px;line-height:1.5}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;color:inherit}.app{max-width:560px;padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 16px);margin:0 auto}.screen{padding:16px}.tabbar{height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line);z-index:20;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--text-dim);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:13px;display:flex}.tabbar button.on{color:var(--green);font-weight:700}.tabbar .ico{font-size:21px;line-height:1}.hero{background:var(--green-soft);border-radius:var(--r-card);margin-bottom:18px;padding:16px}.hero .date{color:var(--green);font-size:14px;font-weight:700}.hero .msg{margin-top:4px;font-size:19px;font-weight:700}h2.section{color:var(--text-dim);margin:22px 0 10px;font-size:15px;font-weight:700}.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-card);padding:14px}.empty{color:var(--text-dim);text-align:center;background:var(--cream);border-radius:var(--r-card);padding:26px 12px;font-size:15px}.btn{background:var(--green);color:#fff;border:0;border-radius:12px;padding:13px 16px;font-weight:700}.btn:disabled{opacity:.45}.btn.ghost{color:var(--green);border:1px solid var(--line);background:0 0}.btn.full{width:100%}.chip{border:1px solid var(--line);background:var(--bg);color:var(--text-dim);border-radius:var(--r-chip);white-space:nowrap;padding:7px 13px;font-size:14px}.chip.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}.chips{flex-wrap:wrap;gap:8px;display:flex}.field{margin-bottom:14px;display:block}.field>span{color:var(--text-dim);margin-bottom:6px;font-size:14px;display:block}.field input[type=text],.field input[type=date],.field input[type=email],.field input[type=password],.field textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;width:100%;padding:12px}.field input:focus,.field textarea:focus{outline:2px solid var(--green-soft);border-color:var(--green)}.task{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:13px 0;display:flex}.task:last-child{border-bottom:0}.task .check{border:2px solid var(--line);color:#0000;background:0 0;border-radius:50%;flex:none;place-items:center;width:25px;height:25px;margin-top:1px;font-size:14px;display:grid}.task .check.done{background:var(--green);border-color:var(--green);color:#fff}.task .body{flex:1;min-width:0}.task .title{word-break:break-word;font-size:16px}.task.is-done .title{color:var(--text-dim);text-decoration:line-through}.task .meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;display:flex}.tag{border-radius:var(--r-chip);background:var(--cream);color:var(--text-dim);padding:2px 9px;font-size:12px}.tag.due-over{color:var(--danger);background:#fdecea;font-weight:700}.tag.due-soon{background:var(--amber-soft);color:var(--amber);font-weight:700}.tag.imp{background:var(--green-soft);color:var(--green);font-weight:700}.score{text-align:center;background:var(--green-soft);min-width:42px;color:var(--green);border-radius:var(--r-chip);border:0;flex:none;padding:5px 8px;font-size:14px;font-weight:700}.why{background:var(--cream);color:var(--text-dim);border-radius:12px;margin-top:8px;padding:10px 12px;font-size:14px}.why .row{justify-content:space-between;gap:10px;display:flex}.why .row.total{color:var(--text);border-top:1px solid var(--line);margin-top:6px;padding-top:6px;font-weight:700}.sheet-bg{z-index:30;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;max-height:88vh;overflow-y:auto}.sheet h3{margin:0 0 16px;font-size:18px}.sheet-actions{gap:10px;margin-top:6px;display:flex}.sheet-actions .btn{flex:1}.fab{right:max(16px,50vw - 264px);bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 16px);background:var(--green);color:#fff;z-index:15;border:0;border-radius:50%;width:58px;height:58px;font-size:30px;line-height:1;position:fixed;box-shadow:0 4px 14px #0000002e}.banner{background:var(--amber-soft);color:var(--amber);border-radius:12px;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;font-size:14px;display:flex}.banner button{background:var(--amber);color:#fff;border-radius:var(--r-chip);white-space:nowrap;border:0;margin-left:auto;padding:6px 12px;font-size:13px;font-weight:700}.seg{background:var(--cream);border-radius:var(--r-chip);margin-bottom:14px;padding:4px;display:flex}.seg button{color:var(--text-dim);border-radius:var(--r-chip);background:0 0;border:0;flex:1;padding:8px;font-size:15px}.seg button.on{background:var(--bg);color:var(--green);font-weight:700}.center-note{text-align:center;color:var(--text-dim);padding:40px 20px;font-size:14px}
