:root{--bg: #f5f5f7;--surface: #ffffff;--border: #e5e5ea;--text: #1d1d1f;--muted: #6e6e73;--primary: #007aff;--danger: #ff3b30;--success: #34c759;--line: #06c755;--radius: 12px;--topbar-h: 52px;--bottomnav-h: 64px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}.app{display:flex;flex-direction:column;min-height:100%}.topbar{position:sticky;top:0;z-index:10;height:calc(var(--topbar-h) + var(--safe-top));padding-top:var(--safe-top);display:flex;align-items:center;justify-content:space-between;padding-left:16px;padding-right:16px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar-title{font-weight:600;font-size:17px}.content{flex:1;padding:12px 16px;padding-bottom:calc(var(--bottomnav-h) + var(--safe-bottom) + 16px);max-width:720px;width:100%;margin:0 auto}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;height:calc(var(--bottomnav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--border)}.bottomnav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:500;padding:6px 4px}.bottomnav-item.active{color:var(--primary)}.bottomnav-icon{font-size:22px;line-height:1}.bottomnav-label{font-size:11px}.fullscreen{min-height:100vh;min-height:100dvh;padding:32px 24px calc(32px + var(--safe-bottom));padding-top:calc(32px + var(--safe-top));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}.fullscreen h1{margin:0 0 8px;font-size:24px}.fullscreen p{margin:0}h1{font-size:22px;margin:4px 0 12px;font-weight:700}h2{font-size:12px;margin:14px 0 4px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.muted{color:var(--muted);font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.card{background:var(--surface);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.card>h2:first-child{margin-top:0;margin-bottom:10px}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border);gap:12px}.list-item:last-child{border-bottom:none}.balance{font-size:20px;font-weight:600}.balance.pos{color:var(--success)}.balance.neg{color:var(--danger)}label{display:block;margin:10px 0 4px;font-size:13px;color:var(--muted);font-weight:500}input,select,textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:10px;font-size:16px;font-family:inherit;background:var(--surface);color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:transparent}.row{display:flex;gap:8px;align-items:center}button{background:var(--primary);color:#fff;border:0;padding:14px 18px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;width:100%;min-height:48px;font-family:inherit}button.secondary{background:var(--border);color:var(--text);width:auto;padding:8px 14px;min-height:0;font-size:14px}button.link{background:transparent;color:var(--primary);padding:8px;width:auto;min-height:0;font-size:15px;font-weight:500}button:disabled{opacity:.5;cursor:default}button:active{transform:scale(.98)}.line-btn{background:var(--line);display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:320px}.sub-display{word-break:break-all;padding:10px 12px;background:var(--surface);border-radius:8px;border:1px solid var(--border);max-width:320px;width:100%}.error{color:var(--danger);background:#fff5f5;padding:10px 12px;border-radius:8px;margin-bottom:12px;font-size:14px}@media (min-width: 768px){.content{padding:20px 24px;padding-bottom:calc(var(--bottomnav-h) + 24px)}h1{font-size:26px}}
