:root{--bg:#f4f2eb;--card:#fff;--ink:#202634;--muted:#6a7080;--faint:#9aa0ad;--line:#e4e1d5;--navy:#15202f;--navy-2:#1f2c40;--on-navy:#f2ede0;--on-navy-muted:#9fa8b8;--gold:#a8862b;--gold-soft:#f0e7ce;--pos:#2e7d5b;--pos-soft:#e3f0e9;--danger:#a94438}@media (prefers-color-scheme:dark){:root{--bg:#0e141f;--card:#1a2334;--ink:#ece9de;--muted:#a2a9b6;--faint:#6e7684;--line:#2b3547;--navy:#101928;--navy-2:#1d2a3e;--gold:#cfa84a;--gold-soft:#34301c;--pos:#63bd96;--pos-soft:#1e3a2f;--danger:#e08074}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,Yu Gothic,Meiryo,sans-serif;font-size:15px;line-height:1.7}a{color:inherit}button{font-family:inherit}.app{max-width:430px;min-height:100vh;margin:0 auto;padding-bottom:96px}.hd{background:var(--navy);color:var(--on-navy);padding:22px 20px 18px}.hd .eyebrow{letter-spacing:3px;color:var(--gold);margin:0 0 4px;font-size:11px}.hd h1{letter-spacing:.5px;margin:0;font-size:19px;font-weight:600}.hd .sub{color:var(--on-navy-muted);margin:4px 0 0;font-size:12px}main.pmain{flex-direction:column;gap:14px;padding:16px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}.label{letter-spacing:2px;color:var(--gold);margin:0 0 8px;font-size:11px;font-weight:600}.goal{border-top:3px solid var(--gold)}.goal p.big{margin:0;font-size:16px;font-weight:600;line-height:1.6}.goal p.note{color:var(--muted);margin:8px 0 0;font-size:12px}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.metric{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.metric .k{color:var(--muted);margin:0;font-size:11px}.metric .v{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:21px;font-weight:600}.metric .v.pos{color:var(--pos)}.row{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:9px 0;font-size:13px;display:flex}.row:last-child{border-bottom:0;padding-bottom:0}.row .n{white-space:nowrap;font-weight:600}.row .r{color:var(--muted);text-align:right}.phase{gap:12px;padding:8px 0;display:flex}.phase .dot{background:var(--gold);border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:7px}.phase .t{font-size:13px}.phase .t b{font-size:13px;display:block}.phase .t span{color:var(--muted);font-size:12px}.income-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:7px 0;font-size:13px;display:flex}.income-row:last-child{border-bottom:0}.income-row .amt{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.task{border-bottom:1px solid var(--line);cursor:pointer;text-align:left;width:100%;color:inherit;font-size:inherit;background:0 0;border-top:0;border-left:0;border-right:0;align-items:flex-start;gap:10px;padding:10px 0;display:flex}.task:last-child{border-bottom:0;padding-bottom:2px}.task .box{border:2px solid var(--faint);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:21px;height:21px;margin-top:2px;transition:background .15s,border-color .15s;display:flex}.task.done .box{background:var(--pos);border-color:var(--pos)}.task .box svg{opacity:0}.task.done .box svg{opacity:1}.task .tx{font-size:13.5px}.task.done .tx{color:var(--faint);text-decoration:line-through}.task .due{color:var(--muted);font-size:11.5px;display:block}.toast{color:var(--pos);background:var(--pos-soft);border-radius:8px;margin-top:10px;padding:7px 12px;font-size:12px}.karte{border-left:3px solid var(--gold);border-radius:0 14px 14px 0}.karte.old{border-left-color:var(--line)}.karte .head{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:0;justify-content:space-between;align-items:baseline;padding:0;display:flex}.karte .date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.karte .ttl{margin:2px 0 0;font-size:15px;font-weight:600}.badge{background:var(--gold-soft);color:var(--gold);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600}.badge.gray{background:var(--bg);color:var(--muted)}.badge.draft{background:var(--bg);color:var(--danger);border:1px solid var(--line)}.karte .body{margin-top:12px}.kv{margin:10px 0 0;font-size:13.5px}.kv b{color:var(--gold);letter-spacing:1px;margin-bottom:2px;font-size:12px;display:block}.locknote{color:var(--muted);padding:0 6px;font-size:12px}.file{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.file:last-child{border-bottom:0;padding-bottom:4px}.file .ic{background:var(--gold-soft);width:38px;height:38px;color:var(--gold);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.file .fn{font-size:13.5px;font-weight:600}.file .fm{color:var(--muted);font-size:11.5px}.file .dl{color:var(--gold);cursor:pointer;background:0 0;border:0;flex-shrink:0;margin-left:auto}.empty{color:var(--muted);text-align:center;padding:12px 0;font-size:13px}nav.bottom{background:var(--navy);border-radius:18px 18px 0 0;width:min(430px,100%);padding:8px 0 14px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}nav.bottom a{color:var(--on-navy-muted);flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 0;font-size:11px;text-decoration:none;display:flex}nav.bottom a.on{color:var(--gold)}.login-wrap{flex-direction:column;justify-content:center;max-width:400px;min-height:100vh;margin:0 auto;padding:48px 20px;display:flex}.login-brand{text-align:center;margin-bottom:28px}.login-brand .eyebrow{letter-spacing:3px;color:var(--gold);margin:0 0 4px;font-size:11px}.login-brand h1{margin:0;font-size:21px;font-weight:600}.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;padding:22px 20px;display:flex}.login-card label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.login-card input{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--ink);border-radius:9px;padding:11px 12px;font-family:inherit;font-size:15px}.login-card input:focus{outline:2px solid var(--gold);outline-offset:1px}.btn{background:var(--navy);width:100%;color:var(--on-navy);cursor:pointer;border:0;border-radius:9px;padding:12px;font-size:15px;font-weight:600}.btn.gold{background:var(--gold);color:#fff}.btn:disabled{opacity:.6;cursor:default}.btn-link{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px;font-size:12.5px;text-decoration:underline}.msg{border-radius:9px;padding:9px 12px;font-size:13px}.msg.ok{color:var(--pos);background:var(--pos-soft)}.msg.err{color:var(--danger);background:var(--gold-soft)}.goalrow{border-bottom:1px solid var(--line);padding:10px 0}.goalrow:last-child{border-bottom:0;padding-bottom:2px}.ppill{background:var(--gold-soft);color:var(--gold);vertical-align:1px;white-space:nowrap;border-radius:999px;margin-right:8px;padding:1px 9px;font-size:11px;font-weight:600;display:inline-block}.gauge{background:var(--line);border-radius:999px;flex:1;height:8px;overflow:hidden}.gauge-fill{background:var(--pos);border-radius:999px;height:100%}.fform{flex-direction:column;gap:12px;margin-top:10px;display:flex}.fform label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.fform input,.fform textarea,.fform select{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--ink);box-sizing:border-box;border-radius:9px;padding:10px 12px;font-family:inherit;font-size:14px}.fform input:focus,.fform textarea:focus,.fform select:focus{outline:2px solid var(--gold);outline-offset:1px}.addbox{background:var(--card);border:1px dashed var(--line);border-radius:14px;padding:12px 16px}.addbox summary{cursor:pointer;color:var(--gold);font-size:13px;font-weight:600}.admin{max-width:860px;margin:0 auto;padding:0 20px 60px}.admin-hd{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:20px 0;display:flex}.admin-hd h1{margin:0;font-size:19px;font-weight:600}.admin-hd .eyebrow{letter-spacing:3px;color:var(--gold);margin:0;font-size:11px}.cust-link{background:var(--card);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:14px 16px;text-decoration:none;display:flex}.cust-link .nm{font-size:15px;font-weight:600}.cust-link .th{color:var(--muted);font-size:12px}.admin-grid{grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}@media (max-width:720px){.admin-grid{grid-template-columns:1fr}}.admin-col{flex-direction:column;gap:14px;display:flex}.pub-btn{border:1px solid var(--gold);color:var(--gold);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:3px 12px;font-size:12px}.backlink{color:var(--muted);font-size:13px;text-decoration:none}
